. // // 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. /** * This file contains all the restore steps that will be used * by the restore_lti_activity_task * * @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 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die; /** * Structure step to restore one lti activity */ class restore_lti_activity_structure_step extends restore_activity_structure_step { protected function define_structure() { $paths = array(); $lti = new restore_path_element('lti', '/activity/lti'); $paths[] = $lti; // Add support for subplugin structures. $this->add_subplugin_structure('ltisource', $lti); $this->add_subplugin_structure('ltiservice', $lti); // Return the paths wrapped into standard activity structure. return $this->prepare_activity_structure($paths); } protected function process_lti($data) { global $DB; $data = (object)$data; $oldid = $data->id; $data->course = $this->get_courseid(); $data->servicesalt = uniqid('', true); // Grade used to be a float (whole numbers only), restore as int. $data->grade = (int) $data->grade; // Clean any course or site typeid. All modules // are restored as self-contained. Note this is // an interim solution until the issue below is implemented. // TODO: MDL-34161 - Fix restore to support course/site tools & submissions. $data->typeid = 0; $newitemid = $DB->insert_record('lti', $data); // Immediately after inserting "activity" record, call this. $this->apply_activity_instance($newitemid); } protected function after_execute() { // Add lti related files, no need to match by itemname (just internally handled context). $this->add_related_files('mod_lti', 'intro', null); } }