Typo3 在extbase控制器中写入extConf

Typo3 在extbase控制器中写入extConf,typo3,backend,globals,Typo3,Backend,Globals,我有一个小小的extbase扩展,可以更改我的颜色设置(例如css、cookiebar等),我还想更改控制器中后端sysext中后端插件按钮的颜色 获取值: $var = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']); $var["loginHighlightColor"]="#444444"; 但是现在,我如何保存价值呢? 尝试以下语句时,它会正确设置值,但不会持久化: $GLOBALS['TYPO

我有一个小小的extbase扩展,可以更改我的颜色设置(例如css、cookiebar等),我还想更改控制器中
后端
sysext中后端插件按钮的颜色

获取值:

$var = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']);
$var["loginHighlightColor"]="#444444";
但是现在,我如何保存价值呢? 尝试以下语句时,它会正确设置值,但不会持久化:

$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'] = serialize($var);

即使尝试使用PersistentManager手动持久化也不起作用。

这就是它在我的AdditionalConfiguration.php中的工作原理。也许你可以适应它:

$resourcePath = 'EXT:' . $extKey . '/Resources/Public/Images/';
$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'] = serialize(
    [
        'loginLogo'            => $resourcePath . 'logo.svg',
        'loginHighlightColor'  => '#c0c0c0',
        'loginBackgroundImage' => $resourcePath . 'login-bg.svg',
    ]
);

这就是它在我的AdditionalConfiguration.php中的工作方式。也许你可以适应它:

$resourcePath = 'EXT:' . $extKey . '/Resources/Public/Images/';
$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'] = serialize(
    [
        'loginLogo'            => $resourcePath . 'logo.svg',
        'loginHighlightColor'  => '#c0c0c0',
        'loginBackgroundImage' => $resourcePath . 'login-bg.svg',
    ]
);

您可能需要执行与此处相同的操作:

由于该函数受保护,因此不能从代码中调用它。 您可以使用两个公共功能:

公共函数saveAction(数组$config,$extensionKey)(第109行)


公共函数saveAndCloseAction(数组$config,$extensionKey)(第131行)

您可能需要执行与此处相同的操作:

由于该函数受保护,因此不能从代码中调用它。 您可以使用两个公共功能:

公共函数saveAction(数组$config,$extensionKey)(第109行)

公共函数saveAndCloseAction(数组$config,$extensionKey)(第131行)

多亏了我得到了它:

$var = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']);
$var["loginHighlightColor"]="#444444";

$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'] = serialize($var);

$configurationUtility = $this->objectManager->get(\TYPO3\CMS\Extensionmanager\Utility\ConfigurationUtility::class);
$newConfiguration = $configurationUtility->getCurrentConfiguration("backend");
\TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($newConfiguration, $var);
$configurationUtility->writeConfiguration(
    $configurationUtility->convertValuedToNestedConfiguration($newConfiguration),
    "backend"
);
多亏了我,我得到了它:

$var = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']);
$var["loginHighlightColor"]="#444444";

$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'] = serialize($var);

$configurationUtility = $this->objectManager->get(\TYPO3\CMS\Extensionmanager\Utility\ConfigurationUtility::class);
$newConfiguration = $configurationUtility->getCurrentConfiguration("backend");
\TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($newConfiguration, $var);
$configurationUtility->writeConfiguration(
    $configurationUtility->convertValuedToNestedConfiguration($newConfiguration),
    "backend"
);

不要使用扩展配置动态更改安全配置值。将它们存储在其他地方,例如TYPO3注册表或配置记录中。不要使用扩展配置来动态保护配置值。将它们存储在其他地方,例如TYPO3注册表或配置记录中。