drupal如何创建自己的钩子。同样,我想为自己定制一个钩子。我该怎么办?
答案 0 :(得分:2)
可能您正在寻找module_invoke_all
一些有用的链接:
答案 1 :(得分:0)
如果你有一个通过引用传递参数的钩子,并且你不能使用drupal_alter(例如传递多个参数的presave钩子),你可以使用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中使用相同的方法。