You are here

使用hook_insert()来存储我们的数据

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2009-08-11 09:16

当一个新节点被保存时,会调用钩子insert()。在这个钩子中你可以将自定义数据存储到相关的表中。只有对于在节点类型元数据中定义的模块,才为其调用这一钩子。该信息定义在hook_node_info()的“module”键中(参看“提供我们节点类型的相关信息”一节)。例如,如果“module”键的值为joke,那么就会调用joke_insert()。如果你启用了书籍模块,并且新加了一个书籍类型的节点,此时就不会调用joke_insert();这里将调用的是book_insert(),这是因为book.module使用“module”键为book来定义了它的节点类型。

 
注意 如果你想在插入一个不同类型的节点时,对其做些操作的话,你需要把它当作一个普通的节点提交,使用钩子hook_nodeapi()插入一些操作。参看“使用hook_nodeapi()操纵其它类型的节点”一节。
 
    下面是为joke.module编写的hook_insert()函数:
/**
 * Implementation of hook_insert().
 */
function joke_insert($node) {
db_query("INSERT INTO {joke} (nid, vid, punchline) VALUES (%d, %d, '%s')",
$node->nid, $node->vid, $node->punchline);
}
 老葛的Drupal培训班 Think in Drupal

Drupal版本: