From 4a3e2c04f008dd8532159b8d74f32a136b1b8707 Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Mon, 2 May 2016 15:13:53 +0200 Subject: [PATCH] Fix fatal error see #8176 --- main/exercice/question.class.php | 38 ++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/main/exercice/question.class.php b/main/exercice/question.class.php index 6cf0148e9c..317fcd4173 100755 --- a/main/exercice/question.class.php +++ b/main/exercice/question.class.php @@ -1190,7 +1190,7 @@ abstract class Question * @author Olivier Brouckaert * @param integer $deleteFromEx - exercise ID if the question is only removed from one exercise */ - function delete($deleteFromEx = 0) + public function delete($deleteFromEx = 0) { $course_id = api_get_course_int_id(); @@ -1199,7 +1199,7 @@ abstract class Question $TBL_REPONSES = Database::get_course_table(TABLE_QUIZ_ANSWER); $TBL_QUIZ_QUESTION_REL_CATEGORY = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); - $id = $this->id; + $id = intval($this->id); // if the question must be removed from all exercises if (!$deleteFromEx) { @@ -1223,27 +1223,33 @@ abstract class Question } $sql = "DELETE FROM $TBL_EXERCISE_QUESTION - WHERE c_id = $course_id AND question_id = " . intval($id) . ""; + WHERE c_id = $course_id AND question_id = " . $id; Database::query($sql); $sql = "DELETE FROM $TBL_QUESTIONS - WHERE c_id = $course_id AND id = " . intval($id) . ""; + WHERE c_id = $course_id AND id = " . $id; Database::query($sql); $sql = "DELETE FROM $TBL_REPONSES - WHERE c_id = $course_id AND question_id = " . intval($id) . ""; + WHERE c_id = $course_id AND question_id = " . $id; Database::query($sql); // remove the category of this question in the question_rel_category table $sql = "DELETE FROM $TBL_QUIZ_QUESTION_REL_CATEGORY - WHERE c_id = $course_id AND question_id = " . intval($id) . " AND c_id=" . api_get_course_int_id(); + WHERE + c_id = $course_id AND + question_id = " . $id; Database::query($sql); - api_item_property_update($this->course, TOOL_QUIZ, $id, 'QuizQuestionDeleted', api_get_user_id()); + api_item_property_update( + $this->course, + TOOL_QUIZ, + $id, + 'QuizQuestionDeleted', + api_get_user_id() + ); $this->removePicture(); - // resets the object - $this->Question(); } else { // just removes the exercise from the list $this->removeFromList($deleteFromEx); @@ -1251,7 +1257,14 @@ abstract class Question // disassociate question with this exercise $this->search_engine_edit($deleteFromEx, FALSE, TRUE); } - api_item_property_update($this->course, TOOL_QUIZ, $id, 'QuizQuestionDeleted', api_get_user_id()); + + api_item_property_update( + $this->course, + TOOL_QUIZ, + $id, + 'QuizQuestionDeleted', + api_get_user_id() + ); } } @@ -1259,10 +1272,10 @@ abstract class Question * Duplicates the question * * @author Olivier Brouckaert - * @param array Course info of the destination course + * @param array $course_info Course info of the destination course * @return int ID of the new question */ - public function duplicate($course_info = null) + public function duplicate($course_info = []) { if (empty($course_info)) { $course_info = $this->course; @@ -1348,6 +1361,7 @@ abstract class Question public function get_question_type_name() { $key = self::$questionTypes[$this->type]; + return get_lang($key[1]); }