Однажды на проекте возникла задача следующего характера:
для детальных страниц товара требовались несколько вариантов отображения контента, например, у нас есть страница товара с вкладками - Описание, Характеристики, Отзывы по урлу /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.Для упрощения редактирования в каждом из этих файлов можно подключить какой-то базовый файл с компонентом отображения товара и парой-другой параметров, определяющих логику и шаблон.
Комментариев нет:
Отправить комментарий