]> git.mjollnir.org Git - moodle.git/commitdiff
fixing reports
authormjollnir_ <mjollnir_>
Sat, 23 Sep 2006 12:10:42 +0000 (12:10 +0000)
committermjollnir_ <mjollnir_>
Sat, 23 Sep 2006 12:10:42 +0000 (12:10 +0000)
course/report/stats/graph.php
course/report/stats/index.php
course/report/stats/report.php

index 90d0e9a2bc7e09dfbaf713ddf7a15bdaacc5213f..221c804077c35a9b116dc54449047e151adbe525 100644 (file)
      .((!empty($roleid)) ? ' roleid = '.$roleid.' AND ' : '')
      . ((!empty($param->stattype)) ? ' stattype = \''.$param->stattype.'\' AND ' : '')
      .' timeend >= '.$param->timeafter
-    .$param->extras
+    .' '.$param->extras
     .' ORDER BY timeend DESC';
 
-error_log($sql);
-
     $stats = get_records_sql($sql);
 
     $stats = stats_fix_zeros($stats,$param->timeafter,$param->table,(!empty($param->line2)),(!empty($param->line3)));
@@ -87,6 +85,7 @@ error_log($sql);
             $graph->y_format['line3'] = array('colour' => $c[3],'line' => 'line','legend' => $param->line3); 
         }
     } else {
+        $data = array();
         $times = array();
         $roles = array();
         foreach ($stats as $stat) {
@@ -98,7 +97,6 @@ error_log($sql);
                 $times[$stat->timeend] = userdate($stat->timeend,get_string('strftimedate'),$CFG->timezone);
             }
         }
-
         foreach (array_keys($data) as $roleid) {
             $graph->y_order[] = $roleid;
             $graph->y_format[$roleid] = array('colour' => $c[$roleid], 'line' => 'line','legend' => $roles[$roleid]);
index fe4147211fa7d0462bc0f79b63630aad4dfa0334..af74091e92df1577ed7727974ebdad41449bcb66 100644 (file)
@@ -13,6 +13,7 @@
     $time     = optional_param('time', 0, PARAM_INT);
     $mode     = optional_param('mode', STATS_MODE_GENERAL, PARAM_INT);
     $userid   = optional_param('userid', 0, PARAM_INT);
+    $roleid   = 0;
 
     if ($report > 50) {
         $roleid = substr($report,1);
index 3e2accfe950ff7505072d98ed8f5eb796f9c465a..cbcb17af727079f74e7dcc3e3f78b39687ae6150 100644 (file)
             .((!empty($roleid)) ? ' roleid = '.$roleid.' AND ' : '')
             . ((!empty($param->stattype)) ? ' stattype = \''.$param->stattype.'\' AND ' : '')
             .' timeend >= '.$param->timeafter
-            .$param->extras
+            .' '.$param->extras
             .' ORDER BY timeend DESC';
+        error_log($sql);
         $stats = get_records_sql($sql);
 
         if (empty($stats)) {
                 $table->head[] = $param->line2; 
             }
         }
-        $lasttime = null; // used for crosstab
-        $lastrecord = null;
-        $lastlink = null;
-        $headerdone = false;
-
-        foreach  ($stats as $stat) {
-            if (empty($param->crosstab)) {
+        if (empty($param->crosstab)) {
+            foreach  ($stats as $stat) {
                 $a = array(userdate($stat->timeend-(60*60*24),get_string('strftimedate'),$CFG->timezone),$stat->line1);
                 if (isset($stat->line2)) {
                     $a[] = $stat->line2;
                         .get_string('course').' ' .get_string('logs').'</a>&nbsp;';
                 }
                 $table->data[] = $a;
-            } else {
-                if ($stat->timeend == $lasttime) {
-                    $lastrecord[] = $stat->line1;
-                    if (empty($headerdone)) {
-                        $table->head[] = get_field('role','name','id',$stat->roleid);
-                    }
-                } else {
-                    if (!empty($lastrecord)) { // we won't have one if this is the first time round...
-                        $lastrecord[] = $lastlink;
-                        $table->data[] = $lastrecord;
-                        $headerdone = true;
-                    } else {
-                        $table->head[] = get_field('role','name','id',$stat->roleid);
-                    }
-                    $lastrecord = array(userdate($stat->timeend-(60*60*24),get_string('strftimedate'),$CFG->timezone),$stat->line1);
-                    if (empty($CFG->loglifetime) || ($stat->timeend-(60*60*24)) >= (time()-60*60*24*$CFG->loglifetime)) {
-                        $lastlink = '<a href="'.$CFG->wwwroot.'/course/report/log/index.php?id='
-                            .$course->id.'&chooselog=1&showusers=1&showcourses=1&user='.$userid
-                            .'&date='.usergetmidnight($stat->timeend-(60*60*24)).'">'
-                            .get_string('course').' ' .get_string('logs').'</a>&nbsp;';
-                    }
-                    $lasttime = $stat->timeend;
+            }
+        } else {
+            $data = array();
+            $roles = array();
+            $times = array();
+            foreach ($stats as $stat) {
+                $data[$stat->timeend][$stat->roleid] = $stat->line1;
+                if (!array_key_exists($stat->roleid,$roles)) {
+                    $roles[$stat->roleid] = get_field('role','name','id',$stat->roleid);
+                }
+                if (!array_key_exists($stat->timeend,$times)) {
+                    $times[$stat->timeend] = userdate($stat->timeend,get_string('strftimedate'),$CFG->timezone);
+                }
+            }
+            foreach ($data as $time => $rolesdata) {
+                krsort($rolesdata); 
+                $row = array_merge(array($times[$time]),$rolesdata);
+                if (empty($CFG->loglifetime) || ($stat->timeend-(60*60*24)) >= (time()-60*60*24*$CFG->loglifetime)) {
+                    $row[] = '<a href="'.$CFG->wwwroot.'/course/report/log/index.php?id='
+                        .$course->id.'&chooselog=1&showusers=1&showcourses=1&user='.$userid
+                        .'&date='.usergetmidnight($time-(60*60*24)).'">'
+                        .get_string('course').' ' .get_string('logs').'</a>&nbsp;';
                 }
+                $table->data[] = $row;
             }
+            krsort($roles); 
+            $table->head = array_merge($table->head,$roles);
         }
         $table->head[] = get_string('logs');
         if (!empty($lastrecord)) {