Joomla 2.5 从多语言系统上的 url 调用组件

Posted

技术标签:

【中文标题】Joomla 2.5 从多语言系统上的 url 调用组件【英文标题】:Joomla 2.5 call component from url on a multilingual system 【发布时间】:2014-02-08 22:31:44 【问题描述】:

我在本地安装的单语言 joomla 上开发了一个组件。我现在正在尝试将它安装在多语言系统上,并且在该系统上我无法从 url 调用我的模块。

标准网址:index.php?task=Weight_and_Balance&plane=DR400

正在自动翻译为:index.php?task=Weight_and_Balance&plane=DR400&Itemid=600&lang=en

并且此 URL 会导致错误 404。

我该如何解决这个问题?

【问题讨论】:

您的网址中需要一个 option=com_something。 【参考方案1】:

@Elin 是正确的,您缺少组件。

这意味着正确的组件是您的开发站点上的主页(因此它是由 SEF 从 URL 收集的 - 或缺少它,因为它是根),而不是在您的多语言站点上。只需添加&option=com_yourcomponentname,使用您的开发站点默认页面的组件名称。

这似乎与多语言功能无关。

【讨论】:

我尝试了“index.php?option=com_wandB&view=default&task=Weight_and_Balance&plane=DR400”,但 Joomla 将其替换为“index.php/en/?option=com_wandB&view=default&task=Weight_and_Balance&plane=DR400”。 (它在 /en/ 之间填充)。在本地服务器上,这个“index.php?option=com_wandB&view=default&task=Weight_and_Balance&plane=DR400”效果很好。有什么意见吗? 我禁用了 SEF 并再次尝试。 index.php?option=com_wandB&view=default&task=Weight_and_Balance&plane=DR400。 Joomla 将 url 更改为 index.php?option=com_wandB&view=default&task=Weight_and_Balance&plane=DR400&lang=en(在末尾添加 &lang=en)并给出错误 405。 为了摆脱默认前缀,您需要启用系统 - 语言过滤器插件并将其设置为删除 URL 语言代码(仅适用于默认语言)。再次阅读原始代码,Itemid 600 是否适合您的菜单项?关闭 SEF 后它还会出现吗? 有效。另一个系统是区分大小写的。这就是为什么您的解决方案似乎不起作用的原因。谢谢!

以上是关于Joomla 2.5 从多语言系统上的 url 调用组件的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 多语言实现——URL路由

更正 Joomla 的 HTML <head> 和 <body> 中错误生成的 href 链接

纸壳CMS可视化建站系统搭建多语言网站

URI 路由不起作用(多语言)

在 Joomla 2.5 中激活 SEO 设置后出错

多语言系统的数据库设计