Skip to content

Releases: craftcms/cms

4.10.8

05 Aug 18:34
4.10.8
1bf44ce
Compare
Choose a tag to compare
  • Fixed a PHP error. (#14635)
  • Fixed a PHP error that could occur when running Codeception tests. (#15445)
  • Fixed a bug where deleteAsset, deleteCategory, deleteEntry, and deleteTag GraphQL mutations were returning null rather than true or false. (#15465)
  • Fixed a styling issue. (#15473)
  • Fixed a bug where exists() element queries weren’t working if distinct, groupBy, having, or union params were set on them during query preparation. (#15001, #15223)
  • Fixed a bug where users’ username properties weren’t getting set if useEmailAsUsername was enabled. (#15475)

5.3.0-beta.1

31 Jul 23:36
5.3.0-beta.1
4c13238
Compare
Choose a tag to compare
5.3.0-beta.1 Pre-release
Pre-release

Content Management

  • Added the “Link” field type, which replaces “URL”, and can store URLs, mailto and tel 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 and db configs (e.g. config/general.web.php). (#15346)
  • general and db 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, and env/remove commands. (#15431)
  • Color, Country, Email, Icon, Link, Plain Text, and Table fields’ element query params now support passing in an array with value and caseInsensitive 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 the baseCpUrl config setting isn’t set, and the @web alias wasn’t explicitly defined. (#15374)
  • craft\services\Config::setDotEnvVar() now accepts false for its value argument, which removes the environment variable from the .env file.
  • Deprecated craft\fields\BaseRelationField::$localizeRelations.
  • Deprecated craft\fields\Url, which is now an alias for craft\fields\Link.
  • Deprecated craft\services\Relations.
  • Deprecated `craft\web\assets\elementresizedetector\ElementResizeDete...
Read more

5.2.9

29 Jul 21:41
5.2.9
af8fb1a
Compare
Choose a tag to compare
  • 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)

4.10.7

29 Jul 21:39
4.10.7
4b05a2f
Compare
Choose a tag to compare
  • Fixed a bug where element index result counts weren’t getting updated when the element list was refreshed but pagination was preserved. (#15367)
  • 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 via a slideout, 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.

5.2.8

17 Jul 22:38
5.2.8
c0a690a
Compare
Choose a tag to compare
  • Fixed a bug where element index result counts weren’t getting updated when the element list was refreshed but pagination was preserved. (#15367)
  • Fixed a SQL error that could occur when sorting by custom fields on MariaDB.
  • Fixed a bug where embedded element indexes could include table columns for all custom fields associated with the element type. (#15373)

5.2.7

16 Jul 23:31
5.2.7
55583e6
Compare
Choose a tag to compare
  • craft\helpers\UrlHelper::actionUrl() now returns URLs based on the primary site’s base URL (if it has one), for console requests if the @web alias wasn’t explicitly defined.
  • An exception is now thrown when attempting to save an entry that’s missing sectionId or fieldId + ownerId values. (#15345)
  • Fixed a bug where it wasn’t possible to expand/collapse descendants of disabled table rows within element select modals. (#15337)
  • Fixed a bug where PhpStorm autocomplete wasn’t working when chaining custom field methods defined by CustomFieldBehavior. (#15336)
  • Fixed a bug where new nested entries created on newly-created elements weren’t getting duplicated to all other sites for the owner element. (#15321)
  • Fixed a bug where focus could jump unexpectedly when a slideout was opened. (#15314)
  • Fixed a bug where addresses were getting truncated within address cards. (#15338)
  • Fixed a bug where TOTP setup keys included an extra space at the end. (#15349)
  • Fixed a bug where input focus could automatically jump to slideout sidebars shortly after they were shown. (#15314)
  • Fixed an error that occurred if the SMTP mailer transport type was used, and the Hostname value was blank. (#15342)
  • Fixed a bug where database DML changes weren’t getting rolled back after tests were run if the Codeception config had transaction: true. (#7615)
  • Fixed an error that could occur when saving recursively-nested elements. (#15362)
  • Fixed a styling issue. (#15315)
  • Fixed a bug where field status indicators within Matrix fields weren’t positioned correctly.
  • Fixed a bug where Matrix changes could be lost if the autosaveDrafts config setting was set to false. (#15353)

4.10.6

16 Jul 23:23
4.10.6
95eb435
Compare
Choose a tag to compare
  • craft\helpers\UrlHelper::actionUrl() now returns URLs based on the primary site’s base URL (if it has one), for console requests if the @web alias wasn’t explicitly defined.
  • Fixed a bug where it wasn’t possible to expand/collapse descendants of disabled table rows within element select modals. (#15337)
  • Fixed a bug where PhpStorm autocomplete wasn’t working when chaining custom field methods defined by CustomFieldBehavior. (#15336)
  • Fixed a bug where new Matrix blocks created on newly-created elements weren’t getting duplicated to all other sites for the owner element. (#15321)
  • Fixed a bug where focus could jump unexpectedly when a slideout was opened. (#15314)

5.2.6

11 Jul 15:45
5.2.6
6540a06
Compare
Choose a tag to compare

Note

Craft now sends no-cache headers for requests that generate/retrieve a CSRF token. If your Craft install is behind a static caching service like Cloudflare, enable the asyncCsrfInputs config setting to avoid a significant cache hit reduction. (#15293, #15281)

  • Craft now sends no-cache headers for any request that calls craft\web\Request::getCsrfToken(). (#15293, #15281)
  • Fixed a bug where structures’ Max Levels settings weren’t being enforced when dragging elements with collapsed descendants. (#15310)
  • Fixed a bug where craft\helpers\ElementHelper::isDraft(), isRevision(), and isDraftOrRevision() weren’t returning true if a nested draft/revision element was passed in, but the root element was canonical. (#15303)
  • Fixed a bug where focus could be trapped within slideout sidebars. (#15314)
  • Fixed a bug where element slideout sidebars were included in the focus order when hidden. (#15332)
  • Fixed a bug where field status indicators weren’t visible on mobile viewports.
  • Fixed a bug where sorting elements by custom field within element indexes wasn’t always working. (#15297)
  • Fixed a bug where asset bulk element actions were available when folders were selected. (#15301)
  • Fixed a bug where element thumbnails weren’t always getting loaded. (#15299)
  • Fixed an error that occurred when attempting to save a user via the Command/Ctrl + S keyboard shortcut within a slideout. (#15307)
  • Fixed a bug where “Delete heading” buttons within Customize Sources modals were getting text cursors. (#15317)
  • Fixed a bug where disclosure hint text wasn’t legible on hover. (#15316)
  • Fixed an error that occurred if the System Name was set to a nonexistent environment variable.
  • Fixed a bug where custom table columns within element indexes weren’t getting updated automatically when table rows were refreshed.
  • Fixed a bug where nested element indexes weren’t passing the ownerId param, when refreshing elements’ table rows.
  • Fixed a bug where it wasn’t possible to tell if an element had been edited, if it was displayed within a nested element index table without a header column.
  • Fixed an error that could occur if a field was removed from a field layout, if another field had been conditional based on it. (#15328)

4.10.5

11 Jul 15:43
4.10.5
a8cecba
Compare
Choose a tag to compare

Note

Craft now sends no-cache headers for requests that generate/retrieve a CSRF token. If your Craft install is behind a static caching service like Cloudflare, enable the asyncCsrfInputs config setting to avoid a significant cache hit reduction. (#15293, #15281)

  • Craft now sends no-cache headers for any request that calls craft\web\Request::getCsrfToken(). (#15293, #15281)
  • Fixed a bug where structures’ Max Levels settings weren’t being enforced when dragging elements with collapsed descendants. (#15310)
  • Fixed a bug where craft\helpers\ElementHelper::isDraft(), isRevision(), and isDraftOrRevision() weren’t returning true if a nested draft/revision element was passed in, but the root element was canonical. (#15303)
  • Fixed a bug where focus could be trapped within slideout sidebars. (#15314)

5.2.5

02 Jul 16:30
5.2.5
00bf0ea
Compare
Choose a tag to compare
  • Craft now sends no-cache headers for any request that generates a CSRF token. (#15281, verbb/formie#1963)
  • Fixed a JavaScript error that occurred when creating a new custom element source, preventing the Default Sort and Default Table Columns fields from showing up.
  • Fixed a bug where the control panel was getting asynchronous CSRF inputs if the asyncCsrfInputs config setting was enabled.
  • Fixed a bug where Craft’s Twig implementation wasn’t respecting sandboxing rules for object properties. (#15278)
  • Fixed a bug where assets that the user wasn’t permitted to view could have a “Show in folder” action.
  • Fixed focus management with element select inputs after elements were added or removed.
  • Fixed a bug where it wasn’t possible to set title values on nested Matrix entries, when saving section entries via GraphQL. (#15270)
  • Fixed a SQL error that could occur if a DECIMAL() expression was passed into a query’s select() or groupBy() methods. (#15271)
  • Fixed a bug where the “Delete (with descendants)” element action wasn’t deleting descendants. (#15273)
  • Fixed an error that could occur when upgrading to Craft 5 if the database user didn’t have permission to disable foreign key constraints. (#15262)