From 39ad9cf33363b686758409fff9eb6f38843cad24 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Mon, 18 Sep 2017 13:08:43 +0800 Subject: [PATCH] MDL-60158 calendar: Fix footer options when viewing as guest --- .../external/footer_options_exporter.php | 20 ++++++++++++------- calendar/templates/footer_options.mustache | 4 +++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/calendar/classes/external/footer_options_exporter.php b/calendar/classes/external/footer_options_exporter.php index 23bb42f0e42..e4478bbd436 100644 --- a/calendar/classes/external/footer_options_exporter.php +++ b/calendar/classes/external/footer_options_exporter.php @@ -82,9 +82,10 @@ class footer_options_exporter extends exporter { * @return string The iCal url. */ protected function get_ical_url() { - return new moodle_url('/calendar/export_execute.php', ['preset_what' => 'all', - 'preset_time' => 'recentupcoming', 'userid' => $this->userid, 'authtoken' => $this->token]); - + if ($this->token) { + return new moodle_url('/calendar/export_execute.php', ['preset_what' => 'all', + 'preset_time' => 'recentupcoming', 'userid' => $this->userid, 'authtoken' => $this->token]); + } } /** @@ -113,10 +114,12 @@ class footer_options_exporter extends exporter { $values = new stdClass(); if (!empty($CFG->enablecalendarexport)) { - $exportbutton = $this->get_export_calendar_button(); - $managesubscriptionbutton = $this->get_manage_subscriptions_button(); - $values->exportcalendarbutton = $exportbutton->export_for_template($output); - $values->managesubscriptionbutton = $managesubscriptionbutton->export_for_template($output); + if ($exportbutton = $this->get_export_calendar_button()) { + $values->exportcalendarbutton = $exportbutton->export_for_template($output); + } + if ($managesubscriptionbutton = $this->get_manage_subscriptions_button()) { + $values->managesubscriptionbutton = $managesubscriptionbutton->export_for_template($output); + } $values->icalurl = $this->get_ical_url()->out(false); } @@ -132,12 +135,15 @@ class footer_options_exporter extends exporter { return array( 'exportcalendarbutton' => [ 'type' => PARAM_RAW, + 'default' => null, ], 'managesubscriptionbutton' => [ 'type' => PARAM_RAW, + 'default' => null, ], 'icalurl' => [ 'type' => PARAM_URL, + 'default' => null, ], ); } diff --git a/calendar/templates/footer_options.mustache b/calendar/templates/footer_options.mustache index 05c2941933b..d9769b2eb28 100644 --- a/calendar/templates/footer_options.mustache +++ b/calendar/templates/footer_options.mustache @@ -33,5 +33,7 @@ {{#managesubscriptionbutton}} {{> core/single_button }} {{/managesubscriptionbutton}} - iCal + {{#icalurl}} + iCal + {{/icalurl}}