Drupal 7自定义导航菜单

时间:2012-05-16 21:28:04

标签: drupal menu navigation

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

我们希望能够区分: 第一级 - 总是显示 没有主动追踪的祖先 - 总是隐藏起来 Active_trail - 显示 当前项目 - 显示 兄弟姐妹 - 节目 儿童 - 表演

规则是:

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

等级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';      
    }
}

1 个答案:

答案 0 :(得分:0)

无法理解你所需要的一切,但我可​​以推荐http://drupal.org/project/menu_positionhttp://drupal.org/project/contexthttp://drupal.org/project/menu_block

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

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