Drupal中的hook_form_FORM_ID_alter函数

时间:2011-11-04 13:12:33

标签: forms drupal

我想通过创建自定义模块来覆盖表单。但是,我需要在函数中保留我的表单ID。

Drupal.org提到了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">

1 个答案:

答案 0 :(得分: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。