/** * Test lti_view * @return void */ public function test_lti_view() { global $CFG; $CFG->enablecompletion = 1; $this->resetAfterTest(); $this->setAdminUser(); // Setup test data. $course = $this->getDataGenerator()->create_course(array('enablecompletion' => 1)); $lti = $this->getDataGenerator()->create_module('lti', array('course' => $course->id), array('completion' => 2, 'completionview' => 1)); $context = context_module::instance($lti->cmid); $cm = get_coursemodule_from_instance('lti', $lti->id); // Trigger and capture the event. $sink = $this->redirectEvents(); lti_view($lti, $course, $cm, $context); $events = $sink->get_events(); // 2 additional events thanks to completion. $this->assertCount(3, $events); $event = array_shift($events); // Checking that the event contains the expected values. $this->assertInstanceOf('\\mod_lti\\event\\course_module_viewed', $event); $this->assertEquals($context, $event->get_context()); $moodleurl = new \moodle_url('/mod/lti/view.php', array('id' => $cm->id)); $this->assertEquals($moodleurl, $event->get_url()); $this->assertEventContextNotUsed($event); $this->assertNotEmpty($event->get_name()); // Check completion status. $completion = new completion_info($course); $completiondata = $completion->get_data($cm); $this->assertEquals(1, $completiondata->completionstate); }
// 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. /** * This file contains all necessary code to view a lti activity instance * * @package mod_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 * @author Chris Scribner * @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 = required_param('id', PARAM_INT); // Course Module ID. $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); $context = context_module::instance($cm->id); require_login($course, true, $cm); require_capability('mod/lti:view', $context); // Completion and trigger events. lti_view($lti, $course, $cm, $context); $lti->cmid = $cm->id; lti_launch_tool($lti);
/** * This file contains all necessary code to view a lti activity instance * * @package mod * @subpackage 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 * @author Chris Scribner * @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 = required_param('id', PARAM_INT); // Course Module ID $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); $lti->cmid = $cm->id; lti_view($lti);
/** * Trigger the course module viewed event and update the module completion status. * * @param int $ltiid the lti instance id * @return array of warnings and status result * @since Moodle 3.0 * @throws moodle_exception */ public static function view_lti($ltiid) { global $DB; $params = self::validate_parameters(self::view_lti_parameters(), array('ltiid' => $ltiid)); $warnings = array(); // Request and permission validation. $lti = $DB->get_record('lti', array('id' => $params['ltiid']), '*', MUST_EXIST); list($course, $cm) = get_course_and_cm_from_instance($lti, 'lti'); $context = context_module::instance($cm->id); self::validate_context($context); require_capability('mod/lti:view', $context); // Trigger course_module_viewed event and completion. lti_view($lti, $course, $cm, $context); $result = array(); $result['status'] = true; $result['warnings'] = $warnings; return $result; }