должен быть в компонентах?
А если речь идет о $GLOBALS['filter'] перед вызовом news.list? Должен ли разработчик из-за строки с объявлением глобального фильтра (который будет в визуальном редакторе контент-менеджеру представлен как "PHP-код") помещать news.list в комплексный компонент (даже если роутинг не требуется)?
@VirtualWhiskers
если этот код вынести в первый php блок с подключением хедера - такие блоки «код php» не будут попадать в редактор страницы, но будут сохранены при изменении
В моем случае не могу вынести $GLOBALS['filter'] в первый php-блок, так как массив id для глобального фильтра формирует bitrix:search.page. $ids = $APPLICATION->IncludeComponent('bitrix:search.page', '', []); Возможно лучше этот блок с глобальным фильтром в result_modifier.php вынести?
в result_modifier уже будет сформированная информация для вывода. я бы предложил либо оформить в собственный компонент-обертку, который будет проксировать все настройки в дочерние компоненты. если хочется чистоты в редактируемой странице, либо, если удастся, то попытаться массив фильтра задать в component_epilog кастомного шаблона bitrix:search.page
Но почему component_epilog? Шаблон не кешируется у bitrix:search.page. Найденные элементы вывожу news.list-ом по фильтру id
потому что result_modifier и component_epilog отвечают за бизнес-логику в разных применениях, а template за вывод, многие не учитывают этот факт и делают все в шаблоне. если бы битрикс использовал какой-нибудь шаблонизатор наподобие того же twig, то вопрос о размещении бизнес-логики внутри шаблона отпал сам по себе
в целом ничего не мешает написать расширение для twig для присвоения значения переменной из $GLOBALS =)
component_epilog не подключается в search.page
извините, нагуглил - проблема с 2013 года, что шаблон search.page подключается в обход стандартной схемы включающей в себя component_epilog в таком случае для элегантности остается только компонент-обертка
Вы это имели в виду под проксированием настроек? https://pastebin.com/zEgQPJ35
да, аналогичное в комплексных компонентах используется
Обсуждают сегодня