function node_object_prepare

Prepares a node object for editing.

Fills in a few default values, and then invokes hook_prepare() on the node type module, and hook_node_prepare() on all modules.

Parameters

$node: A node object.

1 call to node_object_prepare()
node_form in modules/node/node.pages.inc
Form constructor for the node add/edit form.

File

modules/node/node.module, line 979

Code

function node_object_prepare($node) {
    // Set up default values, if required.
    $node_options = variable_get('node_options_' . $node->type, array(
        'status',
        'promote',
    ));
    // If this is a new node, fill in the default values.
    if (!isset($node->nid) || isset($node->is_new)) {
        foreach (array(
            'status',
            'promote',
            'sticky',
        ) as $key) {
            // Multistep node forms might have filled in something already.
            if (!isset($node->{$key})) {
                $node->{$key} = (int) in_array($key, $node_options);
            }
        }
        global $user;
        $node->uid = $user->uid;
        $node->created = REQUEST_TIME;
    }
    else {
        $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O');
        // Remove the log message from the original node object.
        $node->log = NULL;
    }
    // Always use the default revision setting.
    $node->revision = in_array('revision', $node_options);
    node_invoke($node, 'prepare');
    module_invoke_all('node_prepare', $node);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.