diff --git a/main/exercice/exercise.class.php b/main/exercice/exercise.class.php index 1cfa82abcd..a8c1265810 100644 --- a/main/exercice/exercise.class.php +++ b/main/exercice/exercise.class.php @@ -3292,6 +3292,72 @@ class Exercise { ); return $return_array; } + /** + * Sends a notification when a user ends an examn + * + */ + function send_notification_for_questions($question_list_answers, $origin, $exe_id) { + if (api_get_course_setting('email_alert_manager_on_new_quiz') != 1 ) { + return null; + } + // Email configuration settings + $coursecode = api_get_course_id(); + $course_info = api_get_course_info(api_get_course_id()); + + $url_email = api_get_path(WEB_CODE_PATH).'exercice/exercise_show.php?'.api_get_cidreq().'&id_session='.api_get_session_id().'&id='.$exe_id.'&action=qualify'; + $user_info = UserManager::get_user_info_by_id(api_get_user_id()); + + $msg = '

'.get_lang('ExerciseAttempted').' :

+

'.get_lang('AttemptDetails').' :

+ + + + + + + + + + + + + + + + + +

'.get_lang('CourseName').'

#course#

'.get_lang('TestAttempted').'#exercise#
'.get_lang('StudentName').'#firstName# #lastName#
'.get_lang('StudentEmail').'#email#
'; + $open_question_list = null; + + $msg = str_replace("#email#", $user_info['email'],$msg); + $msg1 = str_replace("#exercise#", $this->exercise, $msg); + $msg = str_replace("#firstName#", $user_info['firstname'],$msg1); + $msg1 = str_replace("#lastName#", $user_info['lastname'],$msg); + + $msg = str_replace("#course#", $course_info['name'],$msg1); + + if ($origin != 'learnpath') { + $msg.= get_lang('ClickToCommentAndGiveFeedback').',
+ #url#'; + } + $msg1 = str_replace("#url#", $url_email, $msg); + $mail_content = $msg1; + $subject = get_lang('ExerciseAttempted'); + + $teachers = array(); + if (api_get_session_id()) { + $teachers = CourseManager::get_coach_list_from_course_code($coursecode, api_get_session_id()); + } else { + $teachers = CourseManager::get_teacher_list_from_course_code($coursecode); + } + + if (!empty($teachers)) { + foreach ($teachers as $user_id => $teacher_data) { + MessageManager::send_message_simple($user_id, $subject, $mail_content); + } + } + + } /** * Sends a notification when a user ends an examn diff --git a/main/exercice/exercise.lib.php b/main/exercice/exercise.lib.php index ede1dec93e..1293e1784e 100644 --- a/main/exercice/exercise.lib.php +++ b/main/exercice/exercise.lib.php @@ -2305,6 +2305,9 @@ function display_question_list_by_attempt($objExercise, $exe_id, $save_user_resu // Send notification .. if (!api_is_allowed_to_edit(null,true)) { + if (api_get_course_setting('email_alert_manager_on_new_quiz') == 1 ) { + $objExercise->send_notification_for_questions($question_list_answers, $origin, $exe_id); + } $objExercise->send_notification_for_open_questions($question_list_answers, $origin, $exe_id); $objExercise->send_notification_for_oral_questions($question_list_answers, $origin, $exe_id); }