0

나는 드루팔 (Drupal)의 초보자입니다. 부트 스트랩 3 템플릿을 개발하려고하는데 navbar 드롭 다운 메뉴 구현에 문제가 있습니다. 내가 다음 단계에 따라 : 나는 이러한 기능을 가진 template.php 파일을 생성 mytheme 폴더에드루팔 (Drupal) 7 부트 스트랩 드롭 다운 메뉴

if ($page['header']) 
... 
$main_menu = variable_get('menu_main_links_source', 'main-menu'); 
$tree = menu_tree($main_menu); 
print drupal_render($tree); 
... 

: 내 mytheme에서

을/폴더가 나는 page.tpl.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"; 
} 
내가 좋은 점에있어이 코드

,하지만 난 아이들에서 "탐색 메뉴 바 - 탐색을"클래스를 제거하고 클래스 "드롭 다운 메뉴"를 추가해야합니다. 이 내 코드의 결과입니다

<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> 

를이 내가 얻을하고자하는 것입니다 :

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

} 

하지만 I :

<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> 

어쩌면 내가 이런 식으로 뭔가를 할 수 어떻게 됐는지 몰라 ... 어떤 생각?

답변

0

동일한 문제가 있으며 해결책을 찾았습니다. here. 더 좋은 방법을 알고 있으면 알려주세요. 저는이 문제를 해결하기 위해 노력하고 있습니다. 감사.

1

드루팔 (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"; 
    } 

내가이 꽤 있어요

0

"드롭 다운 메뉴"와 "탐색 메뉴 바 - 탐색을"대체 당신의 #below 요소에 str_replace()를 추가 한 그것을하는 방법의 철저한 설명 here.

관련 문제