Browse Source

Merge branch '1.9.x' of ssh://github.com/chamilo/chamilo-lms into chamilo19

Julio Montoya 11 years ago
parent
commit
dc3c1d1c5b

+ 10 - 9
main/exercice/question.class.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;
     }

BIN
main/exercice/quiz_template.xls


+ 23 - 8
main/exercice/upload_exercise.php

@@ -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 'EnrichQuestion'
+            $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];
                         }
-    */
+                        */
                         // Create answer
                         $unique_answer->create_answer($id, $question_id, $answer, $comment, $score, $correct);
                         $id++;