我有一个自定义结构,用于浏览内容 hook_menu 和观点。我希望链接到内容以节点类型路由到我的结构中的适当目的地。因此,当通常单击节点链接时 node/123, ,相反,我想被送到 foo/123 (因为节点123是“ foo”类型)。

我尝试了Pathauto,但仅仅制作 foo/123 一个别名 node/123. 。特定的结构,选项卡等...已使用 hook_menu 为了 foo/123. 。 Pathauto(我理解)实际上只是在显示 node/123 这只是库存的Drupal节点显示,而不是我想显示的内容。

我开始在一起 hook_nodeapidrupal_goto 基于节点类型重定向。 [解决一些无限的重定向问题,但我敢肯定我可以弄清楚。]但是我真的想这样做吗?不会有速度打击以使网站上的每个链接通过HTTP重定向吗?

最好的方法是什么?

编辑
实际上,我认为问题是Pathauto不尊重我的hook_menu,也不是正确的工具。尚未设置Pathauto,我有一个hook_menu,该hook_menu定义了一个页面 foo/123 其中foo是节点类型。导航到 foo/### 按预期显示我的自定义版本的节点###。

现在我想重定向 node/###foo/###, ,或者换句话说,我想要所有链接 node/### 写为 foo/###. 。对于Pathauto来说,这似乎是一项明显的任务 foo/[nid]. 。除了设置之后,我的hook_node不再功能。那是因为现在 foo/### 被路由到 node/### 就像我问的那样,显示的是香草drupal节点显示器,而不是我的hook_menu。

有帮助吗?

解决方案

实际上,可以设置Pathauto来指定您的自定义路径。它使用令牌模块可以轻松地重新配置Pathauto应该如何构建别名...

在Pathauto的管理页面(admin/build/path/pathauto)中检查。

编辑

为了您的编辑,我要做的就是实现hook_menu_alter,我会将节点/%页面回调修改为hook_menu中使用的回调以渲染foo/123页。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top