Yaffs site version 1.1
[yaffs-website] / web / modules / contrib / metatag / metatag_views / src / Form / MetatagViewsAddForm.php
1 <?php
2
3 namespace Drupal\metatag_views\Form;
4
5 use Drupal\Core\Form\FormStateInterface;
6 use Drupal\metatag_views\Controller\MetatagViewsController;
7 use Drupal\views\Views;
8
9 /**
10  * Class MetatagViewsAddForm.
11  *
12  * @package Drupal\metatag_views\Form
13  */
14 class MetatagViewsAddForm extends MetatagViewsEditForm {
15
16   /**
17    * {@inheritdoc}
18    */
19   public function getFormId() {
20     return 'metatag_views_add_form';
21   }
22
23   /**
24    * {@inheritdoc}
25    */
26   public function buildForm(array $form, FormStateInterface $form_state) {
27     $form = parent::buildForm($form, $form_state);
28
29     // Add a view select to the edit form.
30     $views = Views::getViewsAsOptions(FALSE, 'enabled', NULL, TRUE, TRUE);
31     // Get only the views that do not have the metatags set yet.
32     $in_use = MetatagViewsController::getTaggedViews();
33     foreach ($in_use as $view_id => $displays) {
34       foreach (array_keys($displays) as $display_id) {
35         unset($views[$view_id][$view_id . ':' . $display_id]);
36       }
37     }
38     $views = array_filter($views);
39
40     // Need to create that AFTER the $form['metatags'] as the whole form
41     // is passed to the $metatagManager->form() which causes duplicated field.
42     $form['view']['#type'] = 'select';
43     $form['view']['#options'] = $views;
44     $form['view']['#empty_option'] = $this->t('- Select a view -');
45
46     return $form;
47   }
48
49 }