aboutsummaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorMurtaza Sultani <sultani@data-quest.de>2025-07-08 13:20:24 +0200
committerMurtaza Sultani <sultani@data-quest.de>2025-07-08 13:20:24 +0200
commit89632c319a4669de1553a2bd01df6c7ce67b1213 (patch)
tree30dbb76c4ed8fdc66f310dd5ef077daf5d7e6767 /db
parent938320a1a09a88891541eaac112752ad8ba667ab (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.php48
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]);
+ }
+
+}