|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 // This file is part of Moodle - http://moodle.org/ 00003 // 00004 // Moodle is free software: you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation, either version 3 of the License, or 00007 // (at your option) any later version. 00008 // 00009 // Moodle is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 00016 // 00017 // This file is part of BasicLTI4Moodle 00018 // 00019 // BasicLTI4Moodle is an IMS BasicLTI (Basic Learning Tools for Interoperability) 00020 // consumer for Moodle 1.9 and Moodle 2.0. BasicLTI is a IMS Standard that allows web 00021 // based learning tools to be easily integrated in LMS as native ones. The IMS BasicLTI 00022 // specification is part of the IMS standard Common Cartridge 1.1 Sakai and other main LMS 00023 // are already supporting or going to support BasicLTI. This project Implements the consumer 00024 // for Moodle. Moodle is a Free Open source Learning Management System by Martin Dougiamas. 00025 // BasicLTI4Moodle is a project iniciated and leaded by Ludo(Marc Alier) and Jordi Piguillem 00026 // at the GESSI research group at UPC. 00027 // SimpleLTI consumer for Moodle is an implementation of the early specification of LTI 00028 // by Charles Severance (Dr Chuck) htp://dr-chuck.com , developed by Jordi Piguillem in a 00029 // Google Summer of Code 2008 project co-mentored by Charles Severance and Marc Alier. 00030 // 00031 // BasicLTI4Moodle is copyright 2009 by Marc Alier Forment, Jordi Piguillem and Nikolas Galanis 00032 // of the Universitat Politecnica de Catalunya http://www.upc.edu 00033 // Contact info: Marc Alier Forment granludo @ gmail.com or marc.alier @ upc.edu 00034 00050 defined('MOODLE_INTERNAL') || die; 00051 00055 class restore_lti_activity_structure_step extends restore_activity_structure_step { 00056 00057 protected function define_structure() { 00058 00059 $paths = array(); 00060 $paths[] = new restore_path_element('lti', '/activity/lti'); 00061 00062 // Return the paths wrapped into standard activity structure 00063 return $this->prepare_activity_structure($paths); 00064 } 00065 00066 protected function process_lti($data) { 00067 global $DB, $CFG; 00068 00069 $data = (object)$data; 00070 $oldid = $data->id; 00071 $data->course = $this->get_courseid(); 00072 00073 require_once($CFG->dirroot.'/mod/lti/lib.php'); 00074 00075 $newitemid = lti_add_instance($data, null); 00076 00077 // insert the basiclti record 00078 //$newitemid = $DB->insert_record('lti', $data); 00079 // immediately after inserting "activity" record, call this 00080 $this->apply_activity_instance($newitemid); 00081 } 00082 00083 protected function after_execute() { 00084 global $DB; 00085 00086 $basicltis = $DB->get_records('lti'); 00087 foreach ($basicltis as $basiclti) { 00088 if (!$DB->get_record('lti_types_config', 00089 array('typeid' => $basiclti->typeid, 'name' => 'toolurl', 'value' => $basiclti->toolurl))) { 00090 00091 $basiclti->typeid = 0; 00092 } 00093 00094 $basiclti->placementsecret = uniqid('', true); 00095 $basiclti->timeplacementsecret = time(); 00096 00097 $DB->update_record('lti', $basiclti); 00098 } 00099 00100 // Add basiclti related files, no need to match by itemname (just internally handled context) 00101 $this->add_related_files('mod_lti', 'intro', null); 00102 } 00103 }