215b7795a12ecf293954e222944c05968c595875
[moodle.git] / message / output / popup / classes / output / popup_notification.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * Contains class used to prepare a popup notification for display.
19  *
20  * @package   message_popup
21  * @copyright 2016 Ryan Wyllie <ryan@moodle.com>
22  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 namespace message_popup\output;
27 defined('MOODLE_INTERNAL') || die();
29 require_once($CFG->dirroot . '/message/lib.php');
31 use renderable;
32 use templatable;
33 use moodle_url;
34 use core_user;
36 /**
37  * Class to prepare a popup notification for display.
38  *
39  * @package   message_popup
40  * @copyright 2016 Ryan Wyllie <ryan@moodle.com>
41  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
42  */
43 class popup_notification implements templatable, renderable {
45     /**
46      * @var \stdClass The notification.
47      */
48     protected $notification;
50     /**
51      * Constructor.
52      *
53      * @param \stdClass $notification
54      */
55     public function __construct($notification) {
56         $this->notification = $notification;
57     }
59     public function export_for_template(\renderer_base $output) {
60         global $USER;
62         $context = clone $this->notification;
64         if ($context->useridto == $USER->id && $context->timeusertodeleted) {
65             $context->deleted = true;
66         } else {
67             $context->deleted = false;
68         }
70         $context->timecreatedpretty = get_string('ago', 'message', format_time(time() - $context->timecreated));
71         $context->text = message_format_message_text($context);
72         $context->read = $context->timeread ? true : false;
73         $context->shortenedsubject = shorten_text($context->subject, 125);
75         if (!empty($context->component) && substr($context->component, 0, 4) == 'mod_') {
76             $iconurl = $output->image_url('icon', $context->component);
77         } else {
78             $iconurl = $output->image_url('i/marker', 'core');
79         }
81         $context->iconurl = $iconurl->out();
83         return $context;
84     }
85 }