Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * This plugin sends users a welcome message after logging in
 * and notify a moderator a new user has been added
 * it has a settings page that allow you to configure the messages
 * send.
 *
 * @package    local
 * @subpackage welcome
 * @copyright  2017 Bas Brands, basbrands.nl, bas@sonsbeekmedia.nl
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

namespace local_welcome;

defined('MOODLE_INTERNAL') || die();

class observer {

    public static function send_welcome(\core\event\user_created $event) {
        global $CFG, $SITE;

        $eventdata = $event->get_data();

        $user = \core_user::get_user($eventdata['objectid']);

        $sender = get_admin();

        // Sender can be false when unit tests are running.
        if ($sender === false) {
            return;
        }

        if (!empty($user->email)) {

            $config = get_config('local_welcome');

            $moderator = clone($sender);

            if (!empty($config->auth_plugins)) {
                $auths = explode(',', $config->auth_plugins);
                if (!in_array($user->auth, $auths)) {
                    return '';
                }
            } else {
                return '';
            }

            $moderator->email = $config->moderator_email;

            $sender->email = $config->sender_email;
            $sender->firstname = $config->sender_firstname;
            $sender->lastname = $config->sender_lastname;

            $messageuserenabled = $config->message_user_enabled;
            $messageuser = $config->message_user;
            $messageusersubject = $config->message_user_subject;

            $messagemoderatorenabled = $config->message_moderator_enabled;
            $messagemoderator = $config->message_moderator;
            $messagemoderatorsubject = $config->message_moderator_subject;

            $welcome = new \local_welcome\message();

            $messageuser = $welcome->replace_values($user, $messageuser);
            $messageusersubject = $welcome->replace_values($user, $messageusersubject);
            $messagemoderator = $welcome->replace_values($user, $messagemoderator);
            $messagemoderatorsubject = $welcome->replace_values($user, $messagemoderatorsubject);

            if (!empty($messageuser) && !empty($sender->email) && $messageuserenabled) {
                email_to_user($user, $sender, $messageusersubject, html_to_text($messageuser), $messageuser);
            }

            if (!empty($messagemoderator) && !empty($sender->email) && $messagemoderatorenabled) {
                email_to_user($moderator, $sender, $messagemoderatorsubject,
                    html_to_text($messagemoderator), $messagemoderator);
            }
        }
    }

}