Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 1441
Línea 20... Línea 20...
20
 * @package   core_message
20
 * @package   core_message
21
 * @copyright 2008 Luis Rodrigues and Martin Dougiamas
21
 * @copyright 2008 Luis Rodrigues and Martin Dougiamas
22
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23
 */
23
 */
Línea -... Línea 24...
-
 
24
 
-
 
25
use core\url;
24
 
26
 
Línea 25... Línea 27...
25
defined('MOODLE_INTERNAL') || die();
27
defined('MOODLE_INTERNAL') || die();
Línea 26... Línea 28...
26
 
28
 
Línea 42... Línea 44...
42
 *  fullmessagehtml string the full version (the message processor will choose with one to use)
44
 *  fullmessagehtml string the full version (the message processor will choose with one to use)
43
 *  smallmessage string the small version of the message
45
 *  smallmessage string the small version of the message
44
 *
46
 *
45
 * Optional parameters of the $eventdata object:
47
 * Optional parameters of the $eventdata object:
46
 *  notification bool should the message be considered as a notification rather than a personal message
48
 *  notification bool should the message be considered as a notification rather than a personal message
47
 *  contexturl string if this is a notification then you can specify a url to view the event. For example the forum post the user is being notified of.
49
 *  contexturl string|url if this is a notification then you can specify a url to view the event.
-
 
50
 *                    For example the forum post the user is being notified of.
48
 *  contexturlname string the display text for contexturl
51
 *  contexturlname string the display text for contexturl
49
 *
52
 *
50
 * Note: processor failure will not reported as false return value in all scenarios,
53
 * Note: processor failure will not reported as false return value in all scenarios,
51
 *       for example when it is called while a database transaction is open,
54
 *       for example when it is called while a database transaction is open,
52
 *       earlier versions did not do it consistently either.
55
 *       earlier versions did not do it consistently either.
Línea 81... Línea 84...
81
    if (!$eventdata->userfrom) {
84
    if (!$eventdata->userfrom) {
82
        debugging('Attempt to send msg from unknown user', DEBUG_NORMAL);
85
        debugging('Attempt to send msg from unknown user', DEBUG_NORMAL);
83
        return false;
86
        return false;
84
    }
87
    }
Línea -... Línea 88...
-
 
88
 
-
 
89
    // Cast context URL and name.
-
 
90
    if (!empty($eventdata->contexturl)) {
-
 
91
        $eventdata->contexturl = (string) $eventdata->contexturl;
-
 
92
    }
-
 
93
    if (!empty($eventdata->contexturlname)) {
-
 
94
        $eventdata->contexturlname = (string) $eventdata->contexturlname;
-
 
95
    }
85
 
96
 
86
    // Legacy messages (FROM a single user TO a single user) must be converted into conversation messages.
97
    // Legacy messages (FROM a single user TO a single user) must be converted into conversation messages.
87
    // Then, these will be passed through the conversation messages code below.
98
    // Then, these will be passed through the conversation messages code below.
88
    if (!$eventdata->notification && !$eventdata->convid) {
99
    if (!$eventdata->notification && !$eventdata->convid) {
89
        // If messaging is disabled at the site level, then the 'instantmessage' provider is always disabled.
100
        // If messaging is disabled at the site level, then the 'instantmessage' provider is always disabled.
Línea 254... Línea 265...
254
    $tabledata->smallmessage = $eventdata->smallmessage;
265
    $tabledata->smallmessage = $eventdata->smallmessage;
255
    $tabledata->eventtype = $eventdata->name;
266
    $tabledata->eventtype = $eventdata->name;
256
    $tabledata->component = $eventdata->component;
267
    $tabledata->component = $eventdata->component;
257
    $tabledata->timecreated = time();
268
    $tabledata->timecreated = time();
258
    $tabledata->customdata = $eventdata->customdata;
269
    $tabledata->customdata = $eventdata->customdata;
259
    if (!empty($eventdata->contexturl)) {
-
 
260
        $tabledata->contexturl = (string)$eventdata->contexturl;
270
    $tabledata->contexturl = $eventdata->contexturl ?? null;
261
    } else {
-
 
262
        $tabledata->contexturl = null;
-
 
263
    }
-
 
264
 
-
 
265
    if (!empty($eventdata->contexturlname)) {
-
 
266
        $tabledata->contexturlname = (string)$eventdata->contexturlname;
271
    $tabledata->contexturlname = $eventdata->contexturlname ?? null;
267
    } else {
-
 
268
        $tabledata->contexturlname = null;
-
 
269
    }
-
 
Línea 270... Línea 272...
270
 
272
 
271
    if ($messageid = message_handle_phpunit_redirection($eventdata, $table, $tabledata)) {
273
    if ($messageid = message_handle_phpunit_redirection($eventdata, $table, $tabledata)) {
272
        return $messageid;
274
        return $messageid;
Línea 714... Línea 716...
714
    global $DB;
716
    global $DB;
Línea 715... Línea 717...
715
 
717
 
716
    $transaction = $DB->start_delegated_transaction();
718
    $transaction = $DB->start_delegated_transaction();
717
    $DB->delete_records('message_providers', array('component' => $component));
719
    $DB->delete_records('message_providers', array('component' => $component));
718
    $DB->delete_records_select('config_plugins', "plugin = 'message' AND ".$DB->sql_like('name', '?', false), array("%_provider_{$component}_%"));
720
    $DB->delete_records_select('config_plugins', "plugin = 'message' AND ".$DB->sql_like('name', '?', false), array("%_provider_{$component}_%"));
719
    $DB->delete_records_select('user_preferences', $DB->sql_like('name', '?', false), array("message_provider_{$component}_%"));
721
    $DB->delete_records_select('user_preferences', $DB->sql_like('name', '?'), ["message_provider_{$component}_%"]);
720
    $transaction->allow_commit();
722
    $transaction->allow_commit();
721
    // Purge all messaging settings from the caches. They are stored by plugin so we have to clear all message settings.
723
    // Purge all messaging settings from the caches. They are stored by plugin so we have to clear all message settings.
722
    cache_helper::invalidate_by_definition('core', 'config', array(), 'message');
724
    cache_helper::invalidate_by_definition('core', 'config', array(), 'message');