You are here

public function views_plugin_display::unpack_handler in Views (for Drupal 7) 7.3

Same name and namespace in other branches
  1. 6.3 plugins/views_plugin_display.inc \views_plugin_display::unpack_handler()

Special method to unpack 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 3229
Definition of views_plugin_display.

Class

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

Code

public function unpack_handler(&$translatable, $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;
    }
    $handler = views_get_handler($info['table'], $info['field'], $handler_type);
    if ($handler) {
      $handler
        ->init($this->view, $info);
      $items = array_merge($parents, array(
        $type,
        $info['table'],
        $info['id'],
      ));
      $handler
        ->unpack_translatables($translatable, $items);
    }

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