我目前正在开发一个模块,该模块通过 url 路径查找父菜单项,然后通过查找顶部父项来显示该相关菜单的当前树结构,最重要的是仅在该菜单中显示该菜单项和子菜单。
一个简单的解决方案是通过所有项目或以所有项目作为键的数组进行 foreach 循环。
path = '/system/menu/submenu';
parent = 'system';
output = parent + parent submenus.
“自定义菜单”中的所有菜单项:
- System
- Menu wrapper
- SubMenu 1A
- SubMenu 2A
- SubMenu 3A
- Main
- SubMenu 1B
- SubMenu 2B
- SubChildMenu 3B
PHP 代码应该返回这个:
- System
- Menu wrapper
- SubMenu 1A
- SubMenu 2A
- SubMenu 3A
我的代码(目前不工作):
$menu = menu_tree('my-custom-menu');
return = theme('my_custom_menu', array('system' => $menu_tree));
注意:这里只需要php代码和php代码,其他模块不支持,只能手动选择。内容通过块显示。
“对于导航,Drupal 将通过 menu_navigation_links调用menu_tree_page_data ,它只会返回单级链接。您可以按照此函数直到 menu_main_menu,然后在它之前使用 template_preprocess_page(这就是它最终在 page.tpl.php 中作为变量的方式)
但是,如果您将菜单作为块插入,menu_tree_page_data会由menu_tree调用(它会立即调用menu_tree_output,然后对数组进行一些额外的工作以进行最终标记。)在两者都运行之后,您可以将整个菜单树作为数组使用然后我运行了一些自定义 PHP 代码来循环遍历数组并将其呈现为 HTML 列表。”
人们以前曾问过这个问题,但我已经尝试过他们的解决方案,但没有成功的可能原因是这些问题适用于 drupal 6。我目前正在使用 drupal 7。
非常感谢您的帮助,谢谢...
相关问题:
https://drupal.stackexchange.com/questions/30112/displaying-a-menus-child-links