public function envoyerReponse($info) { $questionnaire = new questionnaire(); $questionnaire->confiance = $info['confiance']; $questionnaire->intelligence = $info['intelligence']; $questionnaire->interaction = $info['interaction']; $questionnaire->comportement = $info['comportement']; $questionnaire->nature_int = $info['nature_int']; $questionnaire->interaction_lab = $info['interaction_lab']; $questionnaire->sens = $info['sens']; $questionnaire->id_user = $_SESSION['id_user']; $questionnaire->id_video = $_SESSION['id_video']; $questionnaire->agent = $info['agent']; $questionnaire->save(); }
$rid = required_param('rid', PARAM_INT); $courseid = required_param('courseid', PARAM_INT); $sec = required_param('sec', PARAM_INT); $null = null; $referer = $CFG->wwwroot . '/mod/questionnaire/report.php'; if (!($questionnaire = get_record("questionnaire", "id", $qid))) { error("Course module is incorrect"); } if (!($course = get_record("course", "id", $questionnaire->course))) { error("Course is misconfigured"); } if (!($cm = get_coursemodule_from_instance("questionnaire", $questionnaire->id, $course->id))) { error("Course Module ID was incorrect"); } /// Check login and get context. require_login($courseid); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); if (!$questionnaire->user_can_take($USER->id)) { /// Should never happen, unless called directly by a snoop... print_error('nopermissions', 'questionnaire', $CFG->wwwroot . '/mod/questionnaire/view.php?id=' . $cm->id); } $currentcss = ''; if (!empty($questionnaire->survey->theme)) { $currentcss = '<link rel="stylesheet" type="text/css" href="' . $CFG->wwwroot . '/mod/questionnaire/css/' . $questionnaire->survey->theme . '" />'; } else { $currentcss = '<link rel="stylesheet" type="text/css" href="' . $CFG->wwwroot . '/mod/questionnaire/css/default.css" />'; } print_header('Print Survey', '', '', '', $currentcss, true, '', ''); $questionnaire->survey_print_render('', '', $courseid); close_window_button(); echo '</body></html>';
/** * This function prints the recent activity (since current user's last login) * for specified courses. * @param array $courses Array of courses to print activity for. * @param string by reference $htmlarray Array of html snippets for display some * -where, which this function adds its new html to. */ function questionnaire_print_overview($courses, &$htmlarray) { global $DB, $USER, $CFG; require_once $CFG->dirroot . '/mod/questionnaire/locallib.php'; if (empty($courses) || !is_array($courses) || count($courses) == 0) { return array(); } if (!($questionnaires = get_all_instances_in_courses('questionnaire', $courses))) { return; } // Get all questionnaire logs in ONE query (much better!). $params = array(); $sql = "SELECT instance,cmid,l.course,COUNT(l.id) as count FROM {log} l " . " JOIN {course_modules} cm ON cm.id = cmid " . " JOIN {questionnaire} q ON cm.instance = q.id " . " WHERE ("; foreach ($courses as $course) { $sql .= '(l.course = ? AND l.time > ?) OR '; $params[] = $course->id; $params[] = $course->lastaccess; } $sql = substr($sql, 0, -3); // Take off the last OR. $sql .= ") AND l.module = 'questionnaire' AND action = 'submit' " . " AND userid != ?" . " AND q.resp_view <> ?" . " GROUP BY cmid,l.course,instance"; $params[] = $USER->id; $params[] = QUESTIONNAIRE_STUDENTVIEWRESPONSES_WHENANSWERED; if (!($new = $DB->get_records_sql($sql, $params))) { $new = array(); // Avoid warnings. } $strquestionnaires = get_string('modulename', 'questionnaire'); $site = get_site(); if (count($courses) == 1 && isset($courses[$site->id])) { $strnumrespsince1 = get_string('overviewnumresplog1', 'questionnaire'); $strnumrespsince = get_string('overviewnumresplog', 'questionnaire'); } else { $strnumrespsince1 = get_string('overviewnumrespvw1', 'questionnaire'); $strnumrespsince = get_string('overviewnumrespvw', 'questionnaire'); } // Go through the list of all questionnaires build previously, and check whether // they have had any activity. require_once $CFG->dirroot . '/mod/questionnaire/questionnaire.class.php'; foreach ($questionnaires as $questionnaire) { if (array_key_exists($questionnaire->id, $new) && !empty($new[$questionnaire->id])) { $cm = get_coursemodule_from_instance('questionnaire', $questionnaire->id); $context = context_module::instance($cm->id); $qobject = new questionnaire($questionnaire->id, $questionnaire, $questionnaire->course, $cm); $isclosed = $qobject->is_closed(); $answered = !$qobject->user_can_take($USER->id); $count = $new[$questionnaire->id]->count; if ($count > 0 && (has_capability('mod/questionnaire:readallresponseanytime', $context) || has_capability('mod/questionnaire:readallresponses', $context) && ($questionnaire->resp_view == QUESTIONNAIRE_STUDENTVIEWRESPONSES_ALWAYS || $questionnaire->resp_view == QUESTIONNAIRE_STUDENTVIEWRESPONSES_WHENCLOSED && $isclosed || $questionnaire->resp_view == QUESTIONNAIRE_STUDENTVIEWRESPONSES_WHENANSWERED && $answered))) { if ($count == 1) { $strresp = $strnumrespsince1; } else { $strresp = $strnumrespsince; } $str = '<div class="overview questionnaire"><div class="name">' . $strquestionnaires . ': <a title="' . $strquestionnaires . '" href="' . $CFG->wwwroot . '/mod/questionnaire/view.php?a=' . $questionnaire->id . '">' . $questionnaire->name . '</a></div>'; $str .= '<div class="info">'; $str .= $count . ' ' . $strresp; $str .= '</div></div>'; if (!array_key_exists($questionnaire->course, $htmlarray)) { $htmlarray[$questionnaire->course] = array(); } if (!array_key_exists('questionnaire', $htmlarray[$questionnaire->course])) { $htmlarray[$questionnaire->course]['questionnaire'] = ''; // Initialize, avoid warnings. } $htmlarray[$questionnaire->course]['questionnaire'] .= $str; } } } }
print_error('requiredparameter', 'questionnaire'); } } $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); }
} // Log question created event. if (isset($qformdata)) { $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++; } }
if (!($course = $DB->get_record("course", array("id" => $cm->course)))) { print_error('coursemisconf'); } 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); $SESSION->questionnaire->current_tab = 'settings'; if (!$questionnaire->capabilities->manage) { print_error('nopermissions', 'error', 'mod:questionnaire:manage'); } $settingsform = new 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');
// //Cobalt on the web: http://cobalt.jvroig.com //****************************************************************** require 'path.php'; init_cobalt('View questionnaire'); if (xsrf_guard()) { init_var($_POST['btn_cancel']); init_var($_POST['btn_submit']); if ($_POST['btn_cancel']) { log_action('Pressed cancel button'); redirect("listview_questionnaire.php"); } if ($_POST['btn_submit']) { log_action('Pressed submit button'); require 'subclasses/questionnaire.php'; $dbh_questionnaire = new questionnaire(); if ($message == "") { log_action('Exported table data to CSV'); $timestamp = date('Y-m-d'); $token = generate_token(0, 'fs'); $csv_name = $token . $_SESSION['user'] . '_questionnaire_' . $timestamp . '.csv'; $filename = TMP_DIRECTORY . '/' . $csv_name; $csv_contents = $dbh_questionnaire->export_to_csv(); $csv_file = fopen($filename, "wb"); fwrite($csv_file, $csv_contents); fclose($csv_file); chmod($filename, 0755); $csv_name = urlencode($csv_name); $message = 'CSV file successfully generated: <a href="/' . BASE_DIRECTORY . '/download_generic.php?filename=' . $csv_name . '">Download the CSV file.</a>'; $message_type = 'system'; }
function questionnaire_check_page_breaks($questionnaire) { global $DB; $msg = ''; // Store the new page breaks ids. $newpbids = array(); $delpb = 0; $sid = $questionnaire->survey->id; $questions = $DB->get_records('questionnaire_question', array('survey_id' => $sid, 'deleted' => 'n'), 'id'); $positions = array(); foreach ($questions as $key => $qu) { $positions[$qu->position]['question_id'] = $key; $positions[$qu->position]['dependquestion'] = $qu->dependquestion; $positions[$qu->position]['dependchoice'] = $qu->dependchoice; $positions[$qu->position]['type_id'] = $qu->type_id; $positions[$qu->position]['qname'] = $qu->name; $positions[$qu->position]['qpos'] = $qu->position; } $count = count($positions); for ($i = $count; $i > 0; $i--) { $qu = $positions[$i]; $questionnb = $i; if ($qu['type_id'] == QUESPAGEBREAK) { $questionnb--; // If more than one consecutive page breaks, remove extra one(s). $prevqu = null; $prevtypeid = null; if ($i > 1) { $prevqu = $positions[$i - 1]; $prevtypeid = $prevqu['type_id']; } // If $i == $count then remove that extra page break in last position. if ($prevtypeid == QUESPAGEBREAK || $i == $count || $qu['qpos'] == 1) { $qid = $qu['question_id']; $delpb++; $msg .= get_string("checkbreaksremoved", "questionnaire", $delpb) . '<br />'; // Need to reload questions. $questions = $DB->get_records('questionnaire_question', array('survey_id' => $sid, 'deleted' => 'n'), 'id'); $DB->set_field('questionnaire_question', 'deleted', 'y', array('id' => $qid, 'survey_id' => $sid)); $select = 'survey_id = ' . $sid . ' AND deleted = \'n\' AND position > ' . $questions[$qid]->position; if ($records = $DB->get_records_select('questionnaire_question', $select, null, 'position ASC')) { foreach ($records as $record) { $DB->set_field('questionnaire_question', 'position', $record->position - 1, array('id' => $record->id)); } } } } // Add pagebreak between question child and not dependent question that follows. if ($qu['type_id'] != QUESPAGEBREAK) { $j = $i - 1; if ($j != 0) { $prevtypeid = $positions[$j]['type_id']; $prevdependquestion = $positions[$j]['dependquestion']; $prevdependchoice = $positions[$j]['dependchoice']; if ($prevtypeid != QUESPAGEBREAK && ($prevdependquestion != $qu['dependquestion'] || $prevdependchoice != $qu['dependchoice']) || $qu['dependquestion'] == 0 && $prevdependquestion != 0) { $sql = 'SELECT MAX(position) as maxpos FROM {questionnaire_question} ' . 'WHERE survey_id = ' . $questionnaire->survey->id . ' AND deleted = \'n\''; if ($record = $DB->get_record_sql($sql)) { $pos = $record->maxpos + 1; } else { $pos = 1; } $question = new stdClass(); $question->survey_id = $questionnaire->survey->id; $question->type_id = QUESPAGEBREAK; $question->position = $pos; $question->content = 'break'; if (!($newqid = $DB->insert_record('questionnaire_question', $question))) { return false; } $newpbids[] = $newqid; $movetopos = $i; $questionnaire = new questionnaire($questionnaire->id, null, $course, $cm); $questionnaire->move_question($newqid, $movetopos); } } } } if (empty($newpbids) && !$msg) { $msg = get_string('checkbreaksok', 'questionnaire'); } else { if ($newpbids) { $msg .= get_string('checkbreaksadded', 'questionnaire') . ' '; $newpbids = array_reverse($newpbids); $questionnaire = new questionnaire($questionnaire->id, null, $course, $cm); foreach ($newpbids as $newpbid) { $msg .= $questionnaire->questions[$newpbid]->position . ' '; } } } return $msg; }
if (!($course = $DB->get_record("course", array("id" => $cm->course)))) { print_error('coursemisconf'); } 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');
$url->param('userid', $userid); } if (isset($byresponse)) { $url->param('byresponse', $byresponse); } if (isset($currentgroupid)) { $url->param('group', $currentgroupid); } if (isset($action)) { $url->param('action', $action); } $PAGE->set_url($url); $PAGE->set_context($context); $PAGE->set_title(get_string('questionnairereport', 'questionnaire')); $PAGE->set_heading(format_string($course->fullname)); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); $sid = $questionnaire->survey->id; $courseid = $course->id; // Tab setup. if (!isset($SESSION->questionnaire)) { $SESSION->questionnaire = new stdClass(); } $SESSION->questionnaire->current_tab = 'myreport'; switch ($action) { case 'summary': if (empty($questionnaire->survey)) { print_error('surveynotexists', 'questionnaire'); } $SESSION->questionnaire->current_tab = 'mysummary'; $params = array('survey_id' => $questionnaire->sid, 'username' => $userid, 'complete' => 'y'); $resps = $DB->get_records('questionnaire_response', $params);
$courseid = required_param('courseid', PARAM_INT); $sec = required_param('sec', PARAM_INT); $null = null; $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);
} if (!($questionnaire = $DB->get_record("questionnaire", array("id" => $cm->instance)))) { print_error('invalidcoursemodule'); } } 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) {
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); $url = new moodle_url($CFG->wwwroot . '/mod/questionnaire/view.php'); if (isset($id)) { $url->param('id', $id); } else { $url->param('a', $a); } if (isset($sid)) { $url->param('sid', $sid); } $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\viewpage()); $PAGE->set_title(format_string($questionnaire->name)); $PAGE->set_heading(format_string($course->fullname)); echo $questionnaire->renderer->header(); $questionnaire->page->add_to_page('questionnairename', clean_text($questionnaire->name)); // Print the main part of the page. if ($questionnaire->intro) { $questionnaire->page->add_to_page('intro', format_module_intro('questionnaire', $questionnaire, $cm->id)); } $cm = $questionnaire->cm; $currentgroupid = groups_get_activity_group($cm); if (!groups_is_member($currentgroupid, $USER->id)) { $currentgroupid = 0;
$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();
$url->param('userid', $userid); } if (isset($byresponse)) { $url->param('byresponse', $byresponse); } if (isset($currentgroupid)) { $url->param('group', $currentgroupid); } if (isset($action)) { $url->param('action', $action); } $PAGE->set_url($url); $PAGE->set_context($context); $PAGE->set_title(get_string('questionnairereport', 'questionnaire')); $PAGE->set_heading(format_string($course->fullname)); $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()); $sid = $questionnaire->survey->id; $courseid = $course->id; // Tab setup. if (!isset($SESSION->questionnaire)) { $SESSION->questionnaire = new stdClass(); } $SESSION->questionnaire->current_tab = 'myreport'; switch ($action) { case 'summary': if (empty($questionnaire->survey)) { print_error('surveynotexists', 'questionnaire'); }
//****************************************************************** require 'path.php'; init_cobalt('Delete questionnaire'); if (isset($_GET['id'])) { $id = urldecode($_GET['id']); require_once 'form_data_questionnaire.php'; } elseif (xsrf_guard()) { init_var($_POST['btn_cancel']); init_var($_POST['btn_delete']); require 'components/query_string_standard.php'; if ($_POST['btn_cancel']) { log_action('Pressed cancel button', $_SERVER['PHP_SELF']); redirect("listview_questionnaire.php?{$query_string}"); } elseif ($_POST['btn_delete']) { log_action('Pressed delete button', $_SERVER['PHP_SELF']); require_once 'subclasses/questionnaire.php'; $dbh_questionnaire = new questionnaire(); $object_name = 'dbh_questionnaire'; require 'components/create_form_data.php'; $dbh_questionnaire->del($arr_form_data); redirect("listview_questionnaire.php?{$query_string}"); } } require 'subclasses/questionnaire_html.php'; $html = new questionnaire_html(); $html->draw_header('Delete Questionnaire', $message, $message_type); $html->draw_listview_referrer_info($filter_field_used, $filter_used, $page_from, $filter_sort_asc, $filter_sort_desc); $html->draw_hidden('id'); $html->detail_view = TRUE; $html->draw_controls('delete'); $html->draw_footer();
} $url = new moodle_url($CFG->wwwroot . '/mod/questionnaire/myreport.php', array('instance' => $instance)); if (isset($userid)) { $url->param('userid', $userid); } if (isset($byresponse)) { $url->param('byresponse', $byresponse); } if (isset($action)) { $url->param('action', $action); } $PAGE->set_url($url); $PAGE->set_context($context); $PAGE->set_title(get_string('questionnairereport', 'questionnaire')); $PAGE->set_heading(format_string($course->fullname)); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); // Tab setup. $SESSION->questionnaire->current_tab = 'myreport'; switch ($action) { case $strsummary: case 'summary': if (empty($questionnaire->survey)) { print_error('surveynotexists', 'questionnaire'); } $SESSION->questionnaire->current_tab = 'mysummary'; $select = 'survey_id = ' . $questionnaire->sid . ' AND username = \'' . $userid . '\' AND complete=\'y\''; $resps = $DB->get_records_select('questionnaire_response', $select); if (!($resps = $DB->get_records_select('questionnaire_response', $select))) { $resps = array(); } $rids = array_keys($resps);
} else { error(get_string('requiredparameter', 'questionnaire')); } } $SESSION->instance = $instance; if (!($questionnaire = get_record("questionnaire", "id", $instance))) { error(get_string('incorrectquestionnaire', 'questionnaire')); } if (!($course = get_record("course", "id", $questionnaire->course))) { error("get_string('misconfigured', 'questionnaire')"); } if (!($cm = get_coursemodule_from_instance("questionnaire", $questionnaire->id, $course->id))) { error(get_string('incorrectmodule', 'questionnaire')); } require_login($course->id); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); $context = get_context_instance(CONTEXT_MODULE, $cm->id); $questionnaire->canviewallgroups = has_capability('moodle/site:accessallgroups', $context, NULL, false); $sid = $questionnaire->survey->id; /// Tab setup: $SESSION->questionnaire->current_tab = 'allreport'; $formdata = data_submitted(); $strcrossanalyze = get_string('crossanalyze', 'questionnaire'); $strcrosstabulate = get_string('crosstabulate', 'questionnaire'); $strdeleteallresponses = get_string('deleteallresponses', 'questionnaire'); $strdeleteresp = get_string('deleteresp', 'questionnaire'); $strdownloadcsv = get_string('downloadtext'); $strviewallresponses = get_string('viewallresponses', 'questionnaire'); $strsummary = get_string('summary', 'questionnaire'); $strviewbyresponse = get_string('viewbyresponse', 'questionnaire'); $strquestionnaires = get_string('modulenameplural', 'questionnaire');
//****************************************************************** //This file was generated by Cobalt, a rapid application development //framework developed by JV Roig (jvroig@jvroig.com). // //Cobalt on the web: http://cobalt.jvroig.com //****************************************************************** require 'path.php'; init_cobalt('Add questionnaire'); require 'components/get_listview_referrer.php'; if (xsrf_guard()) { init_var($_POST['btn_cancel']); init_var($_POST['btn_submit']); require 'components/query_string_standard.php'; require 'subclasses/questionnaire.php'; $dbh_questionnaire = new questionnaire(); $object_name = 'dbh_questionnaire'; require 'components/create_form_data.php'; extract($arr_form_data); if ($_POST['btn_cancel']) { log_action('Pressed cancel button', $_SERVER['PHP_SELF']); redirect("listview_questionnaire.php?{$query_string}"); } if ($_POST['btn_submit']) { log_action('Pressed submit button', $_SERVER['PHP_SELF']); $message .= $dbh_questionnaire->sanitize($arr_form_data)->lst_error; extract($arr_form_data); if ($dbh_questionnaire->check_uniqueness($arr_form_data)->is_unique) { //Good, no duplicate in database } else { $message = "Record already exists with the same primary identifiers!";
/** * Adds module specific settings to the settings block * * @param settings_navigation $settings The settings navigation object * @param navigation_node $questionnairenode The node to add module settings to */ function questionnaire_extend_settings_navigation(settings_navigation $settings, navigation_node $questionnairenode) { global $PAGE, $DB, $USER, $CFG; $individualresponse = optional_param('individualresponse', false, PARAM_INT); $rid = optional_param('rid', false, PARAM_INT); // Response id. $currentgroupid = optional_param('group', 0, PARAM_INT); // Group id. require_once $CFG->dirroot . '/mod/questionnaire/questionnaire.class.php'; $context = $PAGE->cm->context; $cmid = $PAGE->cm->id; $cm = $PAGE->cm; $course = $PAGE->course; if (!($questionnaire = $DB->get_record("questionnaire", array("id" => $cm->instance)))) { print_error('invalidcoursemodule'); } $courseid = $course->id; $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); if ($survey = $DB->get_record('questionnaire_survey', array('id' => $questionnaire->sid))) { $owner = trim($survey->owner) == trim($courseid); } else { $survey = false; $owner = true; } // On view page, currentgroupid is not yet sent as an optional_param, so get it. $groupmode = groups_get_activity_groupmode($cm, $course); if ($groupmode > 0 && $currentgroupid == 0) { $currentgroupid = groups_get_activity_group($questionnaire->cm); if (!groups_is_member($currentgroupid, $USER->id)) { $currentgroupid = 0; } } // We want to add these new nodes after the Edit settings node, and before the // Locally assigned roles node. Of course, both of those are controlled by capabilities. $keys = $questionnairenode->get_children_key_list(); $beforekey = null; $i = array_search('modedit', $keys); if ($i === false and array_key_exists(0, $keys)) { $beforekey = $keys[0]; } else { if (array_key_exists($i + 1, $keys)) { $beforekey = $keys[$i + 1]; } } if (has_capability('mod/questionnaire:manage', $context) && $owner) { $url = '/mod/questionnaire/qsettings.php'; $node = navigation_node::create(get_string('advancedsettings'), new moodle_url($url, array('id' => $cmid)), navigation_node::TYPE_SETTING, null, 'advancedsettings', new pix_icon('t/edit', '')); $questionnairenode->add_node($node, $beforekey); } if (has_capability('mod/questionnaire:editquestions', $context) && $owner) { $url = '/mod/questionnaire/questions.php'; $node = navigation_node::create(get_string('questions', 'questionnaire'), new moodle_url($url, array('id' => $cmid)), navigation_node::TYPE_SETTING, null, 'questions', new pix_icon('t/edit', '')); $questionnairenode->add_node($node, $beforekey); } if (has_capability('mod/questionnaire:preview', $context)) { $url = '/mod/questionnaire/preview.php'; $node = navigation_node::create(get_string('preview_label', 'questionnaire'), new moodle_url($url, array('id' => $cmid)), navigation_node::TYPE_SETTING, null, 'preview', new pix_icon('t/preview', '')); $questionnairenode->add_node($node, $beforekey); } if ($questionnaire->user_can_take($USER->id)) { $url = '/mod/questionnaire/complete.php'; $node = navigation_node::create(get_string('answerquestions', 'questionnaire'), new moodle_url($url, array('id' => $cmid)), navigation_node::TYPE_SETTING, null, '', new pix_icon('i/info', 'answerquestions')); $questionnairenode->add_node($node, $beforekey); } $usernumresp = $questionnaire->count_submissions($USER->id); if ($questionnaire->capabilities->readownresponses && $usernumresp > 0) { $url = '/mod/questionnaire/myreport.php'; if ($usernumresp > 1) { $node = navigation_node::create(get_string('yourresponses', 'questionnaire'), new moodle_url($url, array('instance' => $questionnaire->id, 'userid' => $USER->id, 'byresponse' => 0, 'action' => 'summary', 'group' => $currentgroupid)), navigation_node::TYPE_SETTING, null, 'yourresponses'); $myreportnode = $questionnairenode->add_node($node, $beforekey); $summary = $myreportnode->add(get_string('summary', 'questionnaire'), new moodle_url('/mod/questionnaire/myreport.php', array('instance' => $questionnaire->id, 'userid' => $USER->id, 'byresponse' => 0, 'action' => 'summary', 'group' => $currentgroupid))); $byresponsenode = $myreportnode->add(get_string('viewindividualresponse', 'questionnaire'), new moodle_url('/mod/questionnaire/myreport.php', array('instance' => $questionnaire->id, 'userid' => $USER->id, 'byresponse' => 1, 'action' => 'vresp', 'group' => $currentgroupid))); $allmyresponsesnode = $myreportnode->add(get_string('myresponses', 'questionnaire'), new moodle_url('/mod/questionnaire/myreport.php', array('instance' => $questionnaire->id, 'userid' => $USER->id, 'byresponse' => 0, 'action' => 'vall', 'group' => $currentgroupid))); if ($questionnaire->capabilities->downloadresponses) { $downloadmyresponsesnode = $myreportnode->add(get_string('downloadtext'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'user' => $USER->id, 'action' => 'dwnpg', 'group' => $currentgroupid))); } } else { $node = navigation_node::create(get_string('yourresponse', 'questionnaire'), new moodle_url($url, array('instance' => $questionnaire->id, 'userid' => $USER->id, 'byresponse' => 1, 'action' => 'vresp', 'group' => $currentgroupid)), navigation_node::TYPE_SETTING, null, 'yourresponse'); $myreportnode = $questionnairenode->add_node($node, $beforekey); } } $numresp = $questionnaire->count_submissions(); // Number of responses in currently selected group (or all participants etc.). if (isset($SESSION->questionnaire->numselectedresps)) { $numselectedresps = $SESSION->questionnaire->numselectedresps; } else { $numselectedresps = $numresp; } // If questionnaire is set to separate groups, prevent user who is not member of any group // and is not a non-editing teacher to view All responses. $canviewgroups = true; $groupmode = groups_get_activity_groupmode($cm, $course); if ($groupmode == 1) { $canviewgroups = groups_has_membership($cm, $USER->id); } $canviewallgroups = has_capability('moodle/site:accessallgroups', $context); if (($canviewallgroups || $canviewgroups && $questionnaire->capabilities->readallresponseanytime) && $numresp > 0 && $owner && $numselectedresps > 0 || $questionnaire->capabilities->readallresponses && $numresp > 0 && $canviewgroups && ($questionnaire->resp_view == QUESTIONNAIRE_STUDENTVIEWRESPONSES_ALWAYS || $questionnaire->resp_view == QUESTIONNAIRE_STUDENTVIEWRESPONSES_WHENCLOSED && $questionnaire->is_closed() || $questionnaire->resp_view == QUESTIONNAIRE_STUDENTVIEWRESPONSES_WHENANSWERED && $usernumresp > 0) && $questionnaire->is_survey_owner()) { $url = '/mod/questionnaire/report.php'; $node = navigation_node::create(get_string('viewallresponses', 'questionnaire'), new moodle_url($url, array('instance' => $questionnaire->id, 'action' => 'vall')), navigation_node::TYPE_SETTING, null, 'vall'); $reportnode = $questionnairenode->add_node($node, $beforekey); if ($questionnaire->capabilities->viewsingleresponse) { $summarynode = $reportnode->add(get_string('summary', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'vall'))); } else { $summarynode = $reportnode; } $defaultordernode = $summarynode->add(get_string('order_default', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'vall', 'group' => $currentgroupid))); $ascendingordernode = $summarynode->add(get_string('order_ascending', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'vallasort', 'group' => $currentgroupid))); $descendingordernode = $summarynode->add(get_string('order_descending', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'vallarsort', 'group' => $currentgroupid))); if ($questionnaire->capabilities->deleteresponses) { $deleteallnode = $summarynode->add(get_string('deleteallresponses', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'delallresp', 'group' => $currentgroupid))); } if ($questionnaire->capabilities->downloadresponses) { $downloadresponsesnode = $summarynode->add(get_string('downloadtextformat', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'dwnpg', 'group' => $currentgroupid))); } if ($questionnaire->capabilities->viewsingleresponse) { $byresponsenode = $reportnode->add(get_string('viewbyresponse', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'vresp', 'byresponse' => 1, 'group' => $currentgroupid))); $viewindividualresponsenode = $byresponsenode->add(get_string('view', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'vresp', 'byresponse' => 1, 'group' => $currentgroupid))); if ($individualresponse) { $deleteindividualresponsenode = $byresponsenode->add(get_string('deleteresp', 'questionnaire'), new moodle_url('/mod/questionnaire/report.php', array('instance' => $questionnaire->id, 'action' => 'dresp', 'byresponse' => 1, 'rid' => $rid, 'group' => $currentgroupid, 'individualresponse' => 1))); } } } if ($questionnaire->capabilities->viewsingleresponse && ($canviewallgroups || $canviewgroups)) { $url = '/mod/questionnaire/show_nonrespondents.php'; $node = navigation_node::create(get_string('show_nonrespondents', 'questionnaire'), new moodle_url($url, array('id' => $cmid)), navigation_node::TYPE_SETTING, null, 'nonrespondents'); $nonrespondentsnode = $questionnairenode->add_node($node, $beforekey); } }
?> </span></h1> </div> </div> <div id="espaceprincipal"> <div id="module"><!-- Debut module --><?php if ($utilisateur_connecte != "" && in_array($utilisateur_connecte->_testauthentification, array(2, 1))) { require_once $adresserepertoiresite . '/scripts/php/class.questionnaire.php'; if (isset($_GET["v"]) || isset($_POST["v"])) { if (isset($_GET["v"])) { $v = $_GET["v"]; } if (isset($_POST["v"])) { $v = $_POST["v"]; } $questionnaire = new questionnaire($v); if (isset($_POST["val"])) { $val = $_POST["val"]; } else { $val = 0; } $questionnaire->qcm($val); } else { echo _AUCUN_QUESTIONNAIRE_SELECTIONNE_RETOUR_A_L_ACCEUIL_CONSEILLE; } } else { echo _NON_CONNECTE_IL_FAUT_ETRE_CONNECTE_POUR_VOIR_UN_QUESTIONNAIRE; } ?> <!-- Fin module --> </div>
if (!($course = get_record("course", "id", $survey->owner))) { error("Course is misconfigured"); } /// Dummy questionnaire object: $questionnaire = new Object(); $questionnaire->id = 0; $questionnaire->course = $course->id; $questionnaire->name = $survey->title; $questionnaire->sid = $sid; $questionnaire->resume = 0; ///Dummy cm object: $cm = false; } /// Check login and get context. require_login($course->id, false, $cm); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); $owner = trim($questionnaire->survey->owner) == trim($course->id); $canpreview = !isset($questionnaire->capabilities) && has_capability('mod/questionnaire:manage', get_context_instance(CONTEXT_COURSE, $course->id)) || isset($questionnaire->capabilities) && $questionnaire->capabilities->editquestions && $owner; if (!$canpreview) { /// Should never happen, unless called directly by a snoop... print_error('nopermissions', 'questionnaire', $CFG->wwwroot . '/mod/questionnaire/view.php?id=' . $cm->id); } $SESSION->questionnaire->current_tab = 'preview'; $qp = get_string('preview_questionnaire', 'questionnaire'); $pq = get_string('previewing', 'questionnaire'); $currentcss = ''; if (!empty($questionnaire->survey->theme)) { $currentcss = '<link rel="stylesheet" type="text/css" href="' . $CFG->wwwroot . '/mod/questionnaire/css/' . $questionnaire->survey->theme . '" />'; } else { $currentcss = '<link rel="stylesheet" type="text/css" href="' . $CFG->wwwroot . '/mod/questionnaire/css/default.css" />'; }
print_error('coursemisconf'); } if (!($cm = get_coursemodule_from_instance("questionnaire", $questionnaire->id, $course->id))) { print_error('invalidcoursemodule'); } } // 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); $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();
<?php require 'components/get_listview_referrer.php'; require 'subclasses/questionnaire.php'; $dbh_questionnaire = new questionnaire(); $dbh_questionnaire->set_where("id='" . quote_smart($id) . "'"); if ($result = $dbh_questionnaire->make_query()->result) { $data = $result->fetch_assoc(); extract($data); }
/** * Function to create a question. * * @param questionnaire $questionnaire * @param array|stdClass $record * @param array|stdClass $data - accompanying data for question - e.g. choices * @return \mod_questionnaire\question\base the question object */ public function create_question(questionnaire $questionnaire, $record = null, $data = null) { global $DB; // Increment the question count. $this->questioncount++; $record = (array) $record; $record['position'] = count($questionnaire->questions); if (!isset($record['survey_id'])) { throw new coding_exception('survey_id must be present in phpunit_util::create_question() $record'); } if (!isset($record['name'])) { throw new coding_exception('name must be present in phpunit_util::create_question() $record'); } if (!isset($record['type_id'])) { throw new coding_exception('typeid must be present in phpunit_util::create_question() $record'); } if (!isset($record['content'])) { $record['content'] = 'Random ' . $this->type_str($record['type_id']) . ' ' . uniqid(); } // Get question type. $typeid = $record['type_id']; if ($typeid === QUESRATE && !isset($record['length'])) { $record['length'] = 5; } if ($typeid !== QUESPAGEBREAK && $typeid !== QUESSECTIONTEXT) { $qtype = $DB->get_record('questionnaire_question_type', ['id' => $typeid]); if (!$qtype) { throw new coding_exception('Could not find question type with id ' . $typeid); } // Throw an error if this requires choices and it hasn't got them. $this->validate_question($qtype->typeid, $data); } $record = (object) $record; // Add the question. $record->id = $DB->insert_record('questionnaire_question', $record); $typename = \mod_questionnaire\question\base::qtypename($record->type_id); $question = questionnaire::question_factory($typename, $record->id, $record); // Add the question choices if required. if ($typeid !== QUESPAGEBREAK && $typeid !== QUESSECTIONTEXT) { if ($question->has_choices()) { $this->add_question_choices($question, $data); $record->opts = $data; } } // Update questionnaire. $questionnaire->add_questions(); return $question; }
print_error('requiredparameter', 'questionnaire'); } } $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); // 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);
if (!$popup) { require_login($course->id, false, $cm); } $context = $cm ? context_module::instance($cm->id) : false; $url = new moodle_url('/mod/questionnaire/preview.php'); if ($id !== 0) { $url->param('id', $id); } if ($sid) { $url->param('sid', $sid); } $PAGE->set_url($url); $PAGE->set_context($context); $PAGE->set_cm($cm); // CONTRIB-5872 - I don't know why this is needed. $questionnaire = new questionnaire($qid, $questionnaire, $course, $cm); $canpreview = !isset($questionnaire->capabilities) && has_capability('mod/questionnaire:preview', context_course::instance($course->id)) || isset($questionnaire->capabilities) && $questionnaire->capabilities->preview; if (!$canpreview && !$popup) { // Should never happen, unless called directly by a snoop... print_error('nopermissions', 'questionnaire', $CFG->wwwroot . '/mod/questionnaire/view.php?id=' . $cm->id); } if (!isset($SESSION->questionnaire)) { $SESSION->questionnaire = new stdClass(); } $SESSION->questionnaire->current_tab = new stdClass(); $SESSION->questionnaire->current_tab = 'preview'; $qp = get_string('preview_questionnaire', 'questionnaire'); $pq = get_string('previewing', 'questionnaire'); // Print the page header. if ($popup) { $PAGE->set_pagelayout('popup');
// screen $qid = optional_param('qid', 0, PARAM_INT); // Question id $moveq = optional_param('moveq', 0, PARAM_INT); // Question id to move if (!($cm = get_coursemodule_from_id('questionnaire', $id))) { error("Course Module ID was incorrect"); } if (!($course = get_record("course", "id", $cm->course))) { error("Course is misconfigured"); } if (!($questionnaire = get_record("questionnaire", "id", $cm->instance))) { error("Course module is incorrect"); } require_login($course->id); $questionnaire = new questionnaire(0, $questionnaire, $course, $cm); if (!$questionnaire->capabilities->editquestions) { error(get_string('nopermissions', 'error', 'mod:questionnaire:edit')); } $SESSION->questionnaire->current_tab = 'questions'; $reload = false; /// Process form data: if ($action == 'main') { $questions_form = new 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;
$courseid = required_param('courseid', PARAM_INT); $sec = required_param('sec', PARAM_INT); $null = null; $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); // 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);
//gestion des couleurs $couleur_fond = imagecolorallocate($im, 255, 255, 255); $couleur_texte = imagecolorallocate($im, 0, 0, 0); $couleur_contour = imagecolorallocate($im, 0, 0, 0); $couleur_reponses_vrai = imagecolorallocate($im, 0, 255, 0); $couleur_reponses_fausse = imagecolorallocate($im, 255, 0, 0); $couleur_reponses_score_max = imagecolorallocate($im, 0, 255, 255); $couleur_reponses_score = imagecolorallocate($im, 0, 0, 150); //gestion de la police de caratere : $vpolice_titre = 3; $vpolice = 2; //application de la couleur de fond: imagefill($im, 0, 0, $couleur_fond); //calcul du score sur le questionnaire require_once $adresserepertoiresite . '/scripts/php/class.questionnaire.php'; $questionnaire = new questionnaire($_GET["i"]); $score = $questionnaire->score_qcm(); //calcul de l'angle de l'arc de reponse(s) fausse(s) if ($score[0] > 0) { $rapport_total_sur_faux = $score[3] / $score[0]; } else { $rapport_total_sur_faux = 0; } $vanglefaux = 360 * $rapport_total_sur_faux; $vpctvrai = 1 - $rapport_total_sur_faux; $vpctvrai = $vpctvrai * 100; // French notation $nombre_format_francais = number_format($vpctvrai, 2, ',', ' '); $vtextepctvrai = $nombre_format_francais . "%"; $vtextevrai = _REPONSES_VRAI . $score[2] . "/" . $score[0]; //calcul de l'angle de l'arc du score