public function BlazyVideoFormatter::buildElements in Blazy 8.2
Same name and namespace in other branches
- 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\FieldFormatterCode
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);
}
}