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'] = '