You are here

class Jssor in Jssor Slider 8

Same name in this branch
  1. 8 src/Plugin/views/style/Jssor.php \Drupal\jssor\Plugin\views\style\Jssor
  2. 8 src/Plugin/views/row/Jssor.php \Drupal\jssor\Plugin\views\row\Jssor

Row handler plugin for displaying search results.

Plugin annotation


@ViewsRow(
  id = "jssor_row",
  theme = "views_view_jssor_row",
  title = @Translation("Jssor"),
  help = @Translation("Provides a row plugin to display image slider with caption."),
  display_types = {"normal"}
)

Hierarchy

Expanded class hierarchy of Jssor

File

src/Plugin/views/row/Jssor.php, line 25
Definition of Drupal\jssor\Plugin\views\row\Jssor.

Namespace

Drupal\jssor\Plugin\views\row
View source
class Jssor extends RowPluginBase {

  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['image_options'] = array(
      'default' => array(),
    );
    $options['caption_options'] = array(
      'default' => array(),
    );
    $options['play_in_transition'] = array(
      'default' => '',
    );
    $options['play_in_mode'] = array(
      'default' => 1,
    );
    $options['play_out_transition'] = array(
      'default' => '',
    );
    $options['play_out_mode'] = array(
      'default' => 1,
    );
    return $options;
  }

  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);

    // Get all image and text fields.
    $image_options = [];
    $caption_options = [];
    $transitions_options = [
      'Move' => [
        'L' => 'L',
        'R' => 'R',
        'T' => 'T',
        'B' => 'B',
        'TL' => 'TL',
        'TR' => 'TR',
        'BL' => 'BL',
        'BR' => 'BR',
      ],
      'Move|IB' => [
        'L|IB' => 'L|IB',
        'R|IB' => 'R|IB',
        'T|IB' => 'T|IB',
        'B|IB' => 'B|IB',
        'TL|IB' => 'TL|IB',
        'TR|IB' => 'TR|IB',
        'BL|IB' => 'BL|IB',
        'BR|IB' => 'BR|IB',
      ],
      'Move|IE' => [
        'L|IE' => 'L|IE',
        'R|IE' => 'R|IE',
        'T|IE' => 'T|IE',
        'B|IE' => 'B|IE',
        'TL|IE' => 'TL|IE',
        'TR|IE' => 'TR|IE',
        'BL|IE' => 'BL|IE',
        'BR|IE' => 'BR|IE',
      ],
      'Move|EP' => [
        'L|EP' => 'L|EP',
        'R|EP' => 'R|EP',
        'T|EP' => 'T|EP',
        'B|EP' => 'B|EP',
        'TL|EP' => 'TL|EP',
        'TR|EP' => 'TR|EP',
        'BL|EP' => 'BL|EP',
        'BR|EP' => 'BR|EP',
      ],
      'Move with Rotate' => [
        'L*' => 'L*',
        'R*' => 'R*',
        'T*' => 'T*',
        'B*' => 'B*',
        'TL*' => 'TL*',
        'TR*' => 'TR*',
        'BL*' => 'BL*',
        'BR*' => 'BR*',
      ],
      'Move with Rotate IE' => [
        'L*IE' => 'L*IE',
        'R*IE' => 'R*IE',
        'T*IE' => 'T*IE',
        'B*IE' => 'B*IE',
        'TL*IE' => 'TL*IE',
        'TR*IE' => 'TR*IE',
        'BL*IE' => 'BL*IE',
        'BR*IE' => 'BR*IE',
      ],
      'Move with Rotate IB' => [
        'L*IB' => 'L*IB',
        'R*IB' => 'R*IB',
        'T*IB' => 'T*IB',
        'B*IB' => 'B*IB',
        'TL*IB' => 'TL*IB',
        'TR*IB' => 'TR*IB',
        'BL*IB' => 'BL*IB',
        'BR*IB' => 'BR*IB',
      ],
      'Move with Rotate IW' => [
        'L*IW' => 'L*IW',
        'R*IW' => 'R*IW',
        'T*IW' => 'T*IW',
        'B*IW' => 'B*IW',
        'TL*IW' => 'TL*IW',
        'TR*IW' => 'TR*IW',
        'BL*IW' => 'BL*IW',
        'BR*IW' => 'BR*IW',
      ],
      'Move IE with Rotate IE' => [
        'L*IE*IE' => 'L*IE*IE',
        'R*IE*IE' => 'R*IE*IE',
        'T*IE*IE' => 'T*IE*IE',
        'B*IE*IE' => 'B*IE*IE',
        'TL*IE*IE' => 'TL*IE*IE',
        'TR*IE*IE' => 'TR*IE*IE',
        'BL*IE*IE' => 'BL*IE*IE',
        'BR*IE*IE' => 'BR*IE*IE',
      ],
      'Clip' => [
        'CLIP' => 'CLIP',
        'CLIP|LR' => 'CLIP|LR',
        'CLIP|TB' => 'CLIP|TB',
        'CLIP|L' => 'CLIP|L',
        'CLIP|R' => 'CLIP|R',
        'CLIP|T' => 'CLIP|T',
        'CLIP|B' => 'CLIP|B',
      ],
      'MClip' => [
        'MCLIP|L' => 'MCLIP|L',
        'MCLIP|R' => 'MCLIP|R',
        'MCLIP|T' => 'MCLIP|T',
        'MCLIP|B' => 'MCLIP|B',
      ],
      'Zoom' => [
        'ZM' => 'ZM',
        'ZM|P30' => 'ZM|P30',
        'ZM|P50' => 'ZM|P50',
        'ZM|P70' => 'ZM|P70',
        'ZM|P80' => 'ZM|P80',
        'ZMF|2' => 'ZMF|2',
        'ZMF|3' => 'ZMF|3',
        'ZMF|4' => 'ZMF|4',
        'ZMF|5' => 'ZMF|5',
        'ZMF|10' => 'ZMF|10',
        'ZML|L' => 'ZML|L',
        'ZML|R' => 'ZML|R',
        'ZML|T' => 'ZML|T',
        'ZML|B' => 'ZML|B',
        'ZML|TL' => 'ZML|TL',
        'ZML|TR' => 'ZML|TR',
        'ZML|BL' => 'ZML|BL',
        'ZML|BR' => 'ZML|BR',
        'ZML|IE|L' => 'ZML|IE|L',
        'ZML|IE|R' => 'ZML|IE|R',
        'ZML|IE|T' => 'ZML|IE|T',
        'ZML|IE|B' => 'ZML|IE|B',
        'ZML|IE|TL' => 'ZML|IE|TL',
        'ZML|IE|TR' => 'ZML|IE|TR',
        'ZML|IE|BL' => 'ZML|IE|BL',
        'ZML|IE|BR' => 'ZML|IE|BR',
        'ZMS|L' => 'ZMS|L',
        'ZMS|R' => 'ZMS|R',
        'ZMS|T' => 'ZMS|T',
        'ZMS|B' => 'ZMS|B',
        'ZMS|TL' => 'ZMS|TL',
        'ZMS|TR' => 'ZMS|TR',
        'ZMS|BL' => 'ZMS|BL',
        'ZMS|BR' => 'ZMS|BR',
      ],
    ];
    if ($fields = $this->view->display_handler
      ->getOption('fields')) {
      foreach ($fields as $id => $field) {
        switch ($field['type']) {
          case 'image':
            $image_options[$id] = $field['id'];
            break;
          case 'string':
            $caption_options[$id] = $field['id'];
            break;
        }
      }
    }
    $form['image_options'] = array(
      '#type' => 'select',
      '#title' => $this
        ->t('Image field'),
      '#description' => $this
        ->t('Select image field.'),
      '#options' => $image_options,
      '#default_value' => $this->options['image_options'],
    );
    $form['caption_options'] = array(
      '#type' => 'select',
      '#title' => $this
        ->t('Caption field'),
      '#description' => $this
        ->t('Select caption field.'),
      '#options' => $caption_options,
      '#default_value' => $this->options['caption_options'],
    );
    $form['play_in_mode'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Play in mode'),
      '#description' => $this
        ->t('Specifies how captions will play in.'),
      '#options' => [
        0 => $this
          ->t('No play'),
        1 => $this
          ->t('Goes after main slide played in, play captions in one by one'),
        3 => $this
          ->t('Goes after main slide played in, play all captions in parallelly'),
      ],
      '#default_value' => $this->options['play_in_mode'],
    ];
    $form['play_in_transition'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Transition'),
      '#description' => $this
        ->t('Transition.'),
      '#options' => $transitions_options,
      '#default_value' => $this->options['play_in_transition'],
    ];
    $form['play_out_mode'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Play in mode'),
      '#description' => $this
        ->t('Specifies how captions will play in.'),
      '#options' => [
        0 => $this
          ->t('No play'),
        1 => $this
          ->t('Goes after main slide played in, play captions in one by one'),
        3 => $this
          ->t('Goes after main slide played in, play all captions in parallelly'),
      ],
      '#default_value' => $this->options['play_out_mode'],
    ];
    $form['play_out_transition'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Transition'),
      '#description' => $this
        ->t('Transition.'),
      '#options' => $transitions_options,
      '#default_value' => $this->options['play_out_transition'],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function render($row) {
    static $row_index;
    if (!isset($row_index)) {
      $row_index = 0;
    }
    else {
      $row_index++;
    }

    // Create the RSS item object.
    $item = new \stdClass();
    $item->image = $this
      ->getField($row_index, $this->options['image_options']);
    $item->caption = $this
      ->getField($row_index, $this->options['caption_options']);
    $build = array(
      '#theme' => $this
        ->themeFunctions(),
      '#view' => $this->view,
      '#options' => $this->options,
      '#row' => $item,
    );
    return $build;
  }

  /**
   * Retrieves a views field value from the style plugin.
   *
   * @param $index
   *   The index count of the row as expected by views_plugin_style::getField().
   * @param $field_id
   *   The ID assigned to the required field in the display.
   *
   * @return string|null|\Drupal\Component\Render\MarkupInterface
   *   An empty string if there is no style plugin, or the field ID is empty.
   *   NULL if the field value is empty. If neither of these conditions apply,
   *   a MarkupInterface object containing the rendered field value.
   */
  public function getField($index, $field_id) {
    if (empty($this->view->style_plugin) || !is_object($this->view->style_plugin) || empty($field_id)) {
      return '';
    }
    return $this->view->style_plugin
      ->getField($index, $field_id);
  }

}

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
Jssor::buildOptionsForm public function Provide a form for setting options. Overrides RowPluginBase::buildOptionsForm
Jssor::defineOptions protected function Information about options for all kinds of purposes will be held here. Overrides RowPluginBase::defineOptions
Jssor::getField public function Retrieves a views field value from the style plugin.
Jssor::render public function Render a row object. This usually passes through to a theme template of some form, but not always. Overrides RowPluginBase::render
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::$definition public property Plugins's definition
PluginBase::$displayHandler public property The display object this plugin is for.
PluginBase::$options public property Options for this plugin will be held here.
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::$renderer protected property Stores the render API renderer. 3
PluginBase::$view public property The top object of a view. 1
PluginBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides DependentPluginInterface::calculateDependencies 14
PluginBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 62
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::destroy public function Clears a plugin. Overrides ViewsPluginInterface::destroy 2
PluginBase::doFilterByDefinedOptions protected function Do the work to filter out stored options depending on the defined options.
PluginBase::filterByDefinedOptions public function Filter out stored options depending on the defined options. Overrides ViewsPluginInterface::filterByDefinedOptions
PluginBase::getAvailableGlobalTokens public function Returns an array of available token replacements. Overrides ViewsPluginInterface::getAvailableGlobalTokens
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::getProvider public function Returns the plugin provider. Overrides ViewsPluginInterface::getProvider
PluginBase::getRenderer protected function Returns the render API renderer. 1
PluginBase::globalTokenForm public function Adds elements for available core tokens to a form. Overrides ViewsPluginInterface::globalTokenForm
PluginBase::globalTokenReplace public function Returns a string with any core tokens replaced. Overrides ViewsPluginInterface::globalTokenReplace
PluginBase::INCLUDE_ENTITY constant Include entity row languages when listing languages.
PluginBase::INCLUDE_NEGOTIATED constant Include negotiated languages when listing languages.
PluginBase::init public function Initialize the plugin. Overrides ViewsPluginInterface::init 8
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::listLanguages protected function Makes an array of languages, optionally including special languages.
PluginBase::pluginTitle public function Return the human readable name of the display. Overrides ViewsPluginInterface::pluginTitle
PluginBase::preRenderAddFieldsetMarkup public static function Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup
PluginBase::preRenderFlattenData public static function Flattens the structure of form elements. Overrides ViewsPluginInterface::preRenderFlattenData
PluginBase::queryLanguageSubstitutions public static function Returns substitutions for Views queries for languages.
PluginBase::setOptionDefaults protected function Fills up the options of the plugin with defaults.
PluginBase::summaryTitle public function Returns the summary of the settings in the display. Overrides ViewsPluginInterface::summaryTitle 6
PluginBase::themeFunctions public function Provide a full list of possible theme templates used by this style. Overrides ViewsPluginInterface::themeFunctions 1
PluginBase::trustedCallbacks public static function Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface::trustedCallbacks 6
PluginBase::unpackOptions public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. Overrides ViewsPluginInterface::unpackOptions
PluginBase::usesOptions public function Returns the usesOptions property. Overrides ViewsPluginInterface::usesOptions 8
PluginBase::validate public function Validate that the plugin is correct and can be saved. Overrides ViewsPluginInterface::validate 6
PluginBase::viewsTokenReplace protected function Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. 1
PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT constant Query string to indicate the site default language.
PluginBase::__construct public function Constructs a PluginBase object. Overrides PluginBase::__construct
RowPluginBase::$usesFields protected property Does the row plugin support to add fields to its output. 4
RowPluginBase::$usesOptions protected property Denotes whether the plugin has an additional options form. Overrides PluginBase::$usesOptions 1
RowPluginBase::preRender public function Allow the style to do stuff before each row is rendered. 4
RowPluginBase::query public function Add anything to the query that we might need to. Overrides PluginBase::query 2
RowPluginBase::submitOptionsForm public function Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. Overrides PluginBase::submitOptionsForm 1
RowPluginBase::usesFields public function Returns the usesFields property. 4
RowPluginBase::validateOptionsForm public function Validate the options form. Overrides PluginBase::validateOptionsForm 1
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.
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
TrustedCallbackInterface::TRIGGER_WARNING constant Untrusted callbacks trigger E_USER_WARNING errors.