Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 607809b3ba
Fetching contributors…

Cannot retrieve contributors at this time

367 lines (300 sloc) 14.605 kb
<?PHP // $Id$
include("../../config.php");
include("lib.php");
// Check that all the parameters have been provided.
require_variable($id); // Course Module ID
if (! $cm = get_record("course_modules", "id", $id)) {
error("Course Module ID was incorrect");
}
if (! $course = get_record("course", "id", $cm->course)) {
error("Course is misconfigured");
}
require_login($course->id);
if (!isteacher($course->id)) {
error("Sorry, only teachers can see this.");
}
if (! $survey = get_record("survey", "id", $cm->instance)) {
error("Survey ID was incorrect");
}
$ME = qualified_me()."?id=$id";
$strreport = get_string("report", "survey");
$strsurveys = get_string("modulenameplural", "survey");
$strsummary = get_string("summary", "survey");
$strscales = get_string("scales", "survey");
$strquestion = get_string("question", "survey");
$strquestions = get_string("questions", "survey");
$strdownload = get_string("download", "survey");
$strallscales = get_string("allscales", "survey");
$strallquestions = get_string("allquestions", "survey");
$strselectedquestions = get_string("selectedquestions", "survey");
$strseemoredetail = get_string("seemoredetail", "survey");
$strnotes = get_string("notes", "survey");
if (empty($action)) {
$display = "summary";
}
if (!empty($display)) { // Display the frame containing something.
add_to_log($course->id, "survey", "view report", "report.php?id=$cm->id", "$survey->id");
echo "<HEAD><TITLE>$course->shortname: $strreport: $survey->name</TITLE>\n";
echo "<FRAMESET ROWS=70,* BORDER=1> ";
echo " <FRAME NAME=reporttop SRC=\"report.php?action=top&id=$id\"> \n";
echo " <FRAMESET COLS=150,* BORDER=1> ";
echo " <FRAME NAME=reportmenu SRC=\"report.php?action=menu&id=$id\"> \n";
echo " <FRAME NAME=reportmain SRC=\"report.php?action=$display&id=$id\"> \n";
echo " </FRAMESET>\n";
echo "</FRAMESET>\n";
exit;
}
switch ($action) {
case "top":
if ($course->category) {
$navigation = "<A TARGET=_top HREF=\"../../course/view.php?id=$course->id\">$course->shortname</A> ->
<A TARGET=_top HREF=\"index.php?id=$course->id\">$strsurveys</A> ->
<A TARGET=_top HREF=\"view.php?id=$cm->id\">$survey->name</A> -> ";
} else {
$navigation = "<A TARGET=_top HREF=\"index.php?id=$course->id\">$strsurveys</A> ->
<A TARGET=_top HREF=\"view.php?id=$cm->id\">$survey->name</A> -> ";
}
print_header("$course->shortname: $survey->name", "$course->fullname", "$navigation $strreport");
break;
case "menu":
print_header();
echo "<P><FONT SIZE=2><A TARGET=reportmain HREF=\"report.php?action=summary&id=$id\">$strsummary</A></FONT></P>";
echo "<P><FONT SIZE=2><A TARGET=reportmain HREF=\"report.php?action=scales&id=$id\">$strscales</A></FONT></P>";
echo "<P><FONT SIZE=2><A TARGET=reportmain HREF=\"report.php?action=questions&id=$id\">$strquestions</A></FONT></P>";
echo "<P><FONT SIZE=2><A TARGET=reportmain HREF=\"report.php?action=students&id=$id\">$course->student:</A></FONT></P>";
if ($users = survey_get_responses($survey->id)) {
foreach ($users as $user) {
echo "<LI><FONT SIZE=1>";
echo "<A TARGET=reportmain HREF=\"report.php?action=student&student=$user->id&id=$id\">";
echo "$user->firstname $user->lastname";
echo "</A></FONT></LI>";
}
}
echo "<P><FONT SIZE=2><A TARGET=reportmain HREF=\"report.php?action=download&id=$id\">$strdownload</A></FONT></P>";
break;
case "summary":
print_header("$survey->name: $strsummary", "$strsummary - $strallscales");
if (survey_count_responses($survey->id)) {
echo "<P ALIGN=CENTER><A HREF=\"report.php?action=scales&id=$id\">";
survey_print_graph("id=$id&type=overall.png");
echo "</A>";
} else {
echo "<P ALIGN=CENTER>".get_string("nobodyyet","survey")."</P>";
}
print_footer($course);
break;
case "scales":
print_header("$survey->name: $strscales", "$strallscales");
$questions = get_records_list("survey_questions", "id", $survey->questions);
$questionorder = explode(",", $survey->questions);
foreach ($questionorder as $key => $val) {
$question = $questions[$val];
if ($question->type < 0) { // We have some virtual scales. Just show them.
$virtualscales = true;
break;
}
}
foreach ($questionorder as $key => $val) {
$question = $questions[$val];
if ($question->multi) {
if ($virtualscales && $question->type > 0) { // Don't show non-virtual scales if virtual
continue;
}
echo "<P ALIGN=center><A TITLE=\"$strseemoredetail\" HREF=report.php?action=questions&id=$id&qid=$question->multi>";
survey_print_graph("id=$id&qid=$question->id&type=multiquestion.png");
echo "</A></P><BR>";
}
}
print_footer($course);
break;
case "questions":
if ($qid) { // just get one multi-question
$questions = get_records_list("survey_questions", "id", $qid);
$questionorder = explode(",", $qid);
if ($scale = get_records("survey_questions", "multi", "$qid")) {
$scale = array_pop($scale);
print_header("$survey->name: $strquestions", "$scale->text - $strselectedquestions");
} else {
print_header("$survey->name: $strquestions", "$strselectedquestions");
}
} else { // get all top-level questions
$questions = get_records_list("survey_questions", "id", $survey->questions);
$questionorder = explode(",", $survey->questions);
print_header("$survey->name: $strquestions", "$strallquestions");
}
foreach ($questionorder as $key => $val) {
$question = $questions[$val];
if ($question->type < 0) { // We have some virtual scales. DON'T show them.
$virtualscales = true;
break;
}
}
foreach ($questionorder as $key => $val) {
$question = $questions[$val];
if ($question->type < 0) { // We have some virtual scales. DON'T show them.
continue;
}
$question->text = get_string($question->text, "survey");
if ($question->multi) {
echo "<H3>$question->text:</H3>";
$subquestions = get_records_list("survey_questions", "id", $question->multi);
$subquestionorder = explode(",", $question->multi);
foreach ($subquestionorder as $key => $val) {
$subquestion = $subquestions[$val];
if ($subquestion->type > 0) {
echo "<P ALIGN=CENTER>";
echo "<A TITLE=\"$strseemoredetail\" HREF=\"report.php?action=question&id=$id&qid=$subquestion->id\">";
survey_print_graph("id=$id&qid=$subquestion->id&type=question.png");
echo "</A></P>";
}
}
} else if ($question->type > 0 ) {
echo "<P ALIGN=CENTER>";
echo "<A TITLE=\"$strseemoredetail\" HREF=\"report.php?action=question&id=$id&qid=$question->id\">";
survey_print_graph("id=$id&qid=$question->id&type=question.png");
echo "</A></P>";
} else {
echo "<H3>$question->text:</H3>";
if ($aaa = survey_get_user_answers($survey->id, $question->id)) {
echo "<UL>";
foreach ($aaa as $a) {
echo "<LI>$a->firstname $a->lastname: $a->answer1";
}
echo "</UL>";
}
}
}
print_footer($course);
break;
case "question":
if (!$question = get_record("survey_questions", "id", $qid)) {
error("Question doesn't exist");
}
$question->text = get_string($question->text, "survey");
$answers = explode(",", get_string($question->options, "survey"));
print_header("$survey->name: $strquestion", "$strquestion: $question->text");
$strname = get_string("name", "survey");
$strtime = get_string("time", "survey");
$stractual = get_string("actual", "survey");
$strpreferred = get_string("preferred", "survey");
echo "<TABLE ALIGN=center CELLPADDING=0 CELLSPACING=10><TR><TD>&nbsp;<TH align=left>$strname<TH align=left>$strtime<TH align=left>$stractual<TH align=left>$strpreferred</TR>";
if ($aaa = survey_get_user_answers($survey->id, $question->id)) {
foreach ($aaa as $a) {
echo "<TR>";
echo "<TD WIDTH=35>";
print_user_picture($a->userid, $course->id, $a->picture, false);
echo "</TD>";
echo "<TD><P><A HREF=\"report.php?id=$id&action=student&student=$a->userid\">$a->firstname $a->lastname</A></TD>";
echo "<TD><P>".userdate($a->time, "%d %B %Y, %I:%M %p")."</TD>";
echo "<TD BGCOLOR=\"$THEME->cellcontent\"><P>";
if ($a->answer1) {
echo "$a->answer1 - ".$answers[$a->answer1 - 1];
} else {
echo "&nbsp;";
}
echo "</TD><TD BGCOLOR=\"$THEME->cellcontent\"><P>";
if ($a->answer2) {
echo "$a->answer2 - ".$answers[$a->answer2 - 1];
} else {
echo "&nbsp;";
}
echo "</TD></TR>";
}
}
echo "</TABLE>";
print_footer($course);
break;
case "students":
print_header("$survey->name: $course->student", get_string("analysisof", "survey", "$course->student"));
if (! $results = survey_get_responses($survey->id) ) {
notify(get_string("nobodyyet","survey"));
} else {
survey_print_all_responses($cm->id, $results);
}
print_footer($course);
break;
case "student":
if (!$user = get_record("user", "id", $student)) {
error("Student doesn't exist");
}
print_header("$survey->name: $user->firstname $user->lastname",
get_string("analysisof", "survey", "$user->firstname $user->lastname"));
if (isset($notes)) {
if (survey_get_analysis($survey->id, $user->id)) {
if (! survey_update_analysis($survey->id, $user->id, $notes)) {
notify("An error occurred while saving your notes. Sorry.");
} else {
notify(get_string("savednotes", "survey"));
}
} else {
if (! survey_add_analysis($survey->id, $user->id, $notes)) {
notify("An error occurred while saving your notes. Sorry.");
} else {
notify(get_string("savednotes", "survey"));
}
}
}
print_heading("$user->firstname $user->lastname");
echo "<P ALIGN=CENTER>";
print_user_picture($user->id, $course->id, $user->picture, true);
echo "</P>";
// Print overall summary
echo "<P ALIGN=CENTER>";
survey_print_graph("id=$id&sid=$student&type=student.png");
echo "</P>";
// Print scales
$questions = get_records_list("survey_questions", "id", $survey->questions);
$questionorder = explode(",", $survey->questions);
foreach ($questionorder as $key => $val) {
$question = $questions[$val];
if ($question->type < 0) { // We have some virtual scales. Just show them.
$virtualscales = true;
break;
}
}
foreach ($questionorder as $key => $val) {
$question = $questions[$val];
if ($question->multi) {
if ($virtualscales && $question->type > 0) { // Don't show non-virtual scales if virtual
continue;
}
echo "<P ALIGN=center>";
echo "<A TITLE=\"$strseemoredetail\" HREF=report.php?action=questions&id=$id&qid=$question->multi>";
survey_print_graph("id=$id&qid=$question->id&sid=$student&type=studentmultiquestion.png");
echo "</A></P><BR>";
}
}
if ($rs = survey_get_analysis($survey->id, $user->id)) {
$notes = $rs->notes;
} else {
$notes = "";
}
echo "<HR NOSHADE SIZE=1>";
echo "<CENTER>";
echo "<FORM ACTION=report.php METHOD=post NAME=form>";
echo "<H3>$strnotes:</H3>";
echo "<BLOCKQUOTE>";
echo "<TEXTAREA NAME=notes ROWS=10 COLS=60>";
p($notes);
echo "</TEXTAREA><BR>";
echo "<INPUT TYPE=hidden NAME=action VALUE=student>";
echo "<INPUT TYPE=hidden NAME=student VALUE=$student>";
echo "<INPUT TYPE=hidden NAME=id VALUE=$cm->id>";
echo "<INPUT TYPE=submit VALUE=\"".get_string("savechanges")."\">";
echo "</BLOCKQUOTE>";
echo "</FORM>";
echo "</CENTER>";
print_footer($course);
break;
case "download":
print_header("$survey->name: $strdownload", "$strdownload");
$strdownloadinfo = get_string("downloadinfo", "survey");
$strdownloadexcel = get_string("downloadexcel", "survey");
$strdownloadtext = get_string("downloadtext", "survey");
echo "<P>$strdownloadinfo</P>";
echo "<H2 ALIGN=CENTER><A HREF=\"download.php?id=$id&type=xls\">$strdownloadexcel</A></H2>";
echo "<H2 ALIGN=CENTER><A HREF=\"download.php?id=$id&type=text\">$strdownloadtext</A></H2>";
print_footer($course);
break;
}
?>
Jump to Line
Something went wrong with that request. Please try again.