Yaffs site version 1.1
[yaffs-website] / web / modules / contrib / metatag / metatag_views / src / Form / MetatagViewsAddForm.php
diff --git a/web/modules/contrib/metatag/metatag_views/src/Form/MetatagViewsAddForm.php b/web/modules/contrib/metatag/metatag_views/src/Form/MetatagViewsAddForm.php
new file mode 100644 (file)
index 0000000..7e859aa
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+
+namespace Drupal\metatag_views\Form;
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\metatag_views\Controller\MetatagViewsController;
+use Drupal\views\Views;
+
+/**
+ * Class MetatagViewsAddForm.
+ *
+ * @package Drupal\metatag_views\Form
+ */
+class MetatagViewsAddForm extends MetatagViewsEditForm {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'metatag_views_add_form';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    $form = parent::buildForm($form, $form_state);
+
+    // Add a view select to the edit form.
+    $views = Views::getViewsAsOptions(FALSE, 'enabled', NULL, TRUE, TRUE);
+    // Get only the views that do not have the metatags set yet.
+    $in_use = MetatagViewsController::getTaggedViews();
+    foreach ($in_use as $view_id => $displays) {
+      foreach (array_keys($displays) as $display_id) {
+        unset($views[$view_id][$view_id . ':' . $display_id]);
+      }
+    }
+    $views = array_filter($views);
+
+    // Need to create that AFTER the $form['metatags'] as the whole form
+    // is passed to the $metatagManager->form() which causes duplicated field.
+    $form['view']['#type'] = 'select';
+    $form['view']['#options'] = $views;
+    $form['view']['#empty_option'] = $this->t('- Select a view -');
+
+    return $form;
+  }
+
+}