Мои компоненты
Многие задачи на сайте можно решить, используя стандартные компоненты. Достаточно бывает изменения шаблона компонента или использование обработки параметров компонента в файле result_modifier.php.
Файл result_modifier.php, подключается непосредственно перед подключением шаблона компонента. Этот файл получает на вход массив результатов работы компонента и массив параметров вызова компонента. Таким образом, можно изменить массив результатов работы компонента под конкретный шаблон.
Например, системный компонент полностью подходит для сайта, за исключением того, что он не возвращает какое-то дополнительное поле. В данном случае следует создать файл result_modifier.php в шаблоне компонента и дописать в массив результатов работы компонента дополнительное поле. Могут быть и другие варианты использования этого файла.
Однако для решения некоторых задач может потребоваться создание собственных компонентов.
Собственные компоненты могут быть созданы пользователем самостоятельно в соответствии с документацией. Или же они могут быть созданы на основе системных компонентов, путем упрощения или частичного изменения функционала.
Все компоненты находятся в папке /bitrix/components/. Системные компоненты находятся в папке /bitrix/components/bitrix/. Содержимое этой папки обновляется системой обновлений и не может изменяться пользователями.
Внимание! Изменение чего-либо в папке системных компонентов /bitrix/components/bitrix/ может привести к непредсказуемым последствиям.
Пользовательские компоненты могут находиться в любых других подпапках папки /bitrix/components/, например в данном демонстрационном проекте специально создана папка /bitrix/components/demo/, в которой размещаются примеры пользовательских компонентов.
В качестве примеров пользовательских компонентов представлены следующие:
- Компонент показа списка новостей
- Компонент показа детальной страницы новостей
- Комплексный компонент новостей news
На страницах данного раздела приведены примеры их подключения и использования.
Подключение компонентов выполняется в визуальном редакторе:

В коде страницы подключение компонента выполняется следующим образом:
<?$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", ...)
Обратите внимание, создание пользовательского компонента на основе системного имеет определенные минусы: компонент не будет обновляться , а значит не будут исправляться ошибки и добавляться новый функционал.
Подробную информацию по созданию компонентов вы можете найти в документации для разработчика.
