You are here

public function SlickFormatterViewTrait::commonViewElements in Slick Carousel 8.2

Returns similar view elements.

4 calls to SlickFormatterViewTrait::commonViewElements()
SlickEntityFormatterBase::viewElements in src/Plugin/Field/FieldFormatter/SlickEntityFormatterBase.php
SlickFileFormatterBase::viewElements in src/Plugin/Field/FieldFormatter/SlickFileFormatterBase.php
SlickMediaFormatter::viewElements in src/Plugin/Field/FieldFormatter/SlickMediaFormatter.php
SlickTextFormatter::viewElements in src/Plugin/Field/FieldFormatter/SlickTextFormatter.php
Builds a renderable array for a field value.

File

src/Plugin/Field/FieldFormatter/SlickFormatterViewTrait.php, line 15

Class

SlickFormatterViewTrait
A Trait common for all blazy formatters.

Namespace

Drupal\slick\Plugin\Field\FieldFormatter

Code

public function commonViewElements(FieldItemListInterface $items, $langcode, array $entities = [], array $settings = []) {

  // Collects specific settings to this formatter.
  $settings = array_merge($this
    ->buildSettings(), $settings);
  $settings['langcode'] = $langcode;

  // Build the settings.
  $build = [
    'settings' => $settings,
  ];

  // Modifies settings before building elements.
  $entities = empty($entities) ? [] : array_values($entities);
  $this->formatter
    ->preBuildElements($build, $items, $entities);

  // Build the elements.
  $elements = $entities ?: $items;
  $this
    ->buildElements($build, $elements, $langcode);

  // Modifies settings post building elements.
  $this->formatter
    ->postBuildElements($build, $items, $entities);

  // Pass to manager for easy updates to all Blazy formatters.
  if (empty($settings['use_theme_field'])) {

    // Return field-vanilla without field markup.
    return $this->manager
      ->build($build);
  }
  else {

    // Return as array to render in regular field.html.twig:
    return [
      $this->manager
        ->build($build),
    ];
  }
}