0

我有一个自定义结构,用于浏览使用hook_menu和视图构建的内容。我希望内容的链接按节点类型路由到我的结构中的适当目的地。因此,虽然通常单击节点链接会将您带到node/123,但我希望被发送到foo/123(因为节点 123 的类型为“foo”)。

foo/123我尝试了 PathAuto,但仅创建一个别名是行不通的node/123。特定结构、选项卡等...已使用hook_menufor构建foo/123。PathAuto(据我了解)实际上只是显示node/123这只是股票 drupal 节点显示,而不是我想要显示的内容。

我开始整理hook_nodeapidrupal_goto根据节点类型进行重定向。[解决一些无限重定向问题,但我确信我能解决。] 但我真的想这样做吗?网站上的每个链接都通过 HTTP 重定向会不会影响速度?

最好的方法是什么?

编辑
实际上我认为问题在于 PathAuto 不尊重我的 hook_menu,并且可能不是该工作的正确工具。由于还没有设置 PathAuto,我有一个 hook_menu,它定义了一个页面,foo/123其中 foo 是节点类型。导航到foo/###按预期工作,显示我的自定义版本的节点 ###。

现在我想重定向node/###foo/###,或者换一种说法,我希望所有链接都node/###写成foo/###. 对于 PathAuto 来说,这似乎是一项显而易见的任务,在节点类型 Foo 下,我的模式是foo/[nid]. 除了设置后,我的 hook_node 不再起作用。那是因为 nowfoo/###正在被路由到node/###我要求的位置,并且显示的是 vanilla drupal 节点显示,而不是我的 hook_menu。

4

1 回答 1

1

实际上 PathAuto 可以设置为指定您的自定义路径类型。它使用令牌模块让您轻松重新配置 pathAuto 应该如何构建别名......

查看 pathauto 的管理页面(admin/build/path/pathauto)。

编辑

对于您的编辑我要做的是实现 hook_menu_alter,并且我会将 node/% 页面回调修改为您在 hook_menu 中使用的回调以呈现 foo/123 页面。

于 2010-10-13T11:49:16.363 回答