MDL-59668 mod_lti: use 'forceview' param to keep nav flow consistent

Part of MDL-59313.
This commit is contained in:
Mark Nelson
2017-08-03 15:35:31 +08:00
parent c54af7fdc0
commit 6d29cccf04
+12 -6
View File
@@ -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 "<script language=\"javascript\">//<![CDATA[\n";
echo "window.open('launch.php?id=".$cm->id."&triggerview=0','lti-".$cm->id."');";
echo "//]]\n";
echo "</script>\n";
echo "<p>".get_string("basiclti_in_new_window", "lti")."</p>\n";
if (!$forceview) {
echo "<script language=\"javascript\">//<![CDATA[\n";
echo "window.open('launch.php?id=" . $cm->id . "&triggerview=0','lti-" . $cm->id . "');";
echo "//]]\n";
echo "</script>\n";
echo "<p>".get_string("basiclti_in_new_window", "lti")."</p>\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'));