Однажды на проекте возникла задача следующего характера:
для детальных страниц товара требовались несколько вариантов отображения контента, например, у нас есть страница товара с вкладками - Описание, Характеристики, Отзывы по урлу /catalog/product_id.htm.
Изначально открыта вкладка "Описание" (дефолтная).
Требуется на клик по вкладкам описание, характеристика, отзывы переходить на страницы с урлами:
/catalog/product_id.htm - дефолтная вкладка
/catalog/product_id/params- открыта вкладка "Характеристики"
/catalog/product_id/reviews - открыта вкладка "Отзывы"
Уточняю, это именно разные страницы (например, со своими SEO-тегами), никакой подгрузки аяксом, HistoryAPI и прочего.
Решение следующее:
в параметрах комплексного компонента
Модифицируем
В шаблон компонента
Каждый из этих файлов будет подключаться при совпадении урла, то есть для урла
Для упрощения редактирования в каждом из этих файлов можно подключить какой-то базовый файл с компонентом отображения товара и парой-другой параметров, определяющих логику и шаблон.
для детальных страниц товара требовались несколько вариантов отображения контента, например, у нас есть страница товара с вкладками - Описание, Характеристики, Отзывы по урлу /catalog/product_id.htm.
Изначально открыта вкладка "Описание" (дефолтная).
Требуется на клик по вкладкам описание, характеристика, отзывы переходить на страницы с урлами:
/catalog/product_id.htm - дефолтная вкладка
/catalog/product_id/params- открыта вкладка "Характеристики"
/catalog/product_id/reviews - открыта вкладка "Отзывы"
Уточняю, это именно разные страницы (например, со своими SEO-тегами), никакой подгрузки аяксом, HistoryAPI и прочего.
Решение следующее:
в параметрах комплексного компонента
bitrix:catalog
урлы страниц каталога определяются параметром SEF_URL_TEMPLATES
следующим образом:
'SEF_URL_TEMPLATES' => array(
"section" => "#SECTION_CODE_PATH#/",
"element" => "#ELEMENT_CODE#",
"compare" => "compare/"
)
Модифицируем
SEF_URL_TEMPLATES
так:
'SEF_URL_TEMPLATES' => array(
"section" => "#SECTION_CODE_PATH#/",
"element" => "#ELEMENT_ID#.htm",
"compare" => "compare/",
"element_params" => "#ELEMENT_ID#/params",
"element_reviews" => "#ELEMENT_ID#/reviews",
)
В шаблон компонента
bitrix:catalog
добавляем новые файлы - element_params.php
и element_reviews.php
.Каждый из этих файлов будет подключаться при совпадении урла, то есть для урла
/catalog/product_id/params
будет загружен element_params.php
, для /catalog/product_id/reviews
- element_reviews.php
, а для /catalog/product_id.htm
- element.php
.Для упрощения редактирования в каждом из этих файлов можно подключить какой-то базовый файл с компонентом отображения товара и парой-другой параметров, определяющих логику и шаблон.
Комментариев нет:
Отправить комментарий