Aktif menünün başlığını kullanarak
$menu = &Jsite::getMenu();
$menuname = $menu->getActive()->title;
Ancak ana başlığına nasıl erişebilirim?
Bu kodu deneyin:
$menu = JFactory::getApplication()->getMenu();
$parent = $menu->getItem( $menu->getActive()->parent_id );
$parentname = $parent->title
Eğer bağlantıya ihtiyacınız varsa
$parentlink = JRoute::_( $parent->link . '&Itemid=' . $parent->id );
GetActive yöntemi, parent_id dahil olmak üzere etkin menü özelliklerine sahip bir nesne döndürür. JMenu sınıfının getItem ($ id) yöntemi vardır; burada $ id bir menü kimliğidir. Bu yöntem getActive ile aynı türdeki nesneleri döndürür. Yani, böyle bir şey yapabilirsiniz:
$menu = JFactory::getApplication()->getMenu();
$parent_id = $menu->getActive()->parent_id;
$parent_title = $menu->getItem($parent_id)->title;
Etkin menüyü alabildiğiniz için, geri kalanını tree
ile alabilirsiniz. Bu, yalnızca ebeveyn değil, öğe listesini dolaşmak için kullanışlıdır!
Daha iyi anlayabilmen için cevabı parçalara ayırıyorum:
1. Etkin menü için bir değişken oluşturun (basitlik ve taşınabilirlik için):
$menu = &JSite::getMenu();
$active = $menu->getActive();
2. Ağaçtaki bir önceki öğeyi alarak önceki/üst menüyü seçin:
$parent_item_id = $active->tree[count($active->tree) - 2];
NOT:tree
bir dizidir ve sıfır ile başlar, bu yüzden 2 ile çıkarıyorum.
3. Son olarak menü başlığını edinin:
$menu->getItem($parent_item_id)->title
Etkin bir menü olup olmadığını ve/veya başka hata kontrollerini görmek için bazı kontroller eklemeniz gerektiğini unutmayın.