function views_plugin_display::export_handler

cis7 views_plugin_display.inc views_plugin_display::export_handler($indent, $prefix, $storage, $option, $definition, $parents)
cle7 views_plugin_display.inc views_plugin_display::export_handler($indent, $prefix, $storage, $option, $definition, $parents)
elmsmedia7 views_plugin_display.inc views_plugin_display::export_handler($indent, $prefix, $storage, $option, $definition, $parents)
icor7 views_plugin_display.inc views_plugin_display::export_handler($indent, $prefix, $storage, $option, $definition, $parents)
meedjum_blog7 views_plugin_display.inc views_plugin_display::export_handler($indent, $prefix, $storage, $option, $definition, $parents)
mooc7 views_plugin_display.inc views_plugin_display::export_handler($indent, $prefix, $storage, $option, $definition, $parents)

Special method to export items that have handlers.

This method was specified in the option_definition() as the method to utilize to export fields, filters, sort criteria, relationships and arguments. This passes the export off to the individual handlers so that they can export themselves properly.

File

sites/all/modules/ulmus/views/plugins/views_plugin_display.inc, line 2849
Contains the base display plugin.

Class

views_plugin_display
The default display plugin handler. Display plugins handle options and basic mechanisms for different output methods.

Code

function export_handler($indent, $prefix, $storage, $option, $definition, $parents) {
  $output = '';

  // cut the 's' off because the data is stored as the plural form but we need
  // the singular form. Who designed that anyway? Oh yeah, I did. :(
  if ($option != 'header' && $option != 'footer' && $option != 'empty') {
    $type = substr($option, 0, -1);
  }
  else {
    $type = $option;
  }
  $types = views_object_types();
  foreach ($storage[$option] as $id => $info) {
    if (!empty($types[$type]['type'])) {
      $handler_type = $types[$type]['type'];
    }
    else {
      $handler_type = $type;
    }
    // If aggregation is on, the group type might override the actual
    // handler that is in use. This piece of code checks that and,
    // if necessary, sets the override handler.
    $override = NULL;
    if ($this->use_group_by() && !empty($info['group_type'])) {
      if (empty($this->view->query)) {
        $this->view->init_query();
      }
      $aggregate = $this->view->query->get_aggregation_info();
      if (!empty($aggregate[$info['group_type']]['handler'][$type])) {
        $override = $aggregate[$info['group_type']]['handler'][$type];
      }
    }
    $handler = views_get_handler($info['table'], $info['field'], $handler_type, $override);
    if ($handler) {
      $handler->init($this->view, $info);
      $output .= $indent . '/* ' . $types[$type]['stitle'] . ': ' . $handler->ui_name() . " */\n";
      $output .= $handler->export_options($indent, $prefix . "['$option']['$id']");
    }

    // Prevent reference problems.
    unset($handler);
  }

  return $output;
}