Вывод новостей по сюжету — различия между версиями
Mad grant (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
||
Строка 33: | Строка 33: | ||
%news subjectsList()% — выводит новости, относящиеся к выбранн(ому)ым сюже(ту)там. | %news subjectsList()% — выводит новости, относящиеся к выбранн(ому)ым сюже(ту)там. | ||
+ | |||
+ | '''Параметры: subjectsList($id, [$template = 'default', $mode = 'and', $per_page = 0, $ignore_paging = false])''' | ||
== Листинг макроса == | == Листинг макроса == |
Версия 15:06, 31 октября 2013
Актуально для версии 2.9.1
Содержание
Задача
Стандартно в UMI.CMS у типа данных "Новость" есть поле "Сюжеты", также есть одноименный тип данных. У любой новости можно выбрать некоторое количество сюжетов:
Есть макрос %news related_links()%, который выводит список последних новостей, связанных по сюжету с указанной новостью. А если мы просто захотим вывести все новости, у которых указан определенный сюжеты или сюжеты, то такого макрос в системе нет. Можно конечно указать у новости тег и вывести все страницы с указанным тегом, но это не самое красивое и удобное решение, особенно, если используете теги для других нужд.
Решение
В этой статье будет приведен макрос, решающий нашу задачу, но сначала нужно будет внести некоторые изменения в тип данных "Сюжет публикации", добавим в этот тип данных следующую группу полей и поле, обязательно с теми же идентификаторами:
Для использования, приведённого ниже, макроса, нам нужно будет заполнить созданное поле у элементов справочника "Сюжет публикации", обязательно латинскими буквами, например так:
А потом можно будет выбрать эти значения у новостей:
Описание макроса
%news subjectsList()% — выводит новости, относящиеся к выбранн(ому)ым сюже(ту)там.
Параметры: subjectsList($id, [$template = 'default', $mode = 'and', $per_page = 0, $ignore_paging = false])