This page is a translated version of the page Extension:Quiz and the translation is 100% complete.
MediaWiki扩展手册
Quiz
发行状态: 稳定版
实现 标签 , 函数钩
描述 提供测验工具
作者 Lrbabe留言
最新版本 1.2.0 (2015-12-08)
MediaWiki 1.25+
许可协议 GNU通用公眾授權條款2.0或更新版本
下載
示例 and format documentation: v:Help:Quiz
季度下載量 28 (Ranked 111st)
前往translatewiki.net翻譯Quiz扩展
問題 开启的任务 · 报告错误

Quiz扩展是一个被维基学院采用的测验工具。 此扩展旨在:

  • 语法简单,易于使用;具有强大的可能性。
  • 对建议和改进持开放态度(便于添加新类型的问题)。

用法

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

安装

  • 下载文件,并将解压后的Quiz文件夹移动到extensions/目录中。
    开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Quiz
  • 将下列代码放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'Quiz' );
    
  •   完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。

开发

添加新问题类型

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.

另请参阅