Здравствуйте.
Задача: при одинаковых URL товаров показывать разные хлебные крошки при переходе с различных категорий, в которых есть товар.
Соответсвенно, при если переход с категории, в котором товара нет, то показываются хлебные крошки основного раздела.
Возможно ли это реализовать как то в рамках функционала bitrix, без использования подобного кода (добавляется в шаблоне хлебных крошек и подменяет arResult с массивом хлебных крошек)???
Заранее спасибо.
Задача: при одинаковых URL товаров показывать разные хлебные крошки при переходе с различных категорий, в которых есть товар.
Соответсвенно, при если переход с категории, в котором товара нет, то показываются хлебные крошки основного раздела.
Возможно ли это реализовать как то в рамках функционала bitrix, без использования подобного кода (добавляется в шаблоне хлебных крошек и подменяет arResult с массивом хлебных крошек)???
Заранее спасибо.
Код |
---|
if (isset($_SERVER['HTTP_REFERER'])) { $o_block_id = PRODUCTS_BLOCK_ID; $o_referer = explode('/', $_SERVER['HTTP_REFERER']); $o_referer_code = array_pop($o_referer); if(empty($o_referer_code)) $o_referer_code = array_pop($o_referer); if (GetPagePath() !== '/') { $o_cur_page = explode('/', GetPagePath()); $o_cur_element_code = array_pop($o_cur_page); if (empty($o_cur_element_code)) $o_cur_element_code = array_pop($o_cur_page); if ($o_element = CIBlockElement::GetList([], ["IBLOCK_ID" => $o_block_id, 'CODE' => $o_cur_element_code])->GetNext()) { $o_groups_db = CIBlockElement::GetElementGroups($o_element['ID']); $o_element_sections = []; while ($o_group_temp = $o_groups_db->Fetch()) $o_element_sections[] = $o_group_temp['ID']; $o_section = CIBlockSection::GetList(Array(), ["IBLOCK_ID" => $o_block_id, 'CODE' => $o_referer_code])->GetNext(); if (in_array($o_section['ID'], $o_element_sections )) { $o_referer = CIBlockSection::GetNavChain($o_block_id, $o_section['ID'], ['NAME', 'SECTION_PAGE_URL']); $o_new_chain = []; while ($o_ref_chain = $o_referer->GetNext()) { $o_new_chain[] = ['TITLE' => $o_ref_chain['NAME'], 'LINK' => $o_ref_chain['SECTION_PAGE_URL']]; } if (!empty($arResult)) array_unshift($o_new_chain, array_shift($arResult)); if (!empty($arResult)) array_push($o_new_chain, array_pop($arResult)); $arResult = $o_new_chain; } } } } |