【问题标题】:Different urls generated with JRoute::_() in different pages - Joomla! 3在不同页面中使用 JRoute::_() 生成的不同 url - Joomla! 3
【发布时间】:2014-04-20 09:34:05
【问题描述】:

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

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

所以我决定用一个干净的别名替换/component/products,然后我创建了一个带有干净别名的组件主页的菜单。现在,我 inside 组件(使用 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 ??

【问题讨论】:

  • 什么是反对票?
  • 这部分在模块中总是很有挑战性,我现在没有时间和你一起看,但是看看最新的文章或类似的标签。两者都解决了这个问题。
  • @Elin 你能给我一些链接吗?
  • 直接打开文件,你试过什么?
  • 知道了,我想念你的评论。谢谢

标签: php joomla routing joomla-sef-urls


【解决方案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。 如果您有任何进一步的疑问,请告诉我。

【讨论】:

    猜你喜欢
    • 2015-12-29
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多