1
3
因为我在这个问题上做了很多努力,这里有一个快速的功能,我会尝试根据菜单项找到链接。这主要基于其他答案。 这只在Joomla 3.5上测试过。JRequest已弃用,因此$app->而是使用输入。这可能做得更好,但至少对我有用。希望它也能帮助其他人!
该参数需要未重写的链接,例如:
|
2
2
注意:这不是语言安全的。它接受数据库中找到的第一个菜单项。如果为不同的语言设置不同的菜单别名,则还必须检查SQL查询中的正确语言。 |
3
0
理想情况下,您需要将路由器设置为组件的一部分。菜单管理器将覆盖组件/myapp位,但之后的内容将由router.php文件中的内容决定。 http://docs.joomla.org/Supporting_SEF_URLs_in_your_component 然而,如果您只需要创建一个指向特定菜单项的链接,那么您总是可以在参数中添加一个Itemid
将指向id为12的任何菜单项,因此如果这是com_myapp组件的菜单项id,它将创建指向该页面的链接的菜单版本。 编辑: 从技术上讲,您可以将同一个组件分配给两个菜单项,因此我不认为当您链接到菜单项之外的组件而不给链接一个itemid时,处理URL的开头是默认行为。Joomla说(关于为JRoute创建链接)。。。
例如,在没有itemid或选项的情况下,从主页(或一组以外的任何页面使用组件)调用它,它可能会认为您正在使用主页菜单项。 如果您想链接到菜单项之外的组件,但不需要硬编码itemid,那么一种方法是将Menuitem字段类型添加到要链接的模块或模板的配置选项中,然后将其生成的itemid添加到链接中。 您还可以使用JFactory::getApplication()->getMenu()查找链接到组件的菜单项。没有机会测试这个,但使用它也意味着可以在路由器中设置itemid参数。 |
Tom Bom · 使用React Native进行路由 7 年前 |
Aetherus · Spring MVC走向错误动作 7 年前 |
myweb911 · 使用url缩短器屏蔽url 7 年前 |
James L. · 命名空间路由出错(父)控制器操作 7 年前 |