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

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

namespace Drupal\lory\Plugin\Field\FieldFormatter;

use Drupal\Core\Field\FieldDefinitionInterface;

/**
 * Plugin implementation of the 'Lory Entity Reference' formatter.
 *
 * @FieldFormatter(
 *   id = "lory_entity",
 *   label = @Translation("Lory Vanilla"),
 *   field_types = {"entity_reference", "entity_reference_revisions"}
 * )
 */
class LoryEntityFormatter extends LoryEntityFormatterBase {

  /**
   * Returns item contents.
   */
  public function buildElement(array &$build, $entity, $langcode) {
    parent::buildElement($build, $entity, $langcode);

    $settings = $build['settings'];
    $item_id  = $settings['item_id'];
    $delta    = $settings['delta'];

    // Build individual lory thumbnail from a dedicated view mode.
    if (!empty($settings['navset']) && !empty($settings['thumbnail'])) {
      $thumb[$item_id] = $this->manager()->getEntityTypeManager()->getViewBuilder($entity->getEntityTypeId())->view($entity, $settings['thumbnail'], $langcode);

      $build['thumb']['items'][$delta] = $thumb;
      unset($thumb);
    }
  }

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

}

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

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