aboutsummaryrefslogtreecommitdiff
path: root/lib/plugins/engine/PluginManager.class.php
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2024-01-03 10:33:35 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2024-01-03 10:33:35 +0000
commit0ea96f5fe459cadec3e0ff8e4d06e33f17af1756 (patch)
tree09ba8eb0d8fabf3f7097245ec258bd68c47581c6 /lib/plugins/engine/PluginManager.class.php
parent73c5eeb45685245fc66a9a92dc5e94e2bf4460a8 (diff)
fixes #3569
Closes #3569 Merge request studip/studip!2458
Diffstat (limited to 'lib/plugins/engine/PluginManager.class.php')
-rw-r--r--lib/plugins/engine/PluginManager.class.php16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/plugins/engine/PluginManager.class.php b/lib/plugins/engine/PluginManager.class.php
index 39f4e87..bb8a563 100644
--- a/lib/plugins/engine/PluginManager.class.php
+++ b/lib/plugins/engine/PluginManager.class.php
@@ -282,8 +282,20 @@ class PluginManager
$state = $active ? 1 : 0;
unset($this->plugins_activated_cache[$user_id]);
- return $db->execute("REPLACE INTO plugins_activated (pluginid, range_type, range_id, state)
- VALUES (?, 'user', ?, ?)", [$pluginid, $user_id, $state]);
+ $query = "REPLACE INTO plugins_activated (pluginid, range_type, range_id, state)
+ VALUES (?, 'user', ?, ?)";
+ $result = $db->execute($query, [$pluginid, $user_id, $state]);
+
+ if ($result > 0) {
+ $plugin = $this->getPluginById($pluginid);
+ if ($active) {
+ call_user_func([get_class($plugin), 'onActivation'], $pluginid, $user_id);
+ } else {
+ call_user_func([get_class($plugin), 'onDeactivation'], $pluginid, $user_id);
+ }
+ }
+
+ return $result;
}
/**