Модуль Joomla, получить идентификатор меню (ItemID) из статьи ID

поэтому я искал и тестировал пару дней и, похоже, не могу понять это.

Я использую модуль K2, и мне нужно добавить "?Itemid=111 "до конца URL-адреса, который он генерирует для ссылки "Подробнее" на страницах.

это не делается по умолчанию, и я нашел, где я могу добавить его, но у меня возникли проблемы с получением Itemid (идентификатор меню) из идентификатора статьи.

все примеры, которые я нашел использовать

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

и что работает, когда вы находитесь на этой странице, и он добавляет правильный идентификатор. Но для статей, которые я показываю на главной странице, он работает неправильно, поскольку он добавляет Itemid (идентификатор меню) главной страницы, а не идентификатор меню этой конкретной статьи.

раньше при использовании Joomla 1.5 я бы использовал встроенную функцию

getItemid($articleid)

это, похоже, больше не работает для меня.

есть ли у кого-нибудь предложения или кто-нибудь может указать мне в правильном направлении, как я может ли это решить и "получить идентификатор меню (Itemid) из идентификатора статьи"?

спасибо!!!

1 ответов


вы можете получить идентификатор меню статьи, используя приведенный ниже код-

$link = 'index.php?option=com_content&view=article&id='.(int)$articleId ;           
$menu = JSite::getMenu();
$menuItem = $menu->getItems( 'link', $link, true );
$Itemid = $menuItem->id;

надеюсь, это поможет.