0

当菜单是单​​级列表时,我有一个预处理功能可以正常工作。但是,我希望它与吸盘鱼菜单一起工作。我想向顶级菜单项添加一个类,以便我可以设置它的样式。这是我用于单级菜单的代码:

function cti_flex_preprocess_page(&$vars, $hook) {

// Make a shortcut for the primary links variables
$primary_links = $vars['primary_links'];

// Loop thru the menu, adding a new class for CSS selectors
    $i = 1;

    foreach ($primary_links as $link => $attributes){
        // Append the new class to existing classes for each menu item
        $class = $attributes['attributes']['class'] . " item-$i";

        // Add revised classes back to the primary links temp variable
        $primary_links[$link]['attributes']['class'] = $class;
        $link['title'] = '<span class="hide">' . check_plain($link['title']) . '</span>';
        $i++;
        } // end the foreach loop

// reset the variable to contain the new markup
$vars['primary_links'] = $primary_links;

}

我一直在尝试使用该menu_tree()功能无济于事,例如:

function cti_flex_preprocess_page(&$vars, $hook) {

// Make a shortcut for the primary links variables
$primary_links = $vars['primary_links'];

// Loop thru the menu, adding a new class for CSS selectors
    $i = 1;

    foreach ($primary_links as $link => $attributes){
        // Append the new class to existing classes for each menu item
        $class = $attributes['attributes']['class'] . " item-$i";

        // Add revised classes back to the primary links temp variable
        $primary_links[$link]['attributes']['class'] = $class;
        $link['title'] = '<span class="hide">' . check_plain($link['title']) . '</span>';
        $i++;
        } // end the foreach loop

// reset the variable to contain the new markup
$vars['primary_links_tree'] = menu_tree(variable_get('menu_primary_links_source', '$primary_links'));

}

任何想法将不胜感激。

4

1 回答 1

0

好吧,我放弃了,找到了一个很棒的模块,可以满足我的需要;不错的菜单。菜单的全css控制,优秀的模块。有关此模块的更多详细信息(来自其项目页面):

Nice Menus 启用下拉/右/左可扩展菜单。它对大多数浏览器仅使用 CSS,对 IE6 使用最少的 Javascript。(版本 2 对所有浏览器都使用 Superfish jQuery 插件,并带有禁用 JS 的选项,并且对于可以处理它的浏览器回退到仅 CSS。)

目前可以使用三种样式/类型的菜单:水平、下拉菜单;垂直,菜单向左飞;垂直,菜单向右飞。有一个手册页面提供了使用 Nice 菜单的站点列表。

Nice Menus 创建的块可以与任何现有的站点菜单相关联,这些菜单可以放置在任何可以放置普通块的主题中。对于主题用户,也可以使用提供的主题功能直接将菜单主题设置为 Nice Menu,因此不需要块。Primary Links 菜单的特定主题功能可用。主题功能还允许开发人员传入他们制作的自定义菜单树(即不使用 Drupal 菜单)。文档中有更多关于如何使用主题功能的信息。

该模块带有一个简单的通用配色方案,可以通过将覆盖 CSS 添加到主题的普通样式表或创建一个 Nice Menus CSS 文件并告诉 Nice Menus 使用它而不是通过全局使用它自己的默认选项来完全覆盖它主题配置。包含的 README.txt 文件和手册中提供了几个 CSS 覆盖示例。

于 2010-05-04T20:21:26.367 回答