You are here

abstract class ViewsSlideshowWidgetTypeBase in Views Slideshow 8.4

Base class for a Views slideshow widget type.

Hierarchy

Expanded class hierarchy of ViewsSlideshowWidgetTypeBase

3 files declare their use of ViewsSlideshowWidgetTypeBase
Controls.php in src/Plugin/ViewsSlideshowWidgetType/Controls.php
Counter.php in src/Plugin/ViewsSlideshowWidgetType/Counter.php
Pager.php in src/Plugin/ViewsSlideshowWidgetType/Pager.php

File

src/ViewsSlideshowWidgetTypeBase.php, line 12

Namespace

Drupal\views_slideshow
View source
abstract class ViewsSlideshowWidgetTypeBase extends PluginBase implements ViewsSlideshowWidgetTypeInterface {
  use StringTranslationTrait;

  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this
      ->setConfiguration($configuration);
  }

  /**
   * {@inheritdoc}
   */
  public function getTitle() {
    return $this->pluginDefinition['title'];
  }

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

    // Add field to see if they would like to hide controls if there is only
    // one slide.
    $form['hide_on_single_slide'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Hide controls if there is only one slide'),
      '#default_value' => $this
        ->getConfiguration()['hide_on_single_slide'],
      '#description' => $this
        ->t('Should the controls be hidden if there is only one slide.'),
      '#states' => [
        'visible' => [
          ':input[name="' . $this
            ->getConfiguration()['dependency'] . '[enable]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ];
    return $form;
  }

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

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return [
      'enable' => [
        'default' => 0,
      ],
      'weight' => [
        'default' => 1,
      ],
      'hide_on_single_slide' => [
        'default' => 0,
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getConfiguration() {
    return [
      'id' => $this
        ->getPluginId(),
    ] + $this->configuration;
  }

  /**
   * {@inheritdoc}
   */
  public function setConfiguration(array $configuration) {
    $this->configuration = $configuration + $this
      ->defaultConfiguration();
    return $this;
  }

  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    return [];
  }

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

  /**
   * {@inheritdoc}
   */
  public function checkCompatiblity($slideshow) {
    $is_compatible = 1;

    // Check if every required accept value in the widget has a
    // corresponding calls value in the slideshow.
    foreach ($this->pluginDefinition['accepts'] as $accept_key => $accept_value) {
      if (is_array($accept_value) && !empty($accept_value['required']) && !in_array($accept_key, $slideshow['calls'])) {
        $is_compatible = 0;
        break;
      }
    }

    // No need to go through this if it's not compatible.
    if ($is_compatible) {

      // Check if every required calls value in the widget has a
      // corresponding accepts call.
      foreach ($this->pluginDefinition['calls'] as $calls_key => $calls_value) {
        if (is_array($calls_value) && !empty($calls_value['required']) && !in_array($calls_key, $slideshow['accepts'])) {
          $is_compatible = 0;
          break;
        }
      }
    }
    return $is_compatible;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
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.
ViewsSlideshowWidgetTypeBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 2
ViewsSlideshowWidgetTypeBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides DependentPluginInterface::calculateDependencies
ViewsSlideshowWidgetTypeBase::checkCompatiblity public function Check if the widget type is compatible with the selected slideshow. Overrides ViewsSlideshowWidgetTypeInterface::checkCompatiblity
ViewsSlideshowWidgetTypeBase::defaultConfiguration public function Gets default configuration for this plugin. Overrides ConfigurableInterface::defaultConfiguration 2
ViewsSlideshowWidgetTypeBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
ViewsSlideshowWidgetTypeBase::getTitle public function
ViewsSlideshowWidgetTypeBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
ViewsSlideshowWidgetTypeBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
ViewsSlideshowWidgetTypeBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
ViewsSlideshowWidgetTypeBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct