【问题标题】:Redirecting or rewriting drupal links重定向或重写 drupal 链接
【发布时间】:2010-10-13 06:15:58
【问题描述】:

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

我尝试了 PathAuto,但仅将 foo/123 设为 node/123 的别名是行不通的。特定结构、选项卡等...已使用hook_menufoo/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 不再起作用。那是因为现在 foo/### 正在路由到 node/###,就像我要求的那样,并且显示的是 vanilla drupal 节点显示,而不是我的 hook_menu。

【问题讨论】:

    标签: drupal-6 pathauto


    【解决方案1】:

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

    进入pathauto的管理页面(admin/build/path/pathauto)。

    编辑

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

    【讨论】:

    • 嗯,我已经尝试过 PathAuto,但我认为我的问题比这更复杂。更新了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多