在Drupal中的现有div周围添加额外的div-class / wrap div类

时间:2011-12-15 14:21:09

标签: css class drupal

在我的Drupal网站上,我有类似的内容:

<div class="form-item form-type-textfield item-1">
<div class="form-item form-type-textfield item-2">
<div class="form-item form-type-textfield item-3">
<div class="form-item form-type-textfield item-4">
...

有没有办法让它像这样

<div class="form-item form-type-textfield item-1 added-class">

<div class="wrapped-class">
   <div class="form-item form-type-textfield item-1">
</div>

因此,要在项目中添加一个类或在其周围包装一个类。我玩hook_preprocess,但是没有用。

hook_form_alter也不是解决方案,因为你必须为每个表单执行... div类出现在多个页面上,所以我想用一个代码片段来捕获该语句。
有任何想法吗?

2 个答案:

答案 0 :(得分:1)

我很惊讶Drupal并没有'养殖'这个功能,但如果你看theme_form_element() function,你可以看到这些类是静态设置的。

我能想到在代码中执行所需操作的唯一方法是使用该函数的主题覆盖:

function mytheme_form_element($variables) {

}

在该函数中,您需要放置theme_form_element函数中的整个代码(我知道这似乎有些过分,但我想不出更好的方法),并将新类添加到{{ 1}}数组:

$attributes['class']

答案 1 :(得分:0)

根据您要放置它的位置,查看该块/区域/页面的模板文件,并创建一个模板来覆盖它。例如,如果你想将div添加到每个节点,我会在我的自定义主题中创建一个node.tpl.php并将其添加到那里。正如我所说,这取决于你想把它放在哪里。