2013-08-28 23 views

Odpowiedz

8

To powinno działać

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

Jak mogę uzyskać link do menu rodzica? –

+0

Dodano kod, aby uzyskać macierzysty link do odpowiedzi. – Kaerber

+1

Potrzebowałem tego dla tytułu podmenu i musiałem dodać jeszcze dwie zmienne: '$ menulevel = $ menu-> getActive() -> level; $ activename = $ menu-> getActive() -> title; ' Następnie dodałem następujący tytuł:' ' – Ralf

2

To było podczas ponieważ pracowałem z Joomla, mimo to spróbuj tego:

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

Następnie można użyć $parent jak każdy inny element menu:

echo $parent->title; 
+0

Po prostu wypróbowany, ale nie działa, nie pobiera niczego. thx za próbowanie –

+0

Jak mogę uzyskać link do menu rodzica? –

2

Po prostu użyłem tego:

$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>"; 

Znalazłem większość tego na forum Joomla i dodałem część aliasową, o której myślałem ... Działa to z SEF URL i włączaniem URL-a. W każdym razie, linia tytuł:

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

... który powinien być taki sam jak co AlexP liście, nie sprawdzałem czy to dokładnie samo.

+1

getMenu() nie jest metodą statyczną. Kod zadziała, ale spowoduje wyświetlenie ostrzeżeń. Poprawny sposób na to w Joomla 3 bez otrzymania ostrzeżeń PHP jest następujący: $ menu = JFactory :: getApplication() -> getMenu(); – Nick