entity_reference_inline-8.x-1.x-dev/src/Plugin/Field/FieldFormatter/FieldFormatterCommonMethodsTrait.php

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

namespace Drupal\entity_reference_inline\Plugin\Field\FieldFormatter;

use Drupal\Core\Field\FieldItemListInterface;

/**
 * Provides a trait for common methods defined in the field formatter.
 *
 * The methods are provided through a trait in order for them to be reusable.
 */
trait FieldFormatterCommonMethodsTrait {

  /**
   * {@inheritdoc}
   */
  public function viewElements(FieldItemListInterface $items, $langcode) {
    $elements = parent::viewElements($items, $langcode);

    // Allow modules to modify the view build defaults for the inline entities.
    $field_definition_settings = $items->getFieldDefinition()->getSettings();
    $target_entity_type = $field_definition_settings['target_type'];
    $module_handler = \Drupal::moduleHandler();
    foreach ($elements as $delta => &$element) {
      $inline_entity = $element["#{$target_entity_type}"];
      $view_hook = "{$target_entity_type}_inline_view_build_defaults";
      $field_item = $items->get($delta);
      $module_handler->alter([$view_hook, 'entity_inline_view_build_defaults'], $element, $inline_entity, $field_item);
    }

    return $elements;
  }

}

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

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