a:2:{i:0;a:2:{s:3:"cms";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:107:{i:0;a:4:{s:7:"version";s:7:"4.14.12";s:8:"critical";b:0;s:5:"notes";s:2322:"
- Fixed a bug where relations weren’t always propagating to newly-added sites for sections correctly. (#16924)
- Fixed a bug where Assets fields set to restrict assets to a single location were relocating assets on element propagation. (#12767, #16936)
- Fixed a bug where relations weren’t getting saved for new elements, if the element was created with
Craft::createObject() with its relation field data included in the passed-in config. (#16942)
- Fixed a bug where relational fields with a “Related To” rule on their selectable elements condition weren’t making all expected elements selectable. (#16945)
- Fixed a bug where some subdivisions weren’t available when creating addresses. (#16951)
- Fixed a bug where some older dates could be formatted incorrectly. (#16953)
- Fixed a bug where the
folderPath asset query param only accepted strings. (#16981)
- Fixed a bug where
craft\elements\Asset::getSrcset() could return malformed results if any sizes didn’t have corresponding image URLs. (#16984)
- Fixed an error that could occur when uploading images. (#16977)
- Fixed a bug where the “Save” button on user group edit pages was redirecting to the same page, rather than the User Groups index page. (#16988)
- Fixed a bug where asset previews had an “Enable focal point” button even if the logged-in user didn’t have permission to save the asset. (#16997)
- Fixed a styling issue. (#16964)
";s:4:"date";s:19:"2025-04-01T00:00:00";}i:1;a:4:{s:7:"version";s:9:"4.14.11.1";s:8:"critical";b:0;s:5:"notes";s:224:"
- Fixed a performance degradation bug that occurred when working with Categories or Entries fields with “Maintain hierarchy” enabled. (#16920)
";s:4:"date";s:19:"2025-03-19T00:00:00";}i:2;a:4:{s:7:"version";s:7:"4.14.11";s:8:"critical";b:0;s:5:"notes";s:1034:"
- Fixed a bug where relational fields with “Maintain hierarchy” enabled weren’t displaying the correct relations after an element was moved within its structure. (#16843)
- Fixed a bug where letterbox transforms were getting transparent fills if the source image was grayscale. (#16857)
- Fixed a bug where elements could be missing data for attributes that shared a name with an eager-loadable attribute from another element type. (#16862)
- Fixed a bug where Selectize inputs would re-expand themselves after a selection was made. (#16865)
- Fixed a bug where entry revisions’
revisionNotes GraphQL fields were returning the entry’s current revision’s notes. (#16909)
";s:4:"date";s:19:"2025-03-18T00:00:00";}i:3;a:4:{s:7:"version";s:7:"4.14.10";s:8:"critical";b:0;s:5:"notes";s:1527:"
- Added
craft\base\conditions\BaseTextConditionRule::isEmpty().
- Added
craft\htmlpurifier\RelAttrLinkTypeDef.
- The default HTML Purifier config now allows
rel attributes to be set to any value. (#16798)
- Fixed an error that could occur when generating an image transform URL via a console request. (#16793)
- Fixed a bug where
_includes/forms/button.twig was always adding class="btngroup-btn-first" to the resulting button HTML.
- Fixed a bug where Assets fields with
{slug} in the subpath could create folders named after temporary slugs. (#16799)
- Fixed a bug where date and time inputs without values were showing clear buttons. (#16804)
- Fixed an error that could occur when executing “Updating element slugs and URIs” queue jobs. (#16787)
- Fixed a bug where automatic slug generation wasn’t working after changing entry types. (#16816)
- Fixed a bug where “Slug” condition rules weren’t considering temporary slugs to be empty. (#16817)
";s:4:"date";s:19:"2025-03-04T00:00:00";}i:4;a:4:{s:7:"version";s:6:"4.14.9";s:8:"critical";b:0;s:5:"notes";s:985:"
- Added
craft\base\ElementTrait::$isNewSite.
- Added
craft\queue\jobs\PropagateElements::$isNewSite.
- Fixed an error that could occur when saving elements, if any dependencies defined global functions whose names conflicted with Yii’s built-in validator names, such as
string().
- Fixed an error that could occur when applying field config changes if the field class didn’t exist.
- Fixed a bug where
ancestors and parent eager-loading wasn’t working on some environments. (#16381, #16382, #16341)
- Fixed a bug where asset, category, and tag relations weren’t propagating to newly-created sites for global sets. (#16752)
";s:4:"date";s:19:"2025-02-25T00:00:00";}i:5;a:4:{s:7:"version";s:8:"4.14.8.1";s:8:"critical";b:0;s:5:"notes";s:139:"
- Fixed a bug where newly-created custom fields wouldn’t have their full settings intact for
afterSave().
";s:4:"date";s:19:"2025-02-20T00:00:00";}i:6;a:4:{s:7:"version";s:6:"4.14.8";s:8:"critical";b:0;s:5:"notes";s:456:"
- Fixed a bug where scrollable panes weren’t automatically scrolling when dragging objects near their edges. (#16738)
- Fixed a bug where “Applying new propagation method to [Field Name] entries” jobs weren’t getting queued when deploying changes to Matrix fields’ Propagation Method settings. (#16740)
";s:4:"date";s:19:"2025-02-20T00:00:00";}i:7;a:4:{s:7:"version";s:6:"4.14.7";s:8:"critical";b:0;s:5:"notes";s:713:"
- Added
craft\base\Element::ancestors().
- Added
craft\base\Element::descendants().
- Fixed an error that occurred when deleting a category or Structure section entry if its ancestors were eager-loaded. (#16722)
- Fixed a bug where category and entry edit pages didn’t include breadcrumbs for any disabled ancestor elements.
- Fixed a bug where the “Delete (with descendants)” bulk element action wasn’t deleting disabled descendants.
- Fixed a bug where asset files could be deleted when modified. (#16686)
";s:4:"date";s:19:"2025-02-19T00:00:00";}i:8;a:4:{s:7:"version";s:6:"4.14.6";s:8:"critical";b:0;s:5:"notes";s:1445:"
- Fixed a bug where multiple “New file uploaded.” notifications could be shown at once. (#16688)
- Fixed an error that could occur during garbage collection if the database user didn’t have permission to disable foreign key constraints. (#16700)
- Fixed a bug where datepickers could have scrollbars. (#16697)
- Fixed a bug where asset files could be prematurely deleted when moved to a different volume, if an error occurred. (#16686)
- Fixed a bug where clearing out a Structure section’s Parent field wasn’t persisting if editing the entry for a newly-added site. (#16691)
- Fixed a bug where SVG asset transforms could get two
preserveAspectRatio attributes. (#16709)
- Fixed a bug where Number fields weren’t handling semi-numeric strings properly. (craftcms/feed-me#1575)
- Fixed styling issues. (#16699, #16721)
";s:4:"date";s:19:"2025-02-18T00:00:00";}i:9;a:4:{s:7:"version";s:6:"4.14.5";s:8:"critical";b:0;s:5:"notes";s:1992:"
- Fixed a bug where multi-site elements’ search indexes could be updated twice.
- Fixed a bug where the
utils/delete-empty-volume-folders command was deleting folders that had no assets directly, but had subfolders. (#16388)
- Fixed a bug where some Matrix blocks weren’t getting propagated to newly-added sites of their owners, if any blocks had been modified. (#16640)
- Fixed an error that could occur when deleting a draft.
- Fixed an error that could occur when saving a Structure section entry, if it had an Assets field with a dynamic subpath that referenced
level. (#16661)
- Fixed a bug where “Fit” image transforms were showing the “Default Focal Point” setting. (#16665)
- Fixed a bug where the “Image Position” setting wasn’t saving for “Letterbox” image transforms. (#16648)
- Fixed a bug where the
up command, the app/migrate action, and the Project Config utility weren’t aware of pending project config changes if a database backup was restored but caches weren’t cleared. (#16668)
- Fixed a bug where condition rules weren’t always getting created with their condition set. (#16676)
- Fixed an error that occurred when opening the filter HUD within the element selection modal for a relational field, if the user didn’t have permission to view the selected source outside of the field. (#16678)
- Fixed a potential phishing attack vector.
";s:4:"date";s:19:"2025-02-11T00:00:00";}i:10;a:4:{s:7:"version";s:6:"4.14.4";s:8:"critical";b:0;s:5:"notes";s:521:"
- Fixed an error that occurred when accessing the
edit/<elementId> route for a draft that no longer existed.
- Fixed a bug where transformed images could be slightly smaller than they should be when using the
fit transform mode. (#16622)
- Fixed a bug where tests weren’t outputting exceptions thrown during Craft installation. (#16624)
";s:4:"date";s:19:"2025-02-04T00:00:00";}i:11;a:4:{s:7:"version";s:6:"4.14.3";s:8:"critical";b:0;s:5:"notes";s:607:"
- Added
craft\db\ExpressionBuilder.
- Added
craft\db\ExpressionInterface.
- Added compatibility with codeception/module-yii2 1.1.6+. (#16580)
- Fixed a bug where
craft\db\QueryBatcher::getSlice() wasn’t using the database connection passed to the class constructor. (#16579)
- Fixed a bug where collapsed elements within element indexes in structure view weren’t showing their expand/collapse toggles.
";s:4:"date";s:19:"2025-01-29T00:00:00";}i:12;a:4:{s:7:"version";s:6:"4.14.2";s:8:"critical";b:0;s:5:"notes";s:1325:"
- Fixed a bug where Entries fields’ entry select modals could show expand/collapse toggles for Structure sections, for elements that didn’t have any selectable descendants. (#16506)
- Fixed a bug where changes to custom fields within Matrix blocks weren’t getting merged into existing drafts for the same owner element. (#16519)
- Fixed a bug where native fields (e.g. Title) were showing changed statuses when viewing revisions, if they had been updated since the time the revision was created.
- Fixed a bug where eager-loading element queries could create an excessive amount of cache invalidation tags.
- Fixed a bug where it was possible to enable elements for new sites with validation errors. (#16505)
- Fixed a bug where setting
transaction: true in the Codeception configuration wasn’t rolling back database DML changes after a test. (#16546)
- Fixed a bug where ʻokina characters weren’t being removed in auto-generated slugs. (#16548)
";s:4:"date";s:19:"2025-01-28T00:00:00";}i:13;a:4:{s:7:"version";s:6:"4.14.1";s:8:"critical";b:0;s:5:"notes";s:177:"
- Fixed a bug where all multi-byte characters were getting stripped out of search indexes. (#16457)
";s:4:"date";s:19:"2025-01-22T00:00:00";}i:14;a:4:{s:7:"version";s:8:"4.14.0.2";s:8:"critical";b:0;s:5:"notes";s:156:"
- Fixed an error that occurred when creating a new Structure section. (#16476)
";s:4:"date";s:19:"2025-01-21T00:00:00";}i:15;a:4:{s:7:"version";s:8:"4.14.0.1";s:8:"critical";b:0;s:5:"notes";s:172:"
- Fixed an error that occurred when referencing a single section entry by its handle. (#16474)
";s:4:"date";s:19:"2025-01-21T00:00:00";}i:16;a:4:{s:7:"version";s:6:"4.14.0";s:8:"critical";b:0;s:5:"notes";s:3968:"Content Management
- The global sidebar no longer shows “Failed” for queue jobs, for users that don’t have access to the Queue Manager. (#16184)
Administration
- Added the
elements/delete-all-of-type command. (#16423)
- Added the
utils/delete-empty-volume-folders command. (#16388)
- The Queue Manager utility now shows jobs’ class names. (#16228)
Development
- Added the
primarySite global Twig variable. (#16370)
- The
duration Twig filter now has a language argument. (#16332)
- Added support for specifying the current site via an
X-Craft-Site header set to a site ID or handle. (#16367)
- Deprecated the
ucfirst Twig filter. capitalize should be used instead.
Extensibility
- Added
craft\helpers\Image::EXIF_IFD0_ROTATE_0_MIRRORED.
- Added
craft\helpers\Image::EXIF_IFD0_ROTATE_0.
- Added
craft\helpers\Image::EXIF_IFD0_ROTATE_180_MIRRORED.
- Added
craft\helpers\Image::EXIF_IFD0_ROTATE_270_MIRRORED.
- Added
craft\helpers\Image::EXIF_IFD0_ROTATE_90_MIRRORED.
- Added
craft\models\AssetIndexingSession::$forceStop. (#16435)
GuzzleHttp\Client is now instantiated via Craft::createObject(). (#16366)
craft\helpers\DateTimeHelper::humanDuration() now has a $language argument. (#16332)
System
- Database rows with foreign keys referencing nonexistent rows are now deleted via garbage collection.
- Pages which contain image transform generation URLs now set no-cache headers. (#16195)
- Action requests (such as
actions/app/health-check) now send no-cache headers by default. (#16364)
- Image cleansing now preserves the original image quality, if known.
- Fixed a bug where
craft\config\GeneralConfig::safeMode() set Safe Mode to false by default.
- Fixed a bug where Craft wasn’t auto-rotating or flipping images uploaded with a mirrored EXIF orientation.
- Fixed a bug where asset indexing could get stuck in an infinite loop if the index data was deleted. (#16435)
- Updated Twig to 3.15. (#16207)
- Fixed an error that could occur when setting
relatedTo* GraphQL arguments to null. (#16433)
- Fixed a bug where old structure data wasn’t getting soft-deleted when a section was assigned a new structure UUID when applying project config changes. (#16450)
- Fixed a bug where
craft\events\DefineAssetUrlEvent::$transform wasn’t always defined for assets’ EVENT_BEFORE_DEFINE_URL and EVENT_DEFINE_URL events. (#16464)
";s:4:"date";s:19:"2025-01-21T00:00:00";}i:17;a:4:{s:7:"version";s:7:"4.13.10";s:8:"critical";b:0;s:5:"notes";s:630:"
- Fixed a bug where the control panel could display a notice about the Craft CMS license belonging to a different domain, even when accessing the control panel from the correct domain. (#16396)
- Fixed a bug where Unicode special characters weren’t getting stripped out of search keywords. (#16430)
- Fixed an error that could occur when setting
relatedTo* GraphQL arguments to null. (#16431)
";s:4:"date";s:19:"2025-01-14T00:00:00";}i:18;a:4:{s:7:"version";s:6:"4.13.9";s:8:"critical";b:0;s:5:"notes";s:510:"
- Fixed a bug where custom fields could cause validation errors when running the
users/create command.
- Fixed a bug where deleting a volume folder wasn’t fully deleting asset data in descendant folders.
- Fixed a bug where
children and descendants eager-loading wasn’t working on some environments. (#16381, #16382)
";s:4:"date";s:19:"2025-01-06T00:00:00";}i:19;a:4:{s:7:"version";s:6:"4.13.8";s:8:"critical";b:0;s:5:"notes";s:853:"
- Fixed a bug where asset edit page URLs contained spaces if the asset filename contained spaces. (#15236)
- Fixed a bug where custom fields were getting included in rendered field layout forms, even if their
getInputHtml() method returned an empty string.
- Fixed a bug where the password input on the Set Password page wasn’t including the “Show” button.
- Fixed a SQL error that could occur if an element was saved with a title longer than 255 characters.
- Fixed a bug where some UI messages began with a lowercase letter in some languages. (#16354)
- Fixed an RCE vulnerability. (CVE-2025-23209)
";s:4:"date";s:19:"2025-01-02T00:00:00";}i:20;a:4:{s:7:"version";s:6:"4.13.7";s:8:"critical";b:0;s:5:"notes";s:787:"
- Fixed a bug where elements’
getPrev() and getNext() methods could cause duplicate queries. (#16329)
- Fixed a bug where assets that were shorter than the preview thumb container weren’t getting vertically centered within it.
- Fixed a bug where it was possible to set a focal point on SVGs, even though focal points on SVGs aren’t supported. (#16258)
- Fixed a bug where
ancestors, children, descendants, and parent eager-loading wasn’t working for previewed elements. (#16327)
";s:4:"date";s:19:"2024-12-17T00:00:00";}i:21;a:4:{s:7:"version";s:6:"4.13.6";s:8:"critical";b:0;s:5:"notes";s:558:"
- Fixed a bug where blank user group descriptions weren’t getting omitted from project config data. (#16272)
- Fixed a bug where pressing Return when a color text input within an editable table was focused was submitting the form rather than moving focus to the next row.
- Fixed a JavaScript error that occurred on the Plugins index page, if there were any missing plugins associated with the Craft CMS license and no plugins were Composer-installed yet.
";s:4:"date";s:19:"2024-12-10T00:00:00";}i:22;a:4:{s:7:"version";s:6:"4.13.5";s:8:"critical";b:0;s:5:"notes";s:395:"
- Fixed a bug where asset, category, and entry sources defined by the
EVENT_REGISTER_SOURCES event didn’t have any custom fields available to them, unless the EVENT_REGISTER_FIELD_LAYOUTS event was also used to define the available field layouts for the event-defined source. (#16256)
";s:4:"date";s:19:"2024-12-03T00:00:00";}i:23;a:4:{s:7:"version";s:6:"4.13.4";s:8:"critical";b:0;s:5:"notes";s:1325:"
- Reduced the likelihood of a deadlock error occurring when updating search indexes. (#15221)
- The PHP Info utility is no longer shown in environments where the
phpinfo() function is disabled. (#16229)
- Fixed an error that could occur when duplicating an element with an Assets field that had a dynamic subpath. (#16214)
- Fixed a bug where renaming asset folders could move them to the webroot on Windows. (#16215)
- Fixed a bug where Matrix fields’ content tables weren’t getting renamed properly when applying project config changes. (#16227)
- Fixed a bug where utilities’
isSelectable() methods weren’t being respected.
- Fixed an exception that could be thrown when displaying entry indexes, if any
EVENT_INIT or EVENT_DEFINE_BEHAVIORS entry event handlers were calling getSection() or getType() on the entry. (#16254)
";s:4:"date";s:19:"2024-12-02T00:00:00";}i:24;a:4:{s:7:"version";s:6:"4.13.3";s:8:"critical";b:0;s:5:"notes";s:973:"
- Element indexes now sort by ID by default, for sources that don’t define a default sort option.
- Fixed a bug where element indexes were sorting by the first sortable attribute alphabetically by default, rather than the first sortable attribute defined by the element type.
- Fixed a bug where bulk asset actions where shown as available when subfolders were selected, when they shouldn’t have. (#16151)
- Fixed a bug where
craft\events\ApplyFieldSaveEvent::$field wasn’t being set consistently by craft\services\Fields::EVENT_BEFORE_APPLY_FIELD_SAVE. (#16156)
- Fixed a bug where the address field layout’s project config data wasn’t getting recreated when running
project-config/rebuild. (#16189)
";s:4:"date";s:19:"2024-11-22T00:00:00";}i:25;a:4:{s:7:"version";s:6:"4.13.2";s:8:"critical";b:1;s:5:"notes";s:251:"
- Fixed an error that could occur if an invalid folder ID was passed to
craft\services\Assets::deleteFoldersByIds(). (#16147)
- Fixed an RCE vulnerability.
";s:4:"date";s:19:"2024-11-19T00:00:00";}i:26;a:4:{s:7:"version";s:8:"4.13.1.1";s:8:"critical";b:0;s:5:"notes";s:107:"
";s:4:"date";s:19:"2024-11-18T00:00:00";}i:27;a:4:{s:7:"version";s:6:"4.13.1";s:8:"critical";b:0;s:5:"notes";s:500:"
- Fixed a JavaScript error that could occur on element edit pages. (#16055)
- Fixed a Twig deprecation error. (#16107)
- Fixed a bug where
craft\services\Structures::fillGapsInElements() wasn’t working properly if the elements weren’t passed in hierarchical order. (#16085)
";s:4:"date";s:19:"2024-11-18T00:00:00";}i:28;a:4:{s:7:"version";s:6:"4.13.0";s:8:"critical";b:0;s:5:"notes";s:4577:"Administration
- Added the “Language” element condition rule. (#15952)
- Added
pc/* commands as an alias of project-config/*.
- Added the
--except, --minor-only, and --patch-only options to the update command. (#15829)
Development
- Added the
encodeUrl() Twig function. (#15838)
- Added support for passing aliased field handles into element queries’
select()/addSelect() methods. (#15827)
- Added support for appending subpaths to environment variable names in environmental settings (e.g.
$PRIMARY_SITE_URL/uploads).
Extensibility
- Added
craft\base\RequestTrait::getIsWebRequest(). (#15690)
- Added
craft\events\ApplyFieldSaveEvent. (#15872)
- Added
craft\events\DefineAddressCountriesEvent. (#15711)
- Added
craft\filters\BasicHttpAuthLogin. (#15720)
- Added
craft\filters\BasicHttpAuthStatic. (#15720)
- Added
craft\filters\ConditionalFilterTrait. (#15948)
- Added
craft\filters\UtilityAccess.
- Added
craft\helpers\Session::addFlash().
- Added
craft\helpers\Session::getAllFlashes().
- Added
craft\helpers\Session::getFlash().
- Added
craft\helpers\Session::hasFlash().
- Added
craft\helpers\Session::removeAllFlashes().
- Added
craft\helpers\Session::removeFlash().
- Added
craft\helpers\UrlHelper::encodeUrl(). (#15838)
- Added
craft\log\MonologTarget::getAllowLineBreaks().
- Added
craft\log\MonologTarget::getFormatter().
- Added
craft\log\MonologTarget::getLevel().
- Added
craft\log\MonologTarget::getMaxFiles().
- Added
craft\log\MonologTarget::getName().
- Added
craft\log\MonologTarget::getProcessor().
- Added
craft\log\MonologTarget::getUseMicrosecondTimestamps().
- Added
craft\services\Addresses::EVENT_DEFINE_ADDRESS_COUNTRIES. (#15711)
- Added
craft\services\Addresses::getCountryList(). (#15711)
- Added
craft\services\Fields::EVENT_BEFORE_APPLY_FIELD_SAVE. (#15872)
- Added
craft\services\Gc::deleteOrphanedFieldLayouts().
- Added
craft\web\View::registerCpTwigExtension().
- Added
craft\web\View::registerSiteTwigExtension().
- Improved support for creating log targets for third party logging services. (#14974)
- Deprecated the
enableBasicHttpAuth config setting. craft\filters\BasicHttpAuthLogin should be used instead. (#15720)
- Added the
serializeForm event to Craft.ElementEditor. (#15794)
System
Location headers added via craft\web\Response::redirect() are now set to encoded URLs. (#15838)
- Fixed a bug where orphaned field layouts weren’t getting garbage collected. (#16032)
- Fixed a bug where the
utils/fix-field-layout-uids command was misidentifying missing/duplicate UUID issues.
";s:4:"date";s:19:"2024-11-12T00:00:00";}i:29;a:4:{s:7:"version";s:6:"4.12.9";s:8:"critical";b:0;s:5:"notes";s:561:"
- Fixed a bug where entry/category drafts weren’t retaining new parent selections.
- Fixed a bug where the “Related To” condition rule would lose track of the selected element if it belonged to a different site. (#16005)
- Fixed a bug where the GraphQL tokens index was saying tokens never expired. (#16029)
- Fixed styling issues. (#15965)
";s:4:"date";s:19:"2024-11-06T00:00:00";}i:30;a:4:{s:7:"version";s:6:"4.12.8";s:8:"critical";b:0;s:5:"notes";s:927:"
- The
install command now runs through database connection setup, if Craft can’t yet connect to the database. (#15943)
- Fixed a bug where admin table header cells weren’t indicating when they were sorted. (#15897)
- Fixed an error that occurred when creating a database backup, if the System Name contained any quote-like characters. (#15933)
- Fixed a bug where buttons could bleed out of their containers. (#15931, #15946)
- Fixed a PHP error. (#15915)
- Fixed an information disclosure vulnerability.
";s:4:"date";s:19:"2024-10-22T00:00:00";}i:31;a:4:{s:7:"version";s:6:"4.12.7";s:8:"critical";b:0;s:5:"notes";s:64:"
- Fixed a privilege escalation vulnerability.
";s:4:"date";s:19:"2024-10-15T00:00:00";}i:32;a:4:{s:7:"version";s:8:"4.12.6.1";s:8:"critical";b:0;s:5:"notes";s:186:"
- Custom field condition rules are now ignored if they reference a field with an incompatible type. (#15850)
";s:4:"date";s:19:"2024-10-09T00:00:00";}i:33;a:4:{s:7:"version";s:6:"4.12.6";s:8:"critical";b:0;s:5:"notes";s:1690:"
- The Plugin Store now displays plugin ratings and reviews. (#15860)
- An
InvalidConfigException is now thrown if the defaultCountryCode config setting is set to an empty string. (#15812)
- Fixed an error that could occur when saving an element, if a Date field’s time zone input was focused.
- Fixed a bug where the time zones listed in Date fields weren’t labelled properly based on the selected date. (#15805)
- Fixed an error that could occur if a native element property was attempted to be eager-loaded. (#15822)
- Fixed errors that could occur if a custom source or field condition referenced a custom field whose type had changed. (#15850)
- Fixed a bug where disclosure menus weren’t sticking to their trigger element as it was scrolled, if it was within a slideout or other inline-scrollable container. (#15852)
- Fixed a bug where the default backup command for MySQL was exporting triggers twice. (#15854)
- Fixed a bug where Multi-select fields were saving the selected options in the user-selected order rather than the field-defined order. (#15857)
- Fixed a missing authorization vulnerability.
";s:4:"date";s:19:"2024-10-08T00:00:00";}i:34;a:4:{s:7:"version";s:6:"4.12.5";s:8:"critical";b:0;s:5:"notes";s:465:"
- Fixed a bug where entries’
deletedWithEntryType values in the entries table weren’t getting set back to null after being restored.
- Fixed a bug where it wasn’t possible to discard changes for related elements via slideouts, if they didn’t exist in the primary site. (#15798)
- Fixed an information disclosure vulnerability.
";s:4:"date";s:19:"2024-09-27T00:00:00";}i:35;a:4:{s:7:"version";s:8:"4.12.4.1";s:8:"critical";b:0;s:5:"notes";s:114:"
- Fixed a JavaScript error. (#15784)
";s:4:"date";s:19:"2024-09-24T00:00:00";}i:36;a:4:{s:7:"version";s:6:"4.12.4";s:8:"critical";b:0;s:5:"notes";s:993:"
- Auto-generated handles, slugs, etc. now update immediately when the source input is changed. (#15754)
- Fixed a bug where Table fields’ Default Values table could lose existing rows if they only consisted of Dropdown columns without configured options.
- Fixed a bug where custom fields’
required properties were always false. (#15752)
- Fixed a bug where
craft\helpers\StringHelper::toHandle() was allowing non-alphanumeric/underscore characters through. (#15772)
- Fixed a bug where entries were getting auto-saved while dragging elements within element select inputs.
- Fixed a bug where the
maxBackups config setting wasn’t working. (#15780)
";s:4:"date";s:19:"2024-09-23T00:00:00";}i:37;a:4:{s:7:"version";s:6:"4.12.3";s:8:"critical";b:0;s:5:"notes";s:487:"
- Fixed a data deletion bug that occurred during garbage collection on PostgreSQL. (#14891)
- Fixed a bug where image constraint labels weren’t translated within the Image Editor.
- Fixed a bug where image orientation labels weren’t getting translated for screen readers within the Image Editor.
- Fixed a PHP error. (#14635)
";s:4:"date";s:19:"2024-09-14T00:00:00";}i:38;a:4:{s:7:"version";s:6:"4.12.2";s:8:"critical";b:0;s:5:"notes";s:319:"
- Updated Twig to 3.14. (#15704)
- Fixed a bug where soft-deleted structures weren’t getting hard-deleted via garbage collection. (#15705)
- Fixed an RCE vulnerability.
";s:4:"date";s:19:"2024-09-11T00:00:00";}i:39;a:4:{s:7:"version";s:6:"4.12.1";s:8:"critical";b:0;s:5:"notes";s:1242:"
- Added
craft\services\Security::isSystemDir().
- Fixed a bug where
craft\helpers\StringHelper::lines() was returning an array of Stringy\Stringy objects, rather than strings.
- Fixed styling issues with Template field layout UI elements’ selector labels.
- Fixed a validation error that could occur when saving a relational field, if the “Maintain hierarchy” setting had been enabled but was no longer applicable. (#15666)
- Fixed a bug where formatted addresses weren’t using the application locale consistently. (#15668)
- Fixed a bug where Tip and Warning field layout UI elements would display in field layouts even if they had no content. (#15681)
- Fixed an error that could occur when reverting an element’s content from a revision, if the element had been added to additional sites since the time the revision was created. (#15679)
- Fixed an information disclosure vulnerability.
";s:4:"date";s:19:"2024-09-06T00:00:00";}i:40;a:4:{s:7:"version";s:6:"4.12.0";s:8:"critical";b:0;s:5:"notes";s:3439:"Content Management
- Element conditions can now have a “Site Group” rule, if there are two or more site groups. (#15625)
Development
- Country field values and
craft\elements\Address::getCountry() now return the country in the current application locale.
Extensibility
- Added
craft\base\ApplicationTrait::getEnvId(). (#15313)
- Added
craft\base\ElementInterface::getRootOwner(). (#15534)
- Added
craft\elements\conditions\SiteGroupConditionRule.
- Added
craft\helpers\Session::close().
- Added
craft\services\Sites::getEditableSitesByGroupId().
craft\helpers\Session methods are now safe to call on console requests.
- Deprecated
craft\helpers\ElementHelper::rootElement(). craft\base\ElementInterface::getRootOwner() should be used instead.
- Deprecated
craft\db\mysql\Schema::quoteDatabaseName().
- Deprecated
craft\db\pgqsl\Schema::quoteDatabaseName().
System
- MySQL mutex locks and PHP session names are now namespaced using the application ID combined with the environment name. (#15313)
- Craft now sends
X-Robots-Tag: none headers for preview requests. (#15612, #15586)
x-craft-preview and x-craft-live-preview params are now hashed, and craft\web\Request::getIsPreview() will only return true if the param validates. (#15605)
- Generated URLs no longer include
x-craft-preview or x-craft-live-preview query string params based on the requested URL, if either were set to an unverified string. (#15605)
- The PHP session is now closed before making API requests. (#15643)
- Updated Twig to 3.12. (#15568)
- Fixed a SQL error that occurred when running the
db/convert-charset command if there were any custom database views or sequences. (#15598)
- Fixed a bug where
craft\helpers\Db::supportsTimeZones() could return false on databases that supported time zone conversion. (#15592)
- Fixed a bug where Assets fields were validating settings that weren’t applicable depending on the “Restrict assets to a single location” setting. (#15545)
- Fixed a bug where
null values within associative arrays were ignored when applying project config data. (#10512)
";s:4:"date";s:19:"2024-09-03T00:00:00";}i:41;a:4:{s:7:"version";s:6:"4.11.5";s:8:"critical";b:0;s:5:"notes";s:750:"
- Fixed a bug where it wasn’t possible to override named transforms in GraphQL queries. (#15572)
- Fixed a bug where address subdivision fields could be incorrectly labelled and/or populated with the wrong options. (#15551, #15584)
- Fixed a bug where Country fields were displaying the selected country code within element index tables, rather than the country name.
- Fixed a bug where
{% cache %} tags were caching content for Live Preview requests. (#15586)
";s:4:"date";s:19:"2024-08-26T00:00:00";}i:42;a:4:{s:7:"version";s:6:"4.11.4";s:8:"critical";b:0;s:5:"notes";s:1380:"
- Updated jQuery UI to 1.14.0. (#15558)
- Fixed a bug where
craft\helpers\App::env() and normalizeValue() could return incorrect results for values that looked like floats. (#15533)
- Fixed a bug where the
users/set-password action wasn’t respecting redirect params. (#15538)
- Fixed a bug where the “Default Values” Table field setting wasn’t escaping column headings. (#15552)
- Fixed a bug where Craft couldn’t be installed with existing project config files, if any plugins specified their schema version via
composer.json. (#15559)
- Fixed a bug where Money fields’ min, max, and default values weren’t being set to the correct currency. (#15565, #15566)
- Fixed a bug where PHP-originated Craft Console API requests weren’t timing out if the API was down. (#15571)
";s:4:"date";s:19:"2024-08-21T00:00:00";}i:43;a:4:{s:7:"version";s:6:"4.11.3";s:8:"critical";b:0;s:5:"notes";s:278:"
- Fixed a bug where the system name in the control panel’s global sidebar was getting hyperlinked even if the primary site didn’t have a URL. (#15525)
- Fixed a right-to-left styling issue.
";s:4:"date";s:19:"2024-08-13T00:00:00";}i:44;a:4:{s:7:"version";s:6:"4.11.2";s:8:"critical";b:0;s:5:"notes";s:602:"
- Fixed an error that could occur if a new element was saved recursively. (#15517)
- Fixed a bug where plugins were being instantiated at the beginning of Craft installation requests, rather than after Craft was installed. (#15506)
- Fixed a bug where an unhelpful error message was output when
config/general.php returned an array with unsupported config settings. (#15514)
";s:4:"date";s:19:"2024-08-12T00:00:00";}i:45;a:4:{s:7:"version";s:6:"4.11.1";s:8:"critical";b:0;s:5:"notes";s:433:"
- Fixed a PHP error that could occur when generating URLs via console requests. (#15374)
- Fixed a bug where
craft\filters\Headers and craft\filters\Cors were applied to control panel requests rather than site requests. (#15495)
- Fixed a JavaScript error.
";s:4:"date";s:19:"2024-08-07T00:00:00";}i:46;a:4:{s:7:"version";s:8:"4.11.0.2";s:8:"critical";b:0;s:5:"notes";s:73:"
- Fixed an error that could occur on console requests.
";s:4:"date";s:19:"2024-08-06T00:00:00";}i:47;a:4:{s:7:"version";s:8:"4.11.0.1";s:8:"critical";b:0;s:5:"notes";s:198:"
- Fixed an error that occurred when accessing custom config settings defined in
config/custom.php. (#15481)
";s:4:"date";s:19:"2024-08-06T00:00:00";}i:48;a:4:{s:7:"version";s:6:"4.11.0";s:8:"critical";b:0;s:5:"notes";s:7070:"Content Management
- Entry and category conditions now have a “Has Descendants” rule. (#15276)
- “Replace file” actions now display success notices on complete. (#15217)
- Double-clicking on folders within asset indexes and folder selection modals now navigates the index/modal into the folder. (#15238)
- When propagating an element to a new site, relation fields no longer copy relations for target elements that wouldn’t have been selectable from the propagated site based on the field’s “Related elements from a specific site?” and “Show the site menu” settings. (#15459)
Administration
- Added the
env, env/set, and env/remove commands. (#15431)
- New sites’ Base URL settings now default to an environment variable name based on the site name. (#15347)
- Craft now warns against using the
@web alias for URL settings, regardless of whether it was explicitly defined. (#15347)
Development
- Added the
withCustomFields element query param.
- Added support for application-type based
general and db configs (e.g. config/general.web.php). (#15346)
general and db config files can now return a callable that modifies an existing config object. (#15346)
- Added the
lazyGqlTypes config setting. (#15429)
- The
allowedGraphqlOrigins config setting is now deprecated. craft\filters\Cors should be used instead. (#15397)
- The
permissionsPolicyHeader config settings is now deprecated. craft\filters\Headers should be used instead. (#15397)
{% cache %} tags now cache any asset bundles registered within them.
- Country field values are now set to
CommerceGuys\Addressing\Country\Country objects. (#15455, #15463)
- Auto-populated section and category group Template settings are now suffixed with
.twig.
x-craft-preview/x-craft-live-preview URL query string params are now added to generated URLs for Live Preview requests, so craft\web\Request::getIsPreview() continues to return true on subsequent pages loaded within the iframe. (#15447)
Extensibility
- Added
craft\config\GeneralConfig::addAlias(). (#15346)
- Added
craft\elements\Address::getCountry(). (#15463)
- Added
craft\elements\Asset::$sanitizeOnUpload. (#15430)
- Added
craft\filters\Cors. (#15397)
- Added
craft\filters\Headers. (#15397)
- Added
craft\helpers\App::configure().
- Added
craft\models\ImageTransform::$indexId.
- Added
craft\web\View::clearAssetBundleBuffer().
- Added
craft\web\View::startAssetBundleBuffer().
- Added
Craft.EnvVarGenerator.
craft\helpers\UrlHelper::cpUrl() now returns URLs based on the primary site’s base URL (if it has one), for console requests if the baseCpUrl config setting isn’t set, and the @web alias wasn’t explicitly defined. (#15374)
craft\services\Config::setDotEnvVar() now accepts false for its value argument, which removes the environment variable from the .env file.
- Deprecated
craft\web\assets\elementresizedetector\ElementResizeDetectorAsset.
System
- Improved the performance of element indexes in structure view.
- The control panel now displays Ajax response-defined error messages when provided, rather than a generic “server error” message. (#15292)
- Craft no longer sets the
Permissions-Policy header on control panel responses. (#15348)
- Control panel
resize events now use ResizeObserver.
- Twig templates no longer attempt to preload singles for global variable names. (#15468)
- Craft no longer ensures that the
cpresources folder is writable.
- Front-end queue runner scripts are now injected before the
</body> tag, rather than at the end of the response HTML.
graphql/api requests no longer update the schema’s lastUsed timestamp if it was already updated within the last minute. (#15464)
- Updated Yii to 2.0.51.
- Updated yii2-debug to 2.1.25.
- Updated svg-sanitizer to 0.19.
- Updated Axios to 0.28.1. (#15448)
- Fixed a bug where error messages returned by the
users/send-password-reset-email action weren’t accounting for the useEmailAsUsername config setting. (#15425)
- Fixed a bug where
$element->isNewForSite was always false from fields’ normalizeValue() methods when propagating an element to a new site.
- Fixed a bug where
assets/generate-transforms requests could generate the wrong transform, if another transform index with the same parameters existed. (#15402, #15477)
";s:4:"date";s:19:"2024-08-06T00:00:00";}i:49;a:4:{s:7:"version";s:6:"4.10.8";s:8:"critical";b:0;s:5:"notes";s:1222:"
- Fixed a PHP error. (#14635)
- Fixed a PHP error that could occur when running Codeception tests. (#15445)
- Fixed a bug where
deleteAsset, deleteCategory, deleteEntry, and deleteTag GraphQL mutations were returning null rather than true or false. (#15465)
- Fixed a styling issue. (#15473)
- Fixed a bug where
exists() element queries weren’t working if distinct, groupBy, having, or union params were set on them during query preparation. (#15001, #15223)
- Fixed a bug where users’
username properties weren’t getting set if useEmailAsUsername was enabled. (#15475)
";s:4:"date";s:19:"2024-08-05T00:00:00";}i:50;a:4:{s:7:"version";s:6:"4.10.7";s:8:"critical";b:0;s:5:"notes";s:1059:"
- Fixed a bug where element index result counts weren’t getting updated when the element list was refreshed but pagination was preserved. (#15367)
- Fixed a PHP error that occurred when making a field layout component conditional on a Time or CKEditor field. (craftcms/ckeditor#267)
- Fixed an error that occurred when editing a user via a slideout, if the current user didn’t have permission to edit the primary site. (#15408)
- Fixed a bug where editable tables with single-select checkbox columns weren’t deselecting the selected option automatically. (#15415)
- Fixed a styling issue. (#15422)
- Fixed a bug where category groups’ Template settings weren’t being auto-populated for new groups.
";s:4:"date";s:19:"2024-07-29T00:00:00";}i:51;a:4:{s:7:"version";s:6:"4.10.6";s:8:"critical";b:0;s:5:"notes";s:1009:"
craft\helpers\UrlHelper::actionUrl() now returns URLs based on the primary site’s base URL (if it has one), for console requests if the @web alias wasn’t explicitly defined.
- Fixed a bug where it wasn’t possible to expand/collapse descendants of disabled table rows within element select modals. (#15337)
- Fixed a bug where PhpStorm autocomplete wasn’t working when chaining custom field methods defined by
CustomFieldBehavior. (#15336)
- Fixed a bug where new Matrix blocks created on newly-created elements weren’t getting duplicated to all other sites for the owner element. (#15321)
- Fixed a bug where focus could jump unexpectedly when a slideout was opened. (#15314)
";s:4:"date";s:19:"2024-07-16T00:00:00";}i:52;a:4:{s:7:"version";s:6:"4.10.5";s:8:"critical";b:0;s:5:"notes";s:1454:"Craft now sends no-cache headers for requests that generate/retrieve a CSRF token. If your Craft install is behind a static caching service like Cloudflare, enable the asyncCsrfInputs config setting to avoid a significant cache hit reduction. (#15293, #15281)
- Craft now sends no-cache headers for any request that calls
craft\web\Request::getCsrfToken(). (#15293, #15281)
- Fixed a bug where structures’ Max Levels settings weren’t being enforced when dragging elements with collapsed descendants. (#15310)
- Fixed a bug where
craft\helpers\ElementHelper::isDraft(), isRevision(), and isDraftOrRevision() weren’t returning true if a nested draft/revision element was passed in, but the root element was canonical. (#15303)
- Fixed a bug where focus could be trapped within slideout sidebars. (#15314)
";s:4:"date";s:19:"2024-07-11T00:00:00";}i:53;a:4:{s:7:"version";s:6:"4.10.4";s:8:"critical";b:0;s:5:"notes";s:741:"
- Craft now sends no-cache headers for any request that generates a CSRF token. (#15281, verbb/formie#1963)
- Fixed a JavaScript error that occurred when creating a new custom element source, preventing the Default Sort and Default Table Columns fields from showing up.
- Fixed a bug where the control panel was getting asynchronous CSRF inputs if the
asyncCsrfInputs config setting was enabled.
- Fixed a bug where Craft’s Twig implementation wasn’t respecting sandboxing rules for object properties. (#15278)
";s:4:"date";s:19:"2024-07-02T00:00:00";}i:54;a:4:{s:7:"version";s:6:"4.10.3";s:8:"critical";b:0;s:5:"notes";s:1185:"
- Previewing PDF/video assets without public URLs now displays a “Preview not supported.” message. (#15235)
- Added
Garnish.once() and Garnish.Base::once(), for registering event handlers that should only be triggered one time.
- Fixed a bug where Edit Asset pages showed a “View” button for assets without URLs. (#15235)
- Fixed a bug where asset indexes attempted to link to assets without URLs. (#15235)
- Fixed a bug where queue job tracking and element activity tracking could stop working after a user session expired and then was reauthenticated.
- Fixed an error that occurred if an element select input was initialized without a
name value.
- Fixed a bug where Selectize inputs could be immediately focused and marked as dirty when opening an element editor slideout, if they were the first focusable element in the field layout. (#15245)
";s:4:"date";s:19:"2024-06-27T00:00:00";}i:55;a:4:{s:7:"version";s:6:"4.10.2";s:8:"critical";b:0;s:5:"notes";s:1001:"
- Added
craft\base\conditions\BaseNumberConditionRule::$step.
- Added
Garnish.muteResizeEvents().
- Fixed a JavaScript performance degradation bug. (#14510)
- Fixed a bug where scalar element queries weren’t working if
distinct, groupBy, having, or union params were set on them during query preparation. (#15001)
- Fixed a bug where Edit Asset pages would warn about losing unsaved changes when navigating away, if the file was replaced but nothing else had changed.
- Fixed a bug where Edit Asset pages would show a notification with a “Reload” button after the file was replaced.
- Fixed a bug where Number fields’ condition rules weren’t allowing decimal values. (#15222)
";s:4:"date";s:19:"2024-06-18T00:00:00";}i:56;a:4:{s:7:"version";s:6:"4.10.1";s:8:"critical";b:0;s:5:"notes";s:918:"
- Added
craft\web\View::getModifiedDeltaNames().
craft\web\View::registerDeltaName() now has a $forceModified argument.
- Fixed a bug where changed field values could be forgotten within Matrix fields, if a validation error occurred. (#15190)
- Fixed a bug where the
graphql/create-token command was prompting for the schema name, when it meant the token name. (#15205)
- Fixed an error that could occur when applying a draft. (#15211)
- Fixed a bug where keyboard shortcuts weren’t getting registered properly for modals and slideouts opened via a disclosure menu. (#15209)
";s:4:"date";s:19:"2024-06-17T00:00:00";}i:57;a:4:{s:7:"version";s:6:"4.10.0";s:8:"critical";b:0;s:5:"notes";s:6301:"Content Management
- Relational field condition rules no longer factor in the target elements’ statuses or sites. (#14989)
- “Save and continue editing” actions now restore the page’s scroll position on reload.
Administration
- Added the
--format option to the db/backup and db/restore commands for PostgreSQL installs. (#14931)
- The
db/restore command now autodetects the backup format for PostgreSQL installs, if --format isn’t passed. (#14931)
- The
install command and web-based installer now validate the existing project config files at the outset, and abort installation if there are any issues.
- The web-based installer now displays the error message when installation fails.
- GraphQL schema edit pages now have a “Save and continue editing” alternate action.
- The system edition can now be defined by a
CRAFT_EDITION environment variable. (#15094)
- The rebrand assets path can now be defined by a
CRAFT_REBRAND_PATH environment variable. (#15110)
Development
- Added the
{% expires %} tag, which simplifies setting cache headers on the response. (#14969)
- Added
craft\elements\ElementCollection::find(), which can return an element or elements in the collection based on a given element or ID. (#15023)
- Added
craft\elements\ElementCollection::fresh(), which reloads each of the collection elements from the database. (#15023)
- The
collect() Twig function now returns a craft\elements\ElementCollection instance if all of the items are elements.
craft\elements\ElementCollection::contains() now returns true if an element is passed in and the collection contains an element with the same ID and site ID; or if an integer is passed in and the collection contains an element with the same ID. (#15023)
craft\elements\ElementCollection::countBy(), collapse(), flatten(), keys(), pad(), pluck(), and zip() now return an Illuminate\Support\Collection object. (#15023)
craft\elements\ElementCollection::diff() and intersect() now compare the passed-in elements to the collection elements by their IDs and site IDs. (#15023)
craft\elements\ElementCollection::flip() now throws an exception, as element objects can’t be used as array keys. (#15023)
craft\elements\ElementCollection::map() and mapWithKeys() now return an Illuminate\Support\Collection object, if any of the mapped values aren’t elements. (#15023)
craft\elements\ElementCollection::merge() now replaces any elements in the collection with passed-in elements, if their ID and site ID matches. (#15023)
craft\elements\ElementCollection::only() and except() now compare the passed-in values to the collection elements by their IDs, if an integer or array of integers is passed in. (#15023)
craft\elements\ElementCollection::unique() now returns all elements with unique IDs, if no key is passed in. (#15023)
Extensibility
- Improved type definitions for
craft\db\Query, element queries, and craft\elements\ElementCollection.
- Added
craft\db\getBackupFormat().
- Added
craft\db\getRestoreFormat().
- Added
craft\db\setBackupFormat().
- Added
craft\db\setRestoreFormat().
- Added
craft\events\InvalidateElementcachesEvent::$element.
- Added
craft\fields\BaseRelationField::existsQueryCondition().
- Added
craft\helpers\DateTimeHelper::relativeTimeStatement().
- Added
craft\helpers\DateTimeHelper::relativeTimeToSeconds().
- Added
craft\helpers\StringHelper::indent().
- Added
craft\queue\Queue::getJobId().
craft\elements\ElementCollection::with() now supports collections made up of multiple element types.
- Added the
reloadOnBroadcastSave setting to Craft.ElementEditor. (#14814)
System
- Improved the performance of
exists() element queries.
- The Debug Toolbar now pre-serializes objects stored as request parameters, fixing a bug where closures could prevent the entire Request panel from showing up. (#14982)
- Batched queue jobs now verify that they are still reserved before each step, and before spawning additional batch jobs. (#14986)
- Updated Yii to 2.0.50. (#15124)
- Updated inputmask to 5.0.9.
- Updated punycode to 2.3.1.
";s:4:"date";s:19:"2024-06-12T00:00:00";}i:58;a:4:{s:7:"version";s:5:"4.9.7";s:8:"critical";b:0;s:5:"notes";s:333:"
- Fixed a bug where the
db/backup command could fail on Windows. (#15090)
- Fixed an error that could occur when applying project config changes if a site was deleted. (#14373)
";s:4:"date";s:19:"2024-06-05T00:00:00";}i:59;a:4:{s:7:"version";s:5:"4.9.6";s:8:"critical";b:0;s:5:"notes";s:705:"
- Added
craft\helpers\Gql::isIntrospectionQuery().
- Fixed a bug where some condition rules weren’t getting added when applying project config changes, if they depended on another component which hadn’t been added yet. (#15037)
- Fixed a bug where the
craft\base\Element::EVENT_DEFINE_ADDITIONAL_BUTTONS event wasn’t being respected for user edit pages. (#15095)
- Fixed a bug where GraphQL queries could be misidentified as introspection queries. (#15100)
";s:4:"date";s:19:"2024-06-03T00:00:00";}i:60;a:4:{s:7:"version";s:5:"4.9.5";s:8:"critical";b:0;s:5:"notes";s:1936:"
- Scalar element queries now set
$select to the scalar expression, and $orderBy, $limit, and $offset to null, on the element query. (#15001)
- Added
craft\fieldlayoutelements\TextareaField::inputTemplateVariables().
- Fixed a bug where
craft\helpers\Assets::prepareAssetName() wasn’t sanitizing filenames if $preventPluginModifications was true.
- Fixed a bug where element queries’
count() methods were factoring in the limit param when searching with orderBy set to score. (#15001)
- Fixed a bug where soft-deleted elements that belonged to a revision could be deleted by garbage collection. (#14995)
- Fixed a bug where soft-deleted structure data associated with elements that belonged to a revision could be deleted by garbage collection. (#14995)
- Fixed a bug where element edit pages’ scroll positions weren’t always retained when automatically refreshed.
- Fixed a bug where the
up command could remove component name comments from the project config YAML files, for newly-added components. (#15012)
- Fixed a bug where assets’ Alternative Text fields didn’t expand to match the content height. (#15026)
- Fixed a bug where
craft\helpers\UrlHelper::isAbsoluteUrl() was returning true for Windows file paths. (#15043)
";s:4:"date";s:19:"2024-05-22T00:00:00";}i:61;a:4:{s:7:"version";s:5:"4.9.4";s:8:"critical";b:0;s:5:"notes";s:551:"
- Fixed a bug where
craft\elements\db\ElementQuery::exists() would return true if setCachedResult() had been called, even if an empty array was passed.
- Fixed a bug where it wasn’t possible to interact with disabled Matrix blocks. (#15002)
- Fixed an infinite recursion bug that could occur when
craft\web\Response::redirect() was called. (#15014)
";s:4:"date";s:19:"2024-05-17T00:00:00";}i:62;a:4:{s:7:"version";s:5:"4.9.3";s:8:"critical";b:0;s:5:"notes";s:1092:"
- Fixed a SQL error that could occur when applying or rebuilding the project config.
- Fixed a bug where adjacent selected table rows were getting extra spacing in Firefox.
- Fixed a SQL error that could occur when creating revisions after garbage collection was run. (#14309)
- Fixed a bug where the
serve command wasn’t serving paths with non-ASCII characters. (#14977)
- Fixed a bug where element chips within element selection tables had insufficient contrast. (#14963)
- Fixed a bug where
craft\helpers\Html::explodeStyle() and normalizeTagAttributes() weren’t handling styles with encoded images via url() properly. (#14964)
- Fixed a bug where the
db/backup command would fail if the destination path contained a space.
";s:4:"date";s:19:"2024-05-14T00:00:00";}i:63;a:4:{s:7:"version";s:5:"4.9.2";s:8:"critical";b:0;s:5:"notes";s:964:"
- Fixed a bug where the
db/backup command would prompt for password input on PostgreSQL. (#14945)
- Fixed a bug where pressing Shift + Spacebar wasn’t reliably opening the asset preview modal on the Assets index page. (#14943)
- Fixed a bug where pressing Shift + Spacebar within an asset preview modal wasn’t closing the modal.
- Fixed a bug where pressing arrow keys within asset preview modals wasn’t retargeting the preview modal to adjacent assets. (#14943)
- Fixed a bug where entry selection modals could have a “New entry” button even if there weren’t any sections enabled for the selected site. (#14923)
";s:4:"date";s:19:"2024-05-07T00:00:00";}i:64;a:4:{s:7:"version";s:5:"4.9.1";s:8:"critical";b:0;s:5:"notes";s:607:"
- Fixed a bug where disclosure menus weren’t releasing their
scroll and resize event listeners on hide. (#14911, #14510)
- Fixed a bug where MySQL backups weren’t restorable on certain environments. (#14925)
- Fixed a bug where
app/resource-js requests weren’t working for guest requests. (#14908)
";s:4:"date";s:19:"2024-05-02T00:00:00";}i:65;a:4:{s:7:"version";s:5:"4.9.0";s:8:"critical";b:0;s:5:"notes";s:4559:"Content Management
- It’s now possible to preview revisions. (#14521)
- Element conditions can now include condition rules for Time fields. (#14616)
- Sort options are now sorted alphabetically within element indexes, and custom fields’ options are now listed in a “Fields” group. (#14725)
- Unselected table column options are now sorted alphabetically within element indexes.
Administration
- Improved the behavior of the URI input within Edit Route modals. (#14884)
- The “Upgrade Craft CMS” page in the Plugin Store no longer lists unsupported editions.
- Added the
asyncCsrfInputs config setting. (#14625)
- Added the
backupCommandFormat config setting. (#14897)
- The
backupCommand config setting can now be set to a closure, which will be passed a mikehaertl\shellcommand\Command object. (#14897)
resave commands now support an --if-invalid option. (#14731)
Development
- Added the
safeMode config setting. (#14734)
- Added the
language element query param, which filters the resulting elements based on their sites’ languages. (#14631)
- GraphQL responses now include full exception details, when Dev Mode is enabled or an admin is signed in with the “Show full exception views when Dev Mode is disabled” preference enabled. (#14527)
craft\helpers\Html::csrfInput() and the csrfInput Twig function now support passing an async key to the options array, overriding the default behavior per the asyncCsrfInputs config setting. (#14625)
Extensibility
- Added
craft\services\ProjectConfig::getAppliedChanges(). (#14851)
- Added
craft\services\Sites::getSitesByLanguage().
- Added
craft\web\ErrorHandler::exceptionAsArray().
- Added
craft\web\ErrorHandler::showExceptionDetails().
- Added
craft\web\Request::getBearerToken(). (#14784)
craft\base\NameTrait::prepareNamesForSave() no longer updates the name properties if fullName, firstName, and lastName are already set. (#14665)
System
- Batched queue jobs now set their progress based on the total progress across all batches, rather than just the current batch. (#14817)
- Craft now calls
setlocale() based on the target language, so that SORT_LOCALE_STRING behaves as expected. (#14509, #14513)
- Improved the performance of scalar element queries like
count().
- Fixed a bug where
craft\elements\db\ElementQuery::count() could return the wrong number if the query had a cached result, with offset or limit params.
- Console requests no longer filter out info logs. (#14280, #14434)
- Fixed a styling issue with Categories and Entries fields when “Maintain Hierarchy” was enabled.
- Fixed a bug where Delete actions weren’t working in admin tables. (craftcms/commerce#3444)
";s:4:"date";s:19:"2024-04-30T00:00:00";}i:66;a:4:{s:7:"version";s:6:"4.8.11";s:8:"critical";b:0;s:5:"notes";s:742:"
- Fixed a bug where element caches weren’t getting invalidated when an element was moved within a structure. (#14846)
- Fixed a bug where CSV’s header rows weren’t using the configured delimiter. (#14855)
- Fixed a bug where editable table cell text styling could change after initial focus. (#14857)
- Fixed a bug where conditions could list rules with duplicate labels.
- Fixed a bug where admin tables weren’t displaying disabled statuses. (#14861)
";s:4:"date";s:19:"2024-04-29T00:00:00";}i:67;a:4:{s:7:"version";s:6:"4.8.10";s:8:"critical";b:0;s:5:"notes";s:1469:"
- Fixed a SQL error that could occur when converting a field to a Lightswitch field on PostgreSQL. (#14792)
- Fixed a bug where the Database Backup utility was present when the
backupCommand config setting was set to false.
- Fixed an error that occurred when running the
db/convert-charset command, if any tables contained char or varchar foreign key columns. (#14815)
- Fixed a bug where parsed first/last names could have different casing than the full name that was submitted. (#14723)
- Fixed a bug where
craft\helpers\UrlHelper::isAbsoluteUrl() was returning false for URLs with schemes other than http or https, such as mailto and tel. (#14830)
- Fixed a JavaScript error that occurred when opening Live Preview, if an Assets field’s “Upload files” button had been pressed. (#14832)
- Fixed a bug where Twig’s spread operator (
...) wasn’t working with attribute accessors. (#14827)
";s:4:"date";s:19:"2024-04-23T00:00:00";}i:68;a:4:{s:7:"version";s:5:"4.8.9";s:8:"critical";b:0;s:5:"notes";s:602:"
- Fixed a bug where element queries with the
relatedTo param set to a list of element IDs were overly complex.
- Fixed a bug where redundant Matrix block revisions were getting created.
- Fixed a bug where Twig’s spread operator (
...) wasn’t working when the preloadSingles config setting was enabled. (#14783)
- Fixed a bug where Live Preview wasn’t retaining the scroll position properly. (#14218)
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:69;a:4:{s:7:"version";s:5:"4.8.8";s:8:"critical";b:0;s:5:"notes";s:1081:"
- Fixed a bug where
craft\helpers\ElementHelper::siteStatusesForElement() wasn’t working for soft-deleted elements. (#14753)
- Fixed a bug where the Queue Manager was listing delayed jobs before others. (#14755)
- Fixed a bug where LTR and RTL characters weren’t getting stripped from sanitized asset filenames. (#14711)
- Fixed a bug where admin table row reordering wasn’t working in Safari. (#14752)
- Fixed a bug where the
utils/fix-field-layout-uids command wasn’t looking at field layouts defined with a fieldLayout key in the project config.
- Fixed a bug where element indexes’ View menus could show the “Sort by” field when the structure view was selected. (#14780)
";s:4:"date";s:19:"2024-04-09T00:00:00";}i:70;a:4:{s:7:"version";s:5:"4.8.7";s:8:"critical";b:0;s:5:"notes";s:563:"
- The Craft 5 Upgrade utility now shows the upgrade status and latest compatible version for abandoned plugins.
- Fixed a “Double-instantiating a checkbox select on an element” JavaScript warning. (#14707)
- Fixed a bug where
craft\cache\DbCache was attempting to store values beyond the cache.data column’s storage capacity.
- Fixed a bug where the Updates utility could include submit buttons without labels for abandoned plugins.
";s:4:"date";s:19:"2024-04-03T00:00:00";}i:71;a:4:{s:7:"version";s:5:"4.8.6";s:8:"critical";b:0;s:5:"notes";s:61:"
- Added the “Craft 5 Upgrade” utility.
";s:4:"date";s:19:"2024-03-26T00:00:00";}i:72;a:4:{s:7:"version";s:5:"4.8.5";s:8:"critical";b:0;s:5:"notes";s:851:"
- Selectize inputs no longer automatically select the hovered option on Tab press. (selectize/selectize.js#2085)
- The
setup/cloud command now ensures that the environment and composer.json are configured to use PHP 8.1+.
- Fixed a JavaScript error that could occur if another error occurred when performing an element action.
- Fixed a bug where filesystems’
afterSave() and afterDelete() methods weren’t getting called. (#14634)
- Fixed an error that could occur on
elements/recent-activity Ajax requests when editing an element. (#14635)
";s:4:"date";s:19:"2024-03-22T00:00:00";}i:73;a:4:{s:7:"version";s:5:"4.8.4";s:8:"critical";b:0;s:5:"notes";s:133:"
- Craft no longer shows an alert when an installed Craft/plugin edition is a lower tier than the licensed edition.
";s:4:"date";s:19:"2024-03-19T00:00:00";}i:74;a:4:{s:7:"version";s:5:"4.8.3";s:8:"critical";b:0;s:5:"notes";s:538:"
craft\helpers\DateTime::toDateTime() now attempts to create a DateTime object by passing the passe-in value into its constructor.
- Fixed a bug where navigating back after creating an entry or applying a draft would return a 404 error. (#14587)
- Fixed a bug where action URLs weren’t respecting the subpath specified by the
@web alias, if it wasn’t present in the local URL to index.php.
";s:4:"date";s:19:"2024-03-15T00:00:00";}i:75;a:4:{s:7:"version";s:5:"4.8.2";s:8:"critical";b:0;s:5:"notes";s:958:"
- Entry queries are now ordered by
postDate DESC, id DESC by default, rather than just postDate DESC, to ensure their order is consistent when two entries have the same post date.
- Fixed a bug where
craft\helpers\DateRange::dateIntervalByTimePeriod() wasn’t accounting for DST changes.
- Fixed a bug where programmatically-updated
<textarea>s weren’t triggering autosaves. (craftcms/ckeditor#172)
- Fixed a JavaScript error that could occur when navigating between asset folders, when a JavaScript-based uploader was registered. (#14542)
- Fixed a bug where action URLs were getting duplicate URI segments if Craft was installed in a subpath within the webroot. (#14559)
";s:4:"date";s:19:"2024-03-12T00:00:00";}i:76;a:4:{s:7:"version";s:5:"4.8.1";s:8:"critical";b:0;s:5:"notes";s:784:"
- Fixed a bug where some characters were getting misinterpreted as elisions when normalizing search keywords.
- Fixed a bug where
craft\helpers\UrlHelper::actionUrl() was using the site URL rather than the requested URL. (#14440)
- Fixed a bug where
craft\helpers\Html::parseTagAttribute() wasn’t handling attribute values with newlines. (#14498)
- Fixed a bug where the “Filesystem Type” setting wasn’t toggling type-specific settings when editing a filesystem via a slideout. (#14522)
- Fixed a potential SSTI vulnerability.
";s:4:"date";s:19:"2024-03-05T00:00:00";}i:77;a:4:{s:7:"version";s:5:"4.8.0";s:8:"critical";b:0;s:5:"notes";s:3511:"Trialing Craft and plugin updates with expired licenses is allowed now, on non-public domains.
When licensing issues occur on public domains, the control panel will now become temporarily inaccessible for logged-in users, alerting them to the problems and giving them an opportunity to resolve them. (The front end will not be impacted.)
Content Management
- Assets fields’ selection modals now open to the last-viewed location by default, if their Default Upload Location doesn’t specify a subpath. (#14382)
- Element sources no longer display
0 badges.
Administration
- Color fields now have a “Presets” settings. (#14463)
- It’s now possible to update expired licenses from the Updates utility, on non-public domains.
- The
queue/run command now supports a --job-id option.
update all and update <handle> commands now support a --with-expired option.
Development
- The GraphQL API is now available for Craft Solo installs.
- The
{% js %} and {% css %} tags now support .js.gz and .css.gz URLs. (#14243)
- Relation fields’ element query params now factor in the element query’s target site(s). (#14258, #14348, #14304)
- Element queries’
level param now supports passing an array which includes null. (#14419)
Extensibility
- Added
craft\services\ProjectConfig::EVENT_AFTER_WRITE_YAML_FILES. (#14365)
- Added
craft\services\Relations::deleteLeftoverRelations(). (#13956)
- Added
craft\services\Search::shouldCallSearchElements(). (#14293)
System
- Relations for fields that are no longer included in an element’s field layout are now deleted after element save. (#13956)
- The Sendmail email transport type now uses the
sendmail_path PHP ini setting by default. (#14433)
- Composer installation commands suggested by the Plugin Store now include a minimum version constraint.
- Fixed a bug where it wasn’t possible to eager-load Matrix block revisions, or load them via GraphQL. (#14448)
- Fixed a PHP warning that could occur when publishing asset bundles on Dev Mode. (#14455)
- Fixed a bug where the Updates utility and Updates widget weren’t handling update check failures.
- Updated Twig to 3.8.
";s:4:"date";s:19:"2024-02-26T00:00:00";}i:78;a:4:{s:7:"version";s:5:"4.7.4";s:8:"critical";b:0;s:5:"notes";s:1924:"
- The Plugin Store now shows “Tested on Cloud” and “Supports GraphQL” labels for plugins when appropriate.
- Fixed a JavaScript error that could occur when switching between asset sources, if the user had permission to upload assets to some but not others. (#14403)
- Fixed a bug where setting
showSiteMenu to true on element index templates was being treated as 'auto'. (#14404)
- Fixed a SQL error that occurred when setting the Max Length of a URL field beyond what’s allowed by a
varchar column. (#14408)
- Fixed a bug where
data-target and data-reverse-target attributes weren’t getting properly namespaced if they included a class name selector.
- Fixed the type annotation for
craft\behaviors\CustomFieldBehavior::$fieldHandles. (#14421)
- Fixed a bug where the Shift + Spacebar keyboard shortcut for previewing assets was only working for the first selected asset, rather than the focused one.
- Fixed a JavaScript error that could occur when previewing an image.
- Fixed a bug where PHP errors that occurred during bootstrap weren’t getting logged to
stderr for console requests. (#14424)
- Fixed a bug where disabled elements and drafts weren’t automatically getting propagated to newly-created sites, when appropriate.
- Fixed a bug where the selected tab wasn’t being remembered when switching sites on element edit pages. (#4018)
";s:4:"date";s:19:"2024-02-22T00:00:00";}i:79;a:4:{s:7:"version";s:5:"4.7.3";s:8:"critical";b:0;s:5:"notes";s:1096:"
- Updated the bundled
composer.phar to Composer 2.7.1. (CVE-2024-24821)
- Fixed a bug where read/write splitting was always getting disabled for GraphQL POST requests. (#14324)
- Fixed a bug where GraphQL schema edit pages could include empty category headings.
- Fixed a bug where asset slideouts weren’t showing validation errors on the Filename field. (#14329)
- Fixed a bug where element slideouts would open when long-pressing on an element’s “Remove” button within an element select input.
- Fixed a bug where relations weren’t getting deleted when an element was deleted for a site. (#14347)
- Fixed a SQL error that occurred when saving a Number field with Decimals set to more than 30 on MySQL. (#14370)
";s:4:"date";s:19:"2024-02-15T00:00:00";}i:80;a:4:{s:7:"version";s:7:"4.7.2.1";s:8:"critical";b:0;s:5:"notes";s:295:"
- Craft now requires Composer ^2.7.0. (CVE-2024-24821)
- Fixed a PHP error that could occur when using Checkboxes or Multi-select fields. (#14326)
";s:4:"date";s:19:"2024-02-08T00:00:00";}i:81;a:4:{s:7:"version";s:5:"4.7.2";s:8:"critical";b:0;s:5:"notes";s:1440:"
- It’s now possible to select the temp asset volume within Assets fields, if the temp upload location includes a subpath. (#14246)
- Fixed a bug where it wasn’t possible to set the “Formatting Locale” user preference back to “Same as language” once another value had been selected.
- Fixed a bug where layout components provided by disabled plugins weren’t getting omitted. (#14236)
- Fixed a bug where “Move to the left” and “Move to the right” actions within field layout designers weren’t always getting enabled when they should, if a new tab was added.
- Fixed a bug where “Move to the left” and “Move to the right” actions within field layout designers were labelled incorrectly for right-to-left languages.
- Fixed a bug where users with “Create entries” permission but not “Delete entries” weren’t allowed to delete their own unpublished drafts. (#14294)
- Fixed a bug where Yii-provided Chinese translations weren’t getting picked up in the control panel. (#14287)
- Fixed an alignment bug with sortable structure views. (#14299)
";s:4:"date";s:19:"2024-02-07T00:00:00";}i:82;a:4:{s:7:"version";s:5:"4.7.1";s:8:"critical";b:0;s:5:"notes";s:754:"
- Unpublished drafts no longer show “Created at” or “Updated at” metadata values. (#14204)
- Fixed a bug where empty Dropdown fields were getting treated as dirty when unchanged.
- Fixed a bug where Recent Entries widgets were getting mangled when new entries were created via Quick Post widgets.
- Fixed an error that occurred when adding a Dropdown field condition rule, if the field contained any optgroups. (#14224)
- Fixed a bug where Dropdown field condition rules weren’t displaying
0 options. (#14232)
";s:4:"date";s:19:"2024-01-29T00:00:00";}i:83;a:4:{s:7:"version";s:5:"4.7.0";s:8:"critical";b:0;s:5:"notes";s:2308:"Assets fields with “All” selected for the available sources will no longer include the temp asset volume, if there is one.
Content Management
- Admin tables now have sticky footers. (#14149)
Administration
- Added “Save and continue editing” actions to all core settings pages with full-page forms. (#14168)
- It’s no longer possible to select the temp asset volume within Assets fields. (#11405, #14141)
- Added the
utils/prune-orphaned-matrix-blocks command. (#14154)
Extensibility
- Added
craft\base\ElementInterface::beforeDeleteForSite().
- Added
craft\base\ElementInterface::afterDeleteForSite().
- Added
craft\base\FieldInterface::beforeElementDeleteForSite().
- Added
craft\base\FieldInterface::afterElementDeleteForSite().
System
- Reduced the system font file size, and prevented the flash of unstyled type for it. (#13879)
- Log message timestamps are now set to the system time zone. (#13341)
- Database backups no longer include data from the
phpsessions table, if it exists. (#13589)
- Selectize inputs now use the
auto_position plugin. (#14160)
- Fixed a bug where paths passed to
craft\web\CpScreenResponseBehavior::editUrl() weren’t getting resolved to absolute URLs.
- Fixed a bug where deleting an entry for a site wasn’t propagating to Matrix blocks for that entry/site. (#13948)
";s:4:"date";s:19:"2024-01-23T00:00:00";}i:84;a:4:{s:7:"version";s:5:"4.6.1";s:8:"critical";b:0;s:5:"notes";s:1448:"
craft\log\MonologTarget instances are now created via Craft::createObject(). (#13341)
- Fixed a bug where
craft\helpers\Db::prepareValueForDb() wasn’t converting objects to arrays for JSON columns.
- Fixed a bug where Checkboxes, Multi-select, Dropdown, and Radio Buttons fields weren’t displaying
0 options within element indexes or condition rules. (#14127, #14143)
- Fixed a bug where
craft\db\Migration::renameTable() was renaming the table for the primary database connection, rather than the migration’s connection. (#14131)
- Fixed a bug where
Craft.FormObserver wasn’t working reliably for non-<form> containers.
- Fixed a bug where Selectize inputs were triggering autosaves, even when the value didn’t change.
- Fixed a bug where custom source labels weren’t getting translated. (#14137)
- Fixed a bug where Dropdown columns within Table fields were loosing their options when the field was edited. (#14134)
";s:4:"date";s:19:"2024-01-16T00:00:00";}i:85;a:4:{s:7:"version";s:5:"4.6.0";s:8:"critical";b:0;s:5:"notes";s:5112:"Content Management
- Added live conditional field support to asset edit pages, as well as asset, user, and tag slideouts. (#14115)
- Added the “Country” field type. (#13789)
- It’s now possible to delete volume folders using the “Delete” asset action. (#13086)
- Date range condition rules are now inclusive of their end dates. (#13435)
- Custom field condition rules now show their field handles, for users with the “Show field handles in edit forms” preference enabled. (#13300)
- Element conditions now include condition rules for fields with duplicate names, for users with the “Show field handles in edit forms” preference enabled. (#13300)
- Improved element search performance. (#14055)
- Improved the performance of large editable tables. (#13852)
Administration
- Edit Field pages now have a “Save and add another” action. (#13865)
- Added the
disabledUtilities config setting. (#14044)
- Added the
showFirstAndLastNameFields config setting. (#14097)
resave commands now pass an empty string ('') to fields’ normalizeValue() methods when --to is set to :empty:. (#13951)
- The
sections/create command now supports --name, --handle, --type, --no-versioning, --uri-format, and --template options, and can now be run non-interactively. (#13864)
- The
index-assets/one and index-assets/all commands now accept a --delete-empty-folders option. (#13947)
Extensibility
- Added partial support for field types storing data in JSON columns (excluding MariaDB). (#13916)
- Added
craft\base\conditions\ConditionRuleInterface::getLabelHint().
- Added
craft\helpers\AdminTable::moveToPage(). (#14051)
- Added
craft\helpers\App::dbMutexConfig().
- Added
craft\helpers\ElementHelper::searchableAttributes().
- Added
craft\services\Elements::setElementUri().
- Added
craft\services\Elements::EVENT_SET_ELEMENT_URI. (#13930)
- Added
craft\services\Search::createDbQuery().
craft\base\MemoizableArray now supports passing a normalizer method to the constructor, which will be lazily applied to each array item once, only if returned by all() or firstWhere(). (#14104)
craft\elements\actions\DeleteAssets is no longer deprecated.
craft\helpers\ArrayHelper::firstWhere() now has a $valueKey argument, which can be passed a variable by reference that should be set to the resulting value’s key in the array.
- Deprecated
craft\helpers\App::mutexConfig().
- Added
Craft.FormObserver. (#14114)
- Admin tables now have
footerActions, moveToPageAction, onCellClicked, onCellDoubleClicked, onRowClicked, onRowDoubleClicked, and paginatedReorderAction settings. (#14051)
System
- “Updating search indexes” jobs are no longer queued when saving elements with change tracking enabled, if no searchable fields or attributes were changed. (#13917)
queue/get-job-info action requests no longer create a mutex lock.
- The
mutex driver is now set to yii\mutex\MysqlMutex or yii\mutex\PgsqlMutex by default, once again. (#14102)
";s:4:"date";s:19:"2024-01-09T00:00:00";}i:86;a:4:{s:7:"version";s:6:"4.5.15";s:8:"critical";b:0;s:5:"notes";s:1483:"- Fixed a bug where the “Save and add another” element action wasn’t redirecting to a new element edit page, when editing an unpublished draft.
- Fixed a bug where
craft\helpers\DateTimeHelper::nextYear() and lastYear() weren’t returning the correct dates. (#14109)
- Fixed a bug where image transforms weren’t getting created for remote assets, if
maxCachedCloudImageSize was set to 0. (#14100)
- Fixed a SQL error that could occur when updating existing elements via GraphQL mutations. (#14113)
- Fixed a bug where Assets fields weren’t preselecting the default upload location when first opening the asset selection modal. (#14112, #14116)
- Fixed a bug where Assets fields weren’t tracking their selected source path on a per-field basis. (#14112, #14116)
- Fixed a bug where
craft\fields\BaseRelationField::normalizeValue() wasn’t retaining eager-loaded values. (#14117)
";s:4:"date";s:19:"2024-01-09T00:00:00";}i:87;a:4:{s:7:"version";s:6:"4.5.14";s:8:"critical";b:0;s:5:"notes";s:1834:"
- Improved the performance of input namespacing.
- The Licensing Issues alert now includes a “Refresh” button. (#14080)
relatedToAssets, relatedToCategories, relatedToEntries, relatedToTags, and relatedToUsers are now reserved user field handles. (#14075)
craft\services\Security::$sensitiveKeywords is no longer case-sensitive. (#14064)
- Fixed a bug where the
index-assets/cleanup command accepted --cache-remote-images, --create-missing-assets, and --delete-missing-assets options, even though they didn’t do anything.
- Fixed a bug where automatically-created relations could be lost when a new site was added to an entry. (#14065)
- Fixed a bug where
craft\web\Request::getIsPreview() was returning true for requests with expired tokens. (#14066)
- Fixed a bug where asset conflict resolution modals were closing prematurely if there were multiple conflicts. (#14045)
- Fixed a bug where meta fields weren’t showing change indicators.
- Fixed a bug where the
index-assets/one command was overly-destructive when run with a subpath and the --delete-missing-assets option. (#14087)
- Fixed a privilege escalation vulnerability.
";s:4:"date";s:19:"2024-01-02T00:00:00";}i:88;a:4:{s:7:"version";s:6:"4.5.13";s:8:"critical";b:0;s:5:"notes";s:1465:"
- Address fields now have the appropriate
autocomplete values when editing an address that belongs to the current user. (#13938)
- The
|markdown and |md filters now accept an encode argument, which can be set to true to HTML-encode the content before parsing it as Markdown.
- Added the
pre-encoded Markdown flavor, which can be used when the content has already been HTML-encoded.
- Added
craft\elements\Address::getBelongsToCurrentUser().
- Fixed a bug where
{% namespace %} tags weren’t respecting namespaces set to 0. (#13943)
- Fixed an error that could occur when using a custom asset uploader. (#14029)
- Fixed an error that could occur when saving an asset using
SCENARIO_CREATE, if Asset::$tempFilePath wasn’t set. (#14041)
- Fixed a bug where some HTML entities within Tip and Warning field layout elements colud get double-encoded. (#13959)
- Fixed an infinite recursion bug. (#14033)
";s:4:"date";s:19:"2023-12-15T00:00:00";}i:89;a:4:{s:7:"version";s:6:"4.5.12";s:8:"critical";b:0;s:5:"notes";s:3186:"
- It’s no longer possible to dismiss asset conflict resolution modals by pressing Esc or clicking outside of the modal. (#14002)
- Improved performance for sites with lots of custom fields in non-global contexts. (#13992)
- Username, Full Name, and Email fields now have the appropriate
autocomplete values when editing the current user. (#13941)
- Queue job info is now broadcasted to other browser tabs opened to the same control panel. (#13990)
- Volumes’ Asset Filesystem settings now list filesystems that are already selected by another volume, as disabled options. (#14004)
- Added
craft\db\Connection::onAfterTransaction().
- Added
craft\errors\MutexException. (#13985)
- Added
craft\fieldlayoutelements\TextField::$inputType. (#13988)
- Deprecated
craft\fieldlayoutelements\TextField::$type. $inputType should be used instead. (#13988)
- Fixed a bug where WebP image transforms weren’t respecting transform quality settings. (#13998)
- Fixed a bug where
craft\base\ApplicationTrait::onAfterRequest() callbacks weren’t necessarily triggered if an EVENT_AFTER_REQUEST handler got in the way.
- Fixed a bug where keyboard shortcuts could stop working. (#14011)
- Fixed a bug where the
craft\services\Elements::EVENT_AUTHORIZE_VIEW event wasn’t always triggered when editing elements. (#13981)
- Fixed a bug that prevented Live Preview from opening for edited entries, when the
autosaveDrafts config setting was disabled. (#13921)
- Fixed a bug where JavaScript-based slug generation wasn’t working consistently with PHP. (#13971)
- Fixed a bug where asset upload failure notifications could be ambiguous if a server connection issue occurred. (#14003)
- Fixed a “Changes to the project config are not possible while in read-only mode.” error that could occur when adimn changes were disallowed. (#14018)
- Fixed a bug where it was possible to create a volume without a filesystem selected. (#14004)
- Fixed a privilege escalation vulnerability.
";s:4:"date";s:19:"2023-12-12T00:00:00";}i:90;a:4:{s:7:"version";s:8:"4.5.11.1";s:8:"critical";b:0;s:5:"notes";s:155:"
- Fixed a PHP error that occurred due to a conflict with psr/log v3. (#13963)
";s:4:"date";s:19:"2023-11-23T00:00:00";}i:91;a:4:{s:7:"version";s:6:"4.5.11";s:8:"critical";b:0;s:5:"notes";s:1582:"
- Date fields with “Show Time Zone” enabled will now remember IANA-formatted time zones set via GraphQL. (#13893)
- Added
craft\gql\types\DateTime::$setToSystemTimeZone.
craft\gql\types\DateTime now supports JSON-encoded objects with date, time, and timezone keys.
craft\web\Response::setCacheHeaders() now includes the public directive in the Cache-Control header. (#13922)
- Fixed a bug where ↑ and ↓ key presses would set focus to disabled menu options. (#13911)
- Fixed a bug where elements’
localized GraphQL field wasn’t returning any results for drafts or revisions. (#13924)
- Fixed a bug where dropdown option labels within Table fields weren’t getting translated. (#13914)
- Fixed a bug where “Updating search indexes” jobs were getting queued for Matrix block revisions. (#13917)
- Fixed a bug where control panel resources weren’t getting published on demand. (#13935)
- Fixed privilege escalation vulnerabilities.
";s:4:"date";s:19:"2023-11-16T00:00:00";}i:92;a:4:{s:7:"version";s:6:"4.5.10";s:8:"critical";b:0;s:5:"notes";s:2330:"
- Added the
db/drop-table-prefix command.
- Top-level disabled related/nested elements are now included in “Extended” element exports. (#13496)
- Related element validation is no longer recursive. (#13904)
- Addresses’ owner elements are now automatically set on them during initialization, if they were queried with the
owner address query param.
- Entry Title fields are no longer shown when “Show the Title field” is disabled and there’s a validation error on the
title attribute. (#13876)
- Improved the reliability of image dimension detection. (#13886)
- The default backup command for PostgreSQL no longer passes in
--column-inserts to pg_dump.
- Log contexts now include the environment name. (#13882)
- Added
craft\web\AssetManager::$cacheSourcePaths.
- Fixed a bug where disclosure menus could be positioned off-screen on mobile.
- Fixed a bug where element edit pages could show a context menu when it wasn’t necessary.
- Fixed a bug where the “Delete entry for this site” action wasn’t deleting the canonical entry for the selected site, when editing a provisional draft.
- Fixed an error that occurred when cropping an image that was missing its dimension info. (#13884)
- Fixed an error that occurred if a filesystem didn’t have any settings. (#13883)
- Fixed a bug where related element validation wansn’t ensuring that related elements were loaded in the same site as the source element when possible. (#13907)
- Fixed a bug where sites weren’t always getting queried in the same order, if multiple sites’
sortOrder values were the same. (#13896)
";s:4:"date";s:19:"2023-11-07T00:00:00";}i:93;a:4:{s:7:"version";s:5:"4.5.9";s:8:"critical";b:0;s:5:"notes";s:444:"
- Fixed a bug where it was possible to change the status for entries that didn’t show the Status field, via bulk editing. (#13854)
- Fixed a PHP error that could occur when editing elements via slideouts. (#13867)
- Fixed an error that could occur if no
storage/ folder existed.
";s:4:"date";s:19:"2023-10-23T00:00:00";}i:94;a:4:{s:7:"version";s:5:"4.5.8";s:8:"critical";b:0;s:5:"notes";s:1437:"
- Improved the styling and accessibility of revision pages. (#13857, #13850)
- Added the
focalPoint argument to asset save mutations. (#13846)
- The
up command now accepts a --no-backup option.
{% cache %} tags now store any <meta> tags registered with yii\web\View::registerMetaTag(). (#13832)
- Added
craft\errors\ExitException.
- Added
craft\web\View::startMetaTagBuffer().
- Added
craft\web\View::clearMetaTagBuffer().
- Added support for modifying the application config via a global
craft_modify_app_config() function. (#13855)
- Fixed a bug where
{% exit %} tags without a status code weren’t outputting any HTML that had already been output in the template. (#13848)
- Fixed a bug where it wasn’t possible to Ctrl/Command-click on multiple elements to select them. (#13853)
";s:4:"date";s:19:"2023-10-20T00:00:00";}i:95;a:4:{s:7:"version";s:5:"4.5.7";s:8:"critical";b:0;s:5:"notes";s:4400:"
- Field containers are no longer focusable unless a corresponding validation message is clicked on. (#13782)
- Improved element save performance.
- Added
pgpassword and pwd to the list of keywords that Craft will look for when determining whether a value is sensitive and should be redacted from logs, etc.
- Added
craft\events\DefineCompatibleFieldTypesEvent.
- Added
craft\services\Fields::EVENT_DEFINE_COMPATIBLE_FIELD_TYPES. (#13793)
- Added
craft\web\assets\inputmask\InputmaskAsset.
craft\web\Request::accepts() now supports wildcard (e.g. application/*). (#13759)
Craft.ElementEditor instances are now configured with an elementId setting, which is kept up-to-date when a provisional draft is created. (#13795)
- Added
Garnish.isPrimaryClick().
- Fixed a bug where relational fields’ element selector modals weren’t always getting set to the correct site per the field’s “Relate entries from a specific site?” setting. (#13750)
- Fixed a bug where Dropdown fields weren’t visible when viewing revisions and other static forms. (#13753, craftcms/commerce#3270)
- Fixed a bug where the
defaultDirMode config setting wasn’t being respected when the storage/runtime/ and storage/logs/ folders were created. (#13756)
- Fixed a bug where the “Save and continue editing” action wasn’t working on Edit User pages if they contained a Money field. (#13760)
- Fixed a bug where relational fields’ validation messages weren’t using the actual field name. (#13807)
- Fixed a bug where element editor slideouts were appearing behind element selector modals within Live Preview. (#13798)
- Fixed a bug where element URIs weren’t getting updated for propagated sites automatically. (#13812)
- Fixed a bug where dropdown input labels could overflow out of their containers. (#13817)
- Fixed a bug where the
transformGifs and transformSvgs config settings weren’t always being respected when using @transform GraphQL directives. (#13808)
- Fixed a bug where Composer operations were sorting
require packages differently than how Composer does it natively, when config.sort-packages was set to true. (#13806)
- Fixed a MySQL error that could occur when creating a Plain Text field with a high charcter limit. (#13781)
- Fixed a bug where entries weren’t always being treated as live for View and Preview buttons, when editing a non-primary site. (#13746)
- Fixed a bug where Ctrl-clicks were being treated as primary clicks in some browsers. (#13823)
- Fixed a bug where some language options were showing “false” hints. (#13837)
- Fixed a bug where Craft was tracking changes to elements when they were being resaved. (#13761)
- Fixed a bug where sensitive keywords weren’t getting redacted from log contexts.
- Fixed RCE vulnerabilities.
";s:4:"date";s:19:"2023-10-17T00:00:00";}i:96;a:4:{s:7:"version";s:7:"4.5.6.1";s:8:"critical";b:0;s:5:"notes";s:249:"
- Crossdomain JavaScript resources are now loaded via a proxy action.
- Fixed JavaScript errors that could occur after loading new UI components over Ajax. (#13751)
";s:4:"date";s:19:"2023-09-27T00:00:00";}i:97;a:4:{s:7:"version";s:5:"4.5.6";s:8:"critical";b:0;s:5:"notes";s:4547:"
- When slideouts are opened within Live Preview, they now slide up over the editor pane, rather than covering the preview pane. (#13739)
- Cross-site validation now only involves fields which were actually modified in the element save. (#13675)
- Row headings within Table fields now get statically translated. (#13703)
- Element condition settings within field layout components now display a warning if the
autosaveDrafts config setting is disabled. (#12348)
- Added the
resave/addresses command. (#13720)
- The
resave/matrix-blocks command now supports an --owner-id option.
- Added
craft\helpers\App::phpExecutable().
craft\helpers\Component::createComponent() now filters out as X and on X keys from the component config.
craft\services\Announcements::push() now has an $adminsOnly argument. (#13728)
Craft.appendHeadHtml() and appendBodyHtml() now load external scripts asynchronously, and return promises.
- Improved the reliability of Composer operations when PHP is running via FastCGI. (#13681)
- Fixed a bug where it wasn’t always possible to create new entries from custom sources which were limited to one section.
- Fixed a bug where relational fields weren’t factoring in cross-site elements when enforcing their “Min Relations”, “Max Relations”, and “Validate related entries” settings. (#13699)
- Fixed a bug where pagination wasn’t working for admin tables, if the
onQueryParams callback method wasn’t set. (#13677)
- Fixed a bug where relations within Matrix blocks weren’t getting restored when restoring a revision’s content. (#13626)
- Fixed a bug where the filesystem and volume-creation slideouts could keep reappearing if canceled. (#13707)
- Fixed an error that could occur when reattempting to update to Craft 4.5. (#13714)
- Fixed a bug where date and time inputs could be parsed incorrectly, if the user’s formatting locale wasn’t explicitly set, or it changed between page load and form submit. (#13731)
- Fixed JavaScript errors that could occur when control panel resources were being loaded from a different domain. (#13715)
- Fixed a PHP error that occurred if the
CRAFT_DOTENV_PATH environment variable was set, or a console command was executed with the --dotenvPath option. (#13725)
- Fixed a bug where long element titles weren’t always getting truncated in the control panel. (#13718)
- Fixed a bug where checkboxes could be preselected if they had an empty value. (#13710)
- Fixed a bug where links in validation summaries weren’t working if the offending field was in a collapsed Matrix block. (#13708)
- Fixed a bug where cross-site validation could apply even if
craft\services\Elements::saveElement() was called with $runValidation set to false.
- Fixed some wonky scrolling behavior on pages where the details pane was shorter than the content pane. (#13637)
- Fixed a division by zero error. (#13712)
- Fixed an RCE vulnerability.
";s:4:"date";s:19:"2023-09-26T00:00:00";}i:98;a:4:{s:7:"version";s:5:"4.5.5";s:8:"critical";b:0;s:5:"notes";s:723:"
- Added the
maxGraphqlBatchSize config setting. (#13693)
- Fixed a bug where page sidebars and detail panes weren’t scrolling properly if their height was greater than the main content pane height. (#13637)
- Fixed an error that could occur when changing a field’s type, if a backup table needed to be created to store the old field values. (#13669)
- Fixed a bug where it wasn’t possible to save blank Dropdown values. (#13695)
";s:4:"date";s:19:"2023-09-14T00:00:00";}i:99;a:4:{s:7:"version";s:5:"4.5.4";s:8:"critical";b:0;s:5:"notes";s:5864:"
- Added the
@stripTags and @trim GraphQL directives. (#9971)
- Added
SK to the list of keywords that Craft will look for when determining whether a value is sensitive and should be redacted from logs, etc. (#3619)
- Improved the scrolling behavior for page sidebars and detail panes. (#13637)
- Filesystem edit pages now have a “Save and continue editing” alternative submit action, and the Command/Ctrl + S keyboard shortcut now redirects back to the edit page. (#13658)
- Attribute labels are no longer surrounded by asterisks for front-end validation messages. (#13640)
- The
|replace Twig filter now has a regex argument, which can be set to false to disable regular expression parsing. (#13642)
- Added
craft\events\DefineUserGroupsEvent.
- Added
craft\services\Users::EVENT_DEFINE_DEFAULT_USER_GROUPS. (#12283)
- Added
craft\services\Users::getDefaultUserGroups().
craft\events\UserAssignGroupEvent now extends DefineUserGroupsEvent, giving it a new $userGroups property.
craft\helpers\DateTimeHelper::toDateTime() now supports DateTimeImmutable values. (#13656)
craft\web\Response::setCacheHeaders() no longer includes public in the Cache-Control header when $overwrite is false. (#13676)
- Deprecated
craft\events\UserAssignGroupEvent. DefineUserGroupsEvent should be used instead.
- Fixed a bug where the “Active Trials” section in the Plugin Store cart modal wasn’t listing plugins in trial. (#13661)
- Fixed a bug where changed fields weren’t being tracked properly when applying a draft for a multi-site entry.
craft\services\Elements::duplicateElement() now supports passing a siteAttributes array to the $attributes argument, for setting site-specific attributes.
- Fixed an error that could occur when executing a GraphQL query with fragments. (#13622)
- Fixed a bug where addresses queried via GraphQL had a
photo field.
- Fixed a bug where boolean environment variables weren’t always getting the correct value indicators within Selectize fields. (#13613)
- Fixed a bug where some system icons were getting black backgrounds when displayed within Vue apps. (#13632)
- Fixed a bug where the user and address field layouts were getting new UUIDs each time they were saved. (#13588)
- Fixed an error that could occur if a Money field was set to an array without a
value key. (#13648)
- Fixed a bug where relations weren’t getting restored when restoring a revision’s content. (#13626)
- Fixed a bug where “Entry Type” fields were showing
typeId labels for admin users with “Show field handles in edit forms” enabled. (#13627)
- Fixed a bug where Lightswitch fields with only one label weren’t getting the correct padding on the unlabelled side of the container. (#13629)
- Fixed a bug where the
transformGifs and transformSvgs config settings weren’t always being respected. (#13624, #13635)
- Fixed a bug where filesystems weren’t requiring the “Base URL” setting to be set. (#13657)
- Fixed a bug where applying a draft could redirect to the “Current” revision on a different site, if a new site had been added on the draft. (#13668)
- Fixed an error that could occur when changing a field’s type, if a backup table needed to be created to store the old field values. (#13669)
- Fixed a bug where Matrix blocks that were initially created for a newly-added site within a draft could be lost when applying the draft. (#13670)
- Fixed a bug where
fill transform properties weren’t being passed along by craft\elements\Asset::getUrlsBySize() and getSrcset(). (#13650)
- Fixed a bug where SVG asset icons weren’t visible in Safari. (#13685)
- Fixed two RCE vulnerabilities.
";s:4:"date";s:19:"2023-09-12T00:00:00";}i:100;a:4:{s:7:"version";s:5:"4.5.3";s:8:"critical";b:0;s:5:"notes";s:1693:"
- Fixed a bug where custom fields could be marked as changed within element editor slideouts, if they modified their input values on initialization. (craftcms/ckeditor#128)
- Fixed a bug where elements were getting saved a second time after being converted to a provisional draft within a slideout. (#13604)
- Fixed a JavaScript error. (#13605)
- Fixed support for storing PHP session info in the database on PostgreSQL.
- Fixed a bug where search inputs within element selector modals weren’t getting focus rings.
- Fixed a bug where boolean menu inputs were initially treating
null values as true.
- Fixed a bug where boolean menu inputs weren’t toggling other fields. (#13613)
- Fixed a bug where
Craft.namespaceId() wasn’t working properly if the namespace ended in a ] character.
- Fixed a bug where the
|replace Twig filter wasn’t identifying regular expressions that contained escaped slashes. (#13618)
- Fixed a bug where entries that were cloned from a provisional draft weren’t getting propagated to other sites initially. (#13599)
- Fixed an error that could occur when cloning a multi-site provisional draft that contained nested Matrix/Neo/Super Table blocks.
";s:4:"date";s:19:"2023-08-29T00:00:00";}i:101;a:4:{s:7:"version";s:5:"4.5.2";s:8:"critical";b:0;s:5:"notes";s:1172:"
craft\helpers\UrlHelper::buildQuery() is no longer deprecated. (#12796)
- Fixed a bug where control panel notifications weren’t always closing automatically if they contained interactive elements. (#13591)
- Fixed a bug where default user avatars were getting black backgrounds when displayed within Vue apps. (#13597)
- Fixed a bug where the Username and Email fields weren’t required for public registrations forms, if “Deactivate users by default” was enabled. (#13596)
- Fixed a bug where switching sites when editing a global site wasn’t working. (#12796, #13603)
- Fixed a bug where page shortcuts weren’t working after a related element was saved via a slideout. (#13601)
";s:4:"date";s:19:"2023-08-24T00:00:00";}i:102;a:4:{s:7:"version";s:5:"4.5.1";s:8:"critical";b:0;s:5:"notes";s:1089:"
- Control panel notifications no longer block page keyboard shortcuts. (#13591)
Garnish.uiLayerManager.addLayer() now supports a bubble option, which allows non-matching keyboard shortcuts to bubble up to the parent layer.
- Fixed an error that could occur when Craft was performing a Composer operation, if no
HOME environment variable was set for PHP. (#13590)
- Fixed a bug where
craft\fields\Matrix::serializeValue() was setting fields keys to a closure. (#13592)
- Fixed a bug where time values weren’t saving properly for Greek locales. (#9942)
- Fixed a bug where the “Status” lightswitch would always be enabled on edit pages for single-site elements. (#13595)
";s:4:"date";s:19:"2023-08-23T00:00:00";}i:103;a:4:{s:7:"version";s:5:"4.5.0";s:8:"critical";b:0;s:5:"notes";s:24717:"Content Management
- Entry and category edit pages now show other authors who are currently editing the same element. (#13420)
- Entry and category edit pages now display a notification when the element has been saved by another author. (#13420)
- Entry and category edit pages now display a validation error summary at the top of the page, including a mention of errors from other sites. (#11569, #12125)
- Table fields can now have a “Row heading” column. (#13231)
- Table fields now have a “Static Rows” setting. (#13231)
- Table fields no longer show a heading row, if all heading values are blank. (#13231)
- Element slideouts now show their sidebar content full-screen for elements without a field layout, rather than having an empty body. (#13056, #13053)
- Relational fields no longer track the previously-selected element(s) when something outside the field is clicked on. (#13123)
- Element indexes now use field layouts’ overridden field labels, if all field layouts associated with an element source use the same label. (#8903)
- Element indexes now track souces’ filters in the URL, so they can be sharable and persisted when navigating back to the index page via the browser history. (#13499)
- Users’ default thumbnails are now the user initials over a unique color gradient. (#13511)
- Improved the styling and max height of Selectize inputs. (#13065, #13176)
- Selectize inputs now support click-and-drag selection. (#13273)
- Selectize single-select inputs now automatically select the current value on focus. (#13273)
- It’s now possible to create new entries from entry select modals when a custom source is selected, if the source is configured to only show entries from one section. (#11499)
- The Entries index page now shows a primary “New entry” button when a custom source is selected, if the source is configured to only show entries from one section. (#13390)
- Invalid Dropdown fields now automatically select their default option and get marked as changed (if they have a default option). (#13540)
Accessibility
- Image assets’ thumbnails and
<img> tags generated via craft\element\Asset::getImg() no longer use the assets’ titles as alt fallback values. (#12854)
- Element index pages now have visually-hidden “Sources” headings for screen readers. (#12961)
- Element metadata fields now have visually-hidden “Metadata” headings for screen readers. (#12961)
- Structure elements within element indexes now convey their levels to screen readers. (#13020)
- Non-image asset thumbnails in the control panel now have
alt attributes set to the file extension. (#12724)
- Improved copy-text buttons for screen readers. (#13073)
- Improved the contrast of asset file type icons. (#13262)
Administration
- Added the “Slug Translation Method” setting to entry types. (#8962, #13291)
- Added the “Show the Status field” setting to entry types. (#12837, #13265)
- Added the
setup/cloud command, which prepares a Craft install to be deployed to Craft Cloud.
- Added the
setup/message-tables command, which can be run to set the project up for database-stored static translations via DbMessageSource. (#13542)
- Entry types created via the
entrify/global-set command now have “Show the Status field” disabled by default. (#12837)
- Added the
defaultCountryCode config setting. (#13478)
- Custom element sources can now be configured to only appear for certain sites. (#13344)
- The “My Account” page no longer shows a “Require a password reset on next login” checkbox.
- The Asset Indexes utility no longer shows the “Cache remote images” option on ephemeral environments. (#13202)
- It’s now possible to configure UK addresses to show a “County” field. (#13361)
- The “Login Page Logo” and “Site Icon” general settings’ image previews now have checkered backgrounds. (#13210, #13229)
- Empty field layout tabs are no longer pruned out. (#13132)
active, addresses, admin, email, friendlyName, locked, name, password, pending, suspended, and username are now reserved user field handles. (#13579)
Development
- Added a new
_globals global Twig variable for front-end templates, which can be used to store custom values in a global scope. (#13050, #12951)
- The
|replace Twig filter now supports passing in a hash with regular expression keys. (#12956)
{% exit %} tags now support passing a message after the status code. (#13166)
- Built-in element types’ GraphQL queries now support passing
null to relatedToAssets, relatedToEntries, relatedToUsers, relatedToCategories, relatedToTags, and relatedToAll arguments. (#7954)
- Elements now include custom field values when being iterated over, and when being merged. (#13009)
- Dropdown and Radio Buttons fields now have a “Column Type” setting, which will be set to
varchar for existing fields, and defaults to “Automatic” for new fields. (#13025, #12954)
- Successful
users/login JSON responses now include information about the logged-in user. (#13374)
Extensibility
- Filesystem types can now register custom file uploaders. (#13313)
- When applying a draft, the canonical elements’
getDirtyAttributes() and getDirtyFields() methods now return the attribute names and field handles that were modified on the draft for save events. (#12967)
- Admin tables can be configured to pass custom query params to the data endpoint. (#13416)
- Admin tables can now be programatically reloaded. (#13416)
- Admin table properties are now reactive. (#13558, #13520)
- Native element sources can now define a
defaultFilter key, which defines the default filter condition that should be applied when the source is selected. (#13499)
- Added
craft\addresses\SubdivisionRepository. (#13361)
- Added
craft\base\Element::showStatusField(). (#13265)
- Added
craft\base\Element::thumbSvg(). (#13262)
- Added
craft\base\ElementInterface::getIsSlugTranslatable().
- Added
craft\base\ElementInterface::getSlugTranslationDescription().
- Added
craft\base\ElementInterface::getSlugTranslationKey().
- Added
craft\base\ElementInterface::getThumbHtml().
- Added
craft\base\ElementInterface::modifyCustomSource().
- Added
craft\base\ElementInterface::setDirtyFields().
- Added
craft\base\ElementInterface::setFieldValueFromRequest(). (#12935)
- Added
craft\base\FieldInterface::normalizeValueFromRequest(). (#12935)
- Added
craft\base\FieldLayoutProviderInterface. (#13250)
- Added
craft\base\FsInterface::getShowHasUrlSetting(). (#13224)
- Added
craft\base\FsInterface::getShowUrlSetting(). (#13224)
- Added
craft\base\FsTrait::$showHasUrlSetting. (#13224)
- Added
craft\base\FsTrait::$showUrlSetting. (#13224)
- Added
craft\behaviors\EventBehavior. (#13502)
- Added
craft\controllers\AssetsControllerTrait.
- Added
craft\elements\db\ElementQuery::EVENT_BEFORE_POPULATE_ELEMENT.
- Added
craft\events\AssetBundleEvent.
- Added
craft\events\DefineAddressSubdivisionsEvent. (#13361)
- Added
craft\events\MoveElementEvent::$action. (#13429)
- Added
craft\events\MoveElementEvent::$targetElementId. (#13429)
- Added
craft\events\MoveElementEvent::getTargetElement(). (#13429)
- Added
craft\gql\GqlEntityRegistry::getOrCreate(). (#13354)
- Added
craft\helpers\Assets::iconSvg().
- Added
craft\helpers\StringHelper::escapeShortcodes(). (#12935)
- Added
craft\helpers\StringHelper::unescapeShortcodes(). (#12935)
- Added
craft\models\FieldLayout::$provider. (#13250)
- Added
craft\services\Addresses::$formatter, which can be used to override the default address formatter. (#13242, #12615)
- Added
craft\services\Addresses::EVENT_DEFINE_ADDRESS_SUBDIVISIONS. (#13361)
- Added
craft\services\Addresses::defineAddressSubdivisions(). (#13361)
- Added
craft\services\Elements::collectCacheInfoForElement().
- Added
craft\services\Elements::getRecentActivity(). (#13420)
- Added
craft\services\Elements::trackActivity(). (#13420)
- Added
craft\services\ProjectConfig::$cacheDuration. (#13164)
- Added
craft\services\Structures::ACTION_APPEND. (#13429)
- Added
craft\services\Structures::ACTION_PLACE_AFTER. (#13429)
- Added
craft\services\Structures::ACTION_PLACE_BEFORE. (#13429)
- Added
craft\services\Structures::ACTION_PREPEND. (#13429)
- Added
craft\services\Structures::EVENT_AFTER_INSERT_ELEMENT. (#13429)
- Added
craft\services\Structures::EVENT_BEFORE_INSERT_ELEMENT. (#13429)
- Added
craft\web\Controller::EVENT_DEFINE_BEHAVIORS. (#13477)
- Added
craft\web\Controller::defineBehaviors(). (#13477)
- Added
craft\web\CpScreenResponseBehavior::$errorSummary, errorSummary(), and errorSummaryTemplate(). (#12125)
- Added
craft\web\CpScreenResponseBehavior::$pageSidebar, pageSidebar(), and pageSidebarTemplate(). (#13019, #12795)
- Added
craft\web\CpScreenResponseBehavior::$slideoutBodyClass.
- Added
craft\web\Response::$defaultFormatters. (#13541)
- Added
craft\web\View::EVENT_AFTER_REGISTER_ASSET_BUNDLE.
craft\elements\actions\NewChild is no longer triggerable on elements that have a data-disallow-new-children attribute. (#13539)
craft\elements\actions\SetStatus is no longer triggerable on elements that have a data-disallow-status attribute.
craft\helpers\Cp::selectizeFieldHtml(), selectizeHtml(), and _includes/forms/selectize.twig now support a multi param. (#13176)
craft\helpers\Typecast::properties() now supports backed enum values. (#13371)
craft\services\Assets::getRootFolderByVolumeId() now ensures the root folder actually exists, and caches its results internally, improving performance. (#13297)
craft\services\Assets::getThumbUrl() now has an $iconFallback argument, which can be set to false to prevent a file icon URL from being returned as a fallback for assets that don’t have image thumbnails.
craft\services\Assets::getAllDescendantFolders() now has an $asTree argument. (#13535)
craft\services\Structures::EVENT_BEFORE_MOVE_ELEMENT is now cancellable. (#13429)
craft\validators\UniqueValidator now supports setting an additional filter via the filter property. (#12941)
craft\web\Response::setCacheHeaders() now has $duration and $overwrite arguments.
craft\web\Response::setNoCacheHeaders() now has an $overwrite argument.
craft\web\UrlManager no longer triggers its EVENT_REGISTER_CP_URL_RULES and EVENT_REGISTER_SITE_URL_RULES events until the request is ready to be routed, making it safe to call UrlManager::addRules() from plugin/module constructors. (#13109)
- Deprecated
craft\base\Element::EVENT_AFTER_MOVE_IN_STRUCTURE. (#13429)
- Deprecated
craft\base\Element::EVENT_BEFORE_MOVE_IN_STRUCTURE. (#13429)
- Deprecated
craft\base\Element::afterMoveInStructure(). (#13429)
- Deprecated
craft\base\Element::beforeMoveInStructure(). (#13429)
- Deprecated
craft\events\ElementStructureEvent. (#13429)
- Deprecated
craft\helpers\ArrayHelper::firstKey(). array_key_first() should be used instead.
- Deprecated
craft\helpers\Assets::iconPath(). craft\helpers\Assets::iconSvg() or craft\elements\Asset::getThumbHtml() should be used instead.
- Deprecated
craft\helpers\Assets::iconUrl().
- Deprecated
craft\helpers\UrlHelper::buildQuery(). http_build_query() should be used instead.
- Deprecated
craft\services\Volumes::ensureTopFolder(). craft\services\Assets::getRootFolderByVolumeId() should be used instead.
- Added
Craft.BaseUploader. (#13313)
- Added
Craft.createUploader(). (#13313)
- Added
Craft.registerUploaderClass(). (#13313)
- Added
Craft.Tooltip.
System
- Added support for setting environmental values in a “secrets” PHP file, identified by a
CRAFT_SECRETS_PATH environment variable. (#13283)
- Added support for the
CRAFT_LOG_ALLOW_LINE_BREAKS environment variable. (#13544)
- All generated URL param characters are now properly encoded. (#12796)
migrate commands besides migrate/create no longer create the migration directory if it doesn’t exist yet. (#12732)
- When
content table columns are resized, if any existing values are too long, all column data is now backed up into a new table, and the overflowing values are set to null. (#13025)
- When
content table columns are renamed, if an existing column with the same name already exists, the original column data is now backed up into a new table and then deleted from the content table. (#13025)
- Plain Text and Table fields no longer convert emoji to shortcodes on PostgreSQL.
- Reduced the size of control panel Ajax request headers.
- Improved GraphQL performance. (#13354)
- Fixed an error that occurred when exporting assets, if a subfolder was selected. (#13570)
- Fixed a bug where icons within secondary buttons were illegible when active.
- Fixed a bug where the
|replace filter was treating search strings as regular expressions even if they were invalid. (#12956)
- Fixed a bug where user groups without “Edit users” permission were being granted “Assign users to [group name]” when upgrading to Craft 4.
- Fixed a bug where keyboard shortcuts weren’t getting reactivated when control panel notifications were dismissed. (#13574)
- Fixed a bug where Plain Text and Table fields were converting posted shortcode-looking strings to emoji. (#12935)
- Fixed a bug where
craft\elements\Asset::getUrl() was returning invalid URLs for GIF and SVG assets within filesystems without base URLs, if the transformGifs or transformSvgs config settings were disabled. (#13306)
- Fixed a bug where the GraphQL API wasn’t enforcing schema site selections for the requested site. (#13346)
- Fixed a bug where PM times were getting converted to AM for Greek locales. (#9942)
- Fixed a bug where Command/Ctrl + clicks on “New entry” button menu options would open the Entries index page in a new tab, and redirect to the Edit Entry page in the current tab. (#13550)
- Fixed DB cache support for PostgreSQL.
- Updated Yii to 2.0.48.1. (#13445)
- Loosened the Composer constraint to
^2.2.19. (#13396)
- Internal Composer operations now use a bundled
composer.phar file, rather than Composer’s PHP API. (#13519)
- Updated Selectize to 0.15.2. (#13273)
";s:4:"date";s:19:"2023-08-22T00:00:00";}i:104;a:4:{s:7:"version";s:6:"4.4.17";s:8:"critical";b:0;s:5:"notes";s:2690:"
meta.__names__ values in the project config are now updated throughout the process of applying incoming project config changes, rather than at the end of the request.
- The
project-config/rebuild command now rebuilds the meta.__names__ array from scratch. (#13456)
- Fixed a bug where
Craft.BaseElementIndexView::this.canSelectElement() wasn’t getting applied for lazy-loaded elements.
- Fixed a bug where setting an element query’s
status param to archived would always yield zero results. (#13465)
- Fixed a bug where
update commands could fail on some environments.
- Fixed a bug where element thumbnails weren’t getting loaded for expanded relational field previews within element indexes.
- Fixed an error that occurred when deleting a volume with a missing filesystem type.
- Fixed a bug where Color field values were illegible within selected element index rows.
- Fixed a bug where multi-site content could be overwritten when creating a draft. (#13451)
- Fixed a bug where some nested component names weren’t getting deleted from the
meta.__names__ array in the project config. (#13456)
- Fixed a bug where
craft\helpers\DateTimeHelper::toDateInterval() didn’t support negative integers. (#13463)
- Fixed a bug where admin tables were initially displaying an empty results message rather than a loading spinner, when the initial data was loading via Ajax. (#13459)
- Fixed a bug where garbage collection could terminate prematurely if an exception was thrown when deleting a pending user. (#13490)
- Fixed an error that occurred if the
purify Twig filter was applied to a null value. (#13495)
- Fixed an error that could occur if a console controller’s
runAction() method returned null.
- Fixed a bug where image transforms weren’t respecting their
format settings. (#13493)
- Fixed an information disclosure vulnerability.
";s:4:"date";s:19:"2023-08-08T00:00:00";}i:105;a:4:{s:7:"version";s:8:"4.4.16.1";s:8:"critical";b:0;s:5:"notes";s:210:"
- Fixed a bug where lightswitch inputs weren’t always stretching to fit their labels, when there was enough space for it. (#13452)
";s:4:"date";s:19:"2023-07-19T00:00:00";}i:106;a:4:{s:7:"version";s:6:"4.4.16";s:8:"critical";b:0;s:5:"notes";s:2780:"
- The “Access the control panel” user permission now includes a warning that the permission grants view-only access to user data and most content.
- Added info buttons to “View entries”, “Create entries”, and “Save entries” user permissions, clarifying which actions they allow. (#13375)
- Improved performance when loading users with eager-loaded
addresses. (#13400)
createDraft GraphQL mutations now support a creatorId argument. (#13401)
- Garbage collection now deletes entries for sites that aren’t supported by their section. (#13383)
- Added
craft\elements\Address::setOwner().
craft\base\ElementInterface::eagerLoadingMap() can now include a createElement key in the returned array, which defines a target element factory function.
craft\base\Element::toArray() now clones custom field values, similar to __get(). (#13392)
- Fixed a bug where entry titles could overflow within Entries fields with “Maintain hierarchy” enabled. (#13382)
- Fixed a bug where batched jobs with a configured limit could be repeated endlessly. (#13387)
- Fixed an error that could occur if
null was passed to craft\elements\MatrixBlock::setOwner().
- Fixed a bug where eager-loaded categories were always loaded in the structure-defined order, even if the Categories field didn’t have “Maintain hierarchy” enabled. (#13394)
- Fixed a bug where time inputs weren’t handling malformed values properly if ICU 72.1 was installed. (#13381)
- Fixed legacy Live Preview support.
- Fixed a bug where lightswitch inputs could overflow. (#13419)
- Fixed a bug where Matrix field validation wasn’t working properly if the field value was eager-loaded. (#13421)
- Fixed a bug where date and time inputs weren’t always working properly on mobile. (#13424)
- Fixed an RCE vulnerability.
";s:4:"date";s:19:"2023-07-18T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:12:"craftcms/cms";}s:7:"plugins";a:10:{s:5:"blitz";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:47:{i:0;a:4:{s:7:"version";s:6:"4.21.0";s:8:"critical";b:0;s:5:"notes";s:294:"Added
- Added the ability to track eager-loaded relation fields nested inside matrix blocks (#657).
- Added statuses and edit links to elements displayed in the Blitz Diagnostics utility.
";s:4:"date";s:19:"2024-07-24T00:00:00";}i:1;a:4:{s:7:"version";s:6:"4.20.0";s:8:"critical";b:0;s:5:"notes";s:897:"Added
- Added the ability to view which tags are being tracked by each page in the Blitz Diagnostics utility.
- Added the ability to view which pages are tracking each element in the Blitz Diagnostics utility.
Changed
- Blitz now requires Craft CMS 4.4.8 or later.
- The “Served by Blitz” comment is now also output when the cached output is initially created and served.
- Batch mode is now enabled whenever elements are resaved via a queue job.
- Archived and deleted elements are no longer tracked when populated via eager-loaded element queries.
- Criteria defined in eager-loaded element query mappings are now respected when tracking elements.
Fixed
- Fixed a bug in which the failed site count was not being correctly displayed in the Blitz Diagnostics recommendations.
";s:4:"date";s:19:"2024-07-22T00:00:00";}i:2;a:4:{s:7:"version";s:6:"4.19.0";s:8:"critical";b:0;s:5:"notes";s:303:"Added
- Added the ability for element site status changes to be tracked while not refreshing propagating elements (#631).
Changed
- Blitz now requires Craft CMS 4.4.7 or later.
";s:4:"date";s:19:"2024-07-04T00:00:00";}i:3;a:4:{s:7:"version";s:6:"4.18.4";s:8:"critical";b:0;s:5:"notes";s:187:"Fixed
- Fixed a bug in which the cached page count of sites that contained the paths of other sites could be inaccurately displayed in the Blitz Cache utility.
";s:4:"date";s:19:"2024-07-03T00:00:00";}i:4;a:4:{s:7:"version";s:6:"4.18.3";s:8:"critical";b:0;s:5:"notes";s:374:"Fixed
- Fixed a bug in which the priority of refresh cache and driver jobs was interpreted as
0 when set to null (#655).
- Fixed an issue in which the priority of batch jobs could be a negative number and therefore jobs would never complete.
";s:4:"date";s:19:"2024-06-27T00:00:00";}i:5;a:4:{s:7:"version";s:6:"4.18.2";s:8:"critical";b:0;s:5:"notes";s:435:"Fixed
- Fixed a bug in which modules that were not bootstrapped were throwing an error when generating a report in the Blitz Diagnostics utility (#668).
- Fixed a bug in which incorrect purge requests were being sent to CloudFront for the homepage (#673).
";s:4:"date";s:19:"2024-06-18T00:00:00";}i:6;a:4:{s:7:"version";s:6:"4.18.1";s:8:"critical";b:0;s:5:"notes";s:455:"Added
- Added a tracked fields column to the tracked elements page in the Blitz Diagnostics utility.
Changed
- Sites in the Blitz diagnostics report are now sorted by ID in ascending order.
Fixed
- Fixed a bug in the Git Deployer that was throwing an error when a cached page no longer existed (#664).
";s:4:"date";s:19:"2024-05-16T00:00:00";}i:7;a:4:{s:7:"version";s:6:"4.18.0";s:8:"critical";b:0;s:5:"notes";s:658:"Added
- Added anonymised site names to the Blitz diagnostics report.
- Added a detailed breakdown of element types to the Blitz diagnostics report.
- Added the ability to download the Blitz diagnostics report as a markdown file.
Changed
- Optimised the refresh cache process by excluding redundantly tracked element queries based on their limit and offset values.
Fixed
- Fixed the check for whether the
blitz/cache/refresh-expired console command was executed within the past 24 hours.
- Fixed diagnostics notifications in the control panel.
";s:4:"date";s:19:"2024-05-07T00:00:00";}i:8;a:4:{s:7:"version";s:6:"4.17.0";s:8:"critical";b:0;s:5:"notes";s:164:"Added
- Added the ability to generate a diagnostics report in the Blitz Diagnostics utility, that can be shared when requesting support.
";s:4:"date";s:19:"2024-04-27T00:00:00";}i:9;a:4:{s:7:"version";s:6:"4.16.5";s:8:"critical";b:0;s:5:"notes";s:121:"Fixed
- Fixed a bug in the SQL statement introduced in 4.16.4 when using a Postgres database.
";s:4:"date";s:19:"2024-04-26T00:00:00";}i:10;a:4:{s:7:"version";s:6:"4.16.4";s:8:"critical";b:0;s:5:"notes";s:147:"Changed
- Improved the deletion of cache records during the refresh cache process to help avoid database memory issues.
";s:4:"date";s:19:"2024-04-26T00:00:00";}i:11;a:4:{s:7:"version";s:6:"4.16.3";s:8:"critical";b:0;s:5:"notes";s:178:"Changed
- The
blitz/cache/refresh-cache-tags and blitz/cache/refresh-expired-elements no longer forcibly generate the cache.
";s:4:"date";s:19:"2024-04-22T00:00:00";}i:12;a:4:{s:7:"version";s:6:"4.16.2";s:8:"critical";b:0;s:5:"notes";s:214:"Changed
- Dynamic includes in preview requests are now also sent via AJAX, passing through the token param (#653).
";s:4:"date";s:19:"2024-04-12T00:00:00";}i:13;a:4:{s:7:"version";s:6:"4.16.1";s:8:"critical";b:0;s:5:"notes";s:375:"Fixed
- Fixed a bug in which the Blitz Diagnostic utility could throw an error when viewing tracked includes and when using Postgres (#653).
- Fixed an edge-case bug in which cached includes were not being refreshed when expired in a multi-site setup using subfolders.
";s:4:"date";s:19:"2024-04-12T00:00:00";}i:14;a:4:{s:7:"version";s:6:"4.16.0";s:8:"critical";b:0;s:5:"notes";s:310:"Added
- Added tracked includes to the Blitz Diagnostics utility.
Fixed
- Fixed a bug in which cached includes were not being refreshed when a URL was provided.
- Fixed an edge-case bug in which cached includes were not being refreshed when expired.
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:15;a:4:{s:7:"version";s:6:"4.15.0";s:8:"critical";b:0;s:5:"notes";s:934:"Added
- Added a new
blitz/cache/refresh-expired-elements console command for refreshing cached pages that track expired elements.
- Added the
BaseCachePurger::shouldPurgeAfterRefresh() method.
Changed
- Drivers are now listed in alphabetical order, with “None” always listed first.
- Improved the progress indicator during the generate cache process.
- Simplified the default cache control header settings.
- Pages that return empty content are no longer ignored from being cached.
- The
Content-Encoding header is no longer removed from responses.
Fixed
- Fixed a bug in which expiry dates were always being output using the current timestamp in the Blitz Diagnostics utility.
- Fixed an edge-case bug in which cached includes were not being refreshed when expired.
";s:4:"date";s:19:"2024-04-08T00:00:00";}i:16;a:4:{s:7:"version";s:6:"4.14.1";s:8:"critical";b:0;s:5:"notes";s:438:"Changed
- Cached and dynamic includes are now resolved as regular includes when previewing an element (#646).
Fixed
- Fixed an error that could be thrown when returning to a page via the breadcrumbs in the Blitz Diagnostics utility (#645).
";s:4:"date";s:19:"2024-03-25T00:00:00";}i:17;a:4:{s:7:"version";s:6:"4.14.0";s:8:"critical";b:0;s:5:"notes";s:2663:"Added
- Added batching to generate cache jobs (#537).
- Added a new
driverJobBatchSize config setting that sets the batch size to use for driver jobs that support batching.
- Added a new
refreshCacheEnabled config setting that determines whether cached pages are refreshed whenever content changes or an integration triggers it.
- Added a new
injectScriptPosition config setting that determines the position in the HTML in which to output the injected script (#636).
- Added a verbose output mode to
blitz/cache console commands that can be activated by adding a --verbose flag (#642).
- Added a default timeout of 60 seconds to the Local Generator.
Changed
- Blitz now requires Craft CMS 4.4.0 or later.
- The Local Generator now uses the
bootstrap.php file in the project root, if it exists.
- The Local Generator now sets the server port according to the HTTP protocol.
- Changed the default timeout of the HTTP Generator to 60 seconds.
Fixed
- Fixed an SQL error that could occur when too many site URIs were being expired at once during the refresh cache process (#639).
- Fixed minor bugs and typos in the recommendations provided in the Blitz Diagnostics utility (#641).
Deprecated
- Deprecated the
SettingsModel::clearOnRefresh method. Use SettingsModel::shouldClearOnRefresh instead.
- Deprecated the
SettingsModel::expireOnRefresh method. Use SettingsModel::shouldExpireOnRefresh instead.
- Deprecated the
SettingsModel::generateOnRefresh method. Use SettingsModel::shouldGenerateOnRefresh instead.
- Deprecated the
SettingsModel::purgeAfterRefresh method. Use SettingsModel::shouldPurgeAfterRefresh instead.
- Deprecated the
SettingsModel::generatePageBasedOnQueryString method. Use SettingsModel::shouldGeneratePageBasedOnQueryString instead.
- Deprecated the
SettingsModel::purgeAssetImages method. Use SettingsModel::shouldPurgeAssetImages instead.
";s:4:"date";s:19:"2024-03-20T00:00:00";}i:18;a:4:{s:7:"version";s:6:"4.13.1";s:8:"critical";b:0;s:5:"notes";s:406:"Changed
- The template stack trace in the Blitz Hints utility is now updated if different for the same field-template combination.
Fixed
- Fixed a bug in the Blitz Hints utility that could throw an error when conditional variables were used in an
extends tag (#632).
";s:4:"date";s:19:"2024-03-12T00:00:00";}i:19;a:4:{s:7:"version";s:6:"4.13.0";s:8:"critical";b:0;s:5:"notes";s:370:"Added
- Added a template stack trace to the Blitz Hints utility.
Changed
- Elements that are propagating are no longer ignored from the cache refresh process (#631).
- Changed the default branch in the Git Deployer to
main.
";s:4:"date";s:19:"2024-03-11T00:00:00";}i:20;a:4:{s:7:"version";s:6:"4.12.3";s:8:"critical";b:0;s:5:"notes";s:116:"Fixed
- Fixed a bug in which blank rows were appearing in the Blitz Diagnostics utility.
";s:4:"date";s:19:"2024-03-08T00:00:00";}i:21;a:4:{s:7:"version";s:6:"4.12.2";s:8:"critical";b:0;s:5:"notes";s:271:"Added
- Added tracked tags to the Blitz Diagnostics utility.
Changed
- Diagnostics warnings are now listed before recommendations that pass.
- A custom log target is now only registered if a dispatcher exists.
";s:4:"date";s:19:"2024-03-05T00:00:00";}i:22;a:4:{s:7:"version";s:6:"4.12.1";s:8:"critical";b:0;s:5:"notes";s:135:"Fixed
- Fixed a bug introduced in version 4.12.0 in which the Blitz inject script was not being registered.
";s:4:"date";s:19:"2024-02-27T00:00:00";}i:23;a:4:{s:7:"version";s:6:"4.12.0";s:8:"critical";b:1;s:5:"notes";s:1236:"Polyfills for IE have been removed from the Blitz inject script due to polyfill.io having been compromised.
Added
- Added a new
excludedTrackedElementQueryParams config setting that can be used to exclude params when storing tracked element queries.
Changed
- Reverted deleting expired URIs from the database immediately when refreshing expired cache, as it could cause cached pages not to be refreshed (#624).
- Tracked element queries that have invalid params or that cannot be executed are now deleted when refreshing the cache.
- Tracked entry queries can now determine source IDs from a structure ID.
- Optimised the params that are stored on tracked element queries.
- Made the ordering of items displayed in the Blitz Diagnostics utility deterministic.
Removed
- Removed the
fetch, Promise and CustomEvent polyfills for IE from the Blitz inject script – if you need to support IE, you will need to add the polyfills yourself.
";s:4:"date";s:19:"2024-02-27T00:00:00";}i:24;a:4:{s:7:"version";s:6:"4.11.2";s:8:"critical";b:0;s:5:"notes";s:277:"Changed
- Asset queries containing filenames are no longer tracked.
Fixed
- Fixed a bug in the diagnostics utility that only affected Postgres (#621).
";s:4:"date";s:19:"2024-02-19T00:00:00";}i:25;a:4:{s:7:"version";s:6:"4.11.1";s:8:"critical";b:0;s:5:"notes";s:105:"Fixed
- Fixed the tracking of non-cacheable block elements when eager-loaded.
";s:4:"date";s:19:"2024-02-12T00:00:00";}i:26;a:4:{s:7:"version";s:6:"4.11.0";s:8:"critical";b:0;s:5:"notes";s:1772:"Added
- Added recommendations to the Blitz Diagnostics utility.
- Added the user that runs controller actions to log messages.
- Added an expiry date column to pages and elements in the Blitz Diagnostics utility (#615).
- Added a
wrapperClass property to the VariableConfigModel class (#620).
- Added new console commands for clearing, generating and purging the cache:
blitz/cache/clear-site, blitz/cache/clear-tagged, blitz/cache/clear-urls, blitz/cache/generate-site, blitz/cache/generate-tagged, blitz/cache/generate-urls, blitz/cache/purge-site, blitz/cache/purge-tagged, blitz/cache/purge-urls.
Changed
- The Cache Folder Path column now displays aliases in the cached file table in the File Storage utility.
- Entry queries for “single” sections are no longer tracked.
- Improved error handling in a previous migration.
- Made minor optimisations to the file storage driver.
- Expired URIs are now deleted from the database immediately when refreshing expired cache.
- Invalid element query params no longer throw an error when applied (#579).
Fixed
- Fixed a bug in which line breaks were not being replaced with spaces in raw SQL query output in the Blitz Diagnostics utility (#611).
";s:4:"date";s:19:"2024-02-12T00:00:00";}i:27;a:4:{s:7:"version";s:6:"4.10.3";s:8:"critical";b:0;s:5:"notes";s:63:"Fixed
- Fixed more Postgres errors.
";s:4:"date";s:19:"2024-01-13T00:00:00";}i:28;a:4:{s:7:"version";s:6:"4.10.2";s:8:"critical";b:0;s:5:"notes";s:158:"Fixed
- Fixed Postgres errors introduced in 4.10.0 (#605).
";s:4:"date";s:19:"2024-01-12T00:00:00";}i:29;a:4:{s:7:"version";s:6:"4.10.1";s:8:"critical";b:0;s:5:"notes";s:664:"Fixed
- Fixed a bug in which SQL queries were executed in the Blitz Diagnostics utility that required minimum database versions above those required by Craft 4 (#602).
- Fixed a bug in which paginated pages could go beyond their maximum in the Blitz Diagnostics utility (#603).
- Fixed a bug in which Sprig Core was not being bootstrapped for all CP requests.
- Fixed a bug in which legacy non-cacheable element types were causing errors in the Blitz Diagnostics utility.
";s:4:"date";s:19:"2024-01-10T00:00:00";}i:30;a:4:{s:7:"version";s:6:"4.10.0";s:8:"critical";b:0;s:5:"notes";s:402:"Added
Fixed
- Fixed a bug in which all cached pages were being marked as expired when no cacheable site URIs were refreshed (#598).
";s:4:"date";s:19:"2024-01-09T00:00:00";}i:31;a:4:{s:7:"version";s:5:"4.9.4";s:8:"critical";b:0;s:5:"notes";s:434:"Changed
- The path param is now removed from query strings before being cached.
- Slashes in cached include URLs are no longer decoded (#595).
Fixed
- Fixed a bug that could cause an error when an element’s ID is unset (#594).
";s:4:"date";s:19:"2023-12-19T00:00:00";}i:32;a:4:{s:7:"version";s:5:"4.9.3";s:8:"critical";b:0;s:5:"notes";s:140:"Changed
- Send site URIs to the
EVENT_AFTER_REFRESH_ALL_CACHE event if cache generation is enabled.
";s:4:"date";s:19:"2023-11-28T00:00:00";}i:33;a:4:{s:7:"version";s:5:"4.9.2";s:8:"critical";b:0;s:5:"notes";s:584:"Changed
- Integrity constraint violation exceptions are now caught when batch inserting rows into the database (#588).
- Reverted sending site URIs to the refresh cache event (#590).
Fixed
- Fixed a bug in which eager-loading custom fields of preloaded singles was not being tracked on cached pages (#585).
";s:4:"date";s:19:"2023-11-28T00:00:00";}i:34;a:4:{s:7:"version";s:5:"4.9.1";s:8:"critical";b:0;s:5:"notes";s:435:"Added
- Added a
ssiTagFormat config setting that allows defining the format of SSI tags (#558).
- Added a
detectSsiEnabled config setting that determines whether Blitz should detect whether SSI is enabled on the web server (#575).
";s:4:"date";s:19:"2023-11-20T00:00:00";}i:35;a:4:{s:7:"version";s:5:"4.9.0";s:8:"critical";b:0;s:5:"notes";s:459:"Added
- Added the ability to configure a custom queue component via
config/app.php to use when running queue jobs (#577).
Fixed
- Fixed a bug in which previewing a disabled site could throw an exception with the File Cache Storage selected (#581).
";s:4:"date";s:19:"2023-11-17T00:00:00";}i:36;a:4:{s:7:"version";s:5:"4.8.0";s:8:"critical";b:0;s:5:"notes";s:956:"Added
- Added a new
ExpireCacheService class that handles marking cache as expired when the refresh mode is set to expire the cache.
- Added a new
cacheControlHeaderExpired config setting that reduces the max cache age in public reverse proxies to 5 seconds by default for expired pages.
- Added a new
defaultCacheControlHeader config setting that is sent by default if no other cache headers are sent (#580).
Changed
- Cache control headers are now set to the new
cacheControlHeaderExpired config setting when a cached response is sent for an expired page, meaning that expired cache can now be organically regenerated.
- Cached pages are now expired when refreshed via the utility or console commands and when the refresh mode is set to expire the cache.
";s:4:"date";s:19:"2023-11-14T00:00:00";}i:37;a:4:{s:7:"version";s:5:"4.7.1";s:8:"critical";b:0;s:5:"notes";s:438:"Changed
- Bumped the required version of the Blitz Hints package.
Fixed
- Fixed a potential issue with detecting whether SSI is enabled on the web server from the control panel.
- Fixed a bug in which generating the cache could throw an exception if no custom site URLs were added in the settings (#578).
";s:4:"date";s:19:"2023-11-03T00:00:00";}i:38;a:4:{s:7:"version";s:5:"4.7.0";s:8:"critical";b:0;s:5:"notes";s:1088:"Added
- Added a
DummyStorage class that allows the cache storage driver to be set to None, useful if pages should be cached on a reverse proxy only (#502).
Changed
- Refreshing expired cached now forcibly generates new cached pages if they are not cleared (#571).
- Changed the refreshable status check to always consider elements with
live and active statuses as refreshable (#572).
Fixed
- Fixed a bug in which the cached include path could be incorrectly set if specific included query string parameters were selected (#573).
- Fixed a bug in which saving included and excluded query string parameters was not possible were no values were specified.
";s:4:"date";s:19:"2023-10-26T00:00:00";}i:39;a:4:{s:7:"version";s:5:"4.6.0";s:8:"critical";b:0;s:5:"notes";s:651:"Added
- Added the ability for Blitz to track disabled elements in relation field queries so that cached pages are refreshed when their status is set to enabled (#555).
Changed
- Changed the dynamic include path to account for sites that live within a subfolder (#562).
- Include action tags now ensure that slashes are not encoded to account for URL encoding issues (#564).
";s:4:"date";s:19:"2023-10-17T00:00:00";}i:40;a:4:{s:7:"version";s:5:"4.5.5";s:8:"critical";b:0;s:5:"notes";s:69:"Fixed
- Fixed a potential security issue.
";s:4:"date";s:19:"2023-09-20T00:00:00";}i:41;a:4:{s:7:"version";s:5:"4.5.4";s:8:"critical";b:0;s:5:"notes";s:296:"Fixed
- Fixed a bug in which element query params containing multi and single option data were not being converted to values.
- Fixed a bug in which error exceptions were not being caught when produced by cached element queries during the refresh cache process.
";s:4:"date";s:19:"2023-09-15T00:00:00";}i:42;a:4:{s:7:"version";s:5:"4.5.3";s:8:"critical";b:0;s:5:"notes";s:163:"Fixed
- Fixed a bug in which cached pages were not being cleared when using the Yii Cache Storage driver with gzip compression enabled.
";s:4:"date";s:19:"2023-09-12T00:00:00";}i:43;a:4:{s:7:"version";s:5:"4.5.2";s:8:"critical";b:0;s:5:"notes";s:239:"Fixed
- Fixed a bug in which tracked element queries were ignoring disabled elements when determining which cached pages to refresh (#527).
";s:4:"date";s:19:"2023-08-14T00:00:00";}i:44;a:4:{s:7:"version";s:5:"4.5.1";s:8:"critical";b:0;s:5:"notes";s:202:"Fixed
- Fixed a bug in which using dynamic includes with nginx server rewrites set to cache pages with query strings as the same page could incorrectly include the home page.
";s:4:"date";s:19:"2023-08-09T00:00:00";}i:45;a:4:{s:7:"version";s:5:"4.5.0";s:8:"critical";b:0;s:5:"notes";s:2129:"The cache must be cleared or refreshed after this update completes.
Added
- Added the ability to send compressed responses to browsers that accept supported encodings.
- Added the ability to save compressed cached values in the Yii Cache Storage to help reduce the memory required.
- Added tips that display whether
gzip is enabled on the web server in the Cache Storage settings.
- Added the
maxUriLength config setting (#539).
Changed
- Cached includes and pages that contain SSI or ESI includes are now never compressed.
- Renamed the
createGzipFiles setting to compressCachedValues.
- Improved the performance of cache refresh jobs by optimising database queries (#496).
- The cache refresh process is now triggered when an asset’s file is replaced or its filename is changed (#514).
- Changed the URL that checks whether SSI is enabled on the web server to a relative URL.
Removed
- Removed the ability to create Brotli files and removed the setting (use gzip instead).
Fixed
- Fixed a bug in which the
cacheDuration config setting was not being applied when the value was not an integer (#536).
- Fixed a bug in which the
__home__ URI was not responding with a 404 error when it should have (#538).
- Fixed a bug in which eager-loading of auto-injected elements was not being tracked on cached pages.
Deprecated
- Deprecated the
createGzipFiles setting.
- Deprecated the
createBrotliFiles setting.
";s:4:"date";s:19:"2023-07-19T00:00:00";}i:46;a:4:{s:7:"version";s:5:"4.4.7";s:8:"critical";b:0;s:5:"notes";s:1219:"Changed
- Hardened checks against null responses to help avoid errors (#519).
Fixed
- Fixed a bug in which refreshing the cache could fail when using the Redis queue driver (#522).
- Fixed a bug in which URLs containing the control panel trigger were not being cached (#532).
- Fixed a bug in which a validation error could occur when an invalid email address was entered in the Cloudflare API Key Email field even when the authentication method was set to API Token.
- Fixed a race condition that could result in an SQL error if the database used read/write splitting (#531).
- Fixed the
getUri deprecation notice to suggest fetchUri instead of fetch (#508, #524).
";s:4:"date";s:19:"2023-07-17T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:27:"putyourlightson/craft-blitz";}s:8:"dospaces";a:3:{s:6:"status";s:8:"eligible";s:8:"releases";a:0:{}s:11:"packageName";s:19:"vaersaagod/dospaces";}s:7:"feed-me";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:2:{i:0;a:4:{s:7:"version";s:5:"5.3.0";s:8:"critical";b:0;s:5:"notes";s:2461:"
- Added the ability to provide a filename for importing assets via the assets field if you choose to “Create asset from URL”. (#749)
- Fixed a bug where you could not override feed settings with
false if you used a config/feed-me.php config file. (#1352)
- Fixed a bug where
queueTtr, queueMaxRetry, and assetDownloadCurl settings were being ignored if you used a config/feed-me.php config file. (#1356)
- Fixed a PHP error that could occur when you map an entry field with a default value and there is an empty value in the feed. (#1250)
- Fixed a bug where the
maxRelations setting was not being respected for relational fields. (#1354)
- Fixed a bug where importing assets with “Use existing assets” could create duplicate assets. (#1348)
- Fixed a bug where importing Address data from the Google Maps plugin could cause duplicate Addresses if the Address already existed. (#1370)
- Fixed a bug where updating entry statuses for a site in a site group, would update statuses for all sites in the site group instead of the targeted one. (#1208)
- Fixed a bug where you could not use
false to override feed settings in config/feed-me.php. (#1380)
- Fixed a bug where importing nested element fields would not work in some scenarios. (#1378)
- Fixed a bug where empty column headings in a feed would cause incorrect values to be selected in the pagination URL dropdown when mapping a feed. (#1375)
- Fixed a bug that could occur when using Feed Me with fields that have been entrified in Craft. (1346).
";s:4:"date";s:19:"2023-11-27T00:00:00";}i:1;a:4:{s:7:"version";s:5:"5.2.0";s:8:"critical";b:0;s:5:"notes";s:1784:"
- The “Create if they do not exist” setting on a feed’s mapping now conditionally show/hide the checkbox for Categories, Entries and Users relation fields. (#1077)
- Fixed a bug where
setEmptyValues wasn’t being respected when mapping Redactor and CKEditor fields. (#1321)
- Fixed a bug where an element’s status would not update on a multi-site install if the status was the only thing that changed. (#1310)
- Fixed a bug where the
DataTypes::EVENT_AFTER_FETCH_FEED event was not being fired for local feeds. (#1101)
- Fixed a PHP error that could happen when importing into a User field. (#844)
- Fixed a bug where slugs imported from a feed would not be respected if they contained underscores. (#603)
- Fixed a bug where nested subcategories sharing the same slug but with different parents would only import the last subcategory. (#780)
- Fixed a bug where you could not import a Category, Entry, Product, or Digital Product with a “0” as the title or slug. (#1102)
- Fixed a bug where feeds would break for elements that had been “entrified”. (#1340)
";s:4:"date";s:19:"2023-07-06T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:16:"craftcms/feed-me";}s:8:"freeform";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:140:{i:0;a:4:{s:7:"version";s:6:"5.10.5";s:8:"critical";b:0;s:5:"notes";N;s:4:"date";N;}i:1;a:4:{s:7:"version";s:6:"5.10.4";s:8:"critical";b:0;s:5:"notes";s:1212:"Added
- Added the ability to get the payment method used in Stripe payment submissions (
payments.method.type).
- Added support for extra attributes on Rating and Opinion Scale fields .
Changed
- Updated the Fields from other Forms listing to be alphabetically sorted.
- Improved error display on Checkboxes, Rating, Multi-select, Table and File Drag & Drop fields on the front end.
- Updated Tailwind 4 sample formatting templates to have their CSS and JS minified.
- Improved error handling on Stripe payments.
Fixed
- Fixed a bug where switching a conditional rule from
is equal to to is one of would crash the builder.
- Fixed a bug that prevented users from deleting favorite fields in the Favorites Manager.
- Fixed a bug where Checkbox fields with rich text values displayed HTML tags in their labels in some areas of the form builder.
";s:4:"date";s:19:"2025-03-27T00:00:00";}i:2;a:4:{s:7:"version";s:6:"5.10.3";s:8:"critical";b:0;s:5:"notes";s:1016:"Added
- Added Tailwind 4 Light and Tailwind 4 Dark sample formatting templates.
- Added the ability to parse Twig in Recipient inputs for email notifications in the form builder. Can use
form or and field handle, e.g. {{ form.handle }} or {{ emailAddress }}.
Fixed
- Fixed a bug where error classes were not properly being added to Table field inputs.
- Fixed a bug where attempting to Replace forms in the Express Forms migration utility would not work.
- Fixed a bug where the
attachRulesJSON() method created an object instead of an array.
- Fixed a bug where some
console.log's were left in some areas of the Table field javascript.
- Fixed a bug where mapping Freeform single Checkbox fields to Craft's Checkboxes field type with a single option was not working.
";s:4:"date";s:19:"2025-03-26T00:00:00";}i:3;a:4:{s:7:"version";s:6:"5.10.2";s:8:"critical";b:0;s:5:"notes";s:460:"Added
- Added a toggle for the Checkbox label setting to choose between plain and rich text.
Fixed
- Fixed a bug where single Checkbox fields were not automatically translatable.
- Fixed a bug where importing notification templates from Express Forms would cause the migration to fail.
- Fixed a bug where an error would occur when attempting to save conditional notifications in PostgreSQL.
";s:4:"date";s:19:"2025-03-20T00:00:00";}i:4;a:4:{s:7:"version";s:6:"5.10.1";s:8:"critical";b:0;s:5:"notes";s:700:"Fixed
- Fixed a bug where Group fields were not fully respecting Conditional Rules validation for fields nested within.
- Fixed a bug where Group fields hidden by Conditional Rules validation appeared in email notifications.
- Fixed a bug that allowed Group fields to be saved as favorites. Support for this feature is planned in the future.
- Fixed a bug where the Number field's Step setting was not allowing decimal places.
- Fixed a bug where an accessibility label was missing on the button that removes files from the File Upload Drag & Drop field.
";s:4:"date";s:19:"2025-03-19T00:00:00";}i:5;a:4:{s:7:"version";s:6:"5.10.0";s:8:"critical";b:0;s:5:"notes";s:1140:"Added
- Added validation for minimum and maximum selected options on Checkboxes fields.
- Added the ability to select
No formatting template for the Formatting Template setting.
- Added the ability to change the default rendering of HTML tags in fields by specifying a
tag override.
- Added the ability to add and modify attributes for Dropdown and Multi-select options, as well as Checkboxes and Radios option labels and inputs.
Changed
- Updated the single Checkbox field label to include a rich text editor to make it easier to include links and font styling.
- Updated the Rich Text field editor to use TinyMCE.
- Updated the CP Submissions edit page to include a Delete button.
- Updated error validation handling for required columns on Table fields.
- Updated remaining dropdown setting fields in the form builder to be translatable.
";s:4:"date";s:19:"2025-03-17T00:00:00";}i:6;a:4:{s:7:"version";s:8:"5.9.16.1";s:8:"critical";b:0;s:5:"notes";s:124:"Fixed
- Fixed a bug where hCaptcha was broken after changes in Freeform 5.9.16.
";s:4:"date";s:19:"2025-03-14T00:00:00";}i:7;a:4:{s:7:"version";s:6:"5.9.16";s:8:"critical";b:0;s:5:"notes";s:1530:"Added
- Added a check for
ModSecurity to the Diagnostics page to assist with troubleshooting.
- Added a Craft 5-style Site picker in the breadcrumbs of the form builder for Craft 4 to enhance the Site-Aware and translation experience.
Changed
- Updated GTM scripts to load as an asset bundle instead of inline for compatibility with sites that have strict content security policies.
- Adjusted longer translations for field Source options to ensure they fit within the available space.
- Renamed
data-site-key to data-sitekey for captcha integrations to align with the expected standard attribute.
- Updated the Limited Users settings page to support
CMD + S for quick-saving settings.
- Modified the Multiple Forms extra in the demo templates to use the new overload feature.
Fixed
- Fixed a bug where the Save button's Email Notification Template setting used the advanced template chooser instead of a regular dropdown, causing display issues and affecting the user experience.
- Fixed a bug where the Form Builder defaults setting for enabling/disabling Twig in HTML fields had no effect in the form builder.
- Fixed a bug where Freeform Data export was not functioning correctly with PHP 8.0.x (Craft 4).
- Fixed an incorrect instruction in the Salesforce integration guide.
";s:4:"date";s:19:"2025-03-07T00:00:00";}i:8;a:4:{s:7:"version";s:6:"5.9.15";s:8:"critical";b:0;s:5:"notes";s:1036:"Added
- Added an overload for forms to create an entirely separate instance with its own configurations that can be overridden. This will help with the issue of form attributes duplicating in some cases.
- Added check for
runQueueAutomatically to the Diagnostics page to help with troubleshooting.
Fixed
- Fixed a bug where form attributes could duplicate when loading the same form more than once in the same template.
- Fixed a bug where the Stripe Link and US Bank Account icons were not present in the control panel.
- Fixed a bug where the duplicate email address check was not working correctly with encrypted fields.
- Fixed a bug where relating Freeform submissions to elements was not working in Craft 5.
- Fixed a bug where Freeform was using
\yii\di\Container as a constructor dependency.
- Fixed a bug where the bundle loader could crash if a cached class was found in the class map.
";s:4:"date";s:19:"2025-02-27T00:00:00";}i:9;a:4:{s:7:"version";s:6:"5.9.14";s:8:"critical";b:0;s:5:"notes";s:495:"Added
- Added the ability to order Entry element-populated fields by Structure, Post Date, Date Created, and Date Updated.
- Added a setting to allow the takeover of Inactive user accounts upon user registration with the Freeform User element integration.
Fixed
- Fixed a bug where Stripe Payment Intent processing would crash when using some services like WeChat Pay, Alipay, Amazon Pay.
";s:4:"date";s:19:"2025-02-25T00:00:00";}i:10;a:4:{s:7:"version";s:6:"5.9.13";s:8:"critical";b:0;s:5:"notes";s:575:"Added
- Added various PHP Info values to the Diagnostics page to help with troubleshooting.
Fixed
- Fixed a bug where the Digest email notification could fail to send.
- Fixed a bug where the Freeform 4 migration's conditional rules script wasn't catching some scenarios.
- Fixed a bug where Freeform could error about
HubSpotV1 not existing in rare circumstances.
- Fixed a bug where limiting forms by checking for a duplicate Email Address could cause the form to break in some cases.
";s:4:"date";s:19:"2025-02-24T00:00:00";}i:11;a:4:{s:7:"version";s:6:"5.9.12";s:8:"critical";b:0;s:5:"notes";s:604:"Added
- Added the ability to hide the Fields from other Forms area in the form builder for Limited Users.
Changed
- Updated error logging for Conditional Rules to include more context.
Fixed
- Fixed a bug where error logging used
json_validate, which is unsupported in PHP versions lower than 8.3 in Craft 4.
- Fixed a bug with a spacing issue for the submit buttons in the Limited Users settings pages.
- Fixed a bug where a stray Save button appeared on the Diagnostics page.
";s:4:"date";s:19:"2025-02-19T00:00:00";}i:12;a:4:{s:7:"version";s:6:"5.9.11";s:8:"critical";b:0;s:5:"notes";s:851:"Added
- Added
freeform/freeform/convert-handles console command to convert all form and field handles to camelCase or _underscores.
Fixed
- Fixed a bug where the Express Forms migration utility included PDF templates and Settings as options.
- Fixed a bug where the Freeform Form Data export was not working with prefixed tables.
- Fixed a bug where the Form Data importer would error when no template folders were defined.
- Fixed a bug where exports of submission data would include file IDs instead of file URLs for File Upload and File Drag & Drop fields.
- Fixed a bug where a
Call to a member function getValue() on string error could occur in rare cases when attempting to edit a form submission on the front end.
";s:4:"date";s:19:"2025-02-17T00:00:00";}i:13;a:4:{s:7:"version";s:6:"5.9.10";s:8:"critical";b:0;s:5:"notes";s:809:"Added
- Added additional checks for the Limited Users feature:
- Access Field Type Manager
- Access Favorite Fields Manager
- Save Fields as Favorites
Changed
- Improved the UI for the log file view pages in the control panel.
- Improved the UI for the Diagnostics page in the control panel.
- Adjustments to the Spam Protection settings page.
Fixed
- Fixed a bug where sites with prefixed database tables would see an error in Export Profile area when using custom date ranges.
- Fixed a bug in which the ActiveCampaign integration was not correctly processing multiple Contact tags.
";s:4:"date";s:19:"2025-02-13T00:00:00";}i:14;a:4:{s:7:"version";s:5:"5.9.9";s:8:"critical";b:0;s:5:"notes";s:568:"Added
- Added diagnostic checks for Queue settings and sample templates.
Changed
- Minor adjustments to visuals for Stripe payment cards, adding Cashapp icon.
Fixed
- Fixed a bug where a console request check was missing on the limit by IP logic.
- Fixed a bug where the email logging feature could affect queued notifications in rare circumstances.
- Fixed a bug where the ActiveCampaign integration contained a hardcoded Deal title, currency and value.
";s:4:"date";s:19:"2025-02-11T00:00:00";}i:15;a:4:{s:7:"version";s:5:"5.9.8";s:8:"critical";b:0;s:5:"notes";s:404:"Fixed
- Fixed a bug where Username validation was displayed on the Email field for User element integrations.
- Fixed a bug where the Email and Username validation was incorrectly happening on User element integrations in edit mode ("update profile" type forms).
- Fixed an
Uncaught ReflectionException issue that could happen in rare circumstances.
";s:4:"date";s:19:"2025-02-06T00:00:00";}i:16;a:4:{s:7:"version";s:5:"5.9.7";s:8:"critical";b:0;s:5:"notes";s:405:"Added
- Added Info and Debugging logging for email notifications.
- Added an Email Log to the settings menu so admins can easily view and clear the log from the control panel.
- Added more translations to the Freeform Diagnostics page.
Changed
- Cleanup and improvements to GraphQL support.
";s:4:"date";s:19:"2025-02-05T00:00:00";}i:17;a:4:{s:7:"version";s:5:"5.9.6";s:8:"critical";b:0;s:5:"notes";s:639:"Changed
- Improved some migrations not to fail if there were any previous failures.
- Renamed
FreeformSubmissionCaptchaInputType to FreeformCaptchaInputType for captchas in GraphQL. If using FreeformSubmissionCaptchaInputType, be sure to change it to FreeformCaptchaInputType.
Fixed
- Fixed a bug where the Form Submission Throttling diagnostic item showed an extra warning message.
- Fixed a bug where Captchas, Javascript Test and various other form settings were not supported in GraphQL.
";s:4:"date";s:19:"2025-02-04T00:00:00";}i:18;a:4:{s:7:"version";s:5:"5.9.5";s:8:"critical";b:0;s:5:"notes";s:792:"Added
- Added
FreeformPostForwardingInterface interface for GraphQL to handle new Post Forwarding integration type.
- Added
FreeformGoogleTagManagerInterface interface for GraphQL to handle new Google Tag Manager integration type.
Fixed
- Fixed a bug where Table fields were incorrectly marked as required, even when they were not supposed to be.
- Fixed a bug where Dropdown and Radio column types in Table fields were breaking in the form builder.
- Fixed a bug where the new Post Forwarding integration type (
postForwarding) was not supported in GraphQL.
- Fixed a bug where the new Google Tag Manager integration type (
gtm) was not supported in GraphQL.
";s:4:"date";s:19:"2025-01-31T00:00:00";}i:19;a:4:{s:7:"version";s:5:"5.9.4";s:8:"critical";b:0;s:5:"notes";s:430:"Fixed
- Fixed a bug where element integrations were being disabled if the Stripe integration was enabled for the same form.
- Fixed a PHP 8.0 compatibility issue for Craft 4 sites.
- Fixed a bug where the
duplicate conditional check was not working correctly on Cookie checks.
- Fixed a bug where the Freeform Data Export page would not work on sites using PostgreSQL.
";s:4:"date";s:19:"2025-01-30T00:00:00";}i:20;a:4:{s:7:"version";s:5:"5.9.3";s:8:"critical";b:0;s:5:"notes";s:482:"Added
- Added diagnostic checks for Minimum Submit Time and Form Submit Expiration.
- Added support for the
sqrt function (square root) in the Calculation field logic.
Fixed
- Fixed a bug where the
duplicate conditional check was not working correctly on form load.
- Fixed a bug where user registration forms were not validating existing usernames and email addresses.
";s:4:"date";s:19:"2025-01-29T00:00:00";}i:21;a:4:{s:7:"version";s:5:"5.9.2";s:8:"critical";b:0;s:5:"notes";s:550:"Fixed
- Fixed a bug where the Stripe field was not factoring in default values in Radio fields when set as the dynamic amount field.
- Fixed a bug where the File Drag & Drop field was not displaying all errors.
- Fixed a bug where the form builder and dashboard would not display any forms for a user who did not have access to the primary site.
- Fixed unnecessary captcha triggers in Stripe calls.
- Fixed a bug where the breadcrumbs Site switcher was not displaying correctly in Craft 5.
";s:4:"date";s:19:"2025-01-24T00:00:00";}i:22;a:4:{s:7:"version";s:7:"5.9.1.2";s:8:"critical";b:0;s:5:"notes";s:119:"Fixed
- Fixed a bug where the Calculation field logic was not editable in the form builder.
";s:4:"date";s:19:"2025-01-23T00:00:00";}i:23;a:4:{s:7:"version";s:7:"5.9.1.1";s:8:"critical";b:0;s:5:"notes";s:109:"Fixed
- Fixed a compatibility issue with the Monolog 2.x dependency in Craft 4.x.
";s:4:"date";s:19:"2025-01-23T00:00:00";}i:24;a:4:{s:7:"version";s:5:"5.9.1";s:8:"critical";b:0;s:5:"notes";s:148:"Changed
- Updated the integration logging to include extensive Stripe webhook logging.
- Updated the plugin icon.
";s:4:"date";s:19:"2025-01-23T00:00:00";}i:25;a:4:{s:7:"version";s:5:"5.9.0";s:8:"critical";b:0;s:5:"notes";s:2841:"Added
- Added the ability to mark specific field columns as required inside Table fields.
- Added Info and Debugging logging for integrations.
- Added an Integrations Log to the settings menu so admins can easily view and clear the log from the control panel.
- Added the ability to hide specific options from Element and Predefined sources for multi-option field types (via the Limited Users feature).
- Added the ability to limit the Forms element field type by specific forms.
- Added a setting to turn off Automatic Purge Unfinalized Assets queue jobs.
- Added counter for the number of Saved submissions on each form card on the dashboard.
- Added a Tailwind 3 Dark mode sample template.
- Added Site awareness and Integration logging level to the Diagnostics page.
- Added support for more features in the Express edition of Freeform:
- All captchas, including Javascript Test and all reCAPTCHA, hCaptcha and Turnstile options.
- All export file types, including Excel, CSV, XML, JSON and Text.
- Access to Quick Export.
- Added support for more features in the Lite edition of Freeform:
- All export file types, including Excel, CSV, XML, JSON and Text.
- Access to Quick Export and Export Profiles.
- Verified support for Craft 5.6.x.
Changed
- Refactored all exporting features and improved memory efficiency.
- Refactored all queue job runners into feature bundles and prevented duplicate jobs from happening.
- Updated various translations throughout the control panel.
- Updated all sample template CSS and JS, including the Javascript Test to be minified.
Fixed
- Fixed a bug where integrations were not using Craft's guzzle configuration (
httpProxy).
- Fixed a bug where custom button rendering incorrectly displayed Back buttons.
- Fixed a bug where the Save & Continue Later feature was visible on Express and Lite editions.
- Fixed a bug where the Convert to Custom Values button was incorrectly showing for Limited Users when hidden.
- Fixed a bug where the Spam Protection Behavior setting was showing incorrectly on the Diagnostics page.
- Fixed a bug where Email Field notifications were attempting to be sent when the Email field was hidden by Conditional Rules.
- Fixed a compatibility issue with the integration
options column type for sites using older versions of MariaDB.
";s:4:"date";s:19:"2025-01-21T00:00:00";}i:26;a:4:{s:7:"version";s:5:"5.8.7";s:8:"critical";b:0;s:5:"notes";s:159:"Fixed
- Fixed a bug where the PDF Templates feature could error in the form builder and notification templates area for some users.
";s:4:"date";s:19:"2025-01-15T00:00:00";}i:27;a:4:{s:7:"version";s:5:"5.8.6";s:8:"critical";b:0;s:5:"notes";s:444:"Fixed
- Fixed a bug where mouse clicks were not affecting Conditional Rules on Number fields (e.g. up/down arrows).
- Fixed a bug where the Usage in Elements tab in the form builder was crashing when no Freeform Form fields existed.
- Fixed a conflict issue with a CSS class in the control panel.
- Fixed a bug where some basic translations for GraphQL permission settings were missing.
";s:4:"date";s:19:"2025-01-08T00:00:00";}i:28;a:4:{s:7:"version";s:5:"5.8.5";s:8:"critical";b:0;s:5:"notes";s:169:"Fixed
- Fixed a bug where sites using the multi-site feature would see multiple copies of submissions when using the Export Profiles feature.
";s:4:"date";s:19:"2024-12-27T00:00:00";}i:29;a:4:{s:7:"version";s:5:"5.8.4";s:8:"critical";b:0;s:5:"notes";s:608:"Fixed
- Fixed a bug where sites using the multi-site feature would see multiple copies of submissions when using Quick Export.
- Fixed a bug where allowing spam submissions could error when using multi-sites.
- Fixed a bug where the Last Number for the Numbers predefined option would always be
20.
- Fixed a bug where the
m241126_113656_UpdateTableLayoutProperties.php migration could error about undefined array keys.
- Fixed a bug where the Freeform observer started before the document was ready.
";s:4:"date";s:19:"2024-12-23T00:00:00";}i:30;a:4:{s:7:"version";s:5:"5.8.3";s:8:"critical";b:0;s:5:"notes";s:495:"Fixed
- Fixed a bug where the initial field value wasn't used in the Calculation field.
- Fixed an issue where the resource URLs for sample formatting templates were not fully compatible with Craft Cloud sites.
- Fixed a bug where Status was not available in Quick Export.
- Fixed issues with the Stripe webhook.
- Fixed a bug where the form builder Usage in Elements tab was not always loading correctly.
";s:4:"date";s:19:"2024-12-16T00:00:00";}i:31;a:4:{s:7:"version";s:5:"5.8.2";s:8:"critical";b:0;s:5:"notes";s:280:"Fixed
- Fixed a bug where a user with individual form permissions would not have access to a form they just duplicated.
- Fixed a bug where the automatic purging of old submissions queue job could fail if an empty string was passed for an asset.
";s:4:"date";s:19:"2024-12-11T00:00:00";}i:32;a:4:{s:7:"version";s:5:"5.8.1";s:8:"critical";b:0;s:5:"notes";s:775:"Added
- Added Italian translation.
Changed
- Changed the English translation from
en-US to en.
Fixed
- Fixed a bug where spammy submissions were still being saved to the database when the Spam Folder was disabled.
- Fixed a bug where fresh installs between 5.7.0 and 5.8.0 were missing a new
options column in the freeform_email_marketing_fields and freeform_crm_fields database tables. Added a migration for affected installs.
- Fixed a bug where the form name link on the CP submission details page was not linked correctly.
- Fixed a bug where translations for the Error Log notice were missing.
";s:4:"date";s:19:"2024-12-10T00:00:00";}i:33;a:4:{s:7:"version";s:5:"5.8.0";s:8:"critical";b:0;s:5:"notes";s:1136:"Added
- Added the ability to use Textareas and Radios inside a Table field.
Changed
- Improved the usability of the Table field in the form builder.
- Improved the usability of the Submit button layout settings to hide unnecessary options in the form builder.
- Updated the sample formatting template assets to load as Asset Bundles to support Craft Cloud setups.
- Optimized all front end Freeform scripts.
- Removed the
axios dependency.
- Removed the
lodash dependency.
- Removed the
core-js polyfills.
- Scripts for Calculation fields now load seperately as
calculation.js only if the field exists in the form being displayed.
- When using
freeform.loadScripts() (for manually loading scripts) and Calculation fields, be sure to include the field.calculation option.
Fixed
- Fixed a bug where multiple primary keys could be defined when MySQL has
sql_generate_invisible_primary_key turned on.
";s:4:"date";s:19:"2024-12-03T00:00:00";}i:34;a:4:{s:7:"version";s:5:"5.7.4";s:8:"critical";b:0;s:5:"notes";s:383:"Changed
- Updated the Mailchimp integration to include additional error logging around Contact Tags.
Fixed
- Fixed a bug in the Freeform 4.x migration where form submission table names were not always being named correctly.
- Fixed a bug in the Freeform 4.x migration where original form handles were not being preserved.
";s:4:"date";s:19:"2024-11-29T00:00:00";}i:35;a:4:{s:7:"version";s:5:"5.7.3";s:8:"critical";b:0;s:5:"notes";s:1195:"Added
- Added translations for the Usage in Elements feature.
Changed
- Updated the
phpoffice/phpspreadsheet dependency to include ^2.0 and ^3.0.
- Updated the Salesforce Lead Update Duplicate Leads setting to skip empty values in the new data when overwriting an existing Lead record.
Fixed
- Fixed a bug where Matrix relation titles would not always display correctly in the Usage in Elements tab. Set
Entry ID# as a title fallback for Matrix relations without a title.
- Fixed a bug where the Pipedrive integration was not correctly mapping to Lead fields.
- Fixed a bug where required field validation wasn't working correctly when using
is one of and is not one of conditional rules logic.
- Fixed a bug where the Freeform 4.x migration could fail if a form name was too long.
- Fixed a bug where the Stripe payment status was not updating for previously declined cards.
- Fixed a bug where the Stripe instructions guide had some errors.
";s:4:"date";s:19:"2024-11-22T00:00:00";}i:36;a:4:{s:7:"version";s:5:"5.7.2";s:8:"critical";b:0;s:5:"notes";s:1805:"Added
- Added a Usage in Elements tab to each form's settings in the form builder, displaying which elements use that form in the Freeform Form element type (Craft 5 only).
- Added detection and mapping of predefined options to applicable fields in the Salesforce integration.
- Added detection and mapping of predefined options to applicable fields in the HubSpot integration.
- Added an accessibility check for reduced motion on form scroll.
- Verified support for Craft 5.5.x.
Changed
- Updated composer.json to no longer force
^1.33 of the phpstan/phpdoc-parser package to workaround an issue in the symfony/property-access package now that the issue is resolved.
Fixed
- Fixed a bug where the Constant Contact integration could not map to standard fields if no custom fields existed.
- Fixed a bug where user permission checks for creating and deleting forms were not working.
- Fixed a bug where some integrations might lose their
refresh_token.
- Fixed an autoloading warning issue.
- Fixed a bug where the sample formatting templates' validation errors were not always working correctly when multiple forms with the same template existed in the same template.
- Fixed a bug in the Freeform 4.x migration where it wasn't converting extended ASCII characters in form or field handles.
- Fixed a bug where Quick Export could fail if there were invalid or stale field IDs.
- Fixed a bug where exporting submissions to Excel format could sometimes fail.
- Fixed a bug where the Constant Contact integration instructions were not up to date with the latest setup flow.
";s:4:"date";s:19:"2024-11-15T00:00:00";}i:37;a:4:{s:7:"version";s:5:"5.7.1";s:8:"critical";b:0;s:5:"notes";s:655:"Added
- Added
EVENT_DEFINE_SIDEBAR_HTML in the Freeform Submissions CP view. Thanks @mofman!
Changed
- Updated CRM integrations in the form builder to include separators for objects to improve clarity.
- Updated composer.json to force the
phpstan/phpdoc-parser package to ^1.33 to work around an issue in the symfony/property-access package.
Fixed
- Fixed a bug where labels in the Jira integration would sometimes error about array values.
- Fixed a bug where some forms could error when duplicating forms.
";s:4:"date";s:19:"2024-11-12T00:00:00";}i:38;a:4:{s:7:"version";s:7:"5.7.0.1";s:8:"critical";b:0;s:5:"notes";s:124:"Fixed
- Fixed a bug where the translation table migration wouldn't work with prefixed databases.
";s:4:"date";s:19:"2024-11-10T00:00:00";}i:39;a:4:{s:7:"version";s:5:"5.7.0";s:8:"critical";b:0;s:5:"notes";s:1141:"Added
- Added support for site-aware translatable forms inside the form builder (Pro).
- Added PDF Templates that can be dynamically generated and attached to submission notifications (Pro).
- Added the ability to designate where to render a visible captcha in your template.
- Added a Jira Cards integration (Pro).
- Added the ability to set custom error messages for Required validation on fields.
- Added support for overwriting existing Salesforce Lead records if the email address matches.
- Added a fallback formatting template for forms with a missing or invalid formatting template configured.
- Added a check for
asyncCsrfInputs on the Diagnostics page.
Fixed
- Fixed a bug where associated assets were not removed when submissions were deleted in the control panel or via the Submission Purge feature.
- Fixed a bug where the mailer service was resetting template mode too early.
- Fixed a bug where there could be a possible infinite loop in the Submission element.
";s:4:"date";s:19:"2024-11-09T00:00:00";}i:40;a:4:{s:7:"version";s:5:"5.6.8";s:8:"critical";b:0;s:5:"notes";s:101:"Fixed
- Fixed a bug where Webhook URLs were not processing ENV variables.
";s:4:"date";s:19:"2024-10-25T00:00:00";}i:41;a:4:{s:7:"version";s:5:"5.6.7";s:8:"critical";b:0;s:5:"notes";s:604:"Added
- Added support for sending file uploads to Salesforce objects.
- Added complete translations for the Salesforce integration.
Fixed
- Fixed a bug where the CP Submissions index would error when displaying File Upload and File Upload Drag & Drop fields.
- Fixed a bug where Hidden and Invisible fields were not included in Freeform Data exports.
- Fixed a bug where the
dateCreated, dateUpdated and uid columns were missing when persisting rule conditions on a PostgreSQL install.
";s:4:"date";s:19:"2024-10-23T00:00:00";}i:42;a:4:{s:7:"version";s:5:"5.6.6";s:8:"critical";b:0;s:5:"notes";s:826:"Fixed
- Fixed a bug where the Javascript Test was not checking for the presence of the input before updating its value.
- Fixed a bug where email notification jobs did not consider the site ID used when submitting the form.
- Fixed a bug where Invisible fields could not have their values overridden at the template level.
- Fixed a bug where Stripe
payments.amount only showed whole numbers.
- Fixed a bug where Stripe
payments.id and payments.resourceId were not available to use.
- Fixed a bug where the GTM integration would fail if another script also uses the
form global variable.
- Fixed a bug where the Freeform 4.x migration was missing a check for
targetFieldHash before using it.
";s:4:"date";s:19:"2024-10-18T00:00:00";}i:43;a:4:{s:7:"version";s:5:"5.6.5";s:8:"critical";b:0;s:5:"notes";s:874:"Added
- Added support for Cloudflare Turnstile spam protection captcha.
Changed
- Updated the sample Grid and Flexbox formatting templates to allow for compatibility between Group fields and Conditional Rules.
Fixed
- Fixed a bug where the Decimal Count setting for the Calculation field type was not seeing
0 as a valid value.
- Fixed a bug where the Freeform 4.x migration was converting status colors to
gray instead of grey while in Craft 4.x.
- Fixed a bug where the Send Success Email from Stripe to Submitter setting was not respected and Stripe would continue sending email receipts.
- Fixed a bug where using the List view on the forms dashboard could trigger an error for some customers.
";s:4:"date";s:19:"2024-10-11T00:00:00";}i:44;a:4:{s:7:"version";s:5:"5.6.4";s:8:"critical";b:0;s:5:"notes";s:1153:"Added
- Added support for Is One Of and Is Not One Of rule types for conditional rules, allowing you to perform advanced conditional checks on multi-option field types.
- Added a Decimal Count setting to the Calculation field type for the ability to automatically round result values.
- Added support for PKCE (Proof Key for Code Exchange) in the Pardot integration.
Changed
- Improved the form builder to remember the last opened items for the Notifications, Rules and Integrations tabs.
- Updated the French translation.
Fixed
- Fixed a bug where Export Notifications were not working.
- Fixed a bug where disabling email notifications inside the form builder would not disable them.
- Fixed a bug where duplicating a form would exclude email notifications, conditional rules and integrations.
- Fixed a bug where a default error message was not set for the Regex field type.
- Fixed a bug where the Freeform 4.x migration was not migrating or setting a default error message for Regex fields.
";s:4:"date";s:19:"2024-10-07T00:00:00";}i:45;a:4:{s:7:"version";s:5:"5.6.3";s:8:"critical";b:0;s:5:"notes";s:492:"Added
- Added a new Stripe
EVENT_AFTER_UPDATE_PAYMENT_METADATA event that allows additional metadata to be attached to a payment intent when a submission is created.
Fixed
- Fixed a bug where custom fields were not showing for mapping in the Pipedrive CRM integration.
- Fixed a bug where mapping a field handle of
name to a Stripe integration will prevent the Stripe field from loading in the front end.
";s:4:"date";s:19:"2024-09-27T00:00:00";}i:46;a:4:{s:7:"version";s:5:"5.6.2";s:8:"critical";b:0;s:5:"notes";s:640:"Fixed
- Fixed a bug where the Export Freeform data utility was not loading correctly in Craft 4.
- Fixed a bug where email notification templates could not be assigned to forms in the form builder for some users.
- Fixed a bug where the form "Cards" icon was not showing in the button on the form dashboard page.
- Fixed a bug where form submission and spam counters were not displaying in the dashboard for users and groups without read or manage permissions.
- Fixed a bug where links to modify forms in the List view of the dashboard did not account for user and group permissions.
";s:4:"date";s:19:"2024-09-20T00:00:00";}i:47;a:4:{s:7:"version";s:5:"5.6.1";s:8:"critical";b:0;s:5:"notes";s:124:"Fixed
- Fixed a bug where file-based email notification templates were not being read correctly.
";s:4:"date";s:19:"2024-09-18T00:00:00";}i:48;a:4:{s:7:"version";s:5:"5.6.0";s:8:"critical";b:0;s:5:"notes";s:1463:"Added
- Added a utility for granularly exporting and importing Freeform data (beta), including forms, submissions, templates, integrations, and Freeform settings.
- Added the ability to organize form cards into groups on the Forms dashboard page.
- Added the ability to switch the Forms dashboard page from Cards to a List table view.
- Added the ability to check in Twig to see if an integration is enabled for a form. Use
{% if form.isIntegrationEnabled("integrationHandle") %}.
- Added template-level overrides for POST Forwarding, allowing for Twig in the POST Forwarding URL and error phrase.
- Added the ability to hide advanced settings for Submit buttons with the Limited Users feature.
- Added compatibility of Hubspot tracking code to the Hubspot CRM integration.
- Added French translation. Thanks @scandella!
- Added German translation.
Changed
- Updated all sample formatting templates to load all scripts and styles via URLs to aid with strict content security policies. Added a migration for the Grid and Flexbox formatting template names in forms and the demo templates.
- Updated Status column styling to match Craft 5 for CP submissions/spam indexes.
Fixed
- Fixed various issues with missing translation strings.
- Fixed style issues on Payment cards in the CP submissions index.
";s:4:"date";s:19:"2024-09-17T00:00:00";}i:49;a:4:{s:7:"version";s:6:"5.5.10";s:8:"critical";b:0;s:5:"notes";s:297:"Fixed
- Fixed a compatibility issue with Campaign 3.x on Craft 5.x.
- Fixed a bug where an error could occur when creating new forms on some MySQL installs.
- Fixed a bug where the Diagnostics page could error on integration reporting if using PostgreSQL.
";s:4:"date";s:19:"2024-09-06T00:00:00";}i:50;a:4:{s:7:"version";s:5:"5.5.9";s:8:"critical";b:0;s:5:"notes";s:1082:"Added
- Added support for migrating Submit button labels in the Freeform 4.x migration.
- Added support for migrating conditional rules on Submit buttons in the Freeform 4.x migration.
- Verified support for Craft 5.4.x.
Changed
- Various updates to Dutch translations.
Fixed
- Fixed a bug where uploading assets to submissions in the control panel would incorrectly mark them as unfinalized assets to be deleted
- Fixed a bug where the Forms element field type was not alphabetically ordering the list of forms.
- Fixed a bug where some types of conditional rules on fields were not migrating properly in the Freeform 4.x migration.
- Fixed a bug where the Constant Contact integration was not implementing the refresh token interface.
- Fixed a bug where the Pardot integration was missing the
pardot_api scope.
Security
- Updated the
phpoffice/phpspreadsheet dependency to correct an XSS vulnerability.
";s:4:"date";s:19:"2024-09-04T00:00:00";}i:51;a:4:{s:7:"version";s:5:"5.5.8";s:8:"critical";b:0;s:5:"notes";s:128:"Fixed
- Fixed a bug where some headers were missing in the Pardot integration authorization request.
";s:4:"date";s:19:"2024-08-30T00:00:00";}i:52;a:4:{s:7:"version";s:5:"5.5.7";s:8:"critical";b:0;s:5:"notes";s:722:"Changed
- Updated Webhooks to improve the inclusion of file metadata.
- Updated the Stripe dependency versions to include
v14 and v15.
- Changed Freeform so it does not set
noCache headers on every request. Includes support for Craft's asyncCsrfInputs feature.
Fixed
- Fixed a bug where the
site parameter would lose track of the active site on nav links in the control panel when using the multi-site feature. For this to work correctly, you must enable the Site-Aware Forms setting.
- Fixed a bug where Freeform scripts were being attached to non-Freeform forms.
";s:4:"date";s:19:"2024-08-14T00:00:00";}i:53;a:4:{s:7:"version";s:5:"5.5.6";s:8:"critical";b:0;s:5:"notes";s:459:"Added
- Added Keap CRM integration.
- Add a
queuePriority setting to set the Craft queue priority of Freeform jobs.
- Verified support for Craft 5.3.x.
Fixed
- Fixed issues with permissions when using the Craft Team edition.
- Fixed a bug where custom field types were not showing in the Express edition.
- Fixed some minor styling issues on the diagnostics page.
";s:4:"date";s:19:"2024-08-10T00:00:00";}i:54;a:4:{s:7:"version";s:5:"5.5.5";s:8:"critical";b:0;s:5:"notes";s:593:"Changed
- Refactored exception catching. Added a failsafe which performs a token refresh flow once if an access token returns an unauthorized response.
Fixed
- Fixed a bug where the Bypass All Spam Checks for Logged in Users setting did not correctly bypass all spam checks for logged-in users when a form is cached.
- Fixed a bug where moving fields around in the builder layout would sometimes not work correctly.
- Fixed a bug where the Surveys & Polls link in form cards was broken.
";s:4:"date";s:19:"2024-07-30T00:00:00";}i:55;a:4:{s:7:"version";s:5:"5.5.4";s:8:"critical";b:0;s:5:"notes";s:724:"Added
- Added
freeform.loadScripts() template function for manually loading Freeform scripts (e.g. Freeform JS, reCAPTCHA, JS Test, etc).
Changed
- Changed form deleting from a
DELETE to POST request for better compatibility with server permissions.
Fixed
- Fixed a bug where Webhooks were being triggered on submissions sent to the Spam Folder.
- Fixed a bug where the CP Submissions chart was not showing for users with no settings access permissions.
- Fixed a bug where integration field mapping wasn't always cleaning up correctly.
- Fixed some Dutch translation language bugs.
";s:4:"date";s:19:"2024-07-11T00:00:00";}i:56;a:4:{s:7:"version";s:5:"5.5.3";s:8:"critical";b:0;s:5:"notes";s:982:"Added
- Added support for mapping URLs, email addresses, and phone numbers to the Craft URL field type for element integrations.
- Added a
loadFormSpecificScripts template function for manually loading additional form-specific scripts (e.g. reCAPTCHA, JS Test, etc).
Changed
- Updated integrations to fail gracefully on the front end when a user submits the form. If there's a configuration issue or error for the integration, the form will continue to process for the user and log an error in the Freeform error log.
- Updated integrations to no longer encrypt setting values configured with an ENV variable. Instead, the ENV variable will be stored in the database to continue working in multiple environments.
Fixed
- Fixed a bug where email notification jobs would fail when the Store Submission Data setting was disabled for the form.
";s:4:"date";s:19:"2024-07-04T00:00:00";}i:57;a:4:{s:7:"version";s:5:"5.5.2";s:8:"critical";b:0;s:5:"notes";s:658:"Changed
- Improved field error validation on multi-page forms using Element integrations. If required element fields are not present on the current Freeform form page, their error validation will happen at the end of the form instead.
- Improved integration error messages in the settings page.
Fixed
- Fixed a bug where email notifications were not rendering all fields from all pages.
- Fixed a bug where email notification jobs did not contain submission object data (if using that to render submission data).
- Fixed a potential ordering issue when dragging fields between rows.
";s:4:"date";s:19:"2024-07-03T00:00:00";}i:58;a:4:{s:7:"version";s:5:"5.5.1";s:8:"critical";b:0;s:5:"notes";s:808:"Changed
- Updated the form deletion process to include a delete confirmation modal to prevent accidental deletion of forms.
Fixed
- Fixed a bug that caused the Email Notification and Integration jobs to break when the Store Submitted Data setting was disabled.
- Fixed a bug that intermittently prevented integrations using OAuth from working.
- Fixed a bug where the Spam Blocking integrations page was not visible while admin changes were not allowed.
- Fixed a bug where going to a previous page in multi-page forms would not retain any data entered on the current page.
- Fixed a bug where the Move, Duplicate, and Archive form card buttons were displaying for the Express edition, which is not relevant.
";s:4:"date";s:19:"2024-06-27T00:00:00";}i:59;a:4:{s:7:"version";s:5:"5.5.0";s:8:"critical";b:0;s:5:"notes";s:2055:"Added
- Added the ability to bulk insert options into option-based field types (Checkboxes, Dropdown, etc).
- Added the ability to archive forms. Archived forms will continue to work and be accessible, but will no longer appear prominently on the Forms dashboard page.
- Added file attachments to be included in the POST Forwarding feature.
Changed
- Changed spam blocking to be integrations now. Previously, whenever
allowAdminChanges was set to false, it was no longer possible for users to modify blocked keywords, emails and IP addresses. This has been rectified by moving them from the settings to integration types. Users can now create pre-built sets of spam blocks, share them across forms, and manage each individually per form.
- Removed Blocked Keywords, Emails, and IP Addresses from the Spam Protection settings area.
- Added new integration types
Keywords, Emails and IP Addresses.
- Added a migration that migrates previous settings into new integrations and applies them to existing forms.
- Updated the File Drag & Drop field type to use
title attribute to display error information on files and removed the microtip library, as it was incompatible with a strict Content Security Policy that doesn't allow inline styles or inline scripts to be used.
Fixed
- Fixed a bug where rearranging fields into different rows in the form builder many times could cause it to stop working correctly.
- Fixed a bug that intermittently prevented integrations using OAuth from working. Added a buffer time for the refresh token check.
- Fixed a bug where failed Webhook integrations would break forms upon submission. Errors are now just logged in the Freeform error log.
- Fixed a bug where Date & Time field validation issues with native HTML types. A new setting has been added.
";s:4:"date";s:19:"2024-06-26T00:00:00";}i:60;a:4:{s:7:"version";s:5:"5.4.2";s:8:"critical";b:0;s:5:"notes";s:272:"Changed
- Updated remaining unnecessary inline
style attributes to be handled in freeform.css file instead.
Fixed
- Fixed some visual issues in the settings area of the Limited Users feature.
";s:4:"date";s:19:"2024-06-21T00:00:00";}i:61;a:4:{s:7:"version";s:5:"5.4.1";s:8:"critical";b:0;s:5:"notes";s:129:"Fixed
- Fixed a bug where the form builder would not load correctly on the Express and Lite editions.
";s:4:"date";s:19:"2024-06-19T00:00:00";}i:62;a:4:{s:7:"version";s:5:"5.4.0";s:8:"critical";b:0;s:5:"notes";s:1836:"Added
- Added Limited Users feature (Pro), which allows you to customize the form builder experience for specific users or groups.
- You can choose which field types are available and which settings and page tabs are visible.
- This ensures that these users are not overwhelmed by advanced settings and prevents them from accidentally breaking your forms or site.
- Multiple limited user groups can be created.
- Added ability to set email notifications and integrations to use Craft's queue.
- Added settings to control the Default 'From Name' and 'From Name' when creating new email notification templates.
- Added a chart to the Submissions index page.
- Added full translation support for the form builder and overhauled the English and Dutch translation files to be complete.
Changed
- Updated email notifications and integrations to be now handled by Craft's jobs. These can optionally be queued as well.
- Moved all remaining inline CSS and Javascript into external script files. This does not include inline CSS and JS for sample formatting templates.
- Updated the Date & Time field type to use
date, time, and datetime-local when not using the Flatpickr date/time picker feature.
Fixed
- Fixed a bug where the form Save & Continue feature was not working correctly.
- Fixed a bug where Stripe Payment forms would not scroll to the top of the form if there were errors.
- Fixed a bug that prevented clicking the Back button on a page that contained a Stripe Payment field from working.
- Fixed a bug where conditional rules were not being scoped within each form, which could affect other similar forms.
";s:4:"date";s:19:"2024-06-18T00:00:00";}i:63;a:4:{s:7:"version";s:5:"5.3.5";s:8:"critical";b:0;s:5:"notes";s:730:"Added
- Verified support for Craft 5.2.
- Verified support for the reCAPTCHA Enterprise API and updated the Settings page.
Changed
- Updated Survey & Poll report summary page to limit Text answers to the most recent 20 each to help with performance and readability.
Fixed
- Fixed a bug where the Entries Elements integration was not working correctly on multi-site setups when attempting to map to a section with the primary site disabled.
- Fixed a bug where the spam reason was not displaying correctly for Captchas and JS Test.
- Fixed a bug where 'checked' was available for option-based fields in the GraphQL Explorer.
";s:4:"date";s:19:"2024-06-13T00:00:00";}i:64;a:4:{s:7:"version";s:5:"5.3.4";s:8:"critical";b:0;s:5:"notes";s:293:"Added
- Added a list of active modules to the Freeform Diagnostics page.
Changed
- Minor updates to the plugin icon for better visibility in Craft 5.
Fixed
- Fixed a potential error when uninstalling Freeform 5.
";s:4:"date";s:19:"2024-06-07T00:00:00";}i:65;a:4:{s:7:"version";s:7:"5.3.3.1";s:8:"critical";b:0;s:5:"notes";s:175:"Changed
- Reverted improved Twig template debugging for formatting templates change (5.1.17) for now, as it is causing issues with Windows servers.
";s:4:"date";s:19:"2024-06-05T00:00:00";}i:66;a:4:{s:7:"version";s:5:"5.3.3";s:8:"critical";b:0;s:5:"notes";s:562:"Changed
- Updated the Password field type's Minimum Length setting to suppress Craft's minimum password length message when integrating with a Craft User to handle user registration.
- Updated the Freeform Diagnostics page to include additional checks and improve some existing ones.
Fixed
- Fixed a bug where Windows servers would show an error when attempting to load formatting templates.
- Fixed a bug where a duplicate form filter could sometimes display in the CP Submissions index page.
";s:4:"date";s:19:"2024-06-05T00:00:00";}i:67;a:4:{s:7:"version";s:5:"5.3.2";s:8:"critical";b:0;s:5:"notes";s:510:"Changed
- Updating the Surveys & Polls report/results page to include additional CSS that hides the Craft navbar and header for printing (or saving as PDF).
Fixed
- Fixed a bug where the Table field type's built-in JS and max rows settings inside the form builder did not affect the front end.
- Fixed a bug where en and em dash characters were not saving in submission data on Radios, Dropdown, and Opinion Scale field types.
";s:4:"date";s:19:"2024-05-31T00:00:00";}i:68;a:4:{s:7:"version";s:5:"5.3.1";s:8:"critical";b:0;s:5:"notes";s:147:"Fixed
- Fixed a bug that could cause the Craft search index to break if multiple forms had fields with the same handle.
";s:4:"date";s:19:"2024-05-28T00:00:00";}i:69;a:4:{s:7:"version";s:5:"5.3.0";s:8:"critical";b:0;s:5:"notes";s:1968:"Changed
- Improved the Script Insert feature:
The Static URLs option is no longer available, and the default is now Craft's Asset Bundles (an improved version of As Files). This ensures the best performance and reliability for any site and compatibility with Craft Cloud.
- The file pointers endpoints (_Static URLs) remain available for backward compatibility.
- The manual script loading approach (
loadFreeformPlugin) will also automatically load Asset Bundle URLs.
- Renamed the Freeform Script Insertion Location and Freeform Script Insert Type settings to Script Insert Location and Script Insert Type, respectively.
- Updated the demo templates:
- The submissions index view now orders submissions in descending order.
- The submission view now includes an enhanced display of assets for File Drag & Drop fields (in addition to regular File fields).
- Various updates to sample formatting templates:
- No longer include vague CSS classes to avoid conflict with other site styles. Added
freeform-form class to the <form> tag for all sample templates.
- No longer force overrides for
addButtonLabel and removeButtonLabel on Table fields.
- Improved display and positioning of submit buttons on Basic sample templates.
- Improved display of success and error banners on Basic sample templates.
Fixed
- Fixed a bug where the
tableAttributes template overrides for Table fields were not working.
- Fixed a bug where displaying assets from File fields in CP Submissions was broken.
- Fixed a bug where the Theme setting was mislabeled for File Drag & Drop fields inside the form builder.
";s:4:"date";s:19:"2024-05-24T00:00:00";}i:70;a:4:{s:7:"version";s:5:"5.2.2";s:8:"critical";b:0;s:5:"notes";s:658:"Added
- Added
freeform-stripe-load event for Payments forms and moved Mutation Observer outside of window.onload.
Changed
- Updated the Conditional Rules JSON attachment from
<script> to <div> with a data attribute for better compatibility with JS frameworks.
Fixed
- Fixed a bug where fetching Payment records (
freeform.payments) in the Submissions query was not available.
- Fixed a bug where an error about
freeform_feed would be triggered when attempting to install Freeform.
";s:4:"date";s:19:"2024-05-22T00:00:00";}i:71;a:4:{s:7:"version";s:5:"5.2.1";s:8:"critical";b:0;s:5:"notes";s:121:"Fixed
- Fixed a bug where the Express Forms migration was not working as of Freeform 5.1.19+.
";s:4:"date";s:19:"2024-05-21T00:00:00";}i:72;a:4:{s:7:"version";s:5:"5.2.0";s:8:"critical";b:0;s:5:"notes";s:1233:"Added
- Added optional Site Filtering setting for forms and submissions (Pro). This setting allows you to filter form lists by Sites and prevents other admins from accessing forms that belong to Sites they don't have access to.
- This only controls access to forms and submissions. It does not enable translations per site.
- If you'd like to apply this change retroactively, you should run the
./craft freeform/submissions/resave CLI command after enabling this setting.
- Added settings for Password field to set a minimum number of characters to be used (Min Length) and whether the password should contain at least one number, one lowercase letter, one uppercase letter, and one special character (Character Variability).
- Added an integration for Google Sheets (Pro).
Changed
- Updated sample formatting templates to use
novalidate. It was previously incorrectly applied to inputs instead of <form>.
Fixed
- Fixed a bug where Stripe payment information was unavailable in email notifications.
";s:4:"date";s:19:"2024-05-15T00:00:00";}i:73;a:4:{s:7:"version";s:8:"5.1.19.1";s:8:"critical";b:0;s:5:"notes";s:210:"Fixed
- Fixed a bug where attempting to update to Freeform 5.1.19 could cause the process to crash.
- Fixed input placeholder styles for Bootstrap sample formatting templates.
";s:4:"date";s:19:"2024-05-09T00:00:00";}i:74;a:4:{s:7:"version";s:6:"5.1.19";s:8:"critical";b:0;s:5:"notes";s:761:"Changed
- Updated the Settings → Statuses to no longer have conflicting logic to set the default status for new forms. This is now done in the Settings → Form Builder area in Freeform 5+.
- Improved integration errors to log more meaningful error messages.
Fixed
- Fixed a bug where the Update Notices feature for the Freeform dashboard was not working.
- Fixed a bug where clicking the Source type an additional time would clear any option settings you currently have for Options-based field types.
- Fixed a bug where setting
allowedGraphqlOrigins to false in general.php would cause form submissions to crash.
";s:4:"date";s:19:"2024-05-08T00:00:00";}i:75;a:4:{s:7:"version";s:8:"5.1.18.1";s:8:"critical";b:0;s:5:"notes";s:631:"If you are experiencing visual issues with form layouts and styles on the front end, please update Freeform and ensure you're adding the |raw filter to form.attributes.success and form.attributes.errors in any custom formatting templates you may have when not using AJAX.
Changed
- Added the
|raw filter to form.attributes.success and form.attributes.errors in sample formatting templates as they began parsing with an extra set of quotes around them when not using AJAX.
";s:4:"date";s:19:"2024-05-06T00:00:00";}i:76;a:4:{s:7:"version";s:6:"5.1.18";s:8:"critical";b:0;s:5:"notes";s:872:"If you are experiencing visual issues with form layouts and styles on the front end, please update Freeform and ensure you're adding the |raw filter to form.attributes.row in any custom formatting templates you may have.
Changed
- Added the
|raw filter to form.attributes.row in sample formatting templates as they began parsing with an extra set of quotes around them.
Fixed
- Fixed a bug where forms would fail when loading if a Confirm field was used and the Duplicate Check setting was set to Anyone - Once per Email Address.
- Fixed a bug where the form builder's field association badges for Checkbox, HTML, and Rich Text fields did not display correctly.
";s:4:"date";s:19:"2024-05-06T00:00:00";}i:77;a:4:{s:7:"version";s:6:"5.1.17";s:8:"critical";b:0;s:5:"notes";s:1222:"Added
- Added Assets as an Element source for populating Freeform field options.
- Confirmed compatibility with Craft 5.1.x.
Changed
- Improved Twig template debugging for formatting templates.
- Updated Tailwind formatting template to have instructions below the field label instead of below the input.
- Updated the JSON payload from forms to no longer contain details of the user(s) that created and last updated the form.
- Updated the Field Type Manager to store field types set to hidden in the database instead of the Project Config file.
Fixed
- Fixed a bug where Freeform fields with long handles could cause Craft's search indexing jobs to fail.
- Fixed a bug where Export Notifications would fail if they contained multiple email addresses.
- Fixed a bug where conditional rules were outputted to the browser console.
- Fixed a bug where some integration could fail due to model properties being before EVENT_BEFORE_SAVE.
- Fixed a bug where Notification Persistence would throw errors if the form upsert event has errors.
";s:4:"date";s:19:"2024-05-03T00:00:00";}i:78;a:4:{s:7:"version";s:8:"5.1.16.1";s:8:"critical";b:0;s:5:"notes";s:124:"Fixed
- Fixed a bug where the update migration for 5.1.16 was not automatically being triggered.
";s:4:"date";s:19:"2024-04-29T00:00:00";}i:79;a:4:{s:7:"version";s:6:"5.1.16";s:8:"critical";b:0;s:5:"notes";s:885:"Added
- Added the ability to set conditional rules that can prematurely fully submit the form if matched.
- Added the ability to set conditional rules on Submit, Back and Save buttons.
- Added support for using conditional rules across different pages, e.g. Field C on Page 2 will display if Field A on Page 1 is X.
Changed
- Updated the color of submit buttons inside the form builder to dark gray to prevent confusion with actual action buttons.
Fixed
- Fixed a bug where saving any Freeform settings would clear the Form Builder "defaults" settings.
- Fixed a bug where submissions flagged as spam would still send data off to integrations instead of being queued.
- Fixed some potential issues with submitting Checkbox fields.
";s:4:"date";s:19:"2024-04-26T00:00:00";}i:80;a:4:{s:7:"version";s:6:"5.1.15";s:8:"critical";b:0;s:5:"notes";s:765:"Changed
- Updated GraphQL to include HTML and Rich Text field types.
Fixed
- Fixed a bug where the Export Profiles page in the CP would display an error in Craft 5 when any profiles exist.
- Fixed a bug where Stripe Payment submissions were still processed when flagged as spam by Freeform.
- Fixed a bug where the form builder included two labels for Checkbox fields.
- Fixed a bug where creating a new Site and setting it to be the Primary site (at the same time) would fail due to Freeform.
- Fixed a bug where the old approach of
FreeformField_Submit and FreeformField_Save were still showing under fields in the GraphQL explorer.
";s:4:"date";s:19:"2024-04-24T00:00:00";}i:81;a:4:{s:7:"version";s:6:"5.1.14";s:8:"critical";b:0;s:5:"notes";s:453:"Added
- Added
freeform/submissions/generate CLI command to allow the creation of fake submission data into forms. Useful for testing and troubleshooting some issues.
- Added support for searching into specific fields in the CP Submission element search bar (e.g.
firstName:bob). You may need to run ./craft freeform/submissions/resave --update-search-index once for this to work.
";s:4:"date";s:19:"2024-04-19T00:00:00";}i:82;a:4:{s:7:"version";s:8:"5.1.13.1";s:8:"critical";b:0;s:5:"notes";s:100:"Fixed
- Fixed an issue with the Dotdigital integration.
";s:4:"date";s:19:"2024-04-18T00:00:00";}i:83;a:4:{s:7:"version";s:6:"5.1.13";s:8:"critical";b:0;s:5:"notes";s:888:"Added
- Added Craft element search support for submissions. You may need to run
./craft freeform/submissions/resave --update-search-index once for this to work.
- Added
freeform/submissions/resave CLI command to resave all existing submissions.
- Added
freeform/submissions/fix-titles CLI command to fix the migration of Element titles for sites that have upgraded from Craft 4 to Craft 5. This command needs to be run once after the migration.
Fixed
- Fixed a visual issue with the Quick Export modal styles in Craft 5.
- Fixed a bug where the Express Forms migration utility would not work if there were no fields in a form.
- Fixed a race condition issue where refreshing the browser in the form builder would sometimes show stale or invalid data on section tabs.
";s:4:"date";s:19:"2024-04-17T00:00:00";}i:84;a:4:{s:7:"version";s:6:"5.1.12";s:8:"critical";b:0;s:5:"notes";s:493:"Changed
- Changed all
PUT requests to POST requests for sites with strict method allowlists.
- Updated the form builder to include the Craft notice banner for successes and errors when saving the form.
- Updated success/error notices throughout the plugin.
- Updated breadcrumbs throughout the plugin.
Fixed
- Fixed a bug where error validation was not working correctly in the form builder.
";s:4:"date";s:19:"2024-04-12T00:00:00";}i:85;a:4:{s:7:"version";s:6:"5.1.11";s:8:"critical";b:0;s:5:"notes";s:1852:"Changed
- Refactored Captcha loaders and added lazy load support.
- Improved Failure Behavior settings for Captchas inside the form builder.
- Improved display of HTML, Rich Text, Hidden and Invisible field types in the form builder.
- Updated the
fields and lists limits in the ActiveCampaign integration.
- Updated the
stripe/stripe-php dependencies to include ^13.0.
- Updated the
symfony/property-access, symfony/finder, symfony/filesystem and symfony/expression-language dependencies to remove 2.8|^3.0|^4.0.
- Updated the
symfony/serializer dependency to include ^5.0 and ^7.0.
- Updated the
hashids/hashids dependency to include ^5.0 and remove ^2.0.
- Removed the
composer/composer dependency requirement.
Fixed
- Fixed an issue with the Dotdigital integration.
- Fixed a deprecation error when viewing the CP Submissions index in Craft 5.
- Fixed an alignment issue with the Submit buttons in the CP Submission and Spam detail pages.
- Fixed a bug where Element integration field mapping was not reliably loading and saving data.
- Fixed a bug where Email Marketing integrations could fail when field mapping is updated.
- Fixed a bug in which the form's Updated date was not correctly updated.
- Fixed a bug where the Javascript Test was loading inside the CP Submission detail page.
- Fixed a bug where an element query could execute before Craft loaded.
";s:4:"date";s:19:"2024-04-11T00:00:00";}i:86;a:4:{s:7:"version";s:6:"5.1.10";s:8:"critical";b:0;s:5:"notes";s:328:"Changed
- Updated the
symfony/property-access, symfony/finder, symfony/filesystem and symfony/expression-language dependencies to include ^7.0.
- Updated the
nesbot/carbon dependency to include ^3.0.0".
";s:4:"date";s:19:"2024-04-04T00:00:00";}i:87;a:4:{s:7:"version";s:5:"5.1.9";s:8:"critical";b:0;s:5:"notes";s:1594:"Added
- Added an updated Dotdigital email marketing integration.
- Added an
EVENT_UPDATE_PAYMENT_METADATA developer event for modifying Stripe metadata.
Changed
- Refactored the form submit and submit button lock process to work reliably when more complex features and flows are active (e.g. Stripe, Captchas, File Drag & Drop, etc).
- Updated the domain extension length maximum from
6 to 15 for Website fields.
- Exposed the Maximum Length field setting for GraphQL.
Fixed
- Fixed a bug where Freeform fields could not map to Salesforce Checkbox fields.
- Fixed an issue with Stripe subscriptions and empty product names. Also added a failsafe for the product name.
- Fixed a bug where the Page tab label editor in the builder was broken when a scrollbar was present (lots of pages).
- Fixed a bug where the Max Length setting was not present for applicable fields.
- Fixed a bug where deleting Group fields could delete other fields that share its row in the builder.
- Fixed a bug where the reCAPTCHA v2 Checkbox was not being validated if left empty on a form with Stripe.
- Fixed a bug where the Submit button was prematurely becoming active again before the Stripe payment form was fully processed.
- Fixed a bug where Captchas were loaded inside the CP submission detail page when enabled.
";s:4:"date";s:19:"2024-04-03T00:00:00";}i:88;a:4:{s:7:"version";s:5:"5.1.8";s:8:"critical";b:0;s:5:"notes";s:978:"Added
- All reCAPTCHA and hCaptcha versions are now available for the Lite edition (as well as Pro).
Changed
- Updated the delete icon display and behavior for managing page tabs in the builder.
Fixed
- Fixed a bug where the form submit button was not always locking correctly with forms using Stripe or File Upload fields.
- Fixed a bug where deleting Group fields in the builder was not also removing the fields inside.
- Fixed a visual issue when editing page tab names in the builder when using the Safari and Firefox browsers.
- Fixed a visual issue for field blocks in the builder when using the Microsoft Edge browser.
- Fixed a bug where long field labels overlapped other field labels in the builder.
- Fixed a bug where conditional rules for forms might not always migrate correctly from Freeform 4.
";s:4:"date";s:19:"2024-03-27T00:00:00";}i:89;a:4:{s:7:"version";s:5:"5.1.7";s:8:"critical";b:0;s:5:"notes";s:457:"Fixed
- Fixed a bug where reCAPTCHA would conflict with forms using Stripe Payments.
- Fixed a bug where mapping a field with a handle of
name would break the Stripe integration.
- Fixed a bug where running the migration from Freeform 3.x could trigger a
Base table or view already exists error.
- Fixed some Safari browser stying issues with the horizontal scrollbar for page tabs.
";s:4:"date";s:19:"2024-03-22T00:00:00";}i:90;a:4:{s:7:"version";s:5:"5.1.6";s:8:"critical";b:0;s:5:"notes";s:712:"Added
- Added a Not Like option for filtering on field values in Export Profiles.
Changed
- Improved the form builder so it doesn't prematurely close the property editor when a click and drag happens beyond it (e.g. selecting a value in a text input field to clear and replace it).
Fixed
- Fixed a bug where fields could have conditional rules for each other and cause an infinite loop.
- Fixed a bug where removing conditional rules did not always remove the correct rule set.
- Fixed a bug where using multiple Stripe fields from multiple Stripe accounts in the same form would not work correctly.
";s:4:"date";s:19:"2024-03-20T00:00:00";}i:91;a:4:{s:7:"version";s:7:"5.1.5.1";s:8:"critical";b:0;s:5:"notes";s:142:"Fixed
- Fixed a bug where a change for setting
nocache headers in Freeform 5.1.5 broke the Craft CLI.
";s:4:"date";s:19:"2024-03-20T00:00:00";}i:92;a:4:{s:7:"version";s:5:"5.1.5";s:8:"critical";b:0;s:5:"notes";s:1176:"Changed
- Updated the CSRF input to send
nocache headers when rendering.
- Adjusted the Diagnostics page to include PHP 8.2 and 8.3 compatibility.
Fixed
- Fixed a bug where Freeform was opening unnecessary sessions.
- Fixed a bug where page tabs would become inaccessible when the number of tabs exceeds the width of the browser window.
- Fixed a bug where mapping to the Enabled setting on Craft Entry element integrations was not working.
- Fixed a bug where user group selection in the User element integration did not allow multiple choice.
- Fixed a bug where files were not being uploaded for regular File Upload fields when not using AJAX.
- Fixed a bug where the User element integration was not always working when used in edit mode.
- Fixed a bug where changes to email notifications in the form builder were not sticking if you switched to another tab.
- Fixed a bug where the default theme option for Stripe was incorrectly named
default instead of stripe, causing console errors in the browser.
";s:4:"date";s:19:"2024-03-19T00:00:00";}i:93;a:4:{s:7:"version";s:5:"5.1.4";s:8:"critical";b:0;s:5:"notes";s:512:"Added
- Added the ability to add attributes to Captcha containers at the template level.
Changed
- Reverted the Campaign Monitor to API tokens (instead of OAuth) to address several complications.
Fixed
- Fixed a bug where the Freeform 4 to 5 migration could fail when creating submission database tables in some circumstances.
- Added clarity to the Activate Users setting for the User element integration.
";s:4:"date";s:19:"2024-03-14T00:00:00";}i:94;a:4:{s:7:"version";s:5:"5.1.3";s:8:"critical";b:0;s:5:"notes";s:513:"Fixed
- Fixed a bug where Dynamic Recipient fields could sometimes fail in the Freeform 4 to 5 migration.
- Fixed a bug where saving submissions via console commands would fail on the saved notes feature.
- Fixed a bug where the Calculations field type was not triggering the Stripe element refresh when set as the dynamic amount field while set as Plain Text.
- Fixed a bug where the Empty Option Label feature was showing on fields other than Dropdowns.
";s:4:"date";s:19:"2024-03-11T00:00:00";}i:95;a:4:{s:7:"version";s:5:"5.1.2";s:8:"critical";b:0;s:5:"notes";s:467:"Fixed
- Fixed a bug where Success Templates were not being mapped in the Freeform 4 to 5 migration.
- Fixed a bug where the Calculations field type was not triggering the Stripe element refresh when set as the dynamic amount field.
- Fixed a bug where changing a form's Form Type had no effect.
- Fixed a bug in conditional rules logic that prevented fields with handles beginning with a number from working correctly.
";s:4:"date";s:19:"2024-03-07T00:00:00";}i:96;a:4:{s:7:"version";s:5:"5.1.1";s:8:"critical";b:0;s:5:"notes";s:1230:"Added
- Added compatibility with Craft 5 beta (in addition to Craft 4.x).
- Added back support for an optional Empty Option Label for Dropdown fields that are populated by Elements or Predefined options.
- Added support for Automatic Spam Purging in the Lite edition of Freeform.
Changed
- Refactored the Submission Purge functionality to use the Craft queue.
- Updated the Stripe dynamic amount field setting to accept Calculation fields.
Fixed
- Fixed a bug where the default Status set inside the builder was not being respected.
- Fixed a bug where only the first File Upload field would work if using multiple File Upload fields in the form.
- Fixed a bug where the Freeform 4 to 5 migration was setting the Success Behavior setting to Reload for all forms instead of matching what was set in Freeform 4.
- Fixed a bug where converting a field with Array data to a different field type without (e.g. Checkboxes to Dropdown) would trigger an error.
- Fixed a bug where the Calculation field was not being added to the Special field group on migration.
";s:4:"date";s:19:"2024-03-06T00:00:00";}i:97;a:4:{s:7:"version";s:5:"5.1.0";s:8:"critical";b:0;s:5:"notes";s:445:"Added
- Added a Calculation field type, which allows you to perform dynamic calculations based on user-input values within forms.
- Added a migration from the Express Forms plugin. It will import forms and fields, submissions, and notification templates.
- Added ability to set dynamic notifications using GraphQL.
Fixed
- Fixed a bug where page buttons were not translatable.
";s:4:"date";s:19:"2024-03-01T00:00:00";}i:98;a:4:{s:7:"version";s:6:"5.0.16";s:8:"critical";b:0;s:5:"notes";s:121:"Fixed
- Fixed a bug where the Stripe payments field would not load correctly when logged out.
";s:4:"date";s:19:"2024-02-28T00:00:00";}i:99;a:4:{s:7:"version";s:6:"5.0.15";s:8:"critical";b:0;s:5:"notes";s:288:"Changed
- Updated all sample formatting templates to include complete Stripe appearance API customization.
Fixed
- Fixed a bug where connecting to new integrations using OAuth 2.0 were not working due to the redirect URI being empty.
";s:4:"date";s:19:"2024-02-27T00:00:00";}i:100;a:4:{s:7:"version";s:8:"5.0.14.1";s:8:"critical";b:0;s:5:"notes";s:105:"Fixed
- Fixed some remaining issues related to the migration from Freeform 4.
";s:4:"date";s:19:"2024-02-23T00:00:00";}i:101;a:4:{s:7:"version";s:6:"5.0.14";s:8:"critical";b:0;s:5:"notes";s:699:"Changed
- Updated the reserved words list to make exceptions for
name, type, and username as they are more likely to be used and don't appear to cause any issues.
Fixed
- Fixed a bug where Confirm fields were present in email notifications.
- Fixed a bug where the Page Skipping feature for Conditional Rules was not working correctly.
- Fixed a bug where forms would error when Freeform Date fields were mapping to Craft date fields (e.g. Post Date, Expiry Date, etc) in Element integrations.
- Fixed a bug where setting a template override for the submission status was not working.
";s:4:"date";s:19:"2024-02-23T00:00:00";}i:102;a:4:{s:7:"version";s:6:"5.0.13";s:8:"critical";b:0;s:5:"notes";s:1225:"Added
- Added a reserved word validator using Craft's reserved words to check against field handles.
- Added the ability to map directly to the Full Name in the Craft User element integration.
Changed
- Updated Confirm fields to no longer store data when targeting a Password field.
Fixed
- Fixed a bug where creating new forms with special or foreign characters would cause the form not to be created due to an invalid form handle.
- Fixed a bug where the Fill Form Values from the GET Query String setting was not being respected.
- Fixed a bug where editing existing users via the Craft User element integration in a Freeform form did not affect First Name and Last Name fields.
- Fixed a bug where the Page Skipping feature for Conditional Rules was not working at all.
- Fixed a bug where the Stripe Payments field was not working with the Tailwind sample formatting template (and potentially some custom templates).
- Fixed a bug where some sample formatting templates showed unnecessary styling wrappers around Stripe Payments fields.
";s:4:"date";s:19:"2024-02-23T00:00:00";}i:103;a:4:{s:7:"version";s:6:"5.0.12";s:8:"critical";b:0;s:5:"notes";s:388:"Added
- Added support for querying conditional rules for fields and pages in GraphQL.
Fixed
- Fixed a bug where migrated forms with a Dynamic Recipients field (not User Select) would trigger an error loading/submitting the form.
- Fixed a bug where Regex fields were triggering an error if left empty when submitting the form.
";s:4:"date";s:19:"2024-02-19T00:00:00";}i:104;a:4:{s:7:"version";s:6:"5.0.11";s:8:"critical";b:0;s:5:"notes";s:933:"Added
- Added a setting to allow users to enable dashes in field handle names.
Fixed
- Fixed several issues related to the migration from Freeform 4, including table prefixes and field handles that are too long getting corrupted.
- Fixed an issue where table prefixes were not being respected on fresh installs.
- Fixed the precedence order for overriding attributes in formatting templates. Overrides in the template loading the form now take precedence over the formatting template overrides within it.
- Fixed a bug where editing/saving a submission inside the control panel could sometimes error about a user ID being
0.
- Fixed a bug where the Stripe Webhook URL was incorrectly including a CP admin path. Any existing Stripe integrations will need to be manually adjusted.
- Adjusted the JS in a few of the sample templates.
";s:4:"date";s:19:"2024-02-16T00:00:00";}i:105;a:4:{s:7:"version";s:6:"5.0.10";s:8:"critical";b:0;s:5:"notes";s:940:"Added
- Added PKCE (Proof Key for Code Exchange) implementation for integrations using the OAuth2.0 flow.
- Added support for PKCE (Proof Key for Code Exchange) in the Salesforce integration.
Fixed
- Fixed a bug where the CP Submission detail pages were not handling conditional rule logic correctly.
- Fixed a bug where the Send Digest Email job was added to the Craft queue even when turned off.
- Fixed a bug where the Stripe Payments field would not load in the form when the Freeform Script Insertion Location setting was set to Page Header.
- Fixed a bug where the Use Option Labels when Exporting setting was causing exports to fail.
- Fixed a bug where the Freeform was causing Element query executed before Craft is fully initialized errors to be logged in the Craft logs.
";s:4:"date";s:19:"2024-02-08T00:00:00";}i:106;a:4:{s:7:"version";s:5:"5.0.9";s:8:"critical";b:0;s:5:"notes";s:322:"Fixed
- Fixed a bug where the Mailchimp integration was only showing one audience/mailing list.
- Fixed a bug where the
fieldIdPrefix parameter was not working.
- Fixed a bug where the Conditional Rules value input was not being hidden for empty condition rule types.
";s:4:"date";s:19:"2024-02-07T00:00:00";}i:107;a:4:{s:7:"version";s:5:"5.0.8";s:8:"critical";b:0;s:5:"notes";s:589:"Changed
- Implemented better cache busting for loading script pointers.
- Implemented a unified entry point for loading scripts based on current settings.
- Implemented a single Stripe script loader and mutation observer.
- Updated dropdown settings to have a clearer distinction between mapped/unmapped items.
Fixed
- Fixed a bug where the Stripe Payment field would sometimes not load on the front end.
- Fixed a bug where all old integrations were not being cleared during the migration from Freeform 4.
";s:4:"date";s:19:"2024-02-06T00:00:00";}i:108;a:4:{s:7:"version";s:5:"5.0.7";s:8:"critical";b:0;s:5:"notes";s:561:"Added
- Added support for querying page Submit buttons in GraphQL.
Changed
- Updated the HubSpot integration to use v3 of the API and the private app token approach instead of OAuth flow.
Fixed
- Fixed a bug where hyphens were allowed in form and field handles.
- Fixed a bug where the GraphQL cache was not resetting after making form updates.
- Fixed a bug where
maxLength was included in Text and Textarea field types in GraphQL when not applicable.
";s:4:"date";s:19:"2024-02-02T00:00:00";}i:109;a:4:{s:7:"version";s:7:"5.0.6.1";s:8:"critical";b:0;s:5:"notes";s:287:"Fixed
- Fixed a bug where integration settings pages were not being displayed in the navigation when
allowAdminChanges was set to false.
- Fixed a bug where the Dynamic Template Notifications feature was not working correctly.
";s:4:"date";s:19:"2024-02-01T00:00:00";}i:110;a:4:{s:7:"version";s:5:"5.0.6";s:8:"critical";b:0;s:5:"notes";s:899:"Added
- Added the ability to manually render Submit buttons in forms.
Changed
- Adjusted the Manual Form extra template in the demo templates to use the new manual Submit button approach.
Fixed
- Fixed a bug where the replace syntax for template overrides (e.g.
=class) was not working correctly.
- Fixed a bug where
0 was not considered a valid value for a Number field with the required validator.
- Fixed a bug where regular File Upload fields were not working correctly if the field was set to be required.
- Fixed a bug where field values/default values were not returning correctly in GraphQL queries.
- Fixed a bug where some sample formatting templates did not correctly style the File Upload Drag & Drop fields.
";s:4:"date";s:19:"2024-01-31T00:00:00";}i:111;a:4:{s:7:"version";s:5:"5.0.5";s:8:"critical";b:0;s:5:"notes";s:795:"Changed
- Updated form rendering to work when iterating over rows directly in the
form object for better backward compatibility with the Freeform 4.x approach.
- Updated
form.successMessage, form.errorMessage and field.rulesHtmlData to have fallbacks (that are empty) to prevent hard errors in old formatting templates that use them.
Fixed
- Fixed a bug where user permissions were not correctly being considered on form cards on the Forms dashboard page.
- Fixed a bug where the weekly/daily email Digest feature was not always working correctly.
- Fixed a visual bug where the breadcrumbs in the form builder would formulate incorrectly when refreshing the browser.
";s:4:"date";s:19:"2024-01-30T00:00:00";}i:112;a:4:{s:7:"version";s:5:"5.0.4";s:8:"critical";b:0;s:5:"notes";s:683:"Added
- Added a Page Header option for the Freeform Javascript Insertion Location setting.
Fixed
- Fixed a bug where sites using Postgres would fail during migration.
- Fixed a bug where an error about
includeAttachments on notification templates could occur for some sites.
- Fixed a bug where Captchas would display on all pages instead of just the last page.
- Fixed a bug where misconfigured options fields could crash the Freeform 4 migration.
- Fixed a visual bug where the breadcrumbs in the form builder could formulate incorrectly when saving the form.
";s:4:"date";s:19:"2024-01-29T00:00:00";}i:113;a:4:{s:7:"version";s:5:"5.0.3";s:8:"critical";b:0;s:5:"notes";s:972:"Changed
- Updated the weekly/daily email Digest to use Craft's queue jobs.
- Updated form rendering to not hard error if
form.customAttributes is used in an older formatting template. It now logs a notice to the Craft deprecation warning log.
Fixed
- Fixed a bug where manually coded forms were not having the form method being set automatically.
- Fixed a bug where rendering a form through the Freeform Form field on another element could trigger an error.
- Fixed a bug where multi-option fields were not working correctly with Conditional Rule values.
- Fixed a bug where File Upload Drag & Drop fields were not working correctly if the field was set to be required.
- Fixed a bug where mandatory attributes were showing up in the form builder attribute editor.
- Fixed the
extras/manual-form demo template to work correctly with Freeform 5.
";s:4:"date";s:19:"2024-01-26T00:00:00";}i:114;a:4:{s:7:"version";s:5:"5.0.2";s:8:"critical";b:0;s:5:"notes";s:285:"Added
- Verified compatibility with Craft 4.7.
Fixed
- Fixed a few compatibility issues with PHP 8.0.
- Fixed a bug where the migration could potentially convert a couple of the default fields incorrectly in the first form.
";s:4:"date";s:19:"2024-01-25T00:00:00";}i:115;a:4:{s:7:"version";s:5:"5.0.1";s:8:"critical";b:0;s:5:"notes";s:203:"Fixed
- Fixed an
instanceof check issue on the Freeform 5 migration.
- Fixed a bug where default form success/error messages were not being added if empty.
";s:4:"date";s:19:"2024-01-23T00:00:00";}i:116;a:4:{s:7:"version";s:5:"5.0.0";s:8:"critical";b:0;s:5:"notes";s:20374:"If upgrading from Freeform 4, please see the special upgrade guide before proceeding.
Added
- Form Builder
- Fields can be saved as Favorites for quick use in other forms.
- Fields from other forms can be searched and reused in your form.
- A Field Type Manager has been added to the form builder. It allows you to show/hide field types, arrange them into groups, and color code them.
- Created/Updated dates and author information are now stored for each form and visible inside the form builder.
- The Limited Users feature allows you to easily customize the form builder experience for specific users or groups, ensuring that these users are not overwhelmed by advanced settings and prevents them from accidentally breaking your forms or site.
- Configure email notifications in the form builder using complex conditional rules based on field data.
- A wide range of form builder settings can now have default values set for them, and can also be locked to that value. For example, you can force the Tailwind 3 formatting template to be used for every form.
- Fields
- The Group field type allows you to nest multiple fields inside. Additionally, conditional rules can be applied to Group fields.
- Fields being populated with Element or Predefined data can now have the data converted to Custom options so they can be modified, added to, removed, reordered, etc.
- Fields can now be individually encrypted.
- Custom field types are available to be created now.
- Email Notifications
- Configure email notifications in the form builder using complex conditional rules based on field data.
- Integrations
- Captchas now include a setting inside the form builder to force a country code, e.g.
en, de, etc. If left blank, the locale will be auto-detected.
- Templating
- The Template Overrides feature enables modification of attributes for the form, fields, and buttons, as well as overriding field labels, values, and instructions at the template-level.
- The Settings object allows you to access all of the form's settings assigned to it in the form builder, e.g.
form.settings.errorMessage.
- The Multipage All Fields formatting template replaces the Bootstrap 5 Multipage All Fields template.
- The
labels and labelsAsString methods are now available for all option field types. This allows you to choose between displaying option labels instead of values when loading submission data in front end or email notifications.
- The
implements method is available to all fields for Twig-friendly implementation checks, e.g. field.implements('options').
- The global
freeform variable allows shorthand for template queries, e.g. freeform.form instead of craft.freeform.form.
- Stripe Payments
- The Pro edition now includes fresh support for the newer Stripe Payment Element.
- Support for Stripe Link, Apple Pay, Google Pay, PayPal (within Europe), bank payments, deferred payments and many other options.
- Ability to include more than one Stripe payment element field in a form. When used with conditional rules, you can show/hide one Stripe element at a time (e.g. use a dropdown field to allow the user to choose between one-time or recurring payments).
- Surveys & Polls
- The Freeform Surveys & Polls plugin features are now included in the Pro edition of Freeform. Please see the special upgrade guide before proceeding.
Changed
- Control Panel
- The Dashboard and Forms pages have been combined and redesigned.
- The Email Notifications subnav menu item has been renamed to Notifications.
- All settings and references of
behaviour have been updated to behavior.
- Form Builder
- Completely redesigned the form builder.
- Settings and other features are now in full-page tabs to allow for lots of room to configure.
- Fields are specific to forms and added by dragging fresh field types into the layout.
- Reorganized all form settings and behaviors into multiple subsections of a unified Settings tab.
- Reorganized Email Marketing, CRM, Element, Stripe, Captcha, POST Forwarding and Google Tag Manager settings into multiple subsections of a unified Integrations tab.
- The Conditional Rules tab has been greatly improved to include a field map along with visual cues, making configuration faster and less confusing.
- Some of the option values for the Duplicate Check (formerly Limit Form Submission Rate) setting have been changed.
- Fields
- Fields are now created and specific to each form (vs. being global to all forms).
- Fields can be saved as Favorites or searched upon to be reused in other forms.
- Fields can now be changed to other field types at any point, but be aware that data loss could occur when switching incompatible field types.
- The Checkbox Group field type has been renamed to Checkboxes (and
checkboxes in formatting templates).
- The Radio Group field type has been renamed to Radios (and
radios in formatting templates).
- The Select field type has been renamed to Dropdown (and
dropdown in formatting templates).
- The field type handles of
cc_details, confirmation, file_drag_and_drop, multiple_select, opinion_scale, and rich_text have been renamed to credit-card, confirm, file-dnd, multiple-select, opinion-scale, and rich-text, respectively.
- The Dynamic Recipients field type has been replaced with the User Select feature, which provides the ability to assign a notification layer to any Dropdown, Checkboxes, Radios, or Multi-Select field types.
- The Email Marketing/Mailing List special field type has been replaced with the ability to assign the Email Marketing integration to any existing Checkbox or Hidden field. This will also allow you to keep a record in Freeform of whether the mailing list was subscribed to by the user.
- The reCAPTCHA v2 Checkbox and hCaptcha Checkbox special fields are now inserted into the form automatically (before the Submit button).
- The Submit and Save & Continue Later buttons are now automatically inserted at the end of each form page.
- The Opinion Scale field type markup for manual templating has been adjusted slightly.
- Email Notifications
- The form builder now has a Notifications tab dedicated to configuring all types of email notifications (except for template-level ones).
- Integrations
- The Element Connections feature is now referred simply to Element integrations.
- Element integrations are now set up in the Freeform settings area and then configured per form.
- Webhook integrations are now configured per form (but still set up initially in the Freeform settings area).
- Integrations with more than one type have been unified with expanded functionality:
- Salesforce Leads and Salesforce Opportunities are now in a single Salesforce integration.
- Pipedrive Leads and Pipedrive Deals are now in a single Pipedrive integration.
- Zoho Leads and Zoho Deals are now in a single Zoho integration.
- Integrations that map to more than one endpoint allow more flexibility when choosing which endpoints to map to.
- The Salesforce integration has been changed to OAuth validation (instead of username/password).
- The Pipedrive integration has been changed to OAuth validation.
- The dotmailer integration has been updated and renamed to Dotdigital.
- All MailingList/mailing_list, etc, references in the code and database have been renamed to EmailMarketing/email_marketing, etc.
- Settings
- The Formatting Templates, Email Templates and Success Templates settings pages have all been combined into a single Template Manager settings page.
- Reorganized and adjusted settings pages.
- The Limit Form Submission Rate setting has been renamed to Duplicate Check. Available options have been revised and renamed for clarity as well.
- Spam Protection
- The Freeform Honeypot and Javascript Test features have been decoupled, overhauled, and set up as integrations. They can now be enabled/disabled and configured per form. The Javascript Test is now a simpler approach that will streamline use with caching or headless implementations.
- The Javascript Enhancement feature has been renamed to Javascript Test.
- Captchas are now stored as integrations, can have multiple configured per site, and can be turned on/off and further configured at the form level inside the form builder, e.g. stricter settings, different behavior, etc.
- The reCAPTCHA v2 Checkbox and hCaptcha Checkbox special fields are now inserted into the form automatically (before the Submit button).
- Templating
- The
suppress parameter (for suppressing email notifications and integrations when editing submissions on the front end) has been renamed to disable and has had the dynamicRecipients, submitterNotifications, connections parameter names changed to userSelectNotifications, emailFieldNotifications, and elements, respectively. An additional conditionalNotifications parameter has been added to account for the new Conditional Notifications feature.
- All formatting templates have been updated and improved.
- The Bootstrap 5 Multipage All Fields formatting template has been transitioned to a "Basic" non-Bootstrap version, now called Multipage All Fields.
- Form settings and behaviors can now all be accessed in templates via
freeform.settings.settingName.
- The
option.checked property has been updated to an approach that compares option.value to field.value.
- The
disableRecaptcha parameter is now disableCaptcha.
- All references to
loading (text and/or spinner indicator displayed on the submit button) are now processing.
- All references to
spinner (spinner indicator displayed on submit button) are now processingSpinner, etc.
- The
limitSubmissions parameter has been renamed to duplicateCheck and the values have been renamed for clarity.
- The
submissionLimitReached property in the Form object has been renamed to duplicate.
- All references to
freeform-file-drag-and-drop for CSS overrides have been updated to freeform-file-dnd.
- Javascript
- The defaults for
errorClassBanner, errorClassList, errorClassField and successClassBanner plugin options for JS overrides have been adjusted to freeform-form-errors, freeform-errors, freeform-has-errors and freeform-form-success, respectively (ff- changed to freeform-).
- GraphQL
- The
FreeformFormInterface fields showSpinner, showLoadingText and loadingText have been renamed to showProcessingSpinner, showProcessingText and processingText respectively.
Deprecated
- The PHP Sessions and Database Table options for the Freeform Session Context setting are deprecated and are planned to be removed in Freeform 6. Encrypted Payload continues to be the assumed and recommended approach, but can still be overrided to PHP Sessions or Database Table in project config.
Removed
- Control Panel
- The Field Manager area (Freeform → Fields) has been removed, as fields are no longer globally shared unless they are saved as Favorites.
- The Dashboard page has been removed in favor of a redesigned Forms page.
- Exporting "shortcuts" from the Dashboard is no longer available with the removal of the Dashboard page, but many other exporting options are available.
- The What's New feature has been removed in favor of using Craft's Announcements feature.
- The Resources area inside the Freeform control panel has been removed.
- The Form Builder Tutorial and Install Demo Banner settings have been removed.
- The Stats widget has been removed as it isn't very relevant anymore.
- The Form Values widget has been removed.
- Settings
- The Access Fields and Manage Fields permissions have been removed as they are no longer applicable.
- The Display Order of Fields in the Form Builder setting has been removed as it is no longer applicable.
- The following Project Config items have been removed due to the improvements to Form Builder defaults:
defaultTemplates - use includeSampleTemplates: true under defaults: instead.
renderFormHtmlInCpViews - use previewHtml: true under defaults: instead.
twigInHtml - use twigInHtml: true under defaults: instead.
twigInHtmlIsolatedMode. - use twigIsolation: true under defaults: instead.
formattingTemplate - use value: basic-light/index.twig under defaults: → settings: → general: → formattingTemplate: instead.
ajaxByDefault - - use value: '1' under defaults: → settings: → processing: → ajax: instead.
- The
freeformHoneypot, freeformHoneypotEnhancement, customHoneypotName, customErrorMessage, recaptchaBehaviour, recaptchaEnabled, recaptchaErrorMessage, recaptchaKey, recaptchaSecret, recaptchaLazyLoad, recaptchaMinScore, recaptchaSize, recaptchaTheme and recaptchaType settings have been removed from Project Config, as Honeypot and Captchas are stored as integrations now.
- The Additional Optional Checks setting for the Update Warnings & Notices feature has been removed.
- The Freeform Session Context setting has been removed. Encrypted Payload continues to be the assumed and recommended approach, but can still be overrided to PHP Sessions or Database Table deprecated options in project config.
- The
freeform_lock database table has been removed as it is no longer used.
- Templating
- The Bootstrap 3, Bootstrap 4, Bootstrap 5 Multipage All Fields and Tailwind 1 formatting templates have been removed.
- The
overrideValues parameter for Form queries has been removed. Please use the value parameter in the new Template Overrides feature.
- The
option.checked property has been removed. Please use and compare option.value to field.value.
- The
disableRecaptcha template parameter has been removed. Please use disableCaptcha instead.
- The
limitFormSubmissions property has been removed from the form object. Please use form.settings.limitSubmissions instead.
- The
freeform/fields/create field creation console command has been removed as it is no longer applicable.
- The following attribute control parameters have been removed and replaced by accessing them via the new
attributes object: inputClass, submitClass, rowClass, columnClass, labelClass, errorClass, instructionsClass, class, id, name, method, and action.
- GraphQL
- The
extraPostUrl, extraPostTriggerPhrase, gtmId, and gtmEventName fields have been removed from FreeformFormInterface in GraphQL. Please use postForwarding and gtm, as well as the new FreeformPostForwardingInterface and FreeformGoogleTagManagerInterface interfaces instead.
- The
inputAttributes, labelAttributes, errorAttributes, and instructionAttributes fields have been removed from FreeformFormInterface in GraphQL. Please use the FreeformAttributesInterface instead.
- The
hash field has been removed from FreeformFieldInterface in GraphQL as it is no longer relevant.
- Stripe Payments
- The Stripe Payment feature has been removed and replaced by all-new support for the newer Stripe Payment Element.
";s:4:"date";s:19:"2024-01-22T00:00:00";}i:117;a:4:{s:7:"version";s:6:"4.1.25";s:8:"critical";b:0;s:5:"notes";s:119:"Fixed
- Fixed a bug where querying Rich Text field contents would error when using GraphQL.
";s:4:"date";s:19:"2025-03-19T00:00:00";}i:118;a:4:{s:7:"version";s:6:"4.1.24";s:8:"critical";b:0;s:5:"notes";s:206:"Added
- Verified support for Craft 4.14.x.
Changes
- Updated the plugin icon.
- Updated some internal dependencies to prevent security warnings.
";s:4:"date";s:19:"2025-01-24T00:00:00";}i:119;a:4:{s:7:"version";s:6:"4.1.23";s:8:"critical";b:0;s:5:"notes";s:220:"Added
- Verified support for Craft 4.13.x.
Changed
- Updated the
phpoffice/phpspreadsheet dependency to include ^2.0 and ^3.0.
";s:4:"date";s:19:"2024-11-19T00:00:00";}i:120;a:4:{s:7:"version";s:6:"4.1.22";s:8:"critical";b:0;s:5:"notes";s:462:"Added
- Verified support for Craft 4.12.x.
Fixed
- Fixed a bug where uploading assets to submissions in the control panel would incorrectly mark them as unfinalized assets to be deleted.
- Fixed a bug where an error could occur when creating new forms on some MySQL installs.
Security
- Updated
axios dependencies to address potential security vulnerabilities.
";s:4:"date";s:19:"2024-09-06T00:00:00";}i:121;a:4:{s:7:"version";s:6:"4.1.21";s:8:"critical";b:0;s:5:"notes";s:141:"Fixed
- Fixed a bug where the
layoutJson column change migration in 4.1.20 would fail on PostgreSQL.
";s:4:"date";s:19:"2024-08-14T00:00:00";}i:122;a:4:{s:7:"version";s:6:"4.1.20";s:8:"critical";b:0;s:5:"notes";s:545:"Changed
- Updated Diagnostics page to verify compatibility for Craft 4.10.x.
- Updated the Website field validation to allow longer domain extensions.
- Changed the
layoutJson column in the freeform_forms database table to longtext to handle larger forms.
Fixed
- Fixed a bug where the Bypass All Spam Checks for Logged in Users setting did not correctly bypass all spam checks for logged-in users when a form is cached.
";s:4:"date";s:19:"2024-07-30T00:00:00";}i:123;a:4:{s:7:"version";s:6:"4.1.19";s:8:"critical";b:0;s:5:"notes";s:349:"Changed
- Updated Diagnostics page to verify compatibility for PHP 8.2 and Craft 4.9.x.
- Removed the Resources subnav link.
Fixed
- Fixed a bug where en and em dash characters were not saving in submission data on Radio, Select, and Opinion Scale field types.
";s:4:"date";s:19:"2024-05-31T00:00:00";}i:124;a:4:{s:7:"version";s:6:"4.1.18";s:8:"critical";b:0;s:5:"notes";s:181:"Fixed
- Fixed a bug where setting
allowedGraphqlOrigins to false in general.php would cause form submissions to crash.
";s:4:"date";s:19:"2024-05-08T00:00:00";}i:125;a:4:{s:7:"version";s:6:"4.1.17";s:8:"critical";b:0;s:5:"notes";s:634:"Added
- Added Craft element search support for submissions. You may need to run
./craft freeform/submissions/resave --update-search-index once for this to work.
- Added
freeform/submissions/resave CLI command to resave all existing submissions.
Changed
- Updated GraphQL to include HTML and Rich Text field types.
Fixed
- Fixed a bug where setting a Calendar Event to be All Day in the Calendar Events integration was not working.
- Fixed a bug where submission saving in the console could fail.
";s:4:"date";s:19:"2024-04-29T00:00:00";}i:126;a:4:{s:7:"version";s:6:"4.1.16";s:8:"critical";b:0;s:5:"notes";s:209:"Changed
- Updated the CSRF input to send
nocache headers when rendering.
Fixed
- Fixed a bug where Freeform was opening unnecessary sessions.
";s:4:"date";s:19:"2024-04-04T00:00:00";}i:127;a:4:{s:7:"version";s:8:"4.1.15.1";s:8:"critical";b:0;s:5:"notes";s:132:"Fixed
- Fixed a bug where Automatic Spam Purge Craft queue jobs would fail when using a database prefix.
";s:4:"date";s:19:"2024-03-01T00:00:00";}i:128;a:4:{s:7:"version";s:6:"4.1.15";s:8:"critical";b:0;s:5:"notes";s:375:"Added
- Added support for Automatic Spam Purging in the Lite edition of Freeform.
Changed
- Refactored the Submission Purge functionality to use the Craft queue.
Fixed
- Fixed a bug where the Fill Form Values from the GET Query String setting was not being respected.
";s:4:"date";s:19:"2024-03-01T00:00:00";}i:129;a:4:{s:7:"version";s:6:"4.1.14";s:8:"critical";b:0;s:5:"notes";s:292:"Fixed
- Fixed a bug where Dynamic Recipients fields were not correctly selecting the option chosen when viewing submissions in the CP detail page.
- Fixed a bug where the Field Manager would force
camelCase without exceptions for field handles.
";s:4:"date";s:19:"2024-02-09T00:00:00";}i:130;a:4:{s:7:"version";s:6:"4.1.13";s:8:"critical";b:0;s:5:"notes";s:322:"Changed
- Updated all references to field names in the control panel and exported files to use the default field label as a fallback if the field label is blank in the form settings. To preserve legacy functionality, rendering forms on the front end will continue showing the field label blank.
";s:4:"date";s:19:"2023-11-23T00:00:00";}i:131;a:4:{s:7:"version";s:8:"4.1.12.1";s:8:"critical";b:0;s:5:"notes";s:160:"Fixed
- Fixed a bug where some Freeform widgets would error in the Craft dashboard due to a change in the previous version (4.1.12).
";s:4:"date";s:19:"2023-11-15T00:00:00";}i:132;a:4:{s:7:"version";s:6:"4.1.12";s:8:"critical";b:0;s:5:"notes";s:464:"Changed
- Updated GraphQL mutations to support multiple email marketing mailing list fields.
Fixed
- Fixed an issue where submission purge logic was not always working reliably.
- Fixed a bug where form heading Success and Error messages were not being escaped.
- Fixed a bug where removing a field from a form was not automatically removing it from any configured export profiles for that form.
";s:4:"date";s:19:"2023-11-09T00:00:00";}i:133;a:4:{s:7:"version";s:6:"4.1.11";s:8:"critical";b:0;s:5:"notes";s:270:"Changed
- Updated the GraphQL submission mutation to no longer require the custom header.
Fixed
- Fixed a bug where locales were not working correctly when using more than one Date & Time field in the same form.
";s:4:"date";s:19:"2023-10-24T00:00:00";}i:134;a:4:{s:7:"version";s:6:"4.1.10";s:8:"critical";b:0;s:5:"notes";s:260:"Changed
- Updated File Upload fields to be realigned with Craft's file kind/extensions defaults. Removed the custom Freeform MIME type checks.
- Updated existing feature announcement integrations to be visible to Admins only.
";s:4:"date";s:19:"2023-10-05T00:00:00";}i:135;a:4:{s:7:"version";s:5:"4.1.9";s:8:"critical";b:0;s:5:"notes";s:308:"Changed
- Updated the Salesforce integration to allow mapping to encrypted fields in Salesforce.
- Updated the Craft compatibility check in the Diagnostics page to include Craft 4.5.x.
Fixed
- Fixed a bug where hCaptcha was not working correctly.
";s:4:"date";s:19:"2023-09-29T00:00:00";}i:136;a:4:{s:7:"version";s:5:"4.1.8";s:8:"critical";b:0;s:5:"notes";s:204:"Changed
- Updated
stripe/stripe-php dependency to align with Craft Commerce.
- Updated the Stripe Payments integration to support mapping Phone field types.
";s:4:"date";s:19:"2023-09-15T00:00:00";}i:137;a:4:{s:7:"version";s:5:"4.1.7";s:8:"critical";b:0;s:5:"notes";s:506:"Added
- Added support for
.stl files in the Freeform file helper validation.
Changed
- Updated the Pipedrive Leads integration to use the new Notes endpoint.
Fixed
- Fixed a bug where not all Stripe validation errors were accounted for and could cause the form to break.
- Fixed a bug where CRM integration errors were sometimes too long to be logged in Freeform. Updated the column size to resolve this.
";s:4:"date";s:19:"2023-09-08T00:00:00";}i:138;a:4:{s:7:"version";s:5:"4.1.6";s:8:"critical";b:0;s:5:"notes";s:392:"Added
- Exposed all remaining form settings/properties for GraphQL queries, including
successMessage and errorMessage.
Changed
- Refactored the Freeform lock service to use Yii's cache to prevent performance issues.
Fixed
- Fixed issues with reCAPTCHA when querying forms via GraphQL.
";s:4:"date";s:19:"2023-07-20T00:00:00";}i:139;a:4:{s:7:"version";s:5:"4.1.5";s:8:"critical";b:0;s:5:"notes";s:92:"Added
- Added conditional rule logic for form fields in GraphQL.
";s:4:"date";s:19:"2023-07-11T00:00:00";}}s:13:"phpConstraint";s:13:"^8.0.2|^8.2.0";s:11:"packageName";s:23:"solspace/craft-freeform";}s:14:"image-optimize";a:3:{s:6:"status";s:8:"eligible";s:8:"releases";a:0:{}s:11:"packageName";s:31:"nystudio107/craft-imageoptimize";}s:8:"redactor";a:8:{s:6:"status";s:8:"eligible";s:8:"releases";a:1:{i:0;a:4:{s:7:"version";s:5:"3.1.0";s:8:"critical";b:0;s:5:"notes";s:226:"- Redactor fields now prevent element edit pages from automatically reloading when in fullscreen mode (requires Craft CMS 4.10+). (craftcms/cms#14814)
";s:4:"date";s:19:"2024-06-12T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:17:"craftcms/redactor";s:9:"abandoned";b:1;s:15:"replacementName";s:8:"CKEditor";s:17:"replacementHandle";s:8:"ckeditor";s:14:"replacementUrl";s:37:"https://plugins.craftcms.com/ckeditor";}s:8:"seomatic";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:34:{i:0;a:4:{s:7:"version";s:6:"4.1.11";s:8:"critical";b:0;s:5:"notes";s:235:"Changed
";s:4:"date";s:19:"2025-01-23T00:00:00";}i:1;a:4:{s:7:"version";s:6:"4.1.10";s:8:"critical";b:0;s:5:"notes";s:882:"Added
- Added a
ModifySitemapQueryEvent to allow the modification of the element query used to generate a sitemap (#1553)
Changed
- Use the
site query parameter used globally by Craft in the CP for SEOmatic settings (#1527)
Fixed
- Fixed an issue where the L2 cache was not properly invalidated for containers after a preview request, which could result in stale metadata
- Handle the case where SEOmatic settings for a specific
typeId ended up in its own metabundle in addition to the default metabundle for that section (#1557)
";s:4:"date";s:19:"2025-01-16T00:00:00";}i:2;a:4:{s:7:"version";s:5:"4.1.9";s:8:"critical";b:0;s:5:"notes";s:444:"Changed
- Encode the URI in the
canonical link header (#1519)
- Ensure that URLs that are a site index URL and have a path prefix strip trailing slashes as appropriate (#717) (#5675)
";s:4:"date";s:19:"2025-01-08T00:00:00";}i:3;a:4:{s:7:"version";s:5:"4.1.8";s:8:"critical";b:0;s:5:"notes";s:786:"Changed
- If an incoming URL has a trailing slash, preserve it for things like the Canonical URL (#1547)
- Deprecate & remove from the UI the Invalidate Sitemap Caches Automatically aka
regenerateSitemapsAutomatically setting, since it is no longer relevant with the paginated sitemaps
- Deprecate the CLI command
seomatic/sitemap/generate, since it no longer needed with the paginated sitemaps
Fixed
- Fixed an issue where the News Publication Name isn't displayed in Content SEO → Sitemap settings (#1551)
";s:4:"date";s:19:"2024-12-21T00:00:00";}i:4;a:4:{s:7:"version";s:5:"4.1.7";s:8:"critical";b:0;s:5:"notes";s:208:"Fixed
- Fixed an issue where newly created sections would not have Content SEO settings show up for (#1544)
";s:4:"date";s:19:"2024-11-20T00:00:00";}i:5;a:4:{s:7:"version";s:5:"4.1.6";s:8:"critical";b:0;s:5:"notes";s:2008:"Added
- Added the Site Alternate Name property to Site Settings, used in the JSON-LD for the homepage, if the MainEntityOfPage is WebPage or WebSite (#1482)
- Added Letterbox crop mode for SEO image transforms (#1337)
Changed
- No longer do a potentially expensive query on page load for sections that have a massive number of entries (#1526)
- If the current route is the homepage, set the
name and alternateName JSON-LD for the mainEntityOfPage to seomatic.site.siteName and seomatic.site.identity.genericAlternateName respectively, rather than the seomatic.meta.seoTitle (#1482)
- The SEO preview display in Content SEO will pull an entry from the specific Entry Type rather than just the first entry. Note: If you have a custom
SeoElement PHP class, it will require a very minor method signature change to continue working (#1535)
- Text and Asset pull sources in Content SEO will now display only fields from the specific Entry Type rather than all fields for that Section. Note: If you have a custom
SeoElement PHP class, it will require a very minor method signature change to continue working (#1535)
Fixed
- Fixed an issue where an exception would be thrown if the Campaign plugin was installed first, and then you newly installed SEOmatic (#1530)
";s:4:"date";s:19:"2024-11-12T00:00:00";}i:6;a:4:{s:7:"version";s:5:"4.1.5";s:8:"critical";b:0;s:5:"notes";s:339:"Fixed
- Fixed
togImageField field typo in the FeedMe integration (#1520)
- Fixed a field mapping issue for fields in the FeedMe integration (#1520)
";s:4:"date";s:19:"2024-10-21T00:00:00";}i:7;a:4:{s:7:"version";s:5:"4.1.4";s:8:"critical";b:0;s:5:"notes";s:867:"Fixed
- Normalize the incoming
url and path so that mergUrlWithPath() handles edge-cases properly (#1512)
- Fixed an issue where the
ads.txt wasn't renamed properly when requested via GraphQL (#1513)
- Fixed an exception caused by the wrong argument passed to
Asset::getAssetById() in edge cases (#1515)
- Removed vestigial sitemap rendering code in
SitemapTemplate that had a code path that had a code path that could return a 503 (#1437)
";s:4:"date";s:19:"2024-09-29T00:00:00";}i:8;a:4:{s:7:"version";s:5:"4.1.3";s:8:"critical";b:0;s:5:"notes";s:656:"Changed
- Make the Content SEO listings better at eliminating duplicates by pruning sections that no longer exist (#1499)
- Fixed an issue where a section with a
typeId of 0 wouldn't validate, and thus the changes to the Content SEO settings would not validate & save (#1510)
- Fixed an issue where the homepage metacontainer cache did not get properly cleared (#1514)
";s:4:"date";s:19:"2024-09-10T00:00:00";}i:9;a:4:{s:7:"version";s:5:"4.1.2";s:8:"critical";b:0;s:5:"notes";s:669:"Changed
- Made the SEO preview sidebar UI more consistent with Craft (#1497)
Fixed
- Fixed an issue where GraphQL or Meta Container endpoint requests that had a token set were not being caches separately
- Also add any
token to the meta container cache key for regular requests
- Fixed an issue where using "Single Page" for the Sitemap Page Size setting would cause an exception to be thrown when generating the sitemap (#1498)
";s:4:"date";s:19:"2024-08-15T00:00:00";}i:10;a:4:{s:7:"version";s:5:"4.1.1";s:8:"critical";b:0;s:5:"notes";s:712:"Changed
- Renamed the Regenerate Sitemaps Automatically setting to Invalidate Sitemap Caches Automatically for clarity
Fixed
- Fixed an issue where getting the sitemaps via GraphQL and meta container endpoint only retrieved the first page since the switch to paginated sitemaps (#1492)
- Fixed an issue where saving an entry could be slow, because SEOmatic was pointlessly trying to regenerate the sitemap cache (which is no longer a thing with paginated sitemaps) (#1494)
";s:4:"date";s:19:"2024-07-19T00:00:00";}i:11;a:4:{s:7:"version";s:5:"4.1.0";s:8:"critical";b:0;s:5:"notes";s:179:"Added
- Remove queue generated sitemaps, switch to paginated sitemaps to allow them to be rendered at web response time, but still be managable in size
";s:4:"date";s:19:"2024-07-12T00:00:00";}i:12;a:4:{s:7:"version";s:6:"4.0.50";s:8:"critical";b:0;s:5:"notes";s:956:"Added
- Added a setting in Plugin Settings -> Tags to specify which site should be used as the
x-default for hreflang tags (1162)
Changed
- Moved where paginated
hreflang tags are added for paginated pages, so that they can be overriden via Twig templating code. They are now added inside of seomatic.helper.paginate()
Fixed
- Fixed an issue that could cause an exception to be thrown if the selected asset for the Creator or Identity brand image was deleted (#1472)
- Fixed an issue where the SEO preview for SEO Settings fields and the sidebar wouldn't be displayed correctly for drafts (#1449)
";s:4:"date";s:19:"2024-05-13T00:00:00";}i:13;a:4:{s:7:"version";s:6:"4.0.49";s:8:"critical";b:0;s:5:"notes";s:114:"Fixed
- Fixed an issue where the down and up arrows were reversed for sorting purposes
";s:4:"date";s:19:"2024-05-20T00:00:00";}i:14;a:4:{s:7:"version";s:6:"4.0.48";s:8:"critical";b:0;s:5:"notes";s:102:"Added
- Ensure that
getTransformByHandle() is passed a string
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:15;a:4:{s:7:"version";s:6:"4.0.47";s:8:"critical";b:0;s:5:"notes";s:127:"Added
- Fix regression of
getAssetTransforms() -> getImageTransforms()
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:16;a:4:{s:7:"version";s:6:"4.0.46";s:8:"critical";b:0;s:5:"notes";s:1035:"Added
- Added the ability to choose the Asset Transform to apply to images in the sitemap (#1407)
Fixed
- Fixed a regression in
extractTextFromField that could cause it to not render properly by being more explicit, looking only for arrays or Collections in isArrayLike() (#1441)
- Fixed an issue where the
typeId coming in from editing the Content SEO settings was a string, when it needed to be cast to an integer (#1442) (#1368)
- Fixed an issue where the Copy Settings From menu didn't work correctly for multiple entry types (#1368)
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:17;a:4:{s:7:"version";s:6:"4.0.45";s:8:"critical";b:0;s:5:"notes";s:311:"Fixed
- Addressed an issue where if SEOmatic was set to extract text or keywords from a relation field that was eager loaded, it would extract the serialized value of the field instead of the actual text (#1415)
";s:4:"date";s:19:"2024-03-22T00:00:00";}i:18;a:4:{s:7:"version";s:6:"4.0.44";s:8:"critical";b:0;s:5:"notes";s:227:"Fixed
- Fixed a regression that would throw an exception when attempting to save the
security.txt template (#1435)
";s:4:"date";s:19:"2024-03-14T00:00:00";}i:19;a:4:{s:7:"version";s:6:"4.0.43";s:8:"critical";b:0;s:5:"notes";s:1495:"Changed
- Add
PerplexityBot to the default disallow list in robots.txt, as there's no benefit to allowing it to index your site
- Allow locales to be in the format
language[_territory] such that the territory is optional
- Ensure that
security.txt templates always end with a new line (#1429)
Fixed
- Fixed an issue where a trailing slash would be added to a paginated URL that uses URL parameters and
addTrailingSlashesToUrls was true in the General config (#1401)
- Fixed an issue where clicking the SEOmatic CP nav item would result in a 403 exception if the current user didn't have permission to view the SEOmatic dashboard (#1410)
- Fixed an issue where an exception could be thrown when generating a sitemap with assets, and the field mapping was empty (#1425)
- Fixed an issue where the
@id in the mainEntityOfPage JSON-LD wouldn't be correct if the identity and creator were not the same (#1431)
";s:4:"date";s:19:"2024-03-08T00:00:00";}i:20;a:4:{s:7:"version";s:6:"4.0.42";s:8:"critical";b:0;s:5:"notes";s:105:"Fixed
- Fixed an issue where an exception could be thrown due to a bad commit
";s:4:"date";s:19:"2024-02-20T00:00:00";}i:21;a:4:{s:7:"version";s:6:"4.0.41";s:8:"critical";b:0;s:5:"notes";s:1170:"Added
- Added the ability to generate a News Sitemap for any Section
- Added an SEOmatic Debug Toolbar Panel setting to Plugin Settings → Advanced that lets you control whether the SEOmatic Debug Toolbar panel is added to the Yii2 Debug Toolbar (if it is enabled)
- Updated to schema.org v26.0, fixes (#1420)
Changed
- Completely revamped the documentation to hopefully make it more accessible & useful (thanks to Matt Stein @ Adjacent)
- PHPstan code cleanup
Fixed
- Fixed an issue that would cause assets in Neo blocks to not appear as images in the sitemap
- Fixed an issue that would cause assets in SuperTable blocks to not appear as images in the sitemap
- Fixed an issue with missing classes in
Sitemap helper
- Fixed an issue that would cause text in Neo blocks to not get extracted
";s:4:"date";s:19:"2024-02-20T00:00:00";}i:22;a:4:{s:7:"version";s:6:"4.0.40";s:8:"critical";b:0;s:5:"notes";s:301:"Fixed
- Fixed a regression where the
robots tag would be set to none for CP requests, which is incorrect, because GraphQL and meta container endpoints are CP requests (#1414)
";s:4:"date";s:19:"2024-02-13T00:00:00";}i:23;a:4:{s:7:"version";s:6:"4.0.39";s:8:"critical";b:0;s:5:"notes";s:1278:"Added
- Add
phpstan and ecs code linting
- Add
code-analysis.yaml GitHub action
Changed
- PHPstan code cleanup
- ECS code cleanup
Fixed
- Fixed an issue where
DynamicMeta didn't properly take into account that robots can be a comma delimited list of values now (#1399)
- Fixed an issue where a
robots setting of none or noindex in the Content SEO settings make it impossible to override the robots setting in an SEO Settings field (#1399)
- Added the unused
static to the Tailwind CSS blocklist to avoid a name collision with a Craft CSS class (#1412)
- Added
webp and gif as allowed social media image formats now that the social media sites accept them, and guard against no transform existing (#1411)
";s:4:"date";s:19:"2024-02-09T00:00:00";}i:24;a:4:{s:7:"version";s:6:"4.0.38";s:8:"critical";b:0;s:5:"notes";s:416:"Changed
- Updated docs to use node 20 & a new sitemap plugin
Fixed
- Fixed overly large debug toolbar pane response size due to repeating inline SVG icons
- Ensure that CP requests and Tokenized requests have
robots tag & header set to none (#1394)
";s:4:"date";s:19:"2024-01-22T00:00:00";}i:25;a:4:{s:7:"version";s:6:"4.0.37";s:8:"critical";b:0;s:5:"notes";s:1518:"Added
- Added a
EVENT_INCLUDE_SITEMAP_ENTRY event to allow plugins or modules to determine whether entries should be added to the sitemap or not (#1393)
- Allow the
config/seomatic.php siteUrlOverride to be set to either a string, or an array of site URLs, indexed by the site handle for overriding complex headless multi-site Craft setups (#1376)
Changed
- Switch over to listening for element changes via
Element::EVENT_AFTER_PROPAGATE events instead of Elements::EVENT_AFTER_SAVE_ELEMENT and have it check the Element::$resaving attribute instead of Model::$scenario = SCENARIO_ESSENTIALS to determine whether sitemap queue jobs should be created (#1388)
- If the Site URL Override feature is used, pass along the parameters, too, when building the URL (#950)
- Removed the automatic Google Sitemap ping endpoint, since Google has deprecated it and will be removing it entirely soon (#1392)
";s:4:"date";s:19:"2023-12-12T00:00:00";}i:26;a:4:{s:7:"version";s:6:"4.0.36";s:8:"critical";b:0;s:5:"notes";s:1060:"Added
- Switch over to Vite
^5.0.0 & Node ^20.0.0 for the buildchain
- The sitemaps now check
enabledForSite to determine whether elements should be included in the sitemap (#1388)
Changed
- Remove vestigial
queue option from the console command
- Rebrand
Twitter to X (Twitter) in all user-displayed text
- Updated the X (Twitter) large image previews to reflect the new style in X (Twitter)
Fixed
- Fixed an issue where the Truncate Description Tags toggle did not work as expected (#1386)
- Fixed an issue where the frontend SEO preview URLs could be wrong if you're using the Site URL Override feature (#950)
";s:4:"date";s:19:"2023-11-28T00:00:00";}i:27;a:4:{s:7:"version";s:6:"4.0.35";s:8:"critical";b:0;s:5:"notes";s:294:"Fixed
- Only try the
getMatchedElement() optimization when it's not a console request, and surround it with try/catch to catch any potentially thrown exceptions (#1384)
";s:4:"date";s:19:"2023-11-16T00:00:00";}i:28;a:4:{s:7:"version";s:6:"4.0.34";s:8:"critical";b:0;s:5:"notes";s:772:"Changed
- Try to use Craft's matched element from
UrlManager in MetaContainers if looking for an enabled element, the current siteId is being used and the current uri matches what was in the request (#1381)
Fixed
- Fixed an issue where the
CanonicalLink would render if the Robots tag contained multiple values (#1378)
- Fixed incorrect references to
SeoEntry in the Campaign SeoElement (#1382)
";s:4:"date";s:19:"2023-11-15T00:00:00";}i:29;a:4:{s:7:"version";s:6:"4.0.33";s:8:"critical";b:0;s:5:"notes";s:124:"Added
- Added an SEOmatic debug panel to the Yii2 Debug Toolbar to aid in debugging SEO metadata
";s:4:"date";s:19:"2023-10-22T00:00:00";}i:30;a:4:{s:7:"version";s:6:"4.0.32";s:8:"critical";b:0;s:5:"notes";s:1580:"Added
- Added support for the Shopify plugin, so imported Shopify Products are automatically recognized by SEOmatic, and get properly mapped metadata
- Add integration with the Campaign plugin, so Campaign landing pages are automatically recognized by SEOmatic, and get properly mapped metadata
- Disallow Google Bard and Vertex AI bots in
robots.txt by default, as there's no benefit to allowing it to index your site. ref: https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers#common-crawlers
Changed
- Moved the
security.txt location to .well-known/security.txt from the server root, and make the bundle updating mechanism preserve user settings in the process (#1353)
- Hide the SEO Image / OG Image / Twitter Image mode selectors if transforming is disabled
- Set the
twitterImageTransform and ogImageTransform to false by default, since the default is also sameAsSeo and this will result in better default expected behavior (#1364)
Fixed
- Fixed a syntax error in the digitalproductmeta JsonLD Container (#1361)
";s:4:"date";s:19:"2023-10-09T00:00:00";}i:31;a:4:{s:7:"version";s:6:"4.0.31";s:8:"critical";b:0;s:5:"notes";s:1194:"Added
Changed
- The Plugin Settings -> Tags -> Add
hreflang Tags setting now also controls whether hreflang URLs are added to sitemaps (#1340)
Fixed
- Fixed an issue that caused you to be unable to dynamically include/exclude scripts that have body JavaScript via Twig, by unifying the rendering method (#1334)
- Fixed an issue that caused the default Content SEO Site Name Position to not default to Same As Global Site Name Position (#1321) (#1333)
";s:4:"date";s:19:"2023-09-12T00:00:00";}i:32;a:4:{s:7:"version";s:6:"4.0.30";s:8:"critical";b:0;s:5:"notes";s:332:"Fixed
- Fixed a regression caused by (#1334) which caused Google Tag Manager noscript template is output with
<script> tags around it (#1346)
";s:4:"date";s:19:"2023-07-19T00:00:00";}i:33;a:4:{s:7:"version";s:6:"4.0.29";s:8:"critical";b:0;s:5:"notes";s:965:"Changed
- Use any custom field labels for "pull fields" in SEOmatic settings (#1335)
Fixed
- Fixed an issue where the
MetaJsonLd container was not properly cached, which caused a performance issue as well as storing more data in the cache than necessary
- Fixed a regression that caused the SEO Preview to not appear in the sidebar for Commerce 4, due to Commerce 4 not supporting the
EVENT_DEFINE_SIDEBAR_HTML event (despite there being code in Commerce 4 that appears to support it) (#1336)
- Fixed an issue that caused you to be unable to dynamically include/exclude scripts that have body JavaScript via Twig, by unifying the rendering method (#1334)
";s:4:"date";s:19:"2023-07-18T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:26:"nystudio107/craft-seomatic";}s:5:"sprig";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:13:{i:0;a:4:{s:7:"version";s:6:"2.13.1";s:8:"critical";b:0;s:5:"notes";s:412:"Changed
- Updated htmx to version 2.0.3 (changelog).
- The fetch function is now called inside an event listener when calling
sprig.triggerRefreshOnLoad(), making it more robust.
- Reverted some variable method name changes to improve autocompletion in PhpStorm.
";s:4:"date";s:19:"2024-10-23T00:00:00";}i:1;a:4:{s:7:"version";s:6:"2.13.0";s:8:"critical";b:0;s:5:"notes";s:943:"Added
- Added the ability to assign an ID to a component by passing a string as the third argument to the
sprig() function.
Changed
Fixed
- Fixed the positioning of the JavaScript output by the
sprig.triggerRefreshOnLoad function.
Deprecated
- Deprecated
sprig.getIsBoosted, sprig.getIsError, sprig.getIsHistoryRestoreRequest, sprig.getIsInclude, sprig.getIsRequest, sprig.getIsSuccess. Use sprig.isBoosted, sprig.isError, sprig.isHistoryRestoreRequest, sprig.isInclude, sprig.isRequest, sprig.isSuccess instead.
";s:4:"date";s:19:"2024-08-29T00:00:00";}i:2;a:4:{s:7:"version";s:6:"2.12.0";s:8:"critical";b:0;s:5:"notes";s:376:"Changed
- The
sprig.registerJs(js) function now executes the registered JavaScript after htmx settles, and is now the recommended way of outputting JavaScript in Sprig components.
- Components no longer render markup added via
{% html %}, {% css %} and {% js %} tags during Sprig requests.
";s:4:"date";s:19:"2024-08-20T00:00:00";}i:3;a:4:{s:7:"version";s:6:"2.11.0";s:8:"critical";b:0;s:5:"notes";s:519:"Added
- Added the component configurations to a
Sprig variable in the browser console when devMode is enabled.
- Added the ability to pass any value into
s-method, including the put, patch and delete verbs.
- Added the
sprig.registerJs(js) function.
Changed
- The
sprig.triggerRefresh(selector, variables) function now prevents cyclical requests.
";s:4:"date";s:19:"2024-08-08T00:00:00";}i:4;a:4:{s:7:"version";s:6:"2.10.1";s:8:"critical";b:0;s:5:"notes";s:166:"Changed
- The
sprig.swapOob() function now accepts a string in addition to a template to be rendered, in the second argument.
";s:4:"date";s:19:"2024-08-06T00:00:00";}i:5;a:4:{s:7:"version";s:6:"2.10.0";s:8:"critical";b:0;s:5:"notes";s:633:"Added
- Added the
sprig.swapOob(selector, template, variables) function that swaps a template out-of-band.
- Added the
sprig.triggerRefresh(selector, variables) function that triggers a refresh on a Sprig component.
Changed
- Components now render markup added via
{% html %}, {% css %} and {% js %} tags.
- The
sprig.triggerRefreshOnLoad(selector) function now appends output to the end of the body and should be called using {% do sprig.triggerRefreshOnLoad(selector) %}.
";s:4:"date";s:19:"2024-08-01T00:00:00";}i:6;a:4:{s:7:"version";s:5:"2.9.0";s:8:"critical";b:0;s:5:"notes";s:883:"This update introduces htmx 2. Read about the changes →
Added
- Added the s-inherit attribute that allows you to control and enable automatic attribute inheritance for child nodes, if it has been disabled by default.
Changed
- Updated htmx to version 2.0.1 (2.0.0 release notes).
- The htmx file is now output even when Sprig components are used inside of
{% cache %} tags (#329).
Removed
- Removed the
s-sse and s-ws attributes.
";s:4:"date";s:19:"2024-07-15T00:00:00";}i:7;a:4:{s:7:"version";s:5:"2.8.1";s:8:"critical";b:0;s:5:"notes";s:214:"Fixed
- Fixed a bug in which some
sprig variables were incorrectly persisting across requests (#363).
";s:4:"date";s:19:"2024-04-21T00:00:00";}i:8;a:4:{s:7:"version";s:5:"2.8.0";s:8:"critical";b:0;s:5:"notes";s:595:"Added
- Added the
sprig.isSuccess variable.
- Added the
sprig.isError variable.
- Added the
sprig.message variable.
- Added the
sprig.modelId variable.
Deprecated
- Deprecated the
success variable. Use sprig.isSuccess or sprig.isError instead.
- Deprecated the
flashes variable. Use sprig.message instead.
- Deprecated the
id variable. Use sprig.modelId instead.
";s:4:"date";s:19:"2024-03-26T00:00:00";}i:9;a:4:{s:7:"version";s:5:"2.7.3";s:8:"critical";b:0;s:5:"notes";s:506:"Added
- Added the ability to pass script tag attributes via the
sprig.registerScript() and sprig.setRegisterScript() functions (#338).
- Added the
ComponentsService::setConfig() method.
Changed
";s:4:"date";s:19:"2023-12-12T00:00:00";}i:10;a:4:{s:7:"version";s:5:"2.7.2";s:8:"critical";b:0;s:5:"notes";s:382:"Added
Changed
- Renamed the
sprig.setAddScript() function to sprig.setRegisterScript().
";s:4:"date";s:19:"2023-09-29T00:00:00";}i:11;a:4:{s:7:"version";s:5:"2.7.1";s:8:"critical";b:0;s:5:"notes";s:83:"Fixed
- Fixed a deprecated tag in the Sprig playground.
";s:4:"date";s:19:"2023-09-27T00:00:00";}i:12;a:4:{s:7:"version";s:5:"2.7.0";s:8:"critical";b:0;s:5:"notes";s:2505:"The htmx script is now automatically injected into the end of the page whenever a Sprig component is created. If you have any JavaScript code in your layouts that rely on htmx being loaded, you will need to wrap them in {% js %} tags as per the docs.
Added
- Added the Sprig component generator that scaffolds PHP components via a console command (
php craft make sprig-component --path sprig/components).
- Added the s-cache attribute that allows you to specify if and for how long a request should be cached locally in the browser.
- Added the s-on:* attribute that allows you to respond to events directly on an element.
- Added the s-disabled-elt attribute that allows you to specify elements that will have the disabled attribute added to them for the duration of the request.
- Added the
sprig.htmxVersion function.
- Added the
sprig.setAddScript() function.
- Added friendly invalid variable exceptions that are shown when the Canary plugin is installed.
Changed
- The htmx script is now automatically injected into the end of the page whenever a Sprig component is created, meaning that the
sprig.script function is no longer required and can be safely removed.
- Updated htmx to version 1.9.6 (changelog).
- Simplified and improved invalid variable error messages.
- Invalid variable error messages are now only shown when
devMode is turned on.
Fixed
- Fixed the response status code that is sent when required request parameters are not supplied (#325).
- Fixed a potential security issue.
Deprecated
- Deprecated the
sprig.script function. It is no longer required and can be safely removed.
- Deprecated the
s-on attribute. Use the s-on:* attribute instead.
";s:4:"date";s:19:"2023-09-26T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:27:"putyourlightson/craft-sprig";}s:11:"super-table";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:6:{i:0;a:4:{s:7:"version";s:6:"3.0.15";s:8:"critical";b:0;s:5:"notes";s:85:"Fixed
- Fix an error when duplicating Super Table blocks.
";s:4:"date";s:19:"2024-09-13T00:00:00";}i:1;a:4:{s:7:"version";s:6:"3.0.14";s:8:"critical";b:0;s:5:"notes";s:157:"Changed
- Update English translations.
- Update
validateBlocks() to deal with eager-loaded and cached blocks.
";s:4:"date";s:19:"2024-04-29T00:00:00";}i:2;a:4:{s:7:"version";s:6:"3.0.13";s:8:"critical";b:0;s:5:"notes";s:334:"Added
- Add prune orphaned blocks utils command.
- Add
beforeElementDeleteForSite to block element.
- Add
--field, --owner-id, and --type resave options.
Fixed
- Fix an error when running content table migrations.
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:3;a:4:{s:7:"version";s:6:"3.0.12";s:8:"critical";b:0;s:5:"notes";s:66:"Fixed
- Fix an error rendering fields.
";s:4:"date";s:19:"2023-10-05T00:00:00";}i:4;a:4:{s:7:"version";s:6:"3.0.11";s:8:"critical";b:0;s:5:"notes";s:117:"Fixed
- Fix an error with static fields not having their blocks created for new elements.
";s:4:"date";s:19:"2023-10-05T00:00:00";}i:5;a:4:{s:7:"version";s:6:"3.0.10";s:8:"critical";b:0;s:5:"notes";s:1083:"Added
- Add
uid handling for blocks when converting from serialized blocks.
- Add content table index fixer console command.
- Add events to input JS.
Fixed
- Fix the height of collapsed matrix-style rows. (thanks @evanwarner).
- Fix collapsed block preview text to handle Dropdown fields.
- Fix a bug where blocks that were initially created for a newly-added site within a draft could be lost when applying the draft.
- Fix minor styling issue with field settings.
- Fix a bug where Super Table fields with custom propagation methods were being marked as translatable if the rendered translation key was blank.
- Fix a bug where it wasn’t possible to update a Super Table block on a revision without a new block ID being assigned.
- Fix an error that could occur if
null was passed to SuperTableBlockElement::setOwner().
- Fix field not using
setInitialDeltaValue() for static fields. (thanks @internetztube).
";s:4:"date";s:19:"2023-10-03T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:17:"verbb/super-table";}s:4:"vizy";a:4:{s:6:"status";s:8:"eligible";s:8:"releases";a:19:{i:0;a:4:{s:7:"version";s:6:"2.1.25";s:8:"critical";b:0;s:5:"notes";s:136:"Added
- Add
Node::EVENT_MODIFY_RENDERED_NODE event to modify the fully rendered HTML of a node.
";s:4:"date";s:19:"2025-02-02T00:00:00";}i:1;a:4:{s:7:"version";s:6:"2.1.24";s:8:"critical";b:0;s:5:"notes";s:163:"Fixed
- Fix
listenForChanges check to include certain elements (element fields) which would prevent click event detection.
";s:4:"date";s:19:"2024-11-14T00:00:00";}i:2;a:4:{s:7:"version";s:6:"2.1.23";s:8:"critical";b:0;s:5:"notes";s:339:"Added
- Add support for modifying nested nodes through Twig (for Table nodes).
Fixed
- Fix an error when inserting links on non-multi site installs.
- Fix an error when trying to deserialize HTML content.
- Fix Vizy Block group name being incorrectly saved as uppercase.
";s:4:"date";s:19:"2024-10-09T00:00:00";}i:3;a:4:{s:7:"version";s:6:"2.1.22";s:8:"critical";b:0;s:5:"notes";s:170:"Fixed
- Fix an issue with multiple Vizy editors with different formatting or table configs.
- Fix buttons styles not working correctly.
";s:4:"date";s:19:"2024-08-14T00:00:00";}i:4;a:4:{s:7:"version";s:6:"2.1.21";s:8:"critical";b:0;s:5:"notes";s:184:"Fixed
- Fix some click events in Vizy Block fields not triggering change event listener.
- Fix an error when initializing Vizy fields multiple times.
";s:4:"date";s:19:"2024-08-11T00:00:00";}i:5;a:4:{s:7:"version";s:6:"2.1.20";s:8:"critical";b:0;s:5:"notes";s:592:"Added
- Add the ability to set links to current site, or specific site for element-based links.
Changed
- Change change-detection mechanism incorrectly flagging changed JSON due to discrepancies with PHP vs JS JSON encoding.
Fixed
- Fix an error when creating search indexes.
- Fix default site for Link nodes.
- Fix Image node URLs not being dynamics when non-transforms are selected.
- Fix default transform value for Image nodes.
- Fix change detection mechanism for Vizy Blocks.
";s:4:"date";s:19:"2024-07-21T00:00:00";}i:6;a:4:{s:7:"version";s:6:"2.1.19";s:8:"critical";b:0;s:5:"notes";s:367:"Changed
- Update Tiptap dependancies.
Fixed
- Fix element owner checks.
- Fix content changes being detected for nested fields when there are none. In addition, Vizy fields only listen for changes to their content when interacted with.
- Fix an error when re-ordering Vizy blocks with Asset fields.
";s:4:"date";s:19:"2024-04-29T00:00:00";}i:7;a:4:{s:7:"version";s:6:"2.1.18";s:8:"critical";b:0;s:5:"notes";s:313:"Added
- Add the
Craft.Vizy.Config.registerTemplates() JS function for custom extensions to render their own template in a Vizy field.
Fixed
- Fix an error for Image nodes, where the
id attribute didn’t reflect an Asset Element ID.
";s:4:"date";s:19:"2024-04-10T00:00:00";}i:8;a:4:{s:7:"version";s:6:"2.1.17";s:8:"critical";b:0;s:5:"notes";s:144:"Fixed
- Fix an error with content not saving when two Vizy fields with Block-only and Rich Text configs are present.
";s:4:"date";s:19:"2024-03-18T00:00:00";}i:9;a:4:{s:7:"version";s:6:"2.1.16";s:8:"critical";b:0;s:5:"notes";s:667:"Changed
- Update Vue.js version for some compatibility fixes.
- Update all Tiptap dependencies for the latest and greatest features/fixes.
Fixed
- Fix CKEditor issue when moving Vizy Blocks.
- Fix an error when importing Vizy content with Feed Me, when field content is empty.
- Fix YouTube live URLs for media embed function.
- Fix Selectize fields not working properly when re-ordering Vizy blocks when contained in a Matrix/Super Table field.
- Fix spacing of non-full-width fields in Vizy blocks.
- Fix text overflowing issue in editor when no newlines were present.
";s:4:"date";s:19:"2024-02-29T00:00:00";}i:10;a:4:{s:7:"version";s:6:"2.1.15";s:8:"critical";b:0;s:5:"notes";s:395:"Fixed
- Fix inline JS scripts for some fields throwing fatal Vizy Block errors.
- Fix tooltip for Image nodes not appearing when clicking on, in some instances.
- Fix extra CSS and JS generated by block types not being extracted out for new blocks.
- Fix an error when clicking on a link to edit its setting, when wrapped in other nodes or marks.
";s:4:"date";s:19:"2024-01-30T00:00:00";}i:11;a:4:{s:7:"version";s:6:"2.1.14";s:8:"critical";b:0;s:5:"notes";s:416:"Added
- Add
NodeInterface::contentNodes for GraphQL node queries for getting nested content nodes/marks.
Fixed
- Fix Vizy fields not saving when they contained a Neo field.
- Fix
NodeInterface::marks to actually return the marks of a node.
- Fix an error for Hyper fields with element custom fields, not saving correctly.
";s:4:"date";s:19:"2023-12-08T00:00:00";}i:12;a:4:{s:7:"version";s:6:"2.1.13";s:8:"critical";b:0;s:5:"notes";s:574:"Added
- Add console log for fatal Vizy block renders to assist with debugging.
Fixed
- Fix fatal Vue errors when inline
<style> tags were included in Vizy block field rendering.
- Fix error state for invalid Vizy blocks.
- Fix and improve click and mouse events inside a Vizy block, due to drag-handling from Tiptap.
- Fix an issue where fields in a Vizy block couldn’t be focused, due to a Craft 4.5.7 change.
- Fix an error with code block nodes escaping code content.
";s:4:"date";s:19:"2023-11-25T00:00:00";}i:13;a:4:{s:7:"version";s:6:"2.1.12";s:8:"critical";b:0;s:5:"notes";s:200:"Added
- Add exception message to console when failing to render a Vizy block.
Fixed
- Fix an error when outputting iframe content, in some cases.
";s:4:"date";s:19:"2023-10-25T00:00:00";}i:14;a:4:{s:7:"version";s:6:"2.1.11";s:8:"critical";b:0;s:5:"notes";s:216:"Fixed
- Fix
HardBreak (<br>) nodes being rendered twice.
- Fix an issue where some fields (Hyper) in Vizy blocks weren’t being serialized properly.
";s:4:"date";s:19:"2023-10-03T00:00:00";}i:15;a:4:{s:7:"version";s:6:"2.1.10";s:8:"critical";b:0;s:5:"notes";s:280:"Added
- Add better handling for fatal errors when rendering Vizy blocks.
Fixed
- Fix Table node inner node styles (links, lists, etc).
- Fix when using the Image Editor on an Image node, transforms not being generated.
";s:4:"date";s:19:"2023-09-25T00:00:00";}i:16;a:4:{s:7:"version";s:5:"2.1.9";s:8:"critical";b:0;s:5:"notes";s:837:"Added
- Add normalization fix for incorrect
ListItem schema format.
- Add
title setting to Link nodes.
Fixed
- Fix an issue with project config and other new fields.
- Fix using Hyper and Icon Picker fields in Vizy blocks.
- Fix
ListItem normalization.
- Fix an error with node normalization.
- Switch
htmlEncode for AntiXSS for better special character handling.
- Fix Table nodes’ rendering.
- Fix node normalization not completing correctly for nested nodes.
- Fix field not initializing correctly in Super Table or Matrix field settings.
- Fix
rel output for links.
- Fix overlapping marks not producing the correct HTML output.
";s:4:"date";s:19:"2023-09-08T00:00:00";}i:17;a:4:{s:7:"version";s:5:"2.1.8";s:8:"critical";b:0;s:5:"notes";s:1063:"Fixed
- Fix rendering nested JS for Vizy fields.
- Revamp Vue component initialization for input and settings. Improves performance and edge-cases with Vizy fields nested in Matrix/Neo/Super Table and nested Vizy fields.
- Fix an issue where nested Vizy fields trigger an unload warning.
- Fix GQL schema for Nodes to generating correctly.
- Fix Super Table/Matrix/Neo nested combinations not rendering Vizy fields correctly.
- Fix an issue for neste Vizy fields, and
isNew checks.
- Fix an issue where deeply-nested Vizy fields within Matrix or Super Table fields weren’t having their content set correctly.
- Fix lightswitch UI for Vizy blocks on Craft 4.4.16+.
- Fix “fresh” check for blocks, affecting some defaults for some fields (Button Box) saving over content.
- Fix the media embed node not displaying correctly when toggling the code editor.
- Fix
ListItem nodes throwing an error when their content was null.
";s:4:"date";s:19:"2023-08-10T00:00:00";}i:18;a:4:{s:7:"version";s:5:"2.1.7";s:8:"critical";b:0;s:5:"notes";s:315:"Added
- Add error class to Vizy Block tabs, when one of their fields has an error.
Fixed
- Fix an error parsing empty table field nodes.
- Fix an error when Vizy Blocks contain a dismissable UI element tip.
- Fix Matrix-nested fields and spacing.
";s:4:"date";s:19:"2023-07-11T00:00:00";}}s:13:"phpConstraint";s:6:"^8.0.2";s:11:"packageName";s:10:"verbb/vizy";}}}i:1;N;}