2016-07-12 38 views
0

我的公司接管了网站的维护,并且正在尝试确定如何正确获取顶级(父级)链接以及子链接。这是正在使用的代码是:Drupal 7中的自定义移动菜单无法访问子链接

<div id="monav"> 
<ul> 
    <?php 
$mobile_menu = menu_navigation_links('menu-mobile-nav'); 
print theme('links__menu_mobile_nav', array('links' => $mobile_menu)); 

    ?> 
    </ul> 

这只吐出顶层。我一直在挖掘论坛和代码,试图找到获取子链接的正确方法。你能指出我正确的方向吗?明智的Drupal大师?

注意:将父链接设置为“显示为展开”不起作用。

回答

0

更新:

上面的代码正在吐出一个错误,所以我正在做这个。

的template.php在theme_preprocess_page(& $瓦尔)功能

//Render main menu 
$main_menu_tree = menu_tree(variable_get('menu_main_links_source', 'main-menu')); 
$vars['main_menu'] = $main_menu_tree; 

然后我使用

<div id="monav"> 
    <?php 
     print render($main_menu); 
    ?> 
</div> 

为了使这个菜单的移动,我添加显示在page.tpl.php中的菜单以下jquery

(function ($) { 

$(document).ready(function(){ 
//Mobile Navigation 
$('#nav-toggle').click(function(e) { 
    $('#monav').toggle(); 
}); 
$('#monav li.expanded > a').attr("href", "#"); 
$("#monav li.expanded").click(function() { 

    $(this).find('.menu').toggle(); 

    }); 
}); 

})(jQuery); 

注意我不得不隐藏在我的css

#monav ul.menu li.expanded .menu{ 
display:none; 
} 
0

我结束了使用此代码:

在我的template.php有

//Render Mobile 
function drive_menu_tree__menu_mobile_nav($variables){ 
    return '<ul class="" id="">' . $variables['tree'] . '</ul>'; 
} 


function drive_menu_links__menu_mobile_nav($variables) { 
    $element = $variables['element']; 
    $sub_menu = ''; 

    if ($element['#below']) { 
     $sub_menu = drupal_render($element['#below']); 
    } 
    $output = l($element['#title'], $element['#href'], $element['#localized_options']); 
    return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; 
} 

然后我用显示page.tpl.php中的菜单:

print drupal_render(menu_tree_output(menu_tree_all_data('menu-mobile-nav'))); 

来源: How to display a menu in a template file?