123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- /**
- * Define all the backup steps that will be used by the backup_iassign_activity_task
- *
- * @author Patricia Alves Rodrigues
- * @author Leônidas O. Brandão
- * @version v 1.0 2012
- * @package mod_iassign_backup
- * @since 2012
- * @copyright iMatica (<a href="http://www.matematica.br">iMath</a>) - Computer Science Dep. of IME-USP (Brazil)
- *
- * <b>License</b>
- * - 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);
- }
- }
|