Exemple #1
0
 * @package quiz
 */
require_once "../../config.php";
require_once "locallib.php";
$id = required_param('id', PARAM_INT);
if (!($course = $DB->get_record('course', array('id' => $id)))) {
    print_error('invalidcourseid');
}
$coursecontext = get_context_instance(CONTEXT_COURSE, $id);
require_login($course->id);
add_to_log($course->id, "quiz", "view all", "index.php?id={$course->id}", "");
// Print the header
$strquizzes = get_string("modulenameplural", "quiz");
$streditquestions = '';
$editqcontexts = new question_edit_contexts($coursecontext);
if ($editqcontexts->have_one_edit_tab_cap('questions')) {
    $streditquestions = "<form target=\"_parent\" method=\"get\" action=\"{$CFG->wwwroot}/question/edit.php\">\n                   <div>\n                   <input type=\"hidden\" name=\"courseid\" value=\"{$course->id}\" />\n                   <input type=\"submit\" value=\"" . get_string("editquestions", "quiz") . "\" />\n                   </div>\n                 </form>";
}
$navlinks = array();
$navlinks[] = array('name' => $strquizzes, 'link' => '', 'type' => 'activity');
$navigation = build_navigation($navlinks);
print_header_simple($strquizzes, '', $navigation, '', '', true, $streditquestions, navmenu($course));
// Get all the appropriate data
if (!($quizzes = get_all_instances_in_course("quiz", $course))) {
    notice(get_string('thereareno', 'moodle', $strquizzes), "../../course/view.php?id={$course->id}");
    die;
}
// Configure table for displaying the list of instances.
$headings = array(get_string('name'), get_string('quizcloses', 'quiz'));
$align = array('left', 'left');
if ($course->format == 'weeks' or $course->format == 'weekscss') {
Exemple #2
0
/**
 * @param array $row tab objects
 * @param question_edit_contexts $contexts object representing contexts available from this context
 * @param string $querystring to append to urls
 * */
function questionbank_navigation_tabs(&$row, $contexts, $querystring)
{
    global $CFG, $QUESTION_EDITTABCAPS;
    $tabs = array('questions' => array("{$CFG->wwwroot}/question/edit.php?{$querystring}", get_string('questions', 'quiz'), get_string('editquestions', 'quiz')), 'categories' => array("{$CFG->wwwroot}/question/category.php?{$querystring}", get_string('categories', 'quiz'), get_string('editqcats', 'quiz')), 'import' => array("{$CFG->wwwroot}/question/import.php?{$querystring}", get_string('import', 'quiz'), get_string('importquestions', 'quiz')), 'export' => array("{$CFG->wwwroot}/question/export.php?{$querystring}", get_string('export', 'quiz'), get_string('exportquestions', 'quiz')));
    foreach ($tabs as $tabname => $tabparams) {
        if ($contexts->have_one_edit_tab_cap($tabname)) {
            $row[] = new tabobject($tabname, $tabparams[0], $tabparams[1], $tabparams[2]);
        }
    }
}
Exemple #3
0
if ($currenttab == 'reports' and isset($mode)) {
    $activated[] = 'reports';
    $row = array();
    $currenttab = '';
    $reportlist = quiz_report_list($context);
    foreach ($reportlist as $report) {
        $row[] = new tabobject($report, "{$CFG->wwwroot}/mod/quiz/report.php?q={$quiz->id}&amp;mode={$report}", get_string($report, 'quiz_' . $report));
        if ($report == $mode) {
            $currenttab = $report;
        }
    }
    $tabs[] = $row;
}
if ($currenttab == 'edit' and isset($mode)) {
    $activated[] = 'edit';
    $row = array();
    $currenttab = $mode;
    $strquiz = get_string('modulename', 'quiz');
    $streditingquiz = get_string("editinga", "moodle", $strquiz);
    if (has_capability('mod/quiz:manage', $context) && $contexts->have_one_edit_tab_cap('editq')) {
        //TODO: ensure that removing get_query_string here won't hurt
        $row[] = new tabobject('editq', "{$CFG->wwwroot}/mod/quiz/edit.php?cmid={$cm->id}", $stredit, $streditingquiz);
        $row[] = new tabobject('reorder', "{$CFG->wwwroot}/mod/quiz/edit.php?reordertool=1&amp;cmid={$cm->id}", get_string('orderandpaging', 'quiz'), $streditingquiz);
    }
    //questionbank_navigation_tabs($row, $contexts, $thispageurl->get_query_string());
    $tabs[] = $row;
}
if (!$quiz->questions) {
    $inactive += array('info', 'reports', 'preview');
}
print_tabs($tabs, $currenttab, $inactive, $activated);
/**
 * Adds question bank setting links to the given navigation node if caps are met.
 *
 * @param navigation_node $navigationnode The navigation node to add the question branch to
 * @param object $context
 * @return navigation_node Returns the question branch that was added
 */
function question_extend_settings_navigation(navigation_node $navigationnode, $context)
{
    global $PAGE;
    if ($context->contextlevel == CONTEXT_COURSE) {
        $params = array('courseid' => $context->instanceid);
    } else {
        if ($context->contextlevel == CONTEXT_MODULE) {
            $params = array('cmid' => $context->instanceid);
        } else {
            return;
        }
    }
    if (($cat = $PAGE->url->param('cat')) && preg_match('~\\d+,\\d+~', $cat)) {
        $params['cat'] = $cat;
    }
    $questionnode = $navigationnode->add(get_string('questionbank', 'question'), new moodle_url('/question/edit.php', $params), navigation_node::TYPE_CONTAINER);
    $contexts = new question_edit_contexts($context);
    if ($contexts->have_one_edit_tab_cap('questions')) {
        $questionnode->add(get_string('questions', 'quiz'), new moodle_url('/question/edit.php', $params), navigation_node::TYPE_SETTING);
    }
    if ($contexts->have_one_edit_tab_cap('categories')) {
        $questionnode->add(get_string('categories', 'quiz'), new moodle_url('/question/category.php', $params), navigation_node::TYPE_SETTING);
    }
    if ($contexts->have_one_edit_tab_cap('import')) {
        $questionnode->add(get_string('import', 'quiz'), new moodle_url('/question/import.php', $params), navigation_node::TYPE_SETTING);
    }
    if ($contexts->have_one_edit_tab_cap('export')) {
        $questionnode->add(get_string('export', 'quiz'), new moodle_url('/question/export.php', $params), navigation_node::TYPE_SETTING);
    }
    return $questionnode;
}
Exemple #5
0
    $contexts = new question_edit_contexts($context);
}
$tabs = array();
$row = array();
$inactive = array();
$activated = array();
if (has_capability('mod/quiz:view', $context)) {
    $row[] = new tabobject('info', "{$CFG->wwwroot}/mod/quiz/view.php?q={$quiz->id}", get_string('info', 'quiz'));
}
if (has_capability('mod/quiz:viewreports', $context)) {
    $row[] = new tabobject('reports', "{$CFG->wwwroot}/mod/quiz/report.php?q={$quiz->id}", get_string('results', 'quiz'));
}
if (has_capability('mod/quiz:preview', $context)) {
    $row[] = new tabobject('preview', "{$CFG->wwwroot}/mod/quiz/attempt.php?q={$quiz->id}", get_string('preview', 'quiz'));
}
if ($contexts->have_one_edit_tab_cap('editq')) {
    $row[] = new tabobject('edit', "{$CFG->wwwroot}/mod/quiz/edit.php?cmid={$cm->id}", get_string('edit'));
}
if ($currenttab == 'info' && count($row) == 1) {
    // Don't show only an info tab (e.g. to students).
} else {
    $tabs[] = $row;
}
if ($currenttab == 'reports' and isset($mode)) {
    $inactive[] = 'reports';
    $activated[] = 'reports';
    $allreports = get_list_of_plugins("mod/quiz/report");
    $reportlist = array('overview', 'regrade', 'grading', 'analysis');
    // Standard reports we want to show first
    foreach ($allreports as $report) {
        if (!in_array($report, $reportlist)) {