You are here

protected function views_data_export_plugin_display_export::initialize_index in Views data export 7.4

Same name and namespace in other branches
  1. 6.3 plugins/views_data_export_plugin_display_export.inc \views_data_export_plugin_display_export::initialize_index()
  2. 6 plugins/views_data_export_plugin_display_export.inc \views_data_export_plugin_display_export::initialize_index()
  3. 6.2 plugins/views_data_export_plugin_display_export.inc \views_data_export_plugin_display_export::initialize_index()
  4. 7 plugins/views_data_export_plugin_display_export.inc \views_data_export_plugin_display_export::initialize_index()
  5. 7.3 plugins/views_data_export_plugin_display_export.inc \views_data_export_plugin_display_export::initialize_index()

Called on export initialization.

Modifies the view query to insert the results into a table, which we call the 'index', this means we essentially have a snapshot of the results, which we can then take time over rendering.

This method is essentially all the best bits of the view::execute() method.

1 call to views_data_export_plugin_display_export::initialize_index()
views_data_export_plugin_display_export::execute_initial in plugins/views_data_export_plugin_display_export.inc
Initializes the whole export process and starts off the batch process.

File

plugins/views_data_export_plugin_display_export.inc, line 601
Contains the bulk export display plugin.

Class

views_data_export_plugin_display_export
The plugin that batches its rendering.

Code

protected function initialize_index() {
  $view =& $this->view;

  // Get views to build the query.
  $view
    ->build();

  // Change the query object to use our custom one.
  switch ($this
    ->_get_database_driver()) {
    case 'pgsql':
      $query_class = 'views_data_export_plugin_query_pgsql_batched';
      break;
    default:
      $query_class = 'views_data_export_plugin_query_default_batched';
      break;
  }
  $query = new $query_class();

  // Copy the query over:
  foreach ($view->query as $property => $value) {
    $query->{$property} = $value;
  }

  // Replace the query object.
  $view->query = $query;
  $view
    ->execute();
}