diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php index 2400243af5..4039f3a618 100644 --- a/main/inc/lib/exercise.lib.php +++ b/main/inc/lib/exercise.lib.php @@ -5840,7 +5840,7 @@ EOT; return $total; } - public static function parseContent($content, $stats, $exercise, $trackInfo) + public static function parseContent($content, $stats, $exercise, $trackInfo, $currentUserId = 0) { $wrongAnswersCount = $stats['failed_answers_count']; $attemptDate = substr($trackInfo['exe_date'], 0, 10); @@ -5861,8 +5861,10 @@ EOT; $content ); + $currentUserId = empty($currentUserId) ? api_get_user_id() : (int) $currentUserId; + $content = AnnouncementManager::parseContent( - api_get_user_id(), + $currentUserId, $content, api_get_course_id(), api_get_session_id() @@ -5878,15 +5880,14 @@ EOT; return false; } + $studentId = $exercise_stat_info['exe_user_id']; $exerciseExtraFieldValue = new ExtraFieldValue('exercise'); - //$attemptCountToSend = $attempt_count++; $wrongAnswersCount = $stats['failed_answers_count']; $exercisePassed = $stats['exercise_passed']; $countPendingQuestions = $stats['count_pending_questions']; // If there are no pending questions (Open questions). if (0 === $countPendingQuestions) { - //$totalScore = self::show_score($total_score, $max_score, false, true); $subject = sprintf(get_lang('WrongAttemptXInCourseX'), $attemptCountToSend, $courseInfo['title']); if ($exercisePassed) { $subject = sprintf(get_lang('ExerciseValidationInCourseX'), $courseInfo['title']); @@ -5906,7 +5907,7 @@ EOT; if ($extraFieldData && isset($extraFieldData['value'])) { $content = $extraFieldData['value']; - $content = self::parseContent($content, $stats, $objExercise, $exercise_stat_info); + $content = self::parseContent($content, $stats, $objExercise, $exercise_stat_info, $studentId); if (false === $exercisePassed) { if (0 !== $wrongAnswersCount) { $content .= $stats['failed_answers_html']; @@ -5917,11 +5918,6 @@ EOT; MessageManager::send_message($currentUserId, $subject, $content); } - // Subject for notifications - /*$subject = sprintf(get_lang('WrongAttemptXInCourseX'), $attemptCountToSend, $courseInfo['title']); - if ($exercisePassed) { - $subject = sprintf(get_lang('ExerciseValidationInCourseX'), $courseInfo['title']); - }*/ $extraFieldData = $exerciseExtraFieldValue->get_values_by_handler_and_field_variable( $objExercise->iId, 'notifications' @@ -5984,7 +5980,8 @@ EOT; $pdfExtraData['value'], $stats, $objExercise, - $exercise_stat_info + $exercise_stat_info, + $studentId ); @$pdf = new PDF(); @@ -6021,7 +6018,8 @@ EOT; $content, $stats, $objExercise, - $exercise_stat_info + $exercise_stat_info, + $studentId ); foreach ($emailList as $email) { if (empty($email)) {