Материалы по теме в новостях Битрикс, с картинкой, названием и текстом анонса.

7141  |  10

Итак, для начала расскажу как вообще вывести материалы по теме в Битрикс, просто чтобы с чегото начать описание метода

Задача на конкретном сайте:

Имеется полуготовый сайт portal-peterburg.ru - который я делаю неспешно, в свободное время и просто для удовольствия. Потому на контент, дизайн и в принципе сайт можете особо времени не тратить.

В разделе "Достопримечательности" необходимо вывести материалы по теме в зависимости от тематики, при этом в самих материалах нужно вывести картинку анонса, текст и название связанного элемента

Решение:

Так как нужно сделать возможность связывать не только тематичные материалы но и заложить возможность, в дальнейшем, связывать любые материалы по всему сайту- решил создать новый инфоблок "Темы связки" внутри которого разделы тематики, а в инфоблоке "О городе" новое свойство "Привязка к разделам" с названием "Тематика (и)" и аттрибутом CATEGORY_TEMA, что даст возможность создавать это свойство в любых новых инфоблоках по всему сайту.

Материалы по теме в Битрикс

Далее выводим инфоблок на сайт и идем в настройки компонента, там ставил чекбокс в разделе "Настройка метариалов по теме" напротив Выводить материалы по теме, выбираем инфоблок (и) в котором храняться разделы/тематики, проставляем наш код свойства CATEGORY_TEMA, выставляем максимальное колличество материалов для отображения и стиль "Предпросмотр картинок"

Материалы по теме в Битрикс

Сохраняемся. Пол дела готово, но все вывелось достаточно стремненько и без текста анонса связанных материалов.

Наводим красоту:

Дело осталось за малым, нужно привести вывод материалов вот к такому виду

Материалы по теме в Битрикс

Для этого идем в редактирование списка новостей материалов по теме:

Материалы по теме в Битрикс

И приводим вот к такому виду: (комментарии по коду можно удалить, просто что-бы было понятно что я творю.)

 

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?if(count($arResult["ITEMS"])>0):?> // если есть связанные

<?foreach($arResult["ITEMS"] as $arItem):?>
<?if(is_array($arItem["PREVIEW_PICTURE"])):?> // у которых есть картинка анонса

<table><tr><td> // просто, что бы отделить. Вообще это табличные данные, пусть таблицей и будут, не фиг с дивами выеживаться
<a href="<?=$arItem["DETAIL_PAGE_URL"]?>">
<img src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" /> // вывести эту картинку
</a>
<a href="<?=$arItem["DETAIL_PAGE_URL"]?>"><?=$arItem["NAME"]?></a> // название ссылкой на детальную
<div><?echo $arItem["PREVIEW_TEXT"];?></div> // и анонс
</td></tr></table>

<?endif?>
<?endforeach;?>

<?endif?>//конец

Замечу, что выводиться будут материалы имеющие картинку анонса, если вам нужно вывести все без разбору, то просто удалите проверку на наличие картинки. Хотя я думаю так будет просто не красиво смотреться- но решать вам.

Собственно живой образец проделанного: здесь

Успехов.

Расскажи друзьям-то:
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей
Зарегистрироваться Войти Напомнить пароль
Или войти через социальную сеть:
Александр
Михаил, не получается - элемент (детальная новость пропадает)! Сколько стоит "допилить вывод 5 новостей по теме?"
Михаил Базаров
Пишите на почту
Сергей
Подскажите пожалуйста, а чтобы это работало, при публикации надо теги писать или что другое? Или просто заголовка, анонса и основного текста хватит? Спасибо.
Михаил Базаров
Цитата
Сергей пишет:
Подскажите пожалуйста, а чтобы это работало, при публикации надо теги писать или что другое? Или просто заголовка, анонса и основного текста хватит? Спасибо.
Да в принципе как угодно. Например свойством "Привязка к разделам"
Сергей
Я в смысле того, что как битрикс узнает что это похожая новость? Он случайно будет выводить или тупо последние новости?
Михаил Базаров
Цитата
Сергей пишет:
Я в смысле того, что как битрикс узнает что это похожая новость? Он случайно будет выводить или тупо последние новости?
По идее, лучше и правильнее всего привязывать к разделам по тематике. Что-то вроде- "а еще на эту тему можно почитать вот это" или на другие темы аля "Также рекомендуем почитать". Соответсвенно после отбора по тематике будет сортировать по дате или индексу сортировки или алфавиту, тут уж как сами посчитаете нужным в рамках вашего сайта.
Александр
Михаил, подскажите, если не сложно, создаю в инфоблоке свойство "Привязка к элементам с автозаполнением" (там просто список выбора удобнее). При добавлении статьи, используя это свойство, добавляю еще несколько страниц и все вроде работает. Но! Список прикрепленных статей выводится в списке статей а не в детальном просмотре. Пробовал копировать функцию в шаблон детальной новости - не помогает. Может в файле result_modifier.php что-то дописывать надо? Там у меня пока только фотогалерея описана.
Буду признателен за советы.
Заранее благодарен.
Александр
Не знаю что еще сделать.... Не работает, хоть ты развались!
jim_nyc
Михаил, может сделаете видео, по этой статье ;)
jim_nyc
Михаил, я делал по документации Битрикса, но там практически тоже самое. Единственное не подскажите в каком шаблоне редактировать вывод "Материалы по теме:". Не нашел их в news detail Хотел дизайн немного изменить.

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: