这确实应该是一个基本问题,但经过数小时的搜索,我根本没有得到它。问题是,如何在 Drupal 7 中为菜单块设置主题?
我根据主菜单创建了三个不同的块。现在我想:
为所有三个块创建唯一的 HTML,这意味着修改周围的包装器和构建菜单的
<ul>
和<li>
。我想设置特殊课程并删除所有 Drupal 添加的东西将不同的类附加到每个块内的不同级别。其中一个块将显示两级菜单,即显示一个子菜单。我想为子菜单设置一个特殊的类...
这似乎是不可能的...... :(
提前感谢您的帮助!!!!
这确实应该是一个基本问题,但经过数小时的搜索,我根本没有得到它。问题是,如何在 Drupal 7 中为菜单块设置主题?
我根据主菜单创建了三个不同的块。现在我想:
为所有三个块创建唯一的 HTML,这意味着修改周围的包装器和构建菜单的<ul>
和<li>
。我想设置特殊课程并删除所有 Drupal 添加的东西
将不同的类附加到每个块内的不同级别。其中一个块将显示两级菜单,即显示一个子菜单。我想为子菜单设置一个特殊的类...
这似乎是不可能的...... :(
提前感谢您的帮助!!!!
主题化是一种棘手的野兽,通常会根据您需要做的事情而变化很大。即使您的描述非常详细,我仍然可以说“这取决于”,但这里有几个步骤可以帮助您找到正确的方向。
第 1 步:按照 Caffeine Addict 的建议使用块 tpl.php。如果您不确定如何命名 .tpl.php,我建议您使用Theme Developer模块。它有问题,但您可以使用它来选择特定元素并让它告诉您命名 .tpl.php 文件的建议。
第 2 步:使用 template.php 中的主题/预处理函数来修改预定义的变量和标记。请务必查看 api.drupal.org 上的theme_menu_tree和template_preprocess_menu_tree函数以获取起点。如果您使用的是devel 模块, dpm($variables);
请在每个模块中使用以从一开始就查看您必须使用的内容。
我希望这会有所帮助!我同意咖啡因瘾君子的说法,他说超级鱼可能是一种替代品。您还应该查看菜单块模块,以将条件子部分分解为它们自己的块。
除了 davidneedham 所说的,要更改 Drupal 添加到菜单 HTML 标记的内容,您可以覆盖它们。这里添加了类:
<ul class="expanded">
<li class="firstleaf">...<li>
...
</ul>
我没有找到删除此类的方法,但是您可以在block--system--main_menu.tpl.php
文件中覆盖它们,如下所示:
li.expanded,
li.collapsed,
li.leaf {
padding: 0 0 0 0;
margin: 0;
}
ul.menu li {
margin: 0 0 0 0;
}
然后打印您的菜单内容:
<?php echo $content; ?>
我是 Drupal 的新手,希望我的帖子可以帮助到你!:)
我建议从安装 Zen 主题开始,然后按照主题内的说明设置启动子主题。这包含了在 drupal 中学习主题以及如何添加自己的样式表等所需的所有信息。
这将允许您开始编辑菜单块的模板并设置您自己的 html 包装器和类。
为了在块上设置额外的类,我会使用这个模块: http ://drupal.org/project/block_class
然后只需编辑该块,您将看到一个额外的部分,用于向该块添加其他类。