function node_preview

Generates a node preview.

Parameters

\Drupal\Core\Entity\EntityInterface $node: The node to preview.

Return value

An HTML-formatted string of a node preview.

See also

node_form_build_preview()

1 call to node_preview()
NodeFormController::preview in drupal/core/modules/node/lib/Drupal/node/NodeFormController.php
Form submission handler for the 'preview' action.

File

drupal/core/modules/node/node.pages.inc, line 111
Callbacks for adding, editing, and deleting content and managing revisions.

Code

function node_preview(EntityInterface $node) {
  if (node_access('create', $node) || node_access('update', $node)) {
    _field_invoke_multiple('load', 'node', array(
      $node->nid => $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_by_name($node->name)) {
        $node->uid = $user->uid;
      }
      else {
        $node->uid = 0;

        // anonymous user
      }
    }
    elseif ($node->uid) {
      $user = user_load($node->uid);
      $node->name = $user->name;
    }
    $node->changed = REQUEST_TIME;

    // Display a preview of the node.
    if (!form_get_errors()) {
      $node->in_preview = TRUE;
      $node_preview = array(
        '#theme' => 'node_preview',
        '#node' => $node,
      );
      $output = drupal_render($node_preview);
      unset($node->in_preview);
    }
    return $output;
  }
}