hook

Drupal 中的 hook 理解


hook 分两类

定义

什么是定义呢,

  • hook_menu
  • hook_entity_info
  • hook_theme

之类的,定义什么什么

如上:

  • hook_menu 定义一个 路由
  • hook_entity_info 定义一个entity模型
  • hook_theme 定义一个模版

功能

什么是功能

  • hook_node_insert
  • hook_user_login

发生某个事件需要做什么

如上:

  • hook_node_insert 当新node插入的时候,我的模块需要做什么
  • hook_user_login 当用户登录的时候,我的模块需要做什么

Drupal 的所有扩展机制都是建立在 hook 机制上的。

Tags: 

Drupal Hook_menu


刚写了一个hook_menu试了一下这样写,感觉发现新大陆了。

$items['test/%node']
$items['test/%user']

可以直接占位,然后在url中传参直接传id。drupal会直接把相应的对象传到函数里去。

上面第一个传到回调函数的就是是一个node对象。

第二个就是User对象。

今天看了hook_menu的文档介绍 原来是自动装配器,调用的是实现了通配符_load的函数,如 %user 则会自动调用 user_load  %test 会调用 test_load  当然如果有模块实现了test_load函数才行。

还有一个高级用法。暂时没看懂。