From f24cffb995773a5e0aedaa38c61a4e22c917d5b4 Mon Sep 17 00:00:00 2001 From: moodler Date: Thu, 15 Jan 2004 07:17:12 +0000 Subject: [PATCH] Logs can now be divided up by activity! --- course/lib.php | 65 ++++++++++++++++++++++++++++++++++++++++++-------- course/log.php | 37 +++++++++++++++++++--------- 2 files changed, 81 insertions(+), 21 deletions(-) diff --git a/course/lib.php b/course/lib.php index 39c6920f46..7595de7842 100644 --- a/course/lib.php +++ b/course/lib.php @@ -21,7 +21,8 @@ define("FRONTPAGECOURSELIST", 1); define("FRONTPAGECATEGORYNAMES", 2); -function print_log_selector_form($course, $selecteduser=0, $selecteddate="today") { +function print_log_selector_form($course, $selecteduser=0, $selecteddate="today", + $mod="", $modpage="", $modid=0) { global $USER, $CFG; @@ -58,6 +59,38 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate="today" asort($courses); } + $activities = array(); + $selectedactivity = ""; + + if ($modinfo = unserialize($course->modinfo)) { + $section = 0; + if ($course->format == 'weeks') { // Bodgy + $strsection = get_string("week"); + } else { + $strsection = get_string("topic"); + } + foreach ($modinfo as $mod) { + if ($mod->mod == "label") { + continue; + } + if ($mod->section > 0 and $section <> $mod->section) { + $activities["section/$mod->section"] = "-------------- $strsection $mod->section --------------"; + } + $section = $mod->section; + $mod->name = urldecode($mod->name); + if (strlen($mod->name) > 55) { + $mod->name = substr($mod->name, 0, 50)."..."; + } + if (!$mod->visible) { + $mod->name = "(".$mod->name.")"; + } + $activities["$mod->mod/view.php?id=$mod->cm"] = $mod->name; + + if ($mod->cm == $modid) { + $selectedactivity = "$mod->mod/view.php?id=$mod->cm"; + } + } + } $strftimedate = get_string("strftimedate"); $strftimedaydate = get_string("strftimedaydate"); @@ -92,19 +125,20 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate="today" $selecteddate = $today; } - echo "
"; - echo "
"; - echo ""; + echo '
'; + echo ''; + echo ''; if (isadmin()) { choose_from_menu ($courses, "id", $course->id, ""); } else { - echo "id\">"; + echo "id\">"; } choose_from_menu ($users, "user", $selecteduser, get_string("allparticipants") ); choose_from_menu ($dates, "date", $selecteddate, get_string("alldays")); - echo ""; - echo ""; - echo "
"; + choose_from_menu ($activities, "url", $selectedactivity, get_string("allactivities"), "", ""); + echo ""; + echo ""; + echo "
"; } function make_log_url($module, $url) { @@ -124,11 +158,13 @@ function make_log_url($module, $url) { } -function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $perpage=100, $url="") { +function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $perpage=100, + $url="", $mod="", $modpage="", $modid=0) { + // 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; + global $CFG, $db; if ($course->category) { $selector = "l.course='$course->id' AND l.userid = u.id"; @@ -142,6 +178,14 @@ function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $per } } + if ($mod) { + $selector .= " AND l.module = '$mod'"; + } + + if ($modpage and $modid) { + $selector .= " AND l.url = '$modpage.php?id=$modid'"; + } + if ($user) { $selector .= " AND l.userid = '$user'"; } @@ -151,6 +195,7 @@ function print_log($course, $user=0, $date=0, $order="l.time ASC", $page=0, $per $selector .= " AND l.time > '$date' AND l.time < '$enddate'"; } + $totalcount = 0; // Initialise if (!$logs = get_logs($selector, $order, $page*$perpage, $perpage, $totalcount)) { diff --git a/course/log.php b/course/log.php index a7a1da0150..3575f5c348 100644 --- a/course/log.php +++ b/course/log.php @@ -7,6 +7,7 @@ require_variable($id); // Course ID optional_variable($user, 0); // User to display optional_variable($date, 0); // Date to display + optional_variable($url, ""); // eg resource/view.php?id=66 optional_variable($page, "0"); // which page to show optional_variable($perpage, "100"); // how many per page @@ -44,42 +45,56 @@ $dateinfo = userdate($date, get_string("strftimedaydate")); } + if ($url) { // parse into parts: resource/view.php?id=66 + $urlraw = urldecode($url); + $urlparts = split("/", $urlraw); + if ($urlparts[0] != "section" and $urlparts[0] != "") { + $modname = $urlparts[0]; + $modparts = split('.php\?id=', $urlparts[1]); + if (count($modparts) == 2) { + $modpage = $modparts[0]; + $modid = $modparts[1]; + } + } + } + if ($course->category) { print_header("$course->shortname: $strlogs", "$course->fullname", - "id\">$course->shortname -> - id\">$strlogs -> $userinfo, $dateinfo", ""); + "id\">$course->shortname -> + id\">$strlogs -> $userinfo, $dateinfo", ""); } else { print_header("$course->shortname: $strlogs", "$course->fullname", - "admin/index.php\">$stradministration -> - id\">$strlogs -> $userinfo, $dateinfo", ""); + "admin/index.php\">$stradministration -> + id\">$strlogs -> $userinfo, $dateinfo", ""); } print_heading("$course->fullname: $userinfo, $dateinfo (".usertimezone().")"); - print_log_selector_form($course, $user, $date); + print_log_selector_form($course, $user, $date, $modname, $modpage, $modid); print_log($course, $user, $date, "l.time DESC", $page, $perpage, - "log.php?id=$course->id&chooselog=1&user=$user&date=$date"); + "log.php?id=$course->id&chooselog=1&user=$user&date=$date&url=$url", + $modname, $modpage, $modid); } else { if ($course->category) { print_header("$course->shortname: $strlogs", "$course->fullname", - "id\">$course->shortname -> $strlogs", ""); + "id\">$course->shortname -> $strlogs", ""); } else { print_header("$course->shortname: $strlogs", "$course->fullname", - "admin/index.php\">$stradministration -> $strlogs", ""); + "admin/index.php\">$stradministration -> $strlogs", ""); } print_heading(get_string("chooselogs").":"); print_log_selector_form($course); - echo "
"; + echo "
"; print_heading(get_string("chooselivelogs").":"); - echo "

"; + echo "

"; link_to_popup_window("/course/loglive.php?id=$course->id","livelog", get_string("livelogs"), 500, 800); - echo "

"; + echo "

"; } print_footer($course); -- 2.39.5