Skip to content

Commit 2fda9d5

Browse files
committed
feat: Allow to configure what dpi factors to generated in the thumbnail srcset attribute.
1 parent dd81ef4 commit 2fda9d5

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

bundles/CoreBundle/DependencyInjection/Configuration.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,17 @@ private function addAssetNode(ArrayNodeDefinition $rootNode)
563563
->end()
564564
->defaultTrue()
565565
->end()
566+
->integerNode('max_srcset_dpi_factor')
567+
->info('Maximum generated srcset DPI factor for web images.')
568+
->addDefaultsIfNotSet()
569+
->beforeNormalization()
570+
->ifString()
571+
->then(function ($v) {
572+
return (int)$v;
573+
})
574+
->end()
575+
->defaultValue(2)
576+
->end()
566577
->arrayNode('image_optimizers')
567578
->addDefaultsIfNotSet()
568579
->canBeDisabled()

models/Asset/Image/Thumbnail.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,8 @@ private function createConfig($selector)
471471
private function getSrcset(Config $thumbConfig, Image $image, array $options, ?string $mediaQuery = null): string
472472
{
473473
$srcSetValues = [];
474-
foreach ([1, 2] as $highRes) {
474+
$maxDpiFactor = $thumbConfig::getMaxDpiFactor();
475+
for ($highRes=1; $highRes <= $maxDpiFactor; $highRes++) {
475476
$thumbConfigRes = clone $thumbConfig;
476477
if ($mediaQuery) {
477478
$thumbConfigRes->selectMedia($mediaQuery);

models/Asset/Image/Thumbnail/Config.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -973,4 +973,14 @@ public function generateAutoName(): void
973973

974974
$this->setName($this->getName() . '_auto_' . md5($serialized));
975975
}
976+
977+
/**
978+
* @internal
979+
*
980+
* @return integer
981+
*/
982+
public static function getMaxDpiFactor(): int
983+
{
984+
return \Pimcore::getContainer()->getParameter('pimcore.config')['assets']['image']['thumbnails']['max_srcset_dpi_factor'];
985+
}
976986
}

0 commit comments

Comments
 (0)