diff --git a/typo3/sysext/core/Classes/TypoScript/Parser/TypoScriptParser.php b/typo3/sysext/core/Classes/TypoScript/Parser/TypoScriptParser.php index fb6abb034a63f11408f985d02327e8d015257281..a5db2e44ee8008b4c74dc628944c032ebd18262f 100644 --- a/typo3/sysext/core/Classes/TypoScript/Parser/TypoScriptParser.php +++ b/typo3/sysext/core/Classes/TypoScript/Parser/TypoScriptParser.php @@ -14,12 +14,14 @@ namespace TYPO3\CMS\Core\TypoScript\Parser; * The TYPO3 project - inspiring people to share! */ -use TYPO3\CMS\Backend\Configuration\TypoScript\ConditionMatching\ConditionMatcher; +use TYPO3\CMS\Backend\Configuration\TypoScript\ConditionMatching\ConditionMatcher as BackendConditionMatcher; +use TYPO3\CMS\Core\Configuration\TypoScript\ConditionMatching\AbstractConditionMatcher; use TYPO3\CMS\Core\TimeTracker\TimeTracker; use TYPO3\CMS\Core\TypoScript\ExtendedTemplateService; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Core\Utility\PathUtility; +use TYPO3\CMS\Frontend\Configuration\TypoScript\ConditionMatching\ConditionMatcher as FrontendConditionMatcher; /** * The TypoScript parser @@ -829,8 +831,15 @@ class TypoScriptParser if ($condition[0] !== '[') { $condition = '[' . $condition . ']'; } - /** @var ConditionMatcher $conditionMatcher */ - $conditionMatcher = GeneralUtility::makeInstance(ConditionMatcher::class); + + /** @var AbstractConditionMatcher $conditionMatcher */ + $conditionMatcher = null; + if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_FE) { + $conditionMatcher = GeneralUtility::makeInstance(FrontendConditionMatcher::class); + } else { + $conditionMatcher = GeneralUtility::makeInstance(BackendConditionMatcher::class); + } + // If it didn't match then proceed to the next include, but prepend next normal (not file) part to output string if (!$conditionMatcher->match($condition)) { $newString .= $tsContentsTillNextInclude . LF;