diff --git a/main/exercice/answer.class.php b/main/exercice/answer.class.php
index 284cc199bb..3bbc8ccab1 100755
--- a/main/exercice/answer.class.php
+++ b/main/exercice/answer.class.php
@@ -71,7 +71,6 @@ class Answer
$objExercise = new Exercise($this->course_id);
$exerciseId = isset($_REQUEST['exerciseId']) ? $_REQUEST['exerciseId'] : null;
$objExercise->read($exerciseId);
-
if ($objExercise->random_answers == '1') {
$this->readOrderedBy('rand()', '');// randomize answers
} else {
diff --git a/main/exercice/exercise.class.php b/main/exercice/exercise.class.php
index d223b2e82a..b3a9bf72dd 100755
--- a/main/exercice/exercise.class.php
+++ b/main/exercice/exercise.class.php
@@ -1,6 +1,8 @@
display_category_name = $object->display_category_name;
$this->pass_percentage = $object->pass_percentage;
$this->sessionId = $object->session_id;
-
$this->is_gradebook_locked = api_resource_is_locked_by_gradebook($id, LINK_EXERCISE);
-
$this->review_answers = (isset($object->review_answers) && $object->review_answers == 1) ? true : false;
$this->globalCategoryId = isset($object->global_category_id) ? $object->global_category_id : null;
$this->questionSelectionType = isset($object->question_selection_type) ? $object->question_selection_type : null;
@@ -190,10 +190,10 @@ class Exercise
}
if ($object->end_time != '0000-00-00 00:00:00') {
- $this->end_time = $object->end_time;
+ $this->end_time = $object->end_time;
}
if ($object->start_time != '0000-00-00 00:00:00') {
- $this->start_time = $object->start_time;
+ $this->start_time = $object->start_time;
}
//control time
@@ -3757,7 +3757,16 @@ class Exercise
}
break;
case CALCULATED_ANSWER:
- $answer = $objAnswerTmp->selectAnswer($_SESSION['calculatedAnswerId'][$questionId]);
+ $calculatedAnswerId = Session::read('calculatedAnswerId');
+ $answer = '';
+ if ($calculatedAnswerId) {
+ $calculatedAnswerInfo = Session::read('calculatedAnswerInfo');
+ if (isset($calculatedAnswerInfo[$questionId])) {
+ $answer = $calculatedAnswerInfo[$questionId];
+ } else {
+ $answer = $objAnswerTmp->selectAnswer($calculatedAnswerId[$questionId]);
+ }
+ }
$preArray = explode('@@', $answer);
$last = count($preArray) - 1;
$answer = '';
@@ -3823,6 +3832,16 @@ class Exercise
}
$answer = '';
$realCorrectTags = $correctTags;
+
+ if ($from_database && empty($calculatedAnswerId)) {
+ $queryfill = "SELECT answer FROM ".$TBL_TRACK_ATTEMPT."
+ WHERE
+ exe_id = '".$exeId."' AND
+ question_id= ".intval($questionId)."";
+ $resfill = Database::query($queryfill);
+ $answer = Database::result($resfill, 0, 'answer');
+ }
+
for ($i = 0; $i < count($realCorrectTags); $i++) {
if ($i == 0) {
$answer .= $realText[0];
diff --git a/main/exercice/exercise_result.php b/main/exercice/exercise_result.php
index 0c068613d9..d37aba233b 100755
--- a/main/exercice/exercise_result.php
+++ b/main/exercice/exercise_result.php
@@ -165,7 +165,6 @@ ExerciseLib::exercise_time_control_delete(
$learnpath_id,
$learnpath_item_id
);
-
ExerciseLib::delete_chat_exercise_session($exe_id);
if ($origin != 'learnpath') {
@@ -180,6 +179,8 @@ if ($origin != 'learnpath') {
if (api_is_allowed_to_session_edit()) {
Session::erase('objExercise');
Session::erase('exe_id');
+ Session::erase('calculatedAnswerId');
+ Session::erase('calculatedAnswerInfo');
}
Display::display_footer();
} else {
@@ -190,6 +191,8 @@ if ($origin != 'learnpath') {
if (api_is_allowed_to_session_edit()) {
Session::erase('objExercise');
Session::erase('exe_id');
+ Session::erase('calculatedAnswerId');
+ Session::erase('calculatedAnswerInfo');
}
// Record the results in the learning path, using the SCORM interface (API)
diff --git a/main/exercice/exercise_show.php b/main/exercice/exercise_show.php
index bd929c4bb4..6db1c27e3e 100755
--- a/main/exercice/exercise_show.php
+++ b/main/exercice/exercise_show.php
@@ -1,6 +1,8 @@
"exercise.php?".api_get_cidreq(),"name" => get_lang('Exercises'));
$interbreadcrumb[]= array("url" => "overview.php?exerciseId=".$exercise_id.'&'.api_get_cidreq(),"name" => $objExercise->name);
-$interbreadcrumb[]= array("url" => "#","name" => get_lang('Result'));
+$interbreadcrumb[]= array("url" => "#", "name" => get_lang('Result'));
$this_section = SECTION_COURSES;
@@ -300,7 +300,6 @@ foreach ($questionList as $questionId) {
$counter = 1;
$exercise_content = null;
$category_list = array();
-
$useAdvancedEditor = true;
if (!empty($maxEditors) && count($questionList) > $maxEditors) {
@@ -313,10 +312,10 @@ foreach ($questionList as $questionId) {
// destruction of the Question object
unset($objQuestionTmp);
- // creates a temporary Question object
- $objQuestionTmp = Question::read($questionId);
- $questionWeighting = $objQuestionTmp->selectWeighting();
- $answerType = $objQuestionTmp->selectType();
+ // creates a temporary Question object
+ $objQuestionTmp = Question::read($questionId);
+ $questionWeighting = $objQuestionTmp->selectWeighting();
+ $answerType = $objQuestionTmp->selectType();
// Start buffer
ob_start();
@@ -383,6 +382,20 @@ foreach ($questionList as $questionId) {
);
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
+ } elseif ($answerType == CALCULATED_ANSWER) {
+ $question_result = $objExercise->manage_answer(
+ $id,
+ $questionId,
+ $choice,
+ 'exercise_show',
+ array(),
+ false,
+ true,
+ $show_results,
+ $objExercise->selectPropagateNeg()
+ );
+ $questionScore = $question_result['score'];
+ $totalScore += $question_result['score'];
} elseif ($answerType == GLOBAL_MULTIPLE_ANSWER) {
$question_result = $objExercise->manage_answer(
$id,
@@ -610,7 +623,8 @@ foreach ($questionList as $questionId) {
}
//showing the score
- $queryfree = "select marks from ".$TBL_TRACK_ATTEMPT." WHERE exe_id = ".intval($id)." and question_id= ".intval($questionId)."";
+ $queryfree = "SELECT marks FROM ".$TBL_TRACK_ATTEMPT."
+ WHERE exe_id = ".intval($id)." and question_id= ".intval($questionId)."";
$resfree = Database::query($queryfree);
$questionScore= Database::result($resfree,0,"marks");
$totalScore+=$questionScore;
@@ -675,7 +689,13 @@ foreach ($questionList as $questionId) {
}
}
echo '
';
- echo Display::url($url_name, 'javascript://', array('class' => 'btn', 'onclick'=>"showfck('".$name."', '".$marksname."');"));
+ echo Display::url(
+ $url_name,
+ 'javascript://',
+ array(
+ 'class' => 'btn btn-default',
+ 'onclick' => "showfck('".$name."', '".$marksname."');")
+ );
echo '
';
echo '