回答
在生成组件中链接的代码中,需要将ItemId附加到该URL。您可以使用获得项目Id:
$itemid = JRequest::getint('Itemid');
所以,你会以这样的方式使用它(作为一个例子):一旦菜单项已被点击
$link = JRoute::_('index.php?option=com_component&task=list&Itemid='.$itemid);
该变种会存在。然后,如果视图以分层方式存在,那么需要在组件中的每个视图中执行视图,其中一个视图链接到下一个视图。
[编辑]
您可以创建一个辅助函数,对于上面的例子,会自动将项目Id到每一个环节,你产生如
function genLink($link) {
return JRoute::_($link.'&Itemid='.JRequest::getint('Itemid'));
}
我我的经验,在此情况下出现问题时,你有一个模块(例如:virtuemart产品列表)的地方放置NOT在你的链接应引起部分。 假设您在Itemid === 731的菜单中设置了VM(com_virtuemart),并且在主页(com_content)中插入了产品列表模块。当您点击产品页面时,您会希望模块设置链接,使您的VM Itemid包含在链接中([linkl] & Itemid = 731) - 但在大多数情况下它不会发生,您的Itemid不会添加到网址中。
此外,你不能总是期望(像在这种情况下)在你的url params中拥有正确的Itemid。所以JRequest::getint('Itemid')
的东西将无法按预期工作。
我不知道为什么JRoute :: _方法(使用额外的参数“$ searchForItemid”可以轻松完成)不会在菜单表中搜索您的Itemid当您不在组件中时!这就是说,如果您将相同的产品列表模块显示在VM首页(com_virtuemart)中,您将看到Itemid出现在您的链接上。但在大多数情况下,该模块需要在别的地方。
这仍然是w \ J!2.5的情况。
我没有解决方案,但我可以告诉你我是如何克服这个问题的。
显然,您可以打开模块并对Itemid进行硬编码。这在意大利被称为“PORCATA”(翻译:猪式编码),我真的建议反对它,原因很明显
我所做的是我使用的语言重写(J!2。5 - 语言管理:语言重写),这样注册VM_ITEMID === 731的覆盖,然后在模块中创建自定义模板,并从改变链接:
JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id...')
到:
JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id...'.'&Itemid='.JText::_("VM_ITEMID"))
我再说一遍,这不是问题的解决方案,恕我直言,这应该由核心来处理,但它的工作原理和这种方式,你有可能改变绑定到组件的Itemid。 希望这有助于
当您需要在Joomla中获取您的活动菜单项ID以仅显示该菜单项的某些特定内容或仅显示该菜单项的ID时,请将以下代码插入您想要显示的位置活动菜单项ID:
<?php
$currentMenuId = JSite::getMenu()->getActive()->id ;
echo "Your menu item ID is: $currentMenuId";
?>
这是旧的,但如果有人需要它,这里的答案是。从参数检索您的itemid:
<!--ITEMID FROM MENU-->
<?
$params =JComponentHelper::getParams('com_lobotoradio');
$itemid = $params->get('itemid');
?>
<!--END ITEMID FROM MENU-->
然后打印出来,无论你需要它:
<?php echo $itemid; ?>
最坏的情况下,使用此技巧:
<?php
$itemid = X;
echo $itemid;
?>
- 1. Joomla获取菜单项ID
- 2. joomla组件下的组菜单项2.5
- 3. Joomla菜单项
- 4. Joomla 3组件:在安装期间创建菜单/菜单项
- 5. 的Joomla - 基于菜单项
- 6. Joomla Frozen菜单项目
- 7. Joomla中的菜单项2.5.8
- 8. Joomla jQuery菜单项属性
- 9. 菜单项目类型为我的组件com_mycom在Joomla
- 10. 在joomla 1.5组件中添加工具栏菜单项。
- 11. 隐藏一些菜单项的主要内容组件,joomla 1.7
- 12. 在Joomla菜单中隐藏文章ID
- 13. Joomla 3.2 - 从特定菜单中加载组件视图项目ID在另一个组件中
- 14. Joomla活动菜单项ID如果语句
- 15. Joomla! 2.5菜单
- 16. joomla invitex菜单
- 17. Joomla菜单css
- 18. 在创建新菜单项时为joomla组件创建新选项
- 19. 获取菜单项的ID
- 20. 我需要将菜单和菜单项从Joomla 1.5迁移到Joomla 2.5
- 21. Joomla:得到活动菜单项
- 22. 获取Joomla菜单项的“Alias”字段
- 23. joomla - 菜单项 - 类别博客
- 24. Joomla 3.0创建虚拟菜单项
- 25. Joomla - 菜单项 - 主页按钮
- 26. 所有菜单项Joomla 1.5 500错误
- 27. Joomla!子页面菜单项缩进
- 28. Joomla菜单只显示当前(根)菜单子项
- 29. 如何在joomla菜单中添加同名菜单项
- 30. 将子菜单添加到Joomla 1.7中的菜单子项中
是的,我知道我可以手动添加,但Joomla应该处理它 – miojamo 2010-11-23 13:42:23