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

Changelog History
Page 28

  • v3.1.5 Changes

    January 25, 2019

    ๐Ÿ”„ Changed

    • Control Panel settings that can be set to environment variables now show a tip about that if the value is not already set to an environment variable or alias.
    • ๐Ÿ”ง Control Panel form fields can now be configured with a tip property, which will be displayed below the field.
    • Control Panel templates can now pass suggestEnvVars: true and suggestAliases: true to autosuggest fields, rather that supplying the suggestions array.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug where the โ€œDuplicateโ€ action wasnโ€™t available on the Entries index page for non-admin users. (#3705)
    • ๐Ÿ›  Fixed a bug where it wasnโ€™t possible to rename an assetโ€™s filename from the Assets index page. (#3707)
    • ๐Ÿ›  Fixed an error that occurred when saving a user that had a first or last name set.
    • ๐Ÿ›  Fixed a bug where it wasnโ€™t possible to apply project config changes. (#3713)
    • ๐Ÿ›  Fixed a bug where the Password field on SMTP and Gmail mail transport settings could be set to an encoded and encrypted password. (#3699)
    • ๐Ÿ›  Fixed a bug where it was possible to remove the Primary Site status from the primary site, without offering a new primary site. (#3720)
    • Fixed an error that could occur if PHPโ€™s memory_limit was set to a higher size (in bytes) than PHP_INT_MAX. (#3717)

    ๐Ÿ”’ Security

    • โš  Control Panel settings that can be set to an alias now show a warning if the current value begins with the @web alias.
  • v3.1.4 Changes

    January 24, 2019

    โž• Added

    • โž• Added all the things that came in Craft 3.0.38.
    • The System Name setting can now be set to an environment variable. (#3529)
    • โž• Added the index-assets/one console command, which can now be used to index a single subfolder.
    • โž• Added craft\base\ApplicationTrait::getSystemName().

    ๐Ÿ”„ Changed

    • ๐Ÿ”€ Craft now ensures that installed schema versions match the schema versions in project.yaml before syncing project config changes.
    • ๐Ÿ”€ The project-config/sync console command now bails if there are pending Craft or plugin migrations.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug where site translations were falling back to English if the translated message was identical to the source message. (#3692)
    • ๐Ÿ›  Fixed a bug where syncing Matrix field changes to the project config would result in new changes to the project config. (#3695)
    • ๐Ÿ›  Fixed an error that occurred when indexing assets in an empty volume.
    • ๐Ÿ›  Fixed a bug where soft-deleted assets would show up as missing after indexing.
    • ๐Ÿ›  Fixed a JavaScript error that could occur on the Settings โ†’ Plugins page.
    • ๐Ÿ›  Fixed a bug where Craft::parseEnv() was throwing an InvalidConfigException if the given string began with @ but was not an alias. (#3700)

    ๐Ÿ”’ Security

    • URLs are no longer allowed in usersโ€™ first or last names.
  • v3.1.3 Changes

    January 21, 2019

    โž• Added

    • โž• Added the |json_decode Twig filter. (#3678)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if a plugin or module was calling any soft-deletable recordsโ€™ find() methods.
    • ๐Ÿ›  Fixed an error that occurred when updating from Craft 2 to Craft 3.1 if there were any RichText fields. (#3677)
    • ๐Ÿ›  Fixed a bug where it was possible to create duplicate tags by searching for and selecting the same tag name twice in the same Tags field. (#3676)
    • Fixed a bug where system messages were getting sent with the message keys (e.g. โ€œforgot_password_subjectโ€ and โ€œforgot_password_bodyโ€) if Craft didnโ€™t provide a default message translation for the site language, and the message hadnโ€™t been translated for the userโ€™s preferred language. (#3673)
    • Fixed a bug where craft\web\Request::getIsLivePreview() was returning false on Live Preview requests when called from an yii\base\Controller::EVENT_BEFORE_ACTION event handler. (#3680)
  • v3.1.2 Changes

    January 18, 2019

    โž• Added

    • โž• Added the index-assets <volume> and index-assets/all console commands. (#3595)
    • โž• Added craft\base\FieldTrait::$oldSettings.
    • โž• Added craft\helpers\Install.
    • โž• Added craft\services\Fields::prepFieldForSave().
    • โž• Added craft\services\Path::getProjectConfigFilePath().
    • โž• Added craft\services\ProjectConfig::$muteEvents.

    ๐Ÿ”„ Changed

    • 0๏ธโƒฃ The installer now checks project.yaml when determining the default site name, handle, base URL, and language values. (#3661)
    • ๐ŸŒ The Base URL field in the web-based installer now autouggests environment variable names and aliases.
    • Craft now creates a .gitignore file in the storage/config-backups/ folder, preventing any other files within it from getting tracked by Git.
    • ๐Ÿ”€ Craft no longer prevents changes in project.yaml from being synced if a pluginsโ€™ schema version in project.yaml doesnโ€™t match up with its installed schema version, if one of them is blank.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ Deprecated craft\services\Fields::$ignoreProjectConfigChanges.
    • ๐Ÿ—„ Deprecated craft\services\Matrix::$ignoreProjectConfigChanges.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a PHP notice that occurred when updating to Craft 3.1 if there were any plugins installed without settings.
    • ๐Ÿ›  Fixed a SQL error that occurred when updating to Craft 3.1 if a plugin or module was calling any craft\services\Fields methods. (#3663)
    • ๐Ÿ›  Fixed a bug where element indexes would forget their source settings after updating to Craft 3.1. (#3659)
    • ๐Ÿ›  Fixed a bug where commercial plugins werenโ€™t installable from the Plugin Store.
    • ๐Ÿ›  Fixed a bug where Matrix block type fieldsโ€™ beforeSave() methods werenโ€™t getting called.
    • ๐Ÿ›  Fixed a bug where Matrix fields could forget their content table name if they were created with a non-global context.
    • ๐Ÿ›  Fixed a bug where links to the Plugin Store from Settings โ†’ Plugins were 404ing. (#3664)
    • ๐Ÿ›  Fixed a bug where soft-deleted sections and entry types were still showing up in the Control Panel. (#3648)
    • ๐Ÿ›  Fixed a bug where an update to Craft 3.1 would fail with a database error in some scenarios.
    • ๐Ÿ›  Fixed a bug where Plugin Storeโ€™s Try buttons would appear as disabled when they should be enabled. (#3619)
    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if there were any relational fields that were missing some expected settings. (#3641)

    ๐Ÿ”’ Security

    • ๐Ÿ›  Fixed two XSS vulnerabilities.
  • v3.1.2.2 Changes

    January 19, 2019

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if a plugin or module was calling any craft\services\Sections methods.
  • v3.1.2.1 Changes

    January 19, 2019

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if there were any Matrix sub-fields that had their type set to a non-existing class. (#3662)
    • ๐Ÿ›  Fixed a bug where the project config could be in an unexpected state if a project.yaml file existed already when initially updating to Craft 3.1.
  • v3.1.1 Changes

    January 16, 2019

    โž• Added

    • ๐ŸŒฒ Added support for the CRAFT_LOG_PHP_ERRORS PHP constant. (#3619)
    • โž• Added craft\web\User::generateToken().

    ๐Ÿ”„ Changed

    • ๐Ÿ“œ System error message templates no longer parse exception messages as Markdown.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug where craft\services\Volumes::getVolumeByHandle() wasnโ€™t working. (#3633)
    • ๐Ÿ›  Fixed a bug where the clear-caches/cp-resources command could clear out the wrong directory if the resourceBasePath config setting began with @webroot. (#3637)
    • ๐Ÿ›  Fixed a bug where eager loading Matrix blocks would come up empty. (#3644)
    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if there were any Matrix blocks without any sub-fields. (#3635)
    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if there were any Matrix block types left over from a Matrix field that had been converted to something else.
    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if there were any Assets fields that were missing some expected field settings. (#3641)
    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3.1 if anything was calling craft\services\Fields::getLayoutById() or getLayoutByType() before the update was applied.
    • ๐Ÿ›  Fixed an error that could occur when logging deprecation errors on PostgreSQL. (#3638)
    • ๐Ÿ›  Fixed a bug where users would get logged out while updating to Craft 3.1, causing a โ€œUser is not permitted to perform this actionโ€ error.
    • ๐Ÿ›  Fixed a bug where โ€œJavaScript must be enabledโ€ and โ€œCookies must be enabledโ€ messages werenโ€™t getting positioned correctly. (#3639)
    • ๐Ÿ›  Fixed a โ€œVariable "message" does not exist.โ€ error that could occur in the Control Panel.
    • ๐Ÿ›  Fixed a bug where free plugins werenโ€™t installable from the Plugin Store. (#3642)

    ๐Ÿ”’ Security

    • The Request panel in the Debug Toolbar now redacts any sensitive information. (#3619)
    • ๐Ÿ›  Fixed two XSS vulnerabilities.
  • v3.1.0 Changes

    January 15, 2019

    โšก๏ธ > {warning} This is a more complex update than usual, and failed update attempts are not uncommon. Please ensure you have a recent database backup, and we recommend you test the update on a local/staging environment before updating your production server.

    โž• Added

    • โž• Added the Project Config, a portable and centralized configuration for system settings. (#1429)
    • Category groups, elements, entry types, field layouts, global sets, sections, sites, site groups, structures, tag groups, and volumes are now soft-deleted. (#867)
    • โช Entries, categories, and users can now be restored within the Control Panel by selecting โ€œTrashedโ€ from the status menu on element index pages, and clicking the โ€œRestoreโ€ button.
    • โž• Added the System Messages utility for editing system messages, replacing the Settings โ†’ Email โ†’ System Messages page. (#3421)
    • Some Site settings (Base URL), volume settings (Base URL and File System Path), and email settings (System Email Address, Sender Name, HTML Email Template, Username, Password, and Host Name) can now be set to environment variables using a $VARIABLE_NAME syntax. (#3219)
    • The installer now checks whether a project.yaml file exists and applies any changes in it. (#3291)
    • ๐Ÿ‘ Control Panel settings that support environment variables now autosuggest environment variable names (and aliases when applicable) while typing.
    • Control Panel settings that define a template path now autosuggest existing template files.
    • โž• Added cross-domain support for Live Preview. (#1521)
    • ๐Ÿ”Œ Plugins can now have multiple editions.
    • Custom fields can now opt out of being included in elementsโ€™ search keywords. (#2600)
    • โž• Added the allowAdminChanges config setting.
    • โž• Added the softDeleteDuration config setting.
    • โž• Added the storeUserIps config setting. (#3311)
    • โž• Added the useProjectConfigFile config setting.
    • โž• Added the gc console command, which can be used to run garbage collection tasks.
    • โž• Added the project-config/sync console command. (#3510)
    • โž• Added the trashed element query param, which can be used to query for elements that have been soft-deleted.
    • โž• Added the expression() Twig function, for creating new yii\db\Expression objects in templates. (#3289)
    • โž• Added the parseEnv() Twig function.
    • โž• Added the plugin() Twig function.
    • โž• Added the _includes/forms/autosuggest.html include template for the Control Panel.
    • โž• Added Craft::parseEnv().
    • โž• Added craft\base\ApplicationTrait::getIsLive().
    • Added craft\base\Element::EVENT_AFTER_RESTORE.
    • Added craft\base\Element::EVENT_BEFORE_RESTORE.
    • Added craft\base\Element::EVENT_DEFINE_EAGER_LOADING_MAP.
    • โž• Added craft\base\ElementInterface::afterRestore().
    • โž• Added craft\base\ElementInterface::beforeRestore().
    • Added craft\base\Field::EVENT_AFTER_ELEMENT_RESTORE.
    • Added craft\base\Field::EVENT_BEFORE_ELEMENT_RESTORE.
    • โž• Added craft\base\FieldInterface::afterElementRestore().
    • โž• Added craft\base\FieldInterface::beforeElementRestore().
    • Added craft\base\Model::EVENT_DEFINE_RULES.
    • โž• Added craft\base\Plugin::editions().
    • โž• Added craft\base\Plugin::is().
    • โž• Added craft\base\SavableComponentInterface::beforeApplyDelete().
    • โž• Added craft\behaviors\EnvAttributeParserBehavior.
    • โž• Added craft\controllers\LivePreviewController.
    • โž• Added craft\db\ActiveRecord::prepareForDb().
    • โž• Added craft\db\Command::restore().
    • โž• Added craft\db\Command::softDelete().
    • โž• Added craft\db\Migration::restore().
    • โž• Added craft\db\Migration::softDelete().
    • โž• Added craft\db\SoftDeleteTrait, which can be used by Active Record classes that wish to support soft deletes.
    • โž• Added craft\db\Table.
    • โž• Added craft\elements\actions\Restore, which can be included in elementsโ€™ defineActions() methods to opt into element restoration.
    • โž• Added craft\events\ConfigEvent.
    • โž• Added craft\events\DeleteElementEvent, which provides a $hardDelete property that can be set to true to force an element to be immediately hard-deleted. (#3403)
    • โž• Added craft\helpers\App::editionHandle().
    • โž• Added craft\helpers\App::editionIdByHandle().
    • โž• Added craft\helpers\App::mailSettings().
    • โž• Added craft\helpers\ArrayHelper::firstWhere().
    • โž• Added craft\helpers\Db::idByUid().
    • โž• Added craft\helpers\Db::idsByUids().
    • โž• Added craft\helpers\Db::uidById().
    • โž• Added craft\helpers\Db::uidsByIds().
    • โž• Added craft\helpers\ProjectConfig.
    • โž• Added craft\helpers\StringHelper::toWords().
    • โž• Added craft\models\FieldLayout::createFromConfig().
    • โž• Added craft\models\FieldLayout::getConfig().
    • โž• Added craft\models\Section::setEntryTypes().
    • โž• Added craft\models\Site::getBaseUrl().
    • โž• Added craft\services\AssetTransforms::getTransformByUid().
    • Added craft\services\AssetTransforms::EVENT_BEFORE_APPLY_TRANSFORM_DELETE.
    • โž• Added craft\services\Categories::getGroupByUid().
    • Added craft\services\Categories::EVENT_BEFORE_APPLY_GROUP_DELETE.
    • โž• Added craft\services\Elements::restoreElement().
    • Added craft\services\Elements::EVENT_AFTER_RESTORE_ELEMENT.
    • Added craft\services\Elements::EVENT_BEFORE_RESTORE_ELEMENT.
    • โž• Added craft\services\Fields::applyFieldDelete().
    • โž• Added craft\services\Fields::applyFieldSave().
    • โž• Added craft\services\Fields::createFieldConfig().
    • โž• Added craft\services\Fields::deleteFieldInternal().
    • โž• Added craft\services\Fields::restoreLayoutById().
    • โž• Added craft\services\Fields::saveFieldInternal().
    • Added craft\services\Fields::EVENT_BEFORE_APPLY_FIELD_DELETE.
    • Added craft\services\Fields::EVENT_BEFORE_APPLY_GROUP_DELETE.
    • โž• Added craft\services\Gc for handling garbage collection tasks.
    • โž• Added craft\services\Path::getConfigBackupPath().
    • โž• Added craft\services\ProjectConfig.
    • โž• Added craft\services\Routes::deleteRouteByUid()
    • โž• Added craft\services\Sections::getSectionByUid().
    • Added craft\services\Sections::EVENT_BEFORE_APPLY_ENTRY_TYPE_DELETE.
    • Added craft\services\Sections::EVENT_BEFORE_APPLY_SECTION_DELETE.
    • โž• Added craft\services\Sites::restoreSiteById().
    • Added craft\services\Sites::EVENT_BEFORE_APPLY_GROUP_DELETE.
    • Added craft\services\Sites::EVENT_BEFORE_APPLY_SITE_DELETE.
    • Added craft\services\Tags::EVENT_BEFORE_APPLY_GROUP_DELETE.
    • Added craft\services\UserGroups::EVENT_BEFORE_APPLY_GROUP_DELETE.
    • Added craft\services\Volumes::EVENT_BEFORE_APPLY_VOLUME_DELETE.
    • โž• Added craft\validators\TemplateValidator.
    • โž• Added craft\web\Controller::requireCpRequest().
    • โž• Added craft\web\Controller::requireSiteRequest().
    • Added craft\web\twig\variables\Cp::EVENT_REGISTER_CP_SETTINGS. (#3314)
    • โž• Added craft\web\twig\variables\Cp::getEnvSuggestions().
    • โž• Added craft\web\twig\variables\Cp::getTemplateSuggestions().
    • โž• Added the ActiveRecord Soft Delete Extension for Yii2.
    • โž• Added the Symfony Yaml Component.
    • The bundled Vue asset bundle now includes Vue-autosuggest.

    ๐Ÿ”„ Changed

    • 0๏ธโƒฃ The defaultWeekStartDay config setting is now set to 1 (Monday) by default, to conform with the ISO 8601 standard.
    • ๐Ÿ“‡ Renamed the isSystemOn config setting to isSystemLive.
    • ๐ŸŒ The app/migrate web action now applies pending project.yaml changes, if the useProjectConfigFile config setting is enabled.
    • The svg() function now strips <title>, <desc>, and comments from the SVG document as part of its sanitization process.
    • ๐Ÿ‘ The svg() function now supports a class argument, which will add a class name to the root <svg> node. (#3174)
    • ๐Ÿ‘ The {% redirect %} tag now supports with notice and with error params for setting flash messages. (#3625)
    • โš  info buttons can now also have a warning class.
    • โš  User permission definitions can now include info and/or warning keys.
    • The old โ€œAdministrate usersโ€ permission has been renamed to โ€œModerate usersโ€.
    • The old โ€œChange usersโ€™ emailsโ€ permission has been renamed to โ€œAdministrate usersโ€, and now comes with the ability to activate user accounts and reset their passwords. (#942)
    • All users now have the ability to delete their own user accounts. (#3013)
    • System user permissions now reference things by their UIDs rather than IDs (e.g. editEntries:<UID> rather than editEntries:<ID>).
    • Animated GIF thumbnails are no longer animated. (#3110)
    • Craft Tokens can now be sent either as a query string param (named after the tokenParam config setting) or an X-Craft-Token header.
    • ๐Ÿ‘ Element types that support Live Preview must now hash the previewAction value for Craft.LivePreview.
    • Live Preview now loads each new preview into its own <iframe> element. (#3366)
    • ๐Ÿฑ Assetsโ€™ default titles now only capitalize the first word extracted from the filename, rather than all the words. (#2339)
    • โš  All console commands besides setup/* and install/craft now output a warning if Craft isnโ€™t installed yet. (#3620)
    • All classes that extend craft\base\Model now have EVENT_INIT and EVENT_DEFINE_BEHAVIORS events; not just classes that extend craft\base\Component.
    • craft\db\mysql\Schema::findIndexes() and craft\db\pgsql\Schema::findIndexes() now return arrays with columns and unique keys.
    • 0๏ธโƒฃ craft\helpers\ArrayHelper::filterByValue() now defaults its $value argument to true.
    • craft\helpers\MigrationHelper::doesIndexExist() no longer has a $foreignKey argument, and now has an optional $db argument.
    • craft\mail\Mailer::send() now swallows any exceptions that are thrown when attempting to render the email HTML body, and sends the email as plain text only. (#3443)
    • craft\mail\Mailer::send() now fires an afterSend event with yii\mail\MailEvent::$isSuccessful set to false if any exceptions were thrown when sending the email, and returns false. (#3443)
    • craft\services\Routes::saveRoute() now expects site and route UIDs instead of IDs.
    • โšก๏ธ craft\services\Routes::updateRouteOrder() now expects route UIDs instead of IDs.
    • The craft\helpers\Assets::EVENT_SET_FILENAME event is now fired after sanitizing the filename.

    โœ‚ Removed

    • โœ‚ Removed craft\elements\User::authData().
    • โœ‚ Removed craft\fields\Matrix::getOldContentTable().
    • โœ‚ Removed craft\services\Routes::deleteRouteById()

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ Deprecated craft\base\ApplicationTrait::getIsSystemOn(). getIsLive() should be used instead.
    • ๐Ÿ—„ Deprecated craft\helpers\MigrationHelper::dropAllIndexesOnTable().
    • ๐Ÿ—„ Deprecated craft\helpers\MigrationHelper::dropAllUniqueIndexesOnTable().
    • ๐Ÿ—„ Deprecated craft\helpers\MigrationHelper::dropIndex().
    • โช Deprecated craft\helpers\MigrationHelper::restoreForeignKey().
    • โช Deprecated craft\helpers\MigrationHelper::restoreIndex().
    • ๐Ÿ—„ Deprecated craft\models\Info::getEdition(). Craft::$app->getEdition() should be used instead.
    • ๐Ÿ—„ Deprecated craft\models\Info::getName(). Craft::$app->projectConfig->get('system.name') should be used instead.
    • ๐Ÿ—„ Deprecated craft\models\Info::getOn(). Craft::$app->getIsLive() should be used instead.
    • ๐Ÿ—„ Deprecated craft\models\Info::getTimezone(). Craft::$app->getTimeZone() should be used instead.
    • ๐Ÿ—„ Deprecated craft\services\Routes::getDbRoutes(). craft\services\Routes::getProjectConfigRoutes() should be used instead.
    • ๐Ÿ—„ Deprecated craft\services\SystemSettings. craft\services\ProjectConfig should be used instead.
    • ๐Ÿ—„ Deprecated craft\validators\UrlValidator::$allowAlias. craft\behaviors\EnvAttributeParserBehavior should be used instead.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug where the Dashboard could rapidly switch between two column sizes at certain browser sizes. (#2438)
    • ๐Ÿ›  Fixed a bug where ordered and unordered lists in field instructions didnโ€™t have numbers or bullets.
    • ๐Ÿ›  Fixed a bug where switching an entryโ€™s type could initially show the wrong field layout tab. (#3600)
    • ๐Ÿ›  Fixed an error that occurred when updating to Craft 3 if there were any Rich Text fields without any stored settings.
    • ๐Ÿ›  Fixed a bug where Craft wasnโ€™t saving Dashboard widget sizes properly on PostgreSQL. (#3609)
    • ๐Ÿ›  Fixed a PHP error that could occur if the primary site didnโ€™t have a base URL. (#3624)
    • ๐Ÿ›  Fixed a bug where craft\helpers\MigrationHelper::dropIndexIfExists() wasnโ€™t working if the index had an unexpected name.
    • ๐Ÿ›  Fixed an error that could occur if a plugin attempted to register the same Twig extension twice in the same request.

    ๐Ÿ”’ Security

    • The web and CLI installers no longer suggest @web for the site URL, and now attempt to save the entered site URL as a DEFAULT_SITE_URL environment variable in .env. (#3559)
    • Craft now destroys all other sessions associated with a user account when a user changes their password.
    • Itโ€™s no longer possible to spoof Live Preview requests.
  • v3.0.41 Changes

    February 22, 2019

    ๐Ÿ”„ Changed

    • ๐Ÿ“œ System error message templates no longer parse exception messages as Markdown.

    ๐Ÿ”’ Security

    • โช Database backup/restore exception messages now redact the database password when using PostgreSQL.
    • URLs are no longer allowed in usersโ€™ first or last names.
    • The Request panel in the Debug Toolbar now redacts any sensitive information. (#3619)
    • ๐Ÿ›  Fixed XSS vulnerabilities.
  • v3.0.41.1 Changes

    March 12, 2019

    ๐Ÿ”„ Changed

    • Craft now requires Twig 2.6.