mirrored from git://git.moodle.org/moodle.git
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Old admin reports is now a pluggable report type
- Loading branch information
ikawhero
committed
Mar 10, 2006
1 parent
27b5a24
commit d33a06d
Showing
3 changed files
with
183 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
<?php | ||
|
||
require_once('../../../config.php'); | ||
require_once($CFG->dirroot.'/lib/statslib.php'); | ||
|
||
$report = optional_param('report', STATS_REPORT_ACTIVE_COURSES, PARAM_INT); | ||
$time = optional_param('time', 0, PARAM_INT); | ||
$numcourses = optional_param('numcourses', 20, PARAM_INT); | ||
|
||
if (empty($CFG->enablestats)) { | ||
error("Stats is not enabled."); | ||
} | ||
|
||
require_login(); | ||
|
||
if (!isadmin()) { | ||
error("This page is for admins only"); | ||
} | ||
|
||
$course = get_site(); | ||
stats_check_uptodate($course->id); | ||
|
||
$strreports = get_string('reports'); | ||
$strcourseoverview = get_string('courseoverview'); | ||
|
||
$strnav = '<a href="'.$CFG->wwwroot.'/admin/index.php">'.get_string('administration').'</a> -> <a href="'.$CFG->wwwroot.'/admin/report.php">'.$strreports.'</a> -> '.$strcourseoverview; | ||
|
||
$reportoptions = stats_get_report_options($course->id,STATS_MODE_RANKED); | ||
|
||
$tableprefix = $CFG->prefix.'stats_'; | ||
|
||
$earliestday = get_field_sql('SELECT timeend FROM '.$tableprefix.'daily ORDER BY timeend LIMIT 1'); | ||
$earliestweek = get_field_sql('SELECT timeend FROM '.$tableprefix.'weekly ORDER BY timeend LIMIT 1'); | ||
$earliestmonth = get_field_sql('SELECT timeend FROM '.$tableprefix.'monthly ORDER BY timeend LIMIT 1'); | ||
|
||
if (empty($earliestday)) $earliestday = time(); | ||
if (empty($earliestweek)) $earliestweek = time(); | ||
if (empty($earliestmonth)) $earliestmonth = time(); | ||
|
||
$now = stats_get_base_daily(); | ||
$lastweekend = stats_get_base_weekly(); | ||
$lastmonthend = stats_get_base_monthly(); | ||
|
||
$timeoptions = stats_get_time_options($now,$lastweekend,$lastmonthend,$earliestday,$earliestweek,$earliestmonth); | ||
|
||
if (empty($timeoptions)) { | ||
error(get_string('nostatstodisplay'), $CFG->wwwroot.'/course/view.php?id='.$course->id); | ||
} | ||
|
||
print_header($strcourseoverview, $strcourseoverview, $strnav,'','',true,' '); | ||
|
||
echo '<form action="index.php" method="post">'."\n"; | ||
|
||
$table->width = '*'; | ||
|
||
$table->align = array('left','left','left','left','left','left'); | ||
$table->data[] = array(get_string('statsreporttype'),choose_from_menu($reportoptions,'report',$report,'','','',true), | ||
get_string('statstimeperiod'),choose_from_menu($timeoptions,'time',$time,'','','',true), | ||
'<input type="text" name="numcourses" size="3" maxlength="2" value="'.$numcourses.'" />', | ||
'<input type="submit" value="'.get_string('view').'" />') ; | ||
|
||
print_table($table); | ||
echo '</form>'; | ||
|
||
if (!empty($report) && !empty($time)) { | ||
$param = stats_get_parameters($time,$report,SITEID,STATS_MODE_RANKED); | ||
|
||
$sql = "SELECT courseid,".$param->fields." FROM ".$CFG->prefix.'stats_'.$param->table | ||
." WHERE timeend >= ".$param->timeafter | ||
." GROUP BY courseid " | ||
.$param->extras | ||
." ORDER BY ".$param->orderby | ||
." LIMIT ".$numcourses; | ||
|
||
$courses = get_records_sql($sql); | ||
|
||
if (empty($courses)) { | ||
error(get_string('statsnodata'),$CFG->wwwroot.'/admin/report/courseoverview/index.php'); | ||
} | ||
|
||
echo '<center><img src="'.$CFG->wwwroot.'/admin/report/courseoverview/reportsgraph.php?time='.$time.'&report='.$report.'&numcourses='.$numcourses.'" /></center>'; | ||
|
||
$table = new object(); | ||
$table->align = array('left','center','center','center'); | ||
$table->head = array(get_string('course'),$param->line1); | ||
if (!empty($param->line2)) { | ||
$table->head[] = $param->line2; | ||
} | ||
if (!empty($param->line3)) { | ||
$table->head[] = $param->line3; | ||
} | ||
|
||
foreach ($courses as $c) { | ||
$a = array(); | ||
$a[] = '<a href="'.$CFG->wwwroot.'/course/view.php?id='.$c->courseid.'">'.get_field('course','shortname','id',$c->courseid).'</a>'; | ||
$a[] = print_numeric_value($c->line1); | ||
if (isset($c->line2)) { | ||
$a[] = print_numeric_value($c->line2); | ||
} | ||
if (isset($c->line3)) { | ||
$a[] = print_numeric_value($c->line3); | ||
} | ||
$table->data[] = $a; | ||
} | ||
print_table($table); | ||
} | ||
|
||
print_footer(); | ||
|
||
function print_numeric_value($value) { | ||
list($whole, $decimals) = split ('[.,]', $value, 2); | ||
if (intval($decimals) > 0) | ||
return number_format($value,2,".",","); | ||
else | ||
return $value; | ||
} | ||
|
||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
if (!defined('MOODLE_INTERNAL')) { | ||
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page | ||
} | ||
|
||
if (!empty($CFG->enablestats)) { | ||
echo '<a href="'.$CFG->wwwroot.'/admin/report/courseoverview/index.php">'.get_string('courseoverview').'</a>'; | ||
} | ||
?> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
<?php // $Id$ | ||
|
||
require_once('../../../config.php'); | ||
require_once($CFG->dirroot.'/lib/statslib.php'); | ||
require_once($CFG->dirroot.'/lib/graphlib.php'); | ||
|
||
$report = required_param('report', PARAM_INT); | ||
$time = required_param('time', PARAM_INT); | ||
$numcourses = required_param('numcourses', PARAM_INT); | ||
|
||
require_login(); | ||
|
||
if (!isadmin()) { | ||
error("You must be an admin to use this page"); | ||
} | ||
|
||
stats_check_uptodate($course->id); | ||
|
||
$param = stats_get_parameters($time,$report,SITEID,STATS_MODE_RANKED); | ||
|
||
$sql = "SELECT courseid,".$param->fields." FROM ".$CFG->prefix.'stats_'.$param->table | ||
." WHERE timeend >= ".$param->timeafter | ||
." GROUP BY courseid " | ||
.$param->extras | ||
." ORDER BY ".$param->orderby | ||
." LIMIT ".$numcourses; | ||
|
||
$courses = get_records_sql($sql); | ||
|
||
if (empty($courses)) { | ||
error(get_string('statsnodata'),$CFG->wwwroot.'/admin/report/course/index.php'); | ||
} | ||
|
||
|
||
$graph = new graph(750,400); | ||
|
||
$graph->parameter['legend'] = 'outside-right'; | ||
$graph->parameter['legend_size'] = 10; | ||
$graph->parameter['x_axis_angle'] = 90; | ||
$graph->parameter['title'] = false; // moodle will do a nicer job. | ||
if ($report != STATS_REPORT_ACTIVE_COURSES) { | ||
$graph->parameter['y_decimal_left'] = 2; | ||
} | ||
|
||
foreach ($courses as $c) { | ||
$graph->x_data[] = get_field('course','shortname','id',$c->courseid); | ||
$graph->y_data['bar1'][] = $c->{$param->graphline}; | ||
} | ||
$graph->y_order = array('bar1'); | ||
$graph->y_format['bar1'] = array('colour' => 'blue','bar' => 'fill','legend' => $param->{$param->graphline}); | ||
|
||
$graph->draw_stack(); | ||
|
||
?> |