首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drupal 7的附加路径前缀

drupal 7的附加路径前缀
EN

Stack Overflow用户
提问于 2013-07-25 07:26:42
回答 2查看 1.4K关注 0票数 2

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

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

我在drupal 7上设置了带有路径前缀的语言检测。

一些内容在我的网站将被隐藏为某些大陆,但许多内容将是相同的,所以我不想做一个多网站。

我希望有像domain.com/america/en/path-aliasdomain.com/america/es/path-aliasdomain.com/europe/fr/path-alias.那样的urls我找不到任何解决办法。

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

编辑: Ok我在drupal中找到了问题的解决方案。

这两个钩子正是我要找的更改更改

EN

回答 2

Stack Overflow用户

发布于 2015-12-15 14:39:00

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

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

票数 0
EN

Stack Overflow用户

发布于 2017-08-08 09:10:28

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

代码语言:javascript
复制
function mymodule_url_inbound_alter(&$path, $original_path, $path_language){    
  $cluster = 'australia';
  $path = str_replace($cluster.'/','',$path);       
} 

function mymodule_url_outbound_alter(&$path, &$options, $original_path){
  $cluster = 'australia';   
  $path = $cluster.'/'.($path); 
  $options['alias'] = true;     
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17851610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档