Releases: craftcms/cms
Releases · craftcms/cms
5.4.4
Important
This update fixes a critical data deletion bug for PostgreSQL installs.
- Fixed a data deletion bug that occurred during garbage collection on PostgreSQL. (#14891)
- Fixed a bug where image constraint labels weren’t translated within the Image Editor.
- Fixed a bug where image orientation labels weren’t getting translated for screen readers within the Image Editor.
- Fixed a PHP error. (#14635)
- Fixed a bug where elements’ default field values weren’t getting populated on creation. (#15706)
- Fixed a bug where URL field previews could bleed out of their container. (#15722)
4.12.3
- Fixed a data deletion bug that occurred during garbage collection on PostgreSQL. (#14891)
- Fixed a bug where image constraint labels weren’t translated within the Image Editor.
- Fixed a bug where image orientation labels weren’t getting translated for screen readers within the Image Editor.
- Fixed a PHP error. (#14635)
5.4.3
- Updated Twig to 3.14. (#15704)
- Fixed a bug where soft-deleted structures weren’t getting hard-deleted via garbage collection. (#15705)
- Fixed a bug where address’ Label fields were being marked as translatable. (#15702)
- Fixed an error that could occur when saving an entry with a Matrix field, if the nested entries didn’t have slugs.
- Fixed a bug where relation fields weren’t merging uploaded asset IDs with the existing field values. (#15707)
- Fixed a styling issue with inline-editable Matrix block tabs. (#15703)
- Fixed a bug where the control panel layout could shift briefly when removing an element from an element select input. (#15712)
- Fixed an RCE vulnerability.
- Fixed an XSS vulnerability.
4.12.2
5.4.2
- Added
craft\services\Security::isSystemDir()
. - Fixed a bug where
craft\helpers\StringHelper::lines()
was returning an array ofStringy\Stringy
objects, rather than strings. - Fixed styling issues with Template field layout UI elements’ selector labels.
- Fixed a validation error that could occur when saving a relational field, if the “Maintain hierarchy” setting had been enabled but was no longer applicable. (#15666)
- Fixed a bug where formatted addresses weren’t using the application locale consistently. (#15668)
- Fixed a bug where Tip and Warning field layout UI elements would display in field layouts even if they had no content. (#15681)
- Fixed an error that could occur when reverting an element’s content from a revision, if the element had been added to additional sites since the time the revision was created. (#15679)
- Fixed a PHP error that occurred when running PHP 8.2 or 8.3.
- Fixed a bug where disabled entries became enabled when edited within Live Preview. (#15670)
- Fixed a bug where new nested entries could get incremented slugs even if there were no elements with conflicting URIs. (#15672)
- Fixed a bug where users’ Addresses screens were displaying addresses that belonged to the user via a custom Addresses field. (#15678)
- Fixed a bug where Addresses fields weren’t always returning data in GraphQL.
- Fixed a bug where partial addresses weren’t getting garbage collected.
- Fixed a bug where orphaned nested addresses weren’t getting garbage collected. (#15678)
- Fixed a bug where orphaned nested entries weren’t getting garbage collected after their field had been hard-deleted. (#15678)
- Fixed a JavaScript error that could occur when bulk-editing elements. (#15694)
- Fixed an information disclosure vulnerability.
4.12.1
- Added
craft\services\Security::isSystemDir()
. - Fixed a bug where
craft\helpers\StringHelper::lines()
was returning an array ofStringy\Stringy
objects, rather than strings. - Fixed styling issues with Template field layout UI elements’ selector labels.
- Fixed a validation error that could occur when saving a relational field, if the “Maintain hierarchy” setting had been enabled but was no longer applicable. (#15666)
- Fixed a bug where formatted addresses weren’t using the application locale consistently. (#15668)
- Fixed a bug where Tip and Warning field layout UI elements would display in field layouts even if they had no content. (#15681)
- Fixed an error that could occur when reverting an element’s content from a revision, if the element had been added to additional sites since the time the revision was created. (#15679)
- Fixed an information disclosure vulnerability.
5.4.1
- Fixed a bug where element chips within thumbnail views weren’t getting light gray backgrounds. (#15649)
- Fixed a bug where Link fields didn’t fully support inline editing. (#15653)
- Fixed the loading spinner styling on element indexes. (#15634)
- Fixed an error that could occur when saving an element. (#15656)
- Fixed the styling of column sort indicators. (#15655)
5.4.0.1
5.4.0
Content Management
- Element conditions can now have a “Not Related To” rule. (#15496)
- Element conditions can now have a “Site Group” rule, if there are two or more site groups. (#15625)
- Asset chips and cards no longer include the “Replace file” action. (#15498)
- Category slugs are now inline-editable from the Categories index page. (#15560)
- Entry post dates, expiry dates, slugs, and authors are now inline-editable from the Entries index page. (#15560)
- Improved Addresses field validation to be more consistent with Matrix fields.
- Entry chips and cards no longer include status indicators, if their entry type’s “Show thet Status field” setting is disabled. (#15636)
- Matrix and Addresses fields now show newly-created elements on first edit, rather than after they’ve been fully saved. (#15641)
Accessibility
- Improved the accessibility of Tags fields.
Administration
- Link fields now have “Allow root-relative URLs” and “Allow anchors” settings. (#15579)
- Custom field selectors within field layouts now display a pencil icon if their name, instructions, or handle have been overridden. (#15597)
- Custom field settings within field layouts now display a chip for the associated global field. (#15619, #15597)
- Field layouts can now define tips and warnings that should be displayed for fields. (#15632)
- The Fields index page now has a “Used by” column that shows how many field layouts each field is used by. (#14984)
- The Entry Types index page now has a “Used by” column that lists the sections and custom fields that each entry type is used by. (#14984)
- Single sections can now have multiple entry types. (#15630)
- Increased the text size for handle buttons within admin tables.
Development
- Added the
notRelatedTo
andandNotRelatedTo
element query params. (#15496) - Added the
notRelatedTo
GraphQL element query argument. (#15496) relatedToAssets
,relatedToCategories
,relatedToEntries
,relatedToTags
, andrelatedToUsers
GraphQL arguments now support passingrelatedViaField
andrelatedViaSite
keys to their criteria objects. (#15508)- Country field values and
craft\elements\Address::getCountry()
now return the country in the current application locale.
Extensibility
- Added
craft\base\ApplicationTrait::getEnvId()
. (#15313) - Added
craft\base\ElementInterface::getRootOwner()
. (#15534) - Added
craft\base\ElementInterface::showStatusIndicator()
. - Added
craft\elements\conditions\NotRelatedToConditionRule
. - Added
craft\elements\conditions\SiteGroupConditionRule
. - Added
craft\gql\arguments\RelationCriteria
. - Added
craft\gql\types\input\criteria\AssetRelation
. - Added
craft\gql\types\input\criteria\CategoryRelation
. - Added
craft\gql\types\input\criteria\EntryRelation
. - Added
craft\gql\types\input\criteria\TagRelation
. - Added
craft\gql\types\input\criteria\UserRelation
. - Added
craft\helpers\Cp::componentPreviewHtml()
. - Added
craft\helpers\Inflector
. - Added
craft\helpers\Session::close()
. - Added
craft\services\Sites::getEditableSitesByGroupId()
. craft\helpers\Cp::chipHtml()
now supports ahyperlink
option.craft\helpers\Session
methods are now safe to call on console requests.craft\services\Elements::saveElement()
now saves dirty fields’ content even if$saveContent
isfalse
. (#15393)- Deprecated
craft\db\mysql\Schema::quoteDatabaseName()
. - Deprecated
craft\db\pgqsl\Schema::quoteDatabaseName()
. - Deprecated
craft\helpers\ElementHelper::rootElement()
.craft\base\ElementInterface::getRootOwner()
should be used instead. - Added
Craft.cp.announce()
, simplifying live region announcements for screen readers. (#15569) - Element action menu items returned by
craft\base\Element::safeActionMenuItems()
anddestructiveActionMenuItems()
can now include ashowInChips
key to explicitly opt into/out of being shown within element chips and cards. - Element select inputs now support
allowAdd
andallowRemove
settings. (#15639) - Control panel CSS selectors that take orientation into account now use logical properties. (#15522)
System
- MySQL mutex locks and PHP session names are now namespaced using the application ID combined with the environment name. (#15313)
- Added support for “City/Town” address locality labels. (#15585)
- Craft now sends
X-Robots-Tag: none
headers for preview requests. (#15612, #15586) x-craft-preview
andx-craft-live-preview
params are now hashed, andcraft\web\Request::getIsPreview()
will only returntrue
if the param validates. (#15605)- Generated URLs no longer include
x-craft-preview
orx-craft-live-preview
query string params based on the requested URL, if either were set to an unverified string. (#15605) - The PHP session is now closed before making API requests. (#15643)
- Updated Twig to 3.12. (#15568)
- Fixed a SQL error that occurred when running the
db/convert-charset
command if there were any custom database views or sequences. (#15598) - Fixed a bug where
craft\helpers\Db::supportsTimeZones()
could returnfalse
on databases that supported time zone conversion. (#15592) - Fixed a bug where
null
values within associative arrays were ignored when applying project config data. (#10512) - Fixed a bug where tabs within field layout designers weren’t always getting positioned correctly when wrapped. (#15590)
- Fixed a bug where editable table rows’ action buttons were misaligned for newly-created rows. (#15602)
- Fixed a bug where relational fields’ element query results weren’t limited to the selected relations if the
id
param was overridden. (#15570) - Fixed a bug where ordering element queries by textual custom fields would factor in character marks. (#15609)
- Fixed a bug where Money fields’ condition rules could display incorrect values based on a user’s formatting locale.
- Fixed an error that occurred when eager-loading user addresses. (#15629)
- Fixed styling issues with classic Live Preview. (#15640)
- Fixed a bug where fields were bleeding out of the content pane on smaller viewports.
- Fixed a bug where Link fields didn’t allow URLs with TLDs longer than six characters.
- Fixed a bug where hard-deleting an element wasn’t hard-deleting any nested elements as well. (#15645)
- Fixed a bug where it wasn’t possible to hard-delete nested elements from embedded element index views. (#15645)
- Fixed an error that occurred when calling the
users/delete-user-photo
orusers/upload-user-photo
from the front end. (#15487) - Fixed styling issues. (#15537)
4.12.0
Content Management
- Element conditions can now have a “Site Group” rule, if there are two or more site groups. (#15625)
Development
- Country field values and
craft\elements\Address::getCountry()
now return the country in the current application locale.
Extensibility
- Added
craft\base\ApplicationTrait::getEnvId()
. (#15313) - Added
craft\base\ElementInterface::getRootOwner()
. (#15534) - Added
craft\elements\conditions\SiteGroupConditionRule
. - Added
craft\helpers\Session::close()
. - Added
craft\services\Sites::getEditableSitesByGroupId()
. craft\helpers\Session
methods are now safe to call on console requests.- Deprecated
craft\helpers\ElementHelper::rootElement()
.craft\base\ElementInterface::getRootOwner()
should be used instead. - Deprecated
craft\db\mysql\Schema::quoteDatabaseName()
. - Deprecated
craft\db\pgqsl\Schema::quoteDatabaseName()
.
System
- MySQL mutex locks and PHP session names are now namespaced using the application ID combined with the environment name. (#15313)
- Craft now sends
X-Robots-Tag: none
headers for preview requests. (#15612, #15586) x-craft-preview
andx-craft-live-preview
params are now hashed, andcraft\web\Request::getIsPreview()
will only returntrue
if the param validates. (#15605)- Generated URLs no longer include
x-craft-preview
orx-craft-live-preview
query string params based on the requested URL, if either were set to an unverified string. (#15605) - The PHP session is now closed before making API requests. (#15643)
- Updated Twig to 3.12. (#15568)
- Fixed a SQL error that occurred when running the
db/convert-charset
command if there were any custom database views or sequences. (#15598) - Fixed a bug where
craft\helpers\Db::supportsTimeZones()
could returnfalse
on databases that supported time zone conversion. (#15592) - Fixed a bug where Assets fields were validating settings that weren’t applicable depending on the “Restrict assets to a single location” setting. (#15545)
- Fixed a bug where
null
values within associative arrays were ignored when applying project config data. (#10512)