Index: moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_activity_task.class.php =================================================================== diff -u --- moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_activity_task.class.php (revision 0) +++ moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_activity_task.class.php (revision 941ad535edb314ff3bcb89504edab085f6538e31) @@ -0,0 +1,53 @@ +dirroot . '/mod/lamslesson/backup/moodle2/backup_lamslesson_stepslib.php'); // Because it exists (must) +require_once($CFG->dirroot . '/mod/lamslesson/backup/moodle2/backup_lamslesson_settingslib.php'); // Because it exists (optional) + +/** + * lamslesson backup task that provides all the settings and steps to perform one + * complete backup of the activity + */ +class backup_lamslesson_activity_task extends backup_activity_task { + + /** + * Define (add) particular settings this activity can have + */ + protected function define_my_settings() { + // No particular settings for this activity + } + + /** + * Define (add) particular steps this activity can have + */ + protected function define_my_steps() { + // Choice only has one structure step + $this->add_step(new backup_lamslesson_activity_structure_step('lamslesson_structure', 'lamslesson.xml')); + } + + /** + * Code the transformations to perform in the activity in + * order to get transportable (encoded) links + */ + static public function encode_content_links($content) { + global $CFG; + + $base = preg_quote($CFG->wwwroot,"/"); + + // Link to the list of lamslessons + $search="/(".$base."\/mod\/lamslesson\/index.php\?id\=)([0-9]+)/"; + $content= preg_replace($search, '$@CHOICEINDEX*$2@$', $content); + + // Link to lamslesson view by moduleid + $search="/(".$base."\/mod\/lamslesson\/view.php\?id\=)([0-9]+)/"; + $content= preg_replace($search, '$@CHOICEVIEWBYID*$2@$', $content); + + return $content; + } +} Index: moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_settingslib.php =================================================================== diff -u --- moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_settingslib.php (revision 0) +++ moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_settingslib.php (revision 941ad535edb314ff3bcb89504edab085f6538e31) @@ -0,0 +1,27 @@ +. + +/** + * @package moodlecore + * @subpackage backup-moodle2 + * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + + // This activity has not particular settings but the inherited from the generic + // backup_activity_task so here there isn't any class definition, like the ones + // existing in /backup/moodle2/backup_settingslib.php (activities section) Index: moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_stepslib.php =================================================================== diff -u --- moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_stepslib.php (revision 0) +++ moodle/mod/lamslesson/backup/moodle2/backup_lamslesson_stepslib.php (revision 941ad535edb314ff3bcb89504edab085f6538e31) @@ -0,0 +1,40 @@ +get_setting_value('userinfo'); + + // Define each element separated + $lamslesson = new backup_nested_element('lamslesson', array('id'), array( + 'course', 'name', 'intro', 'introformat', 'groupid', + 'grade', 'sequence_id', 'lesson_id', 'timemodified', + 'completionfinished', 'displaydesign')); + + // Define sources + $lamslesson->set_source_table('lamslesson', array('id' => backup::VAR_ACTIVITYID)); + + // All the rest of elements only happen if we are including user info + if ($userinfo) { + } + + // Return the root element (lamslesson), wrapped into standard activity structure + return $this->prepare_activity_structure($lamslesson); + } +} Index: moodle/mod/lamslesson/backup/moodle2/restore_lamslesson_activity_task.class.php =================================================================== diff -u --- moodle/mod/lamslesson/backup/moodle2/restore_lamslesson_activity_task.class.php (revision 0) +++ moodle/mod/lamslesson/backup/moodle2/restore_lamslesson_activity_task.class.php (revision 941ad535edb314ff3bcb89504edab085f6538e31) @@ -0,0 +1,96 @@ +dirroot . '/mod/lamslesson/backup/moodle2/restore_lamslesson_stepslib.php'); // Because it exists (must) + +/** + * lamslesson restore task that provides all the settings and steps to perform one + * complete restore of the activity + */ +class restore_lamslesson_activity_task extends restore_activity_task { + + /** + * Define (add) particular settings this activity can have + */ + protected function define_my_settings() { + // No particular settings for this activity + } + + /** + * Define (add) particular steps this activity can have + */ + protected function define_my_steps() { + // Choice only has one structure step + $this->add_step(new restore_lamslesson_activity_structure_step('lamslesson_structure', 'lamslesson.xml')); + } + + /** + * Define the contents in the activity that must be + * processed by the link decoder + */ + static public function define_decode_contents() { + $contents = array(); + + $contents[] = new restore_decode_content('lamslesson', array('intro'), 'lamslesson'); + + return $contents; + } + + /** + * Define the decoding rules for links belonging + * to the activity to be executed by the link decoder + */ + static public function define_decode_rules() { + $rules = array(); + + //$rules[] = new restore_decode_rule('CHOICEVIEWBYID', '/mod/lamslesson/view.php?id=$1', 'course_module'); + //$rules[] = new restore_decode_rule('CHOICEINDEX', '/mod/lamslesson/index.php?id=$1', 'course'); + + return $rules; + + } + + /** + * Define the restore log rules that will be applied + * by the {@link restore_logs_processor} when restoring + * lamslesson logs. It must return one array + * of {@link restore_log_rule} objects + */ + static public function define_restore_log_rules() { + $rules = array(); + + $rules[] = new restore_log_rule('lamslesson', 'add', 'view.php?id={course_module}', '{lamslesson}'); + $rules[] = new restore_log_rule('lamslesson', 'update', 'view.php?id={course_module}', '{lamslesson}'); + $rules[] = new restore_log_rule('lamslesson', 'view', 'view.php?id={course_module}', '{lamslesson}'); + + return $rules; + } + + /** + * Define the restore log rules that will be applied + * by the {@link restore_logs_processor} when restoring + * course logs. It must return one array + * of {@link restore_log_rule} objects + * + * Note this rules are applied when restoring course logs + * by the restore final task, but are defined here at + * activity level. All them are rules not linked to any module instance (cmid = 0) + */ + static public function define_restore_log_rules_for_course() { + $rules = array(); + + //$rules[] = new restore_log_rule('lamslesson', 'view all', 'index?id={course}', null, + null, null, 'index.php?id={course}'); + //$rules[] = new restore_log_rule('lamslesson', 'view all', 'index.php?id={course}', null); + + return $rules; + } +} Index: moodle/mod/lamslesson/backup/moodle2/restore_lamslesson_stepslib.php =================================================================== diff -u --- moodle/mod/lamslesson/backup/moodle2/restore_lamslesson_stepslib.php (revision 0) +++ moodle/mod/lamslesson/backup/moodle2/restore_lamslesson_stepslib.php (revision 941ad535edb314ff3bcb89504edab085f6538e31) @@ -0,0 +1,51 @@ +get_setting_value('userinfo'); + + $paths[] = new restore_path_element('lamslesson', '/activity/lamslesson'); + if ($userinfo) { + } + + // Return the paths wrapped into standard activity structure + return $this->prepare_activity_structure($paths); + } + + protected function process_lamslesson($data) { + global $DB; + + $data = (object)$data; + $oldid = $data->id; + $data->course = $this->get_courseid(); + + $data->timemodified = $this->apply_date_offset($data->timemodified); + + // insert the lamslesson record + $newitemid = $DB->insert_record('lamslesson', $data); + // immediately after inserting "activity" record, call this + $this->apply_activity_instance($newitemid); + } + + protected function after_execute() { + // Add lamslesson related files, no need to match by itemname (just internally handled context) + $this->add_related_files('mod_lamslesson', 'intro', null); + } +} Index: moodle/mod/lamslesson/lib.php =================================================================== diff -u -rfff4221d477dd2d8bbac61f36246ab726ba6d570 -r941ad535edb314ff3bcb89504edab085f6538e31 --- moodle/mod/lamslesson/lib.php (.../lib.php) (revision fff4221d477dd2d8bbac61f36246ab726ba6d570) +++ moodle/mod/lamslesson/lib.php (.../lib.php) (revision 941ad535edb314ff3bcb89504edab085f6538e31) @@ -810,7 +810,7 @@ case FEATURE_GRADE_HAS_GRADE: return true; case FEATURE_GRADE_OUTCOMES: return true; case FEATURE_RATE: return false; - case FEATURE_BACKUP_MOODLE2: return false; + case FEATURE_BACKUP_MOODLE2: return true; default: return null; }