diff options
| author | Murtaza Sultani <sultani@data-quest.de> | 2025-07-08 13:20:24 +0200 |
|---|---|---|
| committer | Murtaza Sultani <sultani@data-quest.de> | 2025-07-08 13:20:24 +0200 |
| commit | 89632c319a4669de1553a2bd01df6c7ce67b1213 (patch) | |
| tree | 30dbb76c4ed8fdc66f310dd5ef077daf5d7e6767 /db | |
| parent | 938320a1a09a88891541eaac112752ad8ba667ab (diff) | |
Resolve "Startseiten-Widget für den persönlichen Kalender hinzufügen"
Closes #4923
Merge request studip/studip!3707
Diffstat (limited to 'db')
| -rw-r--r-- | db/migrations/6.1.9_add_calendar_widget.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/db/migrations/6.1.9_add_calendar_widget.php b/db/migrations/6.1.9_add_calendar_widget.php new file mode 100644 index 0000000..06768d8 --- /dev/null +++ b/db/migrations/6.1.9_add_calendar_widget.php @@ -0,0 +1,48 @@ +<?php + +final class AddCalendarWidget extends Migration +{ + public function up() + { + $db = DBManager::get(); + + // get position + $navigationpos = $db->fetchColumn("SELECT MAX(navigationpos) + 1 FROM plugins WHERE plugintype = 'PortalPlugin'"); + + // install as portal plugin + $db->execute( + "INSERT INTO plugins (pluginclassname, pluginname, plugintype, enabled, navigationpos) + VALUES (:pluginclassname, :pluginname, :plugintype, :enabled, :navigationpos)", + [ + 'pluginclassname' => 'CalendarWidget', + 'pluginname' => 'CalendarWidget', + 'plugintype' => 'PortalPlugin', + 'enabled' => 'yes', + 'navigationpos' => $navigationpos + ] + ); + + $db->execute( + "INSERT INTO roles_plugins (roleid, pluginid) + SELECT roleid, :pluginid + FROM roles + WHERE `system` = 'y' AND rolename != 'Nobody'", + ['pluginid' => $db->lastInsertId()] + ); + } + + public function down() + { + $db = DBManager::get(); + + $plugin_id = $db->fetchColumn( + "SELECT pluginid FROM plugins WHERE pluginclassname = ?", ['CalendarWidget'] + ); + + $db->execute("DELETE FROM widget_default WHERE pluginid = ?", [$plugin_id]); + $db->execute("DELETE FROM widget_user WHERE pluginid = ?", [$plugin_id]); + $db->execute("DELETE FROM roles_plugins WHERE pluginid = ?", [$plugin_id]); + $db->execute("DELETE FROM plugins WHERE pluginid = ?", [$plugin_id]); + } + +} |
