You are here

class EmbedViews in Views entity embed 8

Same name and namespace in other branches
  1. 2.0.x src/Plugin/EmbedType/EmbedViews.php \Drupal\views_entity_embed\Plugin\EmbedType\EmbedViews

Viws embed type.

Plugin annotation


@EmbedType(
  id = "embed_views",
  label = @Translation("Views")
)

Hierarchy

Expanded class hierarchy of EmbedViews

File

src/Plugin/EmbedType/EmbedViews.php, line 20

Namespace

Drupal\views_entity_embed\Plugin\EmbedType
View source
class EmbedViews extends EmbedTypeBase implements ContainerFactoryPluginInterface {

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition);
  }

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return [
      'filter_views' => FALSE,
      'views_options' => [],
      'filter_displays' => FALSE,
      'dipslays_options' => [],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getDefaultIconUrl() {
    return file_create_url(drupal_get_path('module', 'views_entity_embed') . '/js/plugins/drupalviews/views_entity_embed.png');
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form['filter_views'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Filter which Views to be allowed as options:'),
      '#default_value' => $this
        ->getConfigurationValue('filter_views'),
    ];
    $form['views_options'] = [
      '#type' => 'checkboxes',
      '#title' => $this
        ->t('Allowed Views'),
      '#default_value' => $this
        ->getConfigurationValue('views_options'),
      '#options' => $this
        ->getAllViews(),
      '#states' => [
        'visible' => [
          ':input[name="type_settings[filter_views]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ];
    $form['filter_displays'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Filter which Display to be allowed as options:'),
      '#default_value' => $this
        ->getConfigurationValue('filter_displays'),
    ];
    $form['display_options'] = [
      '#type' => 'checkboxes',
      '#title' => $this
        ->t('Allowed displays'),
      '#default_value' => $this
        ->getConfigurationValue('display_options'),
      '#options' => $this
        ->getAllDisplays(),
      '#states' => [
        'visible' => [
          ':input[name="type_settings[filter_displays]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
    $values = $form_state
      ->getValues();
    if (!$form_state
      ->hasAnyErrors()) {
      $this
        ->setConfigurationValue('filter_views', $form_state
        ->getValue('filter_views'));
      $this
        ->setConfigurationValue('filter_displays', $form_state
        ->getValue('filter_displays'));

      // Set views options.
      $views_options = $form_state
        ->getValue('filter_views') ? array_filter($form_state
        ->getValue('views_options')) : [];
      $this
        ->setConfigurationValue('views_options', $views_options);

      // Display options.
      $displays_options = $form_state
        ->getValue('filter_displays') ? array_filter($form_state
        ->getValue('display_options')) : [];
      $this
        ->setConfigurationValue('display_options', $displays_options);
    }
  }

  /**
   * Methods get all views as options list.
   */
  protected function getAllViews() {
    $views = [];
    foreach (Views::getAllViews() as $view) {
      if ($view
        ->enable()) {
        $views[$view
          ->id()] = $view
          ->label();
      }
    }
    return $views;
  }

  /**
   * Method gets all displays as options list.
   */
  protected function getAllDisplays() {
    $displays = [];

    // Get all display plugins which provides the type.
    $display_plugins = Views::pluginManager('display')
      ->getDefinitions();
    $plugin_ids = [];
    foreach ($display_plugins as $id => $definition) {
      $displays[$definition['class']] = $definition['title'];
    }
    return $displays;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
EmbedTypeBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides DependentPluginInterface::calculateDependencies
EmbedTypeBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
EmbedTypeBase::getConfigurationValue public function Gets a configuration value. Overrides EmbedTypeInterface::getConfigurationValue
EmbedTypeBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
EmbedTypeBase::setConfigurationValue public function Sets a configuration value. Overrides EmbedTypeInterface::setConfigurationValue
EmbedTypeBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm 1
EmbedTypeBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
EmbedViews::buildConfigurationForm public function Form constructor. Overrides EmbedTypeBase::buildConfigurationForm
EmbedViews::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
EmbedViews::defaultConfiguration public function Gets default configuration for this plugin. Overrides EmbedTypeBase::defaultConfiguration
EmbedViews::getAllDisplays protected function Method gets all displays as options list.
EmbedViews::getAllViews protected function Methods get all views as options list.
EmbedViews::getDefaultIconUrl public function Gets the default icon URL for the embed type. Overrides EmbedTypeInterface::getDefaultIconUrl
EmbedViews::submitConfigurationForm public function Form submission handler. Overrides EmbedTypeBase::submitConfigurationForm
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.