Использую стандартный шаблон меню Tree для вывода меню из элементов и разделов инфоблока, беда в том, при переходе в пункт меню (из раздела) переход осуществляется и остаются развернуты нужные разделы и подраздел, до того раздела в который я перешел.
Но при переходе в пункт меню из элемента инфоблока меню сворачивается, т.е. не проставляется свойство "CHILD_SELECTED" формируемое в файле result_modifier.php шаблона меню.
Понимаю, что надо проставлять свойство всем раздела выше при клике на пункт меню из элемента инфоблока, но как это сделать не могу сообразить, беда с php../
[CODE]<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
die();
//determine if child selected
$bWasSelected = false;
$arParents = array();
$depth = 1;
foreach($arResult as $i=>$arMenu)
{
$depth = $arMenu['DEPTH_LEVEL'];
if($arMenu['IS_PARENT'] == true)
{
$arParents[$arMenu['DEPTH_LEVEL']-1] = $i;
}
elseif($arMenu['SELECTED'] == true )
{
$bWasSelected = true;
break;
}
}
if($bWasSelected)
{
for($i=0; $i<$depth-1; $i++)
$arResult[$arParents[$i]]['CHILD_SELECTED'] = true;
}
?>
[/CODE]
Но при переходе в пункт меню из элемента инфоблока меню сворачивается, т.е. не проставляется свойство "CHILD_SELECTED" формируемое в файле result_modifier.php шаблона меню.
Понимаю, что надо проставлять свойство всем раздела выше при клике на пункт меню из элемента инфоблока, но как это сделать не могу сообразить, беда с php../
[CODE]<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
die();
//determine if child selected
$bWasSelected = false;
$arParents = array();
$depth = 1;
foreach($arResult as $i=>$arMenu)
{
$depth = $arMenu['DEPTH_LEVEL'];
if($arMenu['IS_PARENT'] == true)
{
$arParents[$arMenu['DEPTH_LEVEL']-1] = $i;
}
elseif($arMenu['SELECTED'] == true )
{
$bWasSelected = true;
break;
}
}
if($bWasSelected)
{
for($i=0; $i<$depth-1; $i++)
$arResult[$arParents[$i]]['CHILD_SELECTED'] = true;
}
?>
[/CODE]