it-swarm-vi.com

Hiển thị tất cả các liên kết menu lồng nhau trong Drupal 7

Làm cách nào để hiển thị tất cả các liên kết lồng nhau trong <ul><li> format in Drupal 7? Mã mặc định chỉ hiển thị các liên kết cấp 1 ngay cả khi chúng được sắp xếp trong menu Drupal quản trị viên được lồng vào nhau:

<?php if ($main_menu): ?>
<div id="mainmenu"> <?php print theme( 'links__system_main_menu', array('links' => $main_menu) ); ?> </div>
<?php endif; ?>

Chỉ cấp 1 được hiển thị trong ff. thiết lập menu:

-Fruits
---Apples
---Oranges
---Lemons
-Cars
---Big car
---Small car
---Fucked up car
-Whatever
6
enchance

Biến $main_menu Mặc định trong page.tpl.php Được đặt thành menu_main_menu() , là chế độ xem theo ngữ cảnh của cây menu chính.

Để có được đầu ra mong muốn của bạn, bạn cần lấy toàn bộ cây menu bằng cách sử dụng menu_tree_all_data()menu_tree_output() .

Để thực hiện điều này trong chủ đề của bạn, hãy tạo template.php Nếu bạn chưa có và thêm chức năng tiền xử lý mới cho mẫu trang:

function THEMENAME_preprocess_page(&$variables) {
  // Get the entire main menu tree
  $main_menu_tree = menu_tree_all_data('main-menu');

  // Add the rendered output to the $main_menu_expanded variable
  $variables['main_menu_expanded'] = menu_tree_output($main_menu_tree);
}

Sau đó, trong page.tpl.php, Bạn chỉ có thể sử dụng:

<?php print render($main_menu_expanded); ?> 

để có được một danh sách mở rộng, lồng nhau của menu chính.

Để linh hoạt hơn một chút, bạn có thể muốn xem xét mô-đun Khối men , sẽ cho phép bạn tạo các khối menu mở rộng ra khỏi hộp với Mở rộng tất cả trẻ em của tùy chọn cây này cũng như một loạt các tùy chọn khác để phân đoạn cây menu.

23
user7

Ngoài ra còn có một mô-đun menu_block cho phép tạo số lượng khối tùy chỉnh tùy ý hiển thị các phần cần thiết của menu

0
Dmitry Vyal