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
[
edit
]
Other help pages are hosted on the Wikiversities in order to allow for working examples.
Installation
[
edit
]
- 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'
);
-
Done
? Navigate to
Special:Version
on your wiki to verify that the extension is successfully installed.
Development
[
edit
]
- 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
.
-
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").
-
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).
-
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 (
right
,
wrong
,
error
,
NA
or unmarked), according to syntax errors and eventually posted answers.
Name the function "
questionTypeName
ParseObject" 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
;
}
-
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.
See also
[
edit
]
| This extension is being used on one or more
Wikimedia projects
. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's
CommonSettings.php
and
InitialiseSettings.php
configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's
Special:Version
page.
|
| This extension is included in the following wiki farms/hosts and/or packages:
This is not an authoritative list.
Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here.
Always check with your wiki farms/hosts or bundle to confirm.
|