node_save()
次のコードが含まれています。
try {
// Load the stored entity, if any.
if (!empty($node->nid) && !isset($node->original)) {
$node->original = entity_load_unchanged('node', $node->nid);
}
}
entity_load_unchanged()
データベースからエンティティ(この場合はノード)をロードします。実行中のモジュールから変更が行われる前にエンティティオブジェクトを返します。
コードは、事前保存および更新フックの前に実行されます。
module_invoke_all('node_presave', $node);
module_invoke_all('entity_presave', $node, 'node');
//...
node_invoke($node, $op);
// Save fields.
$function = "field_attach_$op";
$function('node', $node);
module_invoke_all('node_' . $op, $node);
module_invoke_all('entity_' . $op, $node, 'node');
これらのフックには、内の任意の変更前のノードのプロパティを参照することが可能である$node->original
とともに、例えば、$node->original->status
。