12.0 Changes
Table of contents
Breaking Changes
- Breaking: #87616 - Removed hook for altering page links
- Breaking: #90044 - config.spamProtectEmailAddresses with option "ascii" removed
- Breaking: #92508 - Removed hook for filtering HMENU items
- Breaking: #93182 - Changed file extension for gzip compressed files
- Breaking: #94117 - Register Extbase type converters as services
- Breaking: #94243 - Send user session cookies as hash-signed JWT
- Breaking: #95132 - Set password forgot hash based on user uid in ext:felogin
- Breaking: #96041 - Toolbar items: Register by tag
- Breaking: #96044 - Harden method signature of logicalAnd() and logicalOr()
- Breaking: #96094 - Module icons removed
- Breaking: #96107 - Deprecated functionality removed
- Breaking: #96149 - EXT:form EmailFinisher always uses FluidEmail
- Breaking: #96154 - Deprecated Shortcut API functionality removed
- Breaking: #96158 - Remove support for inline JavaScript in fieldChangeFunc
- Breaking: #96205 - Removal of last relativeToCurrentScript remains
- Breaking: #96212 - Alt text is enforced for custom login logos
- Breaking: #96221 - Deny inline JavaScript in FormEngine's requireJsModules
- Breaking: #96222 - Add getOptions() to WidgetInterface
- Breaking: #96263 - Remove jQuery promise support for AJAX requests
- Breaking: #96287 - Doctrine DBAL v3
- Breaking: #96291 - Disallow DB connection before TCA is loaded
- Breaking: #96333 - Auto configuration of ContextMenu item providers
- Breaking: #96351 - Unused TemplateService->updateRootlineData method removed
- Breaking: #96501 - prefixLocalAnchors option in HTMLParser removed
- Breaking: #96517 - TMENU.collapse TypoScript removed
- Breaking: #96518 - ext_typoscript_*.txt files not included anymore
- Breaking: #96520 - Enforce non-empty configuration in cObj::parseFunc
- Breaking: #96522 - config.disablePageExternalUrl removed
- Breaking: #96526 - Removed hooks for modifying page module content
- Breaking: #96550 - TYPO3_CONF_VARS['SYS']['USdateFormat'] removed
- Breaking: #96553 - TYPO3 v12 system requirements
- Breaking: #96575 - Update to CodeMirror 6
- Breaking: #96604 - Removed ModuleTemplate->addJavaScriptCode()
- Breaking: #96616 - Remove Frontend Login Mode for pages
- Breaking: #96641 - TypoLink related hooks removed
- Breaking: #96659 - Registration of cObjects via TYPO3_CONF_VARS
- Breaking: #96708 - Removed support for accesskeys in HMENU
- Breaking: #96726 - RequestHandler functionality of Extbase removed
- Breaking: #96733 - Removed support for module handling based on TBE_MODULES
- Breaking: #96806 - Removed hook for modifying button bar
- Breaking: #96812 - No Frontend TypoScript based template overrides in the backend
- Breaking: #96829 - Removed BackendUtility->getFuncInput()
- Breaking: #96831 - Enforce HTML sanitizer during frontend rendering
- Breaking: #96835 - https as default scheme in PageRouter
- Breaking: #96874 - CKEditor-related plugins and configuration
- Breaking: #96879 - Hook "get_cache_timeout" removed
- Breaking: #96889 - Require PHP mbstring and intl
- Breaking: #96899 - "displayWarningMessages" hook removed
- Breaking: #96904 - ext:reports reports do not receive parent object
- Breaking: #96935 - Register linkvalidator linktypes via service configuration
- Breaking: #96968 - Hook "headerNoCache" removed
- Breaking: #96982 - Removed support for global extensions
- Breaking: #96983 - TableColumnSubType
- Breaking: #96988 - Global Option "allowLocalInstall" removed
- Breaking: #96996 - Hook "checkEnableFields" removed
- Breaking: #96998 - Extbase validator interface changed
- Breaking: #97065 - TYPO3 Frontend always rendered in UTF-8
- Breaking: #97091 - TSFE->clear_preview has been removed
- Breaking: #97126 - Remove TCEforms array key in FlexForm
- Breaking: #97131 - Removed CLI commands related to files in uploads/ folder
- Breaking: #97135 - Removed support for module handling based on TBE_MODULES_EXT
- Breaking: #97174 - Removed hook for modifying info module footer content
- Breaking: #97187 - Removed hook for modifying link explanation
- Breaking: #97188 - Register element browsers via service configuration
- Breaking: #97201 - Removed hook for new content element wizard
- Breaking: #97210 - Types added to method signatures or class properties
- Breaking: #97214 - Use UploadedFile objects instead of $_FILES
- Breaking: #97230 - Removed hook for modifying image manipulation preview URL
- Breaking: #97231 - Removed hook for manipulating inline element controls
- Breaking: #97243 - Remove global jQuery access via window.$
- Breaking: #97265 - Simplified access mode system
- Breaking: #97305 - Introduce CSRF-like login token
- Breaking: #97312 - Remove context sensitive help
- Breaking: #97320 - Register Report and Status via Service Configuration
- Breaking: #97358 - Removed eval=int from TCA type "datetime"
- Breaking: #97449 - Removed hook for modifying flex form parsing
- Breaking: #97450 - Removed hook for modifying version differences
- Breaking: #97451 - Removed BackendController page hooks
- Breaking: #97452 - Removed EditFileController hooks
- Breaking: #97454 - Removed Link Browser hooks
- Breaking: #97530 - Indexed Search option searchSkipExtendToSubpagesChecking removed
- Breaking: #97550 - TypoScript option config.disableCharsetHeader removed
- Breaking: #97605 - Remove field resizeTextareas_MaxHeight from user settings
- Breaking: #97701 - TSconfig option disableNewContentElementWizard removed
- Breaking: #97729 - Respect attribute approved in XLF files
- Breaking: #97737 - Page-related hooks in TSFE removed
- Breaking: #97752 - MailerAdapterInterface removed
- Breaking: #97787 - AbstractMessage->getSeverity() returns ContextualFeedbackSeverity
- Breaking: #97797 - GFX setting processor_path_lzw removed
- Breaking: #97816 - New TypoScript parser in Frontend
- Breaking: #97816 - TypoScript syntax changes
- Breaking: #97862 - Hooks related to generating page content removed
- Breaking: #97926 - Extbase QuerySettings methods removed
- Breaking: #97927 - Removed TypoScript option config.doctypeSwitch
- Breaking: #97945 - Removed WorkspaceService hooks
- Breaking: #98016 - Removed TypoScript function hook
- Breaking: #98024 - TCA option cruser_id removed
- Breaking: #98032 - Serializable Interface fully removed
- Breaking: #98069 - DebugConsole removed
- Breaking: #98089 - Removed FontAwesome
- Breaking: #98100 - Compression and Concatenation of JavaScript and CSS files for Backend removed
- Breaking: #98158 - Update to Symfony 6
- Breaking: #98179 - Remove backend interface selector and configurable redirect
- Breaking: #98193 - Persistent storage module returns Promises
- Breaking: #98195 - Remove TODAYS_SPECIAL error constant
- Breaking: #98261 - Removed jQuery in Popover module
- Breaking: #98275 - Removed pre-defined link title attributes in RTE link browser
- Breaking: #98281 - Make AbstractPlugin @internal
- Breaking: #98288 - Updated Backend Modal API
- Breaking: #98303 - Removed hooks for language overlays in PageRepository
- Breaking: #98304 - Removed hook for modifying edit form user access
- Breaking: #98308 - Legacy HTML attributes border and longdesc removed from frontend rendering
- Breaking: #98312 - TypoScript setting page.CSS_inlineStyle removed
- Breaking: #98319 - New file location for LocalConfiguration.php and AdditionalConfiguration.php
- Breaking: #98370 - Extbase Request cleanup and hardening
- Breaking: #98375 - Removed hooks in Page Module
- Breaking: #98377 - Fluid StandaloneView does not create an Extbase Request anymore
- Breaking: #98437 - Workspace TSConfig swapMode and changeStageMode removed
- Breaking: #98441 - Hook "recStatInfoHooks" removed
- Breaking: #98443 - Extension recordlist merged into backend
- Breaking: #98455 - Changed definition of FormEngine suggest item
- Breaking: #98455 - Removed devbridge-autocomplete
- Breaking: #98479 - Removed file reference related functionality
- Breaking: #98480 - TCA table "sys_template" is no longer workspace aware
- Breaking: #98487 - $GLOBALS['PAGES_TYPES'] removed
- Breaking: #98488 - Typolink option "addQueryString" only includes resolved query arguments
- Breaking: #98489 - Removal of SleepTask and TestTask
- Breaking: #98490 - Various hooks and methods changed in DatabaseRecordList
Features
- Feature: #82809 - Make ExtensionUtility::registerPlugin method return plugin signature.
- Feature: #83912 - Specify Section in Redirect Finisher
- Feature: #87616 - PSR-14 event for modifying Page Link Generation
- Feature: #89917 - Copy page access settings from parent
- Feature: #90919 - Skip translation of overridden form finisher options
- Feature: #90994 - Mark current page in fluid_styled_content menu content elements
- Feature: #91077 - Element browser entry points for TCA types "group" and "folder"
- Feature: #91082 - Add new option "show scheduled records" to admin panel
- Feature: #91715 - Add multiple has($identifier) methods to \TYPO3\CMS\Core\Page\AssetCollector
- Feature: #92508 - PSR-14 event for modifying menu items
- Feature: #92749 - Improve content object initialization in HtmlViewHelper
- Feature: #92861 - Introduce TCA option "min"
- Feature: #93494 - New PSR-14 ModifyQueryForLiveSearchEvent
- Feature: #93689 - PSR-14 events on sending messages with Mailer
- Feature: #94117 - Improve Extbase type converter registration
- Feature: #94544 - Add new SMTP configuration settings
- Feature: #94625 - Introduce sliding window pagination
- Feature: #95486 - Add accept argument for UploadViewHelper
- Feature: #96041 - Improve Backend toolbar registration
- Feature: #96147 - New PSR-14 RedirectWasHitEvent
- Feature: #96152 - Backend Toolbar items overview in configuration module
- Feature: #96333 - Improve ContextMenu item provider registration
- Feature: #96465 - New Linkvalidator module
- Feature: #96510 - Infrastructure for JavaScript modules and importmaps
- Feature: #96515 - Aliases for Backend Routes and Backend Modules
- Feature: #96526 - PSR-14 event for modifying page module content
- Feature: #96614 - Automatic inclusion of page TSconfig of extensions
- Feature: #96641 - New PSR-14 event for modifying links
- Feature: #96659 - ContentObject Registration via service configuration
- Feature: #96688 - Attributes for Extbase Annotations
- Feature: #96730 - Simplified ext:backend ModuleTemplate API
- Feature: #96733 - New backend module registration API
- Feature: #96800 - Add SiteLanguageProcessor
- Feature: #96806 - PSR-14 event for modifying button bar
- Feature: #96812 - Override backend templates with TSconfig
- Feature: #96874 - CKEditor 5
- Feature: #96879 - New PSR-14 event ModifyCacheLifetimeForPageEvent
- Feature: #96895 - Introduce Module data object
- Feature: #96899 - New PSR-14 event: ModifyGenericBackendMessagesEvent
- Feature: #96904 - Backend toolbar items are request aware
- Feature: #96935 - New registration for linkvalidator linktype
- Feature: #96961 - Backend routes contain Composer package name
- Feature: #96968 - PSR-14 event for avoid loading Frontend pages from cache
- Feature: #96975 - New PSR-14 events for SiteConfiguration Handling
- Feature: #96983 - TCA type "folder"
- Feature: #96996 - PSR-14 event for modifying record access evaluation
- Feature: #97013 - New TCA type "email"
- Feature: #97035 - Utilize "required" directly in TCA field configuration
- Feature: #97051 - Filter logs by page in Log module
- Feature: #97096 - Non-namespaced arguments in Extbase backend modules
- Feature: #97104 - New TCA type "password"
- Feature: #97135 - New Registration for module functions
- Feature: #97159 - New TCA type "link"
- Feature: #97173 - Auto creation of database fields for TCA "slug"
- Feature: #97174 - PSR-14 event for modifying info module content
- Feature: #97187 - PSR-14 event for modifying link explanation
- Feature: #97188 - New registration for element browsers
- Feature: #97193 - New TCA type "number"
- Feature: #97201 - PSR-14 event for modifying new content element wizard items
- Feature: #97230 - PSR-14 event for modifying image manipulation preview URL
- Feature: #97231 - PSR-14 events for modifying inline element controls
- Feature: #97232 - New TCA type "datetime"
- Feature: #97254 - Add Luxembourgish as supported language
- Feature: #97271 - New TCA type "color"
- Feature: #97305 - Introduce CSRF-like request-token handling
- Feature: #97306 - Refresh the look of page module
- Feature: #97320 - New registration for reports and status
- Feature: #97326 - Open backend page from admin panel
- Feature: #97347 - Allow keyboard navigation in live search
- Feature: #97384 - TCA option "nullable"
- Feature: #97388 - Introduce configurable password policies
- Feature: #97449 - PSR-14 events for modifying FlexForm parsing
- Feature: #97450 - PSR-14 event for modifying version differences
- Feature: #97451 - PSR-14 events for modifying backend page content
- Feature: #97454 - PSR-14 events for modifying link browser behavior
- Feature: #97480 - Symfony Expression Language providers available in configuration module
- Feature: #97544 - PSR-14 events for modifying preview URIs
- Feature: #97595 - Provide default queue for notifications
- Feature: #97653 - TypoScript Option "showWebsiteTitle"
- Feature: #97729 - Respect attribute approved in XLF files
- Feature: #97737 - New PSR-14 events when Page + Rootline in Frontend is resolved
- Feature: #97778 - Support of language direction in ckeditor
- Feature: #97787 - Enum for severities introduced
- Feature: #97816 - New AfterTemplatesHaveBeenDeterminedEvent
- Feature: #97816 - TypoScript syntax improvements
- Feature: #97821 - Option to configure primary actions in File List
- Feature: #97862 - New PSR-14 events for manipulating frontend page generation and cache behaviour
- Feature: #97922 - Improve performance and usability while editing sys_filemounts
- Feature: #97926 - Configure Extbase Persistence Language via LanguageAspect
- Feature: #97941 - Improved TypoScript Template Analyzer
- Feature: #97945 - PSR-14 AfterPageTreeItemsPreparedEvent
- Feature: #98016 - PSR-14 EvaluateModifierFunctionEvent
- Feature: #98130 - Allow deprecation of icons in extensions
- Feature: #98158 - Symfony 6 Components
- Feature: #98171 - Add Extbase TypeConverter for enums
- Feature: #98303 - PSR-14 events for modifying language overlays
- Feature: #98304 - PSR-14 event for modifying edit form user access
- Feature: #98348 - Live Search moved into modal window
- Feature: #98375 - PSR-14 events in Page Module
- Feature: #98426 - New PSR-14 event AfterRecordSummaryForLocalizationEvent
- Feature: #98431 - Support javaScriptModules in FormEngine resultArray
- Feature: #98479 - New TCA type "file"
- Feature: #98487 - TCA option [ctrl][security][ignorePageTypeRestriction]
- Feature: #98488 - Additional setting for Typolink option "addQueryString"
- Feature: #98490 - PSR-14 event to alter the records rendered in record listings
Deprecation
- Deprecation: #87616 - Unused Interface for TypolinkModifyLinkConfigForPageLinksHook
- Deprecation: #92508 - Unused Interface for filterMenuPages hook
- Deprecation: #94117 - Register extbase type converters as services
- Deprecation: #95456 - Deprecate legacy form templates
- Deprecation: #96136 - Deprecate inline JavaScript in backend update signals
- Deprecation: #96444 - authMode select items keywords moved to index 5
- Deprecation: #96500 - ContentObjectRenderer->getMailTo
- Deprecation: #96524 - Deprecate inline JavaScript in Dashboard
- Deprecation: #96568 - RequireJS modules in Form Framework
- Deprecation: #96641 - Link-related functionality in ContentObjectRenderer
- Deprecation: #96641 - Unused Hook related UrlProcessorInterface
- Deprecation: #96733 - Deprecated TBE_MODULES related functionality
- Deprecation: #96903 - Deprecate old ModuleTemplate API
- Deprecation: #96972 - Deprecate QueryBuilder::execute()
- Deprecation: #96983 - TCA internal_type
- Deprecation: #96996 - Deprecate TypoScriptFrontendController->checkEnableFields
- Deprecation: #97016 - Deprecate usage of RegularExpressionValidator in form editor
- Deprecation: #97019 - Deprecate order of validation message
- Deprecation: #97027 - ContentObjectRenderer->getTreeList()
- Deprecation: #97035 - "required" option in "eval" keyword
- Deprecation: #97057 - Deprecate RequireJS support
- Deprecation: #97109 - TCA type none "cols" option
- Deprecation: #97126 - TCEforms removed in FlexForm
- Deprecation: #97201 - Unused Interface for new content element wizard hook
- Deprecation: #97217 - Moved TypoLinkCodecService to EXT:core
- Deprecation: #97231 - Unused Interface for inline element hook
- Deprecation: #97244 - CompositeExpression methods 'add()' and 'addMultiple()'
- Deprecation: #97244 - Direct instantiation of CompositeExpression
- Deprecation: #97271 - Global Color Picker initialization
- Deprecation: #97312 - Deprecate CSH-related methods
- Deprecation: #97354 - ExpressionBuilder methods andX() and orX()
- Deprecation: #97384 - TCA option "eval=null" replaced with "nullable"
- Deprecation: #97435 - Usage of SiteLanguageAwareTrait to denote site language awareness
- Deprecation: #97531 - Context-related methods within TypoScriptFrontendController
- Deprecation: #97544 - Preview URI Generation related functionality in BackendUtility
- Deprecation: #97549 - ContentObjectRenderer->lastTypoLink* properties
- Deprecation: #97576 - TYPO3\CMS\Core\Utility\ResourceUtility
- Deprecation: #97787 - Severities of flash messages and reports deprecated
- Deprecation: #97866 - Various public TSFE properties
- Deprecation: #98168 - Binding context menu item to this
- Deprecation: #98283 - PHP Constant TYPO3_mainDir
- Deprecation: #98303 - Interfaces for PageRepository language overlay hooks
- Deprecation: #98371 - Deprecated Fluid getters
- Deprecation: #98431 - Replace requireJsModules in FormEngine resultArray
- Deprecation: #98479 - Deprecated file reference related functionality
- Deprecation: #98487 - ExtensionManagementUtility::allowTableOnStandardPages
- Deprecation: #98488 - ContentObjectRenderer->getQueryArguments
Important
- Important: #59992 - Extbase: Consistent uid values from Persistence Session
- Important: #92020 - New API entry point available at https://get.typo3.org/api/
- Important: #94951 - Restrict export functionality to allowed users
- Important: #97031 - Removed "Log" submodule from info module
- Important: #97111 - Default URI scheme
- Important: #97145 - Serialized log_data in sys_log migrated to JSON-encoded data
- Important: #97159 - MailLinkHandler key in TSconfig renamed
- Important: #97411 - Align SystemEnvironment checks to changed requirements
- Important: #97462 - Removed MSSQL supportive code
- Important: #97517 - Remove the superfluous namespace within the form configuration
- Important: #97809 - Update @typo3.icons to v3
- Important: #98090 - Use preconfigured UTF-8 filesystem on first installation
- Important: #98475 - Unsigned "pid" table columns
- Important: #98484 - Extensions and assets outside of document root for Composer-based TYPO3 installations