Компоненты битрикс и системные массивы $arParams и $arResult

1c-bitrix-logo-vert-smКороткая заметка о такой сущности CMS Битрикс как Компонент. Так уж повелось что под компонентами в разных системах управления сайтами имеются ввиду несколько разные функциональные единицы. В NetCat — шаблон отображения данных раздела (т.е. данные отображаемые лежат скорее в таблицах разделов), в Joomla обычно самодостаточный функциональный элемент сайта/портала (например, фотогалерея, форум, каталог ссылок, данные находятся скорее в таблицах компонента). В битрикс же, по-моему, компоненты это нечто среднее. Далее кратко, о компонентах и массивах параметров.

Компоненты 2.0 Битрикс

1. Лежат в папке sitename\bitrix\components\devname, где devname — условно название разработчика компонента (т.е. в папке sitename\bitrix\components\bitrix лежат стандартные компоненты созданные в подземелиях bitrix).
2. Папка компонента обязательно должна содержать два файла: .description.php — описание компонента, и component.php — основной файл компонента (но мы рассмотрим еще и parameters.php — описание входных параметров компонента).
3. Вызываются на фронте методом $APPLICATION->IncludeComponent, в шаблоне сайта, который, изрядно поискав, можно найти так: Настройки::Настройки продукта::Сайты::Шаблоны сайтов.

Содержание файлов компонента

1. Примерное содержание файла .description.php:

<?
$arComponentDescription = array(
   "NAME" => GetMessage("COMP_NAME"),
   "DESCRIPTION" => GetMessage("COMP_DESCR"),
   "ICON" => "/images/icon.gif",
   "PATH" => array(
      "ID" => "content",
      "CHILD" => array(
         "ID" => "catalog",
         "NAME" => "Каталог товаров"
      )
   ),
   "AREA_BUTTONS" => array(
      array(
         'URL' => "javascript:alert('Это кнопка!!!');",
         'SRC' => '/images/button.jpg',
         'TITLE' => "Это кнопка!"
      ),
   ),
   "CACHE_PATH" => "Y",
   "COMPLEX" => "Y"
);
?>

2. Содержание файла .parameters.php.
3. Содержание файла component.php.
4. Файл шаблона отображения данных компонента должен лежать по адресу /bitrix/components/devname/component.name/templates/.default/template.php.
5. Вызов (подключение) компонента на фронте (в шаблоне сайта):

<?
//...
$APPLICATION->IncludeComponent("bitrix:catalog.list","table/index.php", 
    array( 
         "IBLOCK_TYPE_ID" => "catalog",
         ), 
    $component 
);
//...
?>

На одном из блогов подмечено: из массива $arComponentParameters будет сгенерирован массив $arParams, который будет использоваться в основном файле нашего компонента — component.php, шаблон принимает массив $arResult, сгенерированный в файле component.php и выводит его содержимое в браузер. Но если у вас появится желание узнать где именно происходит превращение $arComponentParameters в $arParams то вы наверное обратитесь к документации к битрикс, и попадете на страницу Замечания по массивам $arParams и $arResult на которой об этом ни слова.

Так вот, для объяснения этого явления использую кусок статьи из википедии о битриксе:

Сложность ориентирования в исходном коде Битрикса, достаточно тяжёлый стиль этого кода. К тому же в большинстве современных Open Source CMS, документация генерируется с помощью phpDocumentor или Doxygen, что гарантирует её актуальность и возможность взглянуть на исходный код

Для сравнения взгляните на сгенерированную документацию к одному из классов Joomla. Не правда ли, все ясно и понятно?

Комментариев: 3

  • 31.03.2011 Julliet:

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

  • 05.12.2012 Vic:

    Про стиль это точно.

    Как по мне — Битрикс ну совсем не фонтан. Как-то все наворочено и вывернуто наизнанку.

    Единственная удобная штука — это наверное графический редактор — то что надо «для домохозяек».

  • 16.04.2013 Владислав:

    документация бесплатных аналогов битрикса на порядок и более лучше. Не понял про графический редактор — это где такой в битриксе? впрочем неважно, редактору битрикса до того же TinyMce очень далеко. позор для такой дорогой системы


Добавление комментария:

 css.php