MDL-22164 backup - cleaning questions from old backup code
authorEloy Lafuente <stronk7@moodle.org>
Mon, 20 Sep 2010 21:30:01 +0000 (21:30 +0000)
committerEloy Lafuente <stronk7@moodle.org>
Mon, 20 Sep 2010 21:30:01 +0000 (21:30 +0000)
question/backuplib.php
question/type/essay/questiontype.php
question/type/match/questiontype.php
question/type/multianswer/questiontype.php
question/type/multichoice/questiontype.php
question/type/numerical/questiontype.php
question/type/randomsamatch/questiontype.php
question/type/truefalse/questiontype.php

index 94f6735..fe8c9d6 100644 (file)
@@ -1,253 +1,4 @@
 <?php
-/**
- * Question bank backup code.
- *
- * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
- * @package questionbank
- *//** */
-
-//This is the "graphical" structure of the question database:
-    //To see, put your terminal to 160cc
-
-    // The following holds student-independent information about the questions
-    //
-    //          question_categories
-    //             (CL,pk->id)
-    //                  |
-    //                  |
-    //                  |.......................................
-    //                  |                                      .
-    //                  |                                      .
-    //                  |    -------question_datasets------    .
-    //                  |    |  (CL,pk->id,fk->question,  |    .
-    //                  |    |   fk->dataset_definition)  |    .
-    //                  |    |                            |    .
-    //                  |    |                            |    .
-    //                  |    |                            |    .
-    //                  |    |                    question_dataset_definitions
-    //                  |    |                      (CL,pk->id,fk->category)
-    //              question                                   |
-    //        (CL,pk->id,fk->category,files)                   |
-    //                  |                             question_dataset_items
-    //                  |                          (CL,pk->id,fk->definition)
-    //                  |
-    //                  |
-    //                  |
-    //             --------------------------------------------------------------------------------------------------------------
-    //             |             |              |              |                       |                  |                     |
-    //             |             |              |              |                       |                  |                     |
-    //             |             |              |              |             question_calculated          |                     |
-    //      question_truefalse   |     question_multichoice    |          (CL,pl->id,fk->question)        |                     |
-    // (CL,pk->id,fk->question)  |   (CL,pk->id,fk->question)  |                       .                  |                     |  question_randomsamatch
-    //             .             |              .              |                       .                  |                     |--(CL,pk->id,fk->question)
-    //             .    question_shortanswer    .      question_numerical              .         question_multianswer.          |
-    //             .  (CL,pk->id,fk->question)  .  (CL,pk->id,fk->question)            .        (CL,pk->id,fk->question)        |
-    //             .             .              .              .                       .                  .                     |       question_match
-    //             .             .              .              .                       .                  .                     |--(CL,pk->id,fk->question)
-    //             .             .              .              .                       .                  .                     |             .
-    //             .             .              .              .                       .                  .                     |             .
-    //             .             .              .              .                       .                  .                     |             .
-    //             .             .              .              .                       .                  .                     |    question_match_sub
-    //             ........................................................................................                     |--(CL,pk->id,fk->question)
-    //                                                   .                                                                      |
-    //                                                   .                                                                      |
-    //                                                   .                                                                      |  question_numerical_units
-    //                                             question_answers                                                             |--(CL,pk->id,fk->question)
-    //                                         (CL,pk->id,fk->question)----------------------------------------------------------
-    //
-    //
-    // The following holds the information about student interaction with the questions
-    //
-    //             question_sessions
-    //      (UL,pk->id,fk->attempt,question)
-    //                    .
-    //                    .
-    //             question_states
-    //       (UL,pk->id,fk->attempt,question)
-    //
-    // Meaning: pk->primary key field of the table
-    //          fk->foreign key to link with parent
-    //          nt->nested field (recursive data)
-    //          SL->site level info
-    //          CL->course level info
-    //          UL->user level info
-    //          files->table may have files
-    //
-    //-----------------------------------------------------------
-
-    require_once("$CFG->libdir/questionlib.php");
-
-    function backup_question_category_context($bf, $contextid, $course) {
-        global $DB;
-
-        $status = true;
-        $context = get_context_instance_by_id($contextid);
-        $status = $status && fwrite($bf,start_tag("CONTEXT",4,true));
-        switch ($context->contextlevel){
-            case CONTEXT_MODULE:
-                $status = $status && fwrite($bf,full_tag("LEVEL",5,false, 'module'));
-                $status = $status && fwrite($bf,full_tag("INSTANCE",5,false, $context->instanceid));
-                break;
-            case CONTEXT_COURSE:
-                $status = $status && fwrite($bf,full_tag("LEVEL",5,false, 'course'));
-                break;
-            case CONTEXT_COURSECAT:
-                $thiscourse = $DB->get_record('course', array('id'=>$course));
-                $cat = $thiscourse->category;
-                $catno = 1;
-                while($context->instanceid != $cat){
-                    $catno ++;
-                    if ($cat ==0) {
-                        return false;
-                    }
-                    $cat = $DB->get_field('course_categories', 'parent', array('id'=>$cat));
-                }
-                $status = $status && fwrite($bf,full_tag("LEVEL",5,false, 'coursecategory'));
-                $status = $status && fwrite($bf,full_tag("COURSECATEGORYLEVEL",5,false, $catno));
-               break;
-            case CONTEXT_SYSTEM:
-                $status = $status && fwrite($bf,full_tag("LEVEL",5,false, 'system'));
-                break;
-            default :
-                return false;
-        }
-        $status = $status && fwrite($bf,end_tag("CONTEXT",4,true));
-        return $status;
-    }
-
-    function backup_question_categories($bf,$preferences) {
-        global $CFG, $DB;
-
-        $status = true;
-
-        //First, we get the used categories from backup_ids
-        $categories = question_category_ids_by_backup ($preferences->backup_unique_code);
-
-        //If we've categories
-        if ($categories) {
-             //Write start tag
-             $status = $status && fwrite($bf,start_tag("QUESTION_CATEGORIES",2,true));
-             //Iterate over each category
-            foreach ($categories as $cat) {
-                //Start category
-                $status = $status && fwrite ($bf,start_tag("QUESTION_CATEGORY",3,true));
-                //Get category data from question_categories
-                $category = $DB->get_record ("question_categories", array("id"=>$cat->old_id));
-                //Print category contents
-                $status = $status && fwrite($bf,full_tag("ID",4,false,$category->id));
-                $status = $status && fwrite($bf,full_tag("NAME",4,false,$category->name));
-                $status = $status && fwrite($bf,full_tag("INFO",4,false,$category->info));
-                $status = $status && backup_question_category_context($bf, $category->contextid, $preferences->backup_course);
-                $status = $status && fwrite($bf,full_tag("STAMP",4,false,$category->stamp));
-                $status = $status && fwrite($bf,full_tag("PARENT",4,false,$category->parent));
-                $status = $status && fwrite($bf,full_tag("SORTORDER",4,false,$category->sortorder));
-                //Now, backup their questions
-                $status = $status && backup_question($bf,$preferences,$category->id);
-                //End category
-                $status = $status && fwrite ($bf,end_tag("QUESTION_CATEGORY",3,true));
-            }
-            //Write end tag
-            $status = $status && fwrite ($bf,end_tag("QUESTION_CATEGORIES",2,true));
-        }
-
-        return $status;
-    }
-
-    //This function backups all the questions in selected category and their
-    //asociated data
-    function backup_question($bf,$preferences,$category, $level = 4) {
-        global $CFG, $QTYPES, $DB;
-
-        $status = true;
-
-        // We'll fetch the questions sorted by parent so that questions with no parents
-        // (these are the ones which could be parents themselves) are backed up first. This
-        // is important for the recoding of the parent field during the restore process
-        // Only select questions with ids in backup_ids table
-        $questions = $DB->get_records_sql("SELECT q.* FROM {backup_ids} bk, {question} q
-                                            WHERE q.category= ? AND
-                                                  bk.old_id=q.id AND
-                                                  bk.backup_code = ?
-                                         ORDER BY parent ASC, q.id", array($category, $preferences->backup_unique_code));
-        //If there are questions
-        if ($questions) {
-            //Write start tag
-            $status = $status && fwrite ($bf,start_tag("QUESTIONS",$level,true));
-            $counter = 0;
-            //Iterate over each question
-            foreach ($questions as $question) {
-                // Deal with missing question types - they need to be included becuase
-                // user data or quizzes may refer to them.
-                if (!array_key_exists($question->qtype, $QTYPES)) {
-                    $question->qtype = 'missingtype';
-                    $question->questiontext = '<p>' . get_string('warningmissingtype', 'quiz') . '</p>' . $question->questiontext;
-                }
-                //Start question
-                $status = $status && fwrite ($bf,start_tag("QUESTION",$level + 1,true));
-                //Print question contents
-                fwrite ($bf,full_tag("ID",$level + 2,false,$question->id));
-                fwrite ($bf,full_tag("PARENT",$level + 2,false,$question->parent));
-                fwrite ($bf,full_tag("NAME",$level + 2,false,$question->name));
-                fwrite ($bf,full_tag("QUESTIONTEXT",$level + 2,false,$question->questiontext));
-                fwrite ($bf,full_tag("QUESTIONTEXTFORMAT",$level + 2,false,$question->questiontextformat));
-                fwrite ($bf,full_tag("IMAGE",$level + 2,false,$question->image));
-                fwrite ($bf,full_tag("GENERALFEEDBACK",$level + 2,false,$question->generalfeedback));
-                fwrite ($bf,full_tag("DEFAULTGRADE",$level + 2,false,$question->defaultgrade));
-                fwrite ($bf,full_tag("PENALTY",$level + 2,false,$question->penalty));
-                fwrite ($bf,full_tag("QTYPE",$level + 2,false,$question->qtype));
-                fwrite ($bf,full_tag("LENGTH",$level + 2,false,$question->length));
-                fwrite ($bf,full_tag("STAMP",$level + 2,false,$question->stamp));
-                fwrite ($bf,full_tag("VERSION",$level + 2,false,$question->version));
-                fwrite ($bf,full_tag("HIDDEN",$level + 2,false,$question->hidden));
-                fwrite ($bf,full_tag("TIMECREATED",$level + 2,false,$question->timecreated));
-                fwrite ($bf,full_tag("TIMEMODIFIED",$level + 2,false,$question->timemodified));
-                fwrite ($bf,full_tag("CREATEDBY",$level + 2,false,$question->createdby));
-                fwrite ($bf,full_tag("MODIFIEDBY",$level + 2,false,$question->modifiedby));
-                // Backup question type specific data
-                $status = $status && $QTYPES[$question->qtype]->backup($bf,$preferences,$question->id, $level + 2);
-                //End question
-                $status = $status && fwrite ($bf,end_tag("QUESTION",$level + 1,true));
-                //Do some output
-                $counter++;
-                if ($counter % 10 == 0) {
-                    echo ".";
-                    if ($counter % 200 == 0) {
-                        echo "<br />";
-                    }
-                    backup_flush(300);
-                }
-            }
-            //Write end tag
-            $status = $status && fwrite ($bf,end_tag("QUESTIONS",$level,true));
-        }
-        return $status;
-    }
-
-    //This function backups the answers data in some question types
-    //(truefalse, shortanswer,multichoice,numerical,calculated)
-    function question_backup_answers($bf,$preferences,$question, $level = 6) {
-        global $CFG, $DB;
-
-        $status = true;
-
-        $answers = $DB->get_records("question_answers", array("question"=>$question), "id");
-        //If there are answers
-        if ($answers) {
-            $status = $status && fwrite ($bf,start_tag("ANSWERS",$level,true));
-            //Iterate over each answer
-            foreach ($answers as $answer) {
-                $status = $status && fwrite ($bf,start_tag("ANSWER",$level + 1,true));
-                //Print answer contents
-                fwrite ($bf,full_tag("ID",$level + 2,false,$answer->id));
-                fwrite ($bf,full_tag("ANSWER_TEXT",$level + 2,false,$answer->answer));
-                fwrite ($bf,full_tag("FRACTION",$level + 2,false,$answer->fraction));
-                fwrite ($bf,full_tag("FEEDBACK",$level + 2,false,$answer->feedback));
-                $status = $status && fwrite ($bf,end_tag("ANSWER",$level + 1,true));
-            }
-            $status = $status && fwrite ($bf,end_tag("ANSWERS",$level,true));
-        }
-        return $status;
-    }
 
     //This function backups question_numerical_units from different question types
     function question_backup_numerical_units($bf,$preferences,$question,$level=7) {
         return $status;
 
     }
-
-
-    //Backup question_states contents (executed from backup_quiz_attempts)
-    function backup_question_states ($bf,$preferences,$attempt, $level = 6) {
-        global $CFG, $DB;
-
-        $status = true;
-
-        $question_states = $DB->get_records("question_states", array("attempt"=>$attempt),"id");
-        //If there are states
-        if ($question_states) {
-            //Write start tag
-            $status = $status && fwrite ($bf,start_tag("STATES",$level,true));
-            //Iterate over each state
-            foreach ($question_states as $state) {
-                //Start state
-                $status = $status && fwrite ($bf,start_tag("STATE",$level + 1,true));
-                //Print state contents
-                fwrite ($bf,full_tag("ID",$level + 2,false,$state->id));
-                fwrite ($bf,full_tag("QUESTION",$level + 2,false,$state->question));
-                fwrite ($bf,full_tag("SEQ_NUMBER",$level + 2,false,$state->seq_number));
-                fwrite ($bf,full_tag("ANSWER",$level + 2,false,$state->answer));
-                fwrite ($bf,full_tag("TIMESTAMP",$level + 2,false,$state->timestamp));
-                fwrite ($bf,full_tag("EVENT",$level + 2,false,$state->event));
-                fwrite ($bf,full_tag("GRADE",$level + 2,false,$state->grade));
-                fwrite ($bf,full_tag("RAW_GRADE",$level + 2,false,$state->raw_grade));
-                fwrite ($bf,full_tag("PENALTY",$level + 2,false,$state->penalty));
-                //End state
-                $status = $status && fwrite ($bf,end_tag("STATE",$level + 1,true));
-            }
-            //Write end tag
-            $status = $status && fwrite ($bf,end_tag("STATES",$level,true));
-        }
-    }
-
-    //Backup question_sessions contents (executed from backup_quiz_attempts)
-    function backup_question_sessions ($bf,$preferences,$attempt, $level = 6) {
-        global $CFG, $DB;
-
-        $status = true;
-
-        $question_sessions = $DB->get_records("question_sessions", array("attemptid"=>$attempt), "id");
-        //If there are sessions
-        if ($question_sessions) {
-            //Write start tag (the funny name 'newest states' has historical reasons)
-            $status = $status && fwrite ($bf,start_tag("NEWEST_STATES",$level,true));
-            //Iterate over each newest_state
-            foreach ($question_sessions as $newest_state) {
-                //Start newest_state
-                $status = $status && fwrite ($bf,start_tag("NEWEST_STATE",$level + 1,true));
-                //Print newest_state contents
-                fwrite ($bf,full_tag("ID",$level + 2,false,$newest_state->id));
-                fwrite ($bf,full_tag("QUESTIONID",$level + 2,false,$newest_state->questionid));
-                fwrite ($bf,full_tag("NEWEST",$level + 2,false,$newest_state->newest));
-                fwrite ($bf,full_tag("NEWGRADED",$level + 2,false,$newest_state->newgraded));
-                fwrite ($bf,full_tag("SUMPENALTY",$level + 2,false,$newest_state->sumpenalty));
-                fwrite ($bf,full_tag("MANUALCOMMENT",$level + 2,false,$newest_state->manualcomment));
-                //End newest_state
-                $status = $status && fwrite ($bf,end_tag("NEWEST_STATE",$level + 1,true));
-            }
-            //Write end tag
-            $status = $status && fwrite ($bf,end_tag("NEWEST_STATES",$level,true));
-        }
-        return $status;
-    }
-
-    //Returns an array of categories id
-    function question_category_ids_by_backup ($backup_unique_code) {
-        global $CFG, $DB;
-
-        return $DB->get_records_sql("SELECT a.old_id, a.backup_code
-                                       FROM {backup_ids} a
-                                      WHERE a.backup_code = ? AND
-                                            a.table_name = 'question_categories'", array($backup_unique_code));
-    }
-
-    function question_ids_by_backup ($backup_unique_code) {
-        global $CFG, $DB;
-
-        return $DB->get_records_sql("SELECT old_id, backup_code
-                                       FROM {backup_ids}
-                                      WHERE backup_code = ? AND
-                                            table_name = 'question'", array($backup_unique_code));
-    }
-
-    //Function for inserting question and category ids into db that are all called from
-    // quiz_check_backup_mods during execution of backup_check.html
-
-    function question_insert_c_and_q_ids_for_course($coursecontext, $backup_unique_code){
-        global $CFG, $DB;
-        // First, all categories from this course's context.
-        $status = $DB->execute("INSERT INTO {backup_ids} (backup_code, table_name, old_id, info)
-                                SELECT '$backup_unique_code', 'question_categories', qc.id, 'course'
-                                  FROM {question_categories} qc
-                                 WHERE qc.contextid = ?", array($coursecontext->id));
-        $status = $status && question_insert_q_ids($backup_unique_code, 'course');
-        return $status;
-    }
-
-    /**
-     * Insert all question ids for categories whose ids have already been inserted in the backup_ids table
-     * Insert code to identify categories to later insert all question ids later eg. course, quiz or other module name.
-     */
-    function question_insert_q_ids($backup_unique_code, $info){
-        global $CFG,$DB;
-        //put the ids of the questions from all these categories into the db.
-        $status = $DB->execute("INSERT INTO {backup_ids} (backup_code, table_name, old_id, info)
-                                SELECT ?, 'question', q.id, ?
-                                  FROM {question} q, {backup_ids} bk
-                                 WHERE q.category = bk.old_id AND bk.table_name = 'question_categories'
-                                       AND " . $DB->sql_compare_text('bk.info') . " = ?
-                                       AND bk.backup_code = ?",
-                array($backup_unique_code, $DB->sql_empty(), $info, $backup_unique_code));
-        return $status;
-    }
-
-    function question_insert_c_and_q_ids_for_module($backup_unique_code, $course, $modulename, $instances){
-        global $CFG, $DB;
-        $status = true;
-        // using 'dummykeyname' in sql because otherwise $DB->get_records_sql_menu returns an error
-        // if two key names are the same.
-        $cmcontexts = array();
-        if(!empty($instances)) {
-            list($usql, $params) = $DB->get_in_or_equal(array_keys($instances));
-            $params[] = $modulename;
-            $params[] = $course;
-            $cmcontexts = $DB->get_records_sql_menu("SELECT c.id, c.id AS dummykeyname FROM {modules} m,
-                                                        {course_modules} cm, {context} c
-                               WHERE cm.instance $usql AND m.name = ? AND m.id = cm.module AND cm.id = c.instanceid
-                                    AND c.contextlevel = ".CONTEXT_MODULE." AND cm.course = ?", $params);
-        }
-
-        if ($cmcontexts){
-            list($usql, $params) = $DB->get_in_or_equal(array_keys($cmcontexts));
-            $status = $status && $DB->execute("INSERT INTO {backup_ids} (backup_code, table_name, old_id, info)
-                                               SELECT '$backup_unique_code', 'question_categories', qc.id, '$modulename'
-                                                 FROM {question_categories} qc
-                                                WHERE qc.contextid $usql", $params);
-        }
-        $status = $status && question_insert_q_ids($backup_unique_code, $modulename);
-        return $status;
-    }
-
-    function question_insert_site_file_names($course, $backup_unique_code){
-        global $QTYPES, $CFG, $DB, $OUTPUT;
-        $status = true;
-        $questionids = question_ids_by_backup ($backup_unique_code);
-        $urls = array();
-        if ($questionids){
-            foreach ($questionids as $question_bk){
-                $question = $DB->get_record('question', array('id'=>$question_bk->old_id));
-                $QTYPES[$question->qtype]->get_question_options($question);
-                $urls = array_merge_recursive($urls, $QTYPES[$question->qtype]->find_file_links($question, SITEID));
-            }
-        }
-        ksort($urls);
-        foreach (array_keys($urls) as $url){
-            if (file_exists($CFG->dataroot.'/'.SITEID.'/'.$url)){
-                $inserturl = new object();
-                $inserturl->backup_code = $backup_unique_code;
-                $inserturl->file_type = 'site';
-                $url = clean_param($url, PARAM_PATH);
-                $inserturl->path = $url;
-                $status = $status && $DB->insert_record('backup_files', $inserturl);
-            } else {
-                echo $OUTPUT->notification(get_string('linkedfiledoesntexist', 'question', $url));
-            }
-        }
-        return $status;
-    }
-
index 67bafcd..e6b891d 100644 (file)
@@ -129,20 +129,6 @@ class question_essay_qtype extends default_questiontype {
         return true;
     }
 
-
-    /**
-     * Backup the extra information specific to an essay question - over and above
-     * what is in the mdl_question table.
-     *
-     * @param file $bf The backup file to write to.
-     * @param object $preferences the blackup options controlling this backup.
-     * @param $questionid the id of the question being backed up.
-     * @param $level indent level in the backup file - so it can be formatted nicely.
-     */
-    function backup($bf, $preferences, $questionid, $level = 6) {
-        return question_backup_answers($bf, $preferences, $questionid, $level);
-    }
-
     /**
      * Runs all the code required to set up and save an essay question for testing purposes.
      * Alternate DB table prefix may be used to facilitate data deletion.
index f30ebdf..63c15c9 100644 (file)
@@ -483,45 +483,6 @@ class question_match_qtype extends default_questiontype {
         return 1 / count($question->options->subquestions);
     }
 
-/// BACKUP FUNCTIONS ////////////////////////////
-
-    /*
-     * Backup the data in the question
-     *
-     * This is used in question/backuplib.php
-     */
-    function backup($bf,$preferences,$question,$level=6) {
-        global $DB;
-        $status = true;
-
-        // Output the shuffleanswers setting.
-        $matchoptions = $DB->get_record('question_match', array('question' => $question));
-        if ($matchoptions) {
-            $status = fwrite ($bf,start_tag("MATCHOPTIONS",6,true));
-            fwrite ($bf,full_tag("SHUFFLEANSWERS",7,false,$matchoptions->shuffleanswers));
-            $status = fwrite ($bf,end_tag("MATCHOPTIONS",6,true));
-        }
-
-        $matchs = $DB->get_records('question_match_sub', array('question' =>  $question), 'id ASC');
-        //If there are matchs
-        if ($matchs) {
-            //Print match contents
-            $status = fwrite ($bf,start_tag("MATCHS",6,true));
-            //Iterate over each match
-            foreach ($matchs as $match) {
-                $status = fwrite ($bf,start_tag("MATCH",7,true));
-                //Print match contents
-                fwrite ($bf,full_tag("ID",8,false,$match->id));
-                fwrite ($bf,full_tag("CODE",8,false,$match->code));
-                fwrite ($bf,full_tag("QUESTIONTEXT",8,false,$match->questiontext));
-                fwrite ($bf,full_tag("ANSWERTEXT",8,false,$match->answertext));
-                $status = fwrite ($bf,end_tag("MATCH",7,true));
-            }
-            $status = fwrite ($bf,end_tag("MATCHS",6,true));
-        }
-        return $status;
-    }
-
 /// RESTORE FUNCTIONS /////////////////
 
     /*
index 921c411..62e2cb6 100644 (file)
@@ -673,39 +673,6 @@ class embedded_cloze_qtype extends default_questiontype {
         return $totalfraction / count($question->options->questions);
     }
 
-/// BACKUP FUNCTIONS ////////////////////////////
-
-    /*
-     * Backup the data in the question
-     *
-     * This is used in question/backuplib.php
-     */
-    function backup($bf,$preferences,$question,$level=6) {
-        global $DB;
-        $status = true;
-
-        $multianswers = $DB->get_records("question_multianswer",array("question" => $question),"id");
-        //If there are multianswers
-        if ($multianswers) {
-            //Print multianswers header
-            $status = fwrite ($bf,start_tag("MULTIANSWERS",$level,true));
-            //Iterate over each multianswer
-            foreach ($multianswers as $multianswer) {
-                $status = fwrite ($bf,start_tag("MULTIANSWER",$level+1,true));
-                //Print multianswer contents
-                fwrite ($bf,full_tag("ID",$level+2,false,$multianswer->id));
-                fwrite ($bf,full_tag("QUESTION",$level+2,false,$multianswer->question));
-                fwrite ($bf,full_tag("SEQUENCE",$level+2,false,$multianswer->sequence));
-                $status = fwrite ($bf,end_tag("MULTIANSWER",$level+1,true));
-            }
-            //Print multianswers footer
-            $status = fwrite ($bf,end_tag("MULTIANSWERS",$level,true));
-            //Now print question_answers
-            $status = question_backup_answers($bf,$preferences,$question);
-        }
-        return $status;
-    }
-
 /// RESTORE FUNCTIONS /////////////////
 
     /*
index ec60557..2cbb9c5 100644 (file)
@@ -419,40 +419,6 @@ class question_multichoice_qtype extends default_questiontype {
         }
         return $totalfraction / count($question->options->answers);
     }
-    /// BACKUP FUNCTIONS ////////////////////////////
-
-    /*
-     * Backup the data in the question
-     *
-     * This is used in question/backuplib.php
-     */
-    function backup($bf,$preferences,$question,$level=6) {
-
-        global $DB;
-        $status = true;
-
-        $multichoices = $DB->get_records("question_multichoice",array("question" => $question),"id");
-        if ($multichoices) {
-            //Iterate over each multichoice
-            foreach ($multichoices as $multichoice) {
-                $status = fwrite ($bf,start_tag("MULTICHOICE",$level,true));
-                //Print multichoice contents
-                fwrite ($bf,full_tag("LAYOUT",$level+1,false,$multichoice->layout));
-                fwrite ($bf,full_tag("ANSWERS",$level+1,false,$multichoice->answers));
-                fwrite ($bf,full_tag("SINGLE",$level+1,false,$multichoice->single));
-                fwrite ($bf,full_tag("SHUFFLEANSWERS",$level+1,false,$multichoice->shuffleanswers));
-                fwrite ($bf,full_tag("CORRECTFEEDBACK",$level+1,false,$multichoice->correctfeedback));
-                fwrite ($bf,full_tag("PARTIALLYCORRECTFEEDBACK",$level+1,false,$multichoice->partiallycorrectfeedback));
-                fwrite ($bf,full_tag("INCORRECTFEEDBACK",$level+1,false,$multichoice->incorrectfeedback));
-                fwrite ($bf,full_tag("ANSWERNUMBERING",$level+1,false,$multichoice->answernumbering));
-                $status = fwrite ($bf,end_tag("MULTICHOICE",$level,true));
-            }
-
-            //Now print question_answers
-            $status = question_backup_answers($bf,$preferences,$question);
-        }
-        return $status;
-    }
 
     /// RESTORE FUNCTIONS /////////////////
 
index fe9ef21..e124008 100644 (file)
@@ -1230,20 +1230,6 @@ class question_numerical_qtype extends question_shortanswer_qtype {
                 $status = fwrite ($bf,end_tag("NUMERICAL",$level,true));
             }
             $status = question_backup_numerical_options($bf,$preferences,$question,$level);
-            /*            $numerical_options = $DB->get_records("question_numerical_options",array("questionid" => $question),"id");
-            if ($numerical_options) {
-                //Iterate over each numerical_option
-                foreach ($numerical_options as $numerical_option) {
-                    $status = fwrite ($bf,start_tag("NUMERICAL_OPTIONS",$level,true));
-                    //Print numerical_option contents
-                    fwrite ($bf,full_tag("INSTRUCTIONS",$level+1,false,$numerical_option->instructions));
-                    fwrite ($bf,full_tag("SHOWUNITS",$level+1,false,$numerical_option->showunits));
-                    fwrite ($bf,full_tag("UNITSLEFT",$level+1,false,$numerical_option->unitsleft));
-                    fwrite ($bf,full_tag("UNITGRADINGTYPE",$level+1,false,$numerical_option->unitgradingtype));
-                    fwrite ($bf,full_tag("UNITPENALTY",$level+1,false,$numerical_option->unitpenalty));
-                    $status = fwrite ($bf,end_tag("NUMERICAL_OPTIONS",$level,true));
-                }
-            }*/
 
             //Now print question_answers
             $status = question_backup_answers($bf,$preferences,$question);
index b26027b..177fde4 100644 (file)
@@ -339,31 +339,6 @@ class question_randomsamatch_qtype extends question_match_qtype {
     function get_random_guess_score($question) {
         return 1/$question->options->choose;
     }
-/// BACKUP FUNCTIONS ////////////////////////////
-
-    /*
-     * Backup the data in the question
-     *
-     * This is used in question/backuplib.php
-     */
-    function backup($bf,$preferences,$question,$level=6) {
-        global $DB;
-
-        $status = true;
-
-        $randomsamatchs = $DB->get_records("question_randomsamatch",array("question" => $question),"id");
-        //If there are randomsamatchs
-        if ($randomsamatchs) {
-            //Iterate over each randomsamatch
-            foreach ($randomsamatchs as $randomsamatch) {
-                $status = fwrite ($bf,start_tag("RANDOMSAMATCH",6,true));
-                //Print randomsamatch contents
-                fwrite ($bf,full_tag("CHOOSE",7,false,$randomsamatch->choose));
-                $status = fwrite ($bf,end_tag("RANDOMSAMATCH",6,true));
-            }
-        }
-        return $status;
-    }
 
 /// RESTORE FUNCTIONS /////////////////
 
index 58c78a1..22bcf71 100644 (file)
@@ -292,35 +292,6 @@ class question_truefalse_qtype extends default_questiontype {
         return 0.5;
     }
 
-/// BACKUP FUNCTIONS ////////////////////////////
-
-    /*
-     * Backup the data in a truefalse question
-     *
-     * This is used in question/backuplib.php
-     */
-    function backup($bf,$preferences,$question,$level=6) {
-        global $DB;
-
-        $status = true;
-
-        $truefalses = $DB->get_records("question_truefalse",array("question" => $question),"id");
-        //If there are truefalses
-        if ($truefalses) {
-            //Iterate over each truefalse
-            foreach ($truefalses as $truefalse) {
-                $status = fwrite ($bf,start_tag("TRUEFALSE",$level,true));
-                //Print truefalse contents
-                fwrite ($bf,full_tag("TRUEANSWER",$level+1,false,$truefalse->trueanswer));
-                fwrite ($bf,full_tag("FALSEANSWER",$level+1,false,$truefalse->falseanswer));
-                $status = fwrite ($bf,end_tag("TRUEFALSE",$level,true));
-            }
-            //Now print question_answers
-            $status = question_backup_answers($bf,$preferences,$question);
-        }
-        return $status;
-    }
-
 /// RESTORE FUNCTIONS /////////////////
 
     /*