@@ -2367,6 +2367,49 @@ function send_reminder_users_without_publication($task_data)
23672367 return $ mails_sent_to ;
23682368}
23692369
2370+ /**
2371+ * @param int $courseId The course ID
2372+ * @param int $workId The work ID
2373+ * @param int $sessionId Optional. The session ID
2374+ */
2375+ function sendEmailToDrhOnHomeworkCreation ($ courseId , $ workId , $ sessionId = 0 )
2376+ {
2377+ $ courseInfo = api_get_course_info_by_id ($ courseId );
2378+ $ assignment = get_work_assignment_by_id ($ workId , $ courseId );
2379+ $ work = get_work_data_by_id ($ workId , $ courseId , $ sessionId );
2380+ $ workInfo = array_merge ($ assignment , $ work );
2381+
2382+ if (empty ($ session_id )) {
2383+ $ students = CourseManager::get_student_list_from_course_code ($ courseInfo ['code ' ]);
2384+ } else {
2385+ $ students = CourseManager::get_student_list_from_course_code ($ courseInfo ['code ' ], true , $ sessionId );
2386+ }
2387+
2388+ $ bodyView = new Template (null , false , false , false , false , false );
2389+
2390+ foreach ($ students as $ student ) {
2391+ $ hrms = UserManager::getDrhListFromUser ($ student ['id ' ]);
2392+
2393+ foreach ($ hrms as $ hrm ) {
2394+ $ hrmName = api_get_person_name ($ hrm ['firstname ' ], $ hrm ['lastname ' ], null , PERSON_NAME_EMAIL_ADDRESS );
2395+
2396+ $ bodyView ->assign ('hrm_name ' , $ hrmName );
2397+ $ bodyView ->assign ('student_name ' , api_get_person_name ($ student ["firstname " ], $ student ["lastname " ]));
2398+ $ bodyView ->assign ('course ' , $ courseInfo );
2399+ $ bodyView ->assign ('course_link ' , api_get_course_url ($ courseInfo ['code ' ], $ sessionId ));
2400+ $ bodyView ->assign ('work ' , $ workInfo );
2401+
2402+ $ bodyTemplate = $ bodyView ->get_template ('mail/new_work_alert_hrm.tpl ' );
2403+
2404+ MessageManager::send_message (
2405+ $ hrm ['id ' ],
2406+ get_lang ('HrmNewWorkAlertSubject ' ),
2407+ $ bodyView ->fetch ($ bodyTemplate )
2408+ );
2409+ }
2410+ }
2411+ }
2412+
23702413/**
23712414 * Sends an email to the students of a course when a homework is created
23722415 *
@@ -4113,12 +4156,23 @@ function addDir($formValues, $user_id, $courseInfo, $groupId, $session_id)
41134156 $ workFieldValue = new ExtraFieldValue ('work ' );
41144157 $ workFieldValue ->saveFieldValues ($ formValues );
41154158
4116- if (api_get_course_setting ('email_alert_students_on_new_homework ' ) == 1 ) {
4117- sendEmailToStudentsOnHomeworkCreation (
4118- $ course_id ,
4119- $ session ? $ session ->getId () : 0 ,
4120- $ workTable ->getIid ()
4121- );
4159+ $ sendEmailAlert = api_get_course_setting ('email_alert_students_on_new_homework ' );
4160+
4161+ switch ($ sendEmailAlert ) {
4162+ case 1 :
4163+ sendEmailToStudentsOnHomeworkCreation (
4164+ $ course_id ,
4165+ $ session ? $ session ->getId () : 0 ,
4166+ $ workTable ->getIid ()
4167+ );
4168+ break ;
4169+ case 2 :
4170+ sendEmailToDrhOnHomeworkCreation (
4171+ $ course_id ,
4172+ $ workTable ->getIid (),
4173+ $ session ? $ session ->getId () : 0
4174+ );
4175+ break ;
41224176 }
41234177
41244178 return $ workTable ->getIid ();
0 commit comments