/** * @global stdObject * @global object * @uses SURVEY_CIQ * @param object $course * @param object $user * @param object $mod * @param object $survey */ function survey_user_complete($course, $user, $mod, $survey) { global $CFG, $DB, $OUTPUT; if (survey_already_done($survey->id, $user->id)) { if ($survey->template == SURVEY_CIQ) { // print out answers for critical incidents $table = new html_table(); $table->align = array("left", "left"); $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions)); $questionorder = explode(",", $survey->questions); foreach ($questionorder as $key=>$val) { $question = $questions[$val]; $questiontext = get_string($question->shorttext, "survey"); if ($answer = survey_get_user_answer($survey->id, $question->id, $user->id)) { $answertext = "$answer->answer1"; } else { $answertext = "No answer"; } $table->data[] = array("<b>$questiontext</b>", $answertext); } echo html_writer::table($table); } else { survey_print_graph("id=$mod->id&sid=$user->id&type=student.png"); } } else { print_string("notdone", "survey"); } }
if (!$cm->visible) { notice(get_string("activityiscurrentlyhidden")); } } if (!is_enrolled($context)) { echo $OUTPUT->notification(get_string("guestsnotallowed", "survey")); } if ($surveyalreadydone) { $numusers = survey_count_responses($survey->id, $currentgroup, $groupingid); if ($showscales) { // Ensure that graph.php will allow the user to see the graph. if (has_capability('mod/survey:readresponses', $context) || !$groupmode || groups_is_member($currentgroup)) { echo $OUTPUT->box(get_string("surveycompleted", "survey")); echo $OUTPUT->box(get_string("peoplecompleted", "survey", $numusers)); echo '<div class="resultgraph">'; survey_print_graph("id={$cm->id}&sid={$USER->id}&group={$currentgroup}&type=student.png"); echo '</div>'; } else { echo $OUTPUT->box(get_string("surveycompletednograph", "survey")); echo $OUTPUT->box(get_string("peoplecompleted", "survey", $numusers)); } } else { echo $OUTPUT->box(format_module_intro('survey', $survey, $cm->id), 'generalbox', 'intro'); echo $OUTPUT->spacer(array('height' => 30, 'width' => 1), true); // Should be done with CSS instead. $questions = survey_get_questions($survey); foreach ($questions as $question) { if ($question->type == 0 or $question->type == 1) { if ($answer = survey_get_user_answer($survey->id, $question->id, $USER->id)) { $table = new html_table(); $table->head = array(get_string($question->text, "survey"));
$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 class=\"centerpara\">"; 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 />"; } } } // Print non-scale questions foreach ($questionorder as $key => $val) { $question = $questions[$val]; if ($question->type == 0 or $question->type == 1) { if ($answer = survey_get_user_answer($survey->id, $question->id, $user->id)) { $table = new html_table(); $table->head = array(get_string($question->text, "survey")); $table->align = array ("left"); $table->data[] = array(s($answer->answer1)); // no html here, just plain text
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 class=\"centerpara\">"; 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 />"; } } } // Print non-scale questions foreach ($questionorder as $key => $val) { $question = $questions[$val]; if ($question->type == 0 or $question->type == 1) { if ($answer = survey_get_user_answer($survey->id, $question->id, $user->id)) { $table = new html_table(); $table->head = array(get_string($question->text, "survey")); $table->align = array("left"); $table->data[] = array(s($answer->answer1)); // no html here, just plain text echo html_writer::table($table);
echo $OUTPUT->notification(get_string("guestsnotallowed", "survey")); } // Check the survey hasn't already been filled out. if (survey_already_done($survey->id, $USER->id)) { add_to_log($course->id, "survey", "view graph", "view.php?id=$cm->id", $survey->id, $cm->id); $numusers = survey_count_responses($survey->id, $currentgroup, $groupingid); if ($showscales) { echo $OUTPUT->heading(get_string("surveycompleted", "survey")); echo $OUTPUT->heading(get_string("peoplecompleted", "survey", $numusers)); echo '<div class="resultgraph">'; survey_print_graph("id=$cm->id&sid=$USER->id&group=$currentgroup&type=student.png"); echo '</div>'; } else { echo $OUTPUT->box(format_module_intro('survey', $survey, $cm->id), 'generalbox', 'intro'); echo $OUTPUT->spacer(array('height'=>30, 'width'=>1), true); // should be done with CSS instead $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions)); $questionorder = explode(",", $survey->questions); foreach ($questionorder as $key => $val) { $question = $questions[$val]; if ($question->type == 0 or $question->type == 1) { if ($answer = survey_get_user_answer($survey->id, $question->id, $USER->id)) { $table = new html_table(); $table->head = array(get_string($question->text, "survey"));