From c54af7fdc00d945ac8b5d9a6e666c345976189e0 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Thu, 3 Aug 2017 12:36:27 +0800 Subject: [PATCH 1/2] MDL-59668 mod_lti: trigger completion event in view.php This was done so that the navigation links are rendered correctly with accurate completion info. Part of MDL-59313. --- mod/lti/launch.php | 5 ++++- mod/lti/view.php | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mod/lti/launch.php b/mod/lti/launch.php index 56f25af8d2a..ca27416fab0 100644 --- a/mod/lti/launch.php +++ b/mod/lti/launch.php @@ -51,6 +51,7 @@ require_once($CFG->dirroot.'/mod/lti/lib.php'); require_once($CFG->dirroot.'/mod/lti/locallib.php'); $id = required_param('id', PARAM_INT); // Course Module ID. +$triggerview = optional_param('triggerview', 1, PARAM_BOOL); $cm = get_coursemodule_from_id('lti', $id, 0, false, MUST_EXIST); $lti = $DB->get_record('lti', array('id' => $cm->instance), '*', MUST_EXIST); @@ -62,7 +63,9 @@ require_login($course, true, $cm); require_capability('mod/lti:view', $context); // Completion and trigger events. -lti_view($lti, $course, $cm, $context); +if ($triggerview) { + lti_view($lti, $course, $cm, $context); +} $lti->cmid = $cm->id; lti_launch_tool($lti); diff --git a/mod/lti/view.php b/mod/lti/view.php index cc0c255551c..3b90377fdd1 100644 --- a/mod/lti/view.php +++ b/mod/lti/view.php @@ -94,6 +94,8 @@ if ($launchcontainer == LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS) { $PAGE->set_pagelayout('incourse'); } +lti_view($lti, $course, $cm, $context); + $pagetitle = strip_tags($course->shortname.': '.format_string($lti->name)); $PAGE->set_title($pagetitle); $PAGE->set_heading($course->fullname); @@ -112,7 +114,7 @@ if ($lti->showdescriptionlaunch && $lti->intro) { if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) { echo "\n"; echo "

".get_string("basiclti_in_new_window", "lti")."

\n"; @@ -122,7 +124,7 @@ if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) { echo html_writer::end_tag('p'); } else { // Request the launch content with an iframe tag. - echo ''; + echo ''; // Output script to make the iframe tag be as large as possible. $resize = ' From 6d29cccf04583f696a7cc2fe0becfb53be976bb7 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Thu, 3 Aug 2017 13:48:59 +0800 Subject: [PATCH 2/2] MDL-59668 mod_lti: use 'forceview' param to keep nav flow consistent Part of MDL-59313. --- mod/lti/view.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mod/lti/view.php b/mod/lti/view.php index 3b90377fdd1..224b219c6bf 100644 --- a/mod/lti/view.php +++ b/mod/lti/view.php @@ -53,6 +53,7 @@ require_once($CFG->dirroot.'/mod/lti/locallib.php'); $id = optional_param('id', 0, PARAM_INT); // Course Module ID, or $l = optional_param('l', 0, PARAM_INT); // lti ID. +$forceview = optional_param('forceview', 0, PARAM_BOOL); if ($l) { // Two ways to specify the module. $lti = $DB->get_record('lti', array('id' => $l), '*', MUST_EXIST); @@ -89,7 +90,10 @@ if ($launchcontainer == LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS) { $PAGE->set_pagelayout('frametop'); // Most frametops don't include footer, and pre-post blocks. $PAGE->blocks->show_only_fake_blocks(); // Disable blocks for layouts which do include pre-post blocks. } else if ($launchcontainer == LTI_LAUNCH_CONTAINER_REPLACE_MOODLE_WINDOW) { - redirect('launch.php?id=' . $cm->id); + if (!$forceview) { + $url = new moodle_url('/mod/lti/launch.php', array('id' => $cm->id)); + redirect($url); + } } else { $PAGE->set_pagelayout('incourse'); } @@ -113,11 +117,13 @@ if ($lti->showdescriptionlaunch && $lti->intro) { } if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) { - echo "\n"; - echo "

".get_string("basiclti_in_new_window", "lti")."

\n"; + if (!$forceview) { + echo "\n"; + echo "

".get_string("basiclti_in_new_window", "lti")."

\n"; + } $url = new moodle_url('/mod/lti/launch.php', array('id' => $cm->id)); echo html_writer::start_tag('p'); echo html_writer::link($url, get_string("basiclti_in_new_window_open", "lti"), array('target' => '_blank'));