‪TYPO3CMS  11.5
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 
20 use ‪TYPO3\CMS\Core\TypoScript\TypoScriptService as CoreTypoScriptService;
22 
29 {
30  protected CoreTypoScriptService ‪$coreTypoScriptService;
31 
32  public function ‪__construct(CoreTypoScriptService ‪$coreTypoScriptService)
33  {
34  $this->coreTypoScriptService = ‪$coreTypoScriptService;
35  }
36 
45  public function ‪resolvePossibleTypoScriptConfiguration(array $configuration = []): array
46  {
47  $configuration = $this->coreTypoScriptService->convertPlainArrayToTypoScriptArray($configuration);
48  $configuration = $this->‪resolveTypoScriptConfiguration($configuration);
49  $configuration = $this->coreTypoScriptService->convertTypoScriptArrayToPlainArray($configuration);
50  return $configuration;
51  }
52 
69  protected function ‪resolveTypoScriptConfiguration(array $configuration = []): array
70  {
71  foreach ($configuration as $key => $value) {
72  $keyWithoutDot = rtrim((string)$key, '.');
73  if (isset($configuration[$keyWithoutDot]) && isset($configuration[$keyWithoutDot . '.'])) {
74  $value = $this->‪getTypoScriptFrontendController()->cObj->cObjGetSingle(
75  $configuration[$keyWithoutDot],
76  $configuration[$keyWithoutDot . '.'],
77  $keyWithoutDot
78  );
79  $configuration[$keyWithoutDot] = $value;
80  } elseif (!isset($configuration[$keyWithoutDot]) && isset($configuration[$keyWithoutDot . '.'])) {
81  $configuration[$keyWithoutDot] = $this->‪resolveTypoScriptConfiguration($value);
82  }
83  unset($configuration[$keyWithoutDot . '.']);
84  }
85  return $configuration;
86  }
87 
92  {
93  return ‪$GLOBALS['TSFE'];
94  }
95 }
‪TYPO3\CMS\Form\Mvc\Configuration
Definition: ConfigurationManager.php:18
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\getTypoScriptFrontendController
‪TypoScriptFrontendController getTypoScriptFrontendController()
Definition: TypoScriptService.php:91
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\__construct
‪__construct(CoreTypoScriptService $coreTypoScriptService)
Definition: TypoScriptService.php:32
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\resolvePossibleTypoScriptConfiguration
‪array resolvePossibleTypoScriptConfiguration(array $configuration=[])
Definition: TypoScriptService.php:45
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService
Definition: TypoScriptService.php:29
‪TYPO3\CMS\Core\TypoScript\TypoScriptService
Definition: TypoScriptService.php:25
‪TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
Definition: TypoScriptFrontendController.php:104
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\resolveTypoScriptConfiguration
‪array resolveTypoScriptConfiguration(array $configuration=[])
Definition: TypoScriptService.php:69
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\$coreTypoScriptService
‪CoreTypoScriptService $coreTypoScriptService
Definition: TypoScriptService.php:30