使用JRoute :: _()在不同页面中生成的不同网址 - Joomla! 3

时间:2014-04-20 09:34:06

标签: php joomla routing joomla-sef-urls

我在Joomla开发了一个组件! 3,我使用了JRoute::_()& router.php使网址搜索引擎友好。像这样的东西:

/component/products/WIFI-IP-Phone/list-3

所以我决定用干净的别名替换/component/products,然后我创建了一个带有组件主页的干净别名的菜单。现在,我在 里面 组件的所有链接(用JRoute::_()生成)都是这样的:/escene/WIFI-IP-Phone/list-3它的完美,它正是我的意思想要,但是...我在三个不同的模块中使用JRoute::_(),并且我生成链接,问题是当我在主页或除了以外的任何其他页面时,在这些模块中生成链接当我在组件页面中时,组件页面与这些模块中生成的链接不同。

当我在主页或其他时:/component/products/WIFI-IP-Phone/list-3

当我在我的组件页面中时:/escene/WIFI-IP-Phone/list-3

任何团体都可以解释原因或帮助我制作所有网址,例如/escene/WIFI-IP-Phone/list-3 ??

1 个答案:

答案 0 :(得分:1)

这是因为当页面显示属于同一组件时,您在组件router.php中编写的函数会对链接执行。但是有一种方法可以完成这项任务。

1. First create a new menu in the menu manager and create all links in this menu.
2. Publish this menu but do not assign any position.
3. In this way you would get a sef url for each link.

if(JFactory::getConfig()->get('sef')) {
    echo 'My sef url';
} else {
    echo 'Dynamic url';
}

通过这种方式,Joomla将通过存储的别名检测您的组件来进行URL解析。 如果您有任何进一步的询问,请告诉我。