diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-01-03 10:33:35 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-01-03 10:33:35 +0000 |
| commit | 0ea96f5fe459cadec3e0ff8e4d06e33f17af1756 (patch) | |
| tree | 09ba8eb0d8fabf3f7097245ec258bd68c47581c6 /lib/plugins/engine/PluginManager.class.php | |
| parent | 73c5eeb45685245fc66a9a92dc5e94e2bf4460a8 (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.php | 16 |
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; } /** |
