Bugfix: Remove inactive/removed plugins from enabled_list

This commit is contained in:
djmaze 2021-03-08 12:22:49 +01:00
parent 6d0fa33022
commit dade7756f8
2 changed files with 19 additions and 21 deletions

View file

@ -835,8 +835,7 @@ trait Admin
} }
} }
$aNewEnabledPlugins = \array_unique($aNewEnabledPlugins); $oConfig->Set('plugins', 'enabled_list', \trim(\implode(',', \array_unique($aNewEnabledPlugins)), ' ,'));
$oConfig->Set('plugins', 'enabled_list', \trim(\implode(',', $aNewEnabledPlugins), ' ,'));
return $oConfig->Save(); return $oConfig->Save();
} }

View file

@ -80,27 +80,26 @@ class Manager
$this->aAdditionalJson = array(); $this->aAdditionalJson = array();
$this->aProcessTemplate = array(); $this->aProcessTemplate = array();
$this->bIsEnabled = (bool) $this->oActions->Config()->Get('plugins', 'enable', false); $oConfig = $this->oActions->Config();
if ($this->bIsEnabled) $this->bIsEnabled = (bool) $oConfig->Get('plugins', 'enable', false);
{ if ($this->bIsEnabled) {
$sList = \strtolower($this->oActions->Config()->Get('plugins', 'enabled_list', '')); $sList = $oConfig->Get('plugins', 'enabled_list', '');
if (0 < \strlen($sList)) if (0 < \strlen($sList)) {
{ $aList = \array_map('trim', \explode(',', $sList));
$aList = \explode(',', $sList); foreach ($aList as $i => $sName) {
$aList = \array_map('trim', $aList);
foreach ($aList as $sName)
{
if (0 < \strlen($sName))
{
$oPlugin = $this->CreatePluginByName($sName); $oPlugin = $this->CreatePluginByName($sName);
if ($oPlugin) if ($oPlugin) {
{
$oPlugin->Init(); $oPlugin->Init();
$this->aPlugins[] = $oPlugin; $this->aPlugins[] = $oPlugin;
} else {
unset($aList[$i]);
} }
} }
$aList = \implode(',', \array_unique($aList));
if ($sList != $aList) {
$oConfig->Set('plugins', 'enabled_list', $aList);
$oConfig->Save();
} }
} }