Skip to content

Commit

Permalink
add link list normalizer (#202)
Browse files Browse the repository at this point in the history
  • Loading branch information
solverat committed Aug 21, 2023
1 parent 7e51adf commit f1e625d
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 5 deletions.
3 changes: 2 additions & 1 deletion config/core_areas/linkList.yaml
Expand Up @@ -19,6 +19,7 @@ toolbox:
children:
linklist:
type: link
property_normalizer: ToolboxBundle\Normalizer\LinkNormalizer
title: 'Link'
config:
class: 'list-link'
class: 'list-link'
4 changes: 4 additions & 0 deletions config/services/normalizer.yaml
Expand Up @@ -14,5 +14,9 @@ services:
- { name: toolbox.property.normalizer }

ToolboxBundle\Normalizer\ImageEditableNormalizer:
tags:
- { name: toolbox.property.normalizer }

ToolboxBundle\Normalizer\LinkNormalizer:
tags:
- { name: toolbox.property.normalizer }
9 changes: 8 additions & 1 deletion src/Normalizer/DownloadRelationsNormalizer.php
Expand Up @@ -19,7 +19,14 @@ public function normalize(mixed $value, ?string $toolboxContextId = null): mixed
$normalizedData = [];

foreach ($value as $asset) {
$normalizedData[] = $this->downloadInfoService->getDownloadInfo($asset, true, 'optimized');

$normalizedDownloadInfo = $this->downloadInfoService->getDownloadInfo($asset, true, 'optimized');

if (array_key_exists('previewImage', $normalizedDownloadInfo)) {
unset($normalizedDownloadInfo['previewImage']);
}

$normalizedData[] = $normalizedDownloadInfo;
}

return $normalizedData;
Expand Down
28 changes: 28 additions & 0 deletions src/Normalizer/LinkNormalizer.php
@@ -0,0 +1,28 @@
<?php

namespace ToolboxBundle\Normalizer;

use Pimcore\Model\Document\Editable;
use ToolboxBundle\Manager\ConfigManagerInterface;
use ToolboxBundle\Service\AssetService;

class LinkNormalizer implements PropertyNormalizerInterface
{
public function __construct(
protected ConfigManagerInterface $configManager,
protected AssetService $assetService
) {
}

public function normalize(mixed $value, ?string $toolboxContextId = null): mixed
{
if (!$value instanceof Editable\Link) {
return $value;
}

return [
'href' => $value->getHref(),
'data' => $value->getData()
];
}
}
5 changes: 2 additions & 3 deletions src/Service/AssetService.php
Expand Up @@ -34,7 +34,7 @@ public function generateImageThumbnail(Asset\Image $asset, ?string $thumbnailNam

private function buildAssetData(?Asset\Image $asset, ?Image\Thumbnail $thumbnail, array $options): array
{
if(!$asset instanceof Asset\Image) {
if (!$asset instanceof Asset\Image) {
return [];
}

Expand Down Expand Up @@ -97,7 +97,6 @@ private function parseThumbnailPictureList(Asset\Image\Thumbnail $thumbnail, arr
}

return $data;

}

private function getSourceTagAttributes(Asset\Image\Thumbnail $thumbnail, Config $thumbConfig, mixed $mediaQuery, Image $image, array $options): array
Expand Down Expand Up @@ -150,7 +149,7 @@ private function getSrcset(string $fileName, Config $thumbConfig, Image $image,
}

$thumbConfigRes->setHighResolution($highRes);
$thumb = $image->getThumbnail($thumbConfigRes, true);
$thumb = $image->getThumbnail($thumbConfigRes, true)->getPath();

$descriptor = $highRes . 'x';
// encode comma in thumbnail path as srcset is a comma separated list
Expand Down

0 comments on commit f1e625d

Please sign in to comment.