Drupal EntityForm挂钩

时间:2014-03-31 06:42:30

标签: drupal-modules

我正在使用drupal Entity-Form模块,我已经成功实现了它的用户界面部分。但是,当我试图挂钩实体表单提交时,我无法得到任何东西..

我尝试了hook_form_alter()hook_form_FORM_ID_alter(),但没有尝试。 有没有人实现过......?我在下面尝试了以下各项: -

function form_submit_igs_entity_views_field_handlers_alter(array &$field_handlers){
    echo "pankaj";
}

function _form_entityform_settings_alter(&$form, &$form_state, $form_id) {
    echo "pankaj";
}

function form_submit_igs_entity_presave($entity, $type){
    echo "pankaj";
}

function form_submit_igs_node_view_alter(&$build){
    echo "pankaj";
}
function form_submit_igs_field_attach_submit($entity_type, $entity, $form, &$form_state){
    echo "pankaj";
}

function form_submit_igs_form_alter(&$form, &$form_state, $form_id){
    echo "pankaj";  
}

3 个答案:

答案 0 :(得分:1)

以下是我弄清楚的方法: 我写了一个看起来像这样的hook_form_alter()函数 function hook_form_alter()(&$form, &$form_state, $form_id) { dpm($form); } 从那里我可以获得现有表格上的formID&然后获取该函数的相应名称。

请注意,您也可以这样做:

function hook_form_entityform_edit_form_alter(&$form, &$form_state, $form_id) { dpm($form); } 仅更改实体表单。

在两个实例hook中都将替换为您的模块名称。安装devel模块以使dpm()函数起作用而不抛出错误。

希望这可以帮助您找出问题所在。

答案 1 :(得分:0)

不确定要存档的内容,您的描述不是很好,但无论如何。 要更改任何实体形式表单,您需要使用<{3}}, $ machine_name。 '_entityform_edit_form'作为表单ID,因此您的函数将如下所示 some_func_form_YOUR_ENTITY_FORM_NAME_entityform_edit_form_alter()

答案 2 :(得分:0)

我使用了hook_form_FORM_ID_alter(),您必须在机器名后使用您的特定实体形式的机器名称加上 _entityform 。例如,如果您的entityform的机器名称是&#34; myentityform&#34;你的模块名称是&#34; mymodule&#34 ;, hook_form_FORM_ID_alter将是:

/**
 * Implements hook_form_FORM_ID_alter().
 */
function mymodule_form_myentityform_entityform_edit_form_alter(&$form, &$form_state, $form_id)
{
  // Your codes
}