aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/5.5.13_add_siteinfo_options.php
blob: 46f7db10f9fecac16ae5d03f28e2c3fdc6d76438 (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
<?php
final class AddSiteinfoOptions extends Migration
{
    public function description()
    {
        return 'adds options for siteinfo pages';
    }

    public function up()
    {
        $db = DBManager::get();
        $db->exec("
            ALTER TABLE `siteinfo_details`
                ADD `page_disabled_nobody` TINYINT NOT NULL DEFAULT '0' AFTER `draft_status`
        ");
        $position = 1;
        foreach($db->fetchFirst("SELECT rubric_id
                                FROM siteinfo_rubrics
                                ORDER BY position, rubric_id ASC") as $rubric_id) {
            $db->execute("UPDATE siteinfo_rubrics SET position=? WHERE rubric_id=?", [$position++, $rubric_id]);
            $page_position = 1;
            foreach($db->fetchFirst("SELECT detail_id
                                FROM siteinfo_details
                                WHERE rubric_id = ?
                                ORDER BY position, detail_id ASC", [$rubric_id]) as $detail_id) {
                $db->execute("UPDATE siteinfo_details SET position=? WHERE detail_id=?", [$page_position++, $detail_id]);
            }
        }
    }

    public function down()
    {
        DBManager::get()->exec("
            ALTER TABLE `siteinfo_details`
                DROP `page_disabled_nobody`
        ");
    }
}