php - 听表单提交的钩子(Hook)是什么?

标签 php drupal content-management-system

我正在编写一个作用于另一个模块的模块。另一个模块的提交表单位于 admin/settings/image-toolkit。提交表单后,我的模块需要响应该事件。

我需要监听什么钩子(Hook)以及我如何知道表单的名称?

在这种情况下,我什至不确定在哪里打印 dsm 以获得有关此表格的更多信息。有没有类似 hook_nodeapi 的东西,但对于表单我可以给我更多关于表单的信息?

最佳答案

所有表单都带有一个 $form[#submit] 属性,该属性描述了表单提交时运行的函数。默认值是 formname_submit,当然,但您只需要向该数组添加新的即可。

因此,您应该使用 hook_form_alter 并将另一个项目添加到 $form['#submit'] 数组。

您可以使用 Devel 模块或通过在页面本身的 HTML 中查找来轻松获取表单 ID。 (如果你采取后一种方式,连字符应该被翻译成下划线)

我在我的安装中获得了该表单的 system_image_toolkit_settings,但这可能取决于您使用的图像库(我使用 GD)。

不过,我承认我对您想添加到那个提交处理程序的内容有些摸不着头脑;p

编辑:

回复OP评论的一些示例代码:

你基本上要找的是这个:(来自 http://drupal.org/node/144132 )

function my_module_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'my_form') {
    $form['#submit'][] = 'my_additional_submit_handler';
  }
}

当然,您需要在您的自定义模块中使用 function my_additional_submit_handler 来跟进,以便任何事情发生。

关于php - 听表单提交的钩子(Hook)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561894/

相关文章:

drupal - 如何在 404 页面上设置隐藏 block (错误) Drupal

php - 我正在寻找类似 dotcms 但用 PHP 编写的 CMS

php - 从外部获取变量,在 PHP 函数内部

php - Woocommerce 新用户注册后更新用户元数据

javascript - 无法读取 null 的属性 'load'

PHP 奇怪的语法 - 它叫什么?

c# - 什么CMS : Sitecore, KEntico,EPIServer还是多个?

php - WordPress wpdb->插入/更新不工作

jquery - 如何在 Drupal 7 中使自定义 Ajax 命令等待动画

javascript - 如何使用 jQuery 修改动态创建的内容