2013-08-28 16 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;' 然後我添加如下標題:'<?php echo($ menulevel == 1)?$ activename:$ parentname; ?> – 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論壇中發現了大部分內容,並添加了我猜對的別名部分...這適用於SEF URLS和URL重寫。總之,標題行:

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

...這應該是一樣什麼AlexP上市,我沒有檢查它是否正是相同。

+1

getMenu()不是一個靜態方法。 該代碼將起作用,但會發出警告。在Joomla 3中這樣做沒有得到PHP警告的正確方法如下: $ menu = JFactory :: getApplication() - > getMenu(); – Nick