a:2:{i:0;a:2:{s:3:"cms";a:4:{s:6:"status";s:10:"breakpoint";s:8:"releases";a:68:{i:0;a:4:{s:7:"version";s:8:"3.7.27.2";s:8:"critical";b:0;s:5:"notes";s:130:"
Fixed
- Fixed an error that could occur when updating to Craft 3.7.28/Yii 2.0.44 from the control panel.
";s:4:"date";s:19:"2022-01-06T00:00:00";}i:1;a:4:{s:7:"version";s:8:"3.7.27.1";s:8:"critical";b:0;s:5:"notes";s:162:"Fixed
- Fixed a PHP error that would occur when creating a new user. (#10308)
";s:4:"date";s:19:"2022-01-04T00:00:00";}i:2;a:4:{s:7:"version";s:6:"3.7.27";s:8:"critical";b:0;s:5:"notes";s:5073:"Added
- Added the
setSchemaOnConnect
database connection setting. (#10273)
- Added
craft\errors\InvalidHtmlTagException
.
- Added
craft\helpers\Html::encodeInvalidTags()
.
- Added
craft\models\FieldLayout::getCustomFieldElements()
.
- Added
craft\services\Fields::getLayoutsByIds()
.
- Added
craft\web\twig\variables\Image::getContents()
, getDataUrl()
, getMimeType()
, and getPath()
. (#10268)
Changed
- Improved the performance of the control panel, for installs with a large number of entry types.
- A warning is now logged when a password-reset email could not be sent, if
preventUserEnumeration
is enabled.
- The
install/check
, install/craft
, and setup/db-creds
commands now explicitly check if Craft is installed in the default schema on Postgres.
- The
setup/db-creds
command now uses existing environment variable values for its default prompt values, if available.
- The
setup/db-creds
command no longer prompts for the database schema on Postgres, unless setSchemaOnConnect
is enabled. Instead it will determine the appropriate schema to use based on SHOW search_path
. (#10273)
- The web-based installation wizard no longer shows a field for the database schema on Postgres. (#10273)
- Dashboard widgets’
data-colspan
attributes are now updated when their colspan changes. (#10286)
craft\base\ApplicationTrait::getIsInstalled()
will now explicitly check if Craft is installed in the default schema on Postgres, when true
is passed.
craft\helpers\Html::parseTag()
now throws an InvalidHtmlTagException
exception when an invalid tag is encountered. (Catching InvalidArgumentException
s will still work.)
craft\services\Routes::getProjectConfigRoutes()
now returns a numerically-indexed array of URL rule arrays, with pattern
keys that define the URI patterns.
craft\services\Users::getUserPreferences()
and getUserPreference()
no longer accept null
passed to the first argument.
Deprecated
- Deprecated
craft\elements\User::mergePreferences()
.
Fixed
- Fixed a bug where the details pane could jump down when scrolling on desktop browsers that are less than 974 pixels wide.
- Fixed a bug where soft-deleted Matrix blocks nested within Neo blocks could become duplicated when restored from a prior revision. (#10256)
- Fixed a bug where Color fields’ HSL values could be incorrect. (#10261)
- Fixed a bug where
<video>
, <embed>
, and <iframe>
tags within field instructions could be wider than the field’s container. (#10264)
- Fixed an error that occurred if the first control panel-defined route had a numeric URI pattern. (#10251)
- Fixed an error that could occur if a section didn’t have any entry types. (#10272)
- Fixed a bug where
craft\services\Config::setDotEnvVar()
wasn’t escaping backslashes when modifying the value of an existing environment variable. (#10274)
- Fixed a bug where Live Preview could fail to load if opened while changes were being autosaved. (#10280)
- Fixed a bug where the control panel layout could break if any field instructions/tips/warnings included an HTML tag that wasn’t closed properly. Such tags are now encoded so they appear as plain text. (#10290)
- Fixed a bug where disabled plugins could cause duplicate database queries.
- Fixed a bug where multiple calls to
craft\services\Users::getUserPreferences()
could cause duplicate database queries.
Security
- Fixed a bug where it was possible to identify valid usernames/user emails via password-reset forms when
preventUserEnumeration
was enabled. (#6000)
";s:4:"date";s:19:"2022-01-04T00:00:00";}i:3;a:4:{s:7:"version";s:6:"3.7.26";s:8:"critical";b:0;s:5:"notes";s:3051:"Added
- Added
avif
as a web-safe image format. (#10222)
- Added
avif
to the allowed asset file extensions.
- Added
craft\fields\data\ColorData::getHsl()
, getH()
, getHue()
, getL()
, getLightness()
, getS()
, and getSaturation()
. (#10235)
- Added
craft\services\Images::getSupportsAvif()
.
Changed
- Reverted a 3.7.24 change where URL fields started encoding query string params. (#10193)
- User verification and password-reset URLs for users with control panel access are no longer based on the front-end URL, when generated within the control panel. (#10224)
- Element queries’
status
arguments can now begin with not
to return all elements except those with a given status or statuses. (#9541)
- The
previewTokenDuration
config setting now defaults to the same value as defaultTokenDuration
. (#2394)
- Craft no longer requires the Portable UTF-8 library directly. (#10252)
Fixed
- Fixed a bug where Neo blocks could lose their content if Preparse resaved a provisional draft as it was being created.
- Fixed a bug where
craft\services\Fields::getLayoutByType()
could return an outdated field layout, if it had been updated in the same request. (#10237)
- Fixed a SQL error that could occur when querying for users via GraphQL.
- Fixed an error that could occur when loading elements, if any custom fields were selected in the query before the element’s field layout ID. (#10205)
- Fixed an error that could occur when searching for elements in the control panel. (#10238)
- Fixed a bug where
craft\db\ActiveRecord
was JSON-encoding database expression objects. (#10239)
- Fixed a bug where entry editor slideouts weren’t warning of losing unsaved changes after the entry type was changed. (#10243)
- Fixed a bug where Matrix fields weren’t getting reverted properly when reverting an entry’s content to a prior revision, if they were nested within a Neo or Super Table field. (#10253)
";s:4:"date";s:19:"2021-12-15T00:00:00";}i:4;a:4:{s:7:"version";s:8:"3.7.25.1";s:8:"critical";b:0;s:5:"notes";s:345:"Added
- Added
craft\helpers\ElementHelper::rootSource()
.
Fixed
- Fixed an error that could occur on element indexes.
- Fixed a bug where it wasn’t possible to sort nested element sources by custom fields. (#10226)
";s:4:"date";s:19:"2021-12-07T00:00:00";}i:5;a:4:{s:7:"version";s:6:"3.7.25";s:8:"critical";b:0;s:5:"notes";s:1786:"Changed
- Improved the accessibility of the “Default Asset Location” and “Asset Location” Assets field settings.
- Element indexes now keep track of recent sort selections and factor them into the new element order. (#10203)
- The “View” button and “View” menu options on Edit Entry pages now use
<a>
tags. (#10220)
- A
describedBy
variable is now available for input
blocks rendered when embedding the _includes/forms/field
control panel template.
craft\services\Tokens::createToken()
and createPreviewToken()
now have $token
arguments, which accept pre-generated tokens.
Fixed
- Fixed an error that could occur if the
field()
macro in the _includes/forms
control panel template was called withoun an input
argument. (#10208)
- Fixed a bug where the
migrate/fresh
command was erasing all migration history and attempting to reapply migrations. (#10209)
- Fixed a JavaScript error that occurred when pressing Return on an autosuggest input when no option was selected.
- Fixed a bug where Edit Category pages could have two sets of “Preview” and “View” buttons. (#10215)
- Fixed a bug where boolean menus weren’t showing the “No” option as selected when the value was
false
.
";s:4:"date";s:19:"2021-12-07T00:00:00";}i:6;a:4:{s:7:"version";s:6:"3.7.24";s:8:"critical";b:0;s:5:"notes";s:5170:"Added
- Added the
parseBooleanEnv()
Twig function.
- Added
craft\base\FieldTrait::$describedBy
, which custom fields should reference when setting their input’s aria-describedby
attribute. (#10183)
- Added
craft\behaviors\EnvAttributeParserBehavior::getUnparsedAttribute()
.
- Added
craft\fieldlayoutelements\BaseField::errorsId()
.
- Added
craft\fieldlayoutelements\BaseField::instructions()
.
- Added
craft\fieldlayoutelements\BaseField::instructionsId()
.
- Added
craft\fieldlayoutelements\BaseField::tipId()
.
- Added
craft\fieldlayoutelements\BaseField::warningId()
.
- Added
craft\helpers\UrlHelper::encodeParams()
.
- Added
craft\i18n\Formatter::willBeMisrepresented()
.
- Added
craft\services\Config::setBooleanDotEnvVar()
.
- Added
craft\services\Security::isSensitive()
.
- Added
craft\web\twig\variables\Cp::field()
.
Changed
- Improved the color contrast of UI controls throughout the control panel. (#10169)
- Improved the accessibility of element select fields for screen readers. (#10169)
- Improved built-in input descriptions for screen readers. (#10183)
- URL fields now allow query strings to be appended to email addresses (e.g.
hello@example.com?subject=Check+this+out…
). (#10193)
{% deprecated %}
tags now log proper Craft deprecation warnings rather than triggering an E_USER_DEPRECATED
error. (#10181)
- Editable tables’
template
columns now support suggestEnvVars
and suggestAliases
settings on the column definition. (#10143)
- Editable tables now support an
autosuggest
column type, which support suggestEnvVars
and suggestAliases
settings on the column definition. (#10143)
- The
cp.assets.edit.meta
, cp.categories.edit.meta
, and cp.entries.edit.meta
template hooks are now located after the native meta fields, rather than before. (#10172)
craft\helpers\Cp::fieldHtml()
now supports headingPrefix
and headingSuffix
config keys.
Fixed
- Fixed an error that could occur when PHP’s
set_time_limit()
function was disabled. (#10152)
- Fixed a bug where the
_includes/forms/autosuggest
template wasn’t respecting suggestEnvVars
if suggestions
was already defined.
- Fixed a bug where Table fields could have an incorrect GraphQL input type definition. (#10173)
- Fixed a bug where structure element query params weren’t working if the passed-in element was missing its structure data. (#10122)
- Fixed a bug where
craft\base\Element::getChildren()
and getDescendants()
could return results for elements without an ID.
- Fixed an error that occurred when opening the Timeline view in the Debug Toolbar. (#10176)
- Fixed a bug where Number fields’ Default Value, Min Value, and Max Value settings could show values formatted in the wrong locale, leading to an error on save. (#10184)
- Fixed an error that could occur when creating a Table field. (#10186)
- Fixed a bug where Matrix blocks within drafts could lose track of their canonical blocks when they were updated upstream, resulting in duplicated blocks. (#10130)
- Fixed a bug where disabled site handles referenced in
config/routes.php
were being treated as URL patterns. (#10197)
Security
- Fixed a bug where sensitive-sounding environment variables’ values could be included in validation errors.
- The “Sendmail Command” email setting no longer allows arbitrary values. Now it can only be set to a known
sendmail
command, an environment variable, or its current value.
";s:4:"date";s:19:"2021-12-02T00:00:00";}i:7;a:4:{s:7:"version";s:6:"3.7.23";s:8:"critical";b:0;s:5:"notes";s:1929:"Added
- Added
craft\console\Controller::table()
.
- Added
craft\helpers\Console::table()
.
Changed
- Reduced the amount of time it took for the GraphiQL IDE to initialize.
- The
plugin/install
, plugin/uninstall
, plugin/enable
, and plugin/disable
commands’ handle
arguments are no longer required for interactive shells. When not passed, a plugin handle can be chosen from a list of applicable plugins. (#10158)
- Select fields that include environment variable options now show a tip about that when an environment variable isn’t already selected.
- Hyperlinks within tips are now always underlined.
- Updated Garnish to 0.1.48.
Fixed
- Fixed a bug where GraphiQL Explorer wasn’t working. (#10153)
- Fixed a bug where the last control panel breadcrumb could be collapsed under a “More…” menu when there was enough room to display it.
- Fixed a bug where the “Create a new child category” action on the Categories index page resulted in a 404. (#10148)
- Fixed a bug where it wasn’t possible to save an image transform when the Image Format setting was set to “Auto”. (#10150)
- Fixed an error that could occur if any asset bundles’
js
or css
values were set to arrays. (#10154)
- Fixed a bug where structure data wasn’t always present when duplicating a multi-site elements. (#10165)
";s:4:"date";s:19:"2021-11-26T00:00:00";}i:8;a:4:{s:7:"version";s:6:"3.7.22";s:8:"critical";b:0;s:5:"notes";s:2362:"Added
- Added the
booleanMenu
, booleanMenuField
, selectize
, and selectizeField
macros to the _includes/forms.html
control panel template. (#8866)
- Added
Craft::parseBooleanEnv()
.
- Added
craft\base\ApplicationTrait::getWebpack()
.
- Added
craft\services\Webpack
.
- Added
craft\web\twig\variables\Cp::getBooleanEnvOptions()
.
- Added
craft\web\twig\variables\Cp::getEnvOptions()
.
Changed
- The “System Status” and “Time Zone” general settings can now be set to environment variables. (#9855)
- The “Use authentication” and “Encryption Method” SMTP mailer type settings can now be set to an environment variable. (#8989)
- The
timeZone
and timeZoneField
control panel form macros now support an includeEnvVars
setting.
Fixed
- Fixed a bug where the
entry-revisions/save-draft
action wasn’t respecting the provisional
param when creating a new entry and draft. (#10105)
- Fixed an error that occurred when saving an element, if any custom field handles conflicted with magic properties on element queries. (#10099)
- Fixed a bug where relational field thumbnails weren’t always loading for fields that weren’t on the initial tab.
- Fixed a bug where previewing disabled Structure section entries or categories would return a 404 response. (#10121)
- Fixed a bug where ancestor/sibling/descendant queries were yielding no results when previewing a draft or revision. (#10122)
- Fixed a bug where Matrix fields weren’t getting reverted properly when reverting an entry’s content to a prior revision. (#10106)
";s:4:"date";s:19:"2021-11-23T00:00:00";}i:9;a:4:{s:7:"version";s:6:"3.7.21";s:8:"critical";b:0;s:5:"notes";s:2920:"Added
- Added
craft\behaviors\CustomFieldBehavior::$canSetProperties
.
- Added
craft\services\Fields::getFieldVersion()
.
- Added
craft\validators\DateCompareValidator
.
Changed
- Improved the accessibility of several field types. (#10085)
- Entries now validate that their post date comes before their expiry date, if they have one. (#10074)
- Entry post dates now default to the day before their expiry date, if they have one. (#10074)
- Video assets’ dimensions are no longer suppressed, if they were set by a plugin or module. (#9038)
- The GraphiQL IDE no longer updates the URL automatically as the query is modified. The query is now deep-linkable via a new “Share query” button. (#10064)
canSetProperties
and hasMethods
are now reserved field handles.
- Improved the performance of entry queries. (#10095)
craft\base\Element::__set()
now detects whether a custom field value is being set, and if so, passes the value through setFieldValue()
. (#7726)
- Updated GraphiQL to 1.4.7.
Fixed
- Fixed a bug where
craft\base\FieldTrait::$required
wasn’t getting set before custom fields’ getInputHtml()
methods were called.
- Fixed a bug where entry drafts and revisions were missing their structure info when previewed. (#10056)
- Fixed a bug where “Customize” buttons on element index pages didn’t have a pointer cursor. (#10067)
- Fixed a bug where Edit Entry pages would warn about losing unsaved changes if the page was unloaded immediately after the entry type was changed. (#10076)
- Fixed a bug where Craft wasn’t able to resolve dynamic control panel resource requests if Craft was installed in a subdirectory.
- Fixed an error that occurred when attempting to create a new entry and draft via the
entry-revisions/save-draft
action. (#10089)
- Fixed a bug where entries’ descendants’ URIs weren’t always getting updated after a parent’s URI changed. (#10094)
";s:4:"date";s:19:"2021-11-16T00:00:00";}i:10;a:4:{s:7:"version";s:6:"3.7.20";s:8:"critical";b:0;s:5:"notes";s:696:"Changed
- Non-admin users with permission to administrate other users can now require password resets for other users. (#10057)
- The Plugin Store will now prevent installation of plugins that require a greater PHP version than what’s allowed by the environment.
Fixed
- Fixed a bug where focus rings weren’t visible on Safari. (#10058)
- Fixed a 403 error that occurred when executing pending migrations from the control panel while logged out. (#9990)
";s:4:"date";s:19:"2021-11-06T00:00:00";}i:11;a:4:{s:7:"version";s:8:"3.7.19.1";s:8:"critical";b:0;s:5:"notes";s:361:"Changed
craft\elements\Entry::setAuthor()
now sets the entry’s $authorId
property.
Fixed
- Fixed a bug where Edit Entry pages weren’t preselecting the entry’s parent, if it didn’t exist on the primary site. (#10050)
";s:4:"date";s:19:"2021-11-04T00:00:00";}i:12;a:4:{s:7:"version";s:6:"3.7.19";s:8:"critical";b:0;s:5:"notes";s:2678:"After updating, run the following command for each Structure section, to prune unneeded structure data for drafts and revisions.
php craft utils/repair/section-structure <sectionHandle>
Added
- Added
craft\services\Structures::remove()
.
Changed
- Entry drafts and revisions are no longer placed within the section’s structure (with the exception of unpublished drafts, and provisional drafts which have been assigned a new parent entry). (#9977, #9999)
- The
utils/repair/section-structure
command now prunes unneeded structure data for drafts and revisions.
- The
utils/repair/section-structure
command now appends entries to the structure root if they don’t have any supported sites in common with their parent.
craft\base\Elementinterface::getModifiedFields()
and isFieldModified()
now have $anySite
attributes.
craft\services\Elements::duplicateElement()
no longer places derivative elements in the structure.
Fixed
- Fixed an error that occurred when updating to Craft 3.7.17+ from the control panel. (#9990)
- Fixed a bug where Structure section entries would forget who their parent entry was, if it was an unpublished draft.
- Fixed a bug where Structure sections’ structure data wasn’t getting soft-deleted when the section type was changed.
- Fixed a bug where provisional drafts weren’t given a position within the structure when converting a Channel section to a Structure.
- Fixed a bug where
isset()
checks on renamed config settings were always returning false
.
- Fixed an error that could occur when deleting image transforms. (#9957)
- Fixed a bug where some Matrix sub-field changes could be discarded when applying a draft. (#10034)
- Fixed an incompatibility with the Overflow plugin. (#10044)
- Fixed a bug where Categories fields weren’t eager-loading their relations in the structure-defined order. (#10042)
Security
- Fixed an XSS vulnerability.
";s:4:"date";s:19:"2021-11-02T00:00:00";}i:13;a:4:{s:7:"version";s:8:"3.7.18.2";s:8:"critical";b:0;s:5:"notes";s:458:"Fixed
- Fixed an error that could occur if the
CRAFT_STREAM_LOG
PHP constant was set to true
.
- Fixed a bug where the “Save and continue editing” action and its Ctrl/Command + S keybord shortcut weren’t working for entry drafts, if the
autosaveDrafts
config setting was disabled. (#10029)
";s:4:"date";s:19:"2021-10-27T00:00:00";}i:14;a:4:{s:7:"version";s:8:"3.7.18.1";s:8:"critical";b:0;s:5:"notes";s:379:"Fixed
- Fixed a bug where GraphQL mutations to create new entries were returning
null
. (#10016)
- Fixed a couple focus ring styling issues. (#10017, #10018)
";s:4:"date";s:19:"2021-10-27T00:00:00";}i:15;a:4:{s:7:"version";s:6:"3.7.18";s:8:"critical";b:0;s:5:"notes";s:2175:"Added
- Added
craft\console\ErrorHandler
. (#10006)
Changed
- Craft no longer writes out informational log messages when it’s not installed yet or an update is pending, if Dev Mode is disabled.
- Dropdown fields now prepend a blank option to their menu when the current value is invalid. (#9989)
- Some control panel POST requests no longer disable database replica connections. (#9996)
- Updated Axios to 0.21.4.
- Updated jQuery UI to 1.13.0.
Fixed
- Fixed a bug where
craft\helpers\Html::parseTagAttributes()
was ignoring tag attribute values if there were any whitespace characters surrounding the =
character. (#9997)
- Fixed a bug where
craft\helpers\Html::parseTagAttributes()
was including trailing tabs, newlines, and other non-space whitespace characters in the parsed values of unquoted attributes. (#9997)
- Fixed an error that could occur if the
log
component was configured with a custom log target and flushInterval
set to 1
.
- Fixed a bug where
plugin/*
commands weren’t always handling failures properly. (#9984)
- Fixed a bug where entry title changes could be overlooked when merging upstream changes into a draft. (#9966)
- Fixed a bug where it wasn’t possible to query for draft or revision creators via GraphQL. (craftcms/gatsby-source-craft#56)
- Fixed a bug where Super Table blocks could go missing when a draft was created, if their block type ID matched another Matrix/Super Table/Neo block’s ID on the same page.
";s:4:"date";s:19:"2021-10-26T00:00:00";}i:16;a:4:{s:7:"version";s:8:"3.7.17.2";s:8:"critical";b:0;s:5:"notes";s:665:"Changed
Craft::dd()
no longer defaults to including syntax highlighting in its output for console requests. (#9972)
Fixed
- Fixed a PHP error that could occur when uploading assets on some environments. (#9995)
- Fixed a PHP error that occurred when exporting elements on PHP 7.2 or 7.3. (#9958)
- Fixed a JavaScript error that occurred in Safari. (#9976)
";s:4:"date";s:19:"2021-10-21T00:00:00";}i:17;a:4:{s:7:"version";s:8:"3.7.17.1";s:8:"critical";b:0;s:5:"notes";s:356:"Fixed
- Fixed an error that could occur when creating database backups on Windows. (#9978)
- Fixed a bug where it wasn’t possible to upload assets if the
storage/
folder was symlinked. (#9980)
";s:4:"date";s:19:"2021-10-20T00:00:00";}i:18;a:4:{s:7:"version";s:6:"3.7.17";s:8:"critical";b:0;s:5:"notes";s:4469:"Added
- Added the
provisional
argument for the remaining draft mutations via GraphQL. (#9946)
- Added the
notes
and name
arguments to the create draft mutation via GraphQL.
- Added the
is countable
Twig test.
- Added the
is object
Twig test.
- Added
craft\helpers\ElementHelper::isCanonical()
.
- Added
craft\helpers\ElementHelper::isDerivative()
.
- Added
craft\services\Path::getSystemPaths()
.
Changed
- Improved the accessibility of overflowing breadcrumbs and the “My account” menu. (#9945)
- Logs now include the raw request body in place of the
$_POST
array, if the $_POST
array is empty. (#9941)
- It’s now possible to modify Entries fields to relate entry drafts. (#9963)
- It’s now possible to set Matrix block queries’
field
and owner
params via config arrays. (#9968)
- The
_includes/forms/text.html
control panel template now supports an orientation
config value, which defines the dir
input attribute.
- Craft no longer logs a warning when the request path attempts to break out of the
templates/
folder. (#9929)
- Updated Composer to 2.1.9.
- Updated Garnish to 0.1.47.
Fixed
- Fixed a bug where it wasn’t possible to create or publish a provisional draft via GraphQL. (#9946)
- Fixed a bug where entry drafts weren’t getting propagated to other sites automatically after a section’s Propagation Method setting was changed. (#9944)
- Fixed a bug where element indexes weren’t immediately showing changes after an element was restored.
- Fixed a bug where user indexes weren’t immediately showing changes to users’ activation/suspension states. (#9947)
- Fixed an element query performance issue. (#9806)
- Fixed a bug where front-end action requests could resolve to disabled sites.
- Fixed a bug where Assets fields weren’t respecting their dynamic folder path settings for unpublished drafts. (#9619)
- Fixed a bug where deprecation warnings weren’t getting logged if
craft\services\Deprecator::$logTarget
was set to 'logs'
.
- Fixed a bug where escaped quotes (
\"
) in element export data were causing CSV cell values to end prematurely. (#9958)
- Fixed a bug where HTML entities within nested field values weren’t getting encoded for Matrix block previews. (#9964)
- Fixed an error that could occur on element edit pages if there weren’t any alternate form actions. (#9969)
- Fixed a bug where it wasn’t possible to upload an asset via a data URL if its MIME type contained a period. (#9632)
- Fixed a bug where the characters-left indicator was right-aligned for RTL Plain Text fields, for users with an LTR formatting locale. (#9967)
- Fixed a bug where
craft\web\ErrorHandler::EVENT_BEFORE_HANDLE_EXCEPTION
wasn’t getting triggered for requests that accepted a JSON response. (#9973)
Security
- Assets fields now require temporary files to reside in temporary folders or somewhere within the project root, excluding system directories.
- Fixed a potential RCE vulnerability.
";s:4:"date";s:19:"2021-10-19T00:00:00";}i:19;a:4:{s:7:"version";s:6:"3.7.16";s:8:"critical";b:0;s:5:"notes";s:590:"Added
- Added
craft\elements\Asset::getUrlsBySize()
. (#9931)
Fixed
- Fixed a bug where the top-level “Enabled” lightswitch on Edit Entry pages wasn’t getting updated when adding a new site to an entry. (#9935)
- Fixed a bug where entry indexes weren’t showing changes to unpublished drafts until a published entry was saved. (#9940)
";s:4:"date";s:19:"2021-10-06T00:00:00";}i:20;a:4:{s:7:"version";s:6:"3.7.15";s:8:"critical";b:0;s:5:"notes";s:5135:"Added
- Added the
graphql/create-token
command. (#9930)
- Added the
graphql/list-schemas
command.
- Added the
users/impersonate
command. (#9919)
- Added the
provisional
argument for draft mutations via GraphQL.
- Added the
is array
Twig test.
- Added the
is callable
Twig test.
- Added the
is float
Twig test.
- Added the
is integer
Twig test.
- Added the
is numeric
Twig test.
- Added the
is resource
Twig test.
- Added the
is scalar
Twig test.
- Added the
is string
Twig test.
- Added
craft\base\ElementTrait::$isNewForSite
.
- Added
craft\mutex\DbMutexTrait
.
Changed
- Mutex locks which are “released” during a database transaction are no longer actually released for other requests until the transaction is complete.
- Username inputs now disable auto-capitalization on iOS devices.
- Date and time fields now use native
date
and time
input types on mobile. (#9903)
- Improved the performance of eager-loading entry authors. (#9907)
- Simultaneous entry-save requests are now executed once at a time.
- Matrix block queries now factor in nested fields based on the
type
/typeId
param, if set. (#9921)
- The
graphql/dump-schema
and graphql/print-schema
commands now support a --schema
argument.
- The
users/delete
and users/set-password
commands now support passing a user ID.
craft\fields\Matrix::getBlockTypeFields()
now has a $typeIds
argument.
Deprecated
- Deprecated
craft\helpers\UrlHelper::baseRequestUrl()
. Craft::getAlias('@web')
should be used instead.
- Deprecated
craft\mutex\PrefixedMutexTrait
. DbMutexTrait
should be used instead.
Fixed
- Fixed a bug where the “Duplicate (with descendants)” element action would only partially duplicate multi-level structures. (#9889)
- Fixed a bug where it wasn’t possible to mutate a provisional draft via GraphQL. (#9892)
- Fixed a bug where it wasn’t possible to mutate a draft via GraphQL without passing all required custom fields. (#9893)
- Fixed an error that could occur when merging upstream changes into a draft, if the canonical entry had been enabled for a new site and contained new Matrix blocks. (#9895)
- Fixed a bug where sections’ Default Status settings weren’t being respected when adding a new site to an entry. (#9896)
- Fixed a bug where the
utils/repair/section-structure
command was removing provisional drafts from the structure. (#9868)
- Fixed a bug where the control panel header elements could become squished. (#9902)
- Fixed a bug where collapsed structure elements weren’t getting included in exports. (#9913)
- Fixed a bug where Matrix blocks weren’t getting propagated to sites that were added to a draft, when its changes were applied to the canonical entry. (#9910)
- Fixed a bug where it wasn’t possible to revert Matrix blocks that had been soft-deleted. (#9928)
- Fixed a styling conflict with Craft Commerce.
- Fixed a bug where
craft\services\AssetTransforms::getLocalImageSource()
was trying to delete non-existent transform source files. (#9884)
- Fixed a bug where
craft\services\Fields::getLayoutByType()
wasn’t setting the type
property when a field layout didn’t exist yet for the element type. (#9918)
Security
- Generated front-end URLs now begin with the
@web
alias value if the current site doesn’t have a base URL.
- Password inputs now hide the password when their form is submitted.
";s:4:"date";s:19:"2021-10-05T00:00:00";}i:21;a:4:{s:7:"version";s:6:"3.7.14";s:8:"critical";b:0;s:5:"notes";s:4028:"Added
- Added
craft\base\Element::EVENT_PREP_QUERY_FOR_TABLE_ATTRIBUTE
. (#9862)
- Added
craft\base\ElementInterface::getIsFresh()
.
- Added
craft\base\ElementInterface::setIsFresh()
.
- Added
craft\cache\ElementQueryTagDependency
.
- Added
craft\elements\db\ElementQuery::getCacheTags()
.
- Added
craft\events\ElementIndexTableAttributeEvent
.
- Added
craft\events\SearchEvent::$elementQuery
.
- Added
craft\events\SearchEvent::getElementIds()
.
- Added
craft\events\SearchEvent::setElementIds()
.
- Added
craft\services\Search::searchElements()
.
- Added the
fullPane
setting to Vue admin tables, which can be set to false
if the table is not the only UI component in its content pane.
Changed
- Enhanced the visibility of global navigation badges.
- Enhanced the visibility of focused menu options.
- Improved the performance of element query
search
params. (#9867)
- Element queries’
cache()
methods now create a cache dependency based on the element queries’ cache tags by default.
- Element index queries are now cached.
- The
migrate/all
command now includes plugins whose schema versions have changed, even if they don’t have any new migrations. (#9860)
- It’s now possible to pass an array of Matrix block IDs into a Matrix field’s element query param. (#9875)
- Improved GraphQL performance. (#9830)
Deprecated
- Deprecated
craft\base\Element::getHasFreshContent()
. getIsFresh()
should be used instead.
- Deprecated
craft\services\Search::filterElementIdsByQuery()
.
Fixed
- Fixed the control panel heading order for more intuitive navigation by screen reader users.
- Fixed an uncaught error that could occur when saving a draft. (#9841)
- Fixed an error that occurred when mutating an entry via GraphQL, if it belonged to any disabled sites. (#9842)
- Fixed a bug where some field types wouldn’t use their configured default values on new entries, fields that weren’t included in the primary entry type. (#9852)
- Fixed a bug where some action menus didn’t have a label for screen readers.
- Fixed a bug where
craft\web\Response::redirect()
no longer supported passing an array to the $url
argument. (#9857)
- Fixed a bug where duplicated entries that were created via an “Applying new propagation method” job weren’t getting positioned correctly based on the original entries’ structure. (#9782)
- Fixed a bug where unpublished drafts could disappear after clicking “Create entry” if the URI could not be made unique. (#9873)
- Fixed an error that could occur when processing
relatedTo*
GraphQL arguments in some cases.
- Fixed an error that could occur when an entry’s Title Format referenced a custom field with
author
in its handle. (#9891)
Security
- Fixed a potential CSV injection vulnerability.
";s:4:"date";s:19:"2021-09-28T00:00:00";}i:22;a:4:{s:7:"version";s:6:"3.7.13";s:8:"critical";b:0;s:5:"notes";s:3506:"Added
- Added the
up
command, which calls migrate/all
and project-config/apply
, wrapped in a mutex lock.
- Added
craft\services\Plugins::updatePluginVersionInfo()
.
Changed
- Matrix fields are now fully highlighted when changed, rather than just the specific sub-field. (#9814)
- When a draft is saved, Craft now automatically reloads other browser tabs that are opened to the same Edit Entry page.
- Emoji characters are now stripped from search keywords. (#9813)
- Control panel pages now send
Content-Security-Policy: frame-ancestors 'self'
headers.
- Edit Entry pages now reveal some exception messages when drafts are unable to save.
- Control panel pages now have a “Skip to content” link before the navigation, for screen readers. (#9832)
- Live Preview now maintains the window’s original scroll position when closed. (#9828)
craft\console\Controller::run()
now passes the --interactive
, --color
, and --silentExitOnException
options to the sub-command.
Deprecated
- Deprecated
craft\services\Updates::setNewPluginInfo()
. craft\services\Plugins::updatePluginVersionInfo()
should be used instead.
Fixed
- Fixed an incompatibility with SEOmatic. (#9811)
- Fixed a bug where the
backup
, install/plugin
, restore
, and setup
commands weren’t passing the --interactive
, --color
, and --silentExitOnException
options to their sub-commands.
- Fixed a bug where drafts were getting autosaved when the site status toggles were expanded, if the entry was disabled for the current site but enabled for other sites.
- Fixed a bug where it was possible for two provisional drafts to exist for the same entry and user.
- Fixed an error that could occur if a log target was configured with a low flush interval. (#9818)
- Fixed an error that could occur on the Settings → General page if the
system
project config array was missing any values. (#7350)
- Fixed a bug where Edit Entry pages weren’t redirecting to the Current revision after reverting an entry to a prior revision. (#9821)
- Fixed a bug where Assets fields were suppressing some exceptions while rendering the subpath, which weren’t related to template rendering. (#9824)
- Fixed an error that could occur when setting an integer value on an active record attribute for a
MEDIUMTEXT
or LONGTEXT
column. (#9825)
- Fixed a bug where it wasn’t possible to pinch-zoom the control panel on Android devices. (#9833)
";s:4:"date";s:19:"2021-09-14T00:00:00";}i:23;a:4:{s:7:"version";s:6:"3.7.12";s:8:"critical";b:0;s:5:"notes";s:3586:"Added
- Added
craft\helpers\ElementHelper::isOutdated()
.
- Added
craft\services\Elements::EVENT_BEFORE_UPDATE_SEARCH_INDEX
. (#9801)
Changed
- Improved the performance of applying drafts. (#9802)
- Improved the performance of element queries. (#9806)
- Live Preview is once again supported by entries when the
autosaveDrafts
config setting is disabled.
- Checkboxes, Dropdown, Multi-select, and Radio Buttons fields now include the selected options’ labels in their search keywords. (#9799)
- It’s now possible for field types to disable delta name registration for nested custom fields by calling
Craft::$app->view->setIsDeltaRegistrationActive(false);
before rendering them.
craft\events\ElementEvent
now extends craft\events\CancelableEvent
.
craft\models\FieldLayout::createForm()
now accepts a registerDeltas
key in its $config
argument, which can be set to true
or false
to enable/disable delta name registration for any custom fields in the form.
craft\services\Elements::duplicateElement()
now has a $placeInStructure
argument.
- The
Craft.t()
JS method now supports translation messages with select
parameters.
Deprecated
- Deprecated
craft\behaviors\DraftBehavior::getIsOutdated()
.
Fixed
- Fixed an error that occurred when merging upstream Matrix field changes into a draft, if the draft didn’t exist in all the same sites as its canonical entry. (#9774)
- Fixed a bug where duplicated entries that were created via an “Applying new propagation method” job weren’t getting positioned correctly based on the original entries’ structure. (#9782)
- Fixed a bug where
craft\fieldlayoutelements\CustomField::formHtml()
was always enabling delta name registration, unless the form was static.
- Fixed an exception that could occur if an invalid alias was passed to the
svg()
Twig function.
- Fixed a bug where Edit Category pages weren’t remembering changes or showing validation errors in the event that a category couldn’t be saved. (#9796)
- Fixed a bug where the
migrate/all
command wasn’t running Craft and plugin migrations if the schema versions hadn’t changed.
- Fixed a bug where Craft was indexing search keywords for block elements that belonged to entry revisions. (#9801)
- Fixed a bug where
craft\services\Elements::mergeCanonicalChanges()
was doing more work than it needed to. (#9802)
- Fixed a bug where it wasn’t possible to paste into a Number field on Windows. (#9803)
";s:4:"date";s:19:"2021-09-08T00:00:00";}i:24;a:4:{s:7:"version";s:6:"3.7.11";s:8:"critical";b:0;s:5:"notes";s:1690:"Added
- Added the
canonicalUid
field to entries queried via GraphQL.
- Added
craft\base\ElementInterface::getCanonicalUid()
. (#9757)
Changed
- Edit Entry pages now show a “Save draft” button for users without the “Publish live changes” permission. (#9750)
- Users without the “Delete entries” permission can now delete their own unpublished drafts.
- All entries now have a
canonicalId
field when queried via GraphQL now; not just drafts.
craft\services\Matrix::validateBlockType()
no longer has a $validateUniques
argument.
- Improved the performance of entry queries for installs with several hundred thousand entries or more.
- Visible password inputs now prevent the browser from auto-capitalizing the input text.
Deprecated
- Deprecated
craft\records\MatrixBlockType::$validateUniques
.
Fixed
- Fixed an error that could occur when saving Matrix fields, if the Type Linked Field and Expanded Singles plugins were both installed. (#9749)
- Fixed a bug where
craft\helpers\Queue::push()
wasn’t returning the job ID. (#9764)
- Fixed a bug where code editors powered by Monaco Editor were showing focus rings on the text cursor. (#9772)
";s:4:"date";s:19:"2021-08-31T00:00:00";}i:25;a:4:{s:7:"version";s:6:"3.7.10";s:8:"critical";b:0;s:5:"notes";s:1045:"Changed
- It’s now possible to hook into the delete process of a Vue admin table row.
- Dynamically-served control panel resources no longer get cache headers, and no longer validate that the URI hash matches. (#9738)
Fixed
- Fixed a bug where Tokenfield inputs weren’t getting sized correctly when the window was resized, if rendered within a field that used a fieldset. (#9734)
- Fixed a bug where row headings that included a status were getting bold text in Vue admin tables. (#9704)
- Fix a bug where GraphQL queries could fail if they included Date fields with empty values.
- Fixed an error that could occur when installing Craft using whe web-based install wizard, if a database connection couldn’t be established. (#9740)
";s:4:"date";s:19:"2021-08-19T00:00:00";}i:26;a:4:{s:7:"version";s:5:"3.7.9";s:8:"critical";b:0;s:5:"notes";s:4056:"Added
- Added the
utils/prune-provisional-drafts
command, which prunes provisional drafts for entries that have more than one per user.
- Added
craft\helpers\App::supportsIdn()
.
Changed
- Custom fields’ search keywords are now indexed for entry drafts.
- Email fields now allow IDNA ASCII characters in the domain name, on servers with the Intl extension. (#9698)
- Revved asset URLs now use a
v
query string param. (#9716)
- Element sources’ badge counts are now kept up-to-date when performing bulk element actions. (#9728)
- Date fields that are set to show the time zone now set their values to the selected time zone by default when queried via GraphQL, to be consistent with the PHP and Twig APIs. (#9719)
- The
utils/prune-revisions
command now has a --dry-run
flag.
- The
utils/prune-revisions
command will now output how many excess revisions it could actually load for each entry, if it differed from the original estimate.
- Updated Yii to 2.0.43.
Deprecated
- Deprecated
craft\helper\App::isNitro()
. (#9709)
Fixed
- Fixed a bug where custom fields’ search keywords weren’t getting indexed for newly-created entries. (#9699)
- Fixed a bug where user email addresses would validate if they had IDNA ASCII characters in the local part, even though Swiftmailer doesn’t allow it. (#9096)
- Fixed a bug where Date fields weren’t handling array values with
datetime
keys properly. (#9708)
- Fixed a bug where Edit Asset pages for top-level assets had an extra breadcrumb. (#9720)
- Fixed a bug where the “New category” button on the Categories index page would link to a 404 when a non-primary site was selected. (#9722)
- Fixed a bug where changing the site from an Edit Category page would go to a 404 when editing a new, unsaved category.
- Fixed a bug where deep-linking to a volume’s subfolder that contained any non-ASCII characters would return a 404. (#9723)
- Fixed a bug where the Assets index page wasn’t updating the URL when selecting a subfolder that had been renamed on the same page load.
- Fixed a bug where the CLI installer would always save a
PRIMARY_SITE_URL
environment variable to the .env
file, even if the initial site’s base URL was already set to an alias or environment variable. (#9724)
- Fixed an
UnsupportedSiteException
error that could occur on Edit Entry pages for provisional drafts, if any upstream Matrix blocks needed to be merged in, whose Matrix field’s Propagation Method was set to something besides “Save blocks to all sites the owner element is saved in”. (#9664)
- Fixed a bug where replacing an asset’s file from an Edit Asset page would seem to not take effect until the page was refreshed. (#9700)
- Fixed a bug where upstream translatable field changes weren’t always getting merged into entry drafts properly. (#9729)
";s:4:"date";s:19:"2021-08-17T00:00:00";}i:27;a:4:{s:7:"version";s:5:"3.7.8";s:8:"critical";b:0;s:5:"notes";s:2775:"Added
- It’s now possible to bypass console warnings about running Craft as the root/super user by defining a
CRAFT_ALLOW_SUPERUSER
environment variable. (#7955)
- Added
craft\web\Request::setIsActionRequest()
.
- Added
craft\web\twig\CpExtension
.
- Added
craft\web\twig\GlobalsExtension
.
Changed
- Craft’s global Twig variables (e.g.
craft
) can now be autocompleted within Twig templates when using PhpStorm with the Symfony Support plugin.
Fixed
- Fixed a bug where the site menu on Edit Category pages wasn’t working properly. (#9658)
- Fixed a bug where the “Save and add another” action on Edit Category pages wasn’t retaining the currently-selected site or parent category selection. (#9677)
- Fixed a bug where the “Discard changes” button on Edit Entry pages wasn’t retaining the currently-selected site. (#9663)
- Fixed an error that occurred when attempting to change a global set’s handle, if its former handle was a reserved word.
- Fixed a bug where it wasn’t possible to search for Matrix blocks by a specific sub-field’s handle using the
search
param. (#9679)
- Fix a JavaScript error that occurred after moving a subfolder on the Assets index page. (#9686)
- Fixed an infinite loop that could occur when handing a front-end set-password request, if there was a validation error on the submitted password. (#9684)
- Fixed a bug where entries could lose other sites’ content when being saved from an unpublished draft, if their section’s Propagation Method was set to “Let each entry choose which sites it should be saved to”. (#9680)
- Fixed a bug where entries that were created via the “Save as a new entry” action on an Edit Entry page didn’t include all content changes made in the original entries’ provisional draft. (#9681)
- Fixed a bug where code blocks in field instructions could bleed into the subsequent field. (#9683)
";s:4:"date";s:19:"2021-08-06T00:00:00";}i:28;a:4:{s:7:"version";s:5:"3.7.7";s:8:"critical";b:0;s:5:"notes";s:1710:"Added
- Added the
canonicalId
GraphQL field for entries.
Deprecated
- Deprecated the
sourceId
and sourceUid
GraphQL fields for entries. canonicalId
should be used instead.
Fixed
- Fixed an error that could occur when creating a new entry, if the section’s Entry URI Format contained
{canonicalId}
. (#6080)
- Fixed a bug where
craft\helpers\Db::isTextualColumnType()
was always returning false
.
- Fixed a bug where
:empty:
element query conditions weren’t working correctly for empty string values on Postgres. (#9641)
- Fixed an error that occurred if an entry’s
getSupportedSites()
method was called on a front-end, non-action request. (#9649)
- Fixed a SQL error that could occur when running the “Find and Replace” utility. (#9651)
- Fixed a bug where Date fields that were set to only show the time input weren’t saving new values properly. (#9650)
- Fixed a bug where
craft\services\Fields::$oldFieldColumnPrefix
wasn’t getting set properly when deleting a Matrix block type.
- Fixed a bug where Matrix sub-fields were getting new content columns whenever their block type’s handle was changed, when the existing columns should have been renamed.
";s:4:"date";s:19:"2021-07-29T00:00:00";}i:29;a:4:{s:7:"version";s:5:"3.7.6";s:8:"critical";b:0;s:5:"notes";s:812:"Added
- Added the
provisionalDrafts
argument for entry GraphQL queries.
Fixed
- Fixed a bug where global set queries could contain fields that were supposed to be hidden.
- Fixed a bug where
craft\helpers\DateTimeHelper::toDateTime()
was interpreting year-only values as timestamps. (#9642)
- Fixed a bug where blank Email field values were getting stored as empty strings rather than
NULL
. (#9641)
- Fixed a bug where it wasn’t possible to clear out some entry field values, if their values were blank to begin with. (#9643)
";s:4:"date";s:19:"2021-07-27T00:00:00";}i:30;a:4:{s:7:"version";s:5:"3.7.5";s:8:"critical";b:0;s:5:"notes";s:3291:"Added
- Added
craft\base\ElementTrait::$firstSave
. (#9638)
- Added
craft\base\FieldInterface::getOrientation()
.
- Added
craft\helpers\FieldHelper
.
Changed
- Field orientations are now based on the primary site’s language for single-site installs. (#9616)
- Matrix block type handles are now limited to 47 characters. (#9636)
Fixed
- Fixed a bug where Live Preview stopped working when the device type was changed, for preview targets that had auto-refresh disabled. (#9610)
- Fixed a 403 error that occurred when attempting to discard changes on an entry. (#9602)
- Fixed a bug where opening the image editor would cause the page to scroll to the top. (#9612)
- Fixed a bug where provisional drafts weren’t displaying a notice when upstream changes had been merged into them. (#9615)
- Fixed a bug where entry titles were set to
null
before getting regenerated via their Title Format for new drafts.
- Fixed SQL errors that could occur when updating Craft 3.7. (#9624, #9625)
- Fixed a bug where
craft\web\Request::getRawCookies()
was returning hashed cookie values.
- Fixed a PHP error that could occur when saving a site, if there were any event handlers on
craft\services\Sites::EVENT_BEFORE_SAVE_SITE
.
- Fixed an error that could occur when deleting a route from the control panel if there were any event handlers on
craft\services\Routes::EVENT_AFTER_DELETE_ROUTE
.
- Fixed a bug where existing fields’ maximum handle lengths were nine characters less than they needed to be.
- Fixed a bug where Craft would send a
X-Robots-Tag: none
header on front-end Login pages. (#9621)
- Fixed a bug where the “Singles” entry source showed the Author column by default. (#9627)
- Fixed a bug where the control panel header could remain “stuck” after closing Live Preview in Firefox. (#9630)
- Fixed a JavaScript error that could occur on Edit Entry pages. (#9631)
- Fixed a bug where assets weren’t always getting moved out of the Temporary Uploads volume when saving an entry. (#9619)
- Fixed a bug where it wasn’t possible to upload an asset via a data URL if its MIME type contained a dash. (#9632)
";s:4:"date";s:19:"2021-07-23T00:00:00";}i:31;a:4:{s:7:"version";s:5:"3.7.4";s:8:"critical";b:0;s:5:"notes";s:1671:"Added
- Added
craft\helpers\ElementHelper::shouldTrackChanges()
.
Changed
- Improved the performance of delta form submissions. (#9605)
Fixed
- Fixed a bug where temporary volume folders couldn’t be created for console requests. (#9597)
- Fixed a bug where
craft\base\Field::copyValue()
wasn’t passing the source element to $this->serializeValue()
. (sebastian-lenz/craft-linkfield#161)
- Fixed a bug where entries were only tracking modified attributes for the site the changes were made on.
- Fixed a bug where entries were only tracking modified relation fields for the site changes were made on. (#9596)
- Fixed a bug where images within rich text fields’ static previews could bleed out of their container element. (#9603)
- Fixed a bug where passing an empty value to
relatedTo()
and andRelatedTo()
would yield no results on an element query. (#9599)
- Fixed a bug where existing Matrix/Neo/Super Table blocks could lose their content when creating a provisional draft, if additional block changes were queued up before the draft was fully created. (#9601)
";s:4:"date";s:19:"2021-07-19T00:00:00";}i:32;a:4:{s:7:"version";s:7:"3.7.3.2";s:8:"critical";b:0;s:5:"notes";s:250:"Fixed
- Fixed a bug where Edit Entry pages weren’t submitting changes to fields if they had been changed back to their original value they had on page load. (#9575)
";s:4:"date";s:19:"2021-07-18T00:00:00";}i:33;a:4:{s:7:"version";s:7:"3.7.3.1";s:8:"critical";b:0;s:5:"notes";s:481:"Changed
- Improved the performance of Edit Entry pages. (#9575)
Fixed
- Fixed styling issues in the control panel. (#9590, #9592)
- Fixed a bug where entry drafts could label fields as being modified on the canonical entry, even when they weren’t.
";s:4:"date";s:19:"2021-07-17T00:00:00";}i:34;a:4:{s:7:"version";s:5:"3.7.3";s:8:"critical";b:0;s:5:"notes";s:1333:"Added
- Added the
sendContentLengthHeader
config setting.
Changed
- Template requests no longer respond with a
Content-Length
header, unless the sendContentLengthHeader
config setting is enabled. (#8070)
- Edit Asset pages are now located at
assets/edit/<id>-<filename>
rather than assets/<volume>/<id>-<filename>
.
edit
is now a reserved volume handle.
- Number fields no longer allow non-numeric input. (#9586)
Fixed
- Fixed a bug where object templates didn’t support string interpolation within normal Twig tags. (#9138)
- Fixed an error that could occur after applying project config changes.
- Fixed a bug where assets’ control panel URLs were getting routed to the Assets index page. (#9583)
- Fixed a visual bug where field status indicators were overlapping the prior field in the same row. (#9585)
";s:4:"date";s:19:"2021-07-16T00:00:00";}i:35;a:4:{s:7:"version";s:5:"3.7.2";s:8:"critical";b:0;s:5:"notes";s:722:"Fixed
- Fixed a SQL error that could occur when updating to Craft 3.7. (#9574)
- Fixed a bug where Edit Entries pages were displaying a “Delete draft” action for provisional drafts.
- Fixed a 404 error that occurred when linking to a volume’s subfolder on the Assets index page, if the subfolder contained a dash. (#9579)
- Fixed a bug where Craft was logging errors and warnings to
stdout
when Dev Mode was disabled, if the CRAFT_STREAM_LOG
PHP constant was set. (#9572)
";s:4:"date";s:19:"2021-07-15T00:00:00";}i:36;a:4:{s:7:"version";s:5:"3.7.1";s:8:"critical";b:0;s:5:"notes";s:2237:"Added
- Added the
transformSvgs
config setting. (#9557)
Changed
- Console requests no longer force Dev Mode to be enabled. (#5256)
Fixed
- Fixed deprecation warnings that occurred on some edit pages. (#9556)
- Fixed an error that occurred when updating from Craft 3.6.7 or earlier.
- Fixed a bug where progress bar labels weren’t always removed correctly.
- Fixed a bug where it wasn’t possible to filter by status on the Categories index page. (#9555)
- Fixed a bug where Edit Category pages didn’t have a “Save and add another” action.
- Fixed a bug where moving an asset with an invalid file extension would be treated as if there was a conflicting asset in the destination directory. (#9147)
- Fixed a bug where multiple tab bars could appear on Edit Entry pages, if the Entry Type had been changed multiple times. (#9562)
- Fixed a bug where some control panel icons had unhelpful
<title>
tags and other cruft. (#9563)
- Fixed a bug where the “Create a draft” button on Edit Entry pages wasn’t working properly for users that didn’t have permission to publish changes to the entry. (#9570)
- Fixed a bug where Edit Entry pages could show a provisional draft immediately after saving published changes to the entry, if the save was initiated at the same time that the provisional draft was getting created. (#9568)
- Fixed a bug where entry slugs weren’t getting auto-generated on first save, if their title was generated based on a custom Title Format. (#9561)
";s:4:"date";s:19:"2021-07-14T00:00:00";}i:37;a:4:{s:7:"version";s:5:"3.7.0";s:8:"critical";b:0;s:5:"notes";s:26009:"Read through the Upgrading to Craft 3.7 guide before updating.
Added
- The control panel now displays new feature announcements. (#8056)
- Added the “Always show focus rings” user preference. (#7790)
- The Entries index page now has “Create a new entry before” and “Create a new entry after” actions for entries within Structure sections. (#870)
- The Entries index page now has a “Delete for site” action for entries whose section’s Propagation Method is set to “Let each entry choose which sites it should be saved to”. (#9119)
- Edit Entry pages now treat unpublished drafts similarly to published entries, rather than drafts. (#7899)
- Edit Entry pages no longer appear to create a draft when the Current revision is edited within Live Preview. Unsaved changes are now stored within a “provisional draft”, which is mostly hidden from the author. (#7899)
- Category groups now have a “Default Category Placement” setting, which determines where new categories should be placed within the structure by default. (#7759)
- Structure sections now have a “Default Entry Placement” setting, which determines where new entries should be placed within the structure by default. (#7759)
- The Assets index page now remembers the selected subfolder between page loads. (#9546)
- It’s now possible to deep-link to a specific subfolder on the Assets index page.
- Edit Asset pages now redirect back to the subfolder the asset is located in on save.
- It’s now possible to reorder global sets. (#8052)
- Date fields now have a “Show Time Zone” setting, allowing authors to choose which time zone the date is set to, rather than using the system time zone.
- Matrix fields can now be set to custom propagation methods, based on a propagation key template. (#7610)
- Added a “Refresh” button to Live Preview, for preview targets whose “Auto-refresh” (formerly “Refresh”) setting is disabled.
- Added the
users/create
and users/delete
commands. (#8014)
- Added the
siteSettingsId
element query and GraphQL API query parameter for all elements.
- Added the
preferSites
GraphQL API query argument for all elements. (#8006)
- Added the
ancestors
, descendants
, drafts
, draftCreator
, revisions
, currentRevision
, and revisionCreator
fields to entry GraphQL queries. (#7950)
- Added the
httpProxy
config setting, which can be used instead of setting the proxy
Guzzle request option. (#9105)
- Added the
previewTokenDuration
config setting. (#2394)
- Added the
revAssetUrls
config setting. (#7847)
- Added the
setGraphqlDatesToSystemTimeZone
config setting. (#8016)
- Added the
useUnbufferedConnections
database connection setting, which can be set to true
when using MySQL to cause batched queries to be executed over separate, unbuffered database connections when using MySQL. (#7338)
- Added the “Validate custom fields on public registration” user setting. (#4229)
- Added the
|removeClass
Twig filter.
- Added
craft\base\ApplicationTrait::getAnnouncements()
.
- Added
craft\base\ConfigurableComponent::EVENT_DEFINE_SETTINGS_ATTRIBUTES
. (#8004)
- Added
craft\base\Element::EVENT_DEFINE_IS_DELETABLE
.
- Added
craft\base\Element::EVENT_DEFINE_IS_EDITABLE
. (#8023)
- Added
craft\base\Element::EVENT_DEFINE_METADATA
.
- Added
craft\base\Element::EVENT_DEFINE_META_FIELDS_HTML
.
- Added
craft\base\Element::EVENT_DEFINE_SIDEBAR_HTML
.
- Added
craft\base\Element::cpEditUrl()
, which should be overridden rather than getCpEditUrl()
.
- Added
craft\base\Element::hasFieldLayout()
.
- Added
craft\base\Element::isDeletable()
.
- Added
craft\base\Element::isEditable()
.
- Added
craft\base\Element::metaFieldsHtml()
.
- Added
craft\base\Element::metadata()
.
- Added
craft\base\Element::slugFieldHtml()
.
- Added
craft\base\ElementInterface::getCanonical()
.
- Added
craft\base\ElementInterface::getCanonicalId()
.
- Added
craft\base\ElementInterface::getIsCanonical()
.
- Added
craft\base\ElementInterface::getIsDerivative()
.
- Added
craft\base\ElementInterface::getMetadata()
.
- Added
craft\base\ElementInterface::getModifiedAttributes()
.
- Added
craft\base\ElementInterface::getModifiedFields()
.
- Added
craft\base\ElementInterface::getOutdatedAttributes()
.
- Added
craft\base\ElementInterface::getOutdatedFields()
.
- Added
craft\base\ElementInterface::getParentUri()
. (#7932)
- Added
craft\base\ElementInterface::getSidebarHtml()
.
- Added
craft\base\ElementInterface::isAttributeModified()
.
- Added
craft\base\ElementInterface::isAttributeOutdated()
.
- Added
craft\base\ElementInterface::isFieldModified()
.
- Added
craft\base\ElementInterface::isFieldOutdated()
.
- Added
craft\base\ElementInterface::mergeCanonicalChanges()
.
- Added
craft\base\ElementInterface::setCanonical()
.
- Added
craft\base\ElementInterface::setCanonicalId()
.
- Added
craft\base\ElementTrait::$dateLastMerged
.
- Added
craft\base\ElementTrait::$isProvisionalDraft
.
- Added
craft\base\ElementTrait::$mergingCanonicalChanges
.
- Added
craft\base\ElementTrait::$updatingFromDerivative
.
- Added
craft\base\FieldInterface::copyValue()
.
- Added
craft\base\FieldInterface::getStatus()
.
- Added
craft\base\FieldTrait::$columnSuffix
.
- Added
craft\console\ControllerTrait::checkRootUser()
.
- Added
craft\console\ControllerTrait::createAttributeValidator()
. (#8066)
- Added
craft\console\controllers\ResaveController::resaveElements()
.
- Added
craft\elements\User::EVENT_DEFINE_FRIENDLY_NAME
. (#8027)
- Added
craft\elements\User::EVENT_DEFINE_NAME
. (#8027)
- Added
craft\elements\User::setFriendlyName()
.
- Added
craft\elements\User::setName()
.
- Added
craft\elements\db\ElementQuery::provisionalDrafts()
.
- Added
craft\events\DefineHtmlEvent
.
- Added
craft\events\DefineMetadataEvent
.
- Added
craft\events\DefineValueEvent
.
- Added
craft\events\DraftEvent::$provisional
.
- Added
craft\fields\Matrix::$propagationKeyFormat
.
- Added
craft\fields\Matrix::PROPAGATION_METHOD_CUSTOM
.
- Added
craft\helpers\Cp::autosuggestFieldHtml()
.
- Added
craft\helpers\Cp::dateTimeFieldHtml()
.
- Added
craft\helpers\Cp::editElementTitles()
.
- Added
craft\helpers\Cp::elementSelectFieldHtml()
.
- Added
craft\helpers\Cp::metadataHtml()
.
- Added
craft\helpers\Db::batch()
and each()
, which can be used instead of craft\db\Query::batch()
and each()
, to execute batched SQL queries over a new, unbuffered database connection (if using MySQL and useUnbufferedConnections
is true
). (#7338)
- Added
craft\helpers\ElementHelper::fieldColumn()
.
- Added
craft\helpers\ElementHelper::fieldColumnFromField()
.
- Added
craft\helpers\ElementHelper::isDraft()
.
- Added
craft\helpers\ElementHelper::isRevision()
.
- Added
craft\helpers\Html::parseTagAttribute()
.
- Added
craft\helpers\Html::widont()
.
- Added
craft\mail\Message::$error
. (#8091)
- Added
craft\models\CategoryGroup::$defaultPlacement
.
- Added
craft\models\CategoryGroup::DEFAULT_PLACEMENT_BEGINNING
.
- Added
craft\models\CategoryGroup::DEFAULT_PLACEMENT_END
.
- Added
craft\models\FieldLayout::$reservedFieldHandles
.
- Added
craft\models\Section::$defaultPlacement
.
- Added
craft\models\Section::DEFAULT_PLACEMENT_BEGINNING
.
- Added
craft\models\Section::DEFAULT_PLACEMENT_END
.
- Added
craft\models\SiteGroup::getName()
.
- Added
craft\models\SiteGroup::setName()
.
- Added
craft\services\Announcements
.
- Added
craft\services\Elements::EVENT_AFTER_MERGE_CANONICAL_CHANGES
.
- Added
craft\services\Elements::EVENT_BEFORE_MERGE_CANONICAL_CHANGES
.
- Added
craft\services\Elements::mergeCanonicalChanges()
.
- Added
craft\services\Elements::updateCanonicalElement()
.
- Added
craft\services\Matrix::mergeCanonicalChanges()
.
- Added
craft\services\Tokens::createPreviewToken()
.
- Added
craft\web\Request::checkIfActionRequest()
.
- Added
craft\web\View::clearCssBuffer()
.
- Added
craft\web\View::clearScriptBuffer()
.
- Added
craft\web\View::getInitialDeltaValues()
.
- Added
craft\web\View::startCssBuffer()
.
- Added
craft\web\View::startScriptBuffer()
.
- Added
craft\web\twig\variables\Cp::getTimeZoneOptions()
.
- Added the
timeZone
and timeZoneField
macros to the _includes/forms.html
control panel template.
- Added the
Craft.Slideout
JavaScript class.
- Added the
Craft.Tabs
JavaScript class.
- Added the
Craft.group()
JavaScript method.
- Added the
Craft.setFocusWithin()
JavaScript method.
- Added the
Craft.trapFocusWithin()
JavaScript method.
Changed
- Changes from an entry’s Current revision are now automatically merged into drafts upon visiting drafts’ edit pages.
- When changes from an entry’s Current revision are merged into a draft, Matrix field changes are now merged on a per-block basis. (#5503, #7710)
- Inline element editors now use slideouts rather than HUDs, and include the element’s fully-rendered field layout (including tabs and custom UI elements), meta fields (Slug, Post Date, etc.) and metadata, plus a link to open the element’s dedicated edit page in a new browser tab. (#8017)
- The “Publish draft” button has been relabelled to “Apply draft”.
- Entries now retain their original IDs when created from an unpublished draft. (#9104)
- Matrix blocks now retain their original IDs and UIDs when a draft is published. (#7710)
- Improved the styling of field status indicators.
- Field status indicators now appear immediately after a field’s value is changed and saved successfully to a draft.
- Improved the design and accessibility of tabs in the control panel. (#7299)
- Asset, category, and entry indexes now use “Asset”, “Category”, and “Entry” header column headings by default, rather than “Title”.
- Improved the UI of the Time Zone input in Settings → General.
- It’s now possible to toggle site-specific category statuses from the Edit Category page. (#7636)
- Tag field layouts now include the Title field, allowing its placement and label to be customized.
- Tag field layouts can now contain multiple tabs and UI elements.
- Custom fields with a custom translation method are no longer labelled as translatable if the translation key is an empty string. (#7647)
- Category and tag groups no longer validate if their field layout contains a field called
group
. (#2797)
- Entry types no longer validate if their field layout contains a field called
author
, section
, or type
. (#2797)
- Volumes no longer validate if their field layout contains a field called
folder
or volume
. (#2797)
- The user field layout no longer validates if it contains a field called
groups
or photo
. (#2797)
- The
resave/entries
command now has a --provisional-drafts
option.
resave/*
commands now have a --queue
option. (#8040)
- Entries no longer support Live Preview if the
autosaveDrafts
config setting is disabled.
- Most text areas in the control panel will now submit the closest form when Ctrl/Command + Return is pressed. (#7999)
- The
defaultCpLanguage
config setting no longer affects console requests. (#7747)
- The
{% cache %}
tag now stores any JavaScript or CSS code registered with {% js %}
, {% script %}
, and {% css %}
tags. (#7758)
- The
date()
Twig function now supports arrays with date
and/or time
keys. (#7681)
- Date query params now support passing in times relative to
now
(e.g. >= now
). (#9117)
- Object templates (such as
redirect
params and URI Format settings) now support string interpolation. (#9138)
- Custom field column names now include a random string, preventing column name conflicts when deploying multiple project config changes at once. (#6922)
- Custom fields can now store data across multiple columns in the
content
table.
- Channel and Structure sections’ initial entry types are now named “Default” by default. (#7078)
- Entries can now be eager-loaded with
revisions
.
- Console commands now show a confirmation prompt when executed as the root user. (#7955)
- Project config component UID/name mappings are now stored in the project config itself, making them portable across environments. (#7709)
- Validation errors in the control panel are now parsed for Markdown syntax. (#8008)
- Renamed the
enableGraphQlCaching
config setting to enableGraphqlCaching
. (The old name still works but is deprecated.)
- Admin tables can now include linked buttons in the toolbar.
- Admin tables can now include single action buttons.
- Admin tables now support separators in menu button lists.
- Site group names can now be set to environment variables. (#8044)
- Template requests now respond with a
Content-Length
header. (#8070)
- Exceptions thrown by queue jobs are now logged. (#8060)
craft\base\Element::getCpEditUrl()
now includes a draftId
/revisionId
query string param in the returned URL if the element is a draft or revision. (#7832)
craft\base\FieldInterface::getContentColumnType()
can now return an array, if the field stores content across multiple columns.
craft\helpers\Cp::elementHtml()
now has a $single
argument.
craft\helpers\DateTimeHelper::toDateTime()
now supports passing in 'now'
. (#9117)
craft\services\AssetTransforms::normalizeTransform()
now accepts transform configs arrays that specify a base transform which should be extended, via a transform
key set to the stored transform’s handle. (#7892)
craft\services\Drafts::EVENT_AFTER_APPLY_DRAFT
is no longer deprecated.
craft\services\Drafts::EVENT_BEFORE_APPLY_DRAFT
is no longer deprecated.
craft\services\Drafts::applyDraft()
is no longer deprecated.
craft\services\Users::saveLayout()
now has a $runValidation
argument, which is true
by default.
craft\web\View::clearJsBuffer()
now has a $combine
argument.
craft\web\View::namespaceInputs()
now accepts a callback function for the first argument, which simplifies the process of setting and resetting the registered namespace before and after generating the to-be-namespaced HTML.
- Updated Garnish to 0.1.46.
Deprecated
- Deprecated
craft\base\Element::ATTR_STATUS_CONFLICTED
.
- Deprecated
craft\base\Element::getFieldStatus()
.
- Deprecated
craft\base\Element::getSourceId()
. getCanonicalId()
should be used instead.
- Deprecated
craft\base\Element::getSourceUid()
. getCanonical()->uid
should be used instead.
- Deprecated
craft\base\VolumeInterface::folderExists()
. directoryExists()
should be used instead.
- Deprecated
craft\behaviors\BaseRevisionBehavior::$sourceId
. craft\base\ElementInterface::getCanonicalId()
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::$dateLastMerged
. craft\base\ElementTrait::$dateLastMerged
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::$mergingChanges
. craft\base\ElementTrait::$mergingCanonicalChanges
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::$trackChanges
.
- Deprecated
craft\behaviors\DraftBehavior::getOutdatedAttributes()
. craft\base\ElementInterface::getOutdatedAttributes()
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::getOutdatedFields()
. craft\base\ElementInterface::getOutdatedFields()
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::isAttributeModified()
. craft\base\ElementInterface::isAttributeModified()
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::isAttributeOutdated()
. craft\base\ElementInterface::isAttributeOutdated()
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::isFieldModified()
. craft\base\ElementInterface::isFieldModified()
should be used instead.
- Deprecated
craft\behaviors\DraftBehavior::isFieldOutdated()
. craft\base\ElementInterface::isFieldOutdated()
should be used instead.
- Deprecated
craft\console\controllers\ResaveController::saveElements()
. resaveElements()
should be used instead.
- Deprecated
craft\elements\Asset::KIND_FLASH
.
- Deprecated
craft\services\Content::getContentRow()
.
- Deprecated
craft\services\Content::populateElementContent()
.
- Deprecated
craft\services\Drafts::EVENT_AFTER_MERGE_SOURCE_CHANGES
.
- Deprecated
craft\services\Drafts::EVENT_AFTER_PUBLISH_DRAFT
. EVENT_AFTER_APPLY_DRAFT
should be used instead.
- Deprecated
craft\services\Drafts::EVENT_BEFORE_MERGE_SOURCE_CHANGES
.
- Deprecated
craft\services\Drafts::EVENT_BEFORE_PUBLISH_DRAFT
. EVENT_BEFORE_APPLY_DRAFT
should be used instead.
- Deprecated
craft\services\Drafts::mergeSourceChanges()
.
- Deprecated
craft\services\Drafts::publishDraft()
. applyDraft()
should be used instead.
- Deprecated
craft\web\View::getInitialDeltaValue()
.
Removed
- Removed support for the “Flash” file kind. (#7626)
Fixed
- Fixed a bug where Craft would place the
beginBody()
tag incorrectly if a template’s <body>
tag had attribute values that included >
characters. (#7779)
- Fixed a bug where updated attributes and fields weren’t getting tracked when publishing a draft or reverting an entry to a revision.
- Fixed a bug where it wasn’t easily possible to submit forms to controller actions from Live Preview pages. (#7885)
- Fixed a bug where it was possible to choose a different parent entry when editing a draft, even though the change wouldn’t stick when publishing the draft.
- Fixed a bug where changing an entry’s parent wouldn’t update any of its drafts.
- Fixed a SQL error that occurred when deleting a volume folder that had subfolders nested more than 15 levels deep. (#8073)
- Fixed a SQL error that occurred when hard-deleting a volume that had subfolders nested more than 15 levels deep. (#8073)
- Fixed a bug where exported CSV files weren’t being imported with an UTF-8 encoding by Excel. (#8067)
- Fixed a bug where Dropdown fields weren’t always saving properly within element editor slideouts, if left unchanged. (#8090)
- Fixed a bug where value normalizers for GraphQL mutations would not be executed in nested field. (#9139)
Security
- The default
allowedFileExtensions
config setting value no longer includes xml
.
";s:4:"date";s:19:"2021-07-13T00:00:00";}i:38;a:4:{s:7:"version";s:6:"3.6.18";s:8:"critical";b:0;s:5:"notes";s:2301:"Added
- Added
craft\web\Response::redirect()
.
- Added
craft\gql\handlers\Site
.
Changed
- Increased the margin around the image editor on small viewports. (#9143)
Fixed
- Fixed a button styling issue in Safari. (#8076)
- Fixed an error that occurred when running the
db/restore
command, if the info
table was missing its row. (#7028)
- Fixed an error that occurred when uninstalling a plugin via the
plugin/uninstall
command with --force
, if the plugin didn’t have a row in the plugins
table.
- Fixed a bug where element thumbnails weren’t always getting lazy-loaded properly. (#6621)
- Fixed a bug where control panel requests weren’t always redirecting to the control panel when they were supposed to. (#9081)
- Fixed a bug where control panel URLs were getting empty hashes appended to them in Firefox, adding an extra element to the browser’s session history. (#9118)
- Fixed a bug where it was impossible to use
"*"
as a value for the siteId
argument when using the GraphQL API. (#9098)
- Fixed a bug where dynamically-served control panel resources weren’t getting proper cache headers. (#9140)
- Fixed a bug where dynamically-served control panel resources weren’t 404ing if the file hashes didn’t match. (#9140)
- Fixed a bug where currency options weren’t sorted alphabetically within Number field settings. (#9141)
- Fixed a bug where
craft\helpers\Db::isNumericColumnType()
was always returning false
.
";s:4:"date";s:19:"2021-07-13T00:00:00";}i:39;a:4:{s:7:"version";s:6:"3.6.17";s:8:"critical";b:0;s:5:"notes";s:1391:"Changed
- Mobile viewports no longer zoom into inputs on focus automatically.
Fixed
- Fixed a bug where missing plugin notices for Google Cloud Storage were linking to Amazon S3 instead. (#8012)
- Fixed a bug where Number fields’ Default Value, Min Value, and Max Value settings were getting formatted with decimal values when the Intl extension wasn’t installed, causing validation errors when saving the field. (#8007)
- Fixed a type coercion related bug when passing an empty string as a dimension to Asset transforms. (#8025)
- Fixed a bug where nested element sources weren’t showing source-specific sort options. (#8026)
- Fixed a bug where volumes would lose their sort position when edited. (#8033)
- Fixed a bug where unpublished drafts were getting ignored when lazy-loading additional entries in Structure sections.
- Fixed a PHP error that occurred when indexing search keywords for a Table field with a Date or Time column. (#8061)
";s:4:"date";s:19:"2021-06-15T00:00:00";}i:40;a:4:{s:7:"version";s:6:"3.6.16";s:8:"critical";b:0;s:5:"notes";s:1499:"Added
- Added
craft\helpers\Db::supportsTimeZones()
.
Changed
- The control panel sidebar no longer shows delayed queue jobs until they’re actually executing. (#7998)
Fixed
- Fixed a bug where eager-loading entries’ authors wasn’t including pending and suspended authors. (#7963)
- Fixed a bug where not all element types’ GraphQL queries supported a
status
argument. (craftcms/gatsby-source-craft#35)
- Fixed JavaScript errors that could occur in the control panel.
- Fixed a bug where the System Messages utility was showing default messages in the user’s preferred language, even if that wasn’t one of the sites’ languages. (#7992)
- Fixed a bug where Table fields were getting duplicate search keywords, making it difficult to perform exact match searching on their values. (#7984)
- Fixed a bug where Structure section entries and categories would show “Create a new child” and “Delete (with descendants)” actions even if the structure was limited to a single level. (#7988)
";s:4:"date";s:19:"2021-06-01T00:00:00";}i:41;a:4:{s:7:"version";s:6:"3.6.15";s:8:"critical";b:0;s:5:"notes";s:2025:"Added
- Added
craft\services\Updates::getIsUpdatePending()
. (#7946)
Changed
- The
allowedFileExtensions
config setting now includes dotx
and dotm
files by default. (#7935)
- Craft now recognizes
dotx
files. (#7935)
- Updated Garnish to 0.1.44. (#7940)
Fixed
- Fixed an error that occurred when running tests that use
craft\test\fixtures\FieldLayoutFixture
.
- Fixed a SQL error that occurred when calling
craft\records\Site::getGroup()
. (#7914)
- Fixed a bug where search terms that contained camelCased attribute names could yield no results. (#7927)
- Fixed a bug where the browser would jump back to the top of the page when scrolling passed a Redactor field with a fixed toolbar. (#7888)
- Fixed a bug where the My Drafts widget wasn’t showing drafts for entries that didn’t exist in the primary site. (#7942)
- Fixed a JavaScript error that occurred when switching an entry’s type from one that had multiple tabs to one with only one. (#7943)
- Fixed a bug where nested GraphQL arguments could be parsed incorrectly. (#7534)
- Fixed a bug where public GraphQL schemas could be unavailable on environments that didn’t allow admin changes. (#7925)
";s:4:"date";s:19:"2021-05-18T00:00:00";}i:42;a:4:{s:7:"version";s:6:"3.6.14";s:8:"critical";b:0;s:5:"notes";s:3408:"Added
- Added the
permissionsPolicyHeader
config setting. (#7915)
- Added
craft\helpers\App::defaultLogTargets()
.
Changed
- The
plugin/uninstall
console command now has a --force
flag. (#7907)
craft\services\Plugins::uninstallPlugin()
now has a $force
argument. (#7907)
- Updated Yii to 2.0.42.
- Updated yii2-queue to 2.3.2. (#7773)
Fixed
- Fixed an error that could occur if
craft\web\View::registerAssetFlashes()
was called after the PHP session had closed.
- Fixed a bug where the control panel could show the wrong nag alert message for plugin licensing issues.
- Fixed a bug where control panel pages would scroll down a bit on page load, if the location hash was set to a tab ID. (#7888)
- Fixed a bug where autofocused inputs in the control panel were losing focus on page load.
- Fixed a bug where it wasn’t possible to index some volume folders with dots in their name. (#7900)
- Fixed a bug where editable tables within nested Matrix field settings were initially unresponsive when editing an existing Matrix field. (#7911)
- Fixed a bug where duplicated entries’ slugs and URIs could be incremented when changing a section’s propagation method. (#7895)
- Fixed a bug where the
Permissions-Policy
anti-FLoC header was being applied incorrectly. (#7896)
- Fixed a MySQL error that could occur when indexing search keywords which contained certain Russian characters. (#7905)
- Fixed a bug where
craft\elements\actions\Delete
wasn’t hard-deleting elements when $hard
was set to true
, if the element index wasn’t already set to query soft-deleted elements. (#7901)
- Fixed a bug where
craft\elements\actions\Delete
wasn’t clearing search indexes when $hard
was set to true
. (#7901)
- Fixed a PHP error that could occur if
config/app.php
was overriding the log
component using craft\helpers\App::logConfig()
, and expecting it to return an array with log target configs (as it used to before Craft 3.6).
- Fixed a SQL error that occurred when calling
craft\records\SiteGroup::getSites()
. (#7914)
- Fixed an error that occurred when saving a Number field with a non-numeric value. (#7917)
Security
- Fixed an XSS vulnerability.
";s:4:"date";s:19:"2021-05-11T00:00:00";}i:43;a:4:{s:7:"version";s:6:"3.6.13";s:8:"critical";b:0;s:5:"notes";s:3853:"Changed
- Improved the accessibility of Plain Text fields. (#6914)
- Improved the accessibility of color inputs. (#7320)
- Improved the accessibility of flash notices. (#7879)
- Improved the tab focus behavior. (#7140)
- The
setPasswordPath
and verifyEmailPath
config settings can now be set to absolute URLs, which will cause them to be respected when running Craft in headless mode. (#6226)
- Matrix block type settings modals now have “Apply” buttons instead of “Save”. (#7822)
- Nag alerts now have a light red background color, improving the visibility of error notices that may show up on top of them. (#7627)
- The
globals/save-content
action now accepts a fieldsLocation
param. (#7870)
- The
users/save-user
action now accepts a fieldsLocation
param. (#7870)
craft\elements\Asset::getSrcset()
now accepts an optional $transform
argument. (#7839)
- Improved the performance of
craft\services\Elements::getElementById()
and getElementByUid()
. (#7846)
craft\services\TemplateCaches::getTemplateCache()
, endTemplateCache()
, and deleteCachesByKey()
now throw an exception on console requests, if $global
isn’t true
. (#7862)
@method
tags in CustomFieldBehavior
now use $this
as the return type instead of static
. (#7873)
Fixed
- Fixed a bug where Matrix fields’ Configuration settings weren’t expanding when nested field settings got taller. (#7827)
- Fixed an error that occurred when attempting to create a new entry, if a unique URI for the entry could not be generated per its URI format. (#7863)
- Fixed a bug where it wasn’t possible to click on breadcrumb links when a flash notice was present. (#7572)
- Fixed a bug where it wasn’t possible to delete a volume folder if the physical directory didn’t exist. (#7868)
- Fixed a race condition that could result in two assets getting saved with conflicting filenames if they were both moved to the same directory at the same time. (#7866)
- Fixed an error that occurred on PHP 8. (#7848)
- Fixed a SQL error when using PHP 7.4.18 or 8.0.5 and PostgreSQL. (#7874)
Security
- Craft now sets a
Permissions-Policy: interest-cohort=()
header for all requests, opting out of FLoC tracking due to security and privacy concerns.
- Fixed an XSS vulnerability.
";s:4:"date";s:19:"2021-05-04T00:00:00";}i:44;a:4:{s:7:"version";s:8:"3.6.12.1";s:8:"critical";b:0;s:5:"notes";s:2604:"Fixed
- Fixed a bug where entry indexes weren’t showing the entries’ authors if they were pending or suspended.
- Fixed a bug where renaming an empty volume folder would create a subfolder inside it. (#7721)
- Fixed a bug where simultaneously-executed MySQL backups could result in a
my.cnf
conflict. (#7801)
- Fixed a bug where radio button labels weren’t including custom container attributes passed to the input.
- Fixed a bug where the
migrate/all
command was attempting to re-apply old content migrations when updating from Craft 3.4 or earlier. (#7818)
- Fixed a bug where assets could cause n+1 queries even when eager-loaded. (#7812)
- Fixed an error that occurred when executing a GraphQL query with nested
relatedTo*
arguments. (#7824)
- Fixed a bug where selected tabs in the control panel weren’t getting focus rings.
- Fixed a bug where it wasn’t possible to select tabs in the overflow menu via the keyboard. (#7813)
- Fixed a bug where
{% cache %}
tags’ until
params weren’t being respected. (#7826)
- Fixed a bug where the control panel JavaScript was missing several ASCII character mappings. (#7828)
- Fixed a bug where Single sections wouldn’t validate if one of their URI values contained any spaces. (#7834)
- Fixed a bug where the “Show” link on password inputs wasn’t positioned correctly for RTL languages. (#7835)
- Fixed a bug where entry queries were not returning all entries created within the last minute. (#7853)
- Fixed a bug where the
searchindex
table wasn’t getting set to the MyISAM engine for fresh installs.
Security
";s:4:"date";s:19:"2021-04-29T00:00:00";}i:45;a:4:{s:7:"version";s:6:"3.6.12";s:8:"critical";b:0;s:5:"notes";s:2976:"Changed
- Improved the focus styles throughout the control panel. (#6886)
- User activation and password reset links now point to the control panel when running Craft in headless mode. (#6226)
- Category indexes can now show a “Slug” column. (#7760)
- “Generating pending image transforms” jobs are now deprioritized. (#7778)
- Improved the performance of Recent Entries widgets. (#6655)
craft\helpers\UrlHelper::actionUrl()
now has a $showScriptName
argument, which can be set to false
to prevent the script name (index.php
) from being included in the generated URL. (Only recommended for URLs that will be used by GET requests.)
- Updated Composer to 2.0.12.
Fixed
- Fixed a bug where restored entries could get deleted by garbage collection, if their
authorId
value was set to a soft-deleted author. (#7751)
- Fixed a bug where indexing assets from the command line could work incorrectly in some cases. (#7741)
- Fixed a MySQL error that could occur if a job in the queue failed and had a very long error message.
- Fixed a bug where validation events would trigger when saving an element via
craft\services\Elements::saveElement()
, even if $runValidation
was set to false
. (#7756)
- Fixed a bug where
craft\helpers\Html::parseTag()
would parse child tags of <script>
and <style>
tags.
- Fixed a bug where pagination labels below Vue admin tables weren’t using the translatable pagination message.
- Fixed a bug where Craft would place the
beginBody()
tag incorrectly if a template’s <body>
tag included an inline arrow function (=>
). (#7779)
- Fixed a bug where action URLs were based on the current request’s host name rather than the control panel URL when running Craft in headless mode, unless the
pathParam
config setting had been set to null
. (#7783)
- Fixed a bug where the
utils/repair/section-structure
or utils/repair/category-group-structure
commands could reposition elements in the wrong order. (#7784)
";s:4:"date";s:19:"2021-04-13T00:00:00";}i:46;a:4:{s:7:"version";s:8:"3.6.11.2";s:8:"critical";b:0;s:5:"notes";s:1108:"Fixed
- Fixed a bug where Matrix field changes on the Current revision weren’t getting propagated to drafts when the “Merge changes into draft” button was clicked. (#7727)
- Fixed an error that occurred when publishing a draft with an outdated Matrix field. (#7727)
- Fixed a bug where renaming empty folders would delete them from the disk, instead. (#7721)
- Fixed a bug where the
inReverse
element query param was getting ignored when eager-loading elements. (#7737)
- Fixed a bug where the
migrate/all
command was attempting to re-apply old plugin migrations when updating from Craft 3.4 or earlier.
- Fixed a bug where action requests weren’t getting
X-Robots-Tag: none
headers in their responses. (#7738)
";s:4:"date";s:19:"2021-03-29T00:00:00";}i:47;a:4:{s:7:"version";s:8:"3.6.11.1";s:8:"critical";b:0;s:5:"notes";s:520:"Fixed
- Fixed a bug where the cached project config data wasn’t getting invalidated after applying YAML changes.
- Fixed an error that could occur when adding jobs to the queue with a custom priority, if the queue driver didn’t support priorities. (#7719)
- Fixed a bug where some field name characters were getting double-encoded in validation errors. (#7718)
";s:4:"date";s:19:"2021-03-24T00:00:00";}i:48;a:4:{s:7:"version";s:6:"3.6.11";s:8:"critical";b:0;s:5:"notes";s:4628:"Added
- Added the
andRelatedTo
element query param, for adding additional relation criteria. (#5733)
- Added the
{% script %}
tag, for outputting <script>
tags with full control over the attributes. (#7676)
- Added
craft\web\User::getToken()
.
- Added
craft\test\Craft::mockDbMethods()
.
Changed
- The Queue Manager utility now shows delayed jobs. (#7692)
- The
gc
command can now delete unneeded rows from deprecated database tables, including templatecaches
, entrydrafts
, and entryrevisions
. (#6434)
relatedTo
element query params can now be set to multiple or
relation criteria inclusively, without specifying the element
/targetElement
/sourceElement
keys. (#5733)
craft\helpers\ElementHelper::setUniqueUri()
now starts incrementing duplicate slugs with -2
instead of -1
.
craft\helpers\Queue::push()
now has $delay
and $ttr
arguments.
craft\queue\Queue::run()
now has $repeat
and $timeout
arguments.
- Updated Garnish to 0.1.41.
Deprecated
- Deprecated
craft\queue\Queue::listen()
. run()
can be used instead.
Fixed
- Fixed a bug where requests with an invalid
action
param would return a 500 status code instead of 400. (#7668)
- Fixed a bug where asset, category, and entry queries could return results when they shouldn’t. (#7678)
- Fixed a bug where users were getting logged out after changing their password. (#7682)
- Fixed an infinite loop bug that could occur when saving an element with a non-unique URI over 255 bytes long. (#7684)
- Fixed a bug where
Craft.initUiElements()
was adding rel="noopener"
and target="_blank"
to all external links, rather than just ones within the passed-in container. (#7686)
- Fixed a bug where the
queue/listen
command wasn’t always respecting exit signals. (#7704)
- Fixed a SQL error that could occur when running the
utils/repair/section-structure
or utils/repair/category-group-structure
commands. (#7699)
- Fixed an error that could occur if the project config data contained any incomplete packed associative arrays.
- Fixed a bug where
craft\helpers\Queue::push()
wasn’t respecting its $priority
argument.
- Fixed a bug where relational fields weren’t showing all of the currently selected elements if the field’s limit had decreased, making it difficult to fix the validation error. (#7707)
- Fixed a PHP error that occurred during garbage collection if the
purgeUnsavedDraftsDuration
config setting was set to a duration string. (#7714)
- Fixed a bug where project config changes could be applied incorrectly for numerically-indexed arrays with 10 or more items. (presseddigital/linkit#88)
- Fixed a JavaScript error that would occur if any elements had a
pill
class. (#7705)
- Fixed a bug where
craft\test\Craft::mockMethods()
and mockCraftMethods()
’ $constructorParams
arguments only accepted a single argument’s value, rather than an array of constructor arguments.
";s:4:"date";s:19:"2021-03-23T00:00:00";}i:49;a:4:{s:7:"version";s:6:"3.6.10";s:8:"critical";b:0;s:5:"notes";s:2028:"Added
- Added the
|httpdate
Twig filter, which can be used to format dates for HTTP headers such as Expires
. (craftcms/docs#167)
- Added
craft\events\FormActionsEvent
.
- Added
craft\web\twig\variables\Cp::EVENT_REGISTER_FORM_ACTIONS
. (#7660)
- Added
craft\web\twig\variables\Cp::prepFormActions()
.
Fixed
- Fixed a bug where console requests were logging non-error/warning logs when Dev Mode was disabled. (#7659)
- Fixed an error that could occur when updating Craft. (#7662)
- Fixed a bug where search results could yield no results if any of the search terms were MySQL fulltext stop words. (#7642)
- Fixed a bug where entries could return the wrong Matrix/Neo/Super Table blocks if the blocks were queried immediately after the entry was created via
craft\services\Elements::duplicateElement()
.
- Fixed a bug where Craft wasn’t updating the prior primary site’s project config when a new site was set as the primary in the control panel. (#7657)
- Fixed a bug where the
project-config/apply
command output didn’t make any sense at times.
- Fixed a race condition where the same queue job could get executed multiple times if there was more than one active queue worker and the database used read/write splitting.
- Fixed a race condition that could result in a SQL error if two revisions were attempted to be created for the same entry at the same time if the database used read/write splitting. (#7598)
";s:4:"date";s:19:"2021-03-09T00:00:00";}i:50;a:4:{s:7:"version";s:5:"3.6.9";s:8:"critical";b:0;s:5:"notes";s:1593:"Added
- Added
craft\helpers\Session
, which provides methods for working with PHP session variables, without creating a new PHP session if one didn’t need to exist.
Changed
- Updated Yii to 2.0.41.
- Warning and error logs are no longer included in the
stdout
log target if the CRAFT_STREAM_LOG
PHP constant is set to true
.
Fixed
- Fixed a bug where entry drafts were retaining their former parent entry relationship, if the parent entry was removed and not replaced. (#7643)
- Fixed an error that could occur during the
update
command on Windows. (#7644)
- Fixed a bug where the
utils/repair/project-config
command was removing all packed arrays, not just double-packed arrays.
- Fixed SQL errors that could occur when MySQL was running in
ANSI
/ANSI_QUOTES
modes. (#5804)
- Fixed a bug where 404s weren’t getting logged to
web-404s.log
. (#7653)
- Fixed a bug where
craft\helpers\Assets::prepareAssetName()
was appending a .
to file names that did not have an extension.
- Fixed a bug where all requests were creating PHP sessions, even if no
CraftSessionId
cookie was present.
";s:4:"date";s:19:"2021-03-05T00:00:00";}i:51;a:4:{s:7:"version";s:5:"3.6.8";s:8:"critical";b:0;s:5:"notes";s:4183:"Added
- Added the
is boolean
Twig test.
- GraphQL schemas now include settings that determine whether inactive elements, drafts, and/or revisions should be included in query results. (#7590).
- Added
craft\gql\base\ElementArguments::getRevisionArguments()
.
- Added
craft\helpers\Db::truncateTable()
.
- Added
craft\helpers\Gql::canQueryDrafts()
.
- Added
craft\helpers\Gql::canQueryInactiveElements()
.
- Added
craft\helpers\Gql::canQueryRevisions()
.
Changed
- Project config YAML files now include comments alongside UIDs, identifying the name of the component being referenced. (#7584)
- Control panel requests now explicitly send no-cache headers. (#7631)
- Plain Text fields’ Placeholder settings now support emoji on MySQL. (#7629)
deleteEntry
GraphQL mutation queries now support siteId
arguments. (#7611)
Fixed
- Fixed a bug where release dates shown in the Updates utility could be off by a day compared to the dates in the changelogs, for clients whose system clock was set to a time zone behind UTC. (#7612)
- Fixed a bug where user sessions weren’t lasting the extended duration specified by the
rememberedUserSessionDuration
config setting when the rememberMe
checkbox was ticked. (#7619)
- Fixed a bug where the Ctrl + Alt + S “Publish draft” keyboard shortcut wasn’t working for unpublished drafts on Windows computers.
- Fixed a bug where Redis connection exceptions were getting swallowed when Dev Mode was disabled, and Craft was falsely reporting that it wasn't installed yet instead. (#7617)
- Fixed a bug where Local volumes were creating extra directories in the web root when saved, if the File System Path was set to an environment variable.
- Fixed an error that could occur when indexing the search keywords for an element in a disabled site. (#6383)
- Fixed a bug where
craft\helpers\ProjectConfig::cleanupConfig
wasn’t handling packed aways properly. (#7630)
- Fixed a bug where the
_includes/forms/text.html
control panel template and Craft.ui.createTextInput()
JavaScript method weren’t respecting custom autocomplete
values.
- Fixed a bug where the “Save and continue editing” action on the Edit Entry page wasn’t retaining the currently-selected site.
- Fixed a bug where non-admins weren’t able to impersonate inactive users. (#7475)
- Fixed a bug where the Plugin Store wouldn‘t fully load when clicking the “Buy now” button on the “There are trial licenses that require payment” alert, if any of the trialled plugins were disabled.
- Fixed a bug where the Plugin Store’s cart was not showing the updates dropdown for plugin trial licenses.
- Fixed a bug where the Plugin Store was showing a generic error when a credit card was declined, instead of a more detailed error.
- Fixed an error where it wasn’t possible to delete entries from non-primary sites via GraphQL. (#7611)
- Fixed a bug where the GraphQL API could return unexpected results if multiple
relatedTo*
arguments were used. (#7534)
";s:4:"date";s:19:"2021-03-03T00:00:00";}i:52;a:4:{s:7:"version";s:5:"3.6.7";s:8:"critical";b:0;s:5:"notes";s:3318:"Added
- Added
craft\gql\base\ElementArguments::getStatusArguments()
.
- Added
craft\helpers\Gql::relatedArgumentComplexity()
.
Changed
- The Updates utility and Plugin Store now identify abandoned plugins.
- URLs within plain text email bodies are no longer wrapped with
<
and >
characters, fixing a bug where they could be removed by email providers for looking like HTML tags.
- The
relatedToAssets
, relatedToCategories
, relatedToEntries
, relatedToTags
, and relatedToUsers
GraphQL arguments now accept a list of multiple criteria sets. (#7528)
- Adjusted GraphQL complexity values for relational fields.
craft\helpers\UrlHelper::getSchemeForTokenizedUrl()
and urlWithToken()
now have a $cp
argument, indicating whether the method call is for a control panel URL.
- Updated Composer to 2.0.10.
Removed
- Removed all draft arguments for assets, categories, global sets, Matrix blocks, tags, and users when querying via the GraphQL API.
- Removed the
status
, archived
and trashed
arguments for global sets when querying via the GraphQL API.
- Removed the
status
argument for assets when querying via the GraphQL API.
Fixed
- Fixed a JavaScript error that occurred after saving an entry from the Quick Post widget, preventing the widget from being used to create a second entry. (#7582)
- Fixed a bug where it was possible to access the homepage entry from
/__home__
. (#7585)
- Fixed a bug where URL fields weren’t getting validated properly if their “Allowed URL Types” setting was set to only “Telephone” or “Email”. (#7588)
- Fixed a bug where Craft would set plugins’ base paths to the file system root directory, if they were configured with an invalid
basePath
in vendor/craftcms/plugins.php
.
- Fixed a bug where user verification and password-reset URLs would use
https
in some cases where they shouldn’t. (#7581)
- Fixed a bug where it wasn’t possible to override the
User-Agent
header sent by Guzzle from config/guzzle.php
. (#7597)
- Fixed a bug where non-admin users weren’t able to replace files from the Edit Asset page, unless they had the “Remove files and folders” permission. (#7601)
- Fixed a bug where links within info HUDs weren’t opening in a new window.
Security
- It’s no longer possible to save a Local volume with the File System Path setting set to a system directory (e.g. the
templates/
or vendor/
folders).
";s:4:"date";s:19:"2021-02-23T00:00:00";}i:53;a:4:{s:7:"version";s:5:"3.6.6";s:8:"critical";b:0;s:5:"notes";s:3289:"Added
- Added the
successMessageInput()
and failMessageInput()
Twig functions. (#7561)
- Added the
prefixGqlRootTypes
config setting, which determines whether the gqlTypePrefix
config setting should impact query
, mutation
, and subscription
types. (#7552)
- Added the
savedDraftsOnly
entry query param.
- Added
craft\behaviors\DraftBehavior::$markAsSaved
.
- Added
craft\helpers\Html::failMessageInput()
.
- Added
craft\helpers\Html::successMessageInput()
.
- Added
craft\services\Gc::deletePartialElements()
.
Changed
- The Entries index page no longer shows unpublished drafts that have never been updated with content.
- It’s now possible to delete entries from the “All entries” source. (#7545)
- Garbage collection now deletes unpublished drafts that were never updated with content, per the (no longer deprecated)
purgeUnsavedDraftsDuration
config setting.
- Garbage collection now deletes orphaned rows in the
drafts
and revisions
tables.
- Garbage collection now deletes incomplete element data, for built-in element types. (#6434)
Fixed
- Fixed a bug where Craft wasn’t deleting unpublished drafts when converting a Channel or Structure section to a Single. (#7542)
- Fixed a bug where it was possible for admins to delete a Single entry from the Edit Entry page. (#7547)
- Fixed an error that occurred when attempting to reposition an unpublished draft within a Structure section.
- Fixed a CSS bug that prevented elements within relational fields from being easily reordered. (#7549)
- Fixed a bug where the “My Drafts” dashboard widget wasn’t listing disabled drafts. (#7546)
- Fixed a bug where unpublished drafts weren’t getting soft-deleted along with other entries when their section or entry type was deleted, causing an error on the Dashboard if there was a “My Drafts” widget. (#7550)
- Fixed a bug where it wasn’t possible for non-admins to rename, replace, edit, or delete their own temporary assets. (#7420)
- Fixed a bug where Craft wasn’t fully applying custom project configs when running tests. (#7412, #1953)
- Fixed a bug where the
config/project/
folder within the test directory wasn’t getting deleted after a test suite was run.
";s:4:"date";s:19:"2021-02-15T00:00:00";}i:54;a:4:{s:7:"version";s:7:"3.6.5.1";s:8:"critical";b:0;s:5:"notes";s:207:"Fixed
- Fixed a bug where all fields were getting assigned to a field group on save, even if they weren’t global. (#7540)
";s:4:"date";s:19:"2021-02-10T00:00:00";}i:55;a:4:{s:7:"version";s:5:"3.6.5";s:8:"critical";b:0;s:5:"notes";s:3257:"Added
- Added the “My Drafts” dashboard widget. (#7517)
- Users can now be hard-deleted. (#4420)
- Added
craft\controllers\UsersController::EVENT_INVALID_USER_TOKEN
. (#7520)
- Added
craft\elements\actions\DeleteActionInterface
.
- Added
craft\events\DefineSourceSortOptionsEvent
. (#7515)
- Added
craft\events\DefineSourceTableAttributesEvent
. (#7515)
- Added
craft\events\InvalidUserTokenEvent
. (#7520)
- Added
craft\mail\Mailer::EVENT_BEFORE_PREP
. (#7501)
- Added
craft\services\Drafts::generateDraftName()
.
- Added
craft\services\ElementIndexes::EVENT_DEFINE_SOURCE_SORT_OPTIONS
. (#7515)
- Added
craft\services\ElementIndexes::EVENT_DEFINE_SOURCE_TABLE_ATTRIBUTES
. (#7515)
Changed
- The Entries index page no longer shows unpublished drafts when filtering by entry status.
- The “Drafts” entry status now shows all entry drafts; not just unpublished drafts. (#6632, #7517)
- Improved the styling of entry drafts within entry indexes. (#7517)
- The Edit Entry page now notifies the author that they’re editing a draft after closing Live Preview, if a draft was auto-created for them. (#6681)
- Field groups are now soft-deleted.
- Color fields’ text inputs are now updated based on the color input’s
input
event rather than change
. (#7529)
- Entry drafts’ search keywords now get partially indexed.
- The
resave/entries
command now supports a --drafts
flag.
Fixed
- Fixed a bug where saving an entry to a site other than the primary via GraphQL would return
null
. (#7468)
- Fixed a bug where some content could go missing when applying project config changes, if a field group had been deleted and its fields had been moved to a different group. (#7526)
- Fixed a JavaScript error that occurred when clickin on a color input. (#7529)
- Fixed an error that could occur on element index pages. (#7535)
";s:4:"date";s:19:"2021-02-10T00:00:00";}i:56;a:4:{s:7:"version";s:7:"3.6.4.1";s:8:"critical";b:0;s:5:"notes";s:179:"Fixed
- Fixed a bug where extra rows could be created in the
drafts
table. (#7542)
";s:4:"date";s:19:"2021-02-05T00:00:00";}i:57;a:4:{s:7:"version";s:5:"3.6.4";s:8:"critical";b:0;s:5:"notes";s:3250:"Added
- Added the
accessibilityDefaults
config setting, which determines users’ default accessibility preferences. (#7504)
- Added the
collation
database config setting, which determines the default collation that should be used when creating tables, rather than leaving it up to the character set’s default collation. (MySQL only.)
- Added the
db/convert-charset
command, which can be used to convert all database tables’ and textual columns’ character sets and collations in one fell swoop.
- Added
craft\base\ElementInterface::uiLabel()
.
- Added
craft\services\Drafts::insertDraftRow()
.
Changed
- Unpublished drafts with no titles are now labeled as “Untitled entry” rather than by their ID. (#7500)
- Unpublished drafts no longer show a value for URL columns in entry indexes.
- Entry selection modals no longer show unpublished drafts.
- Entry drafts no longer get a status color in entry indexes.
craft\elements\User::getDirtyAttributes()
now accurately reports changed attributes. (#7505)
Fixed
- Fixed a JavaScript error that could occur in the control panel. (#7492)
- Fixed a bug where the Edit Site page’s title could be set to the raw site’s name setting, if it was set to an environment variable.
- Fixed a bug where some ASCII character mappings included a trailing
'
character. (#7491)
- Fixed an error that could occur on the System Report utility. (#7493)
- Fixed a bug where Number field inputs were slightly indented. (#7498)
- Fixed a bug where built-in Composer features weren’t reading credentials from the global
auth.json
file. (#7466)
- Fixed a bug where unpublished drafts were revealing their temporary slugs in the URI and Slug columns of entry indexes, if a slug hadn’t been chosen yet.
- Fixed a bug that could break some autosuggest inputs.
- Fixed a bug where Craft wasn’t recording entry-specific attribute changes.
- Fixed a bug where
craft\helpers\Html::namespaceAttributes()
was ignoring url()
references if multiple existed on the same line. (#7496)
- Fixed an error that could occur when editing an element with a URL field without a value. (#7506)
- Fixed a bug where duplicating an unpublished draft wouldn’t create a new row in the
drafts
table, so the two drafts would be joined at the hip. (#7508)
";s:4:"date";s:19:"2021-02-05T00:00:00";}i:58;a:4:{s:7:"version";s:5:"3.6.3";s:8:"critical";b:0;s:5:"notes";s:1713:"Added
- Added
craft\base\ElementInterface::setUiLabel()
.
- Added
craft\fields\BaseRelationField::tableAttributeHtml()
.
- Added
craft\helpers\Cp::elementPreviewHtml()
.
Changed
- Entry indexes now include draft entries in the main entry listings. (#7401)
- Entry indexes can now show a “Drafts” column, which lists the entries’ drafts. (#7473)
- The “Publish draft” button on Edit Entry pages can now be activated using a Ctrl/Command + Alt/Option + S keyboard shortcut.
- Entry queries’
drafts
param can now be set to null
, indicating that both normal entries and drafts can be included in the results.
- Entries can now be eager-loaded with
drafts
.
craft\helpers\Cp::elementHtml
now has a $showDraftBadge
argument.
Removed
- Removed
craft\fields\BaseRelationField::elementPreviewHtml()
.
Fixed
- Fixed a bug where Edit Entry pages would get a “Create a new entry” heading when editing an existing draft entry.
- Fixed a bug where user impersonation URLs only worked for active users. (#7475)
- Fixed a bug where
craft\elements\db\ElementQuery::draftOf()
didn’t accept passing in '*'
. (#7470)
";s:4:"date";s:19:"2021-02-03T00:00:00";}i:59;a:4:{s:7:"version";s:5:"3.6.2";s:8:"critical";b:0;s:5:"notes";s:1596:"Added
- Added
craft\gql\handlers\Site
.
- Added
craft\service\Gql::handleQueryErrors()
.
Changed
- The web-based installer now respects the
postCpLoginRedirect
config setting. (#5648)
- Improved GraphQL error reporting.
craft\test\console\CommandTest::stdOut()
, outputCommand()
, and stderr()
now accept an array of possible expected strings.
- Downgraded webonyx/graphql-php to 14.4. (#7452)
Fixed
- Fixed a bug where any license key inputs on the Settings → Plugins page that were set to environment variable names would get replaced with the actual license key after a short period of time.
- Fixed a bug where some GraphQL queries could not be executed when Dev Mode was disabled. (#7452)
- Fixed a bug where GraphQL queries which set
site: '*'
would result in an error. (#5079)
- Fixed a bug where sections’ Template setting values weren’t getting auto-generated based on the Name setting, for new sections.
- Fixed a PHP error that could occur when running the
update
command if specific versions were requested.
- Fixed an error that could occur if a deprecation warning was logged before Craft was installed.
";s:4:"date";s:19:"2021-01-29T00:00:00";}i:60;a:4:{s:7:"version";s:5:"3.6.1";s:8:"critical";b:0;s:5:"notes";s:930:"Added
- Added
craft\console\ControllerTrait::checkTty()
.
Changed
- The
setup/welcome
command that is run automatically after installing Craft via composer create-project craftcms/craft
can now initiate the setup process automatically, if using Composer 2.
craft\console\Controller::$interactive
is now set to false
automatically for non-interactive shells.
Fixed
- Fixed a bug where the
migrate/all
command wasn’t working when executed from a Composer script in a non-interactive shell, unless --interactive=0
was explicitly passed. (#7381)
- Fixed an error that occurred when saving a Categories field with a branch limit. (#7449)
";s:4:"date";s:19:"2021-01-27T00:00:00";}i:61;a:4:{s:7:"version";s:7:"3.6.0.1";s:8:"critical";b:0;s:5:"notes";s:154:"Fixed
- Fixed an error that could occur when validating dates. (#7443)
";s:4:"date";s:19:"2021-01-26T00:00:00";}i:62;a:4:{s:7:"version";s:5:"3.6.0";s:8:"critical";b:0;s:5:"notes";s:25844:"Read through the Upgrading to Craft 3.6 guide before updating.
Added
- Craft now supports PHP 8. (#7050)
- Craft now requires PHP 7.2.5 or later.
- Commercial plugins now receive license keys automatically when installed as trials.
- It’s now possible for admins to purchase Craft and plugin licenses when
allowAdminChanges
is disabled.
- It’s now possible to browse the Plugin Store when
allowAdminChanges
is disabled.
- Added tablet and phone viewport emulation to Live Preview (Craft Pro only.) (#1006)
- Entries now begin life as “unpublished drafts” rather than “unsaved drafts”. They are no longer ephemeral; they will continue to exist until explicitly published or deleted. (#5661, #7216)
- It’s now possible to delete entries for a specific site, if their section’s propagation method is set to “Let each entry choose which sites it should be saved to”. (#7190)
- Added the “Copy impersonation URL” user action, which generates a URL that can be pasted into a private window to impersonate the user without losing the current session. (#7281)
- User indexes can now include a “Groups” column. (#7211)
- Volumes now have “Title Translation Method” and “Title Translation Key Format” settings, like entry types. (#7135)
- It’s now possible to set sites’ Name settings to environment variables.
- URL fields now have an “Allowed URL Types” setting, which adds the ability to accept telephone and email URLs. (#5497)
- Added the “Captions/Subtitles” file kind. (#7304)
- Added the
users/list-admins
and users/set-password
commands. (#7067)
- Added the
disableGraphqlTransformDirective
config setting. (#6466)
- Added the
enableGraphqlIntrospection
config setting. (#6466)
- Added the
handleCasing
config setting, which determines the default casing that should be used when autogenerating component handles. (#4276)
- Added the
maxGraphqlComplexity
config setting. (#6466)
- Added the
maxGraphqlDepth
config setting. (#6466)
- Added the
maxGraphqlResults
config setting. (#6466)
- Added the
rasterizeSvgThumbs
config setting. (#7146)
- Added the
sanitizeCpImageUploads
config setting, which determines whether images uploaded via the control panel should be sanitized. (#3060)
- Added the
{% tag %}
Twig tag.
- Added the
withGroups
user query param.
- Added the
relatedToAssets
, relatedToCategories
, relatedToEntries
, relatedToTags
, and relatedToUsers
arguments to GraphQL queries. (#7110)
- Added the
isUnpublishedDraft
GraphQL field.
- Added
craft\base\ApplicationTrait::getFormattingLocale()
, which returns the locale that should be used for date/time formatting.
- Added
craft\base\ElementExporterInterface::isFormattable()
.
- Added
craft\base\ElementInterface::getIsUnpublishedDraft()
.
- Added
craft\base\FieldInterface::includeInGqlSchema()
. (#7244)
- Added
craft\base\FieldInterface::useFieldset()
, which custom fields can override to return true
if a <fieldset>
and <legend>
should be used, rather than a <div>
and <label>
.
- Added
craft\base\VolumeInterface::createDirectory()
.
- Added
craft\base\VolumeInterface::deleteDirectory()
.
- Added
craft\base\VolumeInterface::getDateModified()
.
- Added
craft\base\VolumeInterface::getFileSize()
.
- Added
craft\base\VolumeInterface::renameDirectory()
.
- Added
craft\base\VolumeTrait::$titleTranslationKeyFormat
.
- Added
craft\base\VolumeTrait::$titleTranslationMethod
.
- Added
craft\console\Controller::passwordPrompt()
.
- Added
craft\console\Request::getHadToken()
.
- Added
craft\console\Request::getSiteToken()
.
- Added
craft\console\Request::setToken()
.
- Added
craft\controllers\BaseEntriesController::enforceDeleteEntryPermissions()
.
- Added
craft\elements\db\ElementQueryInterface::afterPopulate()
.
- Added
craft\elements\db\ElementQueryInterface::createElement()
.
- Added
craft\elements\Entry::EVENT_DEFINE_ENTRY_TYPES
. (#7136)
- Added
craft\elements\Entry::getAvailableEntryTypes()
.
- Added
craft\events\CreateFieldLayoutFormEvent
.
- Added
craft\events\DefineEntryTypesEvent
.
- Added
craft\events\RegisterGqlArgumentHandlersEvent
.
- Added
craft\events\SearchEvent::$results
. (#7237)
- Added
craft\fieldlayoutelements\AssetTitleField
.
- Added
craft\fieldlayoutelements\BaseField::useFieldset()
.
- Added
craft\fields\Url::TYPE_EMAIL
.
- Added
craft\fields\Url::TYPE_TEL
.
- Added
craft\fields\Url::TYPE_URL
.
- Added
craft\gql\ArgumentManager
.
- Added
craft\gql\base\ArgumentHandler
.
- Added
craft\gql\base\ArgumentHandlerInterface
.
- Added
craft\gql\base\Generator
.
- Added
craft\gql\base\RelationArgumentHandler
.
- Added
craft\gql\ElementQueryConditionBuilder::setArgumentManager()
.
- Added
craft\gql\handlers\RelatedAssets
.
- Added
craft\gql\handlers\RelatedCategories
.
- Added
craft\gql\handlers\RelatedEntries
.
- Added
craft\gql\handlers\RelatedTags
.
- Added
craft\gql\handlers\RelatedUsers
.
- Added
craft\gql\types\input\criteria\Asset
.
- Added
craft\gql\types\input\criteria\Category
.
- Added
craft\gql\types\input\criteria\Entry
.
- Added
craft\gql\types\input\criteria\Tag
.
- Added
craft\gql\types\input\criteria\User
.
- Added
craft\helpers\App::createFormattingLocale()
.
- Added
craft\helpers\App::phpSizeToBytes()
.
- Added
craft\helpers\Cp::checkboxFieldHtml()
.
- Added
craft\helpers\Cp::checkboxSelectFieldHtml()
.
- Added
craft\helpers\Cp::colorFieldHtml()
.
- Added
craft\helpers\Cp::editableTableFieldHtml()
.
- Added
craft\helpers\Cp::lightswitchFieldHtml()
.
- Added
craft\helpers\Cp::renderTemplate()
.
- Added
craft\helpers\Cp::selectFieldHtml()
.
- Added
craft\helpers\Cp::selectHtml()
.
- Added
craft\helpers\Cp::textareaFieldHtml()
.
- Added
craft\helpers\Cp::textFieldHtml()
.
- Added
craft\helpers\Diff
.
- Added
craft\helpers\Gql::eagerLoadComplexity()
.
- Added
craft\helpers\Gql::nPlus1Complexity()
.
- Added
craft\helpers\Gql::singleQueryComplexity()
.
- Added
craft\helpers\Template::paginateQuery()
.
- Added
craft\i18n\I18N::validateAppLocaleId()
.
- Added
craft\i18n\Locale::setDateTimeFormats()
. (#7394)
- Added
craft\log\Dispatcher
.
- Added
craft\models\FieldLayout::EVENT_CREATE_FORM
. (#7258)
- Added
craft\models\Site::getName()
.
- Added
craft\models\Site::setBaseUrl()
.
- Added
craft\models\Site::setName()
.
- Added
craft\mutex\MysqlMutex
.
- Added
craft\mutex\PgsqlMutex
.
- Added
craft\services\Assets::$generatePendingTransformsViaQueue
. (#7360)
- Added
craft\services\Drafts::EVENT_AFTER_APPLY_DRAFT
.
- Added
craft\services\Drafts::EVENT_BEFORE_APPLY_DRAFT
.
- Added
craft\services\Drafts::publishDraft()
.
- Added
craft\services\Globals::deleteSet()
.
- Added
craft\services\Globals::reset()
.
- Added
craft\services\Gql::GRAPHQL_COMPLEXITY_CPU_HEAVY
.
- Added
craft\services\Gql::GRAPHQL_COMPLEXITY_EAGER_LOAD
.
- Added
craft\services\Gql::GRAPHQL_COMPLEXITY_NPLUS1
.
- Added
craft\services\Gql::GRAPHQL_COMPLEXITY_QUERY
.
- Added
craft\services\Gql::GRAPHQL_COMPLEXITY_SIMPLE_FIELD
.
- Added
craft\services\Structures::applyBranchLimitToElements()
.
- Added
craft\services\Structures::fillGapsInElements()
.
- Added
craft\test\ActiveFixture
.
- Added
craft\test\DbFixtureTrait
.
- Added
craft\test\fixtures\elements\BaseContentFixture
.
- Added
craft\test\fixtures\elements\BaseElementFixture
.
- Added
craft\test\TestSetup::SITE_URL
.
- Added
craft\validators\UrlValidator::URL_PATTERN
.
- Added
craft\web\Request::getHadToken()
.
- Added
craft\web\Request::getSiteToken()
.
- Added
craft\web\Request::setToken()
.
- Added the
Craft.index()
JavaScript method.
Changed
- Relational fields now include all related elements’ titles as search keywords, including disabled elements. (#7079)
- Improved the performance of project config change diffs. (#7218)
- Improved the accessibility of info icons.
- Checkbox and radio button group fields now use
<fieldset>
s and <legend>
s throughout the control panel.
- Field containers no longer set the
aria-describedby
attribute, leaving it up to the actual inputs to do so. (#7365)
- Number field settings and input values are now fully formatted, unless the Preview Format setting is set to “Unformatted”.
- The Settings → Plugin page now shows which developer created each plugin. (#7254)
- Field layout designers will no longer create a new tab if no tab name is entered in the prompt. (#7333)
- Site URLs that are generated on the front-end of disabled sites now include the
siteToken
param, if one was passed to the current page. (#7264)
- Mutex lock names are now prefixed with the application ID, to avoid lock conflicts if two Craft installs shared the same database. (#7384)
- Action URLs are now always based on the control panel URL when running Craft in headless mode. (#5553)
- Renamed the
backup
and restore
commands to db/backup
and db/restore
. (#7023)
- The
migrate/all
command now lists the migrations that will be applied. (#7381)
- The
project-config/apply
command now displays a list of changes it is applying. (#7235)
- The
allowedFileExtensions
config setting now includes several file extensions used by caption and subtitle file formats by default. (#7304)
- When applying project config changes, Craft now installs new plugins before uninstalling removed plugins. (#7436)
- The
currency
, filesize
, number
, percentage
, and timestamp
Twig filters now return the passed-in value verbatim if it wasn’t a valid number.
- The
withoutKey
Twig filter can now accept an array, for removing multiple keys at once. (#7230)
- It’s now possible to add new log targets by overriding
components.log.targets
in config/app.php
, rather than the entire log
component config.
- The
_includes/forms/field.html
control panel template and craft\helpers\Cp::fieldHtml()
now accept a fieldset
variable/config key, which can be set to true
to cause the resulting field to be a <fieldset>
instead of a <div>
, and the label to be a <legend>
instead of a <label>
.
- The
_includes/forms/field.html
control panel template and craft\helpers\Cp::fieldHtml()
now accept an instructionsPosition
variable/config key, which can be set to 'after'
to cause the field instructions to be rerdered after the input instead of before.
- The
_includes/forms/field.html
control panel template and craft\helpers\Cp::fieldHtml()
now accept a fieldLabel
variable/config key, which will take precedence over label
.
- The
checkboxField
macro within the _includes/forms.html
control panel template now returns a <fieldset>
if a fieldLabel
config key was passed.
craft\base\ElementExporterInterface::export()
can now return raw response data, a callable, or a resource, if isFormattable()
returns false
. If a callable or resource is returned, it will be streamed to the browser. (#7148)
craft\behaviors\EnvAttributeParserBehavior::$attributes
can now be set to an array with key/value pairs, where the key is the attribute name, and the value is the raw (unparsed) value, or a callable that returns the raw value.
craft\behaviors\EnvAttributeParserBehavior::$attributes
can now be set to an array with key/value pairs, where the key is the attribute name, and the value is the raw (unparsed) value, or a callable that returns the raw value.
craft\db\Connection::getPrimaryKeyName()
, getForeignKeyName()
, and getIndexName()
now generate completely random object names, rather than basing them on a table name, etc. (#7153)
craft\base\ApplicationTrait::getLocale()
now returns the same locale that the application language is set to.
craft\helpers\Cp::fieldHtml()
now accepts a control panel template path, prefixed with template:
.
craft\helpers\Gql::isSchemaAwareOf()
, extractAllowedEntitiesFromSchema()
, canSchema()
, extractEntityAllowedActions()
, canMutateEntries()
, canMutateTags()
, canMutateGlobalSets()
, canMutateCategories()
, canMutateAssets()
, canQueryEntries()
, canQueryAssets()
, canQueryCategories()
, canQueryTags()
, canQueryGlobalSets()
, and canQueryUsers()
now have $schema
arguments.
craft\models\Site::$baseUrl
is now a magic property, which returns the parsed base URL. (#3964)
craft\models\Site::$name
is now a magic property, which returns the parsed site name. (#3964)
craft\models\Site::getBaseUrl()
now has a $parse
argument, which can be set to false
to return the raw (unparsed) base URL.
craft\services\Composer::install()
no longer has an $allowlist
argument.
craft\services\Gql::getValidationRules()
now has an $isIntrospectionQuery
argument.
Craft.formatNumber()
and other D3-based number formatting now uses a dynamically-generated locale definition based on info pulled from the application’s formatting locale. (#7341)
- Craft no longer reports PHP deprecation errors.
- Exception JSON responses now include
exception
, file
, line
, and trace
keys. (#7406)
- GraphQL queries now support eager-loading for arguments provided as input objects.
- Made it easier to extend Craft’s Codeception testing module with custom code. (#7339)
- Updated Yii to 2.0.40.
- Updated Guzzle to 7.x, for projects that don’t have any plugins that require Guzzle 6. (#6997)
- Updated Composer to 2.0.8.
- Updated LitEmoji to 2.x.
- Updated the Symfony Yaml component to 5.x.
- Updated svg-sanitizer to 0.14.
- Updated webonyx/graphql-php to 14.x.
Deprecated
- Deprecated the
backup
and restore
commands.
- Deprecated the
purgeUnsavedDraftsDuration
config setting.
- Deprecated the
siteName
config setting. Sites’ Name settings should be set to environment variables instead.
- Deprecated the
siteUrl
config setting. Sites’ Base URL settings should be set to aliases or environment variables instead. (#3205)
- Deprecated the
relatedToAll
GraphQL query argument. relatedTo: ["and", ...ids]
should be used instead.
- Deprecated the
isUnsavedDraft
GraphQL field.
- Deprecated
craft\base\Element::getIsUnsavedDraft()
. getIsUnpublishedDraft()
should be used instead.
- Deprecated
craft\base\VolumeInterface::createDir()
. createDirectory()
should be used instead.
- Deprecated
craft\base\VolumeInterface::deleteDir()
. deleteDirectory()
should be used instead.
- Deprecated
craft\base\VolumeInterface::getFileMetadata()
. getFileSize()
and getDateModified()
should be used instead.
- Deprecated
craft\base\VolumeInterface::renameDir()
. renameDirectory()
should be used instead.
- Deprecated
craft\db\Connection::trimObjectName()
.
- Deprecated
craft\gql\base\Resolver::getArrayableArguments()
.
- Deprecated
craft\gql\base\Resolver::prepareArguments()
.
- Deprecated
craft\helpers\App::logConfig()
.
- Deprecated
craft\helpers\Template::paginateCriteria()
. paginateQuery()
should be used instead.
- Deprecated
craft\services\Categories::applyBranchLimitToCategories()
. craft\services\Structures::applyBranchLimitToElements()
should be used instead.
- Deprecated
craft\services\Categories::fillGapsInCategories()
. craft\services\Structures::fillGapsInElements()
should be used instead.
- Deprecated
craft\services\Composer::$disablePackagist
.
- Deprecated
craft\services\Drafts::applyDraft()
. publishDraft()
should be used instead.
- Deprecated
craft\services\Drafts::EVENT_AFTER_APPLY_DRAFT
. EVENT_AFTER_PUBLISH_DRAFT
should be used instead.
- Deprecated
craft\services\Drafts::EVENT_BEFORE_APPLY_DRAFT
. EVENT_BEFORE_PUBLISH_DRAFT
should be used instead.
- Deprecated
craft\services\Drafts::purgeUnsavedDrafts()
.
- Deprecated
craft\test\Fixture
. craft\test\ActiveFixture
should be used instead.
- Deprecated
craft\web\View::$minifyCss
.
- Deprecated
craft\web\View::$minifyJs
.
- Deprecated
craft\web\View::renderTemplateMacro()
.
Removed
- Removed the “Placeholder” setting from URL fields. (#7303)
- Removed
craft\controllers\ElementIndexesController::actionCreateExportToken()
.
- Removed
craft\controllers\ExportController
.
- Removed
craft\services\Api::getComposerWhitelist()
.
- Removed
craft\test\fixtures\elements\ElementFixture
. craft\test\fixtures\elements\BaseElementFixture
or BaseContentFixture
should be used instead.
- Removed
craft\test\fixtures\FieldLayoutFixture::deleteAllByFieldHandle()
.
- Removed
craft\test\fixtures\FieldLayoutFixture::extractTabsFromFieldLayout()
.
- Removed
craft\test\fixtures\FieldLayoutFixture::getTabsForFieldLayout()
.
- Removed
craft\test\fixtures\FieldLayoutFixture::linkFieldToLayout()
.
- Removed Minify and jsmin-php.
Fixed
- Fixed an error that occurred when a schema change was made within a transaction, if using MySQL and PHP 8. (#7174)
- Fixed a bug where asset queries’
withTransforms
param wasn’t being respected for eager-loaded assets. (#6140)
- Fixed a bug where
craft\db\Connection::getPrimaryKeyName()
, getForeignKeyName()
, and getIndexName()
could generate non-unique object names. (#7153)
- Fixed a bug where number strings were not correctly typecast to the right PHP numeric type when using the Number GraphQL type.
- Fixed a bug where it wasn’t possible to save a Global set with a predefined UID.
- Fixed a bug where
craft\helpers\Db::prepareValuesForDb()
would omit or JSON-encode DateTime
objects, depending on the PHP version, rather than converting them to ISO-8601-formatted strings.
- Fixed a bug where info icons’ content was focusable before the icon was activated. (#7257)
- Fixed a bug where generated URLs would include the token from the current request, even if it had expired or met its usage limit.
- Fixed a bug where Number field settings and input values could be stored incorrectly if the user’s formatting locale used a different decimal character that the application language.
- Fixed a MySQL deadlock error that could occur when running background jobs. (#7179)
Security
- The default
allowedFileExtensions
config setting value no longer includes htm
or html
.
";s:4:"date";s:19:"2021-01-26T00:00:00";}i:63;a:4:{s:7:"version";s:8:"3.5.19.1";s:8:"critical";b:0;s:5:"notes";s:154:"Fixed
- Fixed an error that could occur when validating dates. (#7459)
";s:4:"date";s:19:"2021-01-28T00:00:00";}i:64;a:4:{s:7:"version";s:6:"3.5.19";s:8:"critical";b:0;s:5:"notes";s:306:"Changed
- The control panel is now fully translated in all supported languages.
Fixed
- Fixed a bug where Date fields with existing values were always considered dirty when saving an entry. (#7404)
";s:4:"date";s:19:"2021-01-26T00:00:00";}i:65;a:4:{s:7:"version";s:6:"3.5.18";s:8:"critical";b:0;s:5:"notes";s:4111:"Changed
- Improved the accessibility of lightswitches in the control panel. (#7313)
- Improved the accessibility of the Login page. (#7268, #7287, #7288)
- Improved the accessibility of Number fields. (#7367)
- Added
aria-label
or aria-hidden
attributes to control panel icons, where appropriate. (#7302)
- Dynamic subfolder paths in Assets fields can now output
:ignore:
to avoid an invalid subpath error if no segment is intended. (#7353)
- Improved the error message that is output when running the
clear-caches/cp-resources
command, if the @webroot
alias isn’t explicitly set. (#7286)
craft\i18n\I18N::getFormatter()
now instantiates the formatter via Craft::createObject()
. (#7341)
Fixed
- Fixed a bug where auto-created Matrix blocks were taking over the focus when creating a new entry. (#7363)
- Fixed an error that could occur due to a race condition when generating
CustomFieldBehavior
classes. (#7379)
- Fixed a bug where field layout tabs’ settings buttons could become inaccessible if the tab name began with a long word without any hyphens. (#7298)
- Fixed a bug where Dropdown, Multi-select, and Number fields’ inputs weren’t getting
id
attributes that matched their labels’ for
attributes. (#7319)
- Fixed a bug where week day and month names were being translated based on the current formatting locale, rather than the current language. (#7312)
- Fixed a bug where Matrix blocks weren’t getting validated when autosaving entry drafts.
- Fixed an error that could occur when saving elements with Matrix fields, if there were any custom fields whose handles conflicted with
craft\elements\db\ElementQuery
getter methods, such as criteria
. (#7335)
- Fixed a bug where it wasn’t possible to upload some file types via GraphQL mutations. (#7327)
- Fixed an error that could occur on console requests if Craft didn’t think it was installed yet. (#7309)
- Fixed a bug where clearing control panel resources would delete the
.gitignore
file as well. (#7361)
- Fixed a bug where user registration forms could get a “Username cannot be blank” error even if the
useEmailAsUsername
config setting was enabled. (#7357)
- Fixed a bug where
craft\elements\Asset::getSrcset()
could return the wrong value if the asset had a named transform set on it. (#7352)
- Fixed a bug where the “All” checkbox label was getting HTML-encoded when using
Craft.ui.createCheckboxSelect()
.
- Fixed a bug where
Craft.formatNumber()
could format numbers based on the user’s preferred language rather than the preferred formatting locale.
";s:4:"date";s:19:"2021-01-19T00:00:00";}i:66;a:4:{s:7:"version";s:8:"3.5.17.1";s:8:"critical";b:0;s:5:"notes";s:789:"Fixed
- Fixed a bug where search keywords weren’t getting normalized based on the selected site when searching for elements in the control panel. (#3145)
- Fixed a bug where element indexes’ custom header column headings weren’t translatable. (#7272)
- Fixed a bug where the
gc
command would delete all soft-deleted items when --interactive=0
was passed. (#7280)
- Fixed an error that occurred when uploading a file directly to an Assets field within a new Matrix block. (#7284)
";s:4:"date";s:19:"2020-12-17T00:00:00";}i:67;a:4:{s:7:"version";s:6:"3.5.17";s:8:"critical";b:0;s:5:"notes";s:6662:"Added
- Edit Section and Edit Entry Type pages now have a “Save and continue editing” Save menu option, and the Ctrl/Command + S keyboard shortcut is now assigned to that. (#2872)
- Added the
fullSchema
option to the graphql/dump-schema
and graphql/print-schema
commands. (#7226)
Changed
- Improved accessibility throughout the control panel. (#7231)
- The Username, First Name, Last Name, Email, and New Password fields on Edit User pages now prevent LastPass from autofilling them. (#7177)
- Field layout elements’ settings HUDs now automatically set the focus on the first text input when opened. (#7175)
- Field instructions within the details pane are now replaced with info icons. (#7180)
- Panes with
overflow: auto
and no focusable content within them now have tabindex="0"
attributes, so their content can be keyboard-scrollable on Chromium and WebKit-based browsers. (#7236)
- The
generateTransformsBeforePageLoad
config setting is now automatically enabled when rendering emails. (#7267)
- It’s now possible to pass arrays to relational fields’ element query params which begin with
':empty:'
, to fetch elements where the relational field is either empty or has a certain value. (#7256)
users/set-password
requests now include a status
key in JSON responses, set to the user’s status. (#7239)
Fixed
- Fixed a bug where
craft\base\Field::isFresh()
could return the wrong result.
- Fixed a bug where required Checkboxes, Dropdown, Multi-select, and Radio Button fields within Matrix blocks could cause validation errors. (#7205)
- Fixed a bug where assets could be uploaded to a folder named after the primary site rather than the selected site, when uploaded via an Assets field in a global set, if the field had a dynamic upload path that contained
{site.handle}
. (#7213)
- Fixed a PHP error that could occur when running functional tests. (#7207)
- Fixed a bug where the plugin installer wasn’t always handling plugins’ post-install redirects correctly. (#7204)
- Fixed a bug where the
siteName
and siteUrl
config settings could get hard-coded into the project config when the project config was rebuilt. (#7208)
- Fixed a bug where sites’ Name setting would show the
siteName
config setting value rather than the stored value, if it was set.
- Fixed a bug where
craft\elements\Asset::getSrcset()
would not respect some of the properties of the transform set on the asset. (#7193)
- Fixed a bug where WebP images were not transformable, even if the server was configured for it. (#7170)
- Fixed a bug where the image editor could save an image incorrectly, if the
upscaleImages
config setting was set to false
.
- Fixed a bug where it wasn’t possible to install a plugin if it had a row in the
plugins
table, but it wasn’t in the project config. (#7229)
- Fixed a bug where Craft wasn’t always respecting plugins’
minVersionRequired
. (#7191)
- Fixed a bug where
craft\elements\db\ElementQuery::getCriteria()
wasn’t including custom field criteria values. (#7225)
- Fixed a MySQL deadlock error that could occur when running background jobs. (#7179)
- Fixed a bug where Craft was responding to set-password requests for pending users as if they had been activated, even if something prevented them from being activated. (#7239)
- Fixed a bug where the
|attr
Twig filter wasn’t removing class
and style
attributes when they were set to false
or null
. (#7234)
- Fixed a bug where eager-loading would load incorrect elements in some cases when using GraphQL API.
- Fixed a bug where select inputs could bleed out of their container divs. (#7183)
- Fixed a bug where Edit Entry pages would show “Save and add another” and “Save as a new entry” action options for users who didn’t have permission to create new entries in the section. (#7232)
- Fixed a bug where some control panel SVG icons had conflicting IDs. (#7247)
- Fixed a bug where it wasn’t possible to set multiple options on Checkboxes and Multi-select fields when saving elements via GraphQL mutations. (#7197)
- Fixed a bug where users were able to delete entries if they had the “Delete other authors’ entries” permission but not the “Delete entries” permission. (#7233)
- Fixed a bug where Checkboxes, Dropdown, Multi-select, and Radio Buttons fields’ values weren’t getting translated on element indexes. (#7271)
";s:4:"date";s:19:"2020-12-15T00:00:00";}}s:13:"phpConstraint";s:7:">=7.2.5";s:11:"packageName";s:12:"craftcms/cms";}s:7:"plugins";a:8:{s:5:"blitz";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:24:{i:0;a:4:{s:7:"version";s:6:"3.12.8";s:8:"critical";b:0;s:5:"notes";s:230:"Fixed
- Fixed a bug in which the "Served by Blitz" comment was not respecting the page specific options in the first request (#459).
";s:4:"date";s:19:"2023-01-13T00:00:00";}i:1;a:4:{s:7:"version";s:6:"3.12.7";s:8:"critical";b:0;s:5:"notes";s:198:"Changed
- Improved the performance of refresh job requests when cache generation is disabled (#456).
";s:4:"date";s:19:"2022-11-28T00:00:00";}i:2;a:4:{s:7:"version";s:6:"3.12.6";s:8:"critical";b:0;s:5:"notes";s:91:"Changed
- The cache is now purged at most once per cache refresh.
";s:4:"date";s:19:"2022-08-22T00:00:00";}i:3;a:4:{s:7:"version";s:6:"3.12.5";s:8:"critical";b:0;s:5:"notes";s:202:"Fixed
- Fixed an issue in which expiry dates were not being added or updated for pending entries (#422).
";s:4:"date";s:19:"2022-06-22T00:00:00";}i:4;a:4:{s:7:"version";s:6:"3.12.4";s:8:"critical";b:0;s:5:"notes";s:173:"Fixed
- Fixed a bug introduced in 3.12.3 when running PHP version 7 (#401).
";s:4:"date";s:19:"2022-05-03T00:00:00";}i:5;a:4:{s:7:"version";s:6:"3.12.3";s:8:"critical";b:0;s:5:"notes";s:206:"Fixed
- Fixed a bug in which queue drivers that do not support priorities were throwing an exception (#400).
";s:4:"date";s:19:"2022-05-03T00:00:00";}i:6;a:4:{s:7:"version";s:6:"3.12.2";s:8:"critical";b:0;s:5:"notes";s:467:"Changed
- Improved instruction text for
Query String Caching
setting and cleaned up settings elements.
Fixed
- Fixed a bug in which the
permissionsPolicyHeader
and disallowRobots
general config settings were being accessed without ensuring that they exist first, since they were added in Craft 3.x (#398).
";s:4:"date";s:19:"2022-04-26T00:00:00";}i:7;a:4:{s:7:"version";s:6:"3.12.1";s:8:"critical";b:0;s:5:"notes";s:347:"The cache should be manually refreshed following this update in order to ensure the fix is applied.
Fixed
- Fixed responses being too eagerly cached, resulting in unintentionally cached pages (#397).
";s:4:"date";s:19:"2022-04-14T00:00:00";}i:8;a:4:{s:7:"version";s:6:"3.12.0";s:8:"critical";b:0;s:5:"notes";s:686:"Added
- Added
beforeRefreshCacheTags
and afterRefreshCacheTags
events to the RefreshCacheService
class (#386).
Changed
- Cached page responses now include the headers that Craft normally adds (#385).
Fixed
- Fixed deployers not being added as queue jobs when running via a console command (#384).
- Fixed exception handling in GitWrapper version 3.
";s:4:"date";s:19:"2022-04-11T00:00:00";}i:9;a:4:{s:7:"version";s:6:"3.11.2";s:8:"critical";b:0;s:5:"notes";s:415:"Fixed
- Fixed URL encoding of query strings which could prevent server rewrites from finding cached URIs (#365).
- Fixed a bug in which an error was thrown if a site URL contained a colon in the path using the file storage driver (#369).
";s:4:"date";s:19:"2022-03-03T00:00:00";}i:10;a:4:{s:7:"version";s:6:"3.11.1";s:8:"critical";b:0;s:5:"notes";s:751:"Changed
- The dynamic content inject script now only makes a single AJAX request per unique URL, including CSRF inputs and tokens (#329).
- The refresh cache job now ignores exceptions when executing element queries (#355).
Fixed
- Fixed a bug in which the URI passed into
craft.blitz.getUri()
was being converted into an action URL (#361).
- Fixed a bug in which the query string was not being removed from a requested URI before determining the mime type.
";s:4:"date";s:19:"2021-12-21T00:00:00";}i:11;a:4:{s:7:"version";s:6:"3.11.0";s:8:"critical";b:0;s:5:"notes";s:691:"Added
- Added a duration to the Yii cache storage driver that is set from the value of the cache options
cacheDuration
property, which defaults to the cacheDuration
config setting (#353).
Changed
- Changed the SEOmatic integration to no longer trigger a refresh of single URIs, since Blitz takes care of those cases.
Fixed
- Fixed a bug in the element changed behavior logic that was not detecting modified fields and attributes in updated entries and therefore not refreshing cached pages in Craft 3.7.5 and above.
";s:4:"date";s:19:"2021-11-15T00:00:00";}i:12;a:4:{s:7:"version";s:6:"3.10.8";s:8:"critical";b:0;s:5:"notes";s:334:"The cache should be manually refreshed following this update in order to ensure the fix is applied.
Fixed
- Fixed action URIs by switching to using absolute URIs in template tags (#352).
";s:4:"date";s:19:"2021-11-02T00:00:00";}i:13;a:4:{s:7:"version";s:6:"3.10.7";s:8:"critical";b:0;s:5:"notes";s:228:"Fixed
- Fixed another bug in which pages in multi-site setups with subdirectories were not being cached to the correct URI (#351).
";s:4:"date";s:19:"2021-10-23T00:00:00";}i:14;a:4:{s:7:"version";s:6:"3.10.6";s:8:"critical";b:0;s:5:"notes";s:222:"Fixed
- Fixed a bug in which pages in multi-site setups with subdirectories were not being cached to the correct URI (#351).
";s:4:"date";s:19:"2021-10-22T00:00:00";}i:15;a:4:{s:7:"version";s:6:"3.10.5";s:8:"critical";b:0;s:5:"notes";s:476:"Added
- Added
beforeDeleteUris
, afterDeleteUris
, beforeDeleteAll
and afterDeleteAll
events to BaseCacheStorage
(#337).
Fixed
- Fixed a bug in which the page trigger was being stripped from URLs before caching (#350).
";s:4:"date";s:19:"2021-10-21T00:00:00";}i:16;a:4:{s:7:"version";s:6:"3.10.4";s:8:"critical";b:0;s:5:"notes";s:701:"Changed
- The URL and query string is now URL-decoded in order to ensure that the requested site URI should be cached (#344).
- Changed action URIs to relative URIs in template tags (#345).
- Element queries are no longer cached when a query contains an expression criteria (#346).
- The deployer no longer removes files when pages are cleared from the cache (#348).
";s:4:"date";s:19:"2021-10-18T00:00:00";}i:17;a:4:{s:7:"version";s:6:"3.10.3";s:8:"critical";b:0;s:5:"notes";s:378:"Changed
- Improved the detection of whether a new entry was created in Craft CMS version 3.7.5 and above.
Security
- Query string paths are now validated to be at least one level deep if URLs with query strings are set to be cached as unique pages (#343).
";s:4:"date";s:19:"2021-09-05T00:00:00";}i:18;a:4:{s:7:"version";s:6:"3.10.2";s:8:"critical";b:0;s:5:"notes";s:138:"Fixed
- Fixed the cache not being refreshed when a new entry was created with Craft CMS version 3.7.x installed.
";s:4:"date";s:19:"2021-07-21T00:00:00";}i:19;a:4:{s:7:"version";s:6:"3.10.1";s:8:"critical";b:0;s:5:"notes";s:247:"Fixed
- Fixed a database migration error that could occur when Craft CMS is updated to version 3.7.0 before Blitz’s own migrations have run (#332).
";s:4:"date";s:19:"2021-07-19T00:00:00";}i:20;a:4:{s:7:"version";s:6:"3.10.0";s:8:"critical";b:0;s:5:"notes";s:1089:"Added
- Added
paginate
as a page specific option for automating the warming of paginated URIs (#319).
- Added user permissions for the refresh site utility (#214).
- Added the
includedQueryStringParams
config setting that compares query string params using regular expressions (#326).
- Added the
warmPagesWithQueryStringParams
config setting that determines whether pages containing query string parameters should be warmed (#326).
Changed
- Front-end API requests now run the queue so that actions complete fully.
Fixed
- Fixed a bug in which expired entries were not being refreshed (#320).
";s:4:"date";s:19:"2021-07-05T00:00:00";}i:21;a:4:{s:7:"version";s:5:"3.9.0";s:8:"critical";b:0;s:5:"notes";s:1358:"Added
- Added the ability to refresh a cached site with the new
Refresh Site
utility and refresh-site
console command (#214).
- Added the
isCacheableRequest
event to CacheRequestService
(#306).
- Added the
queueJobTtr
and maxRetryAttempts
config settings (#308).
Changed
- Improved console command messaging when a component is disabled.
- Changed the token request parameter check to use the value defined in the general config settings (#307).
- The site is now determined by matching the site with the longest base URL that matches a provided URL (#309, #310).
Fixed
- Fixed an error that could occur when an empty response was encountered with the local warmer (#305).
";s:4:"date";s:19:"2021-05-03T00:00:00";}i:22;a:4:{s:7:"version";s:5:"3.8.0";s:8:"critical";b:0;s:5:"notes";s:1424:"Added
- Added a
Create Brotli File
setting to the File Storage driver (#297).
- Added the ability to use
*
as a wildcard in the Refresh Cached URLs
utility and refresh-urls
console command (#300).
Changed
- The values in the
excludedQueryStringParams
are now compared to query string params using regular expressions (#272).
- The check for a cacheable request is now done inside the
Application::EVENT_INIT
event (#299).
Fixed
- Fixed an error that could occur when running refresh cache jobs with Craft 3.3.16 and below (#285).
- Fixed a bug that was throwing an error message if the resource base URL was set to the site URL (#287).
- Fixed a bug in which the
queue
flag was not being respected in console commands (#294).
";s:4:"date";s:19:"2021-03-16T00:00:00";}i:23;a:4:{s:7:"version";s:5:"3.7.0";s:8:"critical";b:0;s:5:"notes";s:1198:"This update optimises the performance of refresh cache jobs. The cache should be manually refreshed following the update in order to get the full performance benefits.
Added
- Added compatibility with Solspace Calendar and other plugins that use joins in element queries.
- Added an indication of how many pages were not warmed, if any, in console commands (#221).
- Added the ability to disable the warm cache utility by setting the cache warmer to “None” (#275).
Changed
- The deployer now removes files when pages are cleared from the cache (#218).
- The value of the
X-Powered-By
header is now appended, rather than added.
- Optimised cached element queries.
Fixed
- Fixed a bug in which expired entries were not being cleared (#267).
";s:4:"date";s:19:"2021-01-05T00:00:00";}}s:13:"phpConstraint";N;s:11:"packageName";s:27:"putyourlightson/craft-blitz";}s:8:"ckeditor";a:3:{s:6:"status";s:8:"eligible";s:8:"releases";a:0:{}s:11:"packageName";s:17:"craftcms/ckeditor";}s:12:"contact-form";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:5:{i:0;a:4:{s:7:"version";s:5:"2.5.1";s:8:"critical";b:0;s:5:"notes";s:195:"Fixed
- Fixed a bug where newlines were getting replaced with double newlines in message bodies. (#214)
";s:4:"date";s:19:"2022-05-02T00:00:00";}i:1;a:4:{s:7:"version";s:5:"2.5.0";s:8:"critical";b:0;s:5:"notes";s:179:"Added
- Added the
allowedMessageFields
setting, which can be used to restrict which message
fields are allowed to be submitted.
";s:4:"date";s:19:"2022-04-15T00:00:00";}i:2;a:4:{s:7:"version";s:5:"2.4.1";s:8:"critical";b:0;s:5:"notes";s:62:"Fixed
- Fixed a potential PHP error.
";s:4:"date";s:19:"2022-04-12T00:00:00";}i:3;a:4:{s:7:"version";s:5:"2.4.0";s:8:"critical";b:0;s:5:"notes";s:210:"Changed
- Custom message fields’ labels can now be translated using the
site
translation category. (#161)
";s:4:"date";s:19:"2022-04-11T00:00:00";}i:4;a:4:{s:7:"version";s:5:"2.3.0";s:8:"critical";b:0;s:5:"notes";s:329:"Changed
- Craft 3.4 or later is now required.
- The success flash message is now returned in the response for AJAX calls.
craft\contactform\models\Submission
now supports EVENT_DEFINE_RULES
. (#196)
";s:4:"date";s:19:"2022-01-21T00:00:00";}}s:13:"phpConstraint";N;s:11:"packageName";s:21:"craftcms/contact-form";}s:21:"contact-form-honeypot";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:1:{i:0;a:4:{s:7:"version";s:5:"1.0.3";s:8:"critical";b:0;s:5:"notes";s:110:"Fixed
- Fixed a PHP error that occurred if Contact Form wasn’t Composer-installed.
";s:4:"date";s:19:"2022-05-03T00:00:00";}}s:13:"phpConstraint";N;s:11:"packageName";s:30:"craftcms/contact-form-honeypot";}s:6:"cp-css";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:3:{i:0;a:4:{s:7:"version";s:5:"2.4.0";s:8:"critical";b:0;s:5:"notes";s:330:"Added
- Added
cacheBusting
config setting to enable/disable hash-based cache busting.
- Now logs warnings if unable to generate a hash for cache busting.
Changed
- Split up
sha1_file
in order to reduce risk of CP hanging while generating a hash.
";s:4:"date";s:19:"2021-09-21T00:00:00";}i:1;a:4:{s:7:"version";s:5:"2.3.1";s:8:"critical";b:0;s:5:"notes";s:110:"Fixed
- Prevents Matrix fields from reloading CSS on each block. (thanks @bencroker)
";s:4:"date";s:19:"2021-08-20T00:00:00";}i:2;a:4:{s:7:"version";s:5:"2.3.0";s:8:"critical";b:0;s:5:"notes";s:111:"Added
- Now allows for multiple, comma-separated file paths. (thanks @nickolasjadams)
";s:4:"date";s:19:"2020-12-18T00:00:00";}}s:13:"phpConstraint";N;s:11:"packageName";s:30:"doublesecretagency/craft-cpcss";}s:8:"redactor";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:6:{i:0;a:4:{s:7:"version";s:5:"2.9.1";s:8:"critical";b:0;s:5:"notes";s:179:"Fixed
- Fixed an error that occurred when saving content that contained empty links. (#355)
";s:4:"date";s:19:"2022-02-07T00:00:00";}i:1;a:4:{s:7:"version";s:5:"2.9.0";s:8:"critical";b:0;s:5:"notes";s:1839:"Added
- Redactor fields now convert static element URLs to reference tags on save. (#249)
- Entry selection modals now include a site selector. (#242)
- Image modals now support a Command/Ctrl + S keyboard shortcut. (#290)
Fixed
- Fixed a bug where the field value wasn’t updated after content was removed via a context bar. (#348)
- Fixed a bug where context bars weren’t visible within editor slideouts. (#239)
- Fixed a bug where empty Redactor fields could be seen as not empty during validation. (#260)
- Fixed a bug where some inline styles could be removed even if they were allowed by field plugins. (#315)
- Fixed a bug where volume and transform names were getting double-encoded. (#297)
- Fixed a bug where inserting a link into a large Redactor field would cause the browser to jump to the top of the field. (#344)
- Fixed a bug where inline styles within tables weren’t getting removed. (#350)
- Fixed a bug where translation messages weren’t getting registered for JavaScript properly.
Changed
- Updated Redactor.js to 3.5.2.
";s:4:"date";s:19:"2022-01-31T00:00:00";}i:2;a:4:{s:7:"version";s:5:"2.8.8";s:8:"critical";b:0;s:5:"notes";s:236:"Fixed
- Fixed a Javascript error that occurred when closing Live Preview. (#299, #282)
";s:4:"date";s:19:"2021-08-02T00:00:00";}i:3;a:4:{s:7:"version";s:5:"2.8.7";s:8:"critical";b:0;s:5:"notes";s:368:"Changed
- The list of Redactor config files is now sorted alphabetically. (#308)
Fixed
- Fixed a bug where privacy-enhanced YouTube video embeds were getting stripped out by HTML Purifier. (#312)
";s:4:"date";s:19:"2021-05-01T00:00:00";}i:4;a:4:{s:7:"version";s:5:"2.8.6";s:8:"critical";b:0;s:5:"notes";s:72:"Changed
- Improved the field’s focus styles.
";s:4:"date";s:19:"2021-04-13T00:00:00";}i:5;a:4:{s:7:"version";s:5:"2.8.5";s:8:"critical";b:0;s:5:"notes";s:518:"Added
- Added the
enforceButtonOrder
Redactor config option, that allows setting an arbitrary button order. (#218)
Fixed
- Fixed a bug where Redactor would sometimes have trouble adding buttons to the toolbar. (#293)
Changed
- Updated Redactor.js to 3.4.7.
- Updated German and French translations.
";s:4:"date";s:19:"2020-12-08T00:00:00";}}s:13:"phpConstraint";N;s:11:"packageName";s:17:"craftcms/redactor";}s:12:"sprout-forms";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:7:{i:0;a:4:{s:7:"version";s:6:"3.13.6";s:8:"critical";b:0;s:5:"notes";s:177:"Fixed
- Fixed display issue with form tabs introduced in Craft 3.7 (#582)
";s:4:"date";s:19:"2021-08-13T00:00:00";}i:1;a:4:{s:7:"version";s:6:"3.13.5";s:8:"critical";b:0;s:5:"notes";s:530:"If you have duplicated a form, please review your original and duplicate form and make sure they have independent field layouts. You may need to manually fix duplicated form layouts
Fixed
- Fixed issue where duplicating a form did not properly assign the layout ID (#568)
";s:4:"date";s:19:"2021-04-01T00:00:00";}i:2;a:4:{s:7:"version";s:6:"3.13.4";s:8:"critical";b:0;s:5:"notes";s:430:"Fixed
- Fixed Project Config default settings in captcha settings migration (#491, #513)
- Fixed form field save behavior when initially creating a new form (#493)
";s:4:"date";s:19:"2021-03-29T00:00:00";}i:3;a:4:{s:7:"version";s:8:"3.13.2.3";s:8:"critical";b:0;s:5:"notes";s:205:"Changed
- Updated
barrelstrength/sprout-base-reports
requirement v1.5.9
Fixed
- Fixed specificity of name column on Report Element index page
";s:4:"date";s:19:"2021-02-10T00:00:00";}i:4;a:4:{s:7:"version";s:8:"3.13.2.2";s:8:"critical";b:0;s:5:"notes";s:117:"Fixed
- Fixed bug where Form query value was not specific enough on Form Element Index page
";s:4:"date";s:19:"2021-02-10T00:00:00";}i:5;a:4:{s:7:"version";s:8:"3.13.2.1";s:8:"critical";b:0;s:5:"notes";s:94:"Fixed
- Removed updated migration now handled in base reports module
";s:4:"date";s:19:"2021-02-10T00:00:00";}i:6;a:4:{s:7:"version";s:6:"3.13.2";s:8:"critical";b:0;s:5:"notes";s:720:"Added
- Added support for Name field in Reports (#94)
Changed
- Updated
barrelstrength/sprout-base-reports
requirement v1.5.8
Fixed
- Registered Form and Entry Elements via
EVENT_REGISTER_ELEMENT_TYPES
- Fixed Email Template migration (#506, #538)
- Fixed payload forwarding migration (#494)
";s:4:"date";s:19:"2021-02-10T00:00:00";}}s:13:"phpConstraint";N;s:11:"packageName";s:27:"barrelstrength/sprout-forms";}s:7:"sitemap";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:1:{i:0;a:4:{s:7:"version";s:5:"1.3.2";s:8:"critical";b:0;s:5:"notes";N;s:4:"date";N;}}s:13:"phpConstraint";N;s:11:"packageName";s:15:"dolphiq/sitemap";}}}i:1;N;}