function pagepreview_render_preview in Page Preview 6
Replacement function for node_preview().
Instead of calling theme('node_preview') to get the node output, we call node_view directly.
See also
1 call to pagepreview_render_preview()
- pagepreview_get_preview in ./
pagepreview.module - Menu callback for "pagepreview/%".
File
- ./
pagepreview.module, line 150 - An alternative node previewing system for the node add/edit form.
Code
function pagepreview_render_preview($node) {
if (node_access('create', $node) || node_access('update', $node)) {
// Load the user's name when needed.
if (isset($node->name)) {
// The use of isset() is mandatory in the context of user IDs, because
// user ID 0 denotes the anonymous user.
if ($user = user_load(array(
'name' => $node->name,
))) {
$node->uid = $user->uid;
$node->picture = $user->picture;
}
else {
$node->uid = 0;
// anonymous user
}
}
elseif ($node->uid) {
$user = user_load(array(
'uid' => $node->uid,
));
$node->name = $user->name;
$node->picture = $user->picture;
}
$node->changed = time();
// Display a preview of the node.
// Previewing alters $node so it needs to be cloned.
if (!form_get_errors()) {
$cloned_node = drupal_clone($node);
$cloned_node->build_mode = NODE_BUILD_PREVIEW;
// If enabled, allow page_manager.module to handle node rendering.
if (module_exists('page_manager')) {
module_load_include('inc', 'page_manager', 'plugins/tasks/node_view');
$output = page_manager_node_view($cloned_node);
}
else {
$output = node_view($cloned_node, 0, 1, 1);
}
}
return $output;
}
}