From 2a08fd090460a5b4c5f0bf884446fb500fcaff56 Mon Sep 17 00:00:00 2001 From: Benni Mack <benni@typo3.org> Date: Sun, 28 Nov 2021 20:32:19 +0100 Subject: [PATCH] [!!!][TASK] Remove legacy Element Browser hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'] is replaced in favor of the Element Browser registry. Related: #95322 Resolves: #96123 Releases: master Change-Id: If362551cf7c4a093cde4e0742037155afedbea32 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72345 Tested-by: Wouter Wolters <typo3@wouterwolters.nl> Tested-by: Stefan Bürk <stefan@buerk.tech> Tested-by: core-ci <typo3@b13.com> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by: Stefan Bürk <stefan@buerk.tech> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> --- ...g-96107-DeprecatedFunctionalityRemoved.rst | 1 + .../Php/ArrayDimensionMatcher.php | 1 + .../Controller/ElementBrowserController.php | 49 +++---------------- 3 files changed, 10 insertions(+), 41 deletions(-) diff --git a/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst b/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst index 8d12d73115d5..d65b75093aa4 100644 --- a/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst +++ b/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst @@ -93,6 +93,7 @@ The following global variables have been removed: The following hooks have been removed: - :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['FileDumpEID.php']['checkFileAccess']` +- :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering']` The following signals have been removed: diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php index 4e9d07cf27f8..d4795d3c88ca 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php @@ -531,6 +531,7 @@ return [ '$GLOBALS[\'TYPO3_CONF_VARS\'][\'SC_OPTIONS\'][\'typo3/browse_links.php\'][\'browserRendering\']' => [ 'restFiles' => [ 'Deprecation-95322-LegacyElementBrowserLogic.rst', + 'Breaking-96107-DeprecatedFunctionalityRemoved.rst', ], ], '$GLOBALS[\'TBE_MODULES_EXT\'][\'xMOD_db_new_content_el\'][\'addElClasses\']' => [ diff --git a/typo3/sysext/recordlist/Classes/Controller/ElementBrowserController.php b/typo3/sysext/recordlist/Classes/Controller/ElementBrowserController.php index b192fa8d8708..9d2ffad3c754 100644 --- a/typo3/sysext/recordlist/Classes/Controller/ElementBrowserController.php +++ b/typo3/sysext/recordlist/Classes/Controller/ElementBrowserController.php @@ -17,10 +17,8 @@ namespace TYPO3\CMS\Recordlist\Controller; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; -use TYPO3\CMS\Backend\Routing\UriBuilder; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Http\HtmlResponse; -use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Recordlist\Browser\ElementBrowserInterface; @@ -55,12 +53,6 @@ class ElementBrowserController { $this->getLanguageService()->includeLLFile('EXT:recordlist/Resources/Private/Language/locallang_browse_links.xlf'); $this->mode = $request->getQueryParams()['mode'] ?? $request->getQueryParams()['mode'] ?? ''; - // Fallback for old calls, which use mode "wizard" or "rte" for link selection - if ($this->mode === 'wizard' || $this->mode === 'rte') { - trigger_error('Calling ElementBrowserController::mainAction with "wizard" or "mode" as values will be removed in TYPO3 v12.0. Link to the "wizard_link" instead.', E_USER_DEPRECATED); - $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class); - return new RedirectResponse((string)$uriBuilder->buildUriFromRoute('wizard_link', $_GET), 303); - } return new HtmlResponse($this->main($request)); } @@ -71,42 +63,17 @@ class ElementBrowserController */ protected function main(ServerRequestInterface $request) { - $content = ''; - - // Render type by user func - $browserRendered = false; - - // @deprecated will be removed in TYPO3 v12.0. - if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'] ?? [])) { - trigger_error('$TYPO3_CONF_VARS[SC_OPTIONS][typo3/browse_links.php][browserRendering] will be removed in TYPO3 v12.0. Use a custom ElementBrowser, as introduced in TYPO3 7.6, instead.', E_USER_DEPRECATED); - } - foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'] ?? [] as $className) { - $browserRenderObj = GeneralUtility::makeInstance($className); - if (is_object($browserRenderObj) && method_exists($browserRenderObj, 'isValid') && method_exists($browserRenderObj, 'render')) { - if ($browserRenderObj->isValid($this->mode, $this)) { - $content = $browserRenderObj->render($this->mode, $this); - $browserRendered = true; - break; - } - } + $browser = $this->getElementBrowserInstance(); + if (is_callable([$browser, 'setRequest'])) { + $browser->setRequest($request); } - // if type was not rendered use default rendering functions - if (!$browserRendered) { - $browser = $this->getElementBrowserInstance(); - if (is_callable([$browser, 'setRequest'])) { - $browser->setRequest($request); - } - - $backendUser = $this->getBackendUser(); - $modData = $backendUser->getModuleData('browse_links.php', 'ses'); - [$modData] = $browser->processSessionData($modData); - $backendUser->pushModuleData('browse_links.php', $modData); - - $content = $browser->render(); - } + $backendUser = $this->getBackendUser(); + $modData = $backendUser->getModuleData('browse_links.php', 'ses'); + [$modData] = $browser->processSessionData($modData); + $backendUser->pushModuleData('browse_links.php', $modData); - return $content; + return $browser->render(); } /** -- GitLab