Перейти к содержанию

Кастомизация компонентов

Кастомизация стандартного компонента - копирование стандартного компонента в собственное пространство имён и изменение логики его работы с целью изменения/добавления функционала.

Большинство задач в Bitrix Framework реализуется через компоненты, и в шаблоне компонента вы оперируете массивами $arResult - это результат работы компонента (данные) и $arParams - это входные параметры.

Чтобы кастомизировать стандартный компонент необходимо:

  • Создать новое пространство имен компонентов в папке /local/components/, например создать директорию /local/components/my_components/.

Чтобы кастомизированный компонент подключился автоматически вместо стандартного, необходимо разместить его в директории /local/components/bitrix/. - В созданную папку необходимо скопировать папку с компонентом, который хотите изменить (копировать из папки /bitrix/components/bitrix/). - Изменить компонент под текущие задачи. - Изменить описание компонента на свое в файлах .description.php и /lang/ru/.description.php. Если файлов .description.php нет, вы можете создать их. Они не обязательны и могут отсутствовать у стандартных компонентов. - Исправить файлы .parameters.php и component.php, модифицировав (добавив необходимый) функционал с помощью API продукта; - Отредактировать шаблон компонента под текущие задачи. - Очистите кеш

визуального редактора. В результате в визуальном редакторе отобразится кастомизированный компонент.

Важно! У работы с копией компонента есть определенные недостатки, которые нужно учитывать: - Увеличивается общее количество компонентов, соответственно растет и количество выделяемых на их поддержку ресурсов. - Сложность в освоении новым разработчиком: сначала ему нужно будет найти, в чем отличие кастомизированного компонента от уже существующего стандартного.

Важно! Выполняя кастомизацию компонента помните, что все ключи в $MESS, содержащие название, описание и параметры компонента, а также идентификаторы веток компонента в дереве компонентов визуального редактора должны быть уникальными в рамках всего продукта.