$view_mode = NULL;
if ($view_mode_id !== EntityDisplayRepositoryInterface::DEFAULT_DISPLAY_MODE
) { $view_mode =
$this->entityRepository->
loadEntityByConfigTarget('entity_view_mode', "media.
$view_mode_id"
);
if (!
$view_mode) { $this->loggerFactory->
get('media'
)->
error('During rendering of embedded media: the view mode "@view-mode-id" does not exist.',
['@view-mode-id' =>
$view_mode_id]);
} } $build =
$media && ($view_mode ||
$view_mode_id === EntityDisplayRepositoryInterface::DEFAULT_DISPLAY_MODE
) ?
$this->
renderMedia($media,
$view_mode_id,
$langcode) :
$this->
renderMissingMediaIndicator();
if (empty($build['#attributes'
]['class'
])) { $build['#attributes'
]['class'
] =
[];
} // Any attributes not consumed by the filter should be carried over to the
// rendered embedded entity. For example, `data-align` and `data-caption`
// should be carried over, so that even when embedded media goes missing,
// at least the caption and visual structure won't get lost.
foreach ($node->attributes
as $attribute) { if ($attribute->nodeName == 'class'
) { // We don't want to overwrite the existing CSS class of the embedded