protected function ImageStyles::doUndoTransform in Consumer Image Styles 8.3
Same name and namespace in other branches
- 4.x src/Plugin/jsonapi/FieldEnhancer/ImageStyles.php \Drupal\consumer_image_styles\Plugin\jsonapi\FieldEnhancer\ImageStyles::doUndoTransform()
File
- src/Plugin/jsonapi/FieldEnhancer/ImageStyles.php, line 79
Class
- ImageStyles
- Perform additional manipulations to timestamp fields.
Namespace
Drupal\consumer_image_styles\Plugin\jsonapi\FieldEnhancer
Code
protected function doUndoTransform($data, Context $context) {
$image_style_ids = $this
->imageStylesForField();
if (empty($image_style_ids)) {
return $data;
}
try {
$image_styles = $this->entityTypeManager
->getStorage('image_style')
->loadMultiple($image_style_ids);
} catch (InvalidPluginDefinitionException $e) {
$image_styles = [];
}
$uuid_key = $this->entityTypeManager
->getDefinition('file')
->getKey('uuid');
$entities = $this->entityTypeManager
->getStorage('file')
->loadByProperties([
$uuid_key => $data['id'],
]);
$entity = reset($entities);
if (!$entity || !$this->imageStylesProvider
->entityIsImage($entity)) {
return $data;
}
$access = $entity
->access('view', NULL, TRUE);
if (!$access
->isAllowed()) {
return $data;
}
$uri = $entity
->getFileUri();
$links = array_map(function (ImageStyleInterface $image_style) use ($uri) {
return $this->imageStylesProvider
->buildDerivativeLink($uri, $image_style);
}, $image_styles);
$meta = [
'imageDerivatives' => [
'links' => $links,
],
];
return array_merge_recursive($data, [
'meta' => $meta,
]);
}