aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/6.1.14_add_themes_table.php
blob: 494ea5d98aec7a8137221806d226ca080f7ed0d8 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php

final class AddThemesTable extends Migration
{
    public function description()
    {
        return 'Create table for Stud.IP Themes';
    }

    public function up()
    {
        $query = "CREATE TABLE IF NOT EXISTS `themes` (
                    `id` INT(11) NOT NULL AUTO_INCREMENT,
                    `active` TINYINT(1) NOT NULL DEFAULT 0,
                    `name` VARCHAR(255) NOT NULL,
                    `origin` ENUM('system', 'custom') COLLATE latin1_bin NOT NULL,
                    `version` VARCHAR(50) NOT NULL,
                    `studip_min_version` VARCHAR(50) NOT NULL,
                    `studip_max_version` VARCHAR(50) NOT NULL,
                    `author` VARCHAR(255) NOT NULL,
                    `description` VARCHAR(255) NOT NULL,
                    `type` ENUM('light', 'dark', 'high-contrast') COLLATE latin1_bin NOT NULL,
                    `values` MEDIUMTEXT NOT NULL,
                    `mkdate` INT(11) NOT NULL,
                    `chdate` INT(11) NOT NULL,
                    PRIMARY KEY (`id`)
                  )";
        DBManager::get()->exec($query);

        $default_values = json_encode([
            '--color--brand-primary'            => '#28497c',
            '--color--brand-primary-contrast'   => '#ffffff',
            '--color--brand-secondary'          => '#28497c',
            '--color--brand-secondary-contrast' => '#ffffff',
            '--color--global-background'        => '#ffffff',
            '--color--font-primary'             => '#101010',
            '--color--font-secondary'           => '#3c454e',
            '--color--font-inactive'            => '#676767',
            '--color--font-inverted'            => '#ffffff',
            '--color--main-navigation-item'     => '#28497c',
            '--color--sidebar-item'             => '#28497c',
            '--color--sidebar-item-hover'       => '#101010',
            '--color--highlight'                => '#28497c',
            '--color--highlight-hover'          => '#d60000',
            '--color--content-link'             => '#28497c',
            '--color--content-link-hover'       => '#d60000',
        ]);

        $stmt = DBManager::get()->prepare("
            INSERT INTO `themes`
                (`id`, `active`, `name`,  `origin`, `version`, `studip_min_version`, `studip_max_version`, `author`, `description`, `type`, `values`, `mkdate`, `chdate`)
            VALUES
                (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
        ");

        $stmt->execute([
            1,
            1,
            'Stud.IP Light Theme',
            'system',
            '1.0',
            '6.1',
            '6.1',
            'Ron Lucke',
            'Default Light Theme',
            'light',
            $default_values,
        ]);

    }

    public function down()
    {
        DBManager::get()->exec('DROP TABLE IF EXISTS `themes`');
    }
}