2 declare(strict_types = 1);
21 use TYPO3\CMS\Core\Package\PackageManager;
50 $modeInstance = GeneralUtility::makeInstance(Mode::class, $mode[
'module'])->setFormatCode($formatCode);
52 if (!empty($mode[
'extensions']) && is_array($mode[
'extensions'])) {
53 $modeInstance->bindToFileExtensions($mode[
'extensions']);
56 if (isset($mode[
'default']) && $mode[
'default'] ===
true) {
57 $modeInstance->setAsDefault();
60 $modeRegistry->register($modeInstance);
64 $addonRegistry = GeneralUtility::makeInstance(AddonRegistry::class);
67 $addonInstance = GeneralUtility::makeInstance(Addon::class, $addon[
'module']);
69 if (!empty($addon[
'cssFiles']) && is_array($addon[
'cssFiles'])) {
70 $addonInstance->setCssFiles($addon[
'cssFiles']);
73 if (!empty($addon[
'options']) && is_array($addon[
'options'])) {
74 $addonInstance->setOptions($addon[
'options']);
77 if (!empty($addon[
'modes']) && is_array($addon[
'modes'])) {
78 $addonInstance->setModes($addon[
'modes']);
81 $addonRegistry->register($addonInstance);
96 if ($this->configuration !==
null) {
100 $this->configuration = [
107 $configurationFromCache = $cache->get($cacheIdentifier);
108 if ($configurationFromCache !==
false) {
109 $this->configuration = $configurationFromCache;
111 $packageManager = GeneralUtility::makeInstance(PackageManager::class);
112 $packages = $packageManager->getActivePackages();
114 foreach ($packages as $package) {
115 $configurationPath = $package->getPackagePath() .
'Configuration/Backend/T3editor';
116 $modesFileNameForPackage = $configurationPath .
'/Modes.php';
117 if (is_file($modesFileNameForPackage)) {
118 $definedModes = require_once $modesFileNameForPackage;
119 if (is_array($definedModes)) {
120 $this->configuration[
'modes'] = array_merge($this->configuration[
'modes'], $definedModes);
124 $addonsFileNameForPackage = $configurationPath .
'/Addons.php';
125 if (is_file($addonsFileNameForPackage)) {
126 $definedAddons = require_once $addonsFileNameForPackage;
127 if (is_array($definedAddons)) {
128 $this->configuration[
'addons'] = array_merge($this->configuration[
'addons'], $definedAddons);
132 $cache->set($cacheIdentifier, $this->configuration);
154 return GeneralUtility::makeInstance(CacheManager::class)->getCache(
'assets');