2011-11-04 62 views
1

我想通過創建一個自定義模塊覆蓋的形式。但爲此,我需要在函數中保留我的表單ID。hook_form_FORM_ID_alter功能在Drupal

Drupal.org mentionned的hook_form_FORM_ID_alter(&$form, &$form_state, $form_id)功能,但是當我將此我的形式,它沒有響應。我是否有語法錯誤,當我用下面的語句?:

function redactie_omgeving_fiche_node_form__form_alter(&$form, $form_state, $form_id) { 
    echo(var_dump('ONZE redactie_omgeving__fiche_node_form__form_alter')); 
} 

,這是我的表單:

<form class="node-form node-fiche-form" enctype="multipart/form-data" action="/node/1/edit" method="post" id="fiche-node-form" accept-charset="UTF-8"> 

回答

6

一個不錯的小技巧,以確保你有合適的形式ID是第一次使用hook_form_alter()獲得表單ID,然後使用hook_form_FORM_ID_alter()。例如,使用:

function YOURMODULE_form_alter(&$form, &$form_state, $form_id) { 
    drupal_set_message($form_id); 
} 

看到當前頁面上的所有形式的id的Drupal的消息。一旦你有正確的ID,然後將其放入hook_form_FORM_ID_alter()。嘗試一下,並確保您使用的是正確的表單ID。

+0

大招!我是否需要通過命名我自己的模塊來替換'hook_form'? – Michiel

+0

那麼也就是說'函數hook_form_fiche_node_form_alter($形式,&$ form_state,$ form_id){ \t回聲 'OK!'; }'應該工作嗎? – Michiel

+0

是的,但用你的模塊名稱而不是「hook_form」替換「hook」。所以'函數MODULENAME_form_fiche_node_form_alter($形式,&$ form_state,$ form_id){回聲 'OK!'; }' – Laxman13