public static function BlazyMedia::mediaItem in Blazy 8.2
2 calls to BlazyMedia::mediaItem()
- BlazyMedia::imageItem in src/
BlazyMedia.php - Extracts image from non-media entities for the main background/ stage.
- BlazyOEmbed::getMediaItem in src/
BlazyOEmbed.php - Gets the Media item thumbnail.
File
- src/
BlazyMedia.php, line 82
Class
- BlazyMedia
- Provides extra utilities to work with core Media.
Namespace
Drupal\blazyCode
public static function mediaItem(array &$data, $media) {
$item = NULL;
$settings =& $data['settings'];
$settings['bundle'] = $media
->bundle();
$settings['source_field'] = $media
->getSource()
->getConfiguration()['source_field'];
$settings['media_url'] = $media
->toUrl()
->toString();
$settings['media_id'] = $media
->id();
$settings['media_source'] = $media
->getSource()
->getPluginId();
$settings['view_mode'] = empty($settings['view_mode']) ? 'default' : $settings['view_mode'];
// Prioritize custom high-res or poster image such as (remote|file) video.
if (!empty($settings['image'])) {
$item = $media
->hasField($settings['image']) ? $media
->get($settings['image'])
->first() : NULL;
$settings['_hires'] = !empty($item);
}
// If Media has a defined thumbnail, add it to data item, not all has this.
if (!$item && $media
->hasField('thumbnail')) {
/** @var Drupal\image\Plugin\Field\FieldType\ImageItem $item */
// Title is NULL from thumbnail, likely core bug, so use source.
$item = $media
->get($settings['media_source'] == 'image' ? $settings['source_field'] : 'thumbnail')
->first();
}
// Checks if Image item is available.
if ($item) {
$settings['file_tags'] = [
'file:' . $item->target_id,
];
$settings['uri'] = Blazy::uri($item);
// Pass through image item including poster image overrides.
$data['item'] = $item;
}
}