aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/install.xml43
-rw-r--r--edit_algebra_form.php191
-rw-r--r--lang/en/qtype_algebra.php5
-rw-r--r--question.php7
-rw-r--r--settings.php27
-rw-r--r--version.php9
6 files changed, 139 insertions, 143 deletions
diff --git a/db/install.xml b/db/install.xml
index 51b8d85..07985fd 100644
--- a/db/install.xml
+++ b/db/install.xml
@@ -1,42 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="question/type/symbollic/db" VERSION="20080516" COMMENT="XMLDB file for Moodle question/type/algebra">
<TABLES>
- <TABLE NAME="question_algebra" COMMENT="Options for algebra questions" NEXT="question_algebra_variables">
+ <TABLE NAME="question_algebra" COMMENT="Options for algebra questions" NEXT="question_algebra_variables">
<FIELDS>
- <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true"
- NEXT="questionid"/>
- <FIELD NAME="questionid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0"
- SEQUENCE="false" PREVIOUS="id" NEXT="compareby"/>
- <FIELD NAME="compareby" TYPE="char" LENGTH="20" NOTNULL="true" UNSIGNED="false" DEFAULT="evaluated"
- SEQUENCE="false" PREVIOUS="questionid" NEXT="nchecks"/>
- <FIELD NAME="nchecks" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="10"
- SEQUENCE="false" PREVIOUS="compareby" NEXT="tolerance"/>
- <FIELD NAME="tolerance" TYPE="float" NOTNULL="true" UNSIGNED="false"
- SEQUENCE="false" PREVIOUS="nchecks" NEXT="disallow"/>
- <FIELD NAME="disallow" TYPE="text" LENGTH="small" NOTNULL="true" UNSIGNED="false"
- SEQUENCE="false" PREVIOUS="tolerance" NEXT="allowedfuncs"/>
- <FIELD NAME="allowedfuncs" TYPE="text" LENGTH="small" NOTNULL="true" UNSIGNED="false"
- SEQUENCE="false" PREVIOUS="disallow" NEXT="answerprefix"/>
- <FIELD NAME="answerprefix" TYPE="text" LENGTH="small" NOTNULL="true" UNSIGNED="false"
- SEQUENCE="false" PREVIOUS="allowedfuncs"/>
+ <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true" NEXT="questionid"/>
+ <FIELD NAME="questionid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="compareby"/>
+ <FIELD NAME="compareby" TYPE="char" LENGTH="20" NOTNULL="true" DEFAULT="evaluated" SEQUENCE="false" PREVIOUS="questionid" NEXT="nchecks"/>
+ <FIELD NAME="nchecks" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="10" SEQUENCE="false" PREVIOUS="compareby" NEXT="tolerance"/>
+ <FIELD NAME="tolerance" TYPE="float" NOTNULL="true" UNSIGNED="false" SEQUENCE="false" PREVIOUS="nchecks" NEXT="disallow"/>
+ <FIELD NAME="disallow" TYPE="text" LENGTH="small" NOTNULL="true" UNSIGNED="false" SEQUENCE="false" PREVIOUS="tolerance" NEXT="allowedfuncs"/>
+ <FIELD NAME="allowedfuncs" TYPE="text" LENGTH="small" NOTNULL="true" UNSIGNED="false" SEQUENCE="false" PREVIOUS="disallow" NEXT="answerprefix"/>
+ <FIELD NAME="answerprefix" TYPE="text" LENGTH="small" NOTNULL="true" UNSIGNED="false" SEQUENCE="false" PREVIOUS="allowedfuncs"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="questionid"/>
<KEY NAME="questionid" TYPE="foreign" FIELDS="questionid" REFTABLE="question" REFFIELDS="id" PREVIOUS="primary"/>
</KEYS>
</TABLE>
- <TABLE NAME="question_algebra_variables" COMMENT="Variables for algebra questions" PREVIOUS="question_algebra">
+ <TABLE NAME="question_algebra_variables" COMMENT="Variables for algebra questions" PREVIOUS="question_algebra">
<FIELDS>
- <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true"
- NEXT="question"/>
- <FIELD NAME="question" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0"
- SEQUENCE="false" PREVIOUS="id" NEXT="name"/>
- <FIELD NAME="name" TYPE="char" LENGTH="30" NOTNULL="true" UNSIGNED="false"
- SEQUENCE="false" PREVIOUS="question" NEXT="min"/>
- <FIELD NAME="min" TYPE="char" LENGTH="30" NOTNULL="true" UNSIGNED="false" DEFAULT="-"
- SEQUENCE="false" PREVIOUS="name" NEXT="max"/>
- <FIELD NAME="max" TYPE="char" LENGTH="30" NOTNULL="true" UNSIGNED="false" DEFAULT="-"
- SEQUENCE="false" PREVIOUS="min"/>
+ <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true" NEXT="question"/>
+ <FIELD NAME="question" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="name"/>
+ <FIELD NAME="name" TYPE="char" LENGTH="30" NOTNULL="true" UNSIGNED="false" SEQUENCE="false" PREVIOUS="question" NEXT="min"/>
+ <FIELD NAME="min" TYPE="char" LENGTH="30" NOTNULL="true" DEFAULT="-" SEQUENCE="false" PREVIOUS="name" NEXT="max"/>
+ <FIELD NAME="max" TYPE="char" LENGTH="30" NOTNULL="true" DEFAULT="-" SEQUENCE="false" PREVIOUS="min"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="question"/>
diff --git a/edit_algebra_form.php b/edit_algebra_form.php
index eae12bf..033cb84 100644
--- a/edit_algebra_form.php
+++ b/edit_algebra_form.php
@@ -12,7 +12,7 @@
require_once($CFG->dirroot . '/question/type/edit_question_form.php');
require_once($CFG->dirroot . '/question/type/algebra/questiontype.php');
require_once($CFG->dirroot . '/question/type/algebra/parser.php');
-
+
// Override the default number of answers and the number to add to avoid clutter.
// Algebra questions will likely not have huge number of different answers...
define("SYMB_QUESTION_NUMANS_START", 2);
@@ -33,17 +33,17 @@ class qtype_algebra_edit_form extends question_edit_form {
* @param MoodleQuickForm $mform the form being built.
*/
protected function definition_inner($mform) {
- // Add the select control which will select the comparison type to use
- $mform->addElement('select', 'compareby', get_string('compareby','qtype_algebra'),
- array( "sage" => get_string('comparesage', 'qtype_algebra'),
- "eval" => get_string('compareeval', 'qtype_algebra'),
- "equiv" => get_string('compareequiv','qtype_algebra')
- ));
+ global $CFG;
+ // Add the select control which will select the comparison type to use
+ $mform->addElement('select', 'compareby', get_string('compareby','qtype_algebra'),
+ array( "sage" => get_string('comparesage', 'qtype_algebra'),
+ "eval" => get_string('compareeval', 'qtype_algebra'),
+ "equiv" => get_string('compareequiv','qtype_algebra')
+ ));
$mform->addHelpButton('compareby', 'compareby', 'qtype_algebra');
- $mform->setDefault('compareby','eval');
-
+ $mform->setDefault('compareby',$CFG->qtype_algebra_method);
- // Add the control to select the number of checks to perform
+ // Add the control to select the number of checks to perform
// First create an array with all the allowed values. We will then use this array
// with the array_combine function to create a single array where the keys are the
// same as the array values
@@ -51,29 +51,29 @@ class qtype_algebra_edit_form extends question_edit_form {
'10', '20', '30', '50', '70',
'100', '200', '300', '500', '700', '1000');
// Add the select element using the array_combine method discussed above
- $mform->addElement('select', 'nchecks', get_string('nchecks','qtype_algebra'),
+ $mform->addElement('select', 'nchecks', get_string('nchecks','qtype_algebra'),
array_combine($chk_array,$chk_array));
$mform->addHelpButton('nchecks', 'nchecks', 'qtype_algebra');
- // Set the default number of checks to perform
+ // Set the default number of checks to perform
$mform->setDefault('nchecks','10');
-
+
// Add the box to set the tolerance to use when performing evaluation checks
$mform->addElement('text', 'tolerance', get_string('tolerance','qtype_algebra'));
- $mform->addHelpButton('tolerance', 'tolerance', 'qtype_algebra');
+ $mform->addHelpButton('tolerance', 'tolerance', 'qtype_algebra');
$mform->setType('tolerance', PARAM_NUMBER);
$mform->setDefault('tolerance','0.001');
-
+
// Add an entry for the answer box prefix
$mform->addElement('text', 'answerprefix', get_string('answerprefix','qtype_algebra'),array('size'=>55));
- $mform->addHelpButton('answerprefix', 'answerprefix', 'qtype_algebra');
+ $mform->addHelpButton('answerprefix', 'answerprefix', 'qtype_algebra');
$mform->setType('answerprefix', PARAM_RAW);
-
+
// Add an entry for a disallowed expression
$mform->addElement('text', 'disallow', get_string('disallow','qtype_algebra'),array('size'=>55));
- $mform->addHelpButton('disallow', 'disallow', 'qtype_algebra');
+ $mform->addHelpButton('disallow', 'disallow', 'qtype_algebra');
$mform->setType('disallow', PARAM_RAW);
-
+
// Create an array which will store the function checkboxes
$func_group=array();
// Create an array to add spacers between the boxes
@@ -90,50 +90,50 @@ class qtype_algebra_edit_form extends question_edit_form {
$spacers[]=str_repeat('&nbsp;',8-strlen($func));
}
}
- // Create and add the group of function controls to the form
+ // Create and add the group of function controls to the form
$mform->addGroup($func_group,'allowedfuncs',get_string('allowedfuncs','qtype_algebra'),$spacers,true);
- $mform->addHelpButton('allowedfuncs', 'allowedfuncs', 'qtype_algebra');
+ $mform->addHelpButton('allowedfuncs', 'allowedfuncs', 'qtype_algebra');
$mform->disabledIf('allowedfuncs','allowedfuncs[all]','checked');
$mform->setDefault('allowedfuncs[all]','checked');
-
- $mform->addElement('static', 'variablesinstruct',
+
+ $mform->addElement('static', 'variablesinstruct',
get_string('variables', 'qtype_algebra'),
get_string('filloutonevariable', 'qtype_algebra'));
- $mform->closeHeaderBefore('variablesinstruct');
- // Create the array for the list of variables used in the question
- $repeated=array();
- // Create the array for the list of repeated options used by the variable subforms
+ $mform->closeHeaderBefore('variablesinstruct');
+ // Create the array for the list of variables used in the question
+ $repeated=array();
+ // Create the array for the list of repeated options used by the variable subforms
$repeatedoptions = array();
-
- // Add the form elements to enter the variables
+
+ // Add the form elements to enter the variables
$repeated[] =& $mform->createElement('header','variablehdr',get_string('variableno','qtype_algebra','{no}'));
//$repeatedoptions['variablehdr']['helpbutton'] = array('variable',get_string('variable','qtype_algebra'),
// 'qtype_algebra');
- $repeated[] =& $mform->createElement('text','variable',get_string('variablename','qtype_algebra'),array('size'=>20));
+ $repeated[] =& $mform->createElement('text','variable',get_string('variablename','qtype_algebra'),array('size'=>20));
$mform->setType('variable', PARAM_RAW);
- $repeated[] =& $mform->createElement('text','varmin',get_string('varmin','qtype_algebra'),array('size'=>20));
- $mform->setType('varmin', PARAM_RAW);
+ $repeated[] =& $mform->createElement('text','varmin',get_string('varmin','qtype_algebra'),array('size'=>20));
+ $mform->setType('varmin', PARAM_RAW);
$repeatedoptions['varmin']['default'] = '';
- $repeated[] =& $mform->createElement('text','varmax',get_string('varmax','qtype_algebra'),array('size'=>20));
- $mform->setType('varmax', PARAM_RAW);
+ $repeated[] =& $mform->createElement('text','varmax',get_string('varmax','qtype_algebra'),array('size'=>20));
+ $mform->setType('varmax', PARAM_RAW);
$repeatedoptions['varmax']['default'] = '';
- // Get the current number of variables defined, if any
- if (isset($this->question->options)) {
+ // Get the current number of variables defined, if any
+ if (isset($this->question->options)) {
$countvars = count($this->question->options->variables);
} else {
$countvars = 0;
}
- // Come up with the number of variable entries to add to the form at the start
+ // Come up with the number of variable entries to add to the form at the start
if ($this->question->formoptions->repeatelements){
$repeatsatstart = (SYMB_QUESTION_NUMVAR_START > ($countvars + SYMB_QUESTION_NUMVAR_ADD))?
- SYMB_QUESTION_NUMVAR_START : ($countvars + SYMB_QUESTION_NUMVAR_ADD);
+ SYMB_QUESTION_NUMVAR_START : ($countvars + SYMB_QUESTION_NUMVAR_ADD);
} else {
$repeatsatstart = $countvars;
}
$this->repeat_elements($repeated, $repeatsatstart, $repeatedoptions, 'novariables', 'addvariables',
- SYMB_QUESTION_NUMVAR_ADD, get_string('addmorevariableblanks', 'qtype_algebra'));
-
+ SYMB_QUESTION_NUMVAR_ADD, get_string('addmorevariableblanks', 'qtype_algebra'));
+
$mform->addElement('static', 'answersinstruct',
get_string('correctanswers', 'qtype_algebra'),
get_string('filloutoneanswer', 'qtype_algebra'));
@@ -146,55 +146,55 @@ class qtype_algebra_edit_form extends question_edit_form {
}
- protected function data_preprocessing($question) {
+ protected function data_preprocessing($question) {
$question = parent::data_preprocessing($question);
$question = $this->data_preprocessing_answers($question);
$question = $this->data_preprocessing_hints($question);
if (!empty($question->options)) {
$question->compareby = $question->options->compareby;
- $question->nchecks = $question->options->nchecks;
- $question->tolerance = $question->options->tolerance;
- $question->allowedfuncs = $question->options->allowedfuncs;
- $question->disallow = $question->options->disallow;
- $question->answerprefix = $question->options->answerprefix;
+ $question->nchecks = $question->options->nchecks;
+ $question->tolerance = $question->options->tolerance;
+ $question->allowedfuncs = $question->options->allowedfuncs;
+ $question->disallow = $question->options->disallow;
+ $question->answerprefix = $question->options->answerprefix;
}
return $question;
}
/**
* Sets the existing values into the form for the question specific data.
- *
- * This method copies the data from the existing database record into the form fields as default
- * values for the various elements.
+ *
+ * This method copies the data from the existing database record into the form fields as default
+ * values for the various elements.
*
* @param $question the question object from the database being used to fill the form
*/
function set_data($question) {
- // Check to see if there are any existing question options, if not then just call
- // the base class set data method and exit
+ // Check to see if there are any existing question options, if not then just call
+ // the base class set data method and exit
if (!isset($question->options)) {
- return parent::set_data($question);
- }
-
- // Now we do exactly the same for the variables...
- $vars = $question->options->variables;
- // If we found any variables then loop over them using a numerical key to provide an index
- // to the arrays we need to access in the form
- if (count($vars)) {
- $key = 0;
- foreach ($vars as $var) {
- // For every variable set the default values
- $default_values['variable['.$key.']'] = $var->name;
- // Only set the min and max defaults if this variable has a range
- if($var->min!='') {
- $default_values['varmin['.$key.']'] = $var->min;
- $default_values['varmax['.$key.']'] = $var->max;
- }
- $key++;
- }
- }
-
+ return parent::set_data($question);
+ }
+
+ // Now we do exactly the same for the variables...
+ $vars = $question->options->variables;
+ // If we found any variables then loop over them using a numerical key to provide an index
+ // to the arrays we need to access in the form
+ if (count($vars)) {
+ $key = 0;
+ foreach ($vars as $var) {
+ // For every variable set the default values
+ $default_values['variable['.$key.']'] = $var->name;
+ // Only set the min and max defaults if this variable has a range
+ if($var->min!='') {
+ $default_values['varmin['.$key.']'] = $var->min;
+ $default_values['varmax['.$key.']'] = $var->max;
+ }
+ $key++;
+ }
+ }
+
// Add the default values for the allowed functions controls
// First check to see if there are any allowed functions defined
if(count($question->options->allowedfuncs)>0) {
@@ -215,40 +215,40 @@ class qtype_algebra_edit_form extends question_edit_form {
else {
$default_values['allowedfuncs[all]']=1;
}
-
- // Add the default values to the question object in a form which the parent
- // set data method will be able to use to find the default values
- $question = (object)((array)$question + $default_values);
-
- // Finally call the parent set data method to handle everything else
+
+ // Add the default values to the question object in a form which the parent
+ // set data method will be able to use to find the default values
+ $question = (object)((array)$question + $default_values);
+
+ // Finally call the parent set data method to handle everything else
parent::set_data($question);
}
-
+
/**
* Validates the form data ensuring there are no obvious errors in the submitted data.
- *
- * This method performs some basic sanity checks on the form data before it gets converted
- * into a database record.
+ *
+ * This method performs some basic sanity checks on the form data before it gets converted
+ * into a database record.
*
* @param $data the data from the form which needs to be checked
- * @param $files some files - I don't know what this is for! - files defined in the form??
+ * @param $files some files - I don't know what this is for! - files defined in the form??
*/
public function validation($data, $files) {
- // Call the base class validation method and keep any errors it generates
+ // Call the base class validation method and keep any errors it generates
$errors = parent::validation($data, $files);
-
+
// Regular expression string to match a number
$renumber='/([+-]*(([0-9]+\.[0-9]*)|([0-9]+)|(\.[0-9]+))|'.
'(([0-9]+\.[0-9]*)|([0-9]+)|(\.[0-9]+))E([-+]?\d+))/A';
-
- // Perform sanity checks on the variables.
+
+ // Perform sanity checks on the variables.
$vars = $data['variable'];
// Create an array of defined variables
$varlist=array();
foreach ($vars as $key => $var) {
$trimvar = trim($var);
- $trimmin = trim($data['varmin'][$key]);
- $trimmax = trim($data['varmax'][$key]);
+ $trimmin = trim($data['varmin'][$key]);
+ $trimmax = trim($data['varmax'][$key]);
// Check that there is a valid variable name otherwise skip
if ($trimvar == '') {
continue;
@@ -294,7 +294,7 @@ class qtype_algebra_edit_form extends question_edit_form {
$errors['variable[0]'] = get_string('notenoughvars', 'qtype_algebra');
}
- // Now perform the sanity checks on the answers
+ // Now perform the sanity checks on the answers
// Create a parser which we will use to check that the answers are understandable
$p = new qtype_algebra_parser;
$answers = $data['answer'];
@@ -321,7 +321,7 @@ class qtype_algebra_edit_form extends question_edit_form {
// Do this by looking for a non-empty array to be returned from the array_diff
// between the list of all declared variables and the variables in this answer
if($d=array_diff($tmpvars,$varlist)) {
- $errors['answer['.$key.']'] = get_string('undefinedvar','qtype_algebra',"'".implode("', '",$d)."'");
+ $errors['answer['.$key.']'] = get_string('undefinedvar','qtype_algebra',"'".implode("', '",$d)."'");
}
// Do the same for functions which we did for variables
$ansfuncs=array_merge($ansfuncs,array_diff($expr->get_functions(),$ansfuncs));
@@ -349,7 +349,7 @@ class qtype_algebra_edit_form extends question_edit_form {
if ($maxgrade == false) {
$errors['fraction[0]'] = get_string('fractionsnomax', 'question');
}
-
+
// Check for variables which are defined but never used.
// Do this by looking for a non-empty array to be returned from array_diff.
if($d=array_diff($varlist,$ansvars)) {
@@ -362,17 +362,16 @@ class qtype_algebra_edit_form extends question_edit_form {
}
}
}
-
+
// Check that the tolerance is greater than or equal to zero
if($data['tolerance']<0) {
$errors['tolerance']=get_string('toleranceltzero','qtype_algebra');
}
-
+
return $errors;
}
-
+
public function qtype() {
return 'algebra';
}
}
-
diff --git a/lang/en/qtype_algebra.php b/lang/en/qtype_algebra.php
index 814aea8..dd09a97 100644
--- a/lang/en/qtype_algebra.php
+++ b/lang/en/qtype_algebra.php
@@ -29,15 +29,16 @@ $string['compareby_help'] = 'This selects the method by which the students\' res
to all the questions answers. The different possibilities are:
SAGE: uses the Open Source <a href="http://www.sagemath.org/">SAGE</a>
-mathematics software to perform a full symbolic algebraic comparison.
+mathematics software to perform a full symbolic algebraic comparison.
Evaluation: This method generates random numbers for
the question variables and then evaluates both the student response and the
question\'s answer for that set of values.
-Equivalence:
+Equivalence:
This is the simplest of all the methods. It will only perform the most basic of
comparisons between expressions.';
+$string['defaultmethod'] = 'Default comparison method';
$string['compareby'] = 'Comparison Algorithm';
$string['comparesage'] = 'SAGE';
$string['compareeval'] = 'Evaluation';
diff --git a/question.php b/question.php
index 12d27dd..a3c7dfa 100644
--- a/question.php
+++ b/question.php
@@ -217,11 +217,10 @@ class qtype_algebra_question extends question_graded_by_strategy
* @return boolean true if the response matches the answer, false otherwise
*/
function test_response_by_sage($response, $answer) {
- // TODO: Store server information in the Moodle configuration
$request=array(
- 'host' => 'localhost',
- 'port' => 7777,
- 'uri' => ''
+ 'host' => $CFG->qtype_algebra_host,
+ 'port' => $CFG->qtype_algebra_port,
+ 'uri' => $CFG->qtype_algebra_uri,
);
// Sets the name of the method to call to full_symbolic_compare
$request['method']='full_symbolic_compare';
diff --git a/settings.php b/settings.php
index a0f5423..43b4ffa 100644
--- a/settings.php
+++ b/settings.php
@@ -1,11 +1,16 @@
-<?php
-defined('MOODLE_INTERNAL') || die;
-
-if ($ADMIN->fulltree) {
- //host
- $settings->add(new admin_setting_configtext('qtype_algebra_host', get_string('host', 'qtype_algebra'), '', 'localhost', PARAM_TEXT));
- //port
- $settings->add(new admin_setting_configtext('qtype_algebra_port', get_string('port', 'qtype_algebra'), '', 7777, PARAM_INT));
- //host
- $settings->add(new admin_setting_configtext('qtype_algebra_uri', get_string('uri', 'qtype_algebra'), '', '', PARAM_TEXT));
-}
+<?php
+defined('MOODLE_INTERNAL') || die;
+
+if ($ADMIN->fulltree) {
+ // Default evaluation method.
+ $settings->add(new admin_setting_configselect('qtype_algebra_method', new lang_string('defaultmethod', 'qtype_algebra'), new lang_string('compareby', 'qtype_algebra'), 'eval',
+ array('sage' => new lang_string('comparesage', 'qtype_algebra'),
+ 'eval' => new lang_string('compareeval', 'qtype_algebra'),
+ 'equiv' => new lang_string('compareequiv', 'qtype_algebra'))));
+ // SAGE server connection host.
+ $settings->add(new admin_setting_configtext('qtype_algebra_host', get_string('host', 'qtype_algebra'), '', 'localhost', PARAM_TEXT));
+ // SAGE server connection port.
+ $settings->add(new admin_setting_configtext('qtype_algebra_port', get_string('port', 'qtype_algebra'), '', 7777, PARAM_INT));
+ // SAGE server connection uri.
+ $settings->add(new admin_setting_configtext('qtype_algebra_uri', get_string('uri', 'qtype_algebra'), '', '', PARAM_TEXT));
+}
diff --git a/version.php b/version.php
index 81af712..61844b5 100644
--- a/version.php
+++ b/version.php
@@ -1,5 +1,10 @@
<?php
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2011072800;
-$plugin->requires = 2011060313;
+$plugin->component = 'qtype_algebra';
+$plugin->version = 2012061700;
+
+$plugin->requires = 2012061700;
+
+$plugin->maturity = MATURITY_STABLE;
+