fix(imagor): exclude logo media from own imagor URL wrapping #36

Merged
csaeum merged 1 commit from fix/imagor-logo-recursive-wrap into main 2026-08-09 16:58:05 +00:00
Owner

Closes #35.

Root Cause

ImagorUrlBuilder::resolveLogoUrl() lädt das Logo-Medium über media.repository und liest $media->getUrl(). Diese URL läuft dabei durch unseren eigenen Decorator ImagorMediaUrlGenerator, der jede Medien-URL in eine imagor-URL wrappt — auch die des Logos selbst. Dadurch landete eine verschachtelte imagor-URL als watermark()-Filter-Argument, dasselbe Strukturproblem wie #32, und wurde live vermutlich ebenso verworfen.

Fix

ImagorMediaUrlGenerator::generate() nimmt die konfigurierte Logo-Medien-ID jetzt explizit von der eigenen Wrapping-Logik aus (ImagorUrlBuilder::isConfiguredLogoMediaId()).

Testplan

  • 57/57 Unit-Tests grün in DDEV (phpunit --bootstrap tests/MinimalBootstrap.php tests/Unit)
  • php -l auf beide geänderten Klassen
  • Live-Test nach Deploy: Wasserzeichen-Logo erscheint im Storefront
Closes #35. ## Root Cause `ImagorUrlBuilder::resolveLogoUrl()` lädt das Logo-Medium über `media.repository` und liest `$media->getUrl()`. Diese URL läuft dabei durch unseren eigenen Decorator `ImagorMediaUrlGenerator`, der **jede** Medien-URL in eine imagor-URL wrappt — auch die des Logos selbst. Dadurch landete eine verschachtelte imagor-URL als `watermark()`-Filter-Argument, dasselbe Strukturproblem wie #32, und wurde live vermutlich ebenso verworfen. ## Fix `ImagorMediaUrlGenerator::generate()` nimmt die konfigurierte Logo-Medien-ID jetzt explizit von der eigenen Wrapping-Logik aus (`ImagorUrlBuilder::isConfiguredLogoMediaId()`). ## Testplan - [x] 57/57 Unit-Tests grün in DDEV (`phpunit --bootstrap tests/MinimalBootstrap.php tests/Unit`) - [x] `php -l` auf beide geänderten Klassen - [ ] Live-Test nach Deploy: Wasserzeichen-Logo erscheint im Storefront
ImagorMediaUrlGenerator wraps every media URL it generates, including the
configured logo's own URL when ImagorUrlBuilder::resolveLogoUrl() loads it
via media.repository. That produced a nested imagor URL as the watermark()
filter argument, the same structural issue as #32, silently dropping the
logo watermark on the live shop.
csaeum merged commit 69c85ab3fd into main 2026-08-09 16:58:05 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SW-Plugins/wsc_swplugin_aiseotools!36
No description provided.