コード例 #1
0
/**
 * Get the default report for the current user.
 * @param object $context the quiz context.
 */
function quiz_report_default_report($context)
{
    $reports = quiz_report_list($context);
    return reset($reports);
}
コード例 #2
0
ファイル: report.php プロジェクト: nicolasconnault/moodle2.0
        print_error('invalidcoursemodule');
    }
} else {
    if (!($quiz = $DB->get_record('quiz', array('id' => $q)))) {
        print_error('invalidquizid', 'quiz');
    }
    if (!($course = $DB->get_record('course', array('id' => $quiz->course)))) {
        print_error('invalidcourseid');
    }
    if (!($cm = get_coursemodule_from_instance("quiz", $quiz->id, $course->id))) {
        print_error('invalidcoursemodule');
    }
}
require_login($course, false, $cm);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
$reportlist = quiz_report_list($context);
if (count($reportlist) == 0) {
    print_error('erroraccessingreport', 'quiz');
}
if ($mode == '') {
    $mode = reset($reportlist);
    //first element in array
} elseif (!in_array($mode, $reportlist)) {
    print_error('erroraccessingreport', 'quiz');
}
// if no questions have been set up yet redirect to edit.php
if (!$quiz->questions and has_capability('mod/quiz:manage', $context)) {
    redirect('edit.php?cmid=' . $cm->id);
}
// Upgrade any attempts that have not yet been upgraded to the
// Moodle 1.5 model (they will not yet have the timestamp set)
コード例 #3
0
ファイル: lib.php プロジェクト: nutanrajmalanai/moodle
/**
 * This fucntion extends the global navigation for the site.
 * It is important to note that you should not rely on PAGE objects within this
 * body of code as there is no guarantee that during an AJAX request they are
 * available
 *
 * @param navigation_node $quiznode The quiz node within the global navigation
 * @param object $course The course object returned from the DB
 * @param object $module The module object returned from the DB
 * @param object $cm The course module instance returned from the DB
 */
function quiz_extend_navigation($quiznode, $course, $module, $cm) {
    global $CFG;

    $context = context_module::instance($cm->id);

    if (has_capability('mod/quiz:view', $context)) {
        $url = new moodle_url('/mod/quiz/view.php', array('id'=>$cm->id));
        $quiznode->add(get_string('info', 'quiz'), $url, navigation_node::TYPE_SETTING,
                null, null, new pix_icon('i/info', ''));
    }

    if (has_any_capability(array('mod/quiz:viewreports', 'mod/quiz:grade'), $context)) {
        require_once($CFG->dirroot . '/mod/quiz/report/reportlib.php');
        $reportlist = quiz_report_list($context);

        $url = new moodle_url('/mod/quiz/report.php',
                array('id' => $cm->id, 'mode' => reset($reportlist)));
        $reportnode = $quiznode->add(get_string('results', 'quiz'), $url,
                navigation_node::TYPE_SETTING,
                null, null, new pix_icon('i/report', ''));

        foreach ($reportlist as $report) {
            $url = new moodle_url('/mod/quiz/report.php',
                    array('id' => $cm->id, 'mode' => $report));
            $reportnode->add(get_string($report, 'quiz_'.$report), $url,
                    navigation_node::TYPE_SETTING,
                    null, 'quiz_report_' . $report, new pix_icon('i/item', ''));
        }
    }
}
コード例 #4
0
ファイル: lib.php プロジェクト: achocoza/moodle26
/**
 * This function extends the settings navigation block for the site.
 *
 * It is safe to rely on PAGE here as we will only ever be within the module
 * context when this is called
 *
 * @param settings_navigation $settings
 * @param navigation_node $quiznode
 * @return void
 */
