moodle/mod/choice/report.php
moodler 353d033843 get_course_users now calls get_site_users if the course is a site.
There is something wrong with this SQL still though ... it mostly works
but I'm still getting wierd behaviour with small numbers of users.

Need some help here ...  for example just look at get_site_users()
on your test site.

It's supposed to return a list of users who are admins, creators,
teachers or students
2003-05-20 09:33:30 +00:00

111 lines
3.3 KiB
PHP

<?PHP // $Id$
require_once("../../config.php");
require_once("lib.php");
require_variable($id); // course module
if (! $cm = get_record("course_modules", "id", $id)) {
error("Course Module ID was incorrect");
}
if (! $course = get_record("course", "id", $cm->course)) {
error("Course module is misconfigured");
}
require_login($course->id);
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
if (!$choice = choice_get_choice($cm->instance)) {
error("Course module is incorrect");
}
$strchoice = get_string("modulename", "choice");
$strchoices = get_string("modulenameplural", "choice");
$strresponses = get_string("responses", "choice");
add_to_log($course->id, "choice", "report", "report.php?id=$cm->id", "$choice->id");
print_header("$course->shortname: $choice->name: $strresponses", "$course->fullname",
"<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a> ->
<a href=\"index.php?id=$course->id\">$strchoices</a> ->
<a href=\"view.php?id=$cm->id\">$choice->name</a> -> $strresponses", "");
if (! $users = get_course_users($course->id, "u.firstname ASC")) {
error("No users found (very strange)");
}
if ( $allanswers = get_records("choice_answers", "choice", $choice->id)) {
foreach ($allanswers as $aa) {
$answers[$aa->userid] = $aa;
}
} else {
$answers = array () ;
}
$timenow = time();
foreach ($choice->answer as $key => $answer) {
$useranswer[$key] = array();
}
foreach ($users as $user) {
if (!empty($answers[$user->id])) {
$answer = $answers[$user->id];
} else {
$answer->answer = 0;
}
$useranswer[(int)$answer->answer][] = $user;
}
foreach ($choice->answer as $key => $answer) {
if (!$choice->answer[$key]) {
unset($useranswer[$key]); // Throw away any data that doesn't apply
}
}
ksort($useranswer);
$tablewidth = (int) (100.0 / count($useranswer));
echo "<table cellpadding=\"5\" cellspacing=\"10\" align=\"center\">";
echo "<tr>";
foreach ($useranswer as $key => $answer) {
if ($key) {
echo "<th width=\"$tablewidth%\">";
} else {
echo "<th bgcolor=\"$theme->body\" width=\"$tablewidth%\">";
}
echo choice_get_answer($choice, $key);
echo "</th>";
}
echo "</tr><tr>";
foreach ($useranswer as $key => $answer) {
if ($key) {
echo "<td width=\"$tablewidth%\" valign=top nowrap bgcolor=\"$theme->cellcontent\">";
} else {
echo "<td width=\"$tablewidth%\" valign=top nowrap bgcolor=\"$theme->body\">";
}
echo "<table width=\"100%\">";
foreach ($answer as $user) {
echo "<tr><td width=\"10\" nowrap>";
print_user_picture($user->id, $course->id, $user->picture);
echo "</td><td width=\"100%\" nowrap>";
echo "<p>$user->firstname $user->lastname</p>";
echo "</td></tr>";
}
echo "</table>";
echo "</td>";
}
echo "</tr></table>";
print_footer($course);
?>