aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/6.1.9_add_calendar_widget.php
blob: 06768d8ab5f245a677a24a6f20e63ac078d62885 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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]);
    }

}