Để tạo chủ đề cho danh sách không có thứ tự, bạn cần gọi theme_menu_tree (). Bạn có thể chỉnh sửa template.php của bạn để gọi nó.
function THEMENAME_menu_tree__MENUNAME($variables){
return '<ul class="your-custom-class" id="your-custom-id">' . $variables['tree'] . '</ul>';
}
Sau đó, nếu bạn muốn tạo chủ đề cho các liên kết của mình, hãy gọi theme_menu_link ().
function THEMENAME_menu_link__MENUNAME($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";
}
Bây giờ, vấn đề với Drupal 7 là có một lỗi lớn khi hiển thị đường dẫn hoạt động của các menu tùy chỉnh.
Xem sự
cố Sự cố # 520106 - Không có cách nào để tự động đặt đường dẫn hoạt động
Vấn đề # 942782 - Menu tùy chỉnh không bao giờ nhận được đường dẫn hoạt động
Về cơ bản, bạn không gặp may nếu muốn có một số menu tùy chỉnh thực sự. Những vấn đề này tồn tại rất lâu trong cộng đồng drupal nên tôi không chắc liệu chúng có được khắc phục sớm hay không. Tôi không biết nếu có một số PHP có thể giúp với nó. Bạn có thể chuyển sang một số mô-đun thay thế để giúp giảm bớt chức năng, như Thuộc tính Menu và Khối Menu . Cả hai đều có thể giúp đi xung quanh hệ thống menu cruddy trong Drupal 7.