Posso obter o título do menu ativo usando
$menu = &Jsite::getMenu();
$menuname = $menu->getActive()->title;
Mas como posso acessar o título principal?
Tente este código:
$menu = JFactory::getApplication()->getMenu();
$parent = $menu->getItem( $menu->getActive()->parent_id );
$parentname = $parent->title
Se você precisar do link
$parentlink = JRoute::_( $parent->link . '&Itemid=' . $parent->id );
O método getActive retorna um objeto com as propriedades do menu ativo, incluindo o parent_id. A classe JMenu possui um método getItem ($ id), em que $ id é um ID de menu. Este método retorna o mesmo tipo de objeto que getActive. Então, você pode fazer algo assim:
$menu = JFactory::getApplication()->getMenu();
$parent_id = $menu->getActive()->parent_id;
$parent_title = $menu->getItem($parent_id)->title;
Como você pode obter o menu ativo, você pode obter o restante obtendo o tree
. Isso é útil para percorrer a lista de itens, não apenas para os pais!
Para que você entenda melhor, estou dividindo a resposta em partes:
1. Crie uma variável para o menu ativo (por simplicidade e portabilidade):
$menu = &JSite::getMenu();
$active = $menu->getActive();
2. Escolha o menu anterior/principal, obtendo o item anterior na árvore:
$parent_item_id = $active->tree[count($active->tree) - 2];
NOTA: o tree
é uma matriz e começa com zero, é por isso que estou subtraindo por 2.
3. Finalmente, obtenha o título do menu:
$menu->getItem($parent_item_id)->title
Lembre-se de que você também precisa adicionar algumas verificações para ver se há um menu ativo e/ou outras verificações de erro.