lory-8.x-1.x-dev/src/Plugin/Field/FieldFormatter/LoryMediaFormatter.php

src/Plugin/Field/FieldFormatter/LoryMediaFormatter.php
<?php

namespace Drupal\lory\Plugin\Field\FieldFormatter;

use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Field\FieldItemListInterface;

/**
 * Plugin implementation of the 'lory media' formatter.
 *
 * @FieldFormatter(
 *   id = "lory_media",
 *   label = @Translation("Lory Media"),
 *   description = @Translation("Display the referenced entities as a Lory carousel."),
 *   field_types = {
 *     "entity_reference",
 *   },
 *   quickedit = {
 *     "editor" = "disabled"
 *   }
 * )
 */
class LoryMediaFormatter extends LoryEntityReferenceFormatterBase {

  /**
   * Returns the blazy manager.
   */
  public function blazyManager() {
    return $this->formatter;
  }

  /**
   * {@inheritdoc}
   */
  public function viewElements(FieldItemListInterface $items, $langcode) {
    $entities = $this->getEntitiesToView($items, $langcode);

    // Early opt-out if the field is empty.
    if (empty($entities)) {
      return [];
    }

    return $this->commonViewElements($items, $langcode, $entities);
  }

  /**
   * {@inheritdoc}
   */
  public static function isApplicable(FieldDefinitionInterface $field_definition) {
    $storage = $field_definition->getFieldStorageDefinition();
    return $storage->isMultiple() && $storage->getSetting('target_type') === 'media';
  }

}

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

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