drupal 7上的附加路径前缀

时间:2013-07-25 07:26:42

标签: url drupal path

我必须建立一个多语种网站,你必须选择你的大陆。

所以你可以选择美国,而你是英语,美国也选择西班牙语。欧洲用法语,也用英语等。

我在drupal 7上设置了带路径前缀的语言检测。所以我的网址就像 domain.com/en/path-alias

我网站上的某些内容将隐藏在某个大陆,但很多内容都是相同的,所以我不想做多站点。

我希望网址为 domain.com/america/en/path-alias domain.com/america/es/path-alias domain.com/europe/fr/path-alias 即可。 我没有找到任何解决办法。

模块域访问看起来很酷,但不完全是我想要的,因为它适用于子域,而我想要路径前缀。

编辑: 好的,我已经在drupal API中找到了我的问题的解决方案。

这两个钩子正是我所寻找的hook_url_inbound_alterhook_url_outbound_alter

2 个答案:

答案 0 :(得分:0)

你应该使用这2个钩子,因为在hook_url_inbound_alter(&$path, $original_path, $path_language)你告诉Drupal它应该显示什么路径,并根据$original_path中的接收路径确定(例如: region / lang / path < / em>)Drupal理解为有效路径的路径(例如: lang / path )并用它覆盖$path

接下来,我们需要来自我们网页的链接以包含我们的自定义路径格式,因此我们将使用hook_url_outbound_alter(&$path, &$options, $original_path)转换以自定义路径格式url()生成的所有系统路径或别名(生成的路径为url('lang/path'))将是 region / lang / path 。在$options数组中,我们可以修改路径前缀或路径语言。

答案 1 :(得分:0)

这对我有用,但路径别名现在不起作用。此http://localhost/en/australia/node/376应为http://localhost/en/australia/hotels-resorts

var reqIndex;
$scope.choices.forEach(function(choice, index) {
    if (choice.id === 10) {
        reqIndex= index;
        return
    }
})