Как добавить заглушку в default_list_titles?

InstantCMS 2.X
#1 20 августа 2018 в 12:52
Как сделать, что бы при отсутствии "Основного изображения", отображалась заглушка? При просмотре списка "default_list_titles (Плитка)..

В icms 2, есть 2 типа полей для фотографий.

1. Изображение — с помощью которого можно загрузить основную фотографию.
2. Набор изображений — с помощью которого можно загрузить доп. фотографии.

минус который вижу, это то, что они не взаимосвязаны, при нажатии на основное фото, ничего не происходит, только при нажатии на набор (превью), открывается слайдер где можно их просматривать… (но тема не об этом).
#2 20 августа 2018 в 20:27
По поводу заглушки:

  1.  
  2. <?php if (!empty($item['fields']['photo'])){ ?>
  3. <?php $preset = $fields['photo']['options']['size_teaser']; ?>
  4. <div class="photo" style="background-image: url(<?php echo html_image_src((empty($item['is_private_item']) ? $item['photo'] : default_images('private', $preset)), $preset, true); ?>);">
  5. <?php if ($fields['date_pub']['is_in_list']){ ?>
  6. <div class="note<?php if(!empty($item['is_new'])){ ?> highlight_new<?php } ?>" title="<?php echo $fields['date_pub']['title']; ?>">
  7. <?php echo $fields['date_pub']['handler']->parse( $item['date_pub'] ); ?>
  8. </div>
  9. <?php } ?>
  10. <?php if (empty($item['is_private_item'])) { ?>
  11. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  12. <?php echo html_image($item['photo'], $preset, $item['title']); ?>
  13. </a>
  14. <?php } ?>
  15. <?php unset($item['fields']['photo']); ?>
  16. </div>
  17. <?php } ?>
  18.  

  1.  
  2. <?php if (!empty($item['fields']['photo'])){ ?>
  3. <?php $preset = $fields['photo']['options']['size_teaser']; ?>
  4. <div class="photo" style="background-image: url(<?php echo html_image_src((empty($item['is_private_item']) ? $item['photo'] : default_images('private', $preset)), $preset, true); ?>);">
  5. <?php if ($fields['date_pub']['is_in_list']){ ?>
  6. <div class="note<?php if(!empty($item['is_new'])){ ?> highlight_new<?php } ?>" title="<?php echo $fields['date_pub']['title']; ?>">
  7. <?php echo $fields['date_pub']['handler']->parse( $item['date_pub'] ); ?>
  8. </div>
  9. <?php } ?>
  10. <?php if (empty($item['is_private_item'])) { ?>
  11. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  12. <?php echo html_image($item['photo'], $preset, $item['title']); ?>
  13. </a>
  14. <?php } ?>
  15. <?php unset($item['fields']['photo']); ?>
  16. </div>
  17. <?php } else ( ?>
  18. То что нужно на случай отсутствия картинки. Самый простой вариант - повторить код выше, указав в значение для background-image картинку-заглушку
  19. <?php ) ?>
  20.  
Это в 2.10.1. В других версиях код может быть немного иным.
Предполагается, что поле с картинкой имеет системное имя 'photo'.
=======================================================
А с полями подразберитесь. Там давно расширены возможности вывода.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.