2011-02-04 98 views
1

我有一個Drupal 7網站,並且想要自定義評論表單以始終爲純文本(不管用戶是否通過身份驗證)。由於文本格式設置將被修復,我想刪除評論主體底部顯示的小部分。自定義評論表單外觀

一般來說,我如何去定製評論表單的外觀和感覺?

UPDATE

按Berdir的指示我增加了一個#after_build功能。我通過將hook_form_comment_form_alter函數添加到我的template.php文件中來實現這一點。這種新的功能,它調用自定義功能如下:

function mytheme_form_comment_form_alter(&$form, &$form_state, &$form_id) 
{ 
    $form['comment_body']['#after_build'][] = 'configure_comment_form'; 
    //$form['comment_body']['und']['#after_build'][] = 'configure_comment_form'; 
} 

function configure_comment_form(&$form, &$param1, &$param2) 
{ 
    var_dump($form); 
} 

顯然,我可以告訴大家,爲var_dump被打印出來,我configure_comment_form函數獲取調用。我試着在代碼中顯示的$form數組中的位置處添加configure_comment_form到#after_build。我得到了相同的結果,評論正文表單字段簡單地消失。

我沒有覆蓋任何現有的構建函數。 $form['comment_body']['#after_build']當我添加一個功能,它和​​添加自定義功能後,看起來如下不存在:

["#after_build"]=> 
     array(2) { 
     [0]=> 
     string(30) "field_form_element_after_build" 
     [1]=> 
     string(22) "configure_comment_form" 
     } 

回答

1

要刪除過濾器盒的評論身下,你可以使用你的主題的template.php文件來實現以下鉤子:

function theme_filter_tips($variables) { 
    return ''; 
} 
function theme_filter_tips_more_info() { 
    return ''; 
} 
function theme_filter_guidelines($variables) { 
    return ''; 
} 

這只是離開過濾器/提示框的輪廓,而可以照顧你的主題的CSS與:

.filter-wrapper { 
    display: none; 
} 

雖然我不知道是否會導致其他功能通過隱藏該類中斷。

0

我已經做了類似的東西爲http://drupal.org/project/privatemsg

首先,添加一個#after_build功能的('privatesg_check_format_access'),「(因爲你正在改變一個表單,首先檢查是否已經有這樣一個函數然後附加它,不要覆蓋)

然後,在該函數中,將格式字段的#access設置爲FALSE和forc e #default_value任何你想要的。見privatemsg_check_format_access

+0

我關注你。我會在下個星期的某個時候發佈並回報。 – Endophage 2011-02-07 17:06:46