Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Renaming global functions to include lti prefix

  • Loading branch information...
commit dbb0fec9fd214ca55710d0b28ced8263cb292f4f 1 parent b9b2e7b
@scriby scriby authored
View
20 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 = "<form action=\"".$endpoint."\" name=\"ltiLaunchForm\" id=\"ltiLaunchForm\" method=\"post\" encType=\"application/x-www-form-urlencoded\">\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 = '';
View
10 mod/lti/simpletest/testlocallib.php
@@ -55,13 +55,13 @@
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 @@ function test_sign_parameters() {
$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']));
View
350 mod/lti/view.php
@@ -1,175 +1,175 @@
-<?php
-// This file is part of BasicLTI4Moodle
-//
-// BasicLTI4Moodle is an IMS BasicLTI (Basic Learning Tools for Interoperability)
-// consumer for Moodle 1.9 and Moodle 2.0. BasicLTI is a IMS Standard that allows web
-// based learning tools to be easily integrated in LMS as native ones. The IMS BasicLTI
-// specification is part of the IMS standard Common Cartridge 1.1 Sakai and other main LMS
-// are already supporting or going to support BasicLTI. This project Implements the consumer
-// for Moodle. Moodle is a Free Open source Learning Management System by Martin Dougiamas.
-// BasicLTI4Moodle is a project iniciated and leaded by Ludo(Marc Alier) and Jordi Piguillem
-// at the GESSI research group at UPC.
-// SimpleLTI consumer for Moodle is an implementation of the early specification of LTI
-// by Charles Severance (Dr Chuck) htp://dr-chuck.com , developed by Jordi Piguillem in a
-// Google Summer of Code 2008 project co-mentored by Charles Severance and Marc Alier.
-//
-// BasicLTI4Moodle is copyright 2009 by Marc Alier Forment, Jordi Piguillem and Nikolas Galanis
-// of the Universitat Politecnica de Catalunya http://www.upc.edu
-// Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu
-//
-// Moodle is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Moodle is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
-
-/**
- * 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 '<div class="reportlink">'.submittedlink($cm).'</div>';
-}
-
-if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) {
- echo "<script language=\"javascript\">//<![CDATA[\n";
- echo "window.open('launch.php?id=".$cm->id."','lti');";
- echo "//]]\n";
- echo "</script>\n";
- echo "<p>".get_string("basiclti_in_new_window", "lti")."</p>\n";
-} else {
- // Request the launch content with an object tag
- echo '<object id="contentframe" height="600px" width="100%" type="text/html" data="launch.php?id='.$cm->id.'&amp;withobject=true"></object>';
-
- //Output script to make the object tag be as large as possible
- $resize = <<<'SCRIPT'
- <script type='text/javascript'>
- //<![CDATA[
- (function(){
- //Take scrollbars off the outer document to prevent double scroll bar effect
- document.body.style.overflow = 'hidden';
-
- var dom = YAHOO.util.Dom;
- var frame = document.getElementById('contentframe');
-
- var lastHeight;
-
- var resize = function(){
- var viewportHeight = dom.getViewportHeight();
-
- if(lastHeight !== Math.min(dom.getDocumentHeight(), viewportHeight)){
- frame.style.height = viewportHeight - dom.getY(frame) + 'px';
-
- lastHeight = Math.min(dom.getDocumentHeight(), dom.getViewportHeight());
- }
- };
-
- resize();
-
- setInterval(resize, 250);
- })();
- //]]
- </script>
-SCRIPT;
-
- echo $resize;
-}
-
-
-/// Finish the page
-echo $OUTPUT->footer();
+<?php
+// This file is part of BasicLTI4Moodle
+//
+// BasicLTI4Moodle is an IMS BasicLTI (Basic Learning Tools for Interoperability)
+// consumer for Moodle 1.9 and Moodle 2.0. BasicLTI is a IMS Standard that allows web
+// based learning tools to be easily integrated in LMS as native ones. The IMS BasicLTI
+// specification is part of the IMS standard Common Cartridge 1.1 Sakai and other main LMS
+// are already supporting or going to support BasicLTI. This project Implements the consumer
+// for Moodle. Moodle is a Free Open source Learning Management System by Martin Dougiamas.
+// BasicLTI4Moodle is a project iniciated and leaded by Ludo(Marc Alier) and Jordi Piguillem
+// at the GESSI research group at UPC.
+// SimpleLTI consumer for Moodle is an implementation of the early specification of LTI
+// by Charles Severance (Dr Chuck) htp://dr-chuck.com , developed by Jordi Piguillem in a
+// Google Summer of Code 2008 project co-mentored by Charles Severance and Marc Alier.
+//
+// BasicLTI4Moodle is copyright 2009 by Marc Alier Forment, Jordi Piguillem and Nikolas Galanis
+// of the Universitat Politecnica de Catalunya http://www.upc.edu
+// Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * 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 '<div class="reportlink">'.lti_submittedlink($cm).'</div>';
+}
+
+if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) {
+ echo "<script language=\"javascript\">//<![CDATA[\n";
+ echo "window.open('launch.php?id=".$cm->id."','lti');";
+ echo "//]]\n";
+ echo "</script>\n";
+ echo "<p>".get_string("basiclti_in_new_window", "lti")."</p>\n";
+} else {
+ // Request the launch content with an object tag
+ echo '<object id="contentframe" height="600px" width="100%" type="text/html" data="launch.php?id='.$cm->id.'&amp;withobject=true"></object>';
+
+ //Output script to make the object tag be as large as possible
+ $resize = <<<'SCRIPT'
+ <script type='text/javascript'>
+ //<![CDATA[
+ (function(){
+ //Take scrollbars off the outer document to prevent double scroll bar effect
+ document.body.style.overflow = 'hidden';
+
+ var dom = YAHOO.util.Dom;
+ var frame = document.getElementById('contentframe');
+
+ var lastHeight;
+
+ var resize = function(){
+ var viewportHeight = dom.getViewportHeight();
+
+ if(lastHeight !== Math.min(dom.getDocumentHeight(), viewportHeight)){
+ frame.style.height = viewportHeight - dom.getY(frame) + 'px';
+
+ lastHeight = Math.min(dom.getDocumentHeight(), dom.getViewportHeight());
+ }
+ };
+
+ resize();
+
+ setInterval(resize, 250);
+ })();
+ //]]
+ </script>
+SCRIPT;
+
+ echo $resize;
+}
+
+
+/// Finish the page
+echo $OUTPUT->footer();
Please sign in to comment.
Something went wrong with that request. Please try again.