如何在 drupal6 中创建自己的钩子


How can i create my own hook in drupal6?

drupal如何创建自己的钩子。同样,我想要一个为自己定制的钩子。我该如何进行?

也许你正在寻找module_invoke_all

一些有用的链接可以开始:

  • 为您的Drupal模块创建钩子
  • 如何使用 module_invoke_all() 调用钩子

如果你有一个通过引用传递参数的钩子,并且你不能使用drupal_alter(例如,传入多个参数的预保存钩子),你可以使用module_implements。

这样,模块就可以将其实现为modulename_foo_presave而不是modulename_presave_alter。 当您想让模块在其生命周期的多个点更改某些内容时,它非常有用。

有关drupal核心的示例,请查看node_validate的代码(drupal 7)。

foreach (module_implements('node_validate') as $module) {
  $function = $module . '_node_validate';
  $function($node, $form, $form_state);
}

与 http://api.drupal.org/api/drupal/modules%21node%21node.module/function/node_validate/7 相比

如果你想创建可以用这种方式实现的钩子,同样的方法也适用于 Drupal 6。