Битрикс. Создание простого компонента. Часть 1 из 2
26.08.2018
Теги: $arParams • $arResult • .description.php • .parameters.php • CMS • Web-разработка • Битрикс • Компонент • ШаблонКомпонента • ЭлементИнфоблока
Давайте создадим простой компонент, который умеет выводить элемент каталога (товар) по его идентификатору. В первую очередь нужно создать свое пространство имен, например demo
. Для этого создаем папку /bitrix/components/demo
, а внутри нее делаем папку компонента catalog.element
. И в ней, в свою очередь, создаем следующие папки и файлы:
- файл
component.php
- файл
.description.php
- файл
.parameters.php
- папка
templates
[bitrix]
[components]
[bitrix]
[advertising.banner]
..........
[demo]
[catalog.element]
[templates]
[.default]
template.php
component.php
.description.php
.parameters.php
В файле component.php
размещаем код, получающий из базы данных элемент инфоблока по идентификатору:
<?php /* * Файл bitrix/components/demo/catalog.element/component.php */ if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die(); // массив результата работы компонента $arResult = array(); if (CModule::IncludeModule('iblock')) { // получаем из базы данных элемент инфоблока по идентификатору; // идентификатор получаем из входных параметров компонента $PRODUCT_ID = (int)$arParams['PRODUCT_ID']; $result = CIBlockElement::GetByID($PRODUCT_ID); if ($product = $result->GetNext()) { $arResult['GENERAL'] = $product; } } // подключаем шаблон компонента $this->IncludeComponentTemplate();
В файле .description.php
задаем имя и описание компонента и задаем расположение компонента в визуальном редакторе:
<?php /* * Файл bitrix/components/demo/catalog.element/.description.php */ if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die(); $arComponentDescription = array( 'NAME' => 'Товар каталога', 'DESCRIPTION' => 'Выводит товар каталога', 'PATH' => array( 'ID' => 'demo', 'NAME' => 'Мои компоненты', 'CHILD' => array( 'ID' => 'demo_catalog', 'NAME' => 'Каталог товаров' ) ), 'ICON' => '/images/icon.gif' );
Ключи массива $arComponentDescription
:
NAME
— название компонента;DESCRIPTION
— описание компонента;ICON
— путь к иконке компонента относительно папки компонента;PATH
— расположение компонента в виртуальном дереве компонента в визуальном редакторе. Значением этого элемента должен быть массив, имеющий ключи:ID
— код ветки дереваNAME
— название ветки дереваCHILD
— подчиненная ветка. В элементе с ключемCHILD
может быть задана подчиненная ветка дерева с той же структурой, что и родительская ветка. Названия первого уровняcontent
(контент),service
(сервисы),communication
(общение),e-store
(магазин),utility
(служебные) стандартизованы и их задавать не следует. Если ключPATH
не задан, то компонент не будет присутствовать в визуальном редакторе.
<?php /* * Файл bitrix/components/demo/catalog.element/.parameters.php */ if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die(); $arComponentParameters = array( 'GROUPS' => array(), 'PARAMETERS' => array( 'PRODUCT_ID' => array( 'PARENT' => 'BASE', // код группы, если отсутствует, подразумевается ADDITIONAL_SETTINGS 'NAME' => 'Идентификатор товара', // название параметра на текущем языке 'TYPE' => 'STRING', // тип элемента управления, в котором будет устанавливаться параметр 'MULTIPLE' => 'N', // одиночное/множественное значение (N/Y) 'DEFAULT' => '346', // значение по умолчанию 'REFRESH' => 'Y', // перегружать настройки или нет после выбора (N/Y) ), ), );
Параметры в визуальном параметре группируются, ключ GROUPS
задает массив групп параметров компонента. Имеется предопределенный набор групп:
Код | Сортировка | Название | Описание |
---|---|---|---|
BASE |
100 | Основные параметры | Базовые параметры для работы компонента |
DATA_SOURCE |
200 | Источник данных | Параметры, указывающие, откуда выбирать данные для компонента (к примеру, для компонент модуля Инфоблоки это тип и ID инфоблока). |
VISUAL |
300 | Настройки внешнего вида | Сюда предполагается размещать параметры, отвечающие за внешний вид. |
USER_CONSENT |
350 | Согласие пользователя | Настрйока параметров на получение согласия пользователя, согласно законодательству РФ. |
URL_TEMPLATES |
400 | Шаблоны ссылок | Служебная |
SEF_MODE |
500 | Управление адресами страниц | Группа для всех параметров, связанных с использованием ЧПУ. |
AJAX_SETTINGS |
550 | Управление режимом AJAX | Все, что касается использования AJAX. |
CACHE_SETTINGS |
600 | Настройки кеширования | Появляется при указании параметра CACHE_TIME . |
ADDITIONAL_SETTINGS |
700 | Дополнительные настройки | Эта группа появляется, например, при указании параметра SET_TITLE . |
Ключ PARAMETERS
задает массив параметров компонента. У нас единственный параметр, который задает идентификатор элемента инфоблока.
И наконец, файл шаблона компонента, который отвечает за показ элемента инфоблока:
<?php /* * Файл bitrix/components/demo/catalog.element/templates/.default/template.php */ if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die(); ?> <h1><?= $arResult['GENERAL']['NAME']; ?></h1> <?php if (!empty($arResult['GENERAL']['DETAIL_TEXT'])): ?> <div class="description"> <?= $arResult['GENERAL']['DETAIL_TEXT']; ?> </div> <?php endif; ?> <?php if (!empty($arResult['GENERAL']['DETAIL_PICTURE'])): ?> <?php $image = CFile::GetPath($arResult['GENERAL']['DETAIL_PICTURE']); ?> <img src="<?= $image; ?>" alt="" /> <?php endif; ?>
В принципе, компонент готов. Давайте создадим раздел сайта demo
и откроем страницу /demo/index.php
в визуальном редакторе:
После размещения компонента на странице появится форма параметров компонента:
А файл /demo/index.php
будет содержать код вызова компонента:
<?php require $_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"; ?> <?php $APPLICATION->IncludeComponent( "demo:catalog.element", "", Array( "PRODUCT_ID" => "346" ) ); ?> <?php require $_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"; ?>
- Битрикс. Создание простого компонента. Часть 2 из 2
- Битрикс. Шаблон компонента
- Битрикс. Структура простого компонента
- Битрикс. Файл component_epilog.php
- Битрикс. Создание комплексного компонента. Часть 4 из 4
- Битрикс. Создание комплексного компонента. Часть 3 из 4
- Битрикс. Создание комплексного компонента. Часть 2 из 4
Поиск: $arParams • $arResult • .description.php • .parameters.php • CMS • Web-разработка • Битрикс • Компонент • Шаблон компонента • Элемент инфоблока • $arComponentDescription • $arComponentParameters