【发布时间】:2010-10-13 06:15:58
【问题描述】:
我有一个自定义结构,用于浏览使用hook_menu 和视图构建的内容。我希望内容的链接按节点类型路由到我的结构中的适当目的地。因此,虽然通常单击节点链接会将您带到 node/123,但我希望被发送到 foo/123(因为节点 123 的类型为“foo”)。
我尝试了 PathAuto,但仅将 foo/123 设为 node/123 的别名是行不通的。特定结构、选项卡等...已使用hook_menu 为foo/123 构建。 PathAuto(据我了解)实际上只是显示 node/123,这只是股票 drupal 节点显示,而不是我想要显示的内容。
我开始将hook_nodeapi 和drupal_goto 放在一起,以根据节点类型进行重定向。
[解决一些无限重定向问题,但我确信我能解决。] 但我真的想这样做吗?让网站上的每个链接都通过 HTTP 重定向会不会影响速度?
最好的方法是什么?
编辑
实际上,我认为问题在于 PathAuto 不尊重我的 hook_menu,并且可能不是适合这项工作的工具。
在没有设置 PathAuto 的情况下,我有一个 hook_menu,它为 foo/123 定义了一个页面,其中 foo 是节点类型。导航到foo/### 按预期工作,显示我的自定义节点版本###。
现在我想将node/### 重定向到foo/###,或者换句话说,我希望所有指向node/### 的链接都写成foo/###。这对于 PathAuto 来说似乎是一项显而易见的任务,在节点类型 Foo 下,我的模式是 foo/[nid]。除了设置后,我的 hook_node 不再起作用。那是因为现在 foo/### 正在路由到 node/###,就像我要求的那样,并且显示的是 vanilla drupal 节点显示,而不是我的 hook_menu。
【问题讨论】: