老葛的Drupal培训班 Think in Drupal
当编辑完一个节点,并且节点核心数据已被写入到数据库中时,将会调用钩子update()。在这一钩子中可以编写对相关表的更新操作。和钩子hook_insert()一样,只有在节点为当前节点类型时才调用这个钩子。例如,如果节点类型在hook_node_info()中的“module”键为“joke”的话,那么将调用joke_update()。
/**
* Implementation of hook_update().
*/
function joke_update($node) {
if ($node->revision) {
joke_insert($node);
}
else {
db_query("UPDATE {joke} SET punchline = '%s' WHERE vid = %d",
$node->punchline, $node->vid);
}
}
/**
* Implementation of hook_update().
*/
function joke_update($node) {
if ($node->revision) {
// New revision; treat it as a new record.
joke_insert($node);
}
else {
db_query("UPDATE {joke} SET punchline = '%s' WHERE vid = %d",
$node->punchline, $node->vid);
}
}
在这里,你首先检查看是否设置了节点修订本标记,如果设置了,你为笑话妙语创建一个新的拷贝来替代旧的版本。