我可以看到整个互联网上的人都在谈论这个。使用时JRoute::_($URL)
,我们被迫计算第Itemid
一个,然后将其附加到输入 URL,如:
JRoute::_('index.php?option=com_abc&view=xyz&id=32'.'&Itemid='.$itemid);
但是,总是希望Itemid
从给定 URL 的 Joomla 核心路由器中自动计算。
从今天的 Joomla 1.5 到 3.2,
JRouterSite::_buildSefRoute
或最新的JRouterSite::buildSefRoute
没有显着变化。
我可以在/libraries/cms/router/site.php
文件中的代码中看到,要构建所需格式的 sef URL,必须包含Itemid=XXX
在传递的 URL 中。否则
JRoute::_('index.php?option=com_abc&view=xyz&id=32');
将生成一个类似的 URL
`/component/abc/?view=xyz&id=32`
不像想要的
/our-component/?id=32
our-component
指向的菜单项的菜单别名在哪里
index.php?option=com_abc&view=xyz
我知道后半部分?view=xyz&id=32
可以通过使用每个组件的自定义 router.php 文件来处理。但是组件基本 URL/component/abc
超出了该自定义 router.php 的范围
请有人告诉我这个想法是正确的还是我错过了一些重要的东西。还建议我如何克服这个问题。