function views_plugin_display::export_handler
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
-
plugins/
views_plugin_display.inc, line 3065
Class
- views_plugin_display
- The default display plugin handler. Display plugins handle options and basic mechanisms for different output methods.
Code
public 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.
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;
}