Extension:Quiz

'''Quiz is a tool for creating quizzes. This extension aims at being :'''
 * Reliable and light.
 * As simple in its syntaxe and its use as powerful in its possibilities.
 * Open to suggestions and improvements (by facilitating the addition of new types of questions).

Usage instructions
Please consult the help on the Quiz syntax.

Installation Instructions
require_once 'extensions/quiz/Quiz.php';
 * 1) Create a new directory named "quiz" in the "extensions" directory of your wiki.
 * 2) Place there the downloaded files.
 * 3) Add this line at the end of the LocalSettings.php :

Adding a new question type
Quiz was conceived to facilitate the addition of new question types. If the basic types (single and mutiples choice) are not enough for you, you have the possibility of creating and of integrating easily the type of questions which you need. For that you must have some knowledges in PHP.

If you are not able yourself to create your new type of question, contact me and I would see what I can do.

  The first thing that you must make is to choose a syntax (simplest possible) for your question type.

The restrictions are:   Choisissez un nouveau nom de code pour votre type (exemple : "nomTypeQuestion") ainsi qu'un symbole composé de quelques caractères. Chose a new code name for your type (example: "questionTypeName") as well as a symbol.   Add a "case" at the beginning of the parseParameters's "switch", as follows : case 'symbol': $this->mType = "questionTypeName"; break;   Add a parser function to Quiz.php This function must convert a question object from quiz syntax to HTML and set a state to the question,  according to syntax errors and eventually posted answers. Contact me if you need some help.
 * The syntax of the question's header does not change and this one remains between { and } . A syntax using || to separate the correction could be a good idea in order to preserve some coherence.

This function, named "questionTypeName"ParseObject must be implemented as follows : /** * Convert a basic type object from quiz syntax to HTML. * * @param  $input				A question object in quiz syntax * @param $quiz				The current quiz * @see   class Quiz * * @return $output				A question object in HTML. */ function questionTypeNameParseObject($input, $quiz) { // ajouter l'algorithme d'interprétation ici. $this->setState(""); return $output; }   Write down your syntax specifications which will be added to the help. Please read first the existing help.   Once this is all done, contact me to include officially your question type inside the extension.  

Repporting a bug
Add found bugs here.

TODO
All suggestions on the extension and its future possibilities are the welcomes : Extension_talk:Quiz.
 * 1.0 :
 * Possibility of shuffling questions (ECMAscript).
 * 2.0
 * Possibility of export to SCORM. A possibility of importation would be interesting also but seems difficult because of the complexity of SCORM.

ChangeLog
  0.5b

Thanks to Tim Starling code's reviews, several bugs have been cleaned up, the XSS holes removed and the extension is ready to be installed on the wikiversity.

</li>  0.1b
 * Improvements :
 * New question type : "categorical question"(take a look at the help).
 * Possibility to write text betweens questions.
 * Creation of a standard internationalisation file.
 * Possibilty of "unchecking" radio button on double-click.
 * Syntax :
 * For technical resons, questions must b separated by at least 2 blank lines.

First release ! </li> </ul>