带子菜单的Drupal菜单仅显示当前页面的子菜单。不是CSS问题

时间:2010-05-14 21:13:27

标签: php html drupal menu

这不是CSS问题。 HTML不存在。我需要菜单,子菜单在每个页面的HTML中都存在。现在,子菜单仅存在于HTML中,用于与当前正在查看的页面相关的子菜单。这是一个它应该是什么样的例子。

<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>

但这是实际发生的事情(比如说我正在观看Page2):

<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和任何其他{ {1}}被赋予<li>个类。

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

有没有人知道这里发生了什么。我觉得我现在一直在挖掘Drupal Admin菜单。我觉得它必须在模板文件中有一个PHP解决方案,但我现在还不太了解Drupal。

谢谢!

3 个答案:

答案 0 :(得分:2)

我相信您可以在菜单管理页面中将其设置为展开。

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

答案 1 :(得分:0)

这取决于您使用的主题,某些主题在允许之前可能需要进行一些修改。 如果是这样的话,应该有一个选项,如果“如果选中此菜单项有子项,则菜单将始终显示为扩展”以勾选。

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

此页面介绍了您可以对主题进行的更改:http://drupal.org/taxonomy/term/6348

希望这可能有用。这本来是一个评论,但由于我不允许发表评论,我把它放在答案中(请原谅我:&lt;)。

答案 2 :(得分:0)

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

有不同的模块可以解决这个问题。如果你需要做一个小道等,你可能需要做一些工作。我建议nice menus我有很好的经验使用这个模块创建菜单块。