diff options
Diffstat (limited to 'plugins/CorePluginsAdmin/CorePluginsAdmin.php')
-rw-r--r-- | plugins/CorePluginsAdmin/CorePluginsAdmin.php | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/plugins/CorePluginsAdmin/CorePluginsAdmin.php b/plugins/CorePluginsAdmin/CorePluginsAdmin.php index 77e059ac42..3a08314a58 100644 --- a/plugins/CorePluginsAdmin/CorePluginsAdmin.php +++ b/plugins/CorePluginsAdmin/CorePluginsAdmin.php @@ -13,6 +13,9 @@ use Piwik\Piwik; use Piwik\Plugin; use Piwik\Plugins\CoreHome\SystemSummary; use Piwik\Plugins\CorePluginsAdmin\Model\TagManagerTeaser; +use Piwik\Changes\Model as ChangesModel; +use Piwik\Db; +use Piwik\Plugin\Manager as PluginManager; class CorePluginsAdmin extends Plugin { @@ -26,10 +29,35 @@ class CorePluginsAdmin extends Plugin 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'System.addSystemSummaryItems' => 'addSystemSummaryItems', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', - 'PluginManager.pluginActivated' => 'onPluginActivated' + 'PluginManager.pluginActivated' => 'onPluginActivated', + 'PluginManager.pluginInstalled' => 'addPluginChanges', + 'Updater.componentUpdated' => 'addPluginChanges', + 'PluginManager.pluginUninstalled' => 'removePluginChanges' ); } + /** + * Add any changes from newly installed or updated plugins to the changes table + * + * @param string $pluginName The name of the plugin that was updated or installed + */ + public function addPluginChanges(string $pluginName) + { + $changes = new ChangesModel(Db::get(), PluginManager::getInstance()); + $changes->addChanges($pluginName); + } + + /** + * Remove any changes from a plugin that has been uninstalled + * + * @param string $pluginName The name of the plugin that was uninstalled + */ + public function removePluginChanges(string $pluginName) + { + $changes = new ChangesModel(Db::get(), PluginManager::getInstance()); + $changes->removeChanges($pluginName); + } + public function onPluginActivated($pluginName) { if ($pluginName === 'TagManager') { |