2012-05-16 144 views
0

我们正试图让Drupal允许我们根据与当前项目的关系将菜单项上的自定义css类。这样我们就可以用css隐藏和设置项目,所以菜单不那么大。Drupal 7自定义naviagtion菜单

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

的规则是:

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

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

2级 如果关闭,主页,其链接将伴随着“等级1”的导航和你在页面的直接孩子一起出现。

3级 现在您可以看到所有1级,所有2级(兄弟姐妹)以及所在页面的孩子(级别3)。这可以让您了解一旦您深入到网页中后,您通常会在网站上看到多少导航。

4级 您会一如既往地看到主页和级别1。您还可以看到您所在页面的祖先。而且因为你在3级,所以你会看到3级的兄弟姐妹和你所在页面的孩子(4级)。

5级 ou一如既往地看到主页和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';  
    } 
} 

回答

0

都无法理解,你需要,但我可以建议更换http://drupal.org/project/menu_positionhttp://drupal.org/project/contexthttp://drupal.org/project/menu_block

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

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

+0

谢谢。我能够获得大部分我需要的东西。 – actraub