# 9 LTS 2018-10-02 * Feature #3464: Inconsistent icon overlays for start and stop date * Feature #5355: Template module - don't store the page in the session * Feature #13265: Make new pages toolbar open by default in the page tree * Feature #16681: C style TypoScript comments with start and end in one line lead to errors * Task #20051: Support the "canonical" tag * Feature #24869: Enhance Upgrade Wizard SQL queries verbosity and error handling * Feature #31874: A new user without being in a group cannot do anything * Feature #53941: UX: Multi-edit records looks ugly * Feature #62718: Page type Special Folder is shown in page path of indexed_search * Feature #68853: Option to create and install a very basic site package in Install Tool * Bug #74533: No errors from GeneralUtility::callUserFunction without explicit request * Feature #75439: Show template names in template tool overview * Task #76084: Move install tool modules into backend module menu * Feature #79030: Add what-input javascript library * Task #79441: Change visibility for Internal caching arrays * Feature #80342: Validator for url * Feature #80398: Make default charset and collation for new tables configurable * Feature #80945: Speaking URLs in TYPO3 Core * Task #81094: Streamline UI of PageTS config > View TSconfig fields content * Task #81171: Remove edit ability of constants and setup of EXT:tstemplate * Bug #81222: AudioTagRenderer does not support controlsList * Feature #81327: View record from list * Task #81421: Remove unused intance of IconRegistry * Bug #81588: ViewHelper format.case is missing capitalWords mode * Feature #81901: Refactor t3editor * Feature #82055: Add noopener behavior to external links * Task #82143: Update CKEDITOR to 4.7.2 * Epic #82226: PHP 7.2 * Bug #82293: Centralize getPagesTSconfig methods * Feature #82332: Database Connection wrapper to catch queries to pages_languages_overlay * Bug #82336: Form doc directory hierarchy too deep * Task #82350: Login form type icon should be added in EXT:felogin * Bug #82363: Make Extbase translation handling consistent with typoscript * Feature #82419: Add frontend debug output as HTTP Response Header * Feature #82426: Replace ExtJS page tree with SVG one * Bug #82517: Disable install tool access in switch user mode * Task #82579: EXT:backend ContextHelp.js * Task #82580: EXT:backend ContextMenu.js - migrate to TypeScript * Task #82581: EXT:backend ContextMenuActions.js * Task #82582: EXT:backend DateTimePicker.js * Task #82583: EXT:backend DebugConsole.js * Task #82584: EXT:backend DocumentHeader.js * Task #82585: EXT:backend DragUploader.js * Task #82591: EXT:backend Icons.js * Task #82592: EXT:backend LiveSearch.js * Task #82593: EXT:backend Localization.js * Task #82594: EXT:backend Login.js * Task #82595: EXT:backend LoginRefresh.js * Task #82596: EXT:backend Modal.js * Task #82597: EXT:backend ModulMenu.js * Task #82598: EXT:backend NewMultiplePages.js * Task #82599: EXT:backend Notifications.js * Task #82600: EXT:backend OnlineMedia.js * Task #82601: EXT:backend PageActions.js * Task #82602: EXT:backend SplitButtons.js * Task #82603: EXT:backend Storage.js * Task #82604: EXT:backend Tabs.js * Task #82605: EXT:backend ToggleSearchToolbox.js * Task #82606: EXT:backend Toolbar.js * Task #82607: EXT:backend Tooltip.js * Task #82608: EXT:backend UserPassLogin.js * Task #82609: EXT:backend Utility.js * Task #82610: EXT:backend ValueSlider.js * Task #82611: EXT:backend Viewport.js * Feature #83078: Replace @lazy with @Extbase\ORM\Lazy * Feature #83092: Replace @transient with @Extbase\ORM\Transient * Feature #83093: Replace @cascade with @Extbase\ORM\Cascade * Feature #83094: Replace @ignorevalidation with @Extbase\IgnoreValidation * Task #83147: impexp converts pages_language_overlay to pages records * Feature #83167: Replace @validate with @Extbase\Validate * Task #83417: Cannot click label to activate checkbox in Internet Explorer & Edge * Bug #83542: tree doesn't work when doktypesToShowInNewPageDragArea is empty * Bug #83585: "New" page tree broken in Safari Version 11.0.2 * Bug #83702: Recycler is unbearable slow when querying nested trees * Task #83743: Bootstrap 4.x * Task #83744: Update 3rd party JavaScript libraries * Feature #83749: EXT:redirects - Options to search, filter redirects and pagination * Bug #83832: Constructing Tables With UTF-8 Special Characters * Feature #83845: Integration of Bootstrap 4 in TYPO3 Core * Feature #83846: Ability to determine own DB naming conventions. * Bug #83880: Improve default directory for mail spooling * Bug #83911: Form Module changes order of options of a single select field on saving * Task #83955: EXT:backend Severity.js * Task #83964: Streamline usage of form wizard icons * Task #83978: Streamline deprecation handling in icon API * Bug #83979: Avoid registering extension icons in IconRegistry * Bug #83980: Adjust side-effects for TcaSelectItems test cases * Task #83986: Streamline size of all email fields at the database schema * Bug #84019: Page tree - can't change node name with & (ampersand) in name * Task #84028: Update readme copyright date * Task #84127: EXT:backend Toolbar/ClearCacheMenu.js * Task #84128: EXT:backend Toolbar/ShortcutMenu.js * Task #84129: EXT:backend Toolbar/SystemInformationMenu.js * Feature #84133: Variants - Frontend implementation * Bug #84198: simulate usergroup in admin panel is reset on update * Task #84211: Preview Module - Extract html structure into fluid templates * Task #84217: Upgrade documentation: Sort tags by name * Task #84226: Upgrade documentation: Render tags in ReST file * Bug #84231: Remove usage of extbase from reports module * Feature #84244: Adding custom Restrictions to RestrictionContainer * Task #84369: Use ServerRequestInterface in UserSettingsController * Bug #84460: Wrong feedback from page tree while editing a page through content menu * Feature #84517: Recordlist - Make csv delimiter configurable * Story #84606: Add Log Module // Add InMemory Logger * Story #84609: SQL Log module * Feature #84650: Introduce fluid data-processor for language menus * Bug #84666: Page alias is changed for translated pages * Bug #84667: Sites: Unexprected behavior when site-base != language base * Bug #84668: Sites: Links for language menus are not generated correctly * Bug #84669: Sites: Any-Domain configuration can not resolve language * Task #84672: Use Symfony Finder for TCA * Task #84712: Drop compatability layer for lib.fluidContent * Task #84716: Simplify overriding of adminpanels InfoModule * Epic #84727: Site Handling - Part 2 / Missing Pieces * Epic #84728: Introduce speaking URLs for pages * Epic #84730: Configuration of resolving and building slugs * Feature #84775: Extend HMENU to support auto filling of special.value for special=language * Bug #84903: Streamline and move labels introduces with checkbox toggle changes * Task #84936: Make new toggle checkboxes keyboard accessible * Feature #84983: BE ViewHelper for EditDocumentController * Feature #85017: Show user TSconfig of logged in user in Configuration module * Bug #85023: Restructure code of extbase class Typo3DbBackend * Epic #85026: Merge ext:saltedpasswords into core * Feature #85080: Add a property to control the visibility for form elements * Feature #85147: Render SEO meta tags in frontend * Feature #85160: Auto create management DB fields from TCA ctrl * Feature #85380: Add option 'exposeNonexistentUserInForgotPasswordDialog' to EXT:feloginform * Bug #85405: Error when creating workspace stage on sqlite * Feature #85410: Allow TCA description property * Bug #85502: Test with local driver produces error on windows because file name ends with a dot (and no extension) * Task #85560: Replace further path usages with Environment API * Bug #85561: Class "\Doctrine\Common\Lexer" not found while TYPO3 installation * Feature #85590: Hooks for DatabaseRecordList CSV actions * Task #85674: Exclude TypeScript sources from releases * Bug #85738: Add new .tsconfig fileending to access block for files in .htaccess * Epic #85745: switch skipped test conditions to annotation * Feature #85826: Gravatar support for TYPO3 * Task #85828: Move symfony expression language handling into EXT:core * Feature #85829: Implement symfony expression language for TypoScript conditions * Task #85835: Add more tests for ConditionMatchers * Task #85887: Optimize language labels in IRRE title * Bug #85923: Update TYPO3 Core fails * Task #85938: Handle renaming of "base" property of a site * Task #85970: Deprecate cObject FILE * Task #85980: Deprecate @internal annotation in extbase commands * Task #85981: Deprecate @flushesCaches annotation * Task #86045: Use Sites in TypoLink * Task #86047: Deprecate TSFE properties / methods and change visibility * Task #86060: Make XML sitemap cachable * Task #86068: Deprecate old condition syntax * Feature #86076: New API for UpgradeWizards * Bug #86098: 1 px diff in TYPO3 BE Header * Bug #86113: On FE User logoff, BackendUtility is called * Bug #86139: ?id parameter must take precedence over any URL check * Bug #86140: Legacy backend preview url generation generates URL with duplicated protocol * Bug #86153: FileList fails with SiteNotFoundException * Bug #86155: Login in Backend after Upgrading from 8.7.19 to 9.4 throws error * Bug #86157: Pages with no_index,follow shouldn't be in XML sitemap * Feature #86160: Add the possibility to use .html suffix in seo friendly URLs * Bug #86161: data.t3d does not get imported when installing a site package * Task #86169: Make sure number of items in XML sitemap are not exceeding Google limits * Story #86171: Basic implementation of Route Enhancers for Extensions * Task #86172: Migrate UpgradeWizards to new API * Task #86173: Automatically create .htaccess or web.config file upon installation * Bug #86174: Sites module must not show root pages of workspaces * Bug #86189: Pseudo sites from draft workspace should not be viewed in live space site configuration * Bug #86190: URL recalculation does not trigger change event * Bug #86194: Translation fails if file locallang.xlf is not provided * Task #86196: Centralize ExpressionLanguage Registration via API * Task #86199: Migrate UpgradeWizards installing extensions to new API * Task #86200: Migrate RowUpdater wizards * Task #86201: Migrate "other" upgrade wizards * Bug #86205: Invert value in defaultLanguageDifferences when invertStateDisplay for check TCA-elements is true * Bug #86209: Edit page of type recycler throws missing pseudo-site error * Task #86214: Make XML sitemap reachable by /sitemap.xml || robots.txt at /robots.txt ==> implement static routing * Task #86218: Use SiteFinder in indexed_search * Task #86219: Use SiteFinder in EXT:felogin * Bug #86221: Batch edit page slugs in list module not possible * Bug #86223: Exception when using protectLvar=all in MenuProcessor * Task #86224: Make hreflang links absolute * Bug #86228: Silent upgrade wizard changes field definitions of extensions to wrong structure * Bug #86229: Symfony expressions/conditions doesn't work in user-tsconfig * Bug #86241: config.defaultGetVars does not populate the middleware's request object * Bug #86243: FormFileExtensionUpdate is broken because of new symfony expression language in TypoScript * Bug #86246: Done upgrade wizards are displayed in GUI * Task #86253: Make hreflang generator use PSR7 interface * Bug #86257: Invalid TypoScript condition expressions breaks TYPO3 * Bug #86258: Scheduler - Next execution calculation throws exception after save * Bug #86259: Install Tool does not provide a loading indicator * Bug #86266: Since TYPO3 9.4 /typo3/install is gone and redirects to the frontend * Task #86275: Migrate ext:form upgrade wizard * Bug #86277: Editlock blocks edit button also for admin * Task #86278: Improve UI of Upgrade Wizards * Task #86279: Deprecate hooks superseded by PSR-15 middlewares * Bug #86281: "View Upgrade Documentation" becomes slower with each file * Bug #86282: Extension Scanner should not use greedy merges * Bug #86285: TSFE properties are not fully deprecated * Task #86288: Deprecate FrontendBackendUserAuthentication methods * Bug #86292: Overwriting crop variants title with TSConfig leads to exception * Bug #86300: Creating a backend user via Task Center not possible * Feature #86303: Add variants for site's base * Task #86304: Streamline EM extension installation dependency resolving buttons * Bug #86315: Modal.show() does not pass severity * Bug #86319: MiddlewareStackResolver throws exception in non-lazy mode * Task #86322: Clean up simUser functionality * Task #86323: Simplify site configuration yaml // keep non-GUI keys * Bug #86326: Indexed Search generates links with hardcoded "index.php" * Bug #86332: QuerySettings dont get language mode from context in lang 0 * Task #86334: First Acceptance Tests for Site Module * Bug #86337: Panel in Install Tool look inconsistent * Bug #86344: Use HTML5 validation in Install Tool forms * Bug #86350: Site configuration cache broken * Bug #86352: Scruntinizer complains about some code smell in the Expression Language Area * Bug #86357: (Site Configuration): It's possible to save a site configuration without filling out all mandatory fields * Task #86365: Introduce routing Enhancers and Aspects * Task #86366: Compatibility Layer for AbstractUpdate * Bug #86373: Installing typo3db_legacy result in error for upgrade wizards * Task #86376: Add more info to documentation rst files * Bug #86377: "Changes not saved" modal is not shown if special formEngine elements are changed via the toggle button * Bug #86380: "Changes not saved" modal is not shown if content within the CodeMirror code editor library has changed * Bug #86384: Allow linking to a page with site config from a context without site config * Task #86387: Further improvements for the site configuration * Task #86388: Clean up Routing API * Task #86389: Deprecate GeneralUtility::_GETset() * Bug #86391: Fix displaying SelectCheckBox form element on small device screen like a tablet * Task #86393: Add facades for symfony/routing components * Task #86395: Re-add wordcount functionality in CKEditor * Task #86406: Deprecate internal_type=file and file_reference * Bug #86407: Resolve relative file path during copy correctly * Feature #86409: Allow usage of env vars in site configuration * Task #86410: Prepare Site handling for extended page routing * Task #86411: Deprecate TSFE->makeCacheHash * Bug #86412: pages.shortcut suggest wizard should not suggest itself * Bug #86417: FE-Login fails after update to v9 without ext:rsaauth * Bug #86420: Scheduler executes deleted tasks * Bug #86421: Preview of translated pages not working anymore * Feature #86422: Allow usage of site in TypoScript gettext * Bug #86427: Undefined variable in EXT:install/Classes/Controller/UpgradeController.php:1145 * Bug #86430: Upgrade wizard execution shows 'Executing "undefined"' * Task #86431: Rename PageParameterValidator middleware * Task #86432: Update composer dependencies * Task #86433: Deprecate several stdWrap / cObj functions * Task #86434: Move documentation changelog for 9.5 into folder * Bug #86436: Performance of extension scanner * Bug #86437: Site Configuration backend module breaks * Bug #86438: Deprecate PageRenderer->loadJQuery() * Task #86439: Mark several methods within TemplateService as internal * Task #86440: Mark several methods and properties within RteHtmlParser as internal * Task #86441: Deprecate various methods inside BE_USER * Task #86442: Mark various functionality as internal within TSFE * Task #86443: Hand PSR-7 request into cObjects and Extbase Plugins * Task #86444: Add functional test for route enhanced link handling * Task #86446: phpDoc: replace @access private with @internal * Task #86447: Fix spelling of analyze * Task #86448: Remove @internal on UpgradeWizardInterface * Task #86451: Use PSR-15 RequestHandler in Install Tool * Task #86454: Use NormalizedParams with simplified arguments * Bug #86456: Skip special doktype parent pages in slug generation * Feature #86457: Make prepending slash in TCA slug configurable * Task #86458: Merge PSR-7 request and _GET/_POST parameters * Task #86461: Mark various TypoScript parsing functionality as internal * Task #86463: Remove leftover .htaccess files in Resources/Private folders * Task #86465: Migrate BackendWorkspaceRestriction to Context API * Task #86470: Clean up FormEngine fields for Site Handling * Task #86472: Use PageRepository in indexed search menu generation * Bug #86473: Minor adjustments to wordings, variables and docs * Bug #86479: Avoid double slashes in slug generation * Bug #86480: Workspace Previews do not work anymore * Bug #86482: Installer looks ugly * Bug #86483: Streamline Page Argument merge strategies * Task #86485: Streamline labels of site TCA * Task #86487: Update INSTALL.md and README.md * Bug #86488: trigger_error messages are not consistent * Task #86489: Rename RouteResult to SiteRouteResult * Bug #86492: stdWrap on config.additionalHeaders is broken for (fully) cached pages. * Bug #86498: Info > Log loads wrong markup * Task #86500: Add proper exception handling to RouterInterface logic * Task #86501: Update CKEditor icon to meet the new CKEditor Corporate Design * Task #86502: Streamline phpdoc annotations in EXT:form * Bug #86503: It is not possible to create a redirect for /index.php?id=123 * Task #86504: Redirects performed by sys_redirect records should send the uid of the record as response header * Task #86505: Mark various obvious code as @internal * Bug #86506: Resolve slashed values in PageTypeDecorator correctly * Task #86507: Streamline phpdoc annotations in EXT:fluid * Task #86508: Mark various parts with phpdoc internal * Task #86509: Mark various parts with phpdoc internal - part 2 * Task #86511: Mark various parts with phpdoc internal - part 3 * Task #86517: Mark various parts with phpdoc internal - part 4 * Bug #86520: Uri->getQuery() must never return null * Task #86521: Streamline phpdoc annotations in EXT:extbase * Bug #86522: Site related exceptions and datatypes are not handled * Bug #86523: Scanning an extension after first scan not possible anymore * Bug #86530: Cropper only takes half width * Bug #86533: Remove false positives from extension scanner * Bug #86534: Check TCA in ext_tables.php Upgrade Wizard not working in Master * Bug #86536: Importings slugs from realurl adds slashes * Bug #86539: Missing requirements throws a PHP error