2 namespace TYPO3\CMS\Extensionmanager\Utility;
50 $this->writeConfiguration($nestedConfiguration, $extensionKey);
66 public function writeConfiguration(array $configuration = array(), $extensionKey)
69 $configurationManager = $this->objectManager->get(\TYPO3\CMS\Core\Configuration\ConfigurationManager::class);
70 $configurationManager->setLocalConfigurationValueByPath(
'EXT/extConf/' . $extensionKey, serialize($configuration));
81 $mergedConfiguration = $this->getDefaultConfigurationFromExtConfTemplateAsValuedArray($extensionKey);
82 $currentExtensionConfig = unserialize(
$GLOBALS[
'TYPO3_CONF_VARS'][
'EXT'][
'extConf'][$extensionKey]);
83 $currentExtensionConfig = is_array($currentExtensionConfig) ? $currentExtensionConfig : array();
85 \TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule(
87 $currentExtensionConfig
89 return $mergedConfiguration;
119 public function getDefaultConfigurationFromExtConfTemplateAsValuedArray($extensionKey)
123 $theConstants = array();
125 if ((
string)$rawConfigurationString !==
'') {
129 $tsStyleConfig = $this->objectManager->get(ConfigurationForm::class);
130 $tsStyleConfig->doNotSortCategoriesBeforeMakingForm =
true;
132 $theConstants = $tsStyleConfig->ext_initTSstyleConfig(
133 $rawConfigurationString,
134 $extensionPathInformation[
'siteRelPath'],
135 PATH_site . $extensionPathInformation[
'siteRelPath']
140 foreach ($theConstants as $configurationOptionName => $configurationOption) {
142 array_key_exists(
'subcat_name', $configurationOption)
143 && isset($tsStyleConfig->subCategories[$configurationOption[
'subcat_name']])
144 && isset($tsStyleConfig->subCategories[$configurationOption[
'subcat_name']][0])
146 $theConstants[$configurationOptionName][
'subcat_label'] = $tsStyleConfig->subCategories[$configurationOption[
'subcat_name']][0];
151 if (isset($tsStyleConfig->setup[
'constants'][
'TSConstantEditor.'])) {
152 foreach ($tsStyleConfig->setup[
'constants'][
'TSConstantEditor.'] as $category => $highlights) {
153 $theConstants[
'__meta__'][rtrim($category,
'.')][
'highlightText'] = $highlights[
'description'];
154 foreach ($highlights as $highlightNumber => $value) {
155 if (rtrim($category,
'.') == $theConstants[$value][
'cat']) {
156 $theConstants[$value][
'highlight'] = $highlightNumber;
163 return $theConstants;
172 return $GLOBALS[
'TYPO3_LOADED_EXT'][$extensionKey];
185 $extConfTemplateFileLocation = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(
186 'EXT:' . $extensionKey .
'/ext_conf_template.txt',
189 if (file_exists($extConfTemplateFileLocation)) {
190 $rawString = file_get_contents($extConfTemplateFileLocation);
207 $nestedConfiguration = array();
208 foreach ($valuedConfiguration as $name => $section) {
209 $path = str_replace(
'.',
'./', $name);
210 $nestedConfiguration = \TYPO3\CMS\Core\Utility\ArrayUtility::setValueByPath($nestedConfiguration, $path, $section[
'value'],
'/');
212 return $nestedConfiguration;
226 $flatExtensionConfig = \TYPO3\CMS\Core\Utility\ArrayUtility::flatten($nestedConfiguration);
227 $valuedCurrentExtensionConfig = array();
228 foreach ($flatExtensionConfig as $key => $value) {
229 $valuedCurrentExtensionConfig[$key][
'value'] = $value;
231 return $valuedCurrentExtensionConfig;