diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php index 1909e1aef94..73d6617534c 100644 --- a/core/Plugin/Manager.php +++ b/core/Plugin/Manager.php @@ -527,7 +527,8 @@ public function deactivatePlugin($pluginName) // execute deactivate() to let the plugin do cleanups $this->executePluginDeactivate($pluginName); - $this->savePluginDeactivationTime($pluginName); + + $this->savePluginTime(self::LAST_PLUGIN_DEACTIVATION_TIME_OPTION_PREFIX, $pluginName); $this->unloadPluginFromMemory($pluginName); @@ -692,7 +693,7 @@ public function activatePlugin($pluginName) $this->installPluginIfNecessary($plugin); $plugin->activate(); - $this->savePluginActivationTime($pluginName); + $this->savePluginTime(self::LAST_PLUGIN_ACTIVATION_TIME_OPTION_PREFIX, $pluginName); EventDispatcher::getInstance()->postPendingEventsTo($plugin); @@ -1669,16 +1670,19 @@ public function loadPluginTranslations() } } - private function savePluginActivationTime($pluginName) + private function savePluginTime($timingName, $pluginName) { - $optionName = self::LAST_PLUGIN_ACTIVATION_TIME_OPTION_PREFIX . $pluginName; - Option::set($optionName, time()); - } + $optionName = $timingName . $pluginName; - private function savePluginDeactivationTime($pluginName) - { - $optionName = self::LAST_PLUGIN_DEACTIVATION_TIME_OPTION_PREFIX . $pluginName; - Option::set($optionName, time()); + try { + Option::set($optionName, time()); + } catch (\Exception $e) { + if (SettingsPiwik::isMatomoInstalled()) { + throw $e; + } + // we ignore any error while Matomo is not installed yet. refs #16741 + } } + }