Учитывать метки в хлебных крошках
Вывожу метки стандартно. Код PHP (ниже) и стандартный шаблон XSL.
Пробовал передать в XSL текущую выбранную метку:
В итоге ничего не получилось. Может кто сталкивался? Помогите пожалуйста, а то не удобно получается. Нажал на хлебные крошки и нарушилась вся навигация.
<?php
// Вывод строки навигации
$InformationSystem = & singleton('InformationSystem');
// Определяем информацию об информационной системе, связанной с текущим узлом
$InformationSystem_id = $InformationSystem->GetInformationSystemByStructureId(CURRENT_STRUCTURE_ID);
$param = array();
$param['xml_show_structure_property'] = false;
$external_propertys = array();
// Если с узлом структуры связана ИС
if ($InformationSystem_id)
{
$result = $InformationSystem->GetInformationFromPath($InformationSystem_id, '', false);
// определяем id информационного элемента
if ($result['item'])
{
$item_id = $InformationSystem->GetIdInformationItem($result['item'], $result['group'], $InformationSystem_id);
if ($item_id != 0)
{
$external_propertys['item'] = $item_id;
$param['show_groups'] = array($result['group']);
$param['show_items'] = array($item_id);
}
}
else
{
$item_id = false;
}
if (is_array($result) && $result['group'] > 0)
{
$external_propertys['group'] = $result['group'];
$param['show_groups'] = array($result['group']);
}
// Данные для хлебных крошек заполняем только для текущей ИС
$param['show_information_systems'][] = $InformationSystem_id;
}
elseif (class_exists('shop'))
{
$shop = & singleton('shop');
// Определяем информацию о магазине, связанным с магазином
$shop_row = $shop->GetShopWhithStructureId(CURRENT_STRUCTURE_ID, CURRENT_SITE);
if ($shop_row)
{
$result = $shop->GetItemPath($shop_row['shop_shops_id'], '', false);
// Если товар
if ($result['item'])
{
$item_id = $result['item'];
// Получаем данные о товаре
$item_row = $shop->GetItem($item_id);
if ($item_row)
{
// Если товар является модификация, подставляем в ID товара родительский товар
if ($item_row['shop_items_catalog_modification_id'] != 0)
{
$item_id = $item_row['shop_items_catalog_modification_id'];
}
if ($item_id != 0)
{
$external_propertys['item'] = $item_id;
$param['show_shop_groups'] = array($result['group']);
$param['show_shop_items'] = array($item_id);
}
}
}
else
{
$item_id = false;
}
// Если группа
if (is_array($result) && $result['group'] > 0)
{
$external_propertys['group'] = $result['group'];
$param['show_shop_groups'] = array($result['group']);
}
}
}
$structure = & singleton('Structure');
$structure->ShowStructure(false, 'ХлебныеКрошки', $param, $external_propertys);
?>
// Вывод строки навигации
$InformationSystem = & singleton('InformationSystem');
// Определяем информацию об информационной системе, связанной с текущим узлом
$InformationSystem_id = $InformationSystem->GetInformationSystemByStructureId(CURRENT_STRUCTURE_ID);
$param = array();
$param['xml_show_structure_property'] = false;
$external_propertys = array();
// Если с узлом структуры связана ИС
if ($InformationSystem_id)
{
$result = $InformationSystem->GetInformationFromPath($InformationSystem_id, '', false);
// определяем id информационного элемента
if ($result['item'])
{
$item_id = $InformationSystem->GetIdInformationItem($result['item'], $result['group'], $InformationSystem_id);
if ($item_id != 0)
{
$external_propertys['item'] = $item_id;
$param['show_groups'] = array($result['group']);
$param['show_items'] = array($item_id);
}
}
else
{
$item_id = false;
}
if (is_array($result) && $result['group'] > 0)
{
$external_propertys['group'] = $result['group'];
$param['show_groups'] = array($result['group']);
}
// Данные для хлебных крошек заполняем только для текущей ИС
$param['show_information_systems'][] = $InformationSystem_id;
}
elseif (class_exists('shop'))
{
$shop = & singleton('shop');
// Определяем информацию о магазине, связанным с магазином
$shop_row = $shop->GetShopWhithStructureId(CURRENT_STRUCTURE_ID, CURRENT_SITE);
if ($shop_row)
{
$result = $shop->GetItemPath($shop_row['shop_shops_id'], '', false);
// Если товар
if ($result['item'])
{
$item_id = $result['item'];
// Получаем данные о товаре
$item_row = $shop->GetItem($item_id);
if ($item_row)
{
// Если товар является модификация, подставляем в ID товара родительский товар
if ($item_row['shop_items_catalog_modification_id'] != 0)
{
$item_id = $item_row['shop_items_catalog_modification_id'];
}
if ($item_id != 0)
{
$external_propertys['item'] = $item_id;
$param['show_shop_groups'] = array($result['group']);
$param['show_shop_items'] = array($item_id);
}
}
}
else
{
$item_id = false;
}
// Если группа
if (is_array($result) && $result['group'] > 0)
{
$external_propertys['group'] = $result['group'];
$param['show_shop_groups'] = array($result['group']);
}
}
}
$structure = & singleton('Structure');
$structure->ShowStructure(false, 'ХлебныеКрошки', $param, $external_propertys);
?>
Пробовал передать в XSL текущую выбранную метку:
if (isset($GLOBALS['shop_item_path']['tag_name'])) {
if (class_exists('Tag')) {
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByPath($GLOBALS['shop_item_path']['tag_name']);
$param['tags'] = array($tag_row['tag_id']);
}
}
if (class_exists('Tag')) {
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByPath($GLOBALS['shop_item_path']['tag_name']);
$param['tags'] = array($tag_row['tag_id']);
}
}
В итоге ничего не получилось. Может кто сталкивался? Помогите пожалуйста, а то не удобно получается. Нажал на хлебные крошки и нарушилась вся навигация.
Авторизация