April 24, 2013

bitrix:news.list в другом шаблоне

Всем привет!

Пишу сей небольшой пост который надеюсь сэкономит кому-то 10-15 минут времени на поиск решения. общем ситуация такова:

  1. Была задача вывести в детальном шаблоне новости отфильтрованные ссылки на другие новости
  2. Для вывода списка решил воспользоваться компонентом news.list (хотя можно было проще ручками через GetList) код вызова которого я разместил в шаблоне news.detail
  3. Прописал FILTER_NAME => “arrList” и в $arrList добавил массив с фильтром, но он отчего-то не заработал.

Оказалось что решение проблемы довольно простое - нужно объявить переменную $arrList глобальной. Вот пример рабочего кода запуска news.list с фильтром из шаблона другого компонента:

<?php
//...

global $arrList;
$arrList = array("!ID"=>$arResult["VARIABLES"]["ELEMENT_ID"]);
?>
$APPLICATION->IncludeComponent("bitrix:news.list", "spec-list", array(
 ...
 "FILTER_NAME" => "arrList",
...

Если возникнут вопросы - задавайте их прямо в комментариях, постараюсь ответить. Удачи!