aboutsummaryrefslogtreecommitdiff
path: root/backup/moodle1
diff options
context:
space:
mode:
authorJean-Michel Vedrine <vedrine@vedrine.org>2012-09-09 16:54:35 +0200
committerJean-Michel Vedrine <vedrine@vedrine.org>2012-09-09 16:54:35 +0200
commit96bee2b33467a1ce54f88c77b8a867ef1f7a9a97 (patch)
tree27fe7dd14fd3742ad3a9b0eed2b1adbcddd4c3a8 /backup/moodle1
First version of algebra question type initially written by Roger Moore for Moodle 2.3
Diffstat (limited to 'backup/moodle1')
-rw-r--r--backup/moodle1/lib.php79
1 files changed, 79 insertions, 0 deletions
diff --git a/backup/moodle1/lib.php b/backup/moodle1/lib.php
new file mode 100644
index 0000000..d9a6406
--- /dev/null
+++ b/backup/moodle1/lib.php
@@ -0,0 +1,79 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @package qtype
+ * @subpackage algebra
+ * @copyright 2011 David Mudrak <david@moodle.com>
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Multichoice question type conversion handler
+ */
+class moodle1_qtype_algebra_handler extends moodle1_qtype_handler {
+
+ /**
+ * @return array
+ */
+ public function get_question_subpaths() {
+ return array(
+ 'ANSWERS/ANSWER',
+ 'ALGEBRA',
+ 'ALGEBRA/VARLIST/VARIABLE'
+ );
+ }
+
+ /**
+ * Appends the algebra specific information to the question
+ */
+ public function process_question(array $data, array $raw) {
+ // convert and write the answers first
+ if (isset($data['answers'])) {
+ $this->write_answers($data['answers'], $this->pluginname);
+ }
+
+ // convert and write the algebra variables
+ if (isset($data['algebra'][0]['varlist']['variable'])) {
+ $variables = $data['algebra'][0]['varlist']['variable'];
+ } else {
+ $variables = array();
+ }
+ $this->xmlwriter->begin_tag('algebra_variables');
+ foreach ($variables as $variable) {
+ $this->xmlwriter->begin_tag('algebra_variable', array('id' => $this->converter->get_nextid()));
+ $this->xmlwriter->full_tag('name', $variable['name']);
+ $this->xmlwriter->full_tag('min', $variable['min']);
+ $this->xmlwriter->full_tag('max', $variable['max']);
+ $this->xmlwriter->end_tag('algebra_variable');
+ }
+ $this->xmlwriter->end_tag('algebra_variables');
+
+ // and finally the algebra options
+ $options = $data['algebra'][0];
+ $this->xmlwriter->begin_tag('algebra', array('id' => $this->converter->get_nextid()));
+ $this->xmlwriter->full_tag('compareby', $options['compareby']);
+ $this->xmlwriter->full_tag('nchecks', $options['nchecks']);
+ $this->xmlwriter->full_tag('tolerance', $options['tolerance']);
+ $this->xmlwriter->full_tag('disallow', $options['disallow']);
+ $this->xmlwriter->full_tag('allowedfuncs', $options['allowedfuncs']);
+ $this->xmlwriter->full_tag('answerprefix', $options['answerprefix']);
+ $this->xmlwriter->end_tag('algebra');
+ }
+}