Drupal 6:父菜单项重定向到第一个子菜单项

时间:2011-06-22 20:13:03

标签: drupal drupal-6

我有一个Drupal 6.22站点,有这样的主要链接(使用Nice Menus):

Section 1
- Foo
- Bar
Section 2
- Page A
(...)

我的客户询问:如果用户点击“第1部分”,则会显示“Foo”页面。换句话说,当点击任何“部分”时,用户将被重定向到该部分的第一个孩子。

首先,我将菜单项“Section 1”路径修改为“section1 / foo”,但是Foo页面中的痕迹导航(我正在使用Menu Breadcrumbs)显示:

Home > Section 1

我希望面包屑能够显示出来:

Home > Section 1 > Foo

所以这没用,所以我安装了Redirect Module,定义了一个“section1 - > section1 / foo”重定向,但我无法创建指向“section1”的菜单项(它不是别名)。

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您需要直接编辑菜单数组。从您正在使用的当前主题中打开template.php,并将其添加到函数themename_preprocess_page(& $ vars)中:

的print_r($ VARS [ 'primary_links']);出口();

然后刷新网站上的任何页面,您将看到打印出的primary_links数组。它看起来像这样:

Array ( [menu-640 active-trail] => Array ( [attributes] => Array ( [title] => A Page Title ) [href] => node/20 [title] => A Page Link Title ) )

您可以通过将[href]设置为首选值来更改[href]。你需要通过foreach($ vars ['primary_links'])循环来获得创造力,以便让孩子适当地改变他们的父母,但这不应该太难。

答案 1 :(得分:1)

这是Drupal的一大痛苦。我的解决方案是专门为重定向页面创建一个节点。 (我实际上创建了一个名为Redirect的内容类型,所以我可以让pathauto以不同方式对待它们...自动创建像/ redirect / page-name这样的别名)创建该节点后,您可以设置从该页面到该页面的重定向真实的页面。

我还设置了robots.txt以禁止重定向/ *,这样Google就不会尝试将重定向页面编入索引,如果碰巧找到它们的话。