Итак, для начала расскажу как вообще вывести материалы по теме в Битрикс, просто чтобы с чегото начать описание метода
Задача на конкретном сайте:
Имеется сайт 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 новостей по теме?"
Михаил Базаров17.06.2014
Пишите на почту
Сергей24.10.2014
Подскажите пожалуйста, а чтобы это работало, при публикации надо теги писать или что другое? Или просто заголовка, анонса и основного текста хватит? Спасибо.
Михаил Базаров25.10.2014
Цитата
Сергей пишет: Подскажите пожалуйста, а чтобы это работало, при публикации надо теги писать или что другое? Или просто заголовка, анонса и основного текста хватит? Спасибо.
Да в принципе как угодно. Например свойством "Привязка к разделам"
Сергей26.10.2014
Я в смысле того, что как битрикс узнает что это похожая новость? Он случайно будет выводить или тупо последние новости?
Михаил Базаров27.10.2014
Цитата
Сергей пишет: Я в смысле того, что как битрикс узнает что это похожая новость? Он случайно будет выводить или тупо последние новости?
По идее, лучше и правильнее всего привязывать к разделам по тематике. Что-то вроде- "а еще на эту тему можно почитать вот это" или на другие темы аля "Также рекомендуем почитать". Соответсвенно после отбора по тематике будет сортировать по дате или индексу сортировки или алфавиту, тут уж как сами посчитаете нужным в рамках вашего сайта.
Александр28.04.2015
Михаил, подскажите, если не сложно, создаю в инфоблоке свойство "Привязка к элементам с автозаполнением" (там просто список выбора удобнее). При добавлении статьи, используя это свойство, добавляю еще несколько страниц и все вроде работает. Но! Список прикрепленных статей выводится в списке статей а не в детальном просмотре. Пробовал копировать функцию в шаблон детальной новости - не помогает. Может в файле result_modifier.php что-то дописывать надо? Там у меня пока только фотогалерея описана. Буду признателен за советы. Заранее благодарен.
Александр02.01.2016
Не знаю что еще сделать.... Не работает, хоть ты развались!
jim_nyc15.07.2016
Михаил, может сделаете видео, по этой статье
jim_nyc02.11.2016
Михаил, я делал по документации Битрикса, но там практически тоже самое. Единственное не подскажите в каком шаблоне редактировать вывод "Материалы по теме:". Не нашел их в news detail Хотел дизайн немного изменить.