You are here

function panels_node_view in Panels 6.3

Same name and namespace in other branches
  1. 5.2 panels_node/panels_node.module \panels_node_view()
  2. 6.2 panels_node/panels_node.module \panels_node_view()

Implementation of hook_view().

File

panels_node/panels_node.module, line 292
panels_node.module

Code

function panels_node_view($node, $teaser = FALSE, $page = FALSE) {
  static $rendering = array();

  // Prevent loops if someone foolishly puts the node inside itself:
  if (!empty($rendering[$node->nid])) {
    return $node;
  }
  $rendering[$node->nid] = TRUE;
  ctools_include('plugins', 'panels');
  if ($teaser) {

    // Do the standard view for teaser.
    $node = node_prepare($node, $teaser);

    // Because our teasier is never the same as our content, *always* provide
    // the read more flag.
    $node->readmore = TRUE;
  }
  else {
    if (!empty($node->panels_node['did'])) {
      $display = panels_load_display($node->panels_node['did']);
      $display->css_id = $node->panels_node['css_id'];

      // TODO: Find a way to make sure this can't node_view.
      $display->context = panels_node_get_context($node);
      $renderer = panels_get_renderer($node->panels_node['pipeline'], $display);
      $node->content['body'] = array(
        '#value' => panels_render_display($display, $renderer),
        '#weight' => 0,
      );
    }
  }
  unset($rendering[$node->nid]);
  return $node;
}