Passed
Push — master ( f762ef...190e8a )
by Julito
09:11
created

Version20150504182600   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 28
dl 0
loc 60
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A up() 0 43 3
A down() 0 3 1
1
<?php
2
/* For licensing terms, see /license.txt */
3
4
namespace Chamilo\CoreBundle\Migrations\Schema\V110;
5
6
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
7
use Doctrine\DBAL\Schema\Schema;
8
9
/**
10
 * Class Version20150504182600
11
 *
12
 * @package Chamilo\CoreBundle\Migrations\Schema\V110
13
 */
14
class Version20150504182600 extends AbstractMigrationChamilo
15
{
16
    /**
17
     * @param Schema $schema
18
     *
19
     * @throws \Doctrine\DBAL\Schema\SchemaException
20
     */
21
    public function up(Schema $schema)
22
    {
23
        // Set parent language to Spanish for all close-by languages. Same for Italian,
24
        // French, Portuguese and Chinese
25
        $connection = $this->connection;
26
        $sql = "SELECT id, english_name
27
                FROM language
28
                WHERE english_name IN ('spanish', 'italian', 'portuguese', 'simpl_chinese', 'french')";
29
        $result = $connection->executeQuery($sql);
30
        $dataList = $result->fetchAll();
31
        $languages = array();
32
33
        if (!empty($dataList)) {
34
            foreach ($dataList as $data) {
35
                $languages[$data['english_name']] = $data['id'];
36
            }
37
        }
38
        $this->addSql("
39
            UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'quechua_cusco'
40
        ");
41
        $this->addSql("
42
            UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'galician'
43
        ");
44
        $this->addSql("
45
            UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'esperanto'
46
        ");
47
        $this->addSql("
48
            UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'catalan'
49
        ");
50
        $this->addSql("
51
            UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'asturian'
52
        ");
53
        $this->addSql("
54
            UPDATE language SET parent_id = " . $languages['spanish'] . " WHERE english_name = 'friulian'
55
        ");
56
        $this->addSql("
57
            UPDATE language SET parent_id = " . $languages['french'] . " WHERE english_name = 'occitan'
58
        ");
59
        $this->addSql("
60
            UPDATE language SET parent_id = " . $languages['portuguese'] . " WHERE english_name = 'brazilian'
61
        ");
62
        $this->addSql("
63
            UPDATE language SET parent_id = " . $languages['simpl_chinese'] . " WHERE english_name = 'trad_chinese'
64
        ");
65
    }
66
67
    /**
68
     * We don't allow downgrades yet
69
     * @param Schema $schema
70
     */
71
    public function down(Schema $schema)
72
    {
73
        $this->addSql("
74
            UPDATE language SET parent_id = 0 WHERE english_name IN ('trad_chinese', 'brazilian', 'occitan', 'friulian', 'asturian', 'catalan', 'esperanto', 'galician', 'quechua_cusco')
75
        ");
76
    }
77
}
78