function pagepreview_get_preview in Page Preview 6
Menu callback for "pagepreview/%".
Directly prints a rendered page based on the cached temporary node.
Parameters
$token: The value of $form['#token']. This is generally the form ID.
1 string reference to 'pagepreview_get_preview'
- pagepreview_menu in ./
pagepreview.module - Implements hook_menu().
File
- ./
pagepreview.module, line 107 - An alternative node previewing system for the node add/edit form.
Code
function pagepreview_get_preview($token) {
// Get the cached temporary node.
$form_token = drupal_get_token($token);
$cache = cache_get('pagepreview:' . $form_token, 'cache_page');
$node = $cache->data;
drupal_set_title($node->title);
// Overrides $_GET['q'] so that other elements on the page can react to the
// proper path context.
if ($node->nid) {
$_GET['q'] = 'node/' . $node->nid;
}
elseif (!empty($node->path)) {
$_GET['q'] = trim($node->path, '/');
}
elseif (!empty($node->old_alias)) {
$_GET['q'] = trim($node->old_alias, '/');
}
$preview = pagepreview_render_preview($node);
// Switch to the anonymous user for page rendering.
// TODO: make this configurable.
global $user;
$orig_user = $user;
$user = user_load(0);
// Suppress fancy stuff like admin and admin_menu.module for the preview.
module_invoke_all('suppress');
print theme('page', $preview);
$user = $orig_user;
}