Enkin
@Enkin
менеджер инет-проектов

Как сделать страницу с вложенным URL в каталоге на Битрикс?

Есть каталог на Битриксе с адресацией вида /catalog/КАТЕГОРИЯ/ПРОДУКТ/ .
Каталог реализован через стандартный компонент Битрикса, продукты = элементы инфоблока.
Мне нужно добавить для каждого продукта мануал.
Он должен располагаться по адресу вида /catalog/КАТЕГОРИЯ/ПРОДУКТ/МАНУАЛ , структуру адреса менять нельзя, потому что адреса уже напечатаны в QR на упаковках.
У мануала должен быть свой шаблон, часть инфы берет из продукта, часть - собственный текст (поле для html)

Как такое сделать?
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
@PetrPo
На всякий случай напишу, как это сделать.

1. В параметры комплексного компонента, в SEF_URL_TEMPLATES надо добавить свой ключ, который должен совпадать с "element" + нужная приставка
"SEF_URL_TEMPLATES" => array(
	//...........
	"element" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#/",
	"manual" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#/myprotectionproduct/manual/",
)

2. В шаблон комплексного компонента надо добавить файл manual.php, в котором в массиве $arResult['VARIABLES'] будет доступен ID/CODE элемента, по которому можно понять в каком элементе находимся, дальше можно делать на этой странице все тоже что и на других, например в element.php

3. там же есть файл .parameters.php, добавь в конце
$arTemplateParameters['SEF_URL_TEMPLATES_manual'] = array(
    'PARENT' => 'SEF_MODE',
    'NAME' => GetMessage('PARAMETER_SEF_URL_TEMPLATES_MANUAL'),
    "DEFAULT" => "",
    "VARIABLES" => array(),
);

это чтобы при сохранении компонента из публички не стерся твой параметр, GetMessage('PARAMETER_SEF_URL_TEMPLATES_MANUAL') - надо добавить в lang файл, здесь же папка /lang/ru/.parameters.php добавить
$MESS['PARAMETER_SEF_URL_TEMPLATES_MANUAL'] = 'Мануал';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы