echo "<CENTER>";
echo "<FORM ACTION=log.php METHOD=get>";
+ echo "<INPUT TYPE=hidden NAME=chooselog VALUE=\"1\">";
if (isadmin()) {
choose_from_menu ($courses, "id", $course->id, "");
} else {
}
-function print_log($course, $user=0, $date=0, $order="ORDER BY l.time ASC") {
+function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $perpage=100, $url="") {
// It is assumed that $date is the GMT time of midnight for that day,
// and so the next 86400 seconds worth of logs are printed.
global $CFG;
if ($course->category) {
- $selector = "WHERE l.course='$course->id' AND l.userid = u.id";
+ $selector = "l.course='$course->id' AND l.userid = u.id";
} else {
- $selector = "WHERE l.userid = u.id"; // Show all courses
+ $selector = "l.userid = u.id"; // Show all courses
if ($ccc = get_courses(-1)) {
foreach ($ccc as $cc) {
$courses[$cc->id] = "$cc->shortname";
$selector .= " AND l.time > '$date' AND l.time < '$enddate'";
}
- $order = $order." LIMIT ".COURSE_MAX_LOGS_PER_PAGE; // To keep it manageable
-
- if (!$logs = get_logs($selector, $order)) {
+ if (!$logs = get_logs($selector, $order, $page*$perpage, $perpage, $totalcount)) {
notify("No logs found!");
print_footer($course);
exit;
$count=0;
$tt = getdate(time());
$today = mktime (0, 0, 0, $tt["mon"], $tt["mday"], $tt["year"]);
- if (($totalcountlogs = count($logs)) == COURSE_MAX_LOGS_PER_PAGE) {
- $totalcountlogs = "$totalcountlogs (+)";
- }
$strftimedatetime = get_string("strftimedatetime");
echo "<p align=center>";
- print_string("displayingrecords", "", $totalcountlogs);
+ print_string("displayingrecords", "", $totalcount);
echo "</p>";
+ print_paging_bar($totalcount, $page, $perpage, "$url&perpage=$perpage&");
+
echo "<table border=0 align=center cellpadding=3 cellspacing=3>";
foreach ($logs as $log) {
echo "</tr>";
}
echo "</table>";
+
+ print_paging_bar($totalcount, $page, $perpage, "$url&perpage=$perpage&");
}
require_variable($id); // Course ID
optional_variable($user, 0); // User to display
optional_variable($date, 0); // Date to display
+ optional_variable($page, "0"); // which page to show
+ optional_variable($perpage, "100"); // how many per page
require_login();
$stradministration = get_string("administration");
- if ($user || $date) {
+ if (!empty($_GET['chooselog'])) {
$userinfo = get_string("allparticipants");
$dateinfo = get_string("alldays");
print_log_selector_form($course, $user, $date);
- print_log($course, $user, $date, "ORDER BY l.time DESC");
+ print_log($course, $user, $date, "l.time DESC", $page, $perpage,
+ "log.php?id=$course->id&chooselog=1&user=$user&date=$date");
} else {
if ($course->category) {
require_variable($id); // course id
require_variable($user); // user id
optional_variable($mode, "todaylogs");
+ optional_variable($page, "0");
+ optional_variable($perpage, "100");
require_login();
echo "<HR><CENTER>";
print_log_graph($course, $user->id, "userday.png");
echo "</CENTER>";
- print_log($course, $user->id, usergetmidnight(time()), "ORDER BY l.time DESC");
+ print_log($course, $user->id, usergetmidnight(time()), "l.time DESC", $page, $perpage,
+ "user.php?id=$course->id&user=$user->id&mode=$mode");
break;
case "alllogs" :
echo "<HR><CENTER>";
print_log_graph($course, $user->id, "usercourse.png");
echo "</CENTER>";
- print_log($course, $user->id, 0, "ORDER BY l.time DESC");
+ print_log($course, $user->id, 0, "l.time DESC", $page, $perpage,
+ "user.php?id=$course->id&user=$user->id&mode=$mode");
break;
case "outline" :
}
-function get_logs($select, $order) {
+function get_logs($select, $order="l.time DESC", $limitfrom="", $limitnum="", &$totalcount) {
global $CFG;
+ if ($limitfrom !== "") {
+ switch ($CFG->dbtype) {
+ case "mysql":
+ $limit = "LIMIT $limitfrom,$limitnum";
+ break;
+ case "postgres7":
+ $limit = "LIMIT $limitnum OFFSET $limitfrom";
+ break;
+ default:
+ $limit = "LIMIT $limitnum,$limitfrom";
+ }
+ } else {
+ $limit = "";
+ }
+
+ if ($order) {
+ $order = "ORDER BY $order";
+ }
+
+ $selectsql = "{$CFG->prefix}log l, {$CFG->prefix}user u WHERE $select";
+
+ $totalcount = count_records_sql("SELECT COUNT(*) FROM $selectsql");
+
return get_records_sql("SELECT l.*, u.firstname, u.lastname, u.picture
- FROM {$CFG->prefix}log l,
- {$CFG->prefix}user u
- $select $order");
+ FROM $selectsql $order $limit");
}
+
function get_logs_usercourse($userid, $courseid, $coursestart) {
global $CFG;
function print_paging_bar($totalcount, $page, $perpage, $baseurl) {
/// Prints a single paging bar to provide access to other pages (usually in a search)
- $maxdisplay = 20;
+ $maxdisplay = 18;
if ($totalcount > $perpage) {
echo "<center>";
$lastpage = ceil($totalcount / $perpage);
if ($page > 15) {
$startpage = $page - 10;
- echo " ...";
+ echo " <a href=\"{$baseurl}page=0\">1</a> ...";
} else {
$startpage = 0;
}
$currpage++;
}
if ($currpage < $lastpage) {
- echo " ...";
+ $lastpageactual = $lastpage - 1;
+ echo " ...<a href=\"{$baseurl}page=$lastpageactual\">$lastpage</a> ";
}
$pagenum = $page + 1;
if ($pagenum != $displaypage) {