diff --git a/mod/lti/locallib.php b/mod/lti/locallib.php index 240f1c4b389..a7901fd98df 100644 --- a/mod/lti/locallib.php +++ b/mod/lti/locallib.php @@ -120,11 +120,11 @@ function lti_view($instance, $makeobject=false) { $requestparams["oauth_callback"] = "about:blank"; $submittext = get_string('press_to_submit', 'lti'); - $parms = sign_parameters($requestparams, $endpoint, "POST", $key, $secret, $submittext, $orgid /*, $orgdesc*/); + $parms = lti_sign_parameters($requestparams, $endpoint, "POST", $key, $secret, $submittext, $orgid /*, $orgdesc*/); $debuglaunch = ( $instance->debuglaunch == 1 ); - $content = post_launch_html($parms, $endpoint, $debuglaunch); + $content = lti_post_launch_html($parms, $endpoint, $debuglaunch); echo $content; } @@ -219,13 +219,13 @@ function lti_build_request($instance, $typeconfig, $course) { $custom = array(); $instructorcustom = array(); if ($customstr) { - $custom = split_custom_parameters($customstr); + $custom = lti_split_custom_parameters($customstr); } if (!isset($typeconfig['allowinstructorcustom']) || $typeconfig['allowinstructorcustom'] == 0) { $requestparams = array_merge($custom, $requestparams); } else { if ($instructorcustomstr) { - $instructorcustom = split_custom_parameters($instructorcustomstr); + $instructorcustom = lti_split_custom_parameters($instructorcustomstr); } foreach ($instructorcustom as $key => $val) { if (array_key_exists($key, $custom)) { @@ -247,7 +247,7 @@ function lti_build_request($instance, $typeconfig, $course) { * * @return Array of custom parameters */ -function split_custom_parameters($customstr) { +function lti_split_custom_parameters($customstr) { $textlib = textlib_get_instance(); $lines = preg_split("/[\n;]/", $customstr); @@ -259,7 +259,7 @@ function split_custom_parameters($customstr) { } $key = trim($textlib->substr($line, 0, $pos)); $val = trim($textlib->substr($line, $pos+1)); - $key = map_keyname($key); + $key = lti_map_keyname($key); $retval['custom_'.$key] = $val; } return $retval; @@ -272,7 +272,7 @@ function split_custom_parameters($customstr) { * * @return string Processed name */ -function map_keyname($key) { +function lti_map_keyname($key) { $textlib = textlib_get_instance(); $newkey = ""; @@ -778,7 +778,7 @@ function lti_update_config($config) { * @param $orgid LMS name * @param $orgdesc LMS key */ -function sign_parameters($oldparms, $endpoint, $method, $oauthconsumerkey, $oauthconsumersecret, $submittext, $orgid /*, $orgdesc*/) { +function lti_sign_parameters($oldparms, $endpoint, $method, $oauthconsumerkey, $oauthconsumersecret, $submittext, $orgid /*, $orgdesc*/) { global $lastbasestring; $parms = $oldparms; $parms["lti_version"] = "LTI-1p0"; @@ -814,7 +814,7 @@ function sign_parameters($oldparms, $endpoint, $method, $oauthconsumerkey, $oaut * @param $endpoint URL of the external tool * @param $debug Debug (true/false) */ -function post_launch_html($newparms, $endpoint, $debug=false) { +function lti_post_launch_html($newparms, $endpoint, $debug=false) { global $lastbasestring; $r = "
\n"; @@ -898,7 +898,7 @@ function post_launch_html($newparms, $endpoint, $debug=false) { * @param bool $allgroup print all groups info if user can access all groups, suitable for index.php * @return string */ -function submittedlink($cm, $allgroups=false) { +function lti_submittedlink($cm, $allgroups=false) { global $CFG; $submitted = ''; diff --git a/mod/lti/simpletest/testlocallib.php b/mod/lti/simpletest/testlocallib.php index c4d37541a3c..c8536d0219b 100644 --- a/mod/lti/simpletest/testlocallib.php +++ b/mod/lti/simpletest/testlocallib.php @@ -55,13 +55,13 @@ require_once($CFG->dirroot . '/mod/lti/locallib.php'); class lti_locallib_test extends UnitTestCase { public static $includecoverage = array('mod/lti/locallib.php'); function test_split_custom_parameters() { - $this->assertEqual(split_custom_parameters("x=1\ny=2"), + $this->assertEqual(lti_split_custom_parameters("x=1\ny=2"), array('custom_x' => '1', 'custom_y'=> '2')); - $this->assertEqual(split_custom_parameters('x=1;y=2'), + $this->assertEqual(lti_split_custom_parameters('x=1;y=2'), array('custom_x' => '1', 'custom_y'=> '2')); - $this->assertEqual(split_custom_parameters('Review:Chapter=1.2.56'), + $this->assertEqual(lti_split_custom_parameters('Review:Chapter=1.2.56'), array('custom_review_chapter' => '1.2.56')); - $this->assertEqual(split_custom_parameters('Complex!@#$^*(){}[]KEY=Complex!@#$^*(){}[]Value'), + $this->assertEqual(lti_split_custom_parameters('Complex!@#$^*(){}[]KEY=Complex!@#$^*(){}[]Value'), array('custom_complex____________key' => 'Complex!@#$^*(){}[]Value')); $this->assertEqual(5, 5); } @@ -71,7 +71,7 @@ class lti_locallib_test extends UnitTestCase { $requestparams = array('resource_link_id' => '123', 'resource_link_title' => 'Weekly Blog', 'user_id' => '789', 'roles' => 'Learner', 'context_id' => '12345', 'context_label' => 'SI124', 'context_title' => 'Social Computing'); - $parms = sign_parameters($requestparams, 'http://www.imsglobal.org/developer/LTI/tool.php', 'POST', + $parms = lti_sign_parameters($requestparams, 'http://www.imsglobal.org/developer/LTI/tool.php', 'POST', 'lmsng.school.edu', 'secret', 'Click Me', 'lmsng.school.edu' /*, $org_desc*/); $this->assertTrue(isset($parms['oauth_nonce'])); $this->assertTrue(isset($parms['oauth_signature'])); diff --git a/mod/lti/view.php b/mod/lti/view.php index 1a1a533656a..8b1f559e7bb 100644 --- a/mod/lti/view.php +++ b/mod/lti/view.php @@ -1,175 +1,175 @@ -. - -/** - * This file contains all necessary code to view a basiclti activity instance - * - * @package lti - * @copyright 2009 Marc Alier, Jordi Piguillem, Nikolas Galanis - * marc.alier@upc.edu - * @copyright 2009 Universitat Politecnica de Catalunya http://www.upc.edu - * - * @author Marc Alier - * @author Jordi Piguillem - * @author Nikolas Galanis - * - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -require_once('../../config.php'); -require_once($CFG->dirroot.'/mod/lti/lib.php'); -require_once($CFG->dirroot.'/mod/lti/locallib.php'); - -$id = optional_param('id', 0, PARAM_INT); // Course Module ID, or -$a = optional_param('a', 0, PARAM_INT); // lti ID - -if ($id) { - if (! $cm = get_coursemodule_from_id("lti", $id)) { - throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course Module ID was incorrect'); - } - - if (! $course = $DB->get_record("course", array("id" => $cm->course))) { - throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course is misconfigured'); - } - - if (! $basiclti = $DB->get_record("lti", array("id" => $cm->instance))) { - throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course module is incorrect'); - } - -} else { - if (! $basiclti = $DB->get_record("lti", array("id" => $a))) { - throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course module is incorrect'); - } - if (! $course = $DB->get_record("course", array("id" => $basiclti->course))) { - throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course is misconfigured'); - } - if (! $cm = get_coursemodule_from_instance("lti", $basiclti->id, $course->id)) { - throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course Module ID was incorrect'); - } -} - -$tool = lti_get_tool_by_url_match($basiclti->toolurl); -if($tool){ - $toolconfig = lti_get_type_config($tool->id); -} else { - $toolconfig = array('launchcontainer' => LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS); -} - -$PAGE->set_cm($cm, $course); // set's up global $COURSE -$context = get_context_instance(CONTEXT_MODULE, $cm->id); -$PAGE->set_context($context); - -$url = new moodle_url('/mod/lti/view.php', array('id'=>$cm->id)); -$PAGE->set_url($url); - -$launchcontainer = $basiclti->launchcontainer == LTI_LAUNCH_CONTAINER_DEFAULT ? - $toolconfig['launchcontainer'] : - $basiclti->launchcontainer; - -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 { - $PAGE->set_pagelayout('incourse'); -} - -require_login($course); - -add_to_log($course->id, "lti", "view", "view.php?id=$cm->id", "$basiclti->id"); - -$pagetitle = strip_tags($course->shortname.': '.format_string($basiclti->name)); -$PAGE->set_title($pagetitle); -$PAGE->set_heading($course->fullname); - -/// Print the page header -echo $OUTPUT->header(); - -if($basiclti->showtitle) { - /// Print the main part of the page - echo $OUTPUT->heading(format_string($basiclti->name)); -} - -if($basiclti->showdescription && $basiclti->intro){ - echo $OUTPUT->box($basiclti->intro, 'generalbox description', 'intro'); -} - -if ($basiclti->instructorchoiceacceptgrades == 1) { - echo ''; -} - -if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) { - echo "\n"; - echo "

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

\n"; -} else { - // Request the launch content with an object tag - echo ''; - - //Output script to make the object tag be as large as possible - $resize = <<<'SCRIPT' - -SCRIPT; - - echo $resize; -} - - -/// Finish the page -echo $OUTPUT->footer(); +. + +/** + * This file contains all necessary code to view a basiclti activity instance + * + * @package lti + * @copyright 2009 Marc Alier, Jordi Piguillem, Nikolas Galanis + * marc.alier@upc.edu + * @copyright 2009 Universitat Politecnica de Catalunya http://www.upc.edu + * + * @author Marc Alier + * @author Jordi Piguillem + * @author Nikolas Galanis + * + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +require_once('../../config.php'); +require_once($CFG->dirroot.'/mod/lti/lib.php'); +require_once($CFG->dirroot.'/mod/lti/locallib.php'); + +$id = optional_param('id', 0, PARAM_INT); // Course Module ID, or +$a = optional_param('a', 0, PARAM_INT); // lti ID + +if ($id) { + if (! $cm = get_coursemodule_from_id("lti", $id)) { + throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course Module ID was incorrect'); + } + + if (! $course = $DB->get_record("course", array("id" => $cm->course))) { + throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course is misconfigured'); + } + + if (! $basiclti = $DB->get_record("lti", array("id" => $cm->instance))) { + throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course module is incorrect'); + } + +} else { + if (! $basiclti = $DB->get_record("lti", array("id" => $a))) { + throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course module is incorrect'); + } + if (! $course = $DB->get_record("course", array("id" => $basiclti->course))) { + throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course is misconfigured'); + } + if (! $cm = get_coursemodule_from_instance("lti", $basiclti->id, $course->id)) { + throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course Module ID was incorrect'); + } +} + +$tool = lti_get_tool_by_url_match($basiclti->toolurl); +if($tool){ + $toolconfig = lti_get_type_config($tool->id); +} else { + $toolconfig = array('launchcontainer' => LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS); +} + +$PAGE->set_cm($cm, $course); // set's up global $COURSE +$context = get_context_instance(CONTEXT_MODULE, $cm->id); +$PAGE->set_context($context); + +$url = new moodle_url('/mod/lti/view.php', array('id'=>$cm->id)); +$PAGE->set_url($url); + +$launchcontainer = $basiclti->launchcontainer == LTI_LAUNCH_CONTAINER_DEFAULT ? + $toolconfig['launchcontainer'] : + $basiclti->launchcontainer; + +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 { + $PAGE->set_pagelayout('incourse'); +} + +require_login($course); + +add_to_log($course->id, "lti", "view", "view.php?id=$cm->id", "$basiclti->id"); + +$pagetitle = strip_tags($course->shortname.': '.format_string($basiclti->name)); +$PAGE->set_title($pagetitle); +$PAGE->set_heading($course->fullname); + +/// Print the page header +echo $OUTPUT->header(); + +if($basiclti->showtitle) { + /// Print the main part of the page + echo $OUTPUT->heading(format_string($basiclti->name)); +} + +if($basiclti->showdescription && $basiclti->intro){ + echo $OUTPUT->box($basiclti->intro, 'generalbox description', 'intro'); +} + +if ($basiclti->instructorchoiceacceptgrades == 1) { + echo ''; +} + +if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) { + echo "\n"; + echo "

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

\n"; +} else { + // Request the launch content with an object tag + echo ''; + + //Output script to make the object tag be as large as possible + $resize = <<<'SCRIPT' + +SCRIPT; + + echo $resize; +} + + +/// Finish the page +echo $OUTPUT->footer();