All Versions
336
Latest Version
Avg Release Cycle
7 days
Latest Release
564 days ago

Changelog History
Page 6

  • v3.7.29 Changes

    January 18, 2022

    ➕ Added

    • 👍 resave/* commands now support bulk-setting an attribute/custom field value via new --set, --to, and --if-empty options. (#10356)
    • ➕ Added craft\fieldlayoutelements\BaseField::statusId().
    • ➕ Added craft\helpers\App::parseEnv() and parseBooleanEnv(), replacing their Craft class counterparts. (#10319)

    🔄 Changed

    • ⚡️ The Users index page now updates the URL based on the selected source. (#10336)
    • Live Preview no longer reloads the iframe when the device type is changed. (#10353)
    • admins, all, and new are now reserved user group handles.
    • 0️⃣ The content in the resourcepaths table is now excluded from database backups by default.
    • 👉 User caches are now invalidated after login attempts. (#10313)
    • 🍱 Assets fields’ “Upload files” buttons now have aria-describedby attributes when appropriate.
    • Color fields’ hex inputs now have aria-label attributes.
    • Field status messages are now included in their aria-describedby attributes.
    • 👉 User queries will no longer exclude suspended users when status('pending') is passed. (#10361)
    • Template autosuggest fields now include suggestions for templates in custom site template roots. (#10372)

    🗄 Deprecated

    • 👀 Deprecated Craft::parseEnv(). craft\helpers\App::parseEnv() should be used instead.
    • 🗄 Deprecated Craft::parseBooleanEnv(). craft\helpers\App::parseBooleanEnv() should be used instead.

    🛠 Fixed

    • 🛠 Fixed a bug where admin tables were displaying titles incorrectly.
    • 🛠 Fixed a bug where aria-describedby attributes were getting namespaced incorrectly when they referenced multiple IDs.
    • 🛠 Fixed a bug where “View” links on Edit Entry pages weren’t getting updated when the entry’s preview target URLs changed. (#10257)
    • 🛠 Fixed a bug where craft\base\ApplicationTrait::getIsMultiSite() would return false on the front end, if there was only one enabled site, but additional disabled sites.
    • 🛠 Fixed a bug where craft\base\Element::getSite() would throw an exception on the front end, if the element belonged to a disabled site.
    • 🛠 Fixed a bug where craft\services\Sites::getEditableSiteIds() would exclude disabled sites on the front end.
    • 🛠 Fixed a bug where validation errors referenced by aria-describedby attributes weren’t getting read out by VoiceOver. (#10355)
    • 🛠 Fixed a bug where element queries’ withQueries properties were ignored. (#10359)
    • Fixed a bug where fatal PHP errors were not logged to stderr when the CRAFT_STREAM_LOG PHP constant was set to true. (#10366)
    • 🛠 Fixed a bug where Dropdown fields with invalid data would not always display a blank option. (#10365)

    🔒 Security

    • 🛠 Fixed an XSS vulnerability.
  • v3.7.28 Changes

    January 05, 2022

    🔄 Changed

    • ⚡️ Updated Yii to 2.0.44.

    🛠 Fixed

    • 🛠 Fixed a Composer error that could occur if composer.craftcms.com was missing an expected package/version, but Packagist knew about it. (#10311)
    • 🛠 Fixed a PHP error that could occur when querying for Matrix blocks. (#10315)
    • 🛠 Fixed a bug where Single sections’ drafts would get deleted when their section settings were updated. (#10307)
    • 🛠 Fixed an error that could occur on the Dashboard if there were any Quick Post widgets that included a Title field. (#10314)
  • v3.7.27 Changes

    January 04, 2022

    ➕ 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.
    • 0️⃣ The install/check, install/craft, and setup/db-creds commands now explicitly check if Craft is installed in the default schema on Postgres.
    • 0️⃣ 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)
    • 0️⃣ 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 InvalidArgumentExceptions 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)
  • v3.7.27.2 Changes

    January 06, 2022

    🛠 Fixed

    • 🛠 Fixed an error that could occur when updating to Craft 3.7.28/Yii 2.0.44 from the control panel.
  • v3.7.27.1 Changes

    January 04, 2022

    🛠 Fixed

    • 🛠 Fixed a PHP error that would occur when creating a new user. (#10308)
  • v3.7.26 Changes

    December 15, 2021

    ➕ 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)
    • 0️⃣ 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)
  • v3.7.25 Changes

    December 07, 2021

    🔄 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.
  • v3.7.25.1 Changes

    December 07, 2021

    ➕ 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)
  • v3.7.24 Changes

    December 02, 2021

    ➕ 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. [email protected]?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.
  • v3.7.23 Changes

    November 26, 2021

    ➕ 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)