Exemplo n.º 1
0
/**
 * Output an array of question categories.
 */
function question_category_options($contexts, $top = false, $currentcat = 0, $popupform = false, $nochildrenof = -1)
{
    global $CFG;
    $pcontexts = array();
    foreach ($contexts as $context) {
        $pcontexts[] = $context->id;
    }
    $contextslist = join($pcontexts, ', ');
    $categories = get_categories_for_contexts($contextslist);
    $categories = question_add_context_in_key($categories);
    if ($top) {
        $categories = question_add_tops($categories, $pcontexts);
    }
    $categories = add_indented_names($categories, $nochildrenof);
    // sort cats out into different contexts
    $categoriesarray = array();
    foreach ($pcontexts as $contextid) {
        $context = context::instance_by_id($contextid);
        $contextstring = $context->get_context_name(true, true);
        foreach ($categories as $category) {
            if ($category->contextid == $contextid) {
                $cid = $category->id;
                if ($currentcat != $cid || $currentcat == 0) {
                    $countstring = !empty($category->questioncount) ? " ({$category->questioncount})" : '';
                    $categoriesarray[$contextstring][$cid] = format_string($category->indentedname, true, array('context' => $context)) . $countstring;
                }
            }
        }
    }
    if ($popupform) {
        $popupcats = array();
        foreach ($categoriesarray as $contextstring => $optgroup) {
            $group = array();
            foreach ($optgroup as $key => $value) {
                $key = str_replace($CFG->wwwroot, '', $key);
                $group[$key] = $value;
            }
            $popupcats[] = array($contextstring => $group);
        }
        return $popupcats;
    } else {
        return $categoriesarray;
    }
}
Exemplo n.º 2
0
/**
 * Output an array of question categories.
 */
