Commit b07ef13b authored by Dan Poltawski's avatar Dan Poltawski
Browse files

MDL-41885 modules now declare use of question bank

* FEATURE_USES_QUESTION_BANK is now a module_supports flag which declares
  that an activity uses the question engine.

* question_module_uses_questions can be used to determine if a module
  uses the question bank.
parent f5dfefdc
......@@ -433,6 +433,9 @@ define('FEATURE_BACKUP_MOODLE2', 'backup_moodle2');
/** True if module can show description on course main page */
define('FEATURE_SHOW_DESCRIPTION', 'showdescription');
/** True if module uses the question bank */
define('FEATURE_USES_QUESTIONS', 'usesquestions');
/** Unspecified module archetype */
define('MOD_ARCHETYPE_OTHER', 0);
/** Resource-like type module */
......
......@@ -2054,3 +2054,23 @@ function question_page_type_list($pagetype, $parentcontext, $currentcontext) {
return $types;
}
}
/**
* Does an activity module use the question bank?
*
* @param string $modname The name of the module (without mod_ prefix).
* @return bool true if the module uses questions.
*/
function question_module_uses_questions($modname) {
if (plugin_supports('mod', $modname, FEATURE_USES_QUESTIONS)) {
return true;
}
$component = 'mod_'.$modname;
if (component_callback_exists($component, 'question_pluginfile')) {
debugging("{$component} uses questions but doesn't declare FEATURE_USES_QUESTIONS", DEBUG_DEVELOPER);
return true;
}
return false;
}
......@@ -1547,6 +1547,7 @@ function quiz_supports($feature) {
case FEATURE_BACKUP_MOODLE2: return true;
case FEATURE_SHOW_DESCRIPTION: return true;
case FEATURE_CONTROLS_GRADE_VISIBILITY: return true;
case FEATURE_USES_QUESTIONS: return true;
default: return null;
}
......
This files describes API changes in /mod/* - activity modules,
information provided here is intended especially for developers.
=== 2.6 ===
* Modules using the question bank MUST now declare their use of it with the xxx_supports()
flag FEATURE_USES_QUESTIONS.
=== 2.5 ===
......
......@@ -2,7 +2,11 @@ This files describes API changes for code that uses the question API.
=== 2.6 ===
1) It is sometimes necessary to display bits of question content without having
1) Modules using the question bank MUST now declare their use of it with the xxx_supports()
flag FEATURE_USES_QUESTIONS. question_module_uses_questions() should be used to determine
if a module uses questions.
2) It is sometimes necessary to display bits of question content without having
and attempt (question_usage) in progress. Two examples of this are the option
in the question bank to display the questiontext, and in the quiz statistics
report, where it displays the question text above the report.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment