MDL-20534 lti: various fixes
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 7 Nov 2011 00:56:00 +0000 (01:56 +0100)
committerChris Scribner <scriby@gmail.com>
Mon, 7 Nov 2011 03:05:35 +0000 (22:05 -0500)
mod/lti/db/access.php
mod/lti/grade.php
mod/lti/index.php
mod/lti/launch.php
mod/lti/servicelib.php
mod/lti/settings.php
mod/lti/simpletest/testlocallib.php
mod/lti/version.php
mod/lti/view.php

index 9966b74..8a5a3ac 100644 (file)
@@ -28,6 +28,8 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
+defined('MOODLE_INTERNAL') || die;
+
 $capabilities = array(
 
     'mod/lti:view' => array(
index b4a1868..5d730e2 100644 (file)
@@ -33,7 +33,7 @@
 // Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu
 
 /**
- * This file contains submissions-specific code for the basiclti module
+ * This file contains submissions-specific code for the lti module
  *
  * @package    mod
  * @subpackage lti
@@ -51,46 +51,30 @@ require_once($CFG->dirroot.'/mod/lti/lib.php');
 require_once($CFG->libdir.'/plagiarismlib.php');
 
 $id   = optional_param('id', 0, PARAM_INT);          // Course module ID
-$a    = optional_param('a', 0, PARAM_INT);           // Assignment ID
+$l    = optional_param('l', 0, PARAM_INT);           // lti instance ID
 $mode = optional_param('mode', 'all', PARAM_ALPHA);  // What mode are we in?
 $download = optional_param('download' , 'none', PARAM_ALPHA); //ZIP download asked for?
 
-$url = new moodle_url('/mod/lti/submissions.php');
-if ($id) {
-    if (! $cm = get_coursemodule_from_id('lti', $id)) {
-        print_error('invalidcoursemodule');
-    }
-
-    if (! $basiclti = $DB->get_record("lti", array("id"=>$cm->instance))) {
-        print_error('invalidid', 'lti');
-    }
+if ($l) {  // Two ways to specify the module
+    $lti = $DB->get_record('lti', array('id' => $l), '*', MUST_EXIST);
+    $cm = get_coursemodule_from_instance('lti', $lti->id, $lti->course, false, MUST_EXIST);
 
-    if (! $course = $DB->get_record("course", array("id"=>$basiclti->course))) {
-        print_error('coursemisconf', 'lti');
-    }
-    $url->param('id', $id);
 } else {
-    if (!$basiclti = $DB->get_record("lti", array("id"=>$a))) {
-        print_error('invalidcoursemodule');
-    }
-    if (! $course = $DB->get_record("course", array("id"=>$basiclti->course))) {
-        print_error('coursemisconf', 'lti');
-    }
-    if (! $cm = get_coursemodule_from_instance("lti", $basiclti->id, $course->id)) {
-        print_error('invalidcoursemodule');
-    }
-    $url->param('a', $a);
+    $cm = get_coursemodule_from_id('lti', $id, 0, false, MUST_EXIST);
+    $lti = $DB->get_record('lti', array('id' => $cm->instance), '*', MUST_EXIST);
 }
 
+$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
+
+require_login($course, false, $cm);
+$context = get_context_instance(CONTEXT_MODULE, $cm->id);
+require_capability('mod/lti:grade', $context);
+
+$url = new moodle_url('/mod/lti/grade.php', array('id' => $cm->id));
 if ($mode !== 'all') {
     $url->param('mode', $mode);
 }
 $PAGE->set_url($url);
-require_login($course, false, $cm);
-
-require_capability('mod/lti:grade', get_context_instance(CONTEXT_MODULE, $cm->id));
-
-//lti_submissions($cm, $course, $basiclti, $mode);   // Display or process the submissions
 
 $module = array(
     'name'      => 'mod_lti_submissions',
@@ -111,7 +95,7 @@ $submissionquery = <<<SQL
     ORDER BY s.datesubmitted DESC
 SQL;
 
-$submissions = $DB->get_records_sql($submissionquery, array('ltiid' => $basiclti->id));
+$submissions = $DB->get_records_sql($submissionquery, array('ltiid' => $lti->id));
 
 $html = <<<HTML
 <noscript>
@@ -170,7 +154,7 @@ foreach ($submissions as $submission) {
 
 $table = str_replace('<!--table body-->', $rows, $html);
 
-$title = 'Submissions for ' . $basiclti->name;
+$title = 'Submissions for ' . $lti->name;
 
 $PAGE->set_title(format_string($title , true));
 $PAGE->set_heading($course->fullname);
index ec93183..78580e1 100644 (file)
@@ -33,7 +33,7 @@
 // Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu
 
 /**
- * This page lists all the instances of basiclti in a particular course
+ * This page lists all the instances of lti in a particular course
  *
  * @package    mod
  * @subpackage lti
@@ -50,18 +50,14 @@ require_once($CFG->dirroot.'/mod/lti/lib.php');
 
 $id = required_param('id', PARAM_INT);   // course id
 
-if (! $course = $DB->get_record("course", array("id" => $id))) {
-    throw new moodle_exception('generalexceptionmessage', 'error', '', 'Course ID is incorrect');
-}
-
-$url = new moodle_url('/mod/lti/index.php', array('id'=>$id));
-$PAGE->set_url($url);
-$PAGE->set_pagelayout('incourse');
+$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
 
 require_login($course);
+$PAGE->set_pagelayout('incourse');
 
 add_to_log($course->id, "lti", "view all", "index.php?id=$course->id", "");
 
+$PAGE->set_url('/mod/lti/index.php', array('id' => $course->id));
 $pagetitle = strip_tags($course->shortname.': '.get_string("modulenamepluralformatted", "lti"));
 $PAGE->set_title($pagetitle);
 $PAGE->set_heading($course->fullname);
index 9ad45fa..3afd2e3 100644 (file)
@@ -33,7 +33,7 @@
 // Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu
 
 /**
- * This file contains all necessary code to view a basiclti activity instance
+ * This file contains all necessary code to view a lti activity instance
  *
  * @package    mod
  * @subpackage lti
@@ -50,37 +50,16 @@ 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
+$id = required_param('id', PARAM_INT); // Course Module ID
 
-if ($id) {
-    if (! $cm = $DB->get_record("course_modules", array("id" => $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');
-    }
-}
+$cm = get_coursemodule_from_id('lti', $id, 0, false, MUST_EXIST);
+$lti = $DB->get_record('lti', array('id' => $cm->instance), '*', MUST_EXIST);
+$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
 
 require_login($course);
 
-add_to_log($course->id, "lti", "launch", "launch.php?id=$cm->id", "$basiclti->id");
+add_to_log($course->id, "lti", "launch", "launch.php?id=$cm->id", "$lti->id");
 
-$basiclti->cmid = $cm->id;
-lti_view($basiclti);
+$lti->cmid = $cm->id;
+lti_view($lti);
 
index 049e677..0dde18c 100644 (file)
@@ -23,6 +23,8 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
+defined('MOODLE_INTERNAL') || die;
+
 require_once($CFG->dirroot.'/mod/lti/OAuthBody.php');
 
 // TODO: Switch to core oauthlib once implemented - MDL-30149
index a3547f6..43a7f87 100644 (file)
@@ -48,8 +48,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-global $PAGE, $CFG, $SITE;
-
 require_once($CFG->dirroot.'/mod/lti/locallib.php');
 
 if ($ADMIN->fulltree) {
index 386fb73..f9edece 100644 (file)
@@ -47,9 +47,7 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-if (!defined('MOODLE_INTERNAL')) {
-    die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page.
-}
+defined('MOODLE_INTERNAL') || die;
 
 require_once($CFG->dirroot . '/mod/lti/locallib.php');
 require_once($CFG->dirroot . '/mod/lti/servicelib.php');
index 41155ad..4008871 100644 (file)
@@ -46,6 +46,8 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
+defined('MOODLE_INTERNAL') || die;
+
 $module->version  = 2011101801;  // The current module version (Date: YYYYMMDDXX)
 $module->requires = 2011070100;  // Requires this Moodle version
 $module->cron     = 0;           // Period for cron to check this module (secs)
index 90c377b..153f92b 100644 (file)
@@ -51,34 +51,20 @@ 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
+$l  = optional_param('l', 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');
-    }
+if ($l) {  // Two ways to specify the module
+    $lti = $DB->get_record('lti', array('id' => $l), '*', MUST_EXIST);
+    $cm = get_coursemodule_from_instance('lti', $lti->id, $lti->course, false, MUST_EXIST);
 
 } 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');
-    }
+    $cm = get_coursemodule_from_id('lti', $id, 0, false, MUST_EXIST);
+    $lti = $DB->get_record('lti', array('id' => $cm->instance), '*', MUST_EXIST);
 }
 
-$tool = lti_get_tool_by_url_match($basiclti->toolurl);
+$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
+
+$tool = lti_get_tool_by_url_match($lti->toolurl);
 if ($tool) {
     $toolconfig = lti_get_type_config($tool->id);
 } else {
@@ -92,7 +78,7 @@ $PAGE->set_context($context);
 $url = new moodle_url('/mod/lti/view.php', array('id'=>$cm->id));
 $PAGE->set_url($url);
 
-$launchcontainer = lti_get_launch_container($basiclti, $toolconfig);
+$launchcontainer = lti_get_launch_container($lti, $toolconfig);
 
 if ($launchcontainer == LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS) {
     $PAGE->set_pagelayout('frametop'); //Most frametops don't include footer, and pre-post blocks
@@ -105,22 +91,22 @@ if ($launchcontainer == LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS) {
 
 require_login($course);
 
-add_to_log($course->id, "lti", "view", "view.php?id=$cm->id", "$basiclti->id");
+add_to_log($course->id, "lti", "view", "view.php?id=$cm->id", "$lti->id");
 
-$pagetitle = strip_tags($course->shortname.': '.format_string($basiclti->name));
+$pagetitle = strip_tags($course->shortname.': '.format_string($lti->name));
 $PAGE->set_title($pagetitle);
 $PAGE->set_heading($course->fullname);
 
 /// Print the page header
 echo $OUTPUT->header();
 
-if ($basiclti->showtitle) {
+if ($lti->showtitle) {
     /// Print the main part of the page
-    echo $OUTPUT->heading(format_string($basiclti->name));
+    echo $OUTPUT->heading(format_string($lti->name));
 }
 
-if ($basiclti->showdescription && $basiclti->intro) {
-    echo $OUTPUT->box($basiclti->intro, 'generalbox description', 'intro');
+if ($lti->showdescription && $lti->intro) {
+    echo $OUTPUT->box($lti->intro, 'generalbox description', 'intro');
 }
 
 if ( $launchcontainer == LTI_LAUNCH_CONTAINER_WINDOW ) {