Узнать родительский пункт меню и верхний пункт меню Joomla. Получить данные.

У текущего пункта меню можно узнать родительский пункт, а так же всю иерархию, включая самый верхний. Это полезно для различных условий или информации о разделе и подобного...

Откуда всё берётся?

// Отсюда

$app  = JFactory::getApplication();
$menu      = $app->getMenu();

echo '<pre>';

print_r ($menu->getActive());

echo '</pre>';

Получить ID родительского/верхнего пункта меню (смотреть комментарии)

$app  = JFactory::getApplication();
$menu      = $app->getMenu();


echo $menu->getActive()->id . '<br/>'; // ID текущего пункта меню

echo $menu->getActive()->parent_id . '<br/>'; // ID родительского пункта
echo $menu->getActive()->tree[0] . '<br/>'; // ID верхнего пункта (нужно когда большая вложенность)

Получить данные пункта меню, на примере родительского пункта меню

$parent_id = $menu->getActive()->parent_id;

$parent = $menu->getItem($parent_id);

$parentname  = is_object($parent) ? $parent->title : ''; // заголовок родительского пункта (если он есть)
$parentlink = is_object($parent) ? $parent->route : ''; // Ссылка на родительский пункт (если он есть)
$parentlink2  = is_object($parent) ? JRoute::_( $parent->link . '&Itemid=' . $parent->id ) : ''; // Тоже ссылка на род. пункт, но с использованием id.

По той же схеме можно получить информацию и о верхнем пункте меню.

Ссылки и благодарности

Частично подсмотено вот тут: stackoverflow.com

Или тут: qaru.site