function question_category_options($contexts, $top = false, $currentcat = 0, $popupform = false, $nochildrenof = -1)
{
    global $CFG;
    $pcontexts = array();
    foreach ($contexts as $context) {
        $pcontexts[] = $context->id;
    }
    $contextslist = join($pcontexts, ', ');
    $categories = get_categories_for_contexts($contextslist);
    $categories = question_add_context_in_key($categories);
    if ($top) {
        $categories = question_add_tops($categories, $pcontexts);
    }
    $categories = add_indented_names($categories, $nochildrenof);
    //sort cats out into different contexts
    $categoriesarray = array();
    foreach ($pcontexts as $pcontext) {
        $contextstring = print_context_name(get_context_instance_by_id($pcontext), true, true);
        foreach ($categories as $category) {
            if ($category->contextid == $pcontext) {
                $cid = $category->id;
                if ($currentcat != $cid || $currentcat == 0) {
                    $countstring = !empty($category->questioncount) ? " ({$category->questioncount})" : '';
                    $categoriesarray[$contextstring][$cid] = $category->indentedname . $countstring;
                }
            }
        }
    }
    if ($popupform) {
        $popupcats = array();
        foreach ($categoriesarray as $contextstring => $optgroup) {
            $popupcats[] = '--' . $contextstring;
            $popupcats = array_merge($popupcats, $optgroup);
            $popupcats[] = '--';
        }
        return $popupcats;
    } else {
        return $categoriesarray;
    }
}
require_login($course->id);
if (has_capability('mod/qcreate:grade', $modulecontext)) {
    redirect($CFG->wwwroot . '/mod/qcreate/edit.php?cmid=' . $cm->id);
}
/// Print the page header
$strqcreates = get_string("modulenameplural", "qcreate");
$strqcreate = get_string("modulename", "qcreate");
$navlinks = array();
$navlinks[] = array('name' => $strqcreates, 'link' => "index.php?id={$course->id}", 'type' => 'activity');
$navlinks[] = array('name' => format_string($qcreate->name), 'link' => '', 'type' => 'activityinstance');
$navigation = build_navigation($navlinks);
$headerargs = array(format_string($qcreate->name), "", $navigation, "", "", true, update_module_button($cm->id, $course->id, $strqcreate), navmenu($course, $cm));
if (!($cats = get_categories_for_contexts($modulecontext->id))) {
    //if it has not been made yet then make a default cat
    question_make_default_categories(array($modulecontext));
    $cats = get_categories_for_contexts($modulecontext->id);
}
$catsinctx = array();
foreach ($cats as $catinctx) {
    $catsinctx[] = $catinctx->id;
}
$catsinctxlist = join($catsinctx, ',');
$cat = array_shift($cats);
if ($delete && question_require_capability_on($delete, 'edit')) {
    if ($confirm && confirm_sesskey()) {
        if (!delete_records_select('question', "id = {$delete} AND category IN ({$catsinctxlist})")) {
            print_error('question_not_found');
        } else {
            qcreate_update_grades($qcreate, $USER->id);
            redirect($CFG->wwwroot . '/mod/qcreate/view.php?id=' . $cm->id);
        }
Exemplo n.º 4
0
 public function get_records() {
     $this->records = get_categories_for_contexts($this->context->id, $this->sortby);
 }
Exemplo n.º 5
0
function RWSGUQCats($r_cid)
{
    global $CFG;
    global $RWSUID;
    $r_rv = RWSGSOpt("version", PARAM_ALPHANUMEXT);
    if ($r_rv === false || strlen($r_rv) == 0) {
        $r_bv = 2009093000;
    } else {
        $r_bv = intval($r_rv);
    }
    $r_ctxs = array();
    if ($r_bv >= 2010063001) {
        if (is_siteadmin($RWSUID)) {
            if (respondusws_floatcompare($CFG->version, 2013111800, 2) >= 0) {
                $r_sys = context_system::instance();
            } else {
                $r_sys = get_context_instance(CONTEXT_SYSTEM);
            }
            $r_ctxs[] = $r_sys->id;
        }
    }
    if (respondusws_floatcompare($CFG->version, 2013111800, 2) >= 0) {
        $r_ctx = context_course::instance($r_cid);
    } else {
        $r_ctx = get_context_instance(CONTEXT_COURSE, $r_cid);
    }
    $r_ctxs[] = $r_ctx->id;
    $r_qzms = RWSGUVQList($r_cid);
    if (count($r_qzms) > 0) {
        foreach ($r_qzms as $r_qzm) {
            if (respondusws_floatcompare($CFG->version, 2013111800, 2) >= 0) {
                $r_ctx = context_module::instance($r_qzm->id);
            } else {
                $r_ctx = get_context_instance(CONTEXT_MODULE, $r_qzm->id);
            }
            if ($r_ctx != false) {
                if (!in_array($r_ctx->id, $r_ctxs)) {
                    $r_ctxs[] = $r_ctx->id;
                }
            }
        }
    }
    if (count($r_ctxs) == 0) {
        return array();
    } else {
        if (count($r_ctxs) == 1) {
            $r_qcs = get_categories_for_contexts($r_ctxs[0]);
            if ($r_qcs === false || count($r_qcs) == 0) {
                return array();
            }
        } else {
            $r_ctxl = implode(", ", $r_ctxs);
            $r_qcs = get_categories_for_contexts($r_ctxl);
            if ($r_qcs === false || count($r_qcs) == 0) {
                return array();
            }
        }
    }
    return $r_qcs;
}
 private function get_categories()
 {
     $cmid = optional_param('cmid', 0, PARAM_INT);
     $categoryparam = optional_param('category', '', PARAM_TEXT);
     $courseid = optional_param('courseid', 0, PARAM_INT);
     if ($cmid) {
         list($thispageurl, $contexts, $cmid, $cm, $quiz, $pagevars) = question_edit_setup('editq', '/mod/quiz/edit.php', true);
         if ($pagevars['cat']) {
             $categoryparam = $pagevars['cat'];
         }
     }
     if ($categoryparam) {
         $catandcontext = explode(',', $categoryparam);
         $cats = question_categorylist($catandcontext[0]);
         return $cats;
     } else {
         if ($cmid) {
             list($module, $cm) = get_module_from_cmid($cmid);
             $courseid = $cm->course;
             require_login($courseid, false, $cm);
             $thiscontext = context_module::instance($cmid);
         } else {
             $module = null;
             $cm = null;
             if ($courseid) {
                 $thiscontext = context_course::instance($courseid);
             } else {
                 $thiscontext = null;
             }
         }
     }
     $cats = get_categories_for_contexts($thiscontext->id);
     return array_keys($cats);
 }
Exemplo n.º 7
0
 public static function is_available_prototype($questionoptionsrow, $context)
 {
     global $DB;
     static $activeCats = null;
     if (!($question = $DB->get_record('question', array('id' => $questionoptionsrow->questionid)))) {
         throw new coderunner_exception("Missing question id = {$questionoptionsrow->questionid} in question table");
     }
     if (!($candidatecat = $DB->get_record('question_categories', array('id' => $question->category)))) {
         throw new coderunner_exception('Missing question category');
     }
     if ($activeCats === null) {
         $allContexts = $context->get_parent_context_ids(true);
         $activeCats = get_categories_for_contexts(implode(',', $allContexts));
     }
     foreach ($activeCats as $cat) {
         if ($cat->id == $candidatecat->id) {
             return true;
         }
     }
     return false;
 }