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
.