Important
This update contains breaking changes for plugins. See #19263 for details.
- Plugins should no longer define
extra.laravel.providersincomposer.json. (#19263) - Removed automatic plugin trait lifecycle hooks. (#19263)
- Added
CraftCms\Cms\Cp\Components\Button. (#19248) - Added
CraftCms\Cms\Cp\Components\ButtonGroup. (#19248) - Added
CraftCms\Cms\Cp\Components\Callout. (#19248) - Added
CraftCms\Cms\Cp\Components\Checkbox. (#19248) - Added
CraftCms\Cms\Cp\Components\CheckboxGroup. (#19248) - Added
CraftCms\Cms\Cp\Components\CheckboxSelect. (#19248) - Added
CraftCms\Cms\Cp\Components\ChoiceGroup. (#19248) - Added
CraftCms\Cms\Cp\Components\ComponentRegistry. (#19248) - Added
CraftCms\Cms\Cp\Components\Field. (#19248) - Added
CraftCms\Cms\Cp\Components\FieldGroup. (#19248) - Added
CraftCms\Cms\Cp\Components\Lightswitch. (#19248) - Added
CraftCms\Cms\Cp\Components\Radio. (#19248) - Added
CraftCms\Cms\Cp\Components\RadioGroup. (#19248) - Added
CraftCms\Cms\Cp\Components\ViewComponent. (#19248) - Added
CraftCms\Cms\Cp\Concerns\EvaluatesClosures. (#19248) - Added
CraftCms\Cms\Cp\Concerns\HasAppearance. (#19248) - Added
CraftCms\Cms\Cp\Concerns\HasDisabled. (#19248) - Added
CraftCms\Cms\Cp\Concerns\HasId. (#19248) - Added
CraftCms\Cms\Cp\Concerns\HasSize. (#19248) - Added
CraftCms\Cms\Cp\Concerns\HasVariant. (#19248) - Added
CraftCms\Cms\Cp\Enums\Appearance. (#19248) - Added
CraftCms\Cms\Cp\Enums\Size. (#19248) - Added
CraftCms\Cms\Cp\Enums\Variant. (#19248) - Added
CraftCms\Cms\Cp\FormFields::buttonFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::buttonGroupFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::checkboxFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::checkboxGroupFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::checkboxSelectFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::lightswitchFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::radioFromConfig(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::radioGroupFieldHtml(). (#19248) - Added
CraftCms\Cms\Cp\FormFields::radioGroupFromConfig(). (#19248) - Added
CraftCms\Cms\Support\Facades\Template. (#19290) - Added
CraftCms\Cms\Twig\Contracts\TwigRendererInterface. (#19290) - Added
CraftCms\Cms\Twig\Variables\Cp::button(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::buttonGroup(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::checkbox(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::checkboxGroup(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::checkboxSelect(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::lightswitch(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::radio(). (#19248) - Added
CraftCms\Cms\Twig\Variables\Cp::radioGroup(). (#19248) - Added
CraftCms\Cms\ui(). (#19248) - Added
CraftCms\Cms\View\TemplateManager. (#19290) template()andpageTemplate()now accept an optional template renderer name. (#19290)TemplateRenderedandPageTemplateRenderedevents now expose the final renderer name via$rendererName; the corresponding before events no longer expose renderer identity. (#19290)- Replaced
CraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizerswithCraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizerManager. HTML sanitizers should now be registered viaCraftCms\Cms\Support\Facades\HtmlSanitizers::extend()rather thanCraftCms\Cms\Support\HtmlSanitizer\HtmlSanitizers::register(). (#19292) - Removed
CraftCms\Cms\Plugin\Events\PluginUnregistered. (#19263) - Removed
CraftCms\Cms\Plugin\Plugin::bootPlugin().boot()should be used instead. (#19263) - Removed
CraftCms\Cms\Plugin\Plugin::registerPlugin().register()should be used instead. (#19263) - Fixed a bug where the legacy
yii\web\JqueryAssetwasn’t resolving properly. (#19264) - Fixed a bug where bulk entry moves could assign entries to sections that didn’t support their entry types. (#19267)
- Fixed a bug where queued resaves ignored offset and limit criteria or accepted non-positive batch sizes. (#19271)
- Fixed a bug where failed password and passkey login attempts incremented invalid-login counters twice. (#19283)
- Fixed bugs that could prevent authored content from being deleted or reassigned safely when deleting users. (#19273)
- Fixed an issue where disabled and archived user accounts could still authenticate. (#19265)
- Fixed a bug where one-time two-factor authentication credentials could be accepted by concurrent login attempts. (#19282)
- Fixed issues with
craft:users:set-passwordpassword validation, exit statuses, and session invalidation. (#19272) - Fixed a bug where selected GraphQL mutations could be mistaken for cacheable queries. (#19284)
- Fixed a high-severity authorization bypass vulnerability.
- Fixed a bug where two-factor authentication could lose login state or verify the wrong user during impersonation. (#19274)
- Fixed a bug where new Matrix blocks weren’t getting created. (#19161)