Skip to content

Ensure DefineAssetUrlEvent is passed transform when parsing refs#16464

Merged
brandonkelly merged 2 commits into4.xfrom
bugfix/ckeditor-transforms
Jan 21, 2025
Merged

Ensure DefineAssetUrlEvent is passed transform when parsing refs#16464
brandonkelly merged 2 commits into4.xfrom
bugfix/ckeditor-transforms

Conversation

@timkelty
Copy link
Copy Markdown
Contributor

@timkelty timkelty commented Jan 21, 2025

Description

\craft\services\Elements::_getRefTokenReplacement coerces and an asset to a URL string via \craft\elements\Asset::__toString, which relies on any transform existing at \craft\elements\Asset::$_transform to get the correct transformed URL.

However, when the DefineAssetUrlEvent event is triggered and passed a transform, \craft\elements\Asset::$_transform is ignored.

Something using DefineAssetUrlEvent may then return the wrong URL, as receives a null transform when \craft\elements\Asset::$_transform is actually set.

This can end up interfering with HtmlField's Asset transform URL parsing, as it expects values to be identical for correct substitution when parsing refs, but they may not be.

Related issues

craftcms/ckeditor#336

[ci skip]
@brandonkelly brandonkelly merged commit e9b753f into 4.x Jan 21, 2025
@brandonkelly brandonkelly deleted the bugfix/ckeditor-transforms branch January 21, 2025 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants