Создание компонента

Компоненты создаются в следующих папках:

  • local/components/mycomponent/ (рекомендуется)
  • bitrix/components/mycomponent/

Папка «mycomponent» является пространством имён для Bitrix. Внутри данной папки создаются сами компоненты, которые можно будет вызвать примерно такими именами:

'mycomponent:blog',     // local/components/mycomponent/blog/
'mycomponent:calendar', // local/components/mycomponent/calendar/
'mycomponent:date'      // local/components/mycomponent/date/

Внутри каждой папки компонента должны быть три обязательных файла.

  1. mycomponent/blog/component.php или class.php (код компонента)
  2. mycomponent/blog/.description.php (описание компонента)
  3. mycomponent/blog/templates/.default/template.php (шаблон компонента)

Есть два способа создания компонента, через файл «component.php» или «class.php». Второй способ создаёт компонент через ООП.   

Шаг 1: Подключение шаблона

В файле «component.php» или «class.php» надо добавить следующий код, который позволит загружать контент из файла «template.php».

# 1-ый способ (component.php)
$this->IncludeComponentTemplate();

# 2-ой способ (class.php)
class Custom extends CBitrixComponent
{
    public function executeComponent()
    {
        $this->IncludeComponentTemplate();
    }
}

Также в методе IncludeComponentTemplate() можно указать другой шаблон.

# component.php
$this->IncludeComponentTemplate('list'); // загрузится шаблон list.php

Чтобы передать переменные в шаблон компонента, надо в файле «component.php» или «class.php» создать массив $arResult.

// Создание переменной в компоненте
$arResult['VAR'] = 'Переменная';       // component.php
$this->arResult['VAR'] = 'Переменная'; // class.php

# Использование в шаблоне (templates/.default/template.php)
echo $arResult['VAR']; // Переменная

Шаг 2: Файл настроек

Файлы «template.php» и «.description.php» заполнять не обязательно, но можно указать настройки в файле «.description.php»:

# .description.php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) {die();}

$arComponentDescription = array(
    'NAME' => 'Имя компонента',
    'DESCRIPTION' => 'Описание компонента',
);

Пример настройки компонента:

Шаг 3: Вывод компонента

Компонент создан. Его можно вызвать на странице редактирования шаблона через следующий код:

$APPLICATION->IncludeComponent(
    'mycomponent:blog'
);

На месте данного кода появится контент из файла «template.php»