aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/6.0.16_step_4109.php
blob: 6332f26116b6300f1fa7e5cb08724d6ec05fafa6 (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
<?php
return new class extends Migration
{

    public function description()
    {
        return 'StEP 4109: Remove ELEARNING_INTERFACE';
    }

    protected function up()
    {
        $db = DBManager::get();

        $plugin_id = $db->fetchColumn("SELECT pluginid FROM plugins WHERE pluginclassname='CoreElearningInterface'");
        $db->execute("DELETE FROM roles_plugins WHERE pluginid=?", [$plugin_id]);
        $db->execute("DELETE FROM tools_activated WHERE plugin_id=?", [$plugin_id]);
        $db->execute("DELETE FROM plugins WHERE pluginid=?", [$plugin_id]);

        $ilias_config = $db->fetchColumn("SELECT `value` FROM config_values WHERE `field`='ILIAS_INTERFACE_SETTINGS'");
        if ($ilias_config) {
            $ilias_config = json_decode($ilias_config, true);
            if (is_array($ilias_config)) {
                $config_keys = array_keys($ilias_config);
                if (count($config_keys)) {
                    $db->execute("DELETE FROM auth_extern WHERE external_user_system_type NOT IN (?)", [$config_keys]);
                    $db->execute("DELETE FROM object_contentmodules WHERE system_type NOT IN (?)", [$config_keys]);
                }
            }
        } else {
            $elearning_active = $db->fetchColumn("SELECT `value` FROM config_values WHERE `field` LIKE 'ELEARNING_INTERFACE%ACTIVE' LIMIT 1");
            if (!$elearning_active) {
                $db->execute("DELETE FROM auth_extern");
                $db->execute("DELETE FROM object_contentmodules");
            }
        }
        $db->exec("DELETE FROM `config_values` WHERE `field` LIKE 'ELEARNING_INTERFACE%'");
        $db->exec("DELETE FROM `config_values` WHERE `field` IN ('SOAP_ENABLE', 'SOAP_USE_PHP5')");
        $db->exec("DELETE FROM `config` WHERE `field` LIKE 'ELEARNING_INTERFACE%'");
        $db->exec("DELETE FROM `config` WHERE `field` IN ('SOAP_ENABLE', 'SOAP_USE_PHP5')");

    }

    protected function down()
    {
    }

};