/** * Helper function adding the id of all the subcategories of a category to an array. */ function quiz_backup_add_sub_categories(&$categories, &$questions, $categoryid) { global $CFG; $status = true; if ($categories[$categoryid]->childrendone) { return $status; } if ($subcategories = get_records('question_categories', 'parent', $categoryid, '', 'id, 0 AS childrendone')) { foreach ($subcategories as $subcategory) { if (!array_key_exists($subcategory->id, $categories)) { $categories[$subcategory->id] = $subcategory; } $status = $status && quiz_backup_add_sub_categories($categories, $questions, $subcategory->id); } $subcatlist = join(array_keys($subcategories), ','); $returnval = get_records_sql("\n SELECT question.id\n FROM {$CFG->prefix}question question\n WHERE question.category IN ({$subcatlist})\n "); if ($returnval) { $questions += $returnval; } } $categories[$categoryid]->childrendone = 1; return $status; }
/** * Helper function adding the id of all the subcategories of a category to an array. */ function quiz_backup_add_sub_categories(&$categories, $categoryid) { $status = true; if ($categories[$categoryid]->childrendone) { return $status; } if ($subcategories = get_records('question_categories', 'parent', $categoryid, '', 'id, 0 AS childrendone')) { foreach ($subcategories as $subcategory) { if (!array_key_exists($subcategory->id, $categories)) { $categories[$subcategory->id] = $subcategory; } $status = $status && quiz_backup_add_sub_categories($categories, $subcategory->id); } } $categories[$categoryid]->childrendone = 1; return $status; }
/** * Helper function adding the id of all the subcategories of a category to an array. */ function quiz_backup_add_sub_categories(&$categories, &$questions, $categoryid) { global $CFG, $DB; $status = true; if ($categories[$categoryid]->childrendone) { return $status; } if ($subcategories = $DB->get_records('question_categories', array('parent' => $categoryid), '', 'id, 0 AS childrendone')) { foreach ($subcategories as $subcategory) { if (!array_key_exists($subcategory->id, $categories)) { $categories[$subcategory->id] = $subcategory; } $status = $status && quiz_backup_add_sub_categories($categories, $questions, $subcategory->id); } list($usql, $params) = $DB->get_in_or_equal(array_keys($subcategories)); $returnval = $DB->get_records_sql("\n SELECT question.id\n FROM {question} question\n WHERE question.category {$usql}", $params); if ($returnval) { $questions += $returnval; } } $categories[$categoryid]->childrendone = 1; return $status; }