diff --git a/main/exercice/exercise.class.php b/main/exercice/exercise.class.php index 577ff304cd..9dcca54349 100644 --- a/main/exercice/exercise.class.php +++ b/main/exercice/exercise.class.php @@ -109,6 +109,7 @@ class Exercise * * @author - Olivier Brouckaert * @param int $course_id + * @throws Exception */ public function Exercise($course_id = null) { @@ -378,10 +379,11 @@ class Exercise } /** - * @author Hubert borderiou 30-11-11 - * @return void modify object to update the switch display_category_name - * $in_txt is an integer 0 or 1 - */ + * @author Hubert borderiou 30-11-11 + * @param string + * @return void modify object to update the switch display_category_name + * $in_txt is an integer 0 or 1 + */ public function updateDisplayCategoryName($text) { $this->display_category_name = $text; @@ -398,6 +400,7 @@ class Exercise /** * @author Hubert borderiou 28-11-11 + * @param string * @return string html text : update the text to display ay the end of the test. */ public function updateTextWhenFinished($text) @@ -531,21 +534,33 @@ class Exercise $this->hideQuestionTitle = intval($value); } + /** + * @return int + */ public function getScoreTypeModel() { return $this->scoreTypeModel; } + /** + * @param int $value + */ public function setScoreTypeModel($value) { $this->scoreTypeModel = intval($value); } + /** + * @return int + */ public function getGlobalCategoryId() { return $this->globalCategoryId; } + /** + * @param $value + */ public function setGlobalCategoryId($value) { if (is_array($value) && isset($value[0])) { @@ -2898,12 +2913,12 @@ class Exercise $sql_fields_values = ""; } $questionList = array_map('intval', $questionList); + $weight = Database::escape_string($weight); $sql = "INSERT INTO $track_exercises ($sql_fields exe_exo_id, exe_user_id, c_id, status, session_id, data_tracking, start_date, orig_lp_id, orig_lp_item_id, exe_weighting, quiz_distribution_id) VALUES ( $sql_fields_values '".$this->id."','".api_get_user_id()."','".api_get_course_int_id()."', 'incomplete','".api_get_session_id()."','".implode(',', $questionList)."', '".api_get_utc_datetime()."', '$safe_lp_id', '$safe_lp_item_id', '$weight', '".$this->distributionId."')"; - Database::query($sql); $id = Database::insert_id(); @@ -5572,7 +5587,6 @@ class Exercise $questionList = self::shuffleQuestionListPerCategory($questionByCategory, $categoriesAddedInExercise); $questionList = ArrayClass::array_flatten($questionList); } - } } } @@ -7938,7 +7952,6 @@ class Exercise } } - // Only use this feature if all questions were answered and there are contents in the $remindList /*if (count($answeredQuestions) == count($result['question_list']) && empty($remindList)) { return null; @@ -7957,51 +7970,46 @@ class Exercise $counterRemindListQuestions = 0; // Checking questions saved in the reminder list - + //var_dump($currentQuestion); + //var_dump($data_tracking, $remindList); if (!empty($remindList)) { foreach ($data_tracking as $questionId) { if (in_array($questionId, $remindList)) { // Skip the current question + if ($currentQuestion != $counterRemindListQuestions && - $counterRemindListQuestions > $currentQuestion) { + $counterRemindListQuestions > $currentQuestion + ) { break; } } $counterRemindListQuestions++; } - - //var_dump($currentQuestion, $counterRemindListQuestions, $counterAnsweredQuestions); + //var_dump($counterRemindListQuestions); // Which is near to the current question? $diffReminder = $counterRemindListQuestions - $currentQuestion; $diffAnswered = $counterAnsweredQuestions - $currentQuestion; + // 1 -- 4 + //var_dump($diffReminder, $diffAnswered); + + // if the reminder id is bigger than the answered and the reminder is smaller than the current question - // if the reminder id is bigger thatn the answered and the reminder is smaller thatn the current question if ($counterRemindListQuestions > $counterAnsweredQuestions && !empty($remindList) && $counterRemindListQuestions < $currentQuestion) { return null; } if ($diffReminder > $diffAnswered) { - if ($diffAnswered < 0) { - if (count($data_tracking) == $counterRemindListQuestions) { return null; } return $counterRemindListQuestions; -/* - return null; - if ($currentQuestion > $counterAnsweredQuestions) { - - } else { - return $counterRemindListQuestions; - }*/ } else { return $counterAnsweredQuestions; } } else { - if ($diffReminder < 0) { if ($currentQuestion > $counterAnsweredQuestions) { return null; @@ -8017,6 +8025,7 @@ class Exercise $counterAnsweredQuestions = $currentQuestion + 1; } } + return $counterAnsweredQuestions; } }