[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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 * Allows the user to manage calendar subscriptions. 19 * 20 * @copyright 2012 Jonathan Harker 21 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 22 * @package calendar 23 */ 24 25 require_once('../config.php'); 26 require_once($CFG->libdir.'/bennu/bennu.inc.php'); 27 require_once($CFG->dirroot.'/course/lib.php'); 28 require_once($CFG->dirroot.'/calendar/lib.php'); 29 require_once($CFG->dirroot.'/calendar/managesubscriptions_form.php'); 30 31 // Required use. 32 $courseid = optional_param('course', SITEID, PARAM_INT); 33 // Used for processing subscription actions. 34 $subscriptionid = optional_param('id', 0, PARAM_INT); 35 $pollinterval = optional_param('pollinterval', 0, PARAM_INT); 36 $action = optional_param('action', '', PARAM_INT); 37 38 $url = new moodle_url('/calendar/managesubscriptions.php'); 39 if ($courseid != SITEID) { 40 $url->param('course', $courseid); 41 } 42 navigation_node::override_active_url(new moodle_url('/calendar/view.php', array('view' => 'month'))); 43 $PAGE->set_url($url); 44 $PAGE->set_pagelayout('admin'); 45 $PAGE->navbar->add(get_string('managesubscriptions', 'calendar')); 46 47 if ($courseid != SITEID && !empty($courseid)) { 48 $course = $DB->get_record('course', array('id' => $courseid)); 49 $courses = array($course->id => $course); 50 } else { 51 $course = get_site(); 52 $courses = calendar_get_default_courses(); 53 } 54 require_course_login($course); 55 if (!calendar_user_can_add_event($course)) { 56 print_error('errorcannotimport', 'calendar'); 57 } 58 59 $form = new calendar_addsubscription_form(null); 60 $form->set_data(array( 61 'course' => $course->id 62 )); 63 64 $importresults = ''; 65 66 $formdata = $form->get_data(); 67 if (!empty($formdata)) { 68 require_sesskey(); // Must have sesskey for all actions. 69 $subscriptionid = calendar_add_subscription($formdata); 70 if ($formdata->importfrom == CALENDAR_IMPORT_FROM_FILE) { 71 // Blank the URL if it's a file import. 72 $formdata->url = ''; 73 $calendar = $form->get_file_content('importfile'); 74 $ical = new iCalendar(); 75 $ical->unserialize($calendar); 76 $importresults = calendar_import_icalendar_events($ical, $courseid, $subscriptionid); 77 } else { 78 try { 79 $importresults = calendar_update_subscription_events($subscriptionid); 80 } catch (moodle_exception $e) { 81 // Delete newly added subscription and show invalid url error. 82 calendar_delete_subscription($subscriptionid); 83 print_error($e->errorcode, $e->module, $PAGE->url); 84 } 85 } 86 // Redirect to prevent refresh issues. 87 redirect($PAGE->url, $importresults); 88 } else if (!empty($subscriptionid)) { 89 // The user is wanting to perform an action upon an existing subscription. 90 require_sesskey(); // Must have sesskey for all actions. 91 if (calendar_can_edit_subscription($subscriptionid)) { 92 try { 93 $importresults = calendar_process_subscription_row($subscriptionid, $pollinterval, $action); 94 } catch (moodle_exception $e) { 95 // If exception caught, then user should be redirected to page where he/she came from. 96 print_error($e->errorcode, $e->module, $PAGE->url); 97 } 98 } else { 99 print_error('nopermissions', 'error', $PAGE->url, get_string('managesubscriptions', 'calendar')); 100 } 101 } 102 103 $sql = 'SELECT * 104 FROM {event_subscriptions} 105 WHERE courseid = :courseid 106 OR (courseid = 0 AND userid = :userid)'; 107 $params = array('courseid' => $courseid, 'userid' => $USER->id); 108 $subscriptions = $DB->get_records_sql($sql, $params); 109 110 // Print title and header. 111 $PAGE->set_title("$course->shortname: ".get_string('calendar', 'calendar').": ".get_string('subscriptions', 'calendar')); 112 $PAGE->set_heading($course->fullname); 113 $PAGE->set_button(calendar_preferences_button($course)); 114 115 $renderer = $PAGE->get_renderer('core_calendar'); 116 117 echo $OUTPUT->header(); 118 119 // Filter subscriptions which user can't edit. 120 foreach($subscriptions as $subscription) { 121 if (!calendar_can_edit_subscription($subscription)) { 122 unset($subscriptions[$subscription->id]); 123 } 124 } 125 126 // Display a table of subscriptions. 127 echo $renderer->subscription_details($courseid, $subscriptions, $importresults); 128 // Display the add subscription form. 129 $form->display(); 130 echo $OUTPUT->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |