Мои компоненты

Многие задачи на сайте можно решить, используя стандартные компоненты. Достаточно бывает изменения шаблона компонента или использование обработки параметров компонента в файле result_modifier.php.

Файл result_modifier.php, подключается непосредственно перед подключением шаблона компонента. Этот файл получает на вход массив результатов работы компонента и массив параметров вызова компонента. Таким образом, можно изменить массив результатов работы компонента под конкретный шаблон.

Например, системный компонент полностью подходит для сайта, за исключением того, что он не возвращает какое-то дополнительное поле. В данном случае следует создать файл result_modifier.php в шаблоне компонента и дописать в массив результатов работы компонента дополнительное поле. Могут быть и другие варианты использования этого файла.

Однако для решения некоторых задач может потребоваться создание собственных компонентов.

Собственные компоненты могут быть созданы пользователем самостоятельно в соответствии с документацией. Или же они могут быть созданы на основе системных компонентов, путем упрощения или частичного изменения функционала.

Все компоненты находятся в папке /bitrix/components/. Системные компоненты находятся в папке /bitrix/components/bitrix/. Содержимое этой папки обновляется системой обновлений и не может изменяться пользователями.

Внимание! Изменение чего-либо в папке системных компонентов /bitrix/components/bitrix/ может привести к непредсказуемым последствиям.

Пользовательские компоненты могут находиться в любых других подпапках папки /bitrix/components/, например в данном демонстрационном проекте специально создана папка /bitrix/components/demo/, в которой размещаются примеры пользовательских компонентов.

В качестве примеров пользовательских компонентов представлены следующие:

На страницах данного раздела приведены примеры их подключения и использования.

Подключение компонентов выполняется в визуальном редакторе:

Мои компоненты

В коде страницы подключение компонента выполняется следующим образом:

<?$APPLICATION->IncludeComponent("demo:news.detail", ".default", Array(
   "IBLOCK_TYPE" => "news",
   "IBLOCK_ID" => "3",
   "ELEMENT_ID" => $_REQUEST["ID"],
   "IBLOCK_URL" => "news_list.php",
   "CACHE_TYPE" => "A",
   "CACHE_TIME" => "3600",
   "DISPLAY_PANEL" => "N",
   "SET_TITLE" => "Y",
   "ADD_SECTIONS_CHAIN" => "N",
   "DISPLAY_DATE" => "Y",
   "DISPLAY_NAME" => "N",
   "DISPLAY_PICTURE" => "Y"
 )
);?>

Обратите внимание: название подпапки папки /bitrix/components/ используется для группировки компонентов и при их подключении. Например, все системные компоненты расположены в папке /bitrix/components/bitrix.

Соответствующий код подключения системных компонентов выглядит следующим образом:

$APPLICATION->IncludeComponent("bitrix:news.line", ...)

Для пользовательских компонентов из папки /bitrix/components/demo подключение выполняется так:

$APPLICATION->IncludeComponent("demo:news.line", ...)

Обратите внимание, создание пользовательского компонента на основе системного имеет определенные минусы: компонент не будет обновляться , а значит не будут исправляться ошибки и добавляться новый функционал.

Подробную информацию по созданию компонентов вы можете найти в документации для разработчика.