diff --git a/main/inc/lib/message.lib.php b/main/inc/lib/message.lib.php index 75b23f8c23..047a8766a4 100755 --- a/main/inc/lib/message.lib.php +++ b/main/inc/lib/message.lib.php @@ -140,9 +140,9 @@ class MessageManager msg_status as col4 FROM $table_message WHERE - user_receiver_id=".api_get_user_id()." AND - msg_status IN (".MESSAGE_STATUS_NEW.", ".MESSAGE_STATUS_UNREAD.") - $keywordCondition + user_receiver_id=".api_get_user_id()." AND + msg_status IN (".MESSAGE_STATUS_NEW.", ".MESSAGE_STATUS_UNREAD.") + $keywordCondition ORDER BY col$column $direction LIMIT $from, $number_of_items"; @@ -150,6 +150,7 @@ class MessageManager $i = 0; $message_list = array(); + $newMessageLink = api_get_path(WEB_CODE_PATH).'messages/new_message.php'; while ($result = Database::fetch_row($sql_result)) { $message[0] = $result[0]; $result[2] = Security::remove_XSS($result[2], STUDENT, true); @@ -164,11 +165,24 @@ class MessageManager if (isset($_GET['f']) && $_GET['f'] == 'social') { $link = '&f=social'; } + $userInfo = api_get_user_info($result[1]); $message[1] = ''.$result[2].'
'.$userInfo['complete_name']; - $message[3] = ''. - Display::return_icon('message_reply.png', get_lang('ReplyToMessage')).''. - '  '.Display::return_icon('delete.png', get_lang('DeleteMessage')).''; + + $message[3] = + Display::url( + Display::returnFontAwesomeIcon('reply', 2), + $newMessageLink.'?re_id='.$result[0].$link, + ['title' => get_lang('ReplyToMessage') ] + ). + '  '. + Display::url( + Display::returnFontAwesomeIcon('share', 2), + $newMessageLink.'?forward_id='.$result[0].$link, + ['title' => get_lang('ForwardMessage') ] + ). + '  '. + Display::returnFontAwesomeIcon('trash', 2).''; $message[2] = api_convert_and_format_date($result[3], DATE_TIME_FORMAT_LONG); //date stays the same foreach ($message as $key => $value) { @@ -257,6 +271,7 @@ class MessageManager * @param int $topic_id (optional) the default value is the current user_id * @param int $sender_id * @param bool $directMessage + * @param int $forwardId * * @return bool */ @@ -271,7 +286,8 @@ class MessageManager $edit_message_id = 0, $topic_id = 0, $sender_id = null, - $directMessage = false + $directMessage = false, + $forwardId = 0 ) { $table_message = Database::get_main_table(TABLE_MESSAGE); $group_id = intval($group_id); @@ -330,7 +346,6 @@ class MessageManager } $inbox_last_id = null; - //Just in case we replace the and \n and \n\r while saving in the DB //$content = str_replace(array("\n", "\n\r"), '
', $content); $now = api_get_utc_datetime(); @@ -677,7 +692,11 @@ class MessageManager // User-reserved directory where photos have to be placed.* $userGroup = new UserGroup(); if (!empty($group_id)) { - $path_user_info = $userGroup->get_group_picture_path_by_id($group_id, 'system', true); + $path_user_info = $userGroup->get_group_picture_path_by_id( + $group_id, + 'system', + true + ); } else { $path_user_info['dir'] = UserManager::getUserPathById($message_user_id, 'system'); } @@ -766,7 +785,8 @@ class MessageManager } $table_message = Database::get_main_table(TABLE_MESSAGE); - $sql = "UPDATE $table_message SET msg_status = '".MESSAGE_STATUS_NEW."' + $sql = "UPDATE $table_message SET + msg_status = '".MESSAGE_STATUS_NEW."' WHERE msg_status <> ".MESSAGE_STATUS_OUTBOX." AND user_receiver_id=".intval($user_id)." AND @@ -1009,8 +1029,8 @@ class MessageManager $message[1] = ''.$userInfo['complete_name'].''; $message[2] = ''.str_replace("\\", "", $result[2]).''; $message[3] = api_convert_and_format_date($result[3], DATE_TIME_FORMAT_LONG); //date stays the same - $message[4] = '  '. - Display::return_icon('delete.png', get_lang('DeleteMessage')).''; + $message[4] = '  '. + Display::returnFontAwesomeIcon('trash', 2).''; } else { $link = ''; if (isset($_GET['f']) && $_GET['f'] == 'social') { @@ -1018,8 +1038,8 @@ class MessageManager } $message[1] = ''.$result[2].'
'.$userInfo['complete_name']; $message[2] = api_convert_and_format_date($result[3], DATE_TIME_FORMAT_LONG); //date stays the same - $message[3] = ''. - Display::return_icon('delete.png', get_lang('DeleteMessage')).''; + $message[3] = ''. + Display::returnFontAwesomeIcon('trash', 2).''; } foreach ($message as $key => $value) { @@ -1041,7 +1061,6 @@ class MessageManager public static function get_number_of_messages_sent() { $table_message = Database::get_main_table(TABLE_MESSAGE); - $keyword = Session::read('message_sent_search_keyword'); $keywordCondition = ''; if (!empty($keyword)) { @@ -1248,7 +1267,6 @@ class MessageManager } $array_html = array(); - foreach ($new_topics as $index => $topic) { $html = ''; // topics @@ -1720,7 +1738,7 @@ class MessageManager if (isset($_REQUEST['action'])) { switch ($_REQUEST['action']) { - case 'mark_as_unread' : + case 'mark_as_unread': if (is_array($_POST['id'])) { foreach ($_POST['id'] as $index => $message_id) { self::update_message_status( @@ -1736,23 +1754,39 @@ class MessageManager false ); break; - case 'mark_as_read' : + case 'mark_as_read': if (is_array($_POST['id'])) { foreach ($_POST['id'] as $index => $message_id) { - self::update_message_status(api_get_user_id(), $message_id, MESSAGE_STATUS_NEW); + self::update_message_status( + api_get_user_id(), + $message_id, + MESSAGE_STATUS_NEW + ); } } - $html .= Display::return_message(api_xml_http_response_encode($success_read), 'normal', false); + $html .= Display::return_message( + api_xml_http_response_encode($success_read), + 'normal', + false + ); break; - case 'delete' : + case 'delete': foreach ($_POST['id'] as $index => $message_id) { self::delete_message_by_user_receiver(api_get_user_id(), $message_id); } - $html .= Display::return_message(api_xml_http_response_encode($success), 'normal', false); + $html .= Display::return_message( + api_xml_http_response_encode($success), + 'normal', + false + ); break; - case 'deleteone' : + case 'deleteone': self::delete_message_by_user_receiver(api_get_user_id(), $_GET['id']); - $html .= Display::return_message(api_xml_http_response_encode($success), 'confirmation', false); + $html .= Display::return_message( + api_xml_http_response_encode($success), + 'confirmation', + false + ); break; } } @@ -1769,7 +1803,7 @@ class MessageManager $table->set_header(0, '', false, array('style' => 'width:15px;')); $table->set_header(1, get_lang('Messages'), false); $table->set_header(2, get_lang('Date'), true, array('style' => 'width:180px;')); - $table->set_header(3, get_lang('Modify'), false, array('style' => 'width:70px;')); + $table->set_header(3, get_lang('Modify'), false, array('style' => 'width:120px;')); if (isset($_REQUEST['f']) && $_REQUEST['f'] == 'social') { $parameters['f'] = 'social'; @@ -1801,7 +1835,6 @@ class MessageManager } Session::write('message_sent_search_keyword', $keyword); - $success = get_lang('SelectedMessagesDeleted').' 
'.get_lang('BackToOutbox').''; $html = null; @@ -1811,7 +1844,10 @@ class MessageManager $number_of_selected_messages = count($_POST['id']); if ($number_of_selected_messages != 0) { foreach ($_POST['id'] as $index => $message_id) { - self::delete_message_by_user_receiver(api_get_user_id(), $message_id); + self::delete_message_by_user_receiver( + api_get_user_id(), + $message_id + ); } } $html .= Display::return_message(api_xml_http_response_encode($success), 'normal', false); @@ -1837,9 +1873,8 @@ class MessageManager $parameters['f'] = isset($_GET['f']) && $_GET['f'] == 'social' ? 'social' : null; $table->set_additional_parameters($parameters); $table->set_header(0, '', false, array('style' => 'width:15px;')); - $table->set_header(1, get_lang('Messages'), false); - $table->set_header(2, get_lang('Date'), true, array('style' => 'width:160px;')); + $table->set_header(2, get_lang('Date'), true, array('style' => 'width:180px;')); $table->set_header(3, get_lang('Modify'), false, array('style' => 'width:70px;')); $table->set_form_actions(array('delete' => get_lang('DeleteSelectedMessages'))); diff --git a/main/lang/english/trad4all.inc.php b/main/lang/english/trad4all.inc.php index ed8b25e5df..c891beafbb 100644 --- a/main/lang/english/trad4all.inc.php +++ b/main/lang/english/trad4all.inc.php @@ -8041,4 +8041,7 @@ Sincerely, ((author_first_name)), ((author_last_name)) ((portal_name))"; $SendCertificateNotifications = "Send certificate notification to all users"; +$MailSubjectForwardShort = "Fwd"; +$ForwardedMessage = "Forwarded message"; +$ForwardMessage = "Forward message"; ?> \ No newline at end of file diff --git a/main/messages/inbox.php b/main/messages/inbox.php index c191b113b4..7829a2799e 100755 --- a/main/messages/inbox.php +++ b/main/messages/inbox.php @@ -2,7 +2,7 @@ /* For licensing terms, see /license.txt */ /** - * @package chamilo.messages + * @package chamilo.messages */ $cidReset = true; @@ -15,7 +15,9 @@ if (isset($_GET['messages_page_nr'])) { if ($_REQUEST['f'] == 'social') { $social_link = '?f=social'; } - if (api_get_setting('allow_social_tool') == 'true' && api_get_setting('allow_message_tool') == 'true') { + if (api_get_setting('allow_social_tool') == 'true' && + api_get_setting('allow_message_tool') == 'true' + ) { header('Location:inbox.php'.$social_link); exit; } @@ -74,7 +76,10 @@ if (isset($_GET['form_reply']) || isset($_GET['form_delete'])) { } } elseif (trim($info_delete[0]) == 'delete') { for ($i = 1; $i <= $count_delete; $i++) { - MessageManager::delete_message_by_user_receiver(api_get_user_id(), $info_delete[$i]); + MessageManager::delete_message_by_user_receiver( + api_get_user_id(), + $info_delete[$i] + ); } $message_box = get_lang('SelectedMessagesDeleted'); $show_message .= Display::return_message(api_xml_http_response_encode($message_box)); @@ -92,7 +97,10 @@ if (isset($_GET['f']) && $_GET['f'] == 'social') { $interbreadcrumb[] = array('url' => '#', 'name' => get_lang('Inbox')); } else { $this_section = SECTION_MYPROFILE; - $interbreadcrumb[] = array('url' => api_get_path(WEB_PATH).'main/auth/profile.php', 'name' => get_lang('Profile')); + $interbreadcrumb[] = array( + 'url' => api_get_path(WEB_PATH).'main/auth/profile.php', + 'name' => get_lang('Profile') + ); } $social_parameter = ''; @@ -103,7 +111,9 @@ if ((isset($_GET['f']) && $_GET['f'] === 'social') || $social_parameter = '?f=social'; } else { //Comes from normal profile - if (api_get_setting('allow_social_tool') === 'true' && api_get_setting('allow_message_tool') === 'true') { + if (api_get_setting('allow_social_tool') === 'true' && + api_get_setting('allow_message_tool') === 'true' + ) { $actions .= ''. Display::return_icon('shared_profile.png', get_lang('ViewSharedProfile')).''; } @@ -151,7 +161,10 @@ if (!isset($_GET['del_msg'])) { for ($i = 0; $i < $num_msg; $i++) { if ($_POST[$i]) { //the user_id was necessary to delete a message?? - $show_message .= MessageManager::delete_message_by_user_receiver(api_get_user_id(), $_POST['_'.$i]); + $show_message .= MessageManager::delete_message_by_user_receiver( + api_get_user_id(), + $_POST['_'.$i] + ); } } $social_right_content .= MessageManager::inbox_display(); diff --git a/main/messages/new_message.php b/main/messages/new_message.php index af5bc1188e..3ac6b60e04 100755 --- a/main/messages/new_message.php +++ b/main/messages/new_message.php @@ -70,7 +70,7 @@ function show_compose_to_any($user_id) { $default['user_list'] = 0; $online_user_list = null; - $html = manage_form($default, $online_user_list); + $html = manageForm($default, $online_user_list); return $html; } @@ -90,7 +90,7 @@ function show_compose_reply_to_message($message_id, $receiver_id) } $userInfo = api_get_user_info($row['user_sender_id']); $default['users'] = array($row['user_sender_id']); - $html = manage_form($default, null, $userInfo['complete_name']); + $html = manageForm($default, null, $userInfo['complete_name']); return $html; } @@ -101,12 +101,18 @@ function show_compose_to_user($receiver_id) $html = get_lang('To').': '.$userInfo['complete_name'].''; $default['title'] = api_xml_http_response_encode(get_lang('EnterTitle')); $default['users'] = array($receiver_id); - $html .= manage_form($default); + $html .= manageForm($default); return $html; } -function manage_form($default, $select_from_user_list = null, $sent_to = null) +/** + * @param $default + * @param null $select_from_user_list + * @param null $sent_to + * @return string + */ +function manageForm($default, $select_from_user_list = null, $sent_to = null) { $group_id = isset($_REQUEST['group_id']) ? intval($_REQUEST['group_id']) : null; $message_id = isset($_GET['message_id']) ? intval($_GET['message_id']) : null; @@ -187,6 +193,21 @@ function manage_form($default, $select_from_user_list = null, $sent_to = null) ); } + if (isset($_GET['forward_id'])) { + $forwardId = (int) $_GET['forward_id']; + $message_reply_info = MessageManager::get_message_by_id($forwardId); + $default['title'] = '['.get_lang('MailSubjectForwardShort').": ".$message_reply_info['title'].']'; + $form->addHidden('forward_id', $forwardId); + $form->addHidden('save_form', 'save_form'); + $receiverInfo = api_get_user_info($message_reply_info['user_receiver_id']); + + $forwardMessage = '---------- '.get_lang('ForwardedMessage').' ---------'.'
'; + $forwardMessage .= get_lang('Date').': '.api_get_local_time($message_reply_info['send_date']).'
'; + $forwardMessage .= get_lang('Subject').': '.$message_reply_info['title'].'
'; + $forwardMessage .= get_lang('To').': '.$receiverInfo['email'].'
'; + $default['content'] = '


