我正在使用Joomla 3.1。
我的组件中的router.php文件出现了一个奇怪的问题。
我有一个基本的router.php文件,还没有做太多,在我添加我的功能之前我需要让它实际上先处理基本的东西。
我有一个菜单项,其中组件设置为项类型。查看主页会显示我创建的视图。
对于链接,如果我使用以下内容:
echo JRoute::_('index.php?option=com_vacations&view=test&cat=123');
我明白了:
http://mysite/en/component/vacations/?view=test&cat=123
我不希望显示“组件/假期”。所以我试过这个:
echo JRoute::_('index.php?view=test&cat=123');
我得到了:
http://mysite/en/?view=test&cat=123
看似正确,但第二种方法永远不会触及我的router.php。这意味着我无法改变它以显示如下内容:
http://mysite/en/test/123
如何解决这个问题,以便通过router.php解析网址?
答案 0 :(得分:1)
使用JRoute创建指向应用程序的链接时,请始终像第一个代码一样创建完整查询:
echo JRoute::_('index.php?option=com_vacations&view=test&cat=123');
当您实际编写路由功能时,路由器将作为路由器工作。如果没有这些,您的rooter将使用默认的joomla路由标记返回链接(如此http://mysite/en/component/vacations/?view=test&cat=123
)。
查看来自任何joomla组件的代码,例如 com_weblinks 。它将帮助您了解整个过程。您可以在此处找到它:/components/com_weblinks/router.php