Skip to content
Browse files

MDL-32246 question export: should cope with unrecognised qtypes.

If a question is of an unrecognised type, then we just omit it from the export.
  • Loading branch information...
1 parent c54172b commit 1fdd74081ce3489ad67d9a82edda06ba13bd28d4 @timhunt timhunt committed Mar 28, 2012
Showing with 16 additions and 14 deletions.
  1. +14 −13 question/editlib.php
  2. +2 −1 question/export.php
View
27 question/editlib.php
@@ -54,15 +54,11 @@ function get_module_from_cmid($cmid) {
* @param bool $noparent if true only questions with NO parent will be selected
* @param bool $recurse include subdirectories
* @param bool $export set true if this is called by questionbank export
-* @author added by Howard Miller June 2004
*/
function get_questions_category( $category, $noparent=false, $recurse=true, $export=true ) {
global $DB;
- // questions will be added to an array
- $qresults = array();
-
- // build sql bit for $noparent
+ // Build sql bit for $noparent
$npsql = '';
if ($noparent) {
$npsql = " and parent='0' ";
@@ -75,16 +71,21 @@ function get_questions_category( $category, $noparent=false, $recurse=true, $exp
$categorylist = array($category->id);
}
- // get the list of questions for the category
+ // Get the list of questions for the category
list($usql, $params) = $DB->get_in_or_equal($categorylist);
- if ($questions = $DB->get_records_select('question', "category $usql $npsql", $params, 'qtype, name')) {
+ $questions = $DB->get_records_select('question', "category $usql $npsql", $params, 'qtype, name');
- // iterate through questions, getting stuff we need
- foreach($questions as $question) {
- $question->export_process = $export;
- question_bank::get_qtype($question->qtype)->get_question_options($question);
- $qresults[] = $question;
- }
+ // Iterate through questions, getting stuff we need
+ $qresults = array();
+ foreach($questions as $key => $question) {
+ $question->export_process = $export;
+ $qtype = question_bank::get_qtype($question->qtype, false);
+ if ($export && $qtype->name() == 'missingtype') {
+ // Unrecognised question type. Skip this question when exporting.
+ continue;
+ }
+ $qtype->get_question_options($question);
+ $qresults[] = $question;
}
return $qresults;
View
3 question/export.php
@@ -43,7 +43,8 @@
$PAGE->set_heading($COURSE->fullname);
echo $OUTPUT->header();
-$export_form = new question_export_form($thispageurl, array('contexts'=>$contexts->having_one_edit_tab_cap('export'), 'defaultcategory'=>$pagevars['cat']));
+$export_form = new question_export_form($thispageurl,
+ array('contexts' => $contexts->having_one_edit_tab_cap('export'), 'defaultcategory' => $pagevars['cat']));
if ($from_form = $export_form->get_data()) {

0 comments on commit 1fdd740

Please sign in to comment.
Something went wrong with that request. Please try again.