function quiz_extend_settings_navigation($settings, $quiznode)
{
    global $PAGE, $CFG;
    // Require {@link questionlib.php}
    // Included here as we only ever want to include this file if we really need to.
    require_once $CFG->libdir . '/questionlib.php';
    // We want to add these new nodes after the Edit settings node, and before the
    // Locally assigned roles node. Of course, both of those are controlled by capabilities.
    $keys = $quiznode->get_children_key_list();
    $beforekey = null;
    $i = array_search('modedit', $keys);
    if ($i === false and array_key_exists(0, $keys)) {
        $beforekey = $keys[0];
    } else {
        if (array_key_exists($i + 1, $keys)) {
            $beforekey = $keys[$i + 1];
        }
    }
    if (has_capability('mod/quiz:manageoverrides', $PAGE->cm->context)) {
        $url = new moodle_url('/mod/quiz/overrides.php', array('cmid' => $PAGE->cm->id));
        $node = navigation_node::create(get_string('groupoverrides', 'quiz'), new moodle_url($url, array('mode' => 'group')), navigation_node::TYPE_SETTING, null, 'mod_quiz_groupoverrides');
        $quiznode->add_node($node, $beforekey);
        $node = navigation_node::create(get_string('useroverrides', 'quiz'), new moodle_url($url, array('mode' => 'user')), navigation_node::TYPE_SETTING, null, 'mod_quiz_useroverrides');
        $quiznode->add_node($node, $beforekey);
    }
    if (has_capability('mod/quiz:manage', $PAGE->cm->context)) {
        $node = navigation_node::create(get_string('editquiz', 'quiz'), new moodle_url('/mod/quiz/edit.php', array('cmid' => $PAGE->cm->id)), navigation_node::TYPE_SETTING, null, 'mod_quiz_edit', new pix_icon('t/edit', ''));
        $quiznode->add_node($node, $beforekey);
    }
    if (has_capability('mod/quiz:preview', $PAGE->cm->context)) {
        $url = new moodle_url('/mod/quiz/startattempt.php', array('cmid' => $PAGE->cm->id, 'sesskey' => sesskey()));
        $node = navigation_node::create(get_string('preview', 'quiz'), $url, navigation_node::TYPE_SETTING, null, 'mod_quiz_preview', new pix_icon('i/preview', ''));
        $quiznode->add_node($node, $beforekey);
    }
    if (has_any_capability(array('mod/quiz:viewreports', 'mod/quiz:grade'), $PAGE->cm->context)) {
        require_once $CFG->dirroot . '/mod/quiz/report/reportlib.php';
        $reportlist = quiz_report_list($PAGE->cm->context);
        $url = new moodle_url('/mod/quiz/report.php', array('id' => $PAGE->cm->id, 'mode' => reset($reportlist)));
        $reportnode = $quiznode->add_node(navigation_node::create(get_string('results', 'quiz'), $url, navigation_node::TYPE_SETTING, null, null, new pix_icon('i/report', '')), $beforekey);
        foreach ($reportlist as $report) {
            $url = new moodle_url('/mod/quiz/report.php', array('id' => $PAGE->cm->id, 'mode' => $report));
            $reportnode->add_node(navigation_node::create(get_string($report, 'quiz_' . $report), $url, navigation_node::TYPE_SETTING, null, 'quiz_report_' . $report, new pix_icon('i/item', '')));
        }
    }
    question_extend_settings_navigation($quiznode, $PAGE->cm->context)->trim_if_empty();
}
コード例 #5
0
ファイル: reportlib.php プロジェクト: esyacelga/sisadmaca
/**
 * Get the default report for the current user.
 * @param object $context the quiz context.
 */
function quiz_report_default_report($context)
{
    return reset(quiz_report_list($context));
}
コード例 #6
0
ファイル: grade.php プロジェクト: alanaipe2015/moodle
 *
 * @package   mod_quiz
 * @category  grade
 * @copyright 1999 onwards Martin Dougiamas  {@link http://moodle.com}
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
require_once dirname(__FILE__) . '/../../config.php';
require_once $CFG->dirroot . '/mod/quiz/locallib.php';
require_once $CFG->dirroot . '/mod/quiz/report/reportlib.php';
$id = required_param('id', PARAM_INT);
$userid = optional_param('userid', 0, PARAM_INT);
$cm = get_coursemodule_from_id('quiz', $id, 0, false, MUST_EXIST);
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
$quiz = $DB->get_record('quiz', array('id' => $cm->instance), '*', MUST_EXIST);
require_login($course, false, $cm);
$reportlist = quiz_report_list(context_module::instance($cm->id));
if (empty($reportlist) || $userid == $USER->id) {
    // If the user cannot see reports, or can see reports but is looking
    // at their own grades, redirect them to the view.php page.
    // (The looking at their own grades case is unlikely, since users who
    // appear in the gradebook are unlikely to be able to see quiz reports,
    // but it is possible.)
    redirect(new moodle_url('/mod/quiz/view.php', array('id' => $cm->id)));
}
// Now we know the user is interested in reports. If they are interested in a
// specific other user, try to send them to the most appropriate attempt review page.
if ($userid) {
    // Work out which attempt is most significant from a grading point of view.
    $attempts = quiz_get_user_attempts($quiz->id, $userid, 'finished');
    $attempt = null;
    switch ($quiz->grademethod) {
コード例 #7
0
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * This page is the entry page into the quiz UI. Displays information about the
 * quiz to students and teachers, and lets students see their previous attempts.
 *
 * @package    mod
 * @subpackage quiz
 * @copyright  1999 onwards Martin Dougiamas  {@link http://moodle.com}
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
require_once dirname(__FILE__) . '/../../config.php';
require_once $CFG->dirroot . '/mod/quiz/report/reportlib.php';
$id = required_param('id', PARAM_INT);
if (!($cm = get_coursemodule_from_id('quiz', $id))) {
    print_error('invalidcoursemodule');
}
if (!($quiz = $DB->get_record('quiz', array('id' => $cm->instance)))) {
    print_error('invalidquizid');
}
if (!($course = $DB->get_record('course', array('id' => $quiz->course)))) {
    print_error('coursemisconf');
}
require_login($course, false, $cm);
$reportlist = quiz_report_list(get_context_instance(CONTEXT_MODULE, $cm->id));
if (!empty($reportlist)) {
    redirect(new moodle_url('/mod/quiz/report.php', array('id' => $cm->id, 'mode' => reset($reportlist))));
} else {
    redirect(new moodle_url('/mod/quiz/view.php', array('id' => $cm->id)));
}