Дата последнего изменения: 16.11.2023
Каждый компонент имеет набор переменных, в которых он принимает извне коды или другие атрибуты запрашиваемых данных. Например, компонент bitrix:catalog.section имеет переменные IBLOCK_ID
и SECTION_ID
, в которых он принимает и обрабатывает коды каталога и группы товаров соответственно.
Все компоненты, которые входят в состав комплексного компонента, должны иметь единообразный набор переменных. Например, комплексный компонент bitrix:catalog и все обычные компоненты (bitrix:catalog.section.list, bitrix:catalog.section и т.д.), которыми он управляет, работают с переменными IBLOCK_ID
, SECTION_ID
, ELEMENT_ID
и другими.
Если разработчик при размещении комплексного компонента на странице хочет переопределить переменные компонента, то он среди входящих параметров компонента должен задать параметр VARIABLE_ALIASES
.
При подключении компонента в режиме SEF (ЧПУ) этот параметр должен иметь вид:
"VARIABLE_ALIASES" => array( "list" => array(), "section" => array( "IBLOCK_ID" => "BID", "SECTION_ID" => "ID" ), "element" => array( "SECTION_ID" => "SID", "ELEMENT_ID" => "ID" ), )
Здесь коды массива соответствуют кодам в массиве шаблонов путей. Для каждого пути могут быть заданы свои переопределения переменных.
При подключении компонента не в режиме SEF (ЧПУ) этот параметр должен имет вид:
"VARIABLE_ALIASES" => array( "IBLOCK_ID" => "BID", "SECTION_ID" => "GID", "ELEMENT_ID" => "ID", )
Пример №1:
Пусть требуется, чтобы компонент bitrix:catalog, лежащий в файле /fld/cat.php, работал с путями:/catalog/index.php
– для списка каталогов,
/catalog/section/код_группы.php?ID=код_каталога
– для группы товаров,
/catalog/element/код_товара.php?ID=код_группы
– для детальной информации о товаре.
Во входящих параметрах подключения компонента должны быть установлены следующие параметры:
"SEF_MODE" => "Y", "SEF_FOLDER" => "/catalog/", "SEF_URL_TEMPLATES" => array( "list" => "index.php", "section" => "section/#SECTION_ID#.php?ID=#IBLOCK_ID#", "element" => "element/#ELEMENT_ID#.php?ID=#SECTION_ID#" ), "VARIABLE_ALIASES" => array( "list" => array(), "section" => array( "IBLOCK_ID" => "ID"), "element" => array( "SECTION_ID" => "ID",),
Пример №2:
Пусть требуется, чтобы компонент bitrix:catalog, лежащий в файле /fld/cat.php
, работал с путями
/fld/cat.php
– для списка каталогов,
/fld/cat.php?BID=код_каталога&SID=код_группы
– для группы товаров,
/fld/cat.php?ID=код_товара&SID=код_группы
– для детальной информации о товаре.
Во входящих параметрах подключения компонента должны быть установлены следующие параметры:
"SEF_MODE" => "N", "VARIABLE_ALIASES" => array( "IBLOCK_ID" => "BID", "SECTION_ID" => "SID", "ELEMENT_ID" => "ID", ),