我有一个自定义结构,用于浏览使用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。
答案 0 :(得分:1)
实际上可以设置PathAuto来指定您的自定义路径类型。它使用令牌模块,允许您轻松重新配置pathAuto应如何构建别名...
检查pathauto的管理页面(admin / build / path / pathauto)。
修改强>
对于你的编辑我要做的是实现hook_menu_alter,我会修改节点/%页面回调到hook_menu中使用的回调来呈现foo / 123页面。