如何将子菜单与菜单树分开显示?[关闭]


8

我试图在一个页面上显示菜单项的所有第三级子菜单,每个子菜单都在其自己的显示块中。我已经尝试过“菜单块”模块,但是它似乎仅对活动路径有效,这意味着我只能将所有第二级和第三级菜单显示为一个单元,而不能仅将第三级菜单显示为单独的单元。

除了菜单块模块外,我还尝试使用此代码直接访问菜单树。

      $main = menu_navigation_links('main-menu', '2');
      echo theme('links__system_main_menu', array(
      'links' => $main,
      'attributes' => array(
      'id' => 'main-menu',
      'class' => array('links')
    ),
  ));
?>

这是菜单结构:

- Parent Menu 1
- Parent Menu 2
  - Child Menu A
    - SubChild Menu 1A
    - SubChild Menu 2A
    - SubChild Menu 3A    
- Child Menu B
  - SubChild Menu 1B
  - SubChild Menu 2B
  - SubChild Menu 3B

选择“父菜单2”时我想显示的内容:

块1:子菜单1A | 子菜单2A | 子孩子菜单3A

块2:子菜单1B | 子菜单2B | 子孩子菜单3B

任何以正确方式将子菜单与树分开显示的帮助将不胜感激。


您需要执行一些直接的数据库提取。
niksmac 2012年

您必须设置辅助菜单的来源。尽管该视频适用于Drupal 6,但该视频为我设置了Drupal 7 带来
Tim

“子菜单A”和“子菜单B”是否实际上不是菜单项(即它们仅用作标题还是分隔线)?另外,为什么正是您想要/需要将两个子菜单拆分为单独的块?最好/最简单的解决方案可能不在您尝试执行的操作之内,因此有助于您了解真正的最终目标是什么,因此我们可以考虑其他选择。
sheena_d 2012年

我最终直接进行了数据库提取:
user1240408

子菜单A和子菜单B都是菜单项。我试图在一个页面中显示子菜单A的所有子菜单,在另一个块中显示子菜单B的所有子菜单,等等,全部显示在一页上。这是所有不同“子菜单”部分的摘要页面。
user1240408'4

Answers:


5

我认为最好的方法是仅使用菜单块模块。这是关于它的报价(来自模块的项目页面):

...您是否曾经在主题上使用过“主菜单”和“辅助菜单”链接功能,并想知道“我怎么会显示比这更深的菜单项?”

好吧,这就是该模块的作用。它提供了从任何菜单的任何级别开始的菜单树可配置块。和更多!

因此,如果仅使用主题的主菜单链接功能,则可以添加和配置“主菜单(2级以上)”块。一旦您进入主菜单的页面之一,该块就会出现,并显示主菜单第二级(及更深层)的菜单树,并在您遍历该树时展开。您还可以限制菜单树的深度(例如,“主菜单(2-3级)”)和/或展开所有子菜单(例如“主菜单(2+级)”)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.