‪TYPO3CMS  ‪main
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 
43  public function ‪resolvePossibleTypoScriptConfiguration(array $configuration = []): array
44  {
45  $configuration = $this->coreTypoScriptService->convertPlainArrayToTypoScriptArray($configuration);
46  $configuration = $this->‪resolveTypoScriptConfiguration($configuration);
47  $configuration = $this->coreTypoScriptService->convertTypoScriptArrayToPlainArray($configuration);
48  return $configuration;
49  }
50 
66  protected function ‪resolveTypoScriptConfiguration(array $configuration = []): array
67  {
68  foreach ($configuration as $key => $value) {
69  $keyWithoutDot = rtrim((string)$key, '.');
70  if (isset($configuration[$keyWithoutDot]) && isset($configuration[$keyWithoutDot . '.'])) {
71  $value = $this->‪getTypoScriptFrontendController()->cObj->cObjGetSingle(
72  $configuration[$keyWithoutDot],
73  $configuration[$keyWithoutDot . '.'],
74  $keyWithoutDot
75  );
76  $configuration[$keyWithoutDot] = $value;
77  } elseif (!isset($configuration[$keyWithoutDot]) && isset($configuration[$keyWithoutDot . '.'])) {
78  $configuration[$keyWithoutDot] = $this->‪resolveTypoScriptConfiguration($value);
79  }
80  unset($configuration[$keyWithoutDot . '.']);
81  }
82  return $configuration;
83  }
84 
86  {
87  return ‪$GLOBALS['TSFE'];
88  }
89 }
‪TYPO3\CMS\Form\Mvc\Configuration
Definition: ConfigurationManager.php:18
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\getTypoScriptFrontendController
‪getTypoScriptFrontendController()
Definition: TypoScriptService.php:85
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\resolvePossibleTypoScriptConfiguration
‪resolvePossibleTypoScriptConfiguration(array $configuration=[])
Definition: TypoScriptService.php:43
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\__construct
‪__construct(CoreTypoScriptService $coreTypoScriptService)
Definition: TypoScriptService.php:32
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService
Definition: TypoScriptService.php:29
‪TYPO3\CMS\Core\TypoScript\TypoScriptService
Definition: TypoScriptService.php:27
‪TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
Definition: TypoScriptFrontendController.php:58
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\resolveTypoScriptConfiguration
‪resolveTypoScriptConfiguration(array $configuration=[])
Definition: TypoScriptService.php:66
‪TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService\$coreTypoScriptService
‪CoreTypoScriptService $coreTypoScriptService
Definition: TypoScriptService.php:30