Как сделать сделать предустановленное изображение?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 19 апреля 2024 в 16:08

Возникла необходимость при создании в одном типе контента фото по умолчанию сделать из заготовок. И если надо, то пользователь её поменяет. Как сделать так что бы, для поля изображение поле уже стояло из загруженного на хостинге? 

Что я сделал:

1) Открыл демо сайт, в новостях у поля Фотография прописал в предустановленном значении путь к фотографии из предыдущей новости:

Изображение

2) Начал создавать новую новость, и у меня фотография вроде как подгрузилась: 

Изображение

Но когда я нажал сохранить, новость появилась без фотографии. 

Изображение

Что нужно сделать, чтобы фото по умолчанию выходило в новости?   

При том, когда нажимаю редактировать запись, то фотография отображается: 

Изображение

#2 19 апреля 2024 в 17:05

Но когда я нажал сохранить, новость появилась без фотографии

Саня

потому что поле хранит данные в виде массива копий фотографий, уменьшенных по настройкам пресетов. А вы ей отдаете одну картинку

Начал создавать новую новость, и у меня фотография вроде как подгрузилась

Саня

это фича. Пользоваться этим в поле Изображение не стоит

Что нужно сделать, чтобы фото по умолчанию выходило в новости?

Саня

Поработать с шаблоном записи. Добавить проверку наличия фотографии, и если ее нет, то выводить заглушку.

#3 19 апреля 2024 в 17:43

Поработать с шаблоном записи. Добавить проверку наличия фотографии, и если ее нет, то выводить заглушку.

Zau4man

Не подскажете как прописать?

Вот как у меня выводится сейчас фотография в этом типе контента, где надо заглушку (это в файле шаблона контента)

<img src="<?php echo cmsConfig::getInstance()->upload_host.'/'.html_image_src($item['main_img'], 'big'); ?>" alt="<?php html($item['main_title']); ?>" width=«100%» height=«430» loading=«lazy»> 

Добавлено спустя 4 минуты

Просто у меня с php плохо дела обстоят. Нужно если в main_img == '' то выводить картинку например по пути site.ru/111.jpg 

Добавлено спустя 5 минут

<?php if($item['main_img'] == '') { ?>
                        <img src=«upload/000/u1/3/c/remzona-main-img-big.png»>
 <?php } ?>

Вот такая конструкция верна? Вроде работает.

#4 19 апреля 2024 в 18:21

 Саня, для проверки на пустоту лучше использовать empty. 

Вроде работает

Саня

скорее всего только на главной странице. Не хватает слеша перед upload/ Должно быть примерно так

  1. <?php if(empty($item['main_img'])) { ?>
  2. <img src="/upload/000/u1/3/c/remzona-main-img-big.png">
  3. <?php } ?>
#5 19 апреля 2024 в 18:43

Должно быть примерно так

Zau4man

Огромное спасибо. 

А ещё вопрос, как то можно прописать для разных категорий разные заглушки? Например есть 2 категории xxxxx и yyyy  как то можно привязаться к категории?

#6 19 апреля 2024 в 20:48

 Саня, можно. напишите в коде 

  1. <?php dump($item); ?>

и вы увидите, в каком параметре массива хранится у $item категория. И дальше по аналогии.

#7 19 апреля 2024 в 22:12

А чем настройка «изображение по умолчанию» не угодила?Изображение

#8 19 апреля 2024 в 23:07

 CEH9I, мне кажется разница в том, что даже если вы загрузите изображение по умолчанию — то оно будет просто отображаться в новости, если кто-то не загрузил новость, при этом в поле загрузки данная фотография не будет отображаться как уже загруженная. Немного сумбурно, ну вы наверное поняли )

#9 20 апреля 2024 в 00:11

 CEH9I, мне кажется разница в том, что даже если вы загрузите изображение по умолчанию — то оно будет просто отображаться в новости, если кто-то не загрузил новость, при этом в поле загрузки данная фотография не будет отображаться как уже загруженная. Немного сумбурно, ну вы наверное поняли )

Foxman23

Да, но поидее если пользователь не загрузил картинку то будет изображение по умолчанию.

#10 20 апреля 2024 в 01:28

 CEH9I, о том и речь. ТСу же нужно, чтобы фото отображалось в форме

#11 20 апреля 2024 в 13:29

Возникла необходимость при создании в одном типе контента фото по умолчанию сделать из заготовок. И если надо, то пользователь её поменяет. Как сделать так что бы, для поля изображение поле уже стояло из загруженного на хостинге? 

Что я сделал:

1) Открыл демо сайт, в новостях у поля Фотография прописал в предустановленном значении путь к фотографии из предыдущей новости:

Изображение

2) Начал создавать новую новость, и у меня фотография вроде как подгрузилась: 

Изображение

Но когда я нажал сохранить, новость появилась без фотографии. 

Изображение

Что нужно сделать, чтобы фото по умолчанию выходило в новости?   

При том, когда нажимаю редактировать запись, то фотография отображается: 

Изображение

Саня

Так загрузите по дефолту картинку в админке поля. Таким образом при создании пользователь увидит вашу картинку, а на сайте отобразится по умолчанию та, которую вы загрузили в админке поля, если пользователь не загрузит свою. И шаманить с шаблонами не придётся.

#12 21 апреля 2024 в 00:59

Так загрузите по дефолту картинку в админке поля. Таким образом при создании пользователь увидит вашу картинку, а на сайте отобразится по умолчанию та, которую вы загрузили в админке поля, если пользователь не загрузит свою. И шаманить с шаблонами не придётся.

Def

Я первым делом именно это и пробовал сделать. Но почему то не получилось. Может из за того что у меня свой вывод шаблона. 

Но тем способом что подсказал Zau4man всё получилось. Тему можно закрывать. 

Всем большое спасибо.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.