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



@Enkin

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

Как такое сделать?


Решения вопроса 0


Ответы на вопрос 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'] = 'Мануал';

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *