Releases: craftcms/cms
Releases · craftcms/cms
5.3.0.1
5.3.0
Content Management
- Added the “Link” field type, which replaces “URL”, and can store URLs,
mailto
andtel
URIs, and entry/asset/category relations. (#15251, #15400) - Added the ability to move entries between sections that allow the same entry type, via a new “Move to…” bulk action. (#8153, #14541)
- Entry and category conditions now have a “Has Descendants” rule. (#15276)
- “Replace file” actions now display success notices on complete. (#15217)
- Double-clicking on folders within asset indexes and folder selection modals now navigates the index/modal into the folder. (#15238)
- When propagating an element to a new site, relation fields no longer copy relations for target elements that wouldn’t have been selectable from the propagated site based on the field’s “Related elements from a specific site?” and “Show the site menu” settings. (#15459)
- Matrix fields now show validation errors when nested entries don’t validate. (#15161, #15165)
- Matrix fields set to inline-editable blocks view now support selecting all blocks by pressing Command/Ctrl + A when a checkbox is focused. (#15326)
- Users’ Permissions, Preferences, and Password & Verification screens now have “Save and continue editing” actions, as well as support for Command/Ctrl + S keyboard shortcuts.
- User profile screens now have a “Create and set permissions” button for new users, if the current user has access to edit user permissions. (#15356)
- User permission screens now have a “Save and send activation email” button for inactive users, if the current user has the “Administrate users” permission. (#15356)
- Single section entries without a title are now labelled by their section’s name in the control panel.
- Double-clicking on element index rows no longer opens the element editor slideout, when inline editing is active. (#15441)
Accessibility
- Improved the accessibility of two-step verification setup. (#15229)
- The notification heading is no longer read to screen readers when no notifications are active. (#15294)
- The login modal that appears once a user’s session has ended now has a
lang
attribute, in case it differs from the user’s preferred language. - Improved the focus ring styling for dark buttons. (#15364)
- Single-select element selection modals now assign
role="radio"
to listed elements’ checkboxes. - Sortable editable table rows now have “Move up” and “Move down” disclosure menu actions. (#15385)
- Improved the Customize Sources modal for screen readers. (#15395)
- Improved the accessibility of icon fields. (#15479)
Administration
- Relation fields are now multi-instance. (#15400)
- Relation fields now have Translation Method settings with all the usual options, replacing “Manage relations on a per-site basis” settings. (#15400)
- Entry types are no longer required to have unique names. (#14774, #15438)
- Entry type selects within section and Matrix/CKEditor field settings now display entry types’ handles in addition to their names, to avoid ambiguity. (#15438)
- The Entry Types index page now displays entry type chips in place of plain text labels, so their custom colors are shown. (#15432)
- The Entry Types index table can now be sorted by Name and Handle.
- The Fields index table can now be sorted by Name, Handle, and Type.
- Icon fields now have an “Include Pro icons” setting, which determines whether Font Awesome Pro icon should be selectable. (#15242)
- New sites’ Base URL settings now default to an environment variable name based on the site name. (#15347)
- Craft now warns against using the
@web
alias for URL settings, regardless of whether it was explicitly defined. (#15347) - Entry types created from Matrix block types no longer show the Slug field by default, after upgrading to Craft 5. (#15379)
- Global sets listed within fields’ “Used by” lists now link to their settings page, rather than their edit page. (#15423)
- Added the
entry-types/merge
command. (#15444) - Added the
fields/auto-merge
command. (#15472)` - Added the
fields/merge
command. (#15454)
Development
- Added support for application-type based
general
anddb
configs (e.g.config/general.web.php
). (#15346) general
anddb
config files can now return a callable that modifies an existing config object. (#15346)- Added the
lazyGqlTypes
config setting. (#15429) - Added the
env
,env/set
, andenv/remove
commands. (#15431) - Color, Country, Email, Icon, Link, Plain Text, and Table fields’ element query params now support passing in an array with
value
andcaseInsensitive
keys. (#15404) - GraphQL mutations for saving drafts of nested entries are now named with
Field
after the Matrix/CKEditor field handle. (#15269) - The
allowedGraphqlOrigins
config setting is now deprecated.craft\filters\Cors
should be used instead. (#15397) - The
permissionsPolicyHeader
config settings is now deprecated.craft\filters\Headers
should be used instead. (#15397) {% cache %}
tags now cache any asset bundles registered within them.- Country field values are now set to
CommerceGuys\Addressing\Country\Country
objects. (#15455, #15463) - Auto-populated section and category group Template settings are now suffixed with
.twig
. x-craft-preview
/x-craft-live-preview
URL query string params are now added to generated URLs for Live Preview requests, socraft\web\Request::getIsPreview()
continues to returntrue
on subsequent pages loaded within the iframe. (#15447)
Extensibility
- Added
craft\base\ApplicationTrait::getDb2()
. (#15384) - Added
craft\base\ElementInterface::addInvalidNestedElementIds()
. - Added
craft\base\ElementInterface::getInvalidNestedElementIds()
. - Added
craft\base\Field::EVENT_AFTER_MERGE_FROM
. - Added
craft\base\Field::EVENT_AFTER_MERGE_INTO
. - Added
craft\base\Field::afterMergeFrom()
. (#15454) - Added
craft\base\Field::afterMergeInto()
. (#15454) - Added
craft\base\Field::canMergeFrom()
. (#15454) - Added
craft\base\Field::canMergeInto()
. (#15454) - Added
craft\base\FieldLayoutComponent::EVENT_DEFINE_SHOW_IN_FORM
. (#15260) - Added
craft\base\FieldLayoutElement::$dateAdded
. - Added
craft\base\FieldTrait::$dateDeleted
. - Added
craft\base\Grippable
. - Added
craft\base\MergeableFieldInterface
. (#15454) - Added
craft\base\RelationFieldInterface
. (#15400) - Added
craft\base\RelationFieldTrait
. (#15400) - Added
craft\config\GeneralConfig::addAlias()
. (#15346) - Added
craft\elements\Address::getCountry()
. (#15463) - Added
craft\elements\Asset::$sanitizeOnUpload
. (#15430) - Added
craft\elements\Entry::isEntryTypeCompatible()
. - Added
craft\elements\actions\MoveToSection
. - Added
craft\enums\CmsEdition::Enterprise
. - Added
craft\events\DefineShowFieldLayoutComponentInFormEvent
. (#15260) - Added
craft\events\MoveEntryEvent
. - Added
craft\fields\Link
. - Added
craft\fields\data\LinkData
. - Added
craft\fields\linktypes\Asset
. - Added
craft\fields\linktypes\BaseElementLinkType
. - Added
craft\fields\linktypes\BaseLinkType
. - Added
craft\fields\linktypes\BaseTextLinkType
. - Added
craft\fields\linktypes\Category
. - Added
craft\fields\linktypes\Email
. - Added `craft\fields\link...
4.11.0.2
- Fixed an error that could occur on console requests.
4.11.0.1
4.11.0
Content Management
- Entry and category conditions now have a “Has Descendants” rule. (#15276)
- “Replace file” actions now display success notices on complete. (#15217)
- Double-clicking on folders within asset indexes and folder selection modals now navigates the index/modal into the folder. (#15238)
- When propagating an element to a new site, relation fields no longer copy relations for target elements that wouldn’t have been selectable from the propagated site based on the field’s “Related elements from a specific site?” and “Show the site menu” settings. (#15459)
Administration
- Added the
env
,env/set
, andenv/remove
commands. (#15431) - New sites’ Base URL settings now default to an environment variable name based on the site name. (#15347)
- Craft now warns against using the
@web
alias for URL settings, regardless of whether it was explicitly defined. (#15347)
Development
- Added the
withCustomFields
element query param. - Added support for application-type based
general
anddb
configs (e.g.config/general.web.php
). (#15346) general
anddb
config files can now return a callable that modifies an existing config object. (#15346)- Added the
lazyGqlTypes
config setting. (#15429) - The
allowedGraphqlOrigins
config setting is now deprecated.craft\filters\Cors
should be used instead. (#15397) - The
permissionsPolicyHeader
config settings is now deprecated.craft\filters\Headers
should be used instead. (#15397) {% cache %}
tags now cache any asset bundles registered within them.- Country field values are now set to
CommerceGuys\Addressing\Country\Country
objects. (#15455, #15463) - Auto-populated section and category group Template settings are now suffixed with
.twig
. x-craft-preview
/x-craft-live-preview
URL query string params are now added to generated URLs for Live Preview requests, socraft\web\Request::getIsPreview()
continues to returntrue
on subsequent pages loaded within the iframe. (#15447)
Extensibility
- Added
craft\config\GeneralConfig::addAlias()
. (#15346) - Added
craft\elements\Address::getCountry()
. (#15463) - Added
craft\elements\Asset::$sanitizeOnUpload
. (#15430) - Added
craft\filters\Cors
. (#15397) - Added
craft\filters\Headers
. (#15397) - Added
craft\helpers\App::configure()
. - Added
craft\models\ImageTransform::$indexId
. - Added
craft\web\View::clearAssetBundleBuffer()
. - Added
craft\web\View::startAssetBundleBuffer()
. - Added
Craft.EnvVarGenerator
. craft\helpers\UrlHelper::cpUrl()
now returns URLs based on the primary site’s base URL (if it has one), for console requests if thebaseCpUrl
config setting isn’t set, and the@web
alias wasn’t explicitly defined. (#15374)craft\services\Config::setDotEnvVar()
now acceptsfalse
for itsvalue
argument, which removes the environment variable from the.env
file.- Deprecated
craft\web\assets\elementresizedetector\ElementResizeDetectorAsset
.
System
- Improved the performance of element indexes in structure view.
- The control panel now displays Ajax response-defined error messages when provided, rather than a generic “server error” message. (#15292)
- Craft no longer sets the
Permissions-Policy
header on control panel responses. (#15348) - Control panel
resize
events now use ResizeObserver. - Twig templates no longer attempt to preload singles for global variable names. (#15468)
- Craft no longer ensures that the
cpresources
folder is writable. - Front-end queue runner scripts are now injected before the
</body>
tag, rather than at the end of the response HTML. graphql/api
requests no longer update the schema’slastUsed
timestamp if it was already updated within the last minute. (#15464)- Updated Yii to 2.0.51.
- Updated yii2-debug to 2.1.25.
- Updated svg-sanitizer to 0.19.
- Updated Axios to 0.28.1. (#15448)
- Fixed a bug where error messages returned by the
users/send-password-reset-email
action weren’t accounting for theuseEmailAsUsername
config setting. (#15425) - Fixed a bug where
$element->isNewForSite
was alwaysfalse
from fields’normalizeValue()
methods when propagating an element to a new site. - Fixed a bug where
assets/generate-transforms
requests could generate the wrong transform, if another transform index with the same parameters existed. (#15402, #15477)
5.3.0-beta.2
- Double-clicking on element index rows no longer opens the element editor slideout, when inline editing is active. (#15441)
- When propagating an element to a new site, relation fields no longer copy relations for target elements that wouldn’t have been selectable from the propagated site based on the field’s “Related elements from a specific site?” and “Show the site menu” settings. (#15459)
- The Entry Types index table can now be sorted by Name and Handle.
- The Fields index table can now be sorted by Name, Handle, and Type.
- Country field values are now set to
CommerceGuys\Addressing\Country\Country
objects. (#15455, #15463) x-craft-preview
/x-craft-live-preview
URL query string params are now added to generated URLs for Live Preview requests, socraft\web\Request::getIsPreview()
continues to returntrue
on subsequent pages loaded within the iframe. (#15447)- Added the
fields/auto-merge
command. (#15472) - The
fields/merge
command now clears out Label, Handle, and Instructions overrides, if the persisting field’s values match the overridden values. - Twig templates no longer attempt to preload singles for global variable names. (#15468)
- Added
craft\elements\Address::getCountry()
. (#15463) graphql/api
requests no longer update the schema’slastUsed
timestamp if it was already updated within the last minute. (#15464)Craft.NestedElementManager
now triggers anafterInit
event after initialization. (#15470)- Fixed a styling bug with lightswitches within table row headers. (#15460)
- Fixed a SQL error that occurred when upgrading to Craft 5. (#15471)
5.2.10
- Fixed a bug where it wasn’t possible to render element partial templates for assets, categories, or tags. (#15426)
- Fixed an error that could occur when deleting a nested element, if its owner wasn’t saved for the same site. (#15290)
- Fixed a PHP error that could occur when running Codeception tests. (#15445)
- Fixed a bug where
deleteAsset
,deleteCategory
,deleteEntry
, anddeleteTag
GraphQL mutations were returningnull
rather thantrue
orfalse
. (#15465) - Fixed a styling issue. (#15473)
- Fixed a bug where
exists()
element queries weren’t working ifdistinct
,groupBy
,having,
orunion
params were set on them during query preparation. (#15001, #15223) - Fixed a bug where users’
username
properties weren’t getting set ifuseEmailAsUsername
was enabled. (#15475) - Fixed a bug where columns added to element queries via
EVENT_BEFORE_PREPARE
were getting overridden for all core element types except entries. (#15446) - Fixed a bug where the “Sign in as” user action would redirect to the control panel even if the user didn’t have permission to access the control panel. (#15449)
- Fixed a bug where the
utils/prune-orphaned-entries
command was deleting top-level entries. (#15458)
4.10.8
- Fixed a PHP error. (#14635)
- Fixed a PHP error that could occur when running Codeception tests. (#15445)
- Fixed a bug where
deleteAsset
,deleteCategory
,deleteEntry
, anddeleteTag
GraphQL mutations were returningnull
rather thantrue
orfalse
. (#15465) - Fixed a styling issue. (#15473)
- Fixed a bug where
exists()
element queries weren’t working ifdistinct
,groupBy
,having,
orunion
params were set on them during query preparation. (#15001, #15223) - Fixed a bug where users’
username
properties weren’t getting set ifuseEmailAsUsername
was enabled. (#15475)
5.3.0-beta.1
Content Management
- Added the “Link” field type, which replaces “URL”, and can store URLs,
mailto
andtel
URIs, and entry/asset/category relations. (#15251, #15400) - Added the ability to move entries between sections that allow the same entry type, via a new “Move to…” bulk action. (#8153, #14541)
- Entry and category conditions now have a “Has Descendants” rule. (#15276)
- “Replace file” actions now display success notices on complete. (#15217)
- Double-clicking on folders within asset indexes and folder selection modals now navigates the index/modal into the folder. (#15238)
- Matrix fields now show validation errors when nested entries don’t validate. (#15161, #15165)
- Matrix fields set to inline-editable blocks view now support selecting all blocks by pressing Command/Ctrl + A when a checkbox is focused. (#15326)
- Users’ Permissions, Preferences, and Password & Verification screens now have “Save and continue editing” actions, as well as support for Command/Ctrl + S keyboard shortcuts.
- User profile screens now have a “Create and set permissions” button for new users, if the current user has access to edit user permissions. (#15356)
- User permission screens now have a “Save and send activation email” button for inactive users, if the current user has the “Administrate users” permission. (#15356)
- Single section entries without a title are now labelled by their section’s name in the control panel.
Accessibility
- Improved the accessibility of two-step verification setup. (#15229)
- The notification heading is no longer read to screen readers when no notifications are active. (#15294)
- The login modal that appears once a user’s session has ended now has a
lang
attribute, in case it differs from the user’s preferred language. - Improved the focus ring styling for dark buttons. (#15364)
- Single-select element selection modals now assign
role="radio"
to listed elements’ checkboxes. - Sortable editable table rows now have “Move up” and “Move down” disclosure menu actions. (#15385)
- Improved the Customize Sources modal for screen readers. (#15395)
Administration
- Relation fields are now multi-instance. (#15400)
- Relation fields now have Translation Method settings with all the usual options, replacing “Manage relations on a per-site basis” settings. (#15400)
- Entry types are no longer required to have unique names. (#14774, #15438)
- Entry type selects within section and Matrix/CKEditor field settings now display entry types’ handles in addition to their names, to avoid ambiguity. (#15438)
- The Entry Types index page now displays entry type chips in place of plain text labels, so their custom colors are shown. (#15432)
- Icon fields now have an “Include Pro icons” setting, which determines whether Font Awesome Pro icon should be selectable. (#15242)
- New sites’ Base URL settings now default to an environment variable name based on the site name. (#15347)
- Craft now warns against using the
@web
alias for URL settings, regardless of whether it was explicitly defined. (#15347) - Entry types created from Matrix block types no longer show the Slug field by default, after upgrading to Craft 5. (#15379)
- Global sets listed within fields’ “Used by” lists now link to their settings page, rather than their edit page. (#15423)
- Added the
entry-types/merge
command. (#15444) - Added the
fields/merge
command. (#15454)
Development
- Added support for application-type based
general
anddb
configs (e.g.config/general.web.php
). (#15346) general
anddb
config files can now return a callable that modifies an existing config object. (#15346)- Added the
lazyGqlTypes
config setting. (#15429) - Added the
env
,env/set
, andenv/remove
commands. (#15431) - Color, Country, Email, Icon, Link, Plain Text, and Table fields’ element query params now support passing in an array with
value
andcaseInsensitive
keys. (#15404) - GraphQL mutations for saving drafts of nested entries are now named with
Field
after the Matrix/CKEditor field handle. (#15269) - The
allowedGraphqlOrigins
config setting is now deprecated.craft\filters\Cors
should be used instead. (#15397) - The
permissionsPolicyHeader
config settings is now deprecated.craft\filters\Headers
should be used instead. (#15397) {% cache %}
tags now cache any asset bundles registered within them.- Auto-populated section and category group Template settings are now suffixed with
.twig
.
Extensibility
- Added
craft\base\ApplicationTrait::getDb2()
. (#15384) - Added
craft\base\ElementInterface::addInvalidNestedElementIds()
. - Added
craft\base\ElementInterface::getInvalidNestedElementIds()
. - Added
craft\base\Field::EVENT_AFTER_MERGE_FROM
. - Added
craft\base\Field::EVENT_AFTER_MERGE_INTO
. - Added
craft\base\Field::afterMergeFrom()
. (#15454) - Added
craft\base\Field::afterMergeInto()
. (#15454) - Added
craft\base\Field::canMergeFrom()
. (#15454) - Added
craft\base\Field::canMergeInto()
. (#15454) - Added
craft\base\FieldLayoutComponent::EVENT_DEFINE_SHOW_IN_FORM
. (#15260) - Added
craft\base\FieldLayoutElement::$dateAdded
. - Added
craft\base\FieldTrait::$dateDeleted
. - Added
craft\base\Grippable
. - Added
craft\base\MergeableFieldInterface
. (#15454) - Added
craft\base\RelationFieldInterface
. (#15400) - Added
craft\base\RelationFieldTrait
. (#15400) - Added
craft\config\GeneralConfig::addAlias()
. (#15346) - Added
craft\elements\Asset::$sanitizeOnUpload
. (#15430) - Added
craft\elements\Entry::isEntryTypeCompatible()
. - Added
craft\elements\actions\MoveToSection
. - Added
craft\events\DefineShowFieldLayoutComponentInFormEvent
. (#15260) - Added
craft\events\MoveEntryEvent
. - Added
craft\fields\Link
. - Added
craft\fields\data\LinkData
. - Added
craft\fields\linktypes\Asset
. - Added
craft\fields\linktypes\BaseElementLinkType
. - Added
craft\fields\linktypes\BaseLinkType
. - Added
craft\fields\linktypes\BaseTextLinkType
. - Added
craft\fields\linktypes\Category
. - Added
craft\fields\linktypes\Email
. - Added
craft\fields\linktypes\Phone
. - Added
craft\fields\linktypes\Url
. - Added
craft\filters\Cors
. (#15397) - Added
craft\filters\Headers
. (#15397) - Added
craft\helpers\App::configure()
. - Added
craft\models\FieldLayout::getAllElements()
. - Added
craft\services\Elements::ensureBulkOp()
. - Added
craft\services\Entries::EVENT_AFTER_MOVE_TO_SECTION
. - Added
craft\services\Entries::EVENT_BEFORE_MOVE_TO_SECTION
. - Added
craft\services\Entries::moveEntryToSection()
. - Added
craft\services\Fields::areFieldTypesCompatible()
. - Added
craft\web\View::clearAssetBundleBuffer()
. - Added
craft\web\View::startAssetBundleBuffer()
. craft\helpers\DateTimeHelper::toIso8601()
now has a$setToUtc
argument.craft\helpers\UrlHelper::cpUrl()
now returns URLs based on the primary site’s base URL (if it has one), for console requests if thebaseCpUrl
config setting isn’t set, and the@web
alias wasn’t explicitly defined. (#15374)craft\services\Config::setDotEnvVar()
now acceptsfalse
for itsvalue
argument, which removes the environment variable from the.env
file.- Deprecated
craft\fields\BaseRelationField::$localizeRelations
. - Deprecated
craft\fields\Url
, which is now an alias forcraft\fields\Link
. - Deprecated
craft\services\Relations
. - Deprecated `craft\web\assets\elementresizedetector\ElementResizeDete...
5.2.9
- Added
craft\helpers\Money::normalizeString()
. - Updated web-auth/webauthn-lib to 4.9. (#15377)
- Fixed a PHP error that occurred when making a field layout component conditional on a Time or CKEditor field. (craftcms/ckeditor#267)
- Fixed an error that occurred when editing a user, if the current user didn’t have permission to edit the primary site. (#15408)
- Fixed a bug where editable tables with single-select checkbox columns weren’t deselecting the selected option automatically. (#15415)
- Fixed a styling issue. (#15422)
- Fixed a bug where category groups’ Template settings weren’t being auto-populated for new groups.
- Fixed a bug where content changes created via
craft\base\Element::EVENT_AFTER_SAVE
weren’t getting saved, when an element was getting fully saved from an unsaved draft state. (#15369) - Fixed a bug where element exports were only including the first 100 results when no elements were selected. (#15389)
- Fixed a stying bug. (#15405)
- Fixed a bug where custom element sources’ Sites settings were getting cleared out. (#15406)
- Fixed an error that occurred if a custom element source wasn’t enabled for any sites. (#15406)
- Fixed a bug where custom sources that weren’t enabled for any sites would be shown for all sites.
- Fixed a SQL error that could occur when upgrading to Craft 5. (#15407)
- Fixed a bug where user edit forms included a Username field if had been saved to the user field layout before
useEmailAsUsername
was enabled. (#15401) - Fixed a bug where Assets field buttons weren’t wrapping for narrow containers. (#15419)
- Fixed a PHP error that could occur after converting a custom field to a Money field. (#15413)
- Fixed a bug where temp assets had a “Show in folder” action.
- Fixed a bug where edit pages didn’t have headings if the element didn’t have a title.
- Fixed a bug where tooltips for truncated element chips in the breadcrumbs were also getting truncated.
- Fixed a bug where it wasn’t possible to sort elements by custom field values in descending order. (#15434)
- Fixed a PHP error that could occur when rendering an element partial template. (#15426)
- Fixed a bug where scalar/single-column queries weren’t returning any results if they originated from a relation field’s value, and the field’s “Maintain hierarchy” setting was enabled. (#15414)