public function SlickMediaFormatter::viewElements in Slick Media 8
Same name and namespace in other branches
- 8.2 src/Plugin/Field/FieldFormatter/SlickMediaFormatter.php \Drupal\slick_media\Plugin\Field\FieldFormatter\SlickMediaFormatter::viewElements()
File
- src/Plugin/Field/FieldFormatter/SlickMediaFormatter.php, line 47
Class
- SlickMediaFormatter
- Plugin implementation of the 'slick media entity' formatter.
Namespace
Drupal\slick_media\Plugin\Field\FieldFormatter
Code
public function viewElements(FieldItemListInterface $items, $langcode) {
$entities = $this
->getEntitiesToView($items, $langcode);
if (empty($entities)) {
return [];
}
$settings = $this
->getSettings();
$settings['blazy'] = TRUE;
$settings['plugin_id'] = $this
->getPluginId();
$entities = array_values($entities);
if (!empty($settings['image_style']) && $entities[0]
->getEntityTypeId() == 'media') {
$fields = $entities[0]
->getFields();
if (isset($fields['thumbnail'])) {
$item = $fields['thumbnail']
->get(0);
$settings['item'] = $item;
$settings['uri'] = $item->entity
->getFileUri();
}
}
$build = [
'settings' => $settings,
];
$this->formatter
->buildSettings($build, $items);
$this
->buildElements($build, $entities, $langcode);
return $this
->manager()
->build($build);
}