Differences Between: [Versions 310 and 402] [Versions 311 and 402] [Versions 39 and 402] [Versions 400 and 402] [Versions 401 and 402]
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/>. 16 17 /** 18 * Contains event class for displaying a calendar event. 19 * 20 * @package core_calendar 21 * @copyright 2017 Ryan Wyllie <ryan@moodle.com> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 namespace core_calendar\external; 26 27 defined('MOODLE_INTERNAL') || die(); 28 29 require_once($CFG->dirroot . "/calendar/lib.php"); 30 31 use \core_calendar\local\event\container; 32 use \renderer_base; 33 34 /** 35 * Class for displaying a calendar event. 36 * 37 * @package core_calendar 38 * @copyright 2017 Ryan Wyllie <ryan@moodle.com> 39 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 40 */ 41 class event_exporter extends event_exporter_base { 42 43 /** 44 * Return the list of additional properties. 45 * 46 * @return array 47 */ 48 protected static function define_other_properties() { 49 $values = parent::define_other_properties(); 50 51 $values['url'] = ['type' => PARAM_URL]; 52 return $values; 53 } 54 55 /** 56 * Get the additional values to inject while exporting. 57 * 58 * @param renderer_base $output The renderer. 59 * @return array Keys are the property names, values are their values. 60 */ 61 protected function get_other_values(renderer_base $output) { 62 $values = parent::get_other_values($output); 63 64 global $CFG; 65 require_once($CFG->dirroot.'/course/lib.php'); 66 67 $event = $this->event; 68 $context = $this->related['context']; 69 if ($moduleproxy = $event->get_course_module()) { 70 $modulename = $moduleproxy->get('modname'); 71 $moduleid = $moduleproxy->get('id'); 72 $url = new \moodle_url(sprintf('/mod/%s/view.php', $modulename), ['id' => $moduleid]); 73 74 // Build edit event url for action events. 75 $params = array('update' => $moduleid, 'return' => true, 'sesskey' => sesskey()); 76 $editurl = new \moodle_url('/course/mod.php', $params); 77 $values['editurl'] = $editurl->out(false); 78 } else if ($event->get_type() == 'category') { 79 $url = $event->get_category()->get_proxied_instance()->get_view_link(); 80 } else if ($event->get_type() == 'course') { 81 $url = \course_get_url($this->related['course'] ?: SITEID); 82 } else { 83 $url = \course_get_url($this->related['course'] ?: SITEID); 84 } 85 $values['url'] = $url->out(false); 86 87 // Override default formatted time to make sure the date portion of the time is always rendered. 88 $legacyevent = container::get_event_mapper()->from_event_to_legacy_event($event); 89 $values['formattedtime'] = calendar_format_event_time($legacyevent, time(), null, false); 90 91 return $values; 92 } 93 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body