Content Management
- It’s now possible to preview revisions. (#14521)
- Element conditions can now include condition rules for Time fields. (#14616)
- Sort options are now sorted alphabetically within element indexes, and custom fields’ options are now listed in a “Fields” group. (#14725)
- Unselected table column options are now sorted alphabetically within element indexes.
Administration
- Improved the behavior of the URI input within Edit Route modals. (#14884)
- The “Upgrade Craft CMS” page in the Plugin Store no longer lists unsupported editions.
- Added the
asyncCsrfInputs
config setting. (#14625) - Added the
backupCommandFormat
config setting. (#14897) - The
backupCommand
config setting can now be set to a closure, which will be passed amikehaertl\shellcommand\Command
object. (#14897) resave
commands now support an--if-invalid
option. (#14731)
Development
- Added the
safeMode
config setting. (#14734) - Added the
language
element query param, which filters the resulting elements based on their sites’ languages. (#14631) - GraphQL responses now include full exception details, when Dev Mode is enabled or an admin is signed in with the “Show full exception views when Dev Mode is disabled” preference enabled. (#14527)
craft\helpers\Html::csrfInput()
and thecsrfInput
Twig function now support passing anasync
key to theoptions
array, overriding the default behavior per theasyncCsrfInputs
config setting. (#14625)
Extensibility
- Added
craft\services\ProjectConfig::getAppliedChanges()
. (#14851) - Added
craft\services\Sites::getSitesByLanguage()
. - Added
craft\web\ErrorHandler::exceptionAsArray()
. - Added
craft\web\ErrorHandler::showExceptionDetails()
. - Added
craft\web\Request::getBearerToken()
. (#14784) craft\base\NameTrait::prepareNamesForSave()
no longer updates the name properties iffullName
,firstName
, andlastName
are already set. (#14665)
System
- Batched queue jobs now set their progress based on the total progress across all batches, rather than just the current batch. (#14817)
- Craft now calls
setlocale()
based on the target language, so thatSORT_LOCALE_STRING
behaves as expected. (#14509, #14513) - Improved the performance of scalar element queries like
count()
. - Fixed a bug where
craft\elements\db\ElementQuery::count()
could return the wrong number if the query had a cached result, withoffset
orlimit
params. - Console requests no longer filter out info logs. (#14280, #14434)
- Fixed a styling issue with Categories and Entries fields when “Maintain Hierarchy” was enabled.
- Fixed a bug where Delete actions weren’t working in admin tables. (craftcms/commerce#3444)