覆盖Joomla的路线

时间:2013-11-04 23:35:11

标签: php joomla

我需要在Joomla 3.x安装上在线创建一个房地产代理商。因为自从v1.5以来我没有在Joomla中编写任何代码而且我几乎忘记了所有内容,并且由于时间不够,我决定使用插件在文章中嵌入PHP代码。所以我正在使用一篇文章来列出属性(房地产),其别名是“list”,另一个用于查看一个属性的别名是“property”。

一切都已启动并运行,除了我使用唯一的URL进行任何搜索,这对于定位来说是不行的。搜索变量通过POST发送,而不是使用SEF URI,因为Joomla路由器会干扰。要查看属性,我这样做

www.example.com/property?id = * * PROPERTY_ID

我一直在寻找通过黑客攻击或覆盖Joomla路由器的解决方案,如下所示: http://docs.joomla.org/J2.5:Creating_a_System_Plugin_to_augment_JRouter

但是有些东西我缺少或者我没有得到它,因为我仍然无法阻止Joomla路由器管理我想要使用的一些路线。

我想使用像

这样的东西

www.example.com/list/mode/rent/type/house/city/fooville/area/downtown

但第二段被解析为文章ID,任何其他段都会导致404错误。我该怎么做来解析这些URL?

我还考虑按惯例假设每个段的值,以便为自己保存用于识别它们旁边的值的段,但是所有段都应该是可选的,所以我应该坚持上面的结构?如果我添加其余的搜索过滤器,那将是非常长的。

1 个答案:

答案 0 :(得分:1)

如果您的XML检索是在您编写的自定义组件中完成的,则可以为组件添加路由器。有关如何执行此操作的信息,请参阅此处:http://docs.joomla.org/Supporting_SEF_URLs_in_your_component

您可以在网站菜单中添加一个菜单链接到您的组件,其中包含一个合适的别名,例如:然后,列表和Joomla路由器将在/ list /。

之后调用组件路由器