0

我们试图让 Drupal 允许我们根据与当前项目的关系将自定义 css 类放在菜单项上。通过这种方式,我们可以使用 CSS 隐藏和设置项目样式,因此菜单不会那么大。

我们希望能够区分: 第一级 - 总是显示不活跃的祖先 trail - 总是隐藏 Active_trail - 显示当前项目 - 显示兄弟姐妹 - 显示孩子 - 显示

规则是:

一般导航规则
导航时,您将始终看到“1 级”导航。
您将看到您所在页面的直接后代(面包屑)。您会看到您所在页面的兄弟姐妹。您会看到您所在页面的子项。注意:这不是手风琴导航。只有当您在页面上时,子级别才会可见。

级别 1 您只看到主页和导航的顶层。主页链接不显示。

2 级 当离开主页时,其链接将与“1 级”导航以及您所在页面的直接子级一起出现。

第 3 级 现在您可以看到所有第 1 级、所有第 2 级(兄弟)和您所在页面的子级(第 3 级)。这可以让您很好地了解在深入了解页面后通常会在网站上看到多少导航。

第 4 级 您一如既往地看到主页和第 1 级。您还可以看到您所在页面的祖先。因为您在第 3 级,所以您可以看到第 3 级的所有兄弟姐妹以及您所在页面的子级(第 4 级)。

第 5 级 您可以看到主页和第 1 级。您还可以看到您所在页面的祖先。因为您在第 4 级,所以您可以看到第 4 级的所有兄弟姐妹以及您所在页面的子级(第 5 级)。

更新:

我基本上能够完成我所需要的

function USZ_menu_link($variables) {
    $element = $variables['element'];
    $depth = sizeof(menu_get_active_trail()) -1; 
    static $item_id = 0;


    if(!$element['#below'] && !$element['#active_trail'] && $element['#original_link']['depth'] != "1" && $element['#original_link']['depth'] < $depth){
        $element['#attributes']['class'][] = 'hideme';      
    }
}
4

1 回答 1

0

无法理解您需要的所有内容,但我可以推荐http://drupal.org/project/menu_positionhttp://drupal.org/project/contexthttp://drupal.org/project/menu_block

该模块将通过菜单帮助您完成大部分任务。上下文模块可以为菜单项添加类,菜单块使用自定义设置扩展菜单块(级别,包括树的括号项,也具有上下文集成),菜单位置有助于为不同的条件创建规则,并提供 API 来处理菜单您的自定义模块。

这只是一个意见,我认为知道这些模块可以做什么会有所帮助。

于 2012-05-16T22:11:04.020 回答