You are here

public function BlazyVideoFormatter::buildElements in Blazy 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php \Drupal\blazy\Plugin\Field\FieldFormatter\BlazyVideoFormatter::buildElements()

Build the blazy elements.

File

src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php, line 44

Class

BlazyVideoFormatter
Plugin implementation of the 'Blazy Video' to get VEF videos.

Namespace

Drupal\blazy\Plugin\Field\FieldFormatter

Code

public function buildElements(array &$build, $items) {
  $settings = $build['settings'];
  $settings['bundle'] = 'remote_video';
  $settings['media_source'] = 'video_embed_field';
  $vef = $this
    ->vefProviderManager();
  if (!$vef) {
    return;
  }
  foreach ($items as $delta => $item) {
    $settings['input_url'] = strip_tags($item->value);
    $settings['delta'] = $delta;
    if (empty($settings['input_url']) || !($provider = $vef
      ->loadProviderFromInput($settings['input_url']))) {
      continue;
    }

    // Ensures thumbnail is available.
    $provider
      ->downloadThumbnail();
    $settings['uri'] = $provider
      ->getLocalThumbnailUri();
    $this->blazyOembed
      ->build($settings);
    $box = [
      'item' => $item,
      'settings' => $settings,
    ];

    // Image with responsive image, lazyLoad, and lightbox supports.
    $build[$delta] = $this->formatter
      ->getBlazy($box);
    unset($box);
  }
}