You are here

function views_view_field_handler_include_view::render in Views PDF 7.3

Same name and namespace in other branches
  1. 8 modules/views_view_field/views_view_field_handler_include_view.inc \views_view_field_handler_include_view::render()
  2. 6 modules/views_view_field/views_view_field_handler_include_view.inc \views_view_field_handler_include_view::render()
  3. 7 modules/views_view_field/views_view_field_handler_include_view.inc \views_view_field_handler_include_view::render()
  4. 7.2 modules/views_view_field/views_view_field_handler_include_view.inc \views_view_field_handler_include_view::render()

Renders the field. For rendering the new views is created an added. For PDF displays the two PDF classes where merged.

Overrides views_handler_field::render

File

modules/views_view_field/views_view_field_handler_include_view.inc, line 128
Plugin for the views include field

Class

views_view_field_handler_include_view
This class contains the functionality to add a view as a new field in another view.

Code

function render($values) {
  if (!empty($this->options['exclude'])) {
    return '';
  }
  $displayType = $this->view->display_handler
    ->get_style_type();
  $currentDisplay = $this->view->current_display;
  $tokens = $this
    ->get_render_tokens('');
  $args = array();
  foreach ($this->options['args'] as $arg) {
    $args[] = str_replace(array_keys($tokens), $tokens, $arg);
  }
  $view_name = $this->options['view'];
  $view = views_get_view($view_name);

  // look for a display named pdf_X.
  $pdf_display = NULL;
  foreach ($view->display as $display) {
    if (preg_match('/^pdf_/', $display->id)) {

      // found a PDF display so break out of loop.
      $pdf_display = $display->id;
      break;
    }
  }

  // Set the found PDF display or automatically revert to default if it's
  // not found.
  $view
    ->set_display($pdf_display);
  $view
    ->pre_execute($args);
  $view
    ->init_style();

  // Important only for pdf views. With this action we assign the
  // PDF document to the new view
  if (isset($this->view->pdf) && is_object($this->view->pdf)) {
    $view->pdf =& $this->view->pdf;
    $output = $view
      ->render($view->display_handler->display->id);
  }
  else {
    $output = $view->display_handler
      ->execute();
  }
  return $output;
}