diff --git a/admin/tool/mobile/classes/api.php b/admin/tool/mobile/classes/api.php index 987a58deee2..2f1242e4a30 100644 --- a/admin/tool/mobile/classes/api.php +++ b/admin/tool/mobile/classes/api.php @@ -153,10 +153,11 @@ class api { $settings['launchurl'] = $url->out(false); } - if ($logourl = $OUTPUT->get_logo_url()) { + // Check that we are receiving a moodle_url object, themes can override get_logo_url and may return incorrect values. + if (($logourl = $OUTPUT->get_logo_url()) && $logourl instanceof moodle_url) { $settings['logourl'] = $logourl->out(false); } - if ($compactlogourl = $OUTPUT->get_compact_logo_url()) { + if (($compactlogourl = $OUTPUT->get_compact_logo_url()) && $compactlogourl instanceof moodle_url) { $settings['compactlogourl'] = $compactlogourl->out(false); } @@ -208,7 +209,11 @@ class api { if (empty($section) or $section == 'gradessettings') { require_once($CFG->dirroot . '/user/lib.php'); - $settings->mygradesurl = user_mygrades_url()->out(false); + $settings->mygradesurl = user_mygrades_url(); + // The previous function may return moodle_url instances or plain string URLs. + if ($settings->mygradesurl instanceof moodle_url) { + $settings->mygradesurl = $settings->mygradesurl->out(false); + } } return $settings;