view core/modules/views/src/Plugin/Derivative/DefaultWizardDeriver.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 129ea1e6d783
line wrap: on
line source
<?php

namespace Drupal\views\Plugin\Derivative;

use Drupal\Component\Plugin\Derivative\DeriverBase;
use Drupal\views\Views;

/**
 * A derivative class which provides automatic wizards for all base tables.
 *
 * The derivatives store all base table plugin information.
 */
class DefaultWizardDeriver extends DeriverBase {
  /**
   * {@inheritdoc}
   */
  public function getDerivativeDefinitions($base_plugin_definition) {
    $views_data = Views::viewsData();
    $base_tables = array_keys($views_data->fetchBaseTables());
    $this->derivatives = [];
    foreach ($base_tables as $table) {
      $views_info = $views_data->get($table);
      if (empty($views_info['table']['wizard_id'])) {
        $this->derivatives[$table] = [
          'id' => 'standard',
          'base_table' => $table,
          'title' => $views_info['table']['base']['title'],
          'class' => 'Drupal\views\Plugin\views\wizard\Standard'
        ];
      }
    }
    return parent::getDerivativeDefinitions($base_plugin_definition);
  }

}