如何使 Twitter Bootstrap 的 css 类适应 drupal 菜单


How to adapt Twitter Bootstrap´s css classes to drupal menus?

我正在将Twitter的Bootstrap顶部菜单调整为Drupal菜单系统。直到现在,没有成功。我正在使用Drupal模块nicemenus在下拉列表中显示它们。

这是使用Bootstrap的css手工制作的菜单列表:

    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner" style="padding-left: 0px;">
        <div class="container">
          <ul class="nav">
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown 1
                <b class="caret"></b></a>
                <ul class="dropdown-menu">
                    <li><a href="#"><i class="icon-star"></i> Item 1</a></li>
                    <li><a href="#"><i class="icon-star"></i> Item 2</a></li>
                </ul>
            </li>
            <li><a href="#">Normal Menu Link without dropdown</a></li>      
          </ul>
        </div>
      </div>
    </div>

这是带有nicemenus的Menu输出,正如你所看到的,Bootstrap更容易理解。

<div id="block-nice-menus-1" class="block block-nice-menus block-1 block-nice-menus-1 odd block-without-title">
  <div class="block-inner clearfix">
    <div class="content clearfix">
      <ul id="nice-menu-1" class="nice-menu nice-menu-down sf-js-enabled">
        <li class="menu-5674 menu-path-liganetnet  first   odd"><a href="">Link without Dropdowns</a></li>
        <li class="menu-267 menuparent  menu-path-front   even"><a style="dropdown" class="dropdown active" href="/">Dropdown Link 1</a>
            <ul style="display: none; visibility: hidden;">
                <li class="menu-2280 menu-path-node-196  first odd "><a href="">Item 1</a></li>
                <li class="menu-270 menu-path-node-197 even "><a title="" href="">Item 2</a></li>
                <li class="menu-271 menu-path-node-1464   odd   last "><a title="" href="">Item 3</a></li>
            </ul>
        </li>
        <li class="menu-268 menuparent  menu-path-front   odd"><a class="active" href="/">Dropdown Link 2</a>
            <ul style="display: none; visibility: hidden;">
                <li class="menu-274 menu-path-node-214  first   odd  "><a title="" href="">Item 1</a></li>
                <li class="menu-273 menu-path-node-213   even  "><a title="" href="">Item 2</a></li>
            </ul>
        </li>
      </ul>
    </div>
  </div>
</div>

我已经安装了menu_attributes模块,但是当我向它添加一些类时,它们只会添加到标签中。如何以编程方式转换这些 css 类?

