我正在使用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";
}
答案 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
}