protected function ImageEntityNormalizer::buildVariantValues in Consumer Image Styles 8.2
Same name and namespace in other branches
- 8 src/Normalizer/ImageEntityNormalizer.php \Drupal\consumer_image_styles\Normalizer\ImageEntityNormalizer::buildVariantValues()
Parameters
\Drupal\Core\Entity\EntityInterface $entity:
array $context:
Return value
\Drupal\jsonapi\Normalizer\Value\ValueExtractorInterface
1 call to ImageEntityNormalizer::buildVariantValues()
- ImageEntityNormalizer::normalize in src/
Normalizer/ ImageEntityNormalizer.php - Normalizes an object into a set of arrays/scalars.
File
- src/
Normalizer/ ImageEntityNormalizer.php, line 131
Class
Namespace
Drupal\consumer_image_styles\NormalizerCode
protected function buildVariantValues(EntityInterface $entity, array $context = []) {
$request = empty($context['request']) ? NULL : $context['request'];
$consumer = $this->consumerNegotiator
->negotiateFromRequest($request);
// Bail-out if no consumer is found.
if (!$consumer) {
$access = $entity
->access('view', $context['account'], TRUE);
return new NullFieldNormalizerValue($access, 'attributes');
}
// Prepare some utils.
$uri = $entity
->get('uri')->value;
$get_image_url = function ($image_style) use ($uri) {
return file_create_url($image_style
->buildUrl($uri));
};
// Generate derivatives only for the found ones.
$image_styles = $this->imageStylesProvider
->loadStyles($consumer);
$keys = array_keys($image_styles);
$values = array_map($get_image_url, array_values($image_styles));
$value = array_combine($keys, $values);
return new ImageVariantItemNormalizerValue($value, new CacheableMetadata());
}