]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-8226\rMove aon import format from head into contrib. No longer maintained. Use...
authorthepurpleblob <thepurpleblob>
Fri, 19 Jan 2007 14:38:18 +0000 (14:38 +0000)
committerthepurpleblob <thepurpleblob>
Fri, 19 Jan 2007 14:38:18 +0000 (14:38 +0000)
question/format/aon/format.php [deleted file]

diff --git a/question/format/aon/format.php b/question/format/aon/format.php
deleted file mode 100644 (file)
index 5c974a0..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php  // $Id$ 
-
-////////////////////////////////////////////////////////////////////////////
-/// Academy of Nursing format
-///
-/// Based on missingword.php
-///
-/// This Moodle class provides all functions necessary to import and export 
-/// one-correct-answer multiple choice questions in this format:
-///
-///    As soon as we begin to explore our body parts as infants
-///    we become students of {=anatomy and physiology ~reflexology 
-///    ~science ~experiment}, and in a sense we remain students for life.
-/// 
-/// Each answer is separated with a tilde ~, and the correct answer is 
-/// prefixed with an equals sign =
-///
-/// Afterwards, all short-answer questions are randomly packed into 
-/// 4-answer matching questions.
-///
-////////////////////////////////////////////////////////////////////////////
-
-// Based on format.php, included by ../../import.php
-
-class qformat_aon extends qformat_default {
-
-    function provide_import() {
-        return true;
-    }
-
-    function readquestion($lines) {
-    /// Given an array of lines known to define a question in 
-    /// this format, this function converts it into a question 
-    /// object suitable for processing and insertion into Moodle.
-
-        $question = $this->defaultquestion();
-
-        $text = implode($lines, " ");
-
-        /// Find answer section
-
-        $answerstart = strpos($text, "{");
-        if ($answerstart === false) {
-            if ($this->displayerrors) {
-                echo "<p>$text<p>Could not find a {";
-            }
-            return false;
-        }
-
-        $answerfinish = strpos($text, "}");
-        if ($answerfinish === false) {
-            if ($this->displayerrors) {
-                echo "<p>$text<p>Could not find a }";
-            }
-            return false;
-        }
-
-        $answerlength = $answerfinish - $answerstart;
-        $answertext = substr($text, $answerstart + 1, $answerlength - 1);
-
-        /// Save the new question text
-        $question->questiontext = addslashes(substr_replace($text, "_____", $answerstart, $answerlength+1));
-        $question->name = substr($question->questiontext, 0, 60)." ...";
-
-
-        /// Parse the answers
-        $answers = explode("~", $answertext);
-
-        $countanswers = count($answers);
-
-        switch ($countanswers) {
-            case 0:  // invalid question
-                if ($this->displayerrors) {
-                    echo "<p>No answers found in $answertext";
-                }
-                return false;
-
-            case 1:
-                $question->qtype = SHORTANSWER;
-
-                $answer = trim($answers[0]);
-                if ($answer[0] == "=") {
-                    $answer = substr($answer, 1);
-                }
-                $question->answer[]   = addslashes($answer);
-                $question->fraction[] = 1;
-                $question->feedback[] = "";
-    
-                return $question;
-
-            default:
-                $question->qtype = MULTICHOICE;
-
-                $answers = swapshuffle($answers);
-                foreach ($answers as $key => $answer) {
-                    $answer = trim($answer);
-                    if ($answer[0] == "=") {
-                        $question->fraction[$key] = 1;
-                        $answer = substr($answer, 1);
-                    } else {
-                        $question->fraction[$key] = 0;
-                    }
-                    $question->answer[$key]   = addslashes($answer);
-                    $question->feedback[$key] = "";
-                }
-    
-                $question->single = 1;   // Only one answer is allowed
-                return $question;
-        }
-    }
-
-    function importpostprocess() {
-    /// Goes through the questionids, looking for shortanswer questions
-    /// and converting random groups of 4 into matching questions.
-
-    /// Doesn't handle shortanswer questions with more than one answer
-
-        global $CFG;
-
-        print_heading(count($this->questionids)." ".get_string("questions", "quiz"));
-
-        $questionids = implode(',', $this->questionids);
-
-        if (!$shortanswers = get_records_select("question", 
-                                                "id IN ($questionids) AND qtype = ".SHORTANSWER,
-                                                "", "id,qtype")) {
-            return true;
-        }
-
-
-        $shortanswerids = array();
-        foreach ($shortanswers as $key => $shortanswer) {
-            $shortanswerids[] = $key;
-        }
-        
-        $strmatch = get_string("match", "quiz")." (".$this->category->name.")";
-
-        $shortanswerids = swapshuffle($shortanswerids);
-        $count = $shortanswercount = count($shortanswerids);
-        $i = 1;
-        $matchcount = 0;
-
-        $question->category = $this->category->id;
-        $question->qtype    = MATCH;
-        $question->questiontext = get_string("randomsamatchintro", "quiz");
-        $question->image  = "";
-
-        while ($count > 4) {
-             $matchcount++;
-             $question->name         = "$strmatch $i";
-             $question->subquestions = array();
-             $question->subanswers   = array();
-
-             $extractids = implode(',', array_splice($shortanswerids, -4));
-             $count = count($shortanswerids);
-
-             $extracts = get_records_sql("SELECT q.questiontext, a.answer
-                                            FROM {$CFG->prefix}question q,
-                                                 {$CFG->prefix}question_shortanswer sa,
-                                                 {$CFG->prefix}question_answers a
-                                           WHERE q.id in ($extractids) 
-                                             AND sa.question = q.id
-                                             AND a.id = sa.answers");
-
-             if (count($extracts) != 4) {
-                 print_object($extracts);
-                 notify("Could not find exactly four shortanswer questions with ids: $extractids");
-                 continue;
-             }
-
-             $question->stamp = make_unique_id_code();  // Set the unique code (not to be changed)
-             $question->version = 1;                    // Original version of this question
-             $question->parent  = 0;
-
-             if (!$question->id = insert_record("question", $question)) {
-                 error("Could not insert new question!");
-             }
-
-             foreach ($extracts as $shortanswer) {
-                 $question->subquestions[] = addslashes($shortanswer->questiontext);
-                 $question->subanswers[] = addslashes($shortanswer->answer);
-             }
-
-             $result = save_question_options($question);
-
-             if (!empty($result->error)) {
-                 notify("Error: $result->error");
-             }
-
-             if (!empty($result->notice)) {
-                 notify($result->notice);
-             }
-
-            // Give the question a unique version stamp determined by question_hash()
-            set_field('question', 'version', question_hash($question), 'id', $question->id);
-
-            /// Delete the old short-answer questions
-
-             execute_sql("DELETE FROM {$CFG->prefix}question WHERE id IN ($extractids)", false);
-             execute_sql("DELETE FROM {$CFG->prefix}question_shortanswer WHERE question IN ($extractids)", false);
-             execute_sql("DELETE FROM {$CFG->prefix}question_answers WHERE question IN ($extractids)", false);
-             
-        }
-
-        if ($count) {    /// Delete the remaining ones
-            foreach ($shortanswerids as $shortanswerid) {
-                delete_records("question", "id", $shortanswerid);
-                delete_records("question_shortanswer", "question", $shortanswerid);
-                delete_records("question_answers", "question", $shortanswerid);
-            }
-        }
-        $info = "$shortanswercount ".get_string("shortanswer", "quiz").
-                " => $matchcount ".get_string("match", "quiz");
-
-        print_heading($info);
-
-        $options['category'] = $this->category->id;
-        echo '<div class="boxaligncenter">';
-        print_single_button("multiple.php", $options, get_string("randomcreate", "quiz"));
-        echo "</div>";
-
-        return true;
-    }
-
-}
-
-?>