2011-12-15 23 views
0

添加額外的DIV級/包格類圍繞現有格在我的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,但沒有成功。

A hook_form_alter也不是解決方案,因爲您必須爲每個表單執行此操作...... div類出現在多個頁面上,所以我想用一個代碼片段來捕捉該語句。
任何想法?

回答

1

我很驚訝Drupal並沒有將這個功能「挖掘出來」,但如果你看看theme_form_element() function,你可以看到這些類是靜態設置的。

我覺得你在代碼中想要什麼的唯一方法是使用該功能的主題覆蓋:

function mytheme_form_element($variables) { 

} 

在此功能,您需要從theme_form_element功能將整個代碼(似乎有點小題大做,但我知道,我想不出更好的辦法),並添加新類的$attributes['class']陣列:

$attributes['class'] = array('form-item', 'my-other-class'); 
+0

好的,謝謝。我會嘗試 – Michiel 2011-12-15 15:00:26

0

根據您想放置的位置,查看該塊/區域/頁面的模板文件並創建一個覆蓋該模板的模板。例如,如果您想將該div添加到每個節點,我會在自定義主題內創建一個node.tpl.php並將其添加到此處。正如我所說,這取決於你想放在哪裏。

+0

我想類似的東西,但我想這樣做的代碼...是不是有任何功能突然出現在你的腦海裏? '因爲我的已經打破:) – Michiel 2011-12-15 14:32:01