Php Drupal 7引导下拉菜单

Php Drupal 7引导下拉菜单,php,twitter-bootstrap,drupal,drupal-7,twitter-bootstrap-3,Php,Twitter Bootstrap,Drupal,Drupal 7,Twitter Bootstrap 3,我是Drupal的新手。我正在尝试开发一个Bootstrap3模板,但是我在navbar下拉菜单实现方面有一个问题。我遵循以下步骤: 在mytheme/templates文件夹中,我创建了一个page.tpl.php文件,其中包含以下代码: if ($page['header']) ... $main_menu = variable_get('menu_main_links_source', 'main-menu'); $tree = menu_tree($main_menu); print d

我是Drupal的新手。我正在尝试开发一个Bootstrap3模板,但是我在navbar下拉菜单实现方面有一个问题。我遵循以下步骤:

在mytheme/templates文件夹中,我创建了一个page.tpl.php文件,其中包含以下代码:

if ($page['header'])
...
$main_menu = variable_get('menu_main_links_source', 'main-menu');
$tree = menu_tree($main_menu);
print drupal_render($tree);
...
在mytheme文件夹中,我创建了一个template.php文件,其中包含以下函数:

function mytheme_menu_tree($variables) {
   return '<ul class="nav navbar-nav">' . $variables['tree'] . '</ul>';
}

function mytheme_menu_link(array $variables) {
  $element = $variables['element'];
  $sub_menu = '';
  $dropdown = '';
  if ($element['#below']) {
    $sub_menu = drupal_render($element['#below']);
    $dropdown = 'class="dropdown"';
    $element['#localized_options']['attributes']['class'][] = 'dropdown-toggle';
  }
  $output = l($element['#title'], $element['#href'], $element['#localized_options']);
  return '<li ' .$dropdown. ' >' . $output . $sub_menu . "</li>\n";
}
函数mytheme\u菜单树($variables){
返回“
    ”.$variables['tree']”。
; } 函数mytheme_菜单_链接(数组$变量){ $element=$variables['element']; $sub_菜单=“”; $dropdown=''; 如果($element['#below'])){ $sub#u menu=drupal_render($element['#below']); $dropdown='class=“dropdown”'; $element['#本地化的_选项']['attributes'['class'][]='dropdown toggle'; } $output=l($element['#title']、$element['#href']、$element['#本地化选项']); 返回“.”.$output.$sub_菜单“\n”; }
有了这段代码,我的观点很好,但我需要从子类中删除类“nav navbar nav”,并添加类“下拉菜单”。 这是我的代码的结果:

<ul class="nav navbar-nav">
<li><a href="/drupal/node/1" class="active">XYZ</a></li>
<li><a href="/drupal/node/2" title="">ASD</a></li>
<li class="dropdown"><a href="/drupal/node/3" title="" class="dropdown-toggle">XXX</a>
<ul class="nav navbar-nav">
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
</li>
</ul>
这就是我想要得到的:

<ul class="nav navbar-nav">
<li><a href="/drupal/node/1" class="active">XYZ</a></li>
<li><a href="/drupal/node/2" title="">ASD</a></li>
<li class="dropdown"><a href="/drupal/node/3" title="" class="dropdown-toggle">XXX</a>
<ul class="dropdown-menu"> <!-- HERE IS THE DIFFERENCE -->
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
</li>
</ul>
也许我可以这样做:

function mytheme_menu_tree($variables) {
   if ( [check if I'm at the first level] ) {
       return '<ul class="nav navbar-nav">' . $variables['tree'] . '</ul>';
   } else {
       return '<ul class="dropdown-menu">' . $variables['tree'] . '</ul>';
   }

}
函数mytheme\u菜单树($variables){
如果([检查我是否在第一级]){
返回“
    ”.$variables['tree']”。
; }否则{ 返回“
    ”。$variables['tree']”。
; } }

但我不知道怎么。。。有什么想法吗?

对于Drupal,我也是个新手,也有这个问题。我已经调整了你的函数,它对我有效:

    function SeatradeKorea_menu_link(array $variables) {
        $element = $variables['element'];
        $sub_menu = '';
        $dropdown = '';
        if ($element['#below']) {
            $sub_menu = drupal_render($element['#below']);
            $sub_menu = str_replace('nav navbar-nav', 'dropdown-menu', $sub_menu);
            $dropdown = 'class="dropdown"';
            $element['#localized_options']['attributes']['class'][] = 'dropdown-toggle';
         }
         $output = l($element['#title'], $element['#href'], $element['#localized_options']);
         return '<li ' .$dropdown. ' >' . $output . $sub_menu . "</li>\n";
     }
function\u菜单\u链接(数组$variables){
$element=$variables['element'];
$sub_菜单=“”;
$dropdown='';
如果($element['#below'])){
$sub#u menu=drupal_render($element['#below']);
$sub_menu=str_replace('nav navbar nav','dropdown menu',$sub_menu);
$dropdown='class=“dropdown”';
$element['#本地化的_选项']['attributes'['class'][]='dropdown toggle';
}
$output=l($element['#title']、$element['#href']、$element['#本地化选项']);
返回“.”.$output.$sub_菜单“\n”;
}
我在您的#below元素中添加了一个,用“下拉菜单”替换“导航栏导航”