Extension:Quiz

Category:Extensions without a compatibility policyCategory:GPL licensed extensions
MediaWiki extensions manual
Quiz
Release status: stableCategory:Stable extensions
Implementation Tag Category:Tag extensions, Hook Category:Hook extensions
Description Provides a quiz tool
Author(s) Lrbabetalk
Latest version 1.2.0 (2015-12-08)
MediaWiki 1.25+Category:Extensions with manual MediaWiki version
License GNU General Public License 2.0 or later
Download Category:Extensions in Wikimedia version control
Example and format documentation: v:Help:Quiz
Quarterly downloads 18 (Ranked 77th)
Translate the Quiz extension if it is available at translatewiki.net
Issues Open tasks · Report a bug
Category:All extensions

The Quiz extension is the quiz building tool adopted on the Wikiversity. This extension aims at being:

  • Simple in its syntax and its use; powerful in its possibilities.
  • Open to suggestions and improvements (by facilitating the addition of new types of questions).

Usage

Other help pages are hosted on the Wikiversities in order to allow for working examples.

Installation

  • Download and move the extracted Quiz folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Quiz
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'Quiz' );
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Development

Adding a new question type

Quiz was conceived to facilitate the addition of new question types. If the basic types (multiple choice with single/multiple responses) are not enough for you, you have the possibility of easily creating and integrating the type of questions which you need. For that you must have some knowledge of PHP.

  1. The first thing that you must do is choose a syntax (the simplest possible) for your question type. The restrictions are:
    • The syntax of the question's header is fixed. The question has to be placed between curly brackets - i.e. { and } .
    • For consistency, it is recommended to use || to mark the beginning of the feedback section ("correction").
  2. Choose a new code name for your question type (example: "questionTypeName") as well as a symbol (currently the symbol () is used for single response multiple choice because it looks like a radio button, and the symbol [] is used for multiple response multiple choice because it looks like a checkbox).
  3. Add a "case" at the beginning of the parseParameters's "switch", as follows:
    case 'symbol':
    	$this->mType = "questionTypeName";
    	break;
    
  4. 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 (right, wrong, error, NA or unmarked), according to syntax errors and eventually posted answers. Name the function "questionTypeNameParseObject" and implement as follows :
    /**
     * Convert a basic type object from quiz syntax to HTML.
     * 
     * @param  $input				A question object in quiz syntax
     * 
     * @return $output				A question object in HTML.
     */
    function questionTypeNameParseObject($input) {
    	// your code here.
    	$this->setState(""); // Set the state if needed.
    	return $output;
    }
    
  5. Write down your syntax specifications which will be added to the help. Please read first the existing help.
  6. Once this is all done, contact me to include officially your question type inside the extension.

See also

Category:Extensions used on Wikimedia#Quiz Category:On-line learning extensions Category:Poll extensions
Category:All extensions Category:Extensions in Wikimedia version control Category:Extensions included in Miraheze Category:Extensions included in MyWikis Category:Extensions included in WikiForge Category:Extensions used on Wikimedia Category:Extensions with manual MediaWiki version Category:Extensions without a compatibility policy Category:GPL licensed extensions Category:Hook extensions Category:On-line learning extensions Category:ParserAfterTidy extensions Category:ParserFirstCallInit extensions Category:Poll extensions Category:Stable extensions Category:Tag extensions