mirror of
https://github.com/moodle/moodle.git
synced 2025-01-22 08:11:26 +01:00
08b3606390
I've added the variable CFG->main_frame to config-dist.php, and replaced _top targets with the variable in all the php files. HTML files, like those in the documentation, have not been modified, as they are not (yet) parsed. The variable should probably get moved into the config table, and get some documentation. I've also included, but commented out, a slight change in weblib.php, which would guarantee that messages would be seen before redirecting the user (unless delay intentionally set to 0 when redirect is used).
368 lines
14 KiB
PHP
368 lines
14 KiB
PHP
<?PHP // $Id$
|
|
|
|
require_once("../../config.php");
|
|
require_once("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=\"{$CFG->main_frame}\" HREF=\"../../course/view.php?id=$course->id\">$course->shortname</A> ->
|
|
<A TARGET=\"{$CFG->main_frame}\" HREF=\"index.php?id=$course->id\">$strsurveys</A> ->
|
|
<A TARGET=\"{$CFG->main_frame}\" HREF=\"view.php?id=$cm->id\">$survey->name</A> -> ";
|
|
} else {
|
|
$navigation = "<A TARGET=\"{$CFG->main_frame}\" HREF=\"index.php?id=$course->id\">$strsurveys</A> ->
|
|
<A TARGET=\"{$CFG->main_frame}\" 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");
|
|
$strdateformat = get_string("strftimedatetime");
|
|
|
|
echo "<TABLE ALIGN=center CELLPADDING=0 CELLSPACING=10><TR><TD> <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, $strdateformat)."</TD>";
|
|
echo "<TD BGCOLOR=\"$THEME->cellcontent\"><P>";
|
|
if ($a->answer1) {
|
|
echo "$a->answer1 - ".$answers[$a->answer1 - 1];
|
|
} else {
|
|
echo " ";
|
|
}
|
|
echo "</TD><TD BGCOLOR=\"$THEME->cellcontent\"><P>";
|
|
if ($a->answer2) {
|
|
echo "$a->answer2 - ".$answers[$a->answer2 - 1];
|
|
} else {
|
|
echo " ";
|
|
}
|
|
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;
|
|
|
|
}
|
|
?>
|