Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Joomla module, get menu id (ItemID) from article ID

So i've been searching and testing for a couple days and can't seem to figure this out.

I'm using the K2 content module and I need to add "?Itemid=111" to the end of the URL's it generates for the "Read More" link on pages.

This is not done by default and i've found where I can add it, but i'm having problems getting the Itemid (menu id) from the article id.

All the examples i've found use

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

And that works, whenever you're on that page, and it does add the correct ID. But for the articles I display on the homepage it does not work correctly as it adds the Itemid (menu id) of the homepage, and not the menu id of that specific article.

Before when using Joomla 1.5 I would use the built-in function

getItemid($articleid)

That doesn't seem to work for me anymore.

Does anybody have any suggestions or can anybody point me in the right direction on how I could solve this and "Get menu id (Itemid) from the article id"?

Thanks!!!

like image 678
sMyles Avatar asked May 28 '13 14:05

sMyles


1 Answers

You can get menu id of an article using the below code-

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

Hope this will help.

like image 51
Irfan Avatar answered Sep 28 '22 09:09

Irfan