原文链接:http://api.drupal.org/api/drupal/includes%21module.inc/group/hooks/6
钩子(Hooks)
钩子允许模块与Drupal内核交互
Drupal的模块系统是建立在“钩子”(hooks)这个概念上的。一个钩子实际上是一个名为foo_bar()的PHP函数,其中foo代表模块名(它的文件名应该像这样foo.module),bar表示钩子名。每个钩子都有一组定义好的参数和明确的返回类型。
想要扩展Drupal,一个模块只需要简单地实现一个钩子。当Drupal想要模块参与系统的运行时,它确定了哪个模块实现了这个钩子,并调用所有被启用并实现了这个钩子的模块。
关于所有可用被实现的钩子说明详见下表。其中字符串hook是用来表示模块名的占位符。例如,如果有个模块文件名叫example.module,那么hook_help()这个钩子函数在这个模块中应该定义为example_help()。
函数和方法名称 | 描述 |
---|---|
custom_url_rewrite_inbound | custom_url_rewrite_inbound不是一个钩子,它是一个你可以加在settings.php中的函数,可以用来修改请求让它们映射到Drupal的路径。这个函数会在模块加载和菜单系统初始化之前调用。它会修改$_GET['q']的值 |
custom_url_rewrite_outbound | custom_url_rewrite_outbound不是一个钩子,它是一个你可以加在settings.php中的函数,可以用来修改Drupal生成的所有链接。它会被url()函数调用,这个函数会被频繁地调用(每个页面的调用次数都在100+),所以它对性能的要求非常严格。 |
hook_access | 定义访问限制 |
hook_actions_delete | 一个动作(action)被删除后执行的代码 |
hook_action_info | 声明一个或多个Drupal动作的信息 |
hook_action_info_alter | 修改其他模块声明的动作信息 |
hook_block | 声明一个或一组区块(blocks) |
hook_boot | 执行设置任务,参看hook_init |
hook_comment | 响应评论操作 |
hook_cron | 执行周期性的操作 |