2013-08-28 4 views

ответ

8

Это должно работать

$menu = JFactory::getApplication()->getMenu(); 
$parent = $menu->getItem($menu->getActive()->parent_id); 
$parentname = $parent->title; 
$parentlink = JRoute::_($parent->link . '&Itemid=' . $parent->id); 
+0

Как получить ссылку родительского меню? –

+0

Добавлен код для получения родительской ссылки на ответ. – Kaerber

+1

Мне нужно было это для названия подменю и пришлось добавить еще две переменные: '$ menulevel = $ menu-> getActive() -> level; $ activename = $ menu-> getActive() -> title; ' Затем я добавил заголовок следующим образом:' ' – Ralf

2

Это было время, так как я работал с Joomla, тем не менее, дать этому попытку:

$menu  = JSite::getMenu(); 
$active = $menu->getActive(); 
$parent = $menu->getItem($active->parent); 

Затем вы можете использовать $parent как любой другой пункт меню:

echo $parent->title; 
+0

Только что попробовал, но он не работает, он ничего не извлекает. thx для попытки –

+0

Как я могу получить ссылку родительского меню? –

2

Что я только что использовал:

$menu = &JSite::getMenu(); 
$active = $menu->getActive(); 
$menuname = $active->title; 
$parentId = $active->tree[0]; 
$parentName = $menu->getItem($parentId)->title; 
$parentlink = $menu->getItem($parentId)->alias; 
echo "<h1><a href=\"$parentlink\">".$parentName."</a></h1>"; 

Обнаружил это на форуме Joomla и добавил часть псевдонима, о которой я догадался ... Это работает с переписанием URL-адресов и URL-адресов SEF. Во всяком случае, название линии:

&JSite::getMenu()->getItem(&JSite::getMenu()->getActive()->tree[0])->title; 

... которые должны быть такими же, как то, что в списке AlexP, я не проверял, если это точно то же самое.

+1

getMenu() не является статическим методом. Код будет работать, но он даст предупреждения. Правильный способ сделать это в Joomla 3 без получения предупреждений PHP выглядит следующим образом: $ menu = JFactory :: getApplication() -> getMenu(); – Nick

Смежные вопросы