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.
This commit is contained in:
Dan Poltawski
2013-09-26 09:49:34 +08:00
parent f5dfefdc87
commit b07ef13be2
5 changed files with 33 additions and 1 deletions
+3
View File
@@ -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 */
+20
View File
@@ -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;
}
+1
View File
@@ -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;
}
+4
View File
@@ -1,6 +1,10 @@
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 ===
+5 -1
View File
@@ -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.