Drupal 7中的自定义移动设备菜单无法访问子链接

时间:2016-07-12 14:30:54

标签: php drupal 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大师吗?

注意:将父链接设置为“Show as expanded”不起作用。

2 个答案:

答案 0 :(得分: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?

答案 1 :(得分:0)

更新

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

theme_preprocess_page(&amp; $ vars)函数中的template.php

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

然后我使用

在page.tpl.php中显示菜单
  <div id="monav">
  <?php
        print render($main_menu);
    ?>
</div>

要使此菜单移动,我添加了以下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;
}