Flotter Totte
7 years ago
2 changed files with 97 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||
<?php |
|||
// This file is part of Moodle - http://moodle.org/ |
|||
// |
|||
// 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/>. |
|||
/** |
|||
* Defines the backup_enrol_lti_plugin class. |
|||
* |
|||
* @package enrol_lti |
|||
* @copyright 2016 Mark Nelson <markn@moodle.com> |
|||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
|||
*/ |
|||
defined('MOODLE_INTERNAL') || die(); |
|||
|
|||
/** |
|||
* Provides the information to backup test enrol instances |
|||
*/ |
|||
class backup_enrol_apply_plugin extends backup_enrol_plugin { |
|||
|
|||
protected function define_enrol_plugin_structure() { |
|||
|
|||
// Define the virtual plugin element with the condition to fulfill |
|||
$plugin = $this->get_plugin_element(null, '../../enrol', $this->pluginname); |
|||
|
|||
// Create one standard named plugin element (the visible container) |
|||
$pluginwrapper = new backup_nested_element($this->get_recommended_name()); |
|||
|
|||
// connect the visible container ASAP |
|||
$plugin->add_child($pluginwrapper); |
|||
|
|||
$applymaps = new backup_nested_element('applymaps'); |
|||
|
|||
// Now create the enrol own structures |
|||
$applymap = new backup_nested_element('applymap', array('id'), array( |
|||
'enrol', 'status', 'courseid', 'sortorder', 'name', 'enrolperiod', 'enrolstartdate', 'enrolenddate', 'expirynotify', 'expirythreshold', 'notifyall', 'password', 'cost', 'currency', 'roleid', 'customint1', 'customint2', 'customint3', 'customint4', 'customint5', 'customint6', 'customint7', 'customint8', 'customchar1', 'customchar2', 'customchar3', 'customdec1', 'customdec2', 'customtext1', 'customtext2', 'customtext3', 'customtext4', 'timecreated', 'timemodified')); |
|||
|
|||
// Now the own termmap tree |
|||
$pluginwrapper->add_child($applymaps); |
|||
$applymaps->add_child($applymap); |
|||
|
|||
// set source to populate the data |
|||
$applymap->set_source_table('enrol_apply_applicationinfo', |
|||
array('enrol' => backup::VAR_PARENTID)); |
|||
|
|||
return $plugin; |
|||
} |
|||
} |
@ -0,0 +1,40 @@ |
|||
<?php |
|||
|
|||
defined('MOODLE_INTERNAL') || die(); |
|||
|
|||
require_once($CFG->dirroot.'/enrol/apply/lib.php'); |
|||
|
|||
/** |
|||
* Provides the information to restore test enrol instances |
|||
*/ |
|||
class restore_enrol_apply_plugin extends restore_enrol_plugin { |
|||
|
|||
public function define_enrol_plugin_structure() { |
|||
return array( |
|||
new restore_path_element('applymap', $this->get_pathfor('/applymaps/applymap')), |
|||
); |
|||
} |
|||
|
|||
/** |
|||
* Process the termmap element |
|||
*/ |
|||
public function process_applymap($data) { |
|||
global $DB; |
|||
|
|||
$data = (object)$data; |
|||
$oldid = $data->id; |
|||
$enrolid = $this->get_new_parentid('enrol'); |
|||
|
|||
if (!$enrolid) { |
|||
return; // Enrol instance was not restored |
|||
} |
|||
$type = $DB->get_field('enrol', 'enrol', array('id'=>$enrolid)); |
|||
if ($type !== 'apply') { |
|||
return; // Enrol was likely converted to manual |
|||
} |
|||
$data->enrolid = $enrolid; |
|||
$data->courseid = $this->task->get_courseid(); |
|||
$newitemid = $DB->insert_record('enrol_apply_applicationinfo', $data); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue