Порылся, покопался и нашел класс меню. В нем есть функция.
| Код |
|---|
public function setSelectedItems($bMultiSelect = false)
{
/** @global CMain $APPLICATION */
global $APPLICATION;
$cur_page = $APPLICATION->GetCurPage(true);
$cur_page_no_index = $APPLICATION->GetCurPage(false);
$cur_selected = -1;
$cur_selected_len = -1;
foreach($this->arResult as $iMenuItem => $MenuItem)
{
$LINK = $MenuItem['LINK'];
$ADDITIONAL_LINKS = $MenuItem['ADDITIONAL_LINKS'];
$SELECTED = false;
$all_links = array();
if(is_array($ADDITIONAL_LINKS))
{
foreach($ADDITIONAL_LINKS as $link)
{
$tested_link = trim($link);
if(strlen($tested_link)>0)
$all_links[] = $tested_link;
}
}
$all_links[] = $LINK;
if($MenuItem['PERMISSION'] != 'Z')
{
foreach($all_links as $tested_link)
{
if($tested_link == '')
continue;
$SELECTED = CMenu::IsItemSelected($tested_link, $cur_page, $cur_page_no_index);
if($SELECTED)
{
$this->arResult[$iMenuItem]['SELECTED'] = true;
break;
}
}
}
if($SELECTED && !$bMultiSelect)
{
/** @noinspection PhpUndefinedVariableInspection */
$new_len = strlen($tested_link);
if($new_len > $cur_selected_len)
{
if($cur_selected !== -1)
$this->arResult[$cur_selected]['SELECTED'] = false;
$cur_selected = $iMenuItem;
$cur_selected_len = $new_len;
}
elseif($tested_link !== SITE_DIR)
{
$this->arResult[$iMenuItem]['SELECTED'] = false;
}
}
}
}
|
вопрос тепер в том, как модернизировать функцию, что бы у родителя выбранного ребенка было ['SELECTED'] = true.
Кто в этом понимает, подскажите, если знаете! Буду благодарен!