Как вывести фото категории в виджете вывода записей типа контента?

#1 3 ноября 2021 в 08:46

Задача вшапке вывода заголовка виджета вывести картинку выбранной для вывода категории записей типа контента. Возможно ли это и если да, то как? Справа в заголовке виджета вывести изображение, которое загружено в категорию.
Заранее спасибо.

Изображение

Добавлено спустя 19 часов

не уж-то нет решения для вывода изображения картинки из категории типа контента в виджет?(

#2 3 ноября 2021 в 11:56

Наверное есть. Если заданна категория, то в виджете уже есть переменая  $category, в которой должа быть ваша картинка. Вытаскиваем её и меняем заголовок $this->title = 'тут html код с вашей картинкой и названием категории'. Не пробовал сам).

 

Добавлено спустя 1 час

Но легче наверное всё это в шаблоне виджета сделать.

#3 3 ноября 2021 в 12:46

На мой взгляд, самое просто решение, это в шаблоне контейнера (который wrapper), сделать справа от заголовка слой под фон.

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

#4 3 ноября 2021 в 13:50

На мой взгляд, самое просто решение, это в шаблоне контейнера (который wrapper), сделать справа от заголовка слой под фон.

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

Zau4man

Как вариант: не играться с контейнером, а просто не выводить заголовок виджета и выводить блок с категорией в шаблоне виджета над списком записей

#5 4 ноября 2021 в 00:36

На мой взгляд, самое просто решение, это в шаблоне контейнера (который wrapper), сделать справа от заголовка слой под фон.

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

Zau4man

Как вариант: не играться с контейнером, а просто не выводить заголовок виджета и выводить блок с категорией в шаблоне виджета над списком записей

Олег Васильевич я

это получится в два раза больше виджетов выводить надо, верно?

#6 4 ноября 2021 в 09:36

Нет

#7 4 ноября 2021 в 14:56

это получится в два раза больше виджетов выводить надо, верно?

Def

нет. У каждого виджета есть шаблон. И у всех виджетов может быть еще шаблон контейнера. В моем варианте редактировать придется два файла.

#8 6 ноября 2021 в 23:02

это получится в два раза больше виджетов выводить надо, верно?

Def

нет. У каждого виджета есть шаблон. И у всех виджетов может быть еще шаблон контейнера. В моем варианте редактировать придется два файла.

Zau4man

 wraper.tpl.php получить опции виджета $widget->options['category_id'].

Это выражение работает в самом виджете, но не работает в обертке.

#9 7 ноября 2021 в 15:46

Это выражение работает в самом виджете, но не работает в обертке

Def

я этого и не утверждал. Обертки вообще живут своей жизнью. Поэтому и предложил решение с правками в двух файлах. Можно еще через кеш модели сделать. Можно значение фона положить прямо в cmsTemlate. И еще куча решений.

#10 27 ноября 2021 в 00:02

Добрый вечер или утро. помогите разобраться. Я php  знаю на уровне «Привет Мир». поставил свежую cms, работаю над дизайном. Решил испытать новый компонент (Contentus)  для вывода контента. Но почему то выводит без картинок (картинка no_photo.png). шаблон взял такую

  1. <?php $this->addCSS('templates/default/controllers/content/widgets/contentus/css/contentus5.css'); ?>
  2. <?php if ($items){ ?>
  3. <div class="container contentus-<?= $id; ?>">
  4. <div class="row">
  5. <?php foreach($items as $item) { ?>
  6. <?php $url = href_to($ctype['name'], $item['slug']) . '.html'; $image = html_image_src($item[$image_field], $image_preset, true); ?>
  7. <div class="col-md-3 col-sm-6">
  8. <div class="contentus-5">
  9. <a href = "<?php echo $url; ?>">
  10. <?php echo (empty($image)) ? '<img src="/templates/default/controllers/content/widgets/contentus/img/no_photo.png">' : '<img src="'.$image.'">'; ?>
  11. </a>
  12. <div class="team-content">
  13. <a class = "contentus-link5" href="<?php echo $url; ?>"><?php html($item['title']); ?></a>
  14. <span class="post"><?php html(string_date_age_max($item['date_pub'], true)); ?></span>
  15. </div>
  16. </div>
  17. </div>
  18. <?php } ?>
  19. </div>
  20. </div>
  21. <?php } ?>

Как я понимаю, на 10ой строке переменная $image пустая.  что мне делать чтобы первая картинка в статьи был в переменной $image?

#11 27 ноября 2021 в 00:08

Как я понимаю, на 10ой строке переменная $image пустая.  что мне делать чтобы первая картинка в статьи был в переменной $image?

Timer

Неправильно понимаете. Здесь обычная проверка на пустоту. Если поле пустое — выводится заглушка, если заполнено — выводится фото из поля который вы в настройках виджета указали как поле с изображением. 

#12 27 ноября 2021 в 00:25

Если поле пустое — выводится заглушка, если заполнено — выводится фото из поля который вы в настройках виджета указали как поле с изображением.

 У меня не получаеться тогда. Типы контента- страницы-поля добавляю новую поле с типом изображения. В контенте самом редактирование добавляю саму картинку, в виджете «поле изображения» указываю поле новосозданную. все ровно заглушка торчит.

#13 27 ноября 2021 в 00:41

 Timer, поверьте работу с любым другим типом контента. Например «Новости»

#14 27 ноября 2021 в 09:51

 Timer, поверьте работу с любым другим типом контента. Например «Новости»

Make

Спасибо за подсказку. с типом новости заработал, и теперь смог настроить и для других типов. Шикарно!!! Но еще не все. в настройках виджета где пресет изображения хочу добавить свой формат. Например 365 на 365 пиксели без растягивания Куда копать?

#15 27 ноября 2021 в 11:02

 Timer, воспользуйтесь компонентом «загрузка изображений». Создайте нужный вам пресет с необходимыми размерами, после этого включите этот пресет в настройке поля изображения вашего типа контента. Ну и потом в настройках виджета поменяйте пресет на ваш.

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