'.$forwardMessage.'
'.Security::filter_terms($message_reply_info['content']); + } + if (empty($group_id)) { $form->addElement( 'label', @@ -233,6 +254,8 @@ function manage_form($default, $select_from_user_list = null, $sent_to = null) $content = $default['content']; $group_id = isset($default['group_id']) ? $default['group_id'] : null; $parent_id = isset($default['parent_id']) ? $default['parent_id'] : null; + $forwardId = isset($_POST['forward_id']) ? $_POST['forward_id'] : false; + if (is_array($user_list) && count($user_list) > 0) { //all is well, send the message foreach ($user_list as $userId) { @@ -243,7 +266,12 @@ function manage_form($default, $select_from_user_list = null, $sent_to = null) $_FILES, $file_comments, $group_id, - $parent_id + $parent_id, + 0, + 0, + null, + false, + $forwardId ); if ($res) { $userInfo = api_get_user_info($userId); @@ -356,8 +384,8 @@ if (!isset($_POST['compose'])) { $default['content'] = $_POST['content']; // comes from a reply button - if (isset($_GET['re_id'])) { - $social_right_content .= manage_form($default); + if (isset($_GET['re_id']) || isset($_GET['forward_id'])) { + $social_right_content .= manageForm($default); } else { // post if ($restrict) { @@ -369,7 +397,7 @@ if (!isset($_POST['compose'])) { if (isset($_POST['hidden_user'])) { $default['users'] = array($_POST['hidden_user']); } - $social_right_content .= manage_form($default); + $social_right_content .= manageForm($default); } else { $social_right_content .= Display::return_message(get_lang('ErrorSendingMessage'), 'error'); }