/
ImageEditableNormalizer.php
38 lines (31 loc) · 1.23 KB
/
ImageEditableNormalizer.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
namespace ToolboxBundle\Normalizer;
use Pimcore\Model\Document\Editable;
use ToolboxBundle\Manager\ConfigManagerInterface;
use ToolboxBundle\Service\AssetService;
class ImageEditableNormalizer implements PropertyNormalizerInterface
{
public function __construct(
protected ConfigManagerInterface $configManager,
protected AssetService $assetService
) {
}
public function normalize(mixed $value, ?string $toolboxContextId = null): mixed
{
if (!$value instanceof Editable\Image) {
return $value;
}
$imageLightbox = $this->configManager->getImageThumbnailFromConfig('image_lightbox');
$imageElement = $this->configManager->getImageThumbnailFromConfig('image_element');
if ($value->getThumbnailConfig()) {
$imageElement = $value->getThumbnailConfig();
}
return [
'caption' => $value->getText(),
'hotspots' => $value->getHotspots(),
'marker' => $value->getMarker(),
'lightbox' => $this->assetService->generateImageThumbnailFromEditable($value, $imageLightbox),
'image' => $this->assetService->generateImageThumbnailFromEditable($value, $imageElement),
];
}
}