From bfb30e0e020d45641eda6dcacd575a0799d8e8ef Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 15 Dec 2020 11:41:05 +0100 Subject: [PATCH] Admin: Add config send_only_messages_to_teachers BT#18174 Show only my teachers when creating a new message as a student. --- main/install/configuration.dist.php | 3 ++ main/messages/new_message.php | 49 ++++++++++++++++++++++------- 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php index 4005727c75..d445596334 100755 --- a/main/install/configuration.dist.php +++ b/main/install/configuration.dist.php @@ -1793,6 +1793,9 @@ $_configuration['auth_password_links'] = [ ] ];*/ +// For a student: Shows only the list of teachers from my courses in the Chamilo inbox. +// $_configuration['send_only_messages_to_teachers'] = true; + // KEEP THIS AT THE END // -------- Custom DB changes // Add user activation by confirmation email diff --git a/main/messages/new_message.php b/main/messages/new_message.php index 84882fc093..9365581b33 100755 --- a/main/messages/new_message.php +++ b/main/messages/new_message.php @@ -114,6 +114,11 @@ function manageForm($default, $select_from_user_list = null, $sent_to = '', $tpl $group_id = isset($_REQUEST['group_id']) ? (int) $_REQUEST['group_id'] : null; $message_id = isset($_GET['message_id']) ? (int) $_GET['message_id'] : null; + $onlyTeachers = false; + if (api_get_configuration_value('send_only_messages_to_teachers') && api_is_student()) { + $onlyTeachers = true; + } + $form = new FormValidator( 'compose_message', null, @@ -145,18 +150,38 @@ function manageForm($default, $select_from_user_list = null, $sent_to = '', $tpl $form->addLabel(get_lang('SendMessageTo'), $sent_to); } if (empty($default['users'])) { - //fb select - $form->addElement( - 'select_ajax', - 'users', - get_lang('SendMessageTo'), - [], - [ - 'multiple' => 'multiple', - 'delay' => 1000, - 'url' => api_get_path(WEB_AJAX_PATH).'message.ajax.php?a=find_users', - ] - ); + if ($onlyTeachers) { + $courses = CourseManager::get_courses_list_by_user_id(api_get_user_id()); + $teachers = []; + foreach ($courses as $course) { + $courseTeachers = CourseManager::getTeachersFromCourse($course['real_id']); + if ($courseTeachers) { + foreach ($courseTeachers as $teacher) { + $teachers[$teacher['id']] = $teacher['fullname']; + } + } + } + $form->addSelect( + 'users', + get_lang('SendMessageTo'), + $teachers, + [ + 'multiple' => 'multiple' + ] + ); + } else { + $form->addElement( + 'select_ajax', + 'users', + get_lang('SendMessageTo'), + [], + [ + 'multiple' => 'multiple', + 'delay' => 1000, + 'url' => api_get_path(WEB_AJAX_PATH).'message.ajax.php?a=find_users', + ] + ); + } } else { $form->addElement('hidden', 'hidden_user', $default['users'][0], ['id' => 'hidden_user']); }