evergreen-8.x-1.x-dev/src/Form/ContentViewForm.php

src/Form/ContentViewForm.php
<?php

namespace Drupal\evergreen\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Component\Utility\UrlHelper;

/**
 * Content view form.
 */
class ContentViewForm extends FormBase {
  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'evergreen_content_view';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $info = $form_state->getBuildInfo();
    $content_view_options = $info['args'][0];
    $evergreen_plugin_manager = $info['args'][1];

    $plugin = array_keys($content_view_options)[0];
    if ($form_state->getValue('select_view')) {
      $plugin = $form_state->getValue('select_view');
    }

    $form['select_view'] = [
      '#type' => 'select',
      '#title' => 'Select view',
      '#options' => $content_view_options,
      '#default_value' => $plugin,
    ];

    $form['view'] = [
      '#type' => 'container',
      '#prefix' => '<div id="evergreen-content-view-container">',
      '#suffix' => '</div>',
    ];

    $plugin = $evergreen_plugin_manager->createInstance($plugin);
    $view = $plugin->getContentView();

    switch ($view['type']) {
      case 'view':
        $form['view']['view'] = view_embed_view($view['name'], isset($view['display_id']) ? $view['display_id'] : '');
        break;

    }

    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function validateForm(array &$form, FormStateInterface $form_state) {
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc