Permalink
Browse files

merged: fixing warnings in stats lib - rather than doing an include_o…

…nce and noticing for every missing mod, check the file exists first from MOODLE_16_STABLE, and fixed up some weirdness in the reports
  • Loading branch information...
1 parent 8539018 commit ec3200262d954ab7f4109daf5675f7f673aed393 mjollnir_ committed Apr 11, 2007
Showing with 37 additions and 6 deletions.
  1. +10 −0 course/report/stats/graph.php
  2. +7 −0 course/report/stats/report.php
  3. +20 −6 lib/statslib.php
View
10 course/report/stats/graph.php
@@ -103,6 +103,16 @@
$times[$stat->timeend] = userdate($stat->timeend,get_string('strftimedate'),$CFG->timezone);
}
}
+ foreach (array_keys($times) as $t) {
+ foreach ($data as $roleid => $stuff) {
+ if (!array_key_exists($t, $stuff)) {
+ $data[$roleid][$t] = 0;
+ }
+ }
+ }
+ foreach ($data as $role => $stuff) {
+ ksort($data[$role]);
+ }
$nonzeroroleid = 0;
foreach (array_keys($data) as $roleid) {
if ($roleid == 0) {
View
7 course/report/stats/report.php
@@ -167,6 +167,13 @@
$rolesdata[$roleid] = 0;
}
}
+ else {
+ foreach (array_keys($roles) as $r) {
+ if (!array_key_exists($r, $rolesdata)) {
+ $rolesdata[$r] = 0;
+ }
+ }
+ }
krsort($rolesdata);
$row = array_merge(array($times[$time]),$rolesdata);
if (empty($CFG->loglifetime) || ($stat->timeend-(60*60*24)) >= (time()-60*60*24*$CFG->loglifetime)) {
View
26 lib/statslib.php
@@ -81,9 +81,11 @@ function stats_cron_daily () {
$daily_modules = array();
$mods = get_records("modules");
foreach ($mods as $mod) {
- // include_once() will only warn if a mod is missing
- // as we don't want processing to stop on such minutiae (MDL-7385)
- include_once($CFG->dirroot.'/mod/'.$mod->name.'/lib.php');
+ $file = $CFG->dirroot.'/mod/'.$mod->name.'/lib.php';
+ if (!is_readable($file)) {
+ continue;
+ }
+ require_once($file);
$fname = $mod->name.'_get_daily_stats';
if (function_exists($fname)) {
$daily_modules[$mod] = $fname;
@@ -238,7 +240,11 @@ function stats_cron_weekly () {
$weekly_modules = array();
$mods = get_records("modules");
foreach ($mods as $mod) {
- require_once($CFG->dirroot.'/mod/'.$mod->name.'/lib.php');
+ $file = $CFG->dirroot.'/mod/'.$mod->name.'/lib.php';
+ if (!is_readable($file)) {
+ continue;
+ }
+ require_once($file);
$fname = $mod->name.'_get_weekly_stats';
if (function_exists($fname)) {
$weekly_modules[$mod] = $fname;
@@ -367,7 +373,11 @@ function stats_cron_monthly () {
$monthly_modules = array();
$mods = get_records("modules");
foreach ($mods as $mod) {
- require_once($CFG->dirroot.'/mod/'.$mod->name.'/lib.php');
+ $file = $CFG->dirroot.'/mod/'.$mod->name.'/lib.php';
+ if (!is_readable($file)) {
+ continue;
+ }
+ require_once($file);
$fname = $mod->name.'_get_monthly_stats';
if (function_exists($fname)) {
$monthly_modules[$mod] = $fname;
@@ -769,7 +779,11 @@ function stats_get_action_sql_in($str) {
$function = 'stats_get_'.$str.'_actions';
$actions = $function();
foreach ($mods as $mod) {
- require_once($CFG->dirroot.'/mod/'.$mod->name.'/lib.php');
+ $file = $CFG->dirroot.'/mod/'.$mod->name.'/lib.php';
+ if (!is_readable($file)) {
+ continue;
+ }
+ require_once($file);
$function = $mod->name.'_get_'.$str.'_actions';
if (function_exists($function)) {
$actions = array_merge($actions,$function());

0 comments on commit ec32002

Please sign in to comment.