iMath) - Computer Science Dep. of IME-USP (Brazil) * * License * - http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * * @see backup_activity_structure_step */ /** * Moodle core defines constant MOODLE_INTERNAL which shall be used to make sure that the script is included and not called directly. */ defined('MOODLE_INTERNAL') || die(); /** * Define the complete choice structure for backup, with file and id annotations * @see backup_activity_structure_step */ class backup_iassign_activity_structure_step extends backup_activity_structure_step { /** * Define the structure for the iassign activity * @return void Return the root element (choice), wrapped into standard activity structure */ protected function define_structure () { // To know if we are including userinfo $userinfo = $this->get_setting_value('userinfo'); $iassign = new backup_nested_element('iassign', array('id'), array('name', 'course', 'intro', 'introformat', 'activity_group', 'grade', 'timeavailable', 'timedue', 'preventlate', 'test', 'max_experiment')); $statements = new backup_nested_element('statements'); $statement = new backup_nested_element('statement', array('id'), array('name', 'iassignid', 'type_iassign', 'proposition', 'author_name', 'author_modified_name', 'iassign_ilmid', 'file', 'grade', 'timecreated', 'timemodified', 'timeavailable', 'timedue', 'preventlate', 'test', 'special_param1', 'position', 'visible', 'max_experiment', 'dependency', 'automatic_evaluate', 'show_answer', 'store_all_submissions', 'filesid')); $iassign_submissions = new backup_nested_element('iassign_submissions'); $iassign_submission = new backup_nested_element('iassign_submission', array('id'), array('iassign_statementid', 'userid', 'timecreated', 'timemodified', 'grade', 'teacher', 'answer', 'experiment', 'status')); $iassign_submission_comments = new backup_nested_element('iassign_submission_comments'); $iassign_submission_comment = new backup_nested_element('iassign_submission_comment', array('id'), array('iassign_submissionid', 'comment_authorid', 'timecreated', 'comment', 'return_status', 'receiver')); // Build the tree $iassign->add_child($statements); $statements->add_child($statement); $statement->add_child($iassign_submissions); $iassign_submissions->add_child($iassign_submission); $iassign_submission->add_child($iassign_submission_comments); $iassign_submission_comments->add_child($iassign_submission_comment); // Define sources $iassign->set_source_table('iassign', array('id' => backup::VAR_ACTIVITYID)); $statement->set_source_sql(' SELECT * FROM {iassign_statement} WHERE iassignid = ?', array(backup::VAR_PARENTID)); if($userinfo) { $iassign_submission->set_source_table('iassign_submission', array('iassign_statementid' => backup::VAR_PARENTID)); $iassign_submission_comment->set_source_table('iassign_submission_comment', array('iassign_submissionid' => backup::VAR_PARENTID)); } // Define id annotations $iassign_submission->annotate_ids('user', 'userid'); $iassign_submission->annotate_ids('user', 'teacher'); $iassign_submission_comment->annotate_ids('user', 'comment_authorid'); // Define file annotations $iassign->annotate_files('mod_iassign', 'exercise', null); // This file area hasn't itemid return $this->prepare_activity_structure($iassign); } }