diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/views/src/Plugin/Derivative/DefaultWizardDeriver.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,35 @@
+<?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);
+  }
+
+}