Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 41... Línea 41...
41
$providers = get_message_providers();
41
$providers = get_message_providers();
42
// Fetch the manage message outputs interface.
42
// Fetch the manage message outputs interface.
43
$preferences = get_message_output_default_preferences();
43
$preferences = get_message_output_default_preferences();
Línea 44... Línea 44...
44
 
44
 
45
if (($form = data_submitted()) && confirm_sesskey()) {
-
 
46
    $newpreferences = array();
-
 
47
    // Prepare default message outputs settings.
-
 
48
    foreach ($providers as $provider) {
-
 
49
        $componentproviderbase = $provider->component.'_'.$provider->name;
-
 
50
        $disableprovidersetting = $componentproviderbase.'_disable';
-
 
51
        if (!isset($form->$disableprovidersetting)) {
-
 
52
            $newpreferences[$disableprovidersetting] = 1;
-
 
53
        } else {
-
 
54
            $newpreferences[$disableprovidersetting] = 0;
-
 
55
        }
-
 
56
 
-
 
57
        $componentprovidersetting = $componentproviderbase.'_locked';
-
 
58
        foreach ($processors as $processor) {
-
 
59
            $value = 0;
-
 
60
            if (isset($form->{$componentprovidersetting}[$processor->name])) {
-
 
61
                $value = $form->{$componentprovidersetting}[$processor->name];
-
 
62
                if ($value == 'on') {
-
 
63
                    $value = 1;
-
 
64
                }
-
 
65
            }
-
 
66
 
-
 
67
            // Record the site preference.
-
 
68
            $newpreferences[$processor->name.'_provider_'.$componentprovidersetting] = $value;
-
 
69
        }
-
 
70
 
-
 
71
        $componentprovidersetting = $componentproviderbase.'_enabled';
-
 
72
        $newsettings = [];
-
 
73
        if (isset($form->$componentprovidersetting)) {
-
 
74
            // Store defined comma-separated processors as setting value.
-
 
75
            // Using array_filter eliminates elements set to 0 above.
-
 
76
            $newsettings = array_keys(array_filter($form->{$componentprovidersetting}));
-
 
77
        }
-
 
78
 
-
 
79
        // Let's join existing setting values for disabled processors.
-
 
80
        $property = 'message_provider_'.$componentprovidersetting;
-
 
81
        if (property_exists($preferences, $property)) {
-
 
82
            $existingsetting = $preferences->$property;
-
 
83
            foreach ($disabledprocessors as $disable) {
-
 
84
                if (strpos($existingsetting, $disable->name) > -1) {
-
 
85
                    $newsettings[] = $disable->name;
-
 
86
                }
-
 
87
            }
-
 
88
        }
-
 
89
 
-
 
90
        $value = join(',', $newsettings);
-
 
91
        if (empty($value)) {
-
 
92
            $value = null;
-
 
93
        }
-
 
94
 
-
 
95
        // Record the site preference.
-
 
96
        $newpreferences['message_provider_'.$componentprovidersetting] = $value;
-
 
97
    }
-
 
98
 
-
 
99
    // Update database.
-
 
Línea 100... Línea 45...
100
    $transaction = $DB->start_delegated_transaction();
45
if (($form = data_submitted()) && confirm_sesskey()) {
101
 
46
 
102
    // Save processors enabled/disabled status.
47
    // Save processors enabled/disabled status.
103
    foreach ($allprocessors as $processor) {
48
    foreach ($allprocessors as $processor) {
104
        $enabled = isset($form->{$processor->name});
49
        $enabled = isset($form->{$processor->name});
105
        $class = \core_plugin_manager::resolve_plugininfo_class('message');
50
        $class = \core_plugin_manager::resolve_plugininfo_class('message');
Línea 106... Línea -...
106
        $class::enable_plugin($processor->name, $enabled);
-
 
107
    }
-
 
108
 
-
 
109
    foreach ($newpreferences as $name => $value) {
-
 
110
        $old = isset($preferences->$name) ? $preferences->$name : '';
-
 
111
 
-
 
112
        if ($old != $value) {
-
 
113
            add_to_config_log($name, $old, $value, 'core');
-
 
114
        }
-
 
115
 
-
 
116
        set_config($name, $value, 'message');
-
 
117
    }
-
 
118
    $transaction->allow_commit();
-
 
119
 
51
        $class::enable_plugin($processor->name, $enabled);
120
    core_plugin_manager::reset_caches();
52
    }
121
 
53
 
Línea 122... Línea 54...
122
    $url = new moodle_url('message.php');
54
    $url = new moodle_url('message.php');
123
    redirect($url);
55
    redirect($url);
124
}
56
}
Línea 125... Línea 57...
125
 
57
 
126
// Page settings
58
// Page settings.