You are here

protected function views_data_export_plugin_display_export::initialize_index in Views data export 7.3

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.4 plugins/views_data_export_plugin_display_export.inc \views_data_export_plugin_display_export::initialize_index()
  5. 7 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 631
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();
  $query_plugin = get_class($view->query);
  if ($query_plugin == 'views_plugin_query_default') {

    // 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();
  }
  elseif ($query_plugin == 'SearchApiViewsQuery') {
    $this
      ->store_search_api_result(clone $view);
  }
}