All Versions
336
Latest Version
Avg Release Cycle
7 days
Latest Release
65 days ago

Changelog History
Page 1

  • v4.3.4 Changes

    November 29, 2022
    • The serve command now routes requests for nonexistent files to Craft. (#12310)
    • 0️⃣ craft\base\Element::includeSetStatusAction() now returns false by default regardless of what hasStatuses() returns, fixing a bug where some element indexes were unexpectedly getting “Set Status” actions.
    • 🐎 Query conditions generated by craft\helpers\Db::parseParam() no longer account for null values, due to a heavy performance impact. (#11931)
    • 🛠 Fixed a bug where the default MySQL backup command would attempt to use credentials from ~/.my.cnf if it existed, instead of Craft’s configured database connection settings. (#12349)
    • 🛠 Fixed a bug where it wasn’t possible to access the Customize Sources modal if all sources were disabled. (#12369)
    • 🛠 Fixed a bug where Assets fields weren’t taking their “Show unpermitted volumes” setting into account when defining the available input sources. (#12364)
    • 🛠 Fixed a bug where user slideouts included status toggles.
    • ⚡️ Updated Yii to 2.0.47.
  • v4.3.3 Changes

    November 17, 2022
    • 🛠 Fixed an error that occurred if an arrow function was passed to the |sort Twig filter. (#12334)
    • 🛠 Fixed a bug where nested fields set to numbers could be inadvertently changed when an entry draft was created.
    • craft\services\Fields::getFieldsWithContent() and getFieldsWithoutContent() now have $context arguments.
  • v4.3.2 Changes

    November 16, 2022
    • firstName and lastName are now reserved field handles for the user field layout. (#12241, #12316)
    • Asset filenames are truncated in large thumbnail views, as they were before 4.3.0. (#12236)
    • 🛠 Fixed an information disclosure vulnerability.
    • 🛠 Fixed an XSS vulnerability.
    • 🛠 Fixed asset indexing for Local filesystems that were configured to use a symlinked server path.
    • 🛠 Fixed an error that could occur when calling craft\base\Element::getCanonicalUid() on a draft loaded for a site that the canonical element didn’t exist on yet. (#12228)
    • 🛠 Fixed a bug where long words in asset titles weren’t wrapping in the large thumbnail view. (#12237)
    • 🛠 Fixed a bug where the Users index page was showing a “Set Status” bulk action, making it possible to disable users.
    • Disabled users now identify themselves as disabled, and Edit User pages now provide a way for them to be re-enabled.
    • 🛠 Fixed a layout issue that could occur on Assets fields using the “Large Thumbnails” view mode. (#12230)
    • 🛠 Fixed a bug where elements that weren’t viewable by the current user could still be hyperlinked in element indexes.
    • 🛠 Fixed a bug where craft\helpers\DateTimeHelper::toDateInterval() could return a DateInterval that was off by an hour around daylight savings time changes.
    • 🛠 Fixed a bug where sticky element index footers were obstructed when the Debug Toolbar was enabled. (#12242)
    • 🛠 Fixed a bug where it wasn’t possible to change the sort attribute on element indexes while searching. (#12256)
    • 🛠 Fixed a bug where resave/* commands weren’t catching exceptions thrown when applying the --set and --to options. (#12262)
    • 🛠 Fixed the position of field status indicators within Matrix fields in Live Preview. (#12287)
    • 🛠 Fixed PHP errors that could occur when executing GraphQL queries. (#12271, #12275)
    • 🛠 Fixed a bug where it was possible to add a “Status” condition rule to relational fields’ selectable element conditions. (#12289)
    • 🛠 Fixed a PHP error that occurred if a field type stored enum values. (#12297)
    • 🛠 Fixed a bug where PHP errors and exceptions thrown when formatting a control panel screen response weren’t being handled properly. (#12308)
    • 🛠 Fixed a bug where element indexes were showing the labels of empty Dropdown options when selected. (#12319)
    • 🛠 Fixed condition builder styling issues that occurred if any rules had exceptionally long names. (#12311)
    • 🛠 Fixed an error that occurred when saving an entry via GraphQL, if a parent entry was assigned that didn’t exist on the requested site. (#12291)
    • 🛠 Fixed a bug where conditional fields weren’t always saving for elements that didn’t support autosaved drafts. (#12166)
    • 🛠 Fixed a bug where fields set to numbers could be inadvertently changed when an entry draft was created.
    • ➕ Added craft\base\Element::includeSetStatusAction().
    • ➕ Added craft\services\Fields::getFieldsWithoutContent().
  • v4.3.2.1 Changes

    November 16, 2022
    • 🛠 Fixed a PHP error that could occur when generating an image transform. (#12333)
  • v4.3.1 Changes

    October 27, 2022
    • Numeric values are no longer automatically formatted within element indexes. (#12205)
    • When craft\base\Element::EVENT_DEFINE_URL event handlers set craft\events\DefineUrlEvent::$url to null, that will no longer be respected unless $handled was also set to true. (#12210, nystudio107/craft-imageoptimize#359)
    • Asset folder and file names are now converted to ASCII using the primary site’s language for character mappings, regardless of the current user’s preferred language, when the convertFilenamesToAscii config setting is enabled. (#12207)
    • 🛠 Fixed a bug where locked users’ remaining cooldown times could be calculated incorrectly on PHP 8.0.
    • 🛠 Fixed an infinite recursion bug that occurred when editing a Matrix field with a custom propagation method. (#12176)
    • 🛠 Fixed a bug where element index source lists were showing headings that didn’t have any visible nested sources. (#12193)
    • 🛠 Fixed a JavaScript 404 error that occurred when users’ Language was set to Chinese. (#12194)
    • 🛠 Fixed a bug where users couldn’t delete their own addresses. (craftcms/commerce#3011)
    • 🛠 Fixed a bug where the users/save-address action wasn’t validating addresses properly.
    • 🛠 Fixed an error that could occur during garbage collection, if any nested volume folders were missing their path. (#12195)
  • v4.3.0 Changes

    October 25, 2022

    Content Management

    • ➕ Added a “View” menu to element indexes, which enable users to customize the visible table columns for themselves, without affecting other users. (#11915)
    • ➕ Added source setting menus to element index pages, which now contain the “Customize sources” option when allowed, and “New subfolder”, “Rename folder”, and “Delete folder” actions on the Assets index page. (#11906)
    • ➕ Added the “Editable” rule to asset and entry conditions. (#11995)
    • 👌 Improved control panel mobile support. (#11963, #12005)
    • Element indexes now respect field layouts’ user conditions when determining which custom field columns to show. (#11913)
    • Element index URLs now include the selected source key in a source query param, so all sources are now deep-linkable, including custom sources. (#11996)
    • 🍱 Notifications are now shown after executing folder actions on the Assets index page. (#11906)
    • 👍 Date range condition rules now support “Today”, “This week”, “This month”, “This year”, “Past 7 days”, “Past 30 days”, “Past 30 days”, “Past year”, “Before…”, and “After…” relative range types, in addition to specifying a custom date range. (#10749, #11888)
    • 👍 Number condition rules now support an “is between…” operator. (#11950)
    • 👍 All text, number, and date range condition rules now support “has a value” and “is empty” operators. (#11070)
    • “Save as a new [element type]” actions will now discard any unsaved changes on the original element after the new element is created. (#10204, #11959, #12102, #12165)
    • If Live Preview is triggered while a draft is saving, it will now wait until the save completes before opening. (#11858, #11895)
    • ➕ Addresses now support change tracking.
    • ⏪ It’s now possible to restore assets that were deleted programmatically with craft\elements\Asset::$keepFile set to true. (#11761)

    Accessibility

    • 👌 Improved the styling of selected sidebar navigation items to meet contrast requirements. (#11589)
    • 👌 Improved the styling of slideouts for screens under 600 pixels wide. (#11636)
    • 👌 Improved the styling of the primary button on element index pages for small screens. (#11963)
    • 👌 Improved the contrast of modal resize handles. (#11727)
    • 👌 Improved the contrast of fields’ searchable and translatable indicator icons on the Fields index page. (#12169)
    • Improed the contrast of the “Same as language” text within the “Formatting Locale” user preference. (#11767)
    • 👌 Improved the contrast of the selected options within combo boxes. (#11662)
    • 👌 Improved the readability of the global navigation and date pickers when text is resized to 200%. (#11767)
    • 👌 Improved focus management for HUD components. (#11985)
    • 👌 Improved focus management for element index pagination links. (#11565).
    • 👌 Improved focus management for editable tables. (#11662)
    • 👍 Custom slider components now support Home and End key presses. (#11578)
    • 👌 Improved the markup and keyboard control for exclusive button groups. (#11942)
    • 👌 Improved keyboard control for the widget manager HUD on the Dashboard. (#11578)
    • 👌 Improved New Widget and Quick Post action menus for screen readers. (#11611)
    • 👌 Improved the widget manager HUD for screen readers. (#11945)
    • 👌 Improved the Craft Support widget for screen readers. (#11703)
    • 👌 Improved element index view mode buttons for screen readers. (#11613)
    • 👌 Improved element type selects within “Related To” condition rules for screen readers. (#11662)
    • 👌 Improved element action modals for screen readers. (#11905)
    • 👌 Improved field instructions, errors, and other visually-related text for screen readers. (#11763)
    • 👌 Improved field translation indicators for screen readers. (#11662)
    • 👌 Improved the parent selection button on structured entries’ and categories’ edit pages for screen readers. (#11662)
    • 👌 Improved the Rotate button within Live Preview for screen readers. (#11953)
    • 👌 Improved Date fields for screen readers. (#10546)
    • 🛠 Fixed a mismatch between the visible and accessibile text on the site name in the global sidebar. (#11767)
    • ➕ Added alternative text to element status indicators. (#11604)
    • Feed, Recent Entries, and Drafts widgets now use use semantic lists instead of tables. (#11952)
    • ➕ Added autocomplete attributes to several address fields. (#11767)
    • Implemented fieldsets and descriptive headings on user accounts’ “Preferences” tab. (#11534)
    • The “All” status option within element index toolbars now uses a differentiated gradient icon. (#11911)
    • 👌 Improved status indicator shapes, when the “Use shapes to represent statuses” user preference is enabled. (#11911)
    • Boolean table columns within element indexes now use check icons to indicate true values. (#11911)
    • Element titles are no longer truncated on edit pages. (#11768)
    • Asset titles are no longer truncated in asset indexes. (#11775)
    • Element source navigation now programmatically conveys structure imparted by headings. (#11777)
    • ➕ Added a warning icon to related elements that contain validation errors. (#11610)
    • Element index footers now stick to the bottom of the window, and element action triggers are now inserted into the footer rather than replacing the contents of the page’s toolbar. (#11844)

    Administration

    • ➕ Added the extraLastNamePrefixes config setting. (#11903)
    • ➕ Added the extraNameSalutations config setting. (#11903)
    • ➕ Added the extraNameSuffixes config setting. (#11903)
    • 0️⃣ Element sources now have a “Default Sort” setting in the Customize Sources modal. (#12002)
    • Control panel-defined image transforms can now have custom quality values. (#9622)
    • Added support for the CRAFT_DOTENV_PATH PHP constant. (#11894)
    • 🌐 Added support for CRAFT_WEB_URL and CRAFT_WEB_ROOT environment variables/PHP constants, which can be used to set the default @web and @webroot alias values. (#11912)

    Development

    • ➕ Added the canCreateDrafts() Twig function. (#11797, #11808)
    • ➕ Added the canDelete() Twig function. (#11797, #11808)
    • ➕ Added the canDeleteForSite() Twig function. (#11797, #11808)
    • ➕ Added the canDuplicate() Twig function. (#11797, #11808)
    • ➕ Added the canSave() Twig function. (#11797, #11808)
    • ➕ Added the canView() Twig function. (#11797, #11808)
    • ➕ Added the |boolean Twig filter. (#11792)
    • ➕ Added the |float Twig filter. (#11792)
    • ➕ Added the |integer Twig filter. (#11792)
    • ➕ Added the |string Twig filter. (#11792)
    • Twig templates now have today, tomorrow, and yesterday global variables available to them.
    • 👍 Element query date params now support passing today, tomorrow, and yesterday. (#10485)
    • Element queries’ relatedTo params now only check for relations in the same site as siteId, if set. (#12000, #12072)
    • 👍 Element queries now support passing ambiguous column names (e.g. dateCreated) and field handles into select(). (#11790, #11800)
    • 👍 Element queries’ collect() methods eager-loaded elements now return craft\elements\ElementCollection objects, which extends Illuminate\Support\Collection with ids() and with() methods. (#12113)
    • {% cache %} tags now store any HTML registered with {% html %} tags. (#11811)
    • {% cache %} tags and GraphQL query caches now get a max cache duration based on the fetched/referenced entries’ expiry dates. (#8525, #11901)
    • ➕ Added the siteHandle field to elements queried via GraphQL. (#10829)
    • users/session-info responses now include a csrfTokenName key. (#11706, #11767)
    • 👍 The elements/save-draft action now supports being called from the front end. (#12131)
    • The users/upload-user-photo action now includes a photoId key in the response data. (#12175)

    Extensibility

    • ➕ Added craft\base\conditions\BaseTextConditionRule::inputOptions().
    • Added craft\base\Element::EVENT_DEFINE_URL. (#12168)
    • ➕ Added craft\base\ExpirableElementInterface. (#11901)
    • ➕ Added craft\controllers\ElementsController::$element.
    • ➕ Added craft\db\ActiveQuery::collect(). (#11842)
    • ➕ Added craft\elements\actions\Restore::$restorableElementsOnly.
    • ➕ Added craft\elements\conditions\assets\EditableConditionRule.
    • ➕ Added craft\elements\conditions\entries\EditableConditionRule.
    • ➕ Added craft\elements\ElementCollection. (#12113)
    • ➕ Added craft\events\AuthorizationCheckEvent::$element.
    • ➕ Added craft\events\CreateTwigEvent.
    • ➕ Added craft\events\DefineAddressFieldLabelEvent.
    • ➕ Added craft\events\DefineAddressFieldsEvent.
    • ➕ Added craft\events\DefineUrlEvent. (#12168)
    • ➕ Added craft\events\ImageTransformerOperationEvent::$tempPath.
    • ➕ Added craft\events\SearchEvent::$scores. (#11882)
    • ➕ Added craft\events\UserGroupPermissionsEvent.
    • ➕ Added craft\events\UserPermissionsEvent.
    • ➕ Added craft\helpers\DateRange.
    • ➕ Added craft\helpers\DateTimeHelper::firstWeekDay().
    • ➕ Added craft\helpers\DateTimeHelper::lastMonth().
    • ➕ Added craft\helpers\DateTimeHelper::lastWeek().
    • ➕ Added craft\helpers\DateTimeHelper::lastWeekDay().
    • ➕ Added craft\helpers\DateTimeHelper::lastYear().
    • ➕ Added craft\helpers\DateTimeHelper::nextMonth().
    • ➕ Added craft\helpers\DateTimeHelper::nextWeek().
    • ➕ Added craft\helpers\DateTimeHelper::nextYear().
    • ➕ Added craft\helpers\DateTimeHelper::thisMonth().
    • ➕ Added craft\helpers\DateTimeHelper::thisWeek().
    • ➕ Added craft\helpers\DateTimeHelper::thisYear().
    • ➕ Added craft\helpers\DateTimeHelper::today().
    • ➕ Added craft\helpers\DateTimeHelper::tomorrow().
    • ➕ Added craft\helpers\DateTimeHelper::yesterday().
    • ➕ Added craft\helpers\ElementHelper::attributeHtml().
    • ➕ Added craft\helpers\Html::svg(). (#11932)
    • ➕ Added craft\i18n\FormatConverter::convertDatePhpToHuman(). (#10546)
    • ➕ Added craft\i18n\Locale::FORMAT_HUMAN.
    • ➕ Added craft\nameparsing\CustomLanguage.
    • Added craft\services\Addresses::EVENT_DEFINE_FIELD_LABEL. (#11788)
    • Added craft\services\Addresses::EVENT_DEFINE_USED_FIELDS. (#11788)
    • Added craft\services\Addresses::EVENT_DEFINE_USED_SUBDIVISION_FIELDS. (#11788)
    • ➕ Added craft\services\Addresses::getFieldLabel().
    • ➕ Added craft\services\Addresses::getUsedFields().
    • ➕ Added craft\services\Addresses::getUsedSubdivisionFields().
    • Added craft\services\Elements::EVENT_AUTHORIZE_CREATE_DRAFTS. (#11759, #11808)
    • Added craft\services\Elements::EVENT_AUTHORIZE_DELETE_FOR_SITE. (#11759, #11808)
    • Added craft\services\Elements::EVENT_AUTHORIZE_DELETE. (#11759, #11808)
    • Added craft\services\Elements::EVENT_AUTHORIZE_DUPLICATE. (#11759, #11808)
    • Added craft\services\Elements::EVENT_AUTHORIZE_SAVE. (#11759, #11808)
    • Added craft\services\Elements::EVENT_AUTHORIZE_VIEW. (#11759, #11808)
    • ➕ Added craft\services\Elements::canCreateDrafts().
    • ➕ Added craft\services\Elements::canDelete().
    • ➕ Added craft\services\Elements::canDeleteForSite().
    • ➕ Added craft\services\Elements::canDuplicate().
    • ➕ Added craft\services\Elements::canSave().
    • ➕ Added craft\services\Elements::canView().
    • ➕ Added craft\services\Elements::getIsCollectingCacheInfo(). (#11901)
    • ➕ Added craft\services\Elements::setCacheExpiryDate(). (#11901)
    • ➕ Added craft\services\Elements::startCollectingCacheInfo(). (#11901)
    • ➕ Added craft\services\Elements::stopCollectingCacheInfo(). (#11901)
    • Added craft\services\Search::EVENT_BEFORE_SCORE_RESULTS. (#11882)
    • Added craft\services\UserPermissions::EVENT_AFTER_SAVE_GROUP_PERMISSIONS. (#12130, #12146)
    • Added craft\services\UserPermissions::EVENT_AFTER_SAVE_USER_PERMISSIONS. (#12130, #12146)
    • ➕ Added craft\web\Controller::currentUser(). (#11754, #11916)
    • Added craft\web\View::EVENT_AFTER_CREATE_TWIG. (#11774)
    • craft\elements\Asset::EVENT_DEFINE_URL now gets triggered after the default URL has been generated, and the URL will be passed to craft\events\DefineAssetUrlEvent::$url.
    • craft\elements\db\ElementQuery::collect() and craft\base\Element::getEagerLoadedElements() now return craft\elements\ElementCollection instances. (#12113)
    • craft\events\DraftEvent::$creatorId is now nullable. (#11904)
    • craft\fieldlayoutelements\BaseField::statusClass() and statusLabel() now return status info from the element for the attribute specified by attribute().
    • craft\helpers\Component::iconSvg() now namespaces the SVG contents, and adds aria-hidden="true". (#11703)
    • craft\services\Drafts::createDraft() now accepts null passed to its $creatorId argument. (#11904)
    • craft\services\Search::EVENT_AFTER_SEARCH now includes the computed search result scores, set to craft\events\SearchEvent::$scores, and any changes made to it will be returned by searchElements(). (#11882)
    • craft\services\Search::EVENT_BEFORE_INDEX_KEYWORDS is now cancellable by setting $event->isValid to false. (#11705)
    • Deprecated craft\base\Element::EVENT_AUTHORIZE_CREATE_DRAFTS. craft\services\Elements::EVENT_AUTHORIZE_CREATE_DRAFTS should be used instead.
    • Deprecated craft\base\Element::EVENT_AUTHORIZE_DELETE_FOR_SITE. craft\services\Elements::EVENT_AUTHORIZE_DELETE_FOR_SITE should be used instead.
    • Deprecated craft\base\Element::EVENT_AUTHORIZE_DELETE. craft\services\Elements::EVENT_AUTHORIZE_DELETE should be used instead.
    • Deprecated craft\base\Element::EVENT_AUTHORIZE_DUPLICATE. craft\services\Elements::EVENT_AUTHORIZE_DUPLICATE should be used instead.
    • Deprecated craft\base\Element::EVENT_AUTHORIZE_SAVE. craft\services\Elements::EVENT_AUTHORIZE_SAVE should be used instead.
    • Deprecated craft\base\Element::EVENT_AUTHORIZE_VIEW. craft\services\Elements::EVENT_AUTHORIZE_VIEW should be used instead.
    • 🗄 Deprecated craft\elements\Address::addressAttributeLabel(). craft\services\Addresses::getFieldLabel() should be used instead.
    • 🗄 Deprecated craft\events\DefineAssetUrlEvent::$asset. $sender should be used instead.
    • 🗄 Deprecated craft\services\Elements::getIsCollectingCacheTags(). getIsCollectingCacheInfo() should be used instead. (#11901)
    • 🗄 Deprecated craft\services\Elements::startCollectingCacheTags(). startCollectingCacheInfo() should be used instead. (#11901)
    • 🗄 Deprecated craft\services\Elements::stopCollectingCacheTags(). stopCollectingCacheInfo() should be used instead. (#11901)
    • checkboxSelect inputs without showAllOption: true now post an empty value if no options were selected. (#11748)
    • ➕ Added the Craft.useMobileStyles() JavaScript method. (#11636)
    • ➕ Added Craft.BaseElementIndex::getParentSource().
    • ➕ Added Craft.BaseElementIndex::getRootSource().
    • ➕ Added Craft.BaseElementIndex::getSourceActions(). (#11906)
    • ➕ Added Craft.BaseElementIndex::getSourceLevel().
    • 👀 Craft.BaseElementSelectInput now triggers a change event when elements are added programmatically or removed.

    System

    • 📜 Name parsing now checks for common German salutations, suffixes, and last name prefixes.
    • 👷 “Generating pending image transforms” jobs no longer attempt to process transforms that had previously failed. (#11970)
    • 0️⃣ The default system email template now sets the lang attribute on the <html> tag. (#12156)
    • 0️⃣ The default system email template now includes a Content-Type tag. (#12156)
    • 👌 Improved GraphQL cache reliability. (#11994, #12086)
    • Control panel .twig templates are now prioritized over .html. (#11809, #11840)
    • ⚡️ Updated Yii to 2.0.46.
    • 🛠 Fixed a bug where addresses weren’t validating their country codes. (#12161)
    • 🛠 Fixed a bug where Entry URI Format, Template, and Default Status switches were focusable within sections’ Site Settings tables, for disabled sites.
    • 🛠 Fixed a bug where craft\helpers\Db::parseParam() wasn’t generating conditions that would include null values when it should have. (#11931)
  • v4.2.8 Changes

    October 18, 2022

    🔄 Changed

    • The setup/keys command will now set the application ID if Craft::$app->id is empty. (#12103)

    🛠 Fixed

    • 🛠 Fixed an error that could occur when running tests. (#12088, #12089)
    • 🛠 Fixed a bug where the db/restore command would output a warning about a missing info row, even if one existed in the imported database. (#12101)
    • 🛠 Fixed a bug where the “Your session has ended” modal could be shown on the control panel’s login page. (#12121)
    • 🛠 Fixed a permission error that could occur when uploading a file to an Assets field.
    • 🛠 Fixed a bug where custom log targets were getting removed when processing queue jobs. (#12109)
    • 🛠 Fixed a bug where Money fields weren’t distinguishing between 0 and empty values. (#12122, #12132)
    • 🛠 Fixed an error that could occur in the control panel. (#12133)
    • 🛠 Fixed a bug where assets uploaded from Assets fields weren’t retaining their original filename for all but the initial site. (#12142)
    • 🛠 Fixed a bug where non-admin users couldn’t always see the Temporary Uploads source when selecting assets from an Assets field. (#12128)
    • 🛠 Fixed a bug where image transforms that used the fit mode but didn’t specify a width or height weren’t getting their missing dimension set on the asset. (#12137)
  • v4.2.7 Changes

    October 11, 2022

    ➕ Added

    • ➕ Added the setup/keys command, which ensure Craft is configured with an application ID and security key.

    🔄 Changed

    • The install/craft command now runs setup/keys before doing anything else.
  • v4.2.6 Changes

    October 11, 2022

    ➕ Added

    • ➕ Added the --as-json option to the help command. (#12017, #12074)
    • ➕ Added craft\helpers\ElementHelper::isAttributeEmpty().
    • ➕ Added craft\queue\jobs\ResaveElements::$ifEmpty.
    • ➕ Added craft\queue\jobs\ResaveElements::$set.
    • ➕ Added craft\queue\jobs\ResaveElements::$to.
    • ➕ Added craft\queue\jobs\ResaveElements::$touch.

    🔄 Changed

    • When passing a PHP callback function to the --to option of a resave/* command, the $element argument is now optional.

    🗄 Deprecated

    • 🍱 Deprecated craft\web\assets\focusvisible\FocusVisibleAsset. (#12037)

    🛠 Fixed

    • 🛠 Fixed an error that could occur when editing a draft of an element type that didn’t have change tracking enabled.
    • 🛠 Fixed an error that could occur when saving an entry with Matrix blocks, if the entry had been deleted for a site.
    • 🛠 Fixed a bug where resave/* commands weren’t respecting the --set, --to, or --touch options when --queue was passed. (#11974)
    • 🛠 Fixed a bug where relatedTo params didn’t support collections.
    • 🛠 Fixed an error that could occur when passing an element query to a relatedTo param, if the parent element query contained any closures. (#11981)
    • 🛠 Fixed a bug where craft\log\MonologTarget::$allowLineBreaks wasn’t getting a default value. (#12004)
    • 🛠 Fixed a PHP error that occurred when attempting to edit an element by an invalid ID or UUID.
    • Fixed a bug where unsaved drafts could be unintentionally deleted when saved, if a plugin or module was blocking the save via EVENT_BEFORE_SAVE. (#12015)
    • 🛠 Fixed a bug where “Propagating tags” jobs would fail if two tags had similar titles.
    • 🛠 Fixed a bug where pressing “Disable focal point” within asset preview modals would only reset the focal point position, but not delete it. (#12030)
    • 🛠 Fixed a bug where image transforms weren’t getting sized correctly in some cases when upscaleImages was disabled. (#12023)
    • 🛠 Fixed a bug where table cells within Redactor fields could appear to be focused when they weren’t. (#12001, #12037)
    • 🛠 Fixed a bug where alerts saying a folder can’t be renamed due to a naming conflict were showing the old folder name instead of the new one. (#12049)
    • 🛠 Fixed a bug where custom fields nested within Matrix fields weren’t always updating properly within slideout editors. (#11988, #12058)
    • 🛠 Fixed an error that could occur when adding new textual condition rules to a condition. (#12077)
    • 🛠 Fixed a bug where Table fields’ Default Values settings were always showing at least one row, even if the setting had been saved without any rows. (#12071)
    • 🛠 Fixed a bug where existing rows in Table fields’ Default Values settings were losing the ability to be reordered or deleted when the table columns were changed.
    • 🛠 Fixed a bug where sending a password reset email for an inactive user would set them to a pending state. (#12080)
    • 🛠 Fixed a bug where some GraphQL results could be missing if multiple sets of nested elements were being queried using the same alias. (#11982)

    🔒 Security

    • 🛠 Fixed information disclosure vulnerabilities.
  • v4.2.5 Changes

    September 20, 2022

    ➕ Added

    • ➕ Added craft\helpers\Image::targetDimensions().

    🔄 Changed

    • Edit Asset pages now show the “View” button for all file types, not just images, PDFs, and text files. (#11936)

    ✂ Removed

    • ✂ Removed the Punycode PHP library. (#11948)

    🛠 Fixed

    • 🛠 Fixed a bug where image transforms weren’t always getting applied properly to all animation frames. (#11937)
    • 🛠 Fixed a bug where animated WebP images would lose their animation frames when transformed. (#11937)
    • 🛠 Fixed a bug where image transform dimensions could be calculated incorrectly when upscaleImages was false. (#11837)
    • 🛠 Fixed a bug where the users/send-password-reset-email action wasn’t passing errors back to the template. (#11933)
    • 🛠 Fixed an error that occurred when setting a non-numeric width or height on an image transform. (#11837)
    • 🛠 Fixed a bug where the database connection wasn’t being configured properly when fluent config methods and environment variable overrides were being used in combination. (#11941)
    • 🛠 Fixed a bug where slideouts lost their shadows when focused.
    • 🛠 Fixed a bug where relatedTo* arguments weren’t supported by children fields in GraphQL. (#11918)
    • 🛠 Fixed a bug where Image Editor and slideout action buttons were obstructed when the Debug Toolbar was enabled. (#11965)
    • Fixed an error that occurred when installing Craft when MySQL’s sql_require_primary_key setting was enabled. (#11374)
    • 🛠 Fixed a bug subfolders created by Assets fields could be reported as missing when updating asset indexes, even if they contained assets. (#11949)
    • 🛠 Fixed a PHP error that could occur in a potential race condition when calling craft\helpers\FileHelper::clearDirectory().
    • 🛠 Fixed a bug where Structure section entries that were duplicated via the “Save as a new entry” action on a provisional draft weren’t being placed within the structure properly.
    • 🛠 Fixed a bug where element’s searchScore properties would be set to null when their original score was below 1, rather than rounding to 0 or 1. (#11973)