2010-05-14 111 views
1

这不是一个CSS问题。 HTML不在那里。我需要菜单,子菜单存在于每个页面上的HTML中。目前,子菜单仅存在于与当前正在查看的页面相关的子菜单的HTML中。这是一个它应该是什么样子的例子。带子菜单的Drupal菜单仅显示当前页面的子菜单。不是CSS问题

<ul id="menu"> 
    <li>Page1 
     <ul class="sub"> 
      <li>sub1.1</li> 
      <li>sub1.2</li> 
      <li>sub1.3</li> 
      <li>sub1.4</li> 
     </ul> 
    </li> 
    <li>Page2 
     <ul class="sub"> 
      <li>sub2.1</li> 
      <li>sub2.2</li> 
      <li>sub2.3</li> 
      <li>sub2.4</li> 
     </ul> 
    </li> 
    <li>Page3 
     <ul class="sub"> 
      <li>sub3.1</li> 
      <li>sub3.2</li> 
      <li>sub3.3</li> 
      <li>sub3.4</li> 
     </ul> 
    </li> 
</ul> 

但这里是什么是真正发生的事情(比如说我目前看第二页):

<ul id="menu"> 
    <li>Page1</li> 
    <li>Page2 
     <ul class="sub"> 
      <li>sub2.1</li> 
      <li>sub2.2</li> 
      <li>sub2.3</li> 
      <li>sub2.4</li> 
     </ul> 
    </li> 
    <li>Page3</li> 
</ul> 

此外,也许这并没有什么关系,但无论列表项<li>元素是相对于我目前所在的页面给出的这些类别expanded active-trail和其他<li>给出的collapsed类。

这些类实际上并不是一个问题,问题只是内容(html)不存在。

有没有人有任何想法这里发生了什么。我觉得我现在一直在Drupal管理菜单中进行挖掘。我觉得它需要在模板文件中有一个PHP解决方案或者其他东西,但是现在我不太了解Drupal。

谢谢!

回答

2

我相信你可以将它设置为在菜单管理页面展开。

  1. 前往页面(管理员>网站建设>菜单或http://[drupal address]/admin/build/menu)。
  2. 选择您想要处理的菜单(您可以在导航菜单上试用)。
  3. 检查想要展开展开的子菜单下的复选框扩展。 (在上面的示例中,第1页,第2页,第3页应该都选中了扩展复选框,而不是子项)
  4. 保存配置。

就是这样。 :)

+0

谢谢,我知道有一些荒谬的简单的解决方案,我忽略了。我发现drupal管理面板在这里和那里有点落后...... – jordanstephens 2010-05-17 18:02:38

+0

没问题。 :)我确实同意你的观点,当我第一次发现这一点时,对我来说并不明显。 – sirhc 2010-05-17 18:05:34

0

这取决于您正在使用的主题,有些主题可能需要进行一些修改,然后才允许这样做。 如果确实如此,应该有一个选项,如果“如果选择并且此菜单项有子项,菜单将始终显示为已扩展”以勾选。

另一个问题可能是您需要将主链接放入块中,而不是让模板处理它。

本页面描述的变化,你可以做一个主题:http://drupal.org/taxonomy/term/6348

的这种希望的东西都能派上用场。这是为了评论,但由于我不允许评论,所以我把它放在一个答案中(请原谅我:<)。

+0

也许也想看看http://drupal.org/project/menu_block或http://drupal.org/project/submenutree – SteelSide 2010-05-14 22:24:27

0

你得到的是标准的Drupal行为。它基于静态的二级菜单,而不是可扩展的菜单。

有不同的模块可以解决这个问题。如果您需要制作路线等,您可能需要做一些工作。我会推荐nice menus我已经有了使用此模块的良好经验,该模块将菜单创建为块。