【问题标题】:Controllling Drupal's active/active-trail with duplicate menu items使用重复的菜单项控制 Drupal 的活动/活动轨迹
【发布时间】:2010-04-16 19:39:27
【问题描述】:

我正在开发一个需要在菜单中复制一些链接的网站:

A部分
-- 简介
-- 见证

B部分
-- 简介
-- 见证

推荐
-- A节
-- B节

所以“Section A > Testimonials”和“Testimonials > Section A”指向同一个节点。但无论人们使用哪个菜单链接,我都希望该人位于 A 部分。

问题在于 D6 不喜欢重复的菜单项,它分配的活动和活动跟踪类相当不可预测。

所以我的想法是为 Testimonials 菜单中的每个项目创建一个占位符节点,然后将 URL 设置为“testimonials/redirect/section-a”之类的内容,然后使用 mod_rewrite 重定向到“section-a” /推荐”。

使用此解决方案,我将在菜单中没有重复的路径。我只是希望这不会以某种方式伤害我的 SEO。

有人知道更好的解决方案吗?

【问题讨论】:

    标签: drupal menu


    【解决方案1】:

    我也有这个问题。当多个菜单项链接到同一内容时,Drupal 将使用具有最低菜单 id 的项目作为规范 - 无论您单击哪个菜单链接,您都会获得最低菜单 id 的活动轨迹。

    我不喜欢的修复它的最佳方法是将您的非规范菜单项指向一个节点,该节点将重定向到您想要的节点(您可以使用带有 drupal_goto 的 php 输入过滤器,或类似的东西)

    不幸的是,path_redirect 模块无法解决这个问题,因为它创建的重定向路径不能用作菜单项。

    我不确定为什么在 d6 中没有更多人使用此用例 - 根据我的经验,希望顶级菜单项指向第一个子项并希望将活动跟踪设置为第一个孩子。

    nodesymlinks 模块解决了反向用例 - 它允许您设置多个菜单项,每个菜单项都有自己的路径,指向同一个节点。因此,根据您在菜单中单击的链接,您会获得不同的活动轨迹。这个模块将是“规范菜单项”模块的一个很好的模型。

    【讨论】:

      【解决方案2】:

      我们在项目中遇到了同样的问题,我们设法让活动跟踪正常工作,在每个重复的菜单项中设置一个“#n”结尾。例如:

      Section A
      -- Introduction -> node/1#1
      -- Testimonials
      
      Section B
      -- Introduction -> node/1#2
      -- Testimonials
      
      Testimonials
      -- Introduction -> node/1#n
      -- Section B
      

      不是最漂亮的解决方案,但绝对是更快的解决方案 :) 我们发现的唯一不便之处是,如果用户先在“Section A - Introduction”中单击,然后在“Section B - Introduction”中单击,页面将不会重新加载。

      希望有帮助

      【讨论】:

        【解决方案3】:

        Multiple Node Menu 可能会成功:

        本模块修改标准节点编辑表单中的“菜单设置” 允许管理到一个节点的多个菜单链接。 Drupal 标准 行为是只关心阳极的单个菜单链接,所有其他 菜单链接必须通过菜单管理添加。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-29
          相关资源
          最近更新 更多