From b10a2b2602bd8613e8c791b69275745f2549c6b4 Mon Sep 17 00:00:00 2001 From: Jigal van Hemert <jigal.van.hemert@typo3.org> Date: Tue, 3 Oct 2017 23:47:10 +0200 Subject: [PATCH] [BUGFIX] use included TSconfig files in frontend The files included in the field tsconfig_includes are now included when collecting the page TSconfig in the TypoScriptFrontendController. Resolves: #82662 Releases: master, 8.7 Change-Id: I226f942045647a3b7c4130b9e5d39b6d982efd1b Reviewed-on: https://review.typo3.org/54276 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by: Markus Klein <markus.klein@typo3.org> Tested-by: Markus Klein <markus.klein@typo3.org> --- .../TypoScriptFrontendController.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php index a24ab68586e2..9064417f34ad 100644 --- a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php +++ b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php @@ -43,6 +43,7 @@ use TYPO3\CMS\Core\TimeTracker\TimeTracker; use TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser; use TYPO3\CMS\Core\TypoScript\TemplateService; use TYPO3\CMS\Core\Utility\ArrayUtility; +use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; use TYPO3\CMS\Core\Utility\MathUtility; @@ -3843,6 +3844,29 @@ class TypoScriptFrontendController implements LoggerAwareInterface if (!is_array($this->pagesTSconfig)) { $TSdataArray = []; foreach ($this->rootLine as $k => $v) { + if (trim($v['tsconfig_includes'])) { + $includeTsConfigFileList = GeneralUtility::trimExplode(',', $v['tsconfig_includes'], true); + // Traversing list + foreach ($includeTsConfigFileList as $key => $includeTsConfigFile) { + if (strpos($includeTsConfigFile, 'EXT:') === 0) { + list($includeTsConfigFileExtensionKey, $includeTsConfigFilename) = explode( + '/', + substr($includeTsConfigFile, 4), + 2 + ); + if ((string)$includeTsConfigFileExtensionKey !== '' + && (string)$includeTsConfigFilename !== '' + && ExtensionManagementUtility::isLoaded($includeTsConfigFileExtensionKey) + ) { + $includeTsConfigFileAndPath = ExtensionManagementUtility::extPath($includeTsConfigFileExtensionKey) + . $includeTsConfigFilename; + if (file_exists($includeTsConfigFileAndPath)) { + $TSdataArray[] = file_get_contents($includeTsConfigFileAndPath); + } + } + } + } + } $TSdataArray[] = $v['TSconfig']; } // Adding the default configuration: -- GitLab