$SESSION->instance = $instance; $usergraph = get_config('questionnaire', 'usergraph'); if (!($questionnaire = $DB->get_record("questionnaire", array("id" => $instance)))) { print_error('incorrectquestionnaire', 'questionnaire'); } if (!($course = $DB->get_record("course", array("id" => $questionnaire->course)))) { print_error('coursemisconf'); } if (!($cm = get_coursemodule_from_instance("questionnaire", $questionnaire->id, $course->id))) { print_error('invalidcoursemodule'); } require_course_login($course, true, $cm); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); // Add renderer and page objects to the questionnaire object for display use. $questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire')); $questionnaire->add_page(new \mod_questionnaire\output\reportpage()); // If you can't view the questionnaire, or can't view a specified response, error out. $context = context_module::instance($cm->id); if (!has_capability('mod/questionnaire:readallresponseanytime', $context) && !($questionnaire->capabilities->view && $questionnaire->can_view_response($rid))) { // Should never happen, unless called directly by a snoop... print_error('nopermissions', 'moodle', $CFG->wwwroot . '/mod/questionnaire/view.php?id=' . $cm->id); } $questionnaire->canviewallgroups = has_capability('moodle/site:accessallgroups', $context); $sid = $questionnaire->survey->id; $url = new moodle_url($CFG->wwwroot . '/mod/questionnaire/report.php'); if ($instance) { $url->param('instance', $instance); } $url->param('action', $action); if ($type) { $url->param('type', $type);
$context = context_module::instance($questionnaire->cm->id); $questiontype = \mod_questionnaire\question\base::qtypename($qformdata->type_id); $params = array('context' => $context, 'courseid' => $questionnaire->course->id, 'other' => array('questiontype' => $questiontype)); $event = \mod_questionnaire\event\question_created::create($params); $event->trigger(); } $questionsform->set_data($question); } } // Reload the form data if called for... if ($reload) { unset($questionsform); $questionnaire = new questionnaire($questionnaire->id, null, $course, $cm); // Add renderer and page objects to the questionnaire object for display use. $questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire')); $questionnaire->add_page(new \mod_questionnaire\output\questionspage()); if ($action == 'main') { $questionsform = new mod_questionnaire_questions_form('questions.php', $moveq); $sdata = clone $questionnaire->survey; $sdata->sid = $questionnaire->survey->id; $sdata->id = $cm->id; if (!empty($questionnaire->questions)) { $pos = 1; foreach ($questionnaire->questions as $qidx => $question) { $sdata->{'pos_' . $qidx} = $pos; $pos++; } } $questionsform->set_data($sdata); } else { if ($action == 'question') {
if (!($questionnaire = $DB->get_record("questionnaire", array("id" => $cm->instance)))) { print_error('invalidcoursemodule'); } // Needed here for forced language courses. require_course_login($course, true, $cm); $context = context_module::instance($cm->id); $url = new moodle_url($CFG->wwwroot . '/mod/questionnaire/qsettings.php', array('id' => $id)); $PAGE->set_url($url); $PAGE->set_context($context); if (!isset($SESSION->questionnaire)) { $SESSION->questionnaire = new stdClass(); } $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); // Add renderer and page objects to the questionnaire object for display use. $questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire')); $questionnaire->add_page(new \mod_questionnaire\output\qsettingspage()); $SESSION->questionnaire->current_tab = 'settings'; if (!$questionnaire->capabilities->manage) { print_error('nopermissions', 'error', 'mod:questionnaire:manage'); } $settingsform = new mod_questionnaire_settings_form('qsettings.php'); $sdata = clone $questionnaire->survey; $sdata->sid = $questionnaire->survey->id; $sdata->id = $cm->id; $draftideditor = file_get_submitted_draft_itemid('info'); $currentinfo = file_prepare_draft_area($draftideditor, $context->id, 'mod_questionnaire', 'info', $sdata->sid, array('subdirs' => true), $questionnaire->survey->info); $sdata->info = array('text' => $currentinfo, 'format' => FORMAT_HTML, 'itemid' => $draftideditor); $draftideditor = file_get_submitted_draft_itemid('thankbody'); $currentinfo = file_prepare_draft_area($draftideditor, $context->id, 'mod_questionnaire', 'thankbody', $sdata->sid, array('subdirs' => true), $questionnaire->survey->thank_body); $sdata->thank_body = array('text' => $currentinfo, 'format' => FORMAT_HTML, 'itemid' => $draftideditor); $draftideditor = file_get_submitted_draft_itemid('feedbacknotes');
$referer = $CFG->wwwroot . '/mod/questionnaire/report.php'; if (!($questionnaire = $DB->get_record("questionnaire", array("id" => $qid)))) { print_error('invalidcoursemodule'); } if (!($course = $DB->get_record("course", array("id" => $questionnaire->course)))) { print_error('coursemisconf'); } if (!($cm = get_coursemodule_from_instance("questionnaire", $questionnaire->id, $course->id))) { print_error('invalidcoursemodule'); } // Check login and get context. require_login($courseid); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); // Add renderer and page objects to the questionnaire object for display use. $questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire')); $questionnaire->add_page(new \mod_questionnaire\output\previewpage()); // If you can't view the questionnaire, or can't view a specified response, error out. if (!($questionnaire->capabilities->view && ($rid == 0 || $questionnaire->can_view_response($rid)))) { // Should never happen, unless called directly by a snoop... print_error('nopermissions', 'moodle', $CFG->wwwroot . '/mod/questionnaire/view.php?id=' . $cm->id); } $blankquestionnaire = true; if ($rid != 0) { $blankquestionnaire = false; } $url = new moodle_url($CFG->wwwroot . '/mod/questionnaire/print.php'); $url->param('qid', $qid); $url->param('rid', $rid); $url->param('courseid', $courseid); $url->param('sec', $sec); $PAGE->set_url($url);
} } if (!($context = context_module::instance($cm->id))) { print_error('badcontext'); } // We need the coursecontext to allow sending of mass mails. if (!($coursecontext = context_course::instance($course->id))) { print_error('badcontext'); } require_course_login($course, true, $cm); $url = new moodle_url('/mod/questionnaire/show_nonrespondents.php', array('id' => $cm->id)); $PAGE->set_url($url); $questionnaire = new questionnaire($sid, $questionnaire, $course, $cm); // Add renderer and page objects to the questionnaire object for display use. $questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire')); $questionnaire->add_page(new \mod_questionnaire\output\nonrespondentspage()); $resume = $questionnaire->resume; $fullname = $questionnaire->respondenttype == 'fullname'; $sid = $questionnaire->sid; if (($formdata = data_submitted()) && !confirm_sesskey()) { print_error('invalidsesskey'); } require_capability('mod/questionnaire:viewsingleresponse', $context); // Anonymous questionnaire. if (!$fullname) { $nonrespondents = questionnaire_get_incomplete_users($cm, $sid); $countnonrespondents = count($nonrespondents); if ($resume) { $countstarted = 0; $countnotstarted = 0; $params = array('survey_id' => $sid, 'complete' => 'n');
$resume = optional_param('resume', null, PARAM_INT); // Is this attempt a resume of a saved attempt? list($cm, $course, $questionnaire) = questionnaire_get_standard_page_items($id, $a); // Check login and get context. require_course_login($course, true, $cm); $context = context_module::instance($cm->id); require_capability('mod/questionnaire:view', $context); $url = new moodle_url($CFG->wwwroot . '/mod/questionnaire/complete.php'); if (isset($id)) { $url->param('id', $id); } else { $url->param('a', $a); } $PAGE->set_url($url); $PAGE->set_context($context); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); // Add renderer and page objects to the questionnaire object for display use. $questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire')); $questionnaire->add_page(new \mod_questionnaire\output\completepage()); $questionnaire->strquestionnaires = get_string("modulenameplural", "questionnaire"); $questionnaire->strquestionnaire = get_string("modulename", "questionnaire"); // Mark as viewed. $completion = new completion_info($course); $completion->set_module_viewed($cm); if ($resume) { $context = context_module::instance($questionnaire->cm->id); $anonymous = $questionnaire->respondenttype == 'anonymous'; $event = \mod_questionnaire\event\attempt_resumed::create(array('objectid' => $questionnaire->id, 'anonymous' => $anonymous, 'context' => $context)); $event->trigger(); } $questionnaire->view();