|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 00003 // This file is part of Moodle - http://moodle.org/ 00004 // 00005 // Moodle is free software: you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation, either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // Moodle is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 00017 00032 class backup_survey_activity_structure_step extends backup_activity_structure_step { 00033 00034 protected function define_structure() { 00035 00036 // To know if we are including userinfo 00037 $userinfo = $this->get_setting_value('userinfo'); 00038 00039 // Define each element separated 00040 $survey = new backup_nested_element('survey', array('id'), array( 00041 'name', 'intro', 'introformat', 'template', 00042 'questions', 'days', 'timecreated', 'timemodified')); 00043 00044 $answers = new backup_nested_element('answers'); 00045 00046 $answer = new backup_nested_element('answer', array('id'), array( 00047 'userid', 'question', 'time', 'answer1', 00048 'answer2')); 00049 00050 $analysis = new backup_nested_element('analysis'); 00051 00052 $analys = new backup_nested_element('analys', array('id'), array( 00053 'userid', 'notes')); 00054 00055 // Build the tree 00056 $survey->add_child($answers); 00057 $answers->add_child($answer); 00058 00059 $survey->add_child($analysis); 00060 $analysis->add_child($analys); 00061 00062 // Define sources 00063 $survey->set_source_table('survey', array('id' => backup::VAR_ACTIVITYID)); 00064 00065 $answer->set_source_table('survey_answers', array('survey' => backup::VAR_PARENTID)); 00066 00067 $analys->set_source_table('survey_analysis', array('survey' => backup::VAR_PARENTID)); 00068 00069 // Define id annotations 00070 $answer->annotate_ids('user', 'userid'); 00071 $analys->annotate_ids('user', 'userid'); 00072 00073 // Define file annotations 00074 $survey->annotate_files('mod_survey', 'intro', null); // This file area hasn't itemid 00075 00076 // Return the root element (survey), wrapped into standard activity structure 00077 return $this->prepare_activity_structure($survey); 00078 } 00079 }