получить класс тела по активному родительскому пункту меню - PullRequest
1 голос
/ 25 мая 2011

пример:

пункт меню 1
пункт меню 1.1
пункт меню 1.2
пункт меню 1.2.1
пункт меню 2
пункт меню 3

Теперь у меня есть:

<?php $active = JFactory::getApplication()->getMenu()->getActive();?>
<body class="<?php echo $active->alias; ?> ">

Итак, я загружаю класс тела из активного пункта меню. Я бы хотел, чтобы это осталось прежним. Мне нужно скрыть некоторые пункты меню, например, когда пункт меню 1 активен. Поэтому, когда это происходит, мне нужно назначить класс для menuitem 2.

Таким образом, когда я перемещаюсь вниз по 1.1, пункты меню остаются скрытыми.

Нашел решение:

<?php
$menu =& JSite::getMenu();
$active = $menu->getActive();
$class = extractpath($active->route);
function extractpath($string){
preg_match('/^[a-zA-Z0-9\-_]+/',$string,$m);   
return $m[0];
}

?>
  <body<?php if ($class) echo ' class="' . $class . '"'; ?>>

1 Ответ

0 голосов
/ 26 мая 2011

Чтобы получить идентификатор родителя - $ menu-> getActive () -> parent

Чтобы получить заголовок родителя - $ menu-> getItem ([id]) -> name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...