做一个print_r(),我发现这个:

                            [sidebar_second] => Array
                                (
                                    [nice_menus_1] => Array
                                        (
                                            [#markup] => 
Link 1 without Dropdown
Dropdown 1
Dropdown 2
Dropdown 3

                                            [#contextual_links] => Array
                                                (
                                                    [block] => Array
                                                        (
                                                            [0] => admin/structure/block/manage
                                                            [1] => Array
                                                                (
                                                                    [0] => nice_menus
                                                                    [1] => 1
                                                                )
                                                        )
                                                )
                                            [#block] => stdClass Object
                                                (
                                                    [module] => nice_menus
                                                    [delta] => 1
                                                    [theme] => liganet
                                                    [status] => 1
                                                    [weight] => -62
                                                    [region] => sidebar_second
                                                    [custom] => 0
                                                    [visibility] => 0
                                                    [pages] => 
                                                    [title] => 
                                                    [bid] => 744
                                                    [cache] => -1
                                                    [subject] => 
                                                )

我认为可以使用在页面模板中打印的父菜单变量来完成,然后在类中打印子变量?我如何使用 php 做到这一点?

感谢您的帮助!

我做了模块,因为我有同样的问题。

请按照以下步骤操作:

第 1 步。

从 https//drupal.org/sandbox/m_roji28/2081231 安装模块bootstrap_components

从 https//drupal.org/project/menu_block 安装模块菜单块

第 2 步。

添加一个菜单块

,并记住菜单块 ID(菜单块的增量)。例如,如果菜单块的 url 配置如下:admin/structure/block/manage/menu_block/1/configure,则表示菜单块 id 为 1

第 3 步。

假设您的主题是 Bartik,因此在 Bartik 的模板中添加此行.php

    <?php 
    function bartik_menu_link__menu_block__1(&$variables) {
     // set options below
      $options = array('component' => 'button_dropdowns');
     // stop, and enjoy
     if(module_exists('bootstrap_components')){
      $pra_options = array();
      if(isset($variables['element']['#localized_options']['bootstrap_components'])) $pra_options = $variables['element']['#localized_options']['bootstrap_components'];
      $variables['element']['#localized_options']['bootstrap_components'] = $options + $pra_options;//wajib ada index bootstrap_components
      return theme_bootstrap_components_menu_link($variables);
     }
     else return theme_menu_link($variables);
    }?>

步骤完成。

现在,您的菜单块将从

    <ul class="menu clearfix"><li class="first leaf menu-mlid-611"><a style="f" class="e" rel="d" name="c" id="b" title="q" href="http://en.wikipedia.org/wiki/Sukarno"><i class="icon-camera-retro"></i>Sukarno</a></li>
    <li class="leaf menu-mlid-612"><a title="" href="http://en.wikipedia.org/wiki/Suharto"><i class="icon-globe"></i>Suharto</a></li>
    <li class="leaf menu-mlid-613"><a title="" href="http://en.wikipedia.org/wiki/B._J._Habibie"><i class="icon-compass"></i>B. J. Habibie</a></li>
    <li class="leaf menu-mlid-614"><a title="" href="http://id.wikipedia.org/wiki/Abdurrahman_Wahid"><i class="icon-bolt"></i>Abdurrahman Wahid</a></li>
    <li class="leaf menu-mlid-615"><a title="" href="http://en.wikipedia.org/wiki/Megawati_Sukarnoputri"><i class="icon-female"></i>Megawati Sukarnoputri</a></li>
    <li class="last leaf menu-mlid-616"><a title="" href="http://en.wikipedia.org/wiki/Susilo_Bambang_Yudhoyono"><i class="icon-bug"></i>Susilo Bambang Yudhoyono</a></li>
    </ul>

    <div class="btn-group-vertical">
    <button type="button" onclick="window.location.href='http://en.wikipedia.org/wiki/Sukarno'" style="f" class="e btn btn-default" rel="d" name="c" id="b" title="q"><i class="icon-camera-retro"></i>Sukarno</button>
    <button class="btn btn-default" type="button" onclick="window.location.href='http://en.wikipedia.org/wiki/Suharto'" title="http://en.wikipedia.org/wiki/Suharto"><i class="icon-globe"></i>Suharto</button>
    <button class="btn btn-default" type="button" onclick="window.location.href='http://en.wikipedia.org/wiki/B._J._Habibie'" title="http://en.wikipedia.org/wiki/B._J._Habibie"><i class="icon-compass"></i>B. J. Habibie</button>
    <button class="btn btn-default" type="button" onclick="window.location.href='http://id.wikipedia.org/wiki/Abdurrahman_Wahid'" title="http://id.wikipedia.org/wiki/Abdurrahman_Wahid"><i class="icon-bolt"></i>Abdurrahman Wahid</button>
    <button class="btn btn-default" type="button" onclick="window.location.href='http://en.wikipedia.org/wiki/Megawati_Sukarnoputri'" title="http://en.wikipedia.org/wiki/Megawati_Sukarnoputri"><i class="icon-female"></i>Megawati Sukarnoputri</button>
    <button class="btn btn-default" type="button" onclick="window.location.href='http://en.wikipedia.org/wiki/Susilo_Bambang_Yudhoyono'" title="http://en.wikipedia.org/wiki/Susilo_Bambang_Yudhoyono"><i class="icon-bug"></i>Susilo Bambang Yudhoyono</button>
    </div>