You are here

function _drush_views_data_export_clone_display in Views data export 7.4

Same name and namespace in other branches
  1. 6.3 views_data_export.drush.inc \_drush_views_data_export_clone_display()
  2. 6 views_data_export.drush.inc \_drush_views_data_export_clone_display()
  3. 6.2 views_data_export.drush.inc \_drush_views_data_export_clone_display()
  4. 7 views_data_export.drush.inc \_drush_views_data_export_clone_display()
  5. 7.3 views_data_export.drush.inc \_drush_views_data_export_clone_display()

Helper function that takes a view and returns a clone of it that has cloned a given display to one of type views_data_export

Parameters

&$view: Modified to contain the new display

Return value

The new display_id

1 call to _drush_views_data_export_clone_display()
drush_views_data_export in ./views_data_export.drush.inc
Drush command callback to export a views data to a file.

File

./views_data_export.drush.inc, line 296

Code

function _drush_views_data_export_clone_display(&$view, $display_id, $settings = array()) {

  // Create the new display
  $new_display_id = _drush_views_data_export_generate_display_id($view, 'views_data_export');
  $view->display[$new_display_id] = clone $view->display[$display_id];

  // Ensure we have settings we'll need for our display
  $default_settings = array(
    'id' => $new_display_id,
    'display_plugin' => 'views_data_export',
    'position' => 99,
    'display_options' => array(
      'style_plugin' => 'views_data_export_csv',
      'style_options' => array(
        'attach_text' => 'CSV',
        'provide_file' => 1,
        'filename' => 'view-%view.csv',
        'parent_sort' => 1,
        'separator' => ',',
        'quote' => 1,
        'trim' => 1,
        'header' => 1,
      ),
      'use_batch' => 'batch',
      'path' => '',
      'displays' => array(
        'default' => 'default',
      ),
    ),
  );
  $settings = array_replace_recursive($default_settings, $settings);
  $view->display[$new_display_id] = (object) array_replace_recursive((array) $view->display[$new_display_id], $settings);
  return $new_display_id;
}