⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 很棒的在线教学系统
💻 PHP
字号:
<?php //$Id: index.php,v 1.11.2.3 2008/05/29 17:25:30 mudrd8mz Exp $/////////////////////////////////////////////////////////////////////////////                                                                       //// NOTICE OF COPYRIGHT                                                   ////                                                                       //// Moodle - Modular Object-Oriented Dynamic Learning Environment         ////          http://moodle.com                                            ////                                                                       //// Copyright (C) 1999 onwards  Martin Dougiamas  http://moodle.com       ////                                                                       //// This program is free software; you can redistribute it and/or modify  //// it under the terms of the GNU General Public License as published by  //// the Free Software Foundation; either version 2 of the License, or     //// (at your option) any later version.                                   ////                                                                       //// This program is distributed in the hope that it will be useful,       //// but WITHOUT ANY WARRANTY; without even the implied warranty of        //// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         //// GNU General Public License for more details:                          ////                                                                       ////          http://www.gnu.org/copyleft/gpl.html                         ////                                                                       /////////////////////////////////////////////////////////////////////////////include_once('../../../config.php');require_once($CFG->libdir . '/gradelib.php');require_once $CFG->dirroot.'/grade/lib.php';$courseid = required_param('id', PARAM_INT);                   // course idif (!$course = get_record('course', 'id', $courseid)) {    print_error('nocourseid');}require_login($course->id);$context = get_context_instance(CONTEXT_COURSE, $course->id);require_capability('gradereport/outcomes:view', $context);// Build navigation$strgrades = get_string('grades');$stroutcomes = get_string('outcomes', 'grades');$navigation = grade_build_nav(__FILE__, $stroutcomes, $course->id);/// Print headerprint_header_simple($strgrades.':'.$stroutcomes, ':'.$strgrades, $navigation, '', '', true);print_grade_plugin_selector($courseid, 'report', 'outcomes');//first make sure we have proper final gradesgrade_regrade_final_grades($courseid);// Grab all outcomes used in course$report_info = array();$outcomes = grade_outcome::fetch_all_available($courseid);// Get grade_items that use each outcomeforeach ($outcomes as $outcomeid => $outcome) {    $report_info[$outcomeid]['items'] = get_records_select('grade_items', "outcomeid = $outcomeid AND courseid = $courseid");    $report_info[$outcomeid]['outcome'] = $outcome;    // Get average grades for each item    if (is_array($report_info[$outcomeid]['items'])) {        foreach ($report_info[$outcomeid]['items'] as $itemid => $item) {            $sql = "SELECT itemid, AVG(finalgrade) AS avg, COUNT(finalgrade) AS count                      FROM {$CFG->prefix}grade_grades                     WHERE itemid = $itemid                  GROUP BY itemid";            $info = get_records_sql($sql);            if (!$info) {                unset($report_info[$outcomeid]['items'][$itemid]);                continue;            } else {                $info = reset($info);                $avg = round($info->avg, 2);                $count = $info->count;            }            $report_info[$outcomeid]['items'][$itemid]->avg = $avg;            $report_info[$outcomeid]['items'][$itemid]->count = $count;        }    }}$html = '<table class="generaltable boxaligncenter" width="90%" cellspacing="1" cellpadding="5" summary="Outcomes Report">' . "\n";$html .= '<tr><th class="header c0" scope="col">' . get_string('outcomename', 'grades') . '</th>';$html .= '<th class="header c1" scope="col">' . get_string('courseavg', 'grades') . '</th>';$html .= '<th class="header c2" scope="col">' . get_string('sitewide', 'grades') . '</th>';$html .= '<th class="header c3" scope="col">' . get_string('activities', 'grades') . '</th>';$html .= '<th class="header c4" scope="col">' . get_string('average', 'grades') . '</th>';$html .= '<th class="header c5" scope="col">' . get_string('numberofgrades', 'grades') . '</th></tr>' . "\n";$row = 0;foreach ($report_info as $outcomeid => $outcomedata) {    $rowspan = count($outcomedata['items']);    // If there are no items for this outcome, rowspan will equal 0, which is not good    if ($rowspan == 0) {        $rowspan = 1;    }    $shortname_html = '<tr class="r' . $row . '"><td class="cell c0" rowspan="' . $rowspan . '">' . $outcomedata['outcome']->shortname . "</td>\n";    $sitewide = get_string('no');    if (empty($outcomedata['outcome']->courseid)) {        $sitewide = get_string('yes');    }    $sitewide_html = '<td class="cell c2" rowspan="' . $rowspan . '">' . $sitewide . "</td>\n";    $outcomedata['outcome']->sum = 0;    $scale = new grade_scale(array('id' => $outcomedata['outcome']->scaleid), false);    $print_tr = false;    $items_html = '';    if (!empty($outcomedata['items'])) {        foreach ($outcomedata['items'] as $itemid => $item) {            if ($print_tr) {                $row++;                $items_html .= "<tr class=\"r$row\">\n";            }            $grade_item = new grade_item($item, false);            if ($item->itemtype == 'mod') {                $cm = get_coursemodule_from_instance($item->itemmodule, $item->iteminstance, $item->courseid);                $itemname = '<a href="'.$CFG->wwwroot.'/mod/'.$item->itemmodule.'/view.php?id='.$cm->id.'">'.$grade_item->get_name().'</a>';            } else {                $itemname = $grade_item->get_name();            }            $outcomedata['outcome']->sum += $item->avg;            $gradehtml = $scale->get_nearest_item($item->avg);            $items_html .= "<td class=\"cell c3\">$itemname</td>"                         . "<td class=\"cell c4\">$gradehtml ($item->avg)</td>"                         . "<td class=\"cell c5\">$item->count</td></tr>\n";            $print_tr = true;        }    } else {        $items_html .= "<td class=\"cell c3\"> - </td><td class=\"cell c4\"> - </td><td class=\"cell c5\"> 0 </td></tr>\n";    }    // Calculate outcome average    if (is_array($outcomedata['items'])) {        $count = count($outcomedata['items']);        if ($count > 0) {            $avg = $outcomedata['outcome']->sum / $count;        } else {            $avg = $outcomedata['outcome']->sum;        }        $avg_html = $scale->get_nearest_item($avg) . " (" . round($avg, 2) . ")\n";    } else {        $avg_html = ' - ';    }    $outcomeavg_html = '<td class="cell c1" rowspan="' . $rowspan . '">' . $avg_html . "</td>\n";    $html .= $shortname_html . $outcomeavg_html . $sitewide_html . $items_html;    $row++;}$html .= '</table>';print_heading($stroutcomes);echo $html;print_footer($course);?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -