2012-01-06 54 views
0

我無法找到簡明的答案或對此有幫助。我希望能夠在Drupal中添加一個類或ID到ANY元素。爲了使頁面上的按鈕變得容易,我想添加類「按鈕」。如何和在哪裏完成?我在form.inc中看到了一個引用,並使用了像module.php這樣的東西,但我正在努力獲得一些具體的幫助。如何將類/ ID添加到任何元素?

+0

什麼版本的Drupal是這個用的? – Clive 2012-01-06 08:37:34

+0

Drupal 7.10。對不起,不要這樣做。 – 2012-01-06 14:24:09

回答

0

你需要實現覆蓋爲表單項提供標記的核心主題。這些包括theme_button,theme_submit,theme_textfield和加載更多。

要做到這一點,你的活動主題的template.php文件中實現MYTHEME_theme_name()和改寫輸出,你認爲合適:

function mytheme_button(&$variables) { 
    $element = $variables['element']; 
    $element['#attributes']['type'] = 'submit'; 
    element_set_attributes($element, array('id', 'name', 'value')); 

    $element['#attributes']['class'][] = 'form-' . $element['#button_type']; 
    if (!empty($element['#attributes']['disabled'])) { 
    $element['#attributes']['class'][] = 'form-button-disabled'; 
    } 

    $element['#attributes']['class'][] = 'my-new-class'; 

    return '<input' . drupal_attributes($element['#attributes']) . ' />'; 
} 

上述功能是直接從theme_button()複製功能,只是增加了一個額外的行向按鈕元素添加一個額外的類。

確保您在實現掛鉤後清除Drupal的緩存,以便主題註冊表將其提取出來。

值得注意的Drupal的已經增加了類,如form-textform-submit等單個元素,所以你可以嘗試,如果你想與目標CSS元素使用這些。

+0

哇。是的,這支部隊對我來說還不夠強大。我試圖使用twitter/bootstrap CSS,所以我認爲它會「相對」容易地做到。我會亂七八糟,看看我能走多遠。 – 2012-01-06 14:54:22

-1

sites/all/themes/yourthemes/...中經過page.tpl.php,您可以將id或classnames作爲您的願望。

0

它取決於你想改變的元素。
例如,您可以添加類和ID爲「s到形式與hook_form_alter
其他要素必須被修改或否決裏面自定義主題模板,具體情況取決於元素出現它可以在例如html.tpl.php ,page.tpl.php中,block.tpl.php,node.tpl.php等
隨着DevelDevel themer模塊,你可以有哪裏找一個更好的意見

編輯:BTW從來沒有入侵核心這會讓你後來有很多麻煩!