示例#1
0
/**
 * 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;
}
示例#2
0
/**
 * 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;
}
示例#3
0
/**
 * 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;
}