Add filed Description in MultipleAnswer Excel test import

1.9.x
baelmyhu 11 years ago
parent d433a70f75
commit da5a6bd263
  1. 19
      main/exercice/question.class.php
  2. BIN
      main/exercice/quiz_template.xls
  3. 41
      main/exercice/upload_exercise.php

@ -1481,7 +1481,7 @@ abstract class Question
* @param int Type of question (see constants at beginning of question.class.php)
* @param int Question level/category
*/
function create_question ($quiz_id, $question_name, $max_score = 0, $type = 1, $level = 1) {
function create_question ($quiz_id, $question_name, $question_description = "" , $max_score = 0, $type = 1, $level = 1) {
$course_id = api_get_course_int_id();
$tbl_quiz_question = Database::get_course_table(TABLE_QUIZ_QUESTION);
@ -1494,30 +1494,31 @@ abstract class Question
// Get the max position
$sql = "SELECT max(position) as max_position"
." FROM $tbl_quiz_question q INNER JOIN $tbl_quiz_rel_question r"
." ON q.id = r.question_id"
." AND exercice_id = $quiz_id AND q.c_id = $course_id AND r.c_id = $course_id";
." FROM $tbl_quiz_question q INNER JOIN $tbl_quiz_rel_question r"
." ON q.id = r.question_id"
." AND exercice_id = $quiz_id AND q.c_id = $course_id AND r.c_id = $course_id";
$rs_max = Database::query($sql, __FILE__, __LINE__);
$row_max = Database::fetch_object($rs_max);
$max_position = $row_max->max_position +1;
// Insert the new question
$sql = "INSERT INTO $tbl_quiz_question (c_id, question, ponderation, position, type, level)
VALUES ($course_id, '".Database::escape_string($question_name)."', '$max_score', $max_position, $type, $level)";
$sql = "INSERT INTO $tbl_quiz_question (c_id, question, description, ponderation, position, type, level)
VALUES ($course_id, '".Database::escape_string($question_name)."', '".Database::escape_string($question_description)."', '$max_score', $max_position, $type, $level)";
$rs = Database::query($sql);
// Get the question ID
$question_id = Database::get_last_insert_id();
// Get the max question_order
$sql = "SELECT max(question_order) as max_order "
."FROM $tbl_quiz_rel_question WHERE c_id = $course_id AND exercice_id = $quiz_id ";
."FROM $tbl_quiz_rel_question WHERE c_id = $course_id AND exercice_id = $quiz_id ";
$rs_max_order = Database::query($sql);
$row_max_order = Database::fetch_object($rs_max_order);
$max_order = $row_max_order->max_order + 1;
// Attach questions to quiz
$sql = "INSERT INTO $tbl_quiz_rel_question "
."(c_id, question_id,exercice_id,question_order)"
." VALUES($course_id, $question_id, $quiz_id, $max_order)";
."(c_id, question_id,exercice_id,question_order)"
." VALUES($course_id, $question_id, $quiz_id, $max_order)";
$rs = Database::query($sql);
return $question_id;
}

Binary file not shown.

@ -80,10 +80,10 @@ function lp_upload_quiz_actions() {
}
function lp_upload_quiz_secondary_actions() {
$lp_id = Security::remove_XSS($_GET['lp_id']);
$return.= '';
$return.='<a href="exercise_report.php?' . api_get_cidreq() . '">' . Display :: return_icon('reporting32.png', get_lang('Tracking')) . get_lang('Tracking') . '</a>';
return $return;
$lp_id = Security::remove_XSS($_GET['lp_id']);
$return = '';
$return.='<a href="exercise_report.php?' . api_get_cidreq() . '">' . Display :: return_icon('reporting32.png', get_lang('Tracking')) . get_lang('Tracking') . '</a>';
return $return;
}
function lp_upload_quiz_main() {
@ -136,6 +136,7 @@ function lp_upload_quiz_action_handling() {
$feedback_true_index = array();
$feedback_false_index = array();
$number_questions = 0;
$question_description_index = array();
// Reading all the first column items sequencially to create breakpoints
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
if ($data->sheets[0]['cells'][$i][1] == 'Quiz' && $i == 1) {
@ -151,7 +152,10 @@ function lp_upload_quiz_action_handling() {
$feedback_true_index[] = $i; // FeedbackTrue position (line)
} elseif ($data->sheets[0]['cells'][$i][1] == 'FeedbackFalse') {
$feedback_false_index[] = $i; // FeedbackFalse position (line)
} elseif ($data->sheets[0]['cells'][$i][1] == 'EnrichQuestion') {
$question_description_index[] = $i;
}
}
// Variables
$quiz = array();
@ -161,8 +165,9 @@ function lp_upload_quiz_action_handling() {
$score_list = array();
$feedback_true_list = array();
$feedback_false_list = array();
$question_description = array();
// Get questions
$k = $z = $q = $l = 0;
$k = $z = $q = $l = $m = 0;
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
if (is_array($data->sheets[0]['cells'][$i])) {
$column_data = $data->sheets[0]['cells'][$i];
@ -192,6 +197,9 @@ function lp_upload_quiz_action_handling() {
} elseif (in_array($i, $feedback_false_index)) {
$feedback_false_list[$l] = $column_data;//a complete line where 1st column is 'FeedbackFalse' for wrong answers
$l++;
} elseif (in_array($i, $question_description_index)) {
$question_description[$m] = $column_data;//a complete line where 1st column is 'Description'
$m++;
}
}
@ -236,12 +244,19 @@ function lp_upload_quiz_action_handling() {
// Import questions
for ($i = 0; $i < $number_questions; $i++) {
// Create questions
$question_title = $question[$i][2]; // Question name
$question_description_text = "<p></p>";
if (isset($question_description[$i][2])) {
$question_description_text = "<p>".$question_description[$i][2]."</p>"; // Question description, if any
}
// Unique answers are the only question types available for now
// through xls-format import
$unique_answer = new UniqueAnswer();
if ($question_title != '') {
$question_id = $unique_answer->create_question($quiz_id, ($question_title));
$question_id = $unique_answer->create_question($quiz_id, $question_title, $question_description_text);
}
if (is_array($new_answer[$i])) {
$id = 1;
@ -258,13 +273,13 @@ function lp_upload_quiz_action_handling() {
} else {
$comment = $feedback_false_list[$i][2];
}
/*
if ($id == 1) {
$comment = $feedback_true_list[$i][2];
} elseif ($id == 2) {
$comment = $feedback_false_list[$i][2];
}
*/
/*
if ($id == 1) {
$comment = $feedback_true_list[$i][2];
} elseif ($id == 2) {
$comment = $feedback_false_list[$i][2];
}
*/
// Create answer
$unique_answer->create_answer($id, $question_id, $answer, $comment, $score, $correct);
$id++;

Loading…
Cancel
Save