Просмотров: 102937
Дата последнего изменения: 06.07.2022
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Недоступно в лицензиях:
Ограничений нет
Файл result_modifier.php - инструмент для модификации данных работы компонента произвольным образом. Создается разработчиком самостоятельно. Работает при выключенном кешировании.
Если в папке шаблона есть файл result_modifier.php, то он вызывается перед подключением шаблона.
Схема работы компонента с файлом result_modifier.php:
![](/images/dev_full/components/comp_ch_2.png)
В этом файле можно запросить дополнительные данные и занести их в массив результатов работы компонента $arResult
. Это может оказаться полезным, если требуется вывести на экран какие-либо дополнительные данные, но не хочется кастомизировать компонент и отказываться от его поддержки и обновлений.
Примечание: файл result_modifier.php запускается только перед подключением шаблона. При использовании кеширования шаблон не подключается. И через него не получится устанавливать динамические свойства типа: title, keywords, description.
В файле доступны языковые фразы шаблона компонента и следующие переменные:
$arParams
- параметры, чтение, изменение. Не затрагивает одноименный член компонента, но изменения тут влияют на $arParams
в файле template.php.
$arResult
— результат, чтение/изменение. Затрагивает одноименный член класса компонента.
$APPLICATION, $USER, $DB
- объявлять их как global избыточно, они уже доступны по-умолчанию.
$this
— ссылка на текущий шаблон (объект, описывающий шаблон, тип CBitrixComponentTemplate)
Важно! Наиболее правильный вариант кастомизации компонента - скопировать его в отдельное пространство имен и работать уже с копией компонента. При этом нужно учитывать последствия:
- Увеличивается общее количество компонентов, соответственно растет и количество выделяемых на их поддержку ресурсов.
- Сложность в освоении новым разработчиком: сначала ему нужно будет найти в чем отличие от уже существующего стандартного компонента.