‪TYPO3CMS  10.4
TypoScriptService.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
21 
28 {
29 
34 
39  public function ‪injectTypoScriptService(\‪TYPO3\CMS\Core\TypoScript\‪TypoScriptService $typoScriptService)
40  {
41  $this->extbaseTypoScriptService = $typoScriptService;
42  }
43 
52  public function ‪resolvePossibleTypoScriptConfiguration(array $configuration = []): array
53  {
54  $configuration = $this->extbaseTypoScriptService->convertPlainArrayToTypoScriptArray($configuration);
55  $configuration = $this->‪resolveTypoScriptConfiguration($configuration);
56  $configuration = $this->extbaseTypoScriptService->convertTypoScriptArrayToPlainArray($configuration);
57  return $configuration;
58  }
59 
76  protected function ‪resolveTypoScriptConfiguration(array $configuration = []): array
77  {
78  foreach ($configuration as $key => $value) {
79  $keyWithoutDot = rtrim((string)$key, '.');
80  if (isset($configuration[$keyWithoutDot]) && isset($configuration[$keyWithoutDot . '.'])) {
81  $value = $this->‪getTypoScriptFrontendController()->cObj->cObjGetSingle(
82  $configuration[$keyWithoutDot],
83  $configuration[$keyWithoutDot . '.'],
84  $keyWithoutDot
85  );
86  $configuration[$keyWithoutDot] = $value;
87  } elseif (!isset($configuration[$keyWithoutDot]) && isset($configuration[$keyWithoutDot . '.'])) {
88  $configuration[$keyWithoutDot] = $this->‪resolveTypoScriptConfiguration($value);
89  }
90  unset($configuration[$keyWithoutDot . '.']);
91  }
92  return $configuration;
93  }
94 
98  protected function ‪getTypoScriptFrontendController()
99  {
100  return ‪$GLOBALS['TSFE'];
101  }
102 }
‪TYPO3\CMS\Form\Mvc\Configuration
Definition: ConfigurationManager.php:18
‪TYPO3
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\getTypoScriptFrontendController
‪TypoScriptFrontendController getTypoScriptFrontendController()
Definition: TypoScriptService.php:97
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\resolvePossibleTypoScriptConfiguration
‪array resolvePossibleTypoScriptConfiguration(array $configuration=[])
Definition: TypoScriptService.php:51
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\injectTypoScriptService
‪injectTypoScriptService(\TYPO3\CMS\Core\TypoScript\TypoScriptService $typoScriptService)
Definition: TypoScriptService.php:38
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService
Definition: TypoScriptService.php:28
‪TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
Definition: TypoScriptFrontendController.php:98
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\$extbaseTypoScriptService
‪TYPO3 CMS Core TypoScript TypoScriptService $extbaseTypoScriptService
Definition: TypoScriptService.php:32
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\resolveTypoScriptConfiguration
‪array resolveTypoScriptConfiguration(array $configuration=[])
Definition: TypoScriptService.php:75