|
|
|
|
@ -49,49 +49,40 @@ class MessageManager |
|
|
|
|
/** |
|
|
|
|
* Gets the total number of messages, used for the inbox sortable table. |
|
|
|
|
* |
|
|
|
|
* @param bool $unread |
|
|
|
|
* @param bool $listRead |
|
|
|
|
* @param array $params |
|
|
|
|
* |
|
|
|
|
* @return int |
|
|
|
|
*/ |
|
|
|
|
public static function getNumberOfMessages($unread = false, $listRead = false) |
|
|
|
|
public static function getNumberOfMessages($params = []) |
|
|
|
|
{ |
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$list = null; |
|
|
|
|
if ($unread) { |
|
|
|
|
$condition_msg_status = ' msg_status = '.MESSAGE_STATUS_UNREAD.' '; |
|
|
|
|
} else { |
|
|
|
|
$condition_msg_status = ' msg_status IN('.MESSAGE_STATUS_NEW.','.MESSAGE_STATUS_UNREAD.') '; |
|
|
|
|
$messageStatus = [MESSAGE_STATUS_NEW, MESSAGE_STATUS_UNREAD]; |
|
|
|
|
if (isset($params['message_status']) && !empty($params['message_status'])) { |
|
|
|
|
$messageStatus = $params['message_status']; |
|
|
|
|
} |
|
|
|
|
$messageStatus = array_map('intval', $messageStatus); |
|
|
|
|
$messageStatusCondition = implode("','", $messageStatus); |
|
|
|
|
|
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$keyword = isset($params['keyword']) ? $params['keyword'] : ''; |
|
|
|
|
|
|
|
|
|
$keyword = Session::read('message_search_keyword'); |
|
|
|
|
$keywordCondition = ''; |
|
|
|
|
if (!empty($keyword)) { |
|
|
|
|
$keyword = Database::escape_string($keyword); |
|
|
|
|
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') "; |
|
|
|
|
} |
|
|
|
|
if ($listRead) { |
|
|
|
|
$sql = "SELECT * "; |
|
|
|
|
} else { |
|
|
|
|
$sql = "SELECT COUNT(id) as number_messages "; |
|
|
|
|
} |
|
|
|
|
$sql .= " FROM $table |
|
|
|
|
WHERE $condition_msg_status AND |
|
|
|
|
user_receiver_id=".api_get_user_id()." |
|
|
|
|
|
|
|
|
|
$sql = "SELECT COUNT(id) as number_messages |
|
|
|
|
FROM $table |
|
|
|
|
WHERE |
|
|
|
|
msg_status IN ('$messageStatusCondition') AND |
|
|
|
|
user_receiver_id = ".api_get_user_id()." |
|
|
|
|
$keywordCondition |
|
|
|
|
"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
if ($listRead) { |
|
|
|
|
while ($row = Database::fetch_array($result, 'ASSOC')) { |
|
|
|
|
$list[] = $row; |
|
|
|
|
} |
|
|
|
|
$result = Database::fetch_array($result); |
|
|
|
|
|
|
|
|
|
return $list; |
|
|
|
|
} else { |
|
|
|
|
$count = Database::fetch_array($result); |
|
|
|
|
if ($result) { |
|
|
|
|
return (int) $count['number_messages']; |
|
|
|
|
} |
|
|
|
|
if ($result) { |
|
|
|
|
return (int) $result['number_messages']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
@ -101,23 +92,23 @@ class MessageManager |
|
|
|
|
* Gets information about some messages, used for the inbox sortable table. |
|
|
|
|
* |
|
|
|
|
* @param int $from |
|
|
|
|
* @param int $number_of_items |
|
|
|
|
* @param int $numberOfItems |
|
|
|
|
* @param string $column |
|
|
|
|
* @param string $direction |
|
|
|
|
* @param int $userId |
|
|
|
|
* @param array $extraParams |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public static function get_message_data( |
|
|
|
|
public static function getMessageData( |
|
|
|
|
$from, |
|
|
|
|
$number_of_items, |
|
|
|
|
$numberOfItems, |
|
|
|
|
$column, |
|
|
|
|
$direction, |
|
|
|
|
$userId = 0 |
|
|
|
|
$extraParams = [] |
|
|
|
|
) { |
|
|
|
|
$from = (int) $from; |
|
|
|
|
$number_of_items = (int) $number_of_items; |
|
|
|
|
$userId = empty($userId) ? api_get_user_id() : (int) $userId; |
|
|
|
|
$numberOfItems = (int) $numberOfItems; |
|
|
|
|
$userId = api_get_user_id(); |
|
|
|
|
|
|
|
|
|
// Forcing this order. |
|
|
|
|
if (!isset($direction)) { |
|
|
|
|
@ -134,13 +125,22 @@ class MessageManager |
|
|
|
|
$column = 2; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$keyword = Session::read('message_search_keyword'); |
|
|
|
|
$keyword = isset($extraParams['keyword']) ? $extraParams['keyword'] : ''; |
|
|
|
|
$viewUrl = isset($extraParams['view_url']) ? $extraParams['view_url'] : api_get_path(WEB_CODE_PATH).'message/view_message.php'; |
|
|
|
|
|
|
|
|
|
$keywordCondition = ''; |
|
|
|
|
if (!empty($keyword)) { |
|
|
|
|
$keyword = Database::escape_string($keyword); |
|
|
|
|
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$messageStatus = [MESSAGE_STATUS_NEW, MESSAGE_STATUS_UNREAD]; |
|
|
|
|
if (isset($extraParams['message_status']) && !empty($extraParams['message_status'])) { |
|
|
|
|
$messageStatus = $extraParams['message_status']; |
|
|
|
|
} |
|
|
|
|
$messageStatus = array_map('intval', $messageStatus); |
|
|
|
|
$messageStatusCondition = implode("','", $messageStatus); |
|
|
|
|
|
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$sql = "SELECT |
|
|
|
|
id as col0, |
|
|
|
|
@ -150,15 +150,18 @@ class MessageManager |
|
|
|
|
user_sender_id |
|
|
|
|
FROM $table |
|
|
|
|
WHERE |
|
|
|
|
user_receiver_id=".$userId." AND |
|
|
|
|
msg_status IN (".MESSAGE_STATUS_NEW.", ".MESSAGE_STATUS_UNREAD.") |
|
|
|
|
user_receiver_id = $userId AND |
|
|
|
|
msg_status IN ('$messageStatusCondition') |
|
|
|
|
$keywordCondition |
|
|
|
|
ORDER BY col$column $direction |
|
|
|
|
LIMIT $from, $number_of_items"; |
|
|
|
|
LIMIT $from, $numberOfItems"; |
|
|
|
|
|
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
$messageList = []; |
|
|
|
|
$newMessageLink = api_get_path(WEB_CODE_PATH).'messages/new_message.php'; |
|
|
|
|
|
|
|
|
|
$actions = $extraParams['actions']; |
|
|
|
|
$url = api_get_self(); |
|
|
|
|
while ($row = Database::fetch_array($result, 'ASSOC')) { |
|
|
|
|
$messageId = $row['col0']; |
|
|
|
|
$title = $row['col1']; |
|
|
|
|
@ -175,45 +178,65 @@ class MessageManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$userInfo = api_get_user_info($senderId); |
|
|
|
|
$message[3] = ''; |
|
|
|
|
if (!empty($senderId) && !empty($userInfo)) { |
|
|
|
|
$message[1] = '<img class="rounded-circle mr-2" src="'.$userInfo['avatar_small'].'"/>'; |
|
|
|
|
$message[1] = '<a '.$class.' href="'.$viewUrl.'?id='.$messageId.'">'.$title.'</a><br />'; |
|
|
|
|
$message[1] .= $userInfo['complete_name_with_username']; |
|
|
|
|
|
|
|
|
|
$message[2] = '<a '.$class.' href="view_message.php?id='.$messageId.'">'.$title.'</a>'; |
|
|
|
|
$message[4] = '<div class="btn-group" role="group">'. |
|
|
|
|
Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('reply', 'sm'), |
|
|
|
|
$newMessageLink.'?re_id='.$messageId, |
|
|
|
|
['title' => get_lang('ReplyToMessage'), 'class' => 'btn btn-outline-secondary btn-sm'] |
|
|
|
|
); |
|
|
|
|
if (in_array('reply', $actions)) { |
|
|
|
|
$message[3] = |
|
|
|
|
Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('reply', 2), |
|
|
|
|
$newMessageLink.'?re_id='.$messageId, |
|
|
|
|
['title' => get_lang('ReplyToMessage')] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
$message[1] = '<img class="rounded-circle" src="'.$userInfo['avatar_small'].'"/>'; |
|
|
|
|
$message[1] = '<a '.$class.' href="'.$viewUrl.'?id='.$messageId.'">'.$title.'</a><br />'; |
|
|
|
|
$message[1] .= get_lang('UnknownUser'); |
|
|
|
|
if (in_array('reply', $actions)) { |
|
|
|
|
$message[3] = |
|
|
|
|
Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('reply', 2), |
|
|
|
|
'#', |
|
|
|
|
['title' => get_lang('ReplyToMessage')] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$message[2] = '<a '.$class.' href="view_message.php?id='.$messageId.'">'.$title.'</a>'; |
|
|
|
|
$message[0] = $messageId; |
|
|
|
|
$message[2] = api_convert_and_format_date($sendDate, DATE_TIME_FORMAT_LONG); |
|
|
|
|
|
|
|
|
|
$message[4] = '<div class="btn-group" role="group">'. |
|
|
|
|
// Actions |
|
|
|
|
if (in_array('edit', $actions)) { |
|
|
|
|
$message[3] .= |
|
|
|
|
' '. |
|
|
|
|
Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('reply', 'sm'), |
|
|
|
|
'#', |
|
|
|
|
['title' => get_lang('ReplyToMessage'), 'class' => 'btn btn-outline-secondary btn-sm'] |
|
|
|
|
Display::returnFontAwesomeIcon('pencil', 2), |
|
|
|
|
$newMessageLink.'?action=edit&id='.$messageId, |
|
|
|
|
['title' => get_lang('ForwardMessage')] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$message[0] = $messageId; |
|
|
|
|
$message[3] = api_convert_and_format_date($sendDate, DATE_TIME_FORMAT_LONG); |
|
|
|
|
$message[4] .= |
|
|
|
|
Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('share', 'sm'), |
|
|
|
|
$newMessageLink.'?forward_id='.$messageId, |
|
|
|
|
['title' => get_lang('ForwardMessage'), 'class' => 'btn btn-outline-secondary btn-sm'] |
|
|
|
|
). |
|
|
|
|
'<a class="btn btn-outline-secondary btn-sm" title="'.addslashes( |
|
|
|
|
// Actions |
|
|
|
|
if (in_array('forward', $actions)) { |
|
|
|
|
$message[3] .= |
|
|
|
|
' '. |
|
|
|
|
Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('share', 2), |
|
|
|
|
$newMessageLink.'?forward_id='.$messageId, |
|
|
|
|
['title' => get_lang('ForwardMessage')] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (in_array('delete', $actions)) { |
|
|
|
|
$message[3] .= ' <a title="'.addslashes( |
|
|
|
|
get_lang('DeleteMessage') |
|
|
|
|
).'" onclick="javascript:if(!confirm('."'".addslashes( |
|
|
|
|
api_htmlentities(get_lang('ConfirmDeleteMessage')) |
|
|
|
|
)."'".')) return false;" href="inbox.php?action=deleteone&id='.$messageId.'">'. |
|
|
|
|
Display::returnFontAwesomeIcon('trash', 'sm').'</a></div>'; |
|
|
|
|
)."'".')) return false;" href="'.$url.'?action=deleteone&id='.$messageId.'">'. |
|
|
|
|
Display::returnFontAwesomeIcon('trash', 2).'</a>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
foreach ($message as $key => $value) { |
|
|
|
|
$message[$key] = api_xml_http_response_encode($value); |
|
|
|
|
} |
|
|
|
|
@ -404,7 +427,8 @@ class MessageManager |
|
|
|
|
$forwardId = 0, |
|
|
|
|
$smsParameters = [], |
|
|
|
|
$checkCurrentAudioId = false, |
|
|
|
|
$forceTitleWhenSendingEmail = false |
|
|
|
|
$forceTitleWhenSendingEmail = false, |
|
|
|
|
$status = 0 |
|
|
|
|
) { |
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$group_id = (int) $group_id; |
|
|
|
|
@ -413,6 +437,8 @@ class MessageManager |
|
|
|
|
$editMessageId = (int) $editMessageId; |
|
|
|
|
$topic_id = (int) $topic_id; |
|
|
|
|
|
|
|
|
|
$status = empty($status) ? MESSAGE_STATUS_UNREAD : (int) $status; |
|
|
|
|
|
|
|
|
|
if (!empty($receiver_user_id)) { |
|
|
|
|
$receiverUserInfo = api_get_user_info($receiver_user_id); |
|
|
|
|
|
|
|
|
|
@ -505,7 +531,7 @@ class MessageManager |
|
|
|
|
} else { |
|
|
|
|
$params = [ |
|
|
|
|
'user_sender_id' => $user_sender_id, |
|
|
|
|
'msg_status' => MESSAGE_STATUS_UNREAD, |
|
|
|
|
'msg_status' => $status, |
|
|
|
|
'send_date' => $now, |
|
|
|
|
'title' => $subject, |
|
|
|
|
'content' => $content, |
|
|
|
|
@ -555,8 +581,8 @@ class MessageManager |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (empty($group_id)) { |
|
|
|
|
// message in outbox for user friend or group |
|
|
|
|
// Save message in the outbox for user friend or group. |
|
|
|
|
if (empty($group_id) && $status == MESSAGE_STATUS_UNREAD) { |
|
|
|
|
$params = [ |
|
|
|
|
'user_sender_id' => $user_sender_id, |
|
|
|
|
'user_receiver_id' => $receiver_user_id, |
|
|
|
|
@ -780,30 +806,32 @@ class MessageManager |
|
|
|
|
public static function delete_message_by_user_receiver($user_receiver_id, $id) |
|
|
|
|
{ |
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
if ($id != strval(intval($id))) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
$id = (int) $id; |
|
|
|
|
$user_receiver_id = (int) $user_receiver_id; |
|
|
|
|
|
|
|
|
|
if (empty($id) || empty($user_receiver_id)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM $table |
|
|
|
|
WHERE id = ".$id." AND msg_status <>".MESSAGE_STATUS_OUTBOX; |
|
|
|
|
WHERE id = $id AND msg_status <> ".MESSAGE_STATUS_OUTBOX; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
|
|
|
|
|
if (Database::num_rows($rs) > 0) { |
|
|
|
|
// delete attachment file |
|
|
|
|
// Delete attachment file. |
|
|
|
|
self::delete_message_attachment_file($id, $user_receiver_id); |
|
|
|
|
// delete message |
|
|
|
|
// Soft delete message. |
|
|
|
|
$query = "UPDATE $table |
|
|
|
|
SET msg_status = ".MESSAGE_STATUS_DELETED." |
|
|
|
|
WHERE |
|
|
|
|
user_receiver_id=".$user_receiver_id." AND |
|
|
|
|
id = ".$id; |
|
|
|
|
WHERE |
|
|
|
|
id = $id AND |
|
|
|
|
user_receiver_id = $user_receiver_id "; |
|
|
|
|
Database::query($query); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} else { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -834,7 +862,7 @@ class MessageManager |
|
|
|
|
// delete attachment file |
|
|
|
|
self::delete_message_attachment_file($id, $user_sender_id); |
|
|
|
|
// delete message |
|
|
|
|
$sql = "UPDATE $table |
|
|
|
|
$sql = "UPDATE $table |
|
|
|
|
SET msg_status = ".MESSAGE_STATUS_DELETED." |
|
|
|
|
WHERE user_sender_id='$user_sender_id' AND id='$id'"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
@ -950,12 +978,12 @@ class MessageManager |
|
|
|
|
$message_uid = (int) $message_uid; |
|
|
|
|
$table_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT); |
|
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM $table_message_attach |
|
|
|
|
$sql = "SELECT * FROM $table_message_attach |
|
|
|
|
WHERE message_id = '$message_id'"; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
while ($row = Database::fetch_array($rs)) { |
|
|
|
|
$path = $row['path']; |
|
|
|
|
$attach_id = $row['id']; |
|
|
|
|
$attach_id = (int) $row['id']; |
|
|
|
|
$new_path = $path.'_DELETED_'.$attach_id; |
|
|
|
|
|
|
|
|
|
if (!empty($group_id)) { |
|
|
|
|
@ -975,8 +1003,9 @@ class MessageManager |
|
|
|
|
$path_message_attach = $path_user_info['dir'].'message_attachments/'; |
|
|
|
|
if (is_file($path_message_attach.$path)) { |
|
|
|
|
if (rename($path_message_attach.$path, $path_message_attach.$new_path)) { |
|
|
|
|
$sql = "UPDATE $table_message_attach set path='$new_path' |
|
|
|
|
WHERE id ='$attach_id'"; |
|
|
|
|
$sql = "UPDATE $table_message_attach |
|
|
|
|
SET path = '$new_path' |
|
|
|
|
WHERE id = $attach_id "; |
|
|
|
|
Database::query($sql); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -1018,12 +1047,13 @@ class MessageManager |
|
|
|
|
*/ |
|
|
|
|
public static function get_messages_by_group($group_id) |
|
|
|
|
{ |
|
|
|
|
if ($group_id != strval(intval($group_id))) { |
|
|
|
|
$group_id = (int) $group_id; |
|
|
|
|
|
|
|
|
|
if (empty($group_id)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$group_id = intval($group_id); |
|
|
|
|
$sql = "SELECT * FROM $table |
|
|
|
|
WHERE |
|
|
|
|
group_id= $group_id AND |
|
|
|
|
@ -1050,11 +1080,13 @@ class MessageManager |
|
|
|
|
*/ |
|
|
|
|
public static function get_messages_by_group_by_message($group_id, $message_id) |
|
|
|
|
{ |
|
|
|
|
if ($group_id != strval(intval($group_id))) { |
|
|
|
|
$group_id = (int) $group_id; |
|
|
|
|
|
|
|
|
|
if (empty($group_id)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$group_id = intval($group_id); |
|
|
|
|
$sql = "SELECT * FROM $table |
|
|
|
|
WHERE |
|
|
|
|
group_id = $group_id AND |
|
|
|
|
@ -1112,7 +1144,7 @@ class MessageManager |
|
|
|
|
$sql = "SELECT * FROM $table |
|
|
|
|
WHERE |
|
|
|
|
parent_id='$parentId' AND |
|
|
|
|
msg_status NOT IN (".MESSAGE_STATUS_OUTBOX.", ".MESSAGE_STATUS_WALL_DELETE.") |
|
|
|
|
msg_status NOT IN (".MESSAGE_STATUS_OUTBOX.", ".MESSAGE_STATUS_WALL_DELETE.") |
|
|
|
|
$condition_group_id |
|
|
|
|
ORDER BY send_date DESC $condition_limit "; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
@ -1138,12 +1170,13 @@ class MessageManager |
|
|
|
|
*/ |
|
|
|
|
public static function get_message_data_sent( |
|
|
|
|
$from, |
|
|
|
|
$number_of_items, |
|
|
|
|
$numberOfItems, |
|
|
|
|
$column, |
|
|
|
|
$direction |
|
|
|
|
$direction, |
|
|
|
|
$extraParams = [] |
|
|
|
|
) { |
|
|
|
|
$from = (int) $from; |
|
|
|
|
$number_of_items = (int) $number_of_items; |
|
|
|
|
$numberOfItems = (int) $numberOfItems; |
|
|
|
|
if (!isset($direction)) { |
|
|
|
|
$column = 2; |
|
|
|
|
$direction = 'DESC'; |
|
|
|
|
@ -1159,7 +1192,7 @@ class MessageManager |
|
|
|
|
} |
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$request = api_is_xml_http_request(); |
|
|
|
|
$keyword = Session::read('message_sent_search_keyword'); |
|
|
|
|
$keyword = isset($extraParams['keyword']) ? $extraParams['keyword'] : ''; |
|
|
|
|
$keywordCondition = ''; |
|
|
|
|
if (!empty($keyword)) { |
|
|
|
|
$keyword = Database::escape_string($keyword); |
|
|
|
|
@ -1167,10 +1200,10 @@ class MessageManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT |
|
|
|
|
id as col0, |
|
|
|
|
title as col1, |
|
|
|
|
send_date as col2, |
|
|
|
|
user_receiver_id, |
|
|
|
|
id as col0, |
|
|
|
|
title as col1, |
|
|
|
|
send_date as col2, |
|
|
|
|
user_receiver_id, |
|
|
|
|
msg_status, |
|
|
|
|
user_sender_id |
|
|
|
|
FROM $table |
|
|
|
|
@ -1179,7 +1212,7 @@ class MessageManager |
|
|
|
|
msg_status = ".MESSAGE_STATUS_OUTBOX." |
|
|
|
|
$keywordCondition |
|
|
|
|
ORDER BY col$column $direction |
|
|
|
|
LIMIT $from, $number_of_items"; |
|
|
|
|
LIMIT $from, $numberOfItems"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
|
|
|
|
|
$message_list = []; |
|
|
|
|
@ -1187,7 +1220,6 @@ class MessageManager |
|
|
|
|
$messageId = $row['col0']; |
|
|
|
|
$title = $row['col1']; |
|
|
|
|
$sendDate = $row['col2']; |
|
|
|
|
$status = $row['msg_status']; |
|
|
|
|
$senderId = $row['user_sender_id']; |
|
|
|
|
|
|
|
|
|
if ($request === true) { |
|
|
|
|
@ -1214,16 +1246,14 @@ class MessageManager |
|
|
|
|
).'" onclick="delete_one_message_outbox('.$messageId.')" href="javascript:void(0)" >'. |
|
|
|
|
Display::returnFontAwesomeIcon('trash', 2).'</a>'; |
|
|
|
|
} else { |
|
|
|
|
$message[1] = '<img class="rounded-circle mr-2" src="'.$userInfo['avatar_small'].'"/>'; |
|
|
|
|
$message[1] .= $userInfo['complete_name_with_username']; |
|
|
|
|
$message[2] = '<a '.$class.' onclick="show_sent_message('.$messageId.')" href="../messages/view_message.php?id_send='.$messageId.'">'.$title.'</a>'; |
|
|
|
|
$message[3] = api_convert_and_format_date($sendDate, DATE_TIME_FORMAT_LONG); |
|
|
|
|
$message[4] = '<a class="btn btn-outline-secondary btn-sm" title="'.addslashes( |
|
|
|
|
$message[1] = '<a '.$class.' onclick="show_sent_message('.$messageId.')" href="../messages/view_message.php?id_send='.$messageId.'">'.$title.'</a><br />'.$userInfo['complete_name_with_username']; |
|
|
|
|
$message[2] = api_convert_and_format_date($sendDate, DATE_TIME_FORMAT_LONG); |
|
|
|
|
$message[3] = '<a title="'.addslashes( |
|
|
|
|
get_lang('DeleteMessage') |
|
|
|
|
).'" href="outbox.php?action=deleteone&id='.$messageId.'" onclick="javascript:if(!confirm('."'".addslashes( |
|
|
|
|
api_htmlentities(get_lang('ConfirmDeleteMessage')) |
|
|
|
|
)."'".')) return false;" >'. |
|
|
|
|
Display::returnFontAwesomeIcon('trash', 'fa-sm').'</a>'; |
|
|
|
|
Display::returnFontAwesomeIcon('trash', 2).'</a>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$message_list[] = $message; |
|
|
|
|
@ -1232,38 +1262,6 @@ class MessageManager |
|
|
|
|
return $message_list; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Gets information about number messages sent. |
|
|
|
|
* |
|
|
|
|
* @author Isaac FLores Paz <isaac.flores@dokeos.com> |
|
|
|
|
* |
|
|
|
|
* @param void |
|
|
|
|
* |
|
|
|
|
* @return int |
|
|
|
|
*/ |
|
|
|
|
public static function getNumberOfMessagesSent() |
|
|
|
|
{ |
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$keyword = Session::read('message_sent_search_keyword'); |
|
|
|
|
$keywordCondition = ''; |
|
|
|
|
if (!empty($keyword)) { |
|
|
|
|
$keyword = Database::escape_string($keyword); |
|
|
|
|
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT COUNT(id) as number_messages |
|
|
|
|
FROM $table |
|
|
|
|
WHERE |
|
|
|
|
msg_status = ".MESSAGE_STATUS_OUTBOX." AND |
|
|
|
|
user_sender_id = ".api_get_user_id()." |
|
|
|
|
$keywordCondition |
|
|
|
|
"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
$result = Database::fetch_array($result); |
|
|
|
|
|
|
|
|
|
return $result['number_messages']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* display message box in the inbox. |
|
|
|
|
* |
|
|
|
|
@ -1272,16 +1270,15 @@ class MessageManager |
|
|
|
|
* |
|
|
|
|
* @todo replace numbers with letters in the $row array pff... |
|
|
|
|
* |
|
|
|
|
* @return array the message content |
|
|
|
|
* @return string html with the message content |
|
|
|
|
*/ |
|
|
|
|
public static function showMessageBox($messageId, $source = 'inbox') |
|
|
|
|
{ |
|
|
|
|
$table = Database::get_main_table(TABLE_MESSAGE); |
|
|
|
|
$messageId = (int) $messageId; |
|
|
|
|
$currentUserId = api_get_user_id(); |
|
|
|
|
$msg = []; |
|
|
|
|
|
|
|
|
|
if ($source == 'outbox') { |
|
|
|
|
if ($source === 'outbox') { |
|
|
|
|
if (isset($messageId) && is_numeric($messageId)) { |
|
|
|
|
$query = "SELECT * FROM $table |
|
|
|
|
WHERE |
|
|
|
|
@ -1310,65 +1307,126 @@ class MessageManager |
|
|
|
|
$row = Database::fetch_array($result, 'ASSOC'); |
|
|
|
|
|
|
|
|
|
if (empty($row)) { |
|
|
|
|
return $msg; |
|
|
|
|
return ''; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$user_sender_id = $row['user_sender_id']; |
|
|
|
|
$msg['id'] = $row['id']; |
|
|
|
|
$msg['status'] = $row['msg_status']; |
|
|
|
|
$msg['user_id'] = $user_sender_id; |
|
|
|
|
|
|
|
|
|
// get file attachments by message id |
|
|
|
|
$files_attachments = self::getAttachmentLinkList( |
|
|
|
|
$messageId, |
|
|
|
|
$source |
|
|
|
|
); |
|
|
|
|
$msg['title'] = Security::remove_XSS($row['title'], STUDENT, true); |
|
|
|
|
$msg['attachments'] = $files_attachments; |
|
|
|
|
|
|
|
|
|
$contentMsg = str_replace('</br>', '<br />', $row['content']); |
|
|
|
|
$content = Security::remove_XSS($contentMsg, STUDENT, true); |
|
|
|
|
$msg['content'] = $content; |
|
|
|
|
$fromUser = api_get_user_info($user_sender_id); |
|
|
|
|
$row['content'] = str_replace('</br>', '<br />', $row['content']); |
|
|
|
|
$title = Security::remove_XSS($row['title'], STUDENT, true); |
|
|
|
|
$content = Security::remove_XSS($row['content'], STUDENT, true); |
|
|
|
|
|
|
|
|
|
$name = get_lang('UnknownUser'); |
|
|
|
|
$fromUser = api_get_user_info($user_sender_id); |
|
|
|
|
$userImage = ''; |
|
|
|
|
if (!empty($user_sender_id) && !empty($fromUser)) { |
|
|
|
|
$msg['form_user'] = [ |
|
|
|
|
'id' => $fromUser['id'], |
|
|
|
|
'name' => $fromUser['complete_name'], |
|
|
|
|
'username' => $fromUser['username'], |
|
|
|
|
'avatar' => $fromUser['avatar_small'], |
|
|
|
|
'email' => $fromUser['email'], |
|
|
|
|
]; |
|
|
|
|
$name = $fromUser['complete_name_with_username']; |
|
|
|
|
$userImage = Display::img( |
|
|
|
|
$fromUser['avatar_small'], |
|
|
|
|
$name, |
|
|
|
|
['title' => $name, 'class' => 'img-responsive img-circle', 'style' => 'max-width:35px'], |
|
|
|
|
false |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
$msg['date'] = Display::dateToStringAgoAndLongDate($row['send_date']); |
|
|
|
|
|
|
|
|
|
$message_content = Display::page_subheader(str_replace("\\", "", $title)); |
|
|
|
|
|
|
|
|
|
$receiverUserInfo = []; |
|
|
|
|
if (!empty($row['user_receiver_id'])) { |
|
|
|
|
$receiverUserInfo = api_get_user_info($row['user_receiver_id']); |
|
|
|
|
$msg['receiver_user'] = [ |
|
|
|
|
'id' => $receiverUserInfo['id'], |
|
|
|
|
'name' => $receiverUserInfo['complete_name'], |
|
|
|
|
'username' => $receiverUserInfo['username'], |
|
|
|
|
'avatar' => $receiverUserInfo['avatar'], |
|
|
|
|
'email' => $receiverUserInfo['email'], |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$urlMessage = []; |
|
|
|
|
$message_content .= '<tr>'; |
|
|
|
|
if (api_get_setting('allow_social_tool') === 'true') { |
|
|
|
|
$message_content .= '<div class="row">'; |
|
|
|
|
if ($source === 'outbox') { |
|
|
|
|
$message_content .= '<div class="col-md-12">'; |
|
|
|
|
$message_content .= '<ul class="list-message">'; |
|
|
|
|
$message_content .= '<li>'.$userImage.'</li>'; |
|
|
|
|
$message_content .= '<li>'.$name.' '; |
|
|
|
|
if (!empty($receiverUserInfo)) { |
|
|
|
|
$message_content .= api_strtolower( |
|
|
|
|
get_lang('To') |
|
|
|
|
).' <b>'.$receiverUserInfo['complete_name_with_username'].'</b></li>'; |
|
|
|
|
} else { |
|
|
|
|
$message_content .= api_strtolower(get_lang('To')).' <b>-</b></li>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$message_content .= '<li>'.Display::dateToStringAgoAndLongDate($row['send_date']).'</li>'; |
|
|
|
|
$message_content .= '</ul>'; |
|
|
|
|
$message_content .= '</div>'; |
|
|
|
|
} else { |
|
|
|
|
$message_content .= '<div class="col-md-12">'; |
|
|
|
|
$message_content .= '<ul class="list-message">'; |
|
|
|
|
if (!empty($user_sender_id)) { |
|
|
|
|
$message_content .= '<li>'.$userImage.'</li>'; |
|
|
|
|
$message_content .= '<li><a href="'.api_get_path( |
|
|
|
|
WEB_PATH |
|
|
|
|
).'main/social/profile.php?u='.$user_sender_id.'">'.$name.'</a>'; |
|
|
|
|
} else { |
|
|
|
|
$message_content .= '<li>'.$name; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($source === 'inbox') { |
|
|
|
|
$message_content .= ' '.api_strtolower(get_lang('To')).' '.get_lang('Me'); |
|
|
|
|
} |
|
|
|
|
$message_content .= '<li>'.Display::dateToStringAgoAndLongDate($row['send_date']).'</li>'; |
|
|
|
|
$message_content .= '</ul>'; |
|
|
|
|
$message_content .= '</div>'; |
|
|
|
|
} |
|
|
|
|
$message_content .= '</div>'; |
|
|
|
|
} else { |
|
|
|
|
if ($source === 'outbox') { |
|
|
|
|
$message_content .= get_lang('From').': '.$name.'</b> '.api_strtolower(get_lang('To')).' <b>'. |
|
|
|
|
$receiverUserInfo['complete_name_with_username'].'</b>'; |
|
|
|
|
} else { |
|
|
|
|
$message_content .= get_lang('From').': '.$name.'</b> '.api_strtolower(get_lang('To')).' <b>'. |
|
|
|
|
get_lang('Me').'</b>'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$message_content .= ' |
|
|
|
|
<hr style="color:#ddd" /> |
|
|
|
|
<table width="100%"> |
|
|
|
|
<tr> |
|
|
|
|
<td valign=top class="view-message-content">'.str_replace("\\", "", $content).'</td> |
|
|
|
|
</tr> |
|
|
|
|
</table> |
|
|
|
|
<div id="message-attach">'.(!empty($files_attachments) ? implode('<br />', $files_attachments) : '').'</div> |
|
|
|
|
<div style="padding: 15px 0px 5px 0px">'; |
|
|
|
|
$social_link = ''; |
|
|
|
|
if (isset($_GET['f']) && $_GET['f'] == 'social') { |
|
|
|
|
$social_link = 'f=social'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($source == 'outbox') { |
|
|
|
|
$urlMessage['return'] = 'outbox.php?'.$social_link; |
|
|
|
|
} else { |
|
|
|
|
$urlMessage['back'] = 'inbox.php?'.$social_link; |
|
|
|
|
$urlMessage['new_message'] = 'new_message.php?re_id='.$messageId.'&'.$social_link; |
|
|
|
|
$message_content .= '<a href="outbox.php?'.$social_link.'">'. |
|
|
|
|
Display::return_icon('back.png', get_lang('ReturnToOutbox')).'</a>  '; |
|
|
|
|
} elseif ($source === 'inbox') { |
|
|
|
|
$message_content .= '<a href="inbox.php?'.$social_link.'">'. |
|
|
|
|
Display::return_icon('back.png', get_lang('ReturnToInbox')).'</a>  '; |
|
|
|
|
$message_content .= '<a href="new_message.php?re_id='.$messageId.'&'.$social_link.'">'. |
|
|
|
|
Display::return_icon('message_reply.png', get_lang('ReplyToMessage')).'</a>  '; |
|
|
|
|
} |
|
|
|
|
$urlMessage['delete'] = 'inbox.php?action=deleteone&id='.$messageId.'&'.$social_link; |
|
|
|
|
|
|
|
|
|
$msg['url'] = $urlMessage; |
|
|
|
|
if (in_array($source, ['inbox', 'outbox'])) { |
|
|
|
|
$message_content .= '<a href="inbox.php?action=deleteone&id='.$messageId.'&'.$social_link.'" >'. |
|
|
|
|
Display::return_icon('delete.png', get_lang('DeleteMessage')).'</a> '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$message_content .= '</div></td> |
|
|
|
|
<td width=10></td> |
|
|
|
|
</tr> |
|
|
|
|
</table>'; |
|
|
|
|
|
|
|
|
|
return $msg; |
|
|
|
|
return $message_content; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -1381,7 +1439,7 @@ class MessageManager |
|
|
|
|
public static function get_user_id_by_email($user_email) |
|
|
|
|
{ |
|
|
|
|
$table = Database::get_main_table(TABLE_MAIN_USER); |
|
|
|
|
$sql = 'SELECT user_id |
|
|
|
|
$sql = 'SELECT user_id |
|
|
|
|
FROM '.$table.' |
|
|
|
|
WHERE email="'.Database::escape_string($user_email).'";'; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
@ -1490,8 +1548,8 @@ class MessageManager |
|
|
|
|
|
|
|
|
|
$image = $user_sender_info['avatar']; |
|
|
|
|
|
|
|
|
|
$user_info = '<div class="author text-center"><img class="img-responsive rounded-circle" src="'.$image.'" alt="'.$name.'" width="64" height="64" title="'.$name.'" /></div>'; |
|
|
|
|
$user_info .= '<div class="name text-center"><a href="'.api_get_path( |
|
|
|
|
$user_info = '<div class="author"><img class="img-responsive img-circle" src="'.$image.'" alt="'.$name.'" width="64" height="64" title="'.$name.'" /></div>'; |
|
|
|
|
$user_info .= '<div class="name"><a href="'.api_get_path( |
|
|
|
|
WEB_PATH |
|
|
|
|
).'main/social/profile.php?u='.$topic['user_sender_id'].'">'.$name.' </a></div>'; |
|
|
|
|
|
|
|
|
|
@ -2047,27 +2105,32 @@ class MessageManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param string $keyword |
|
|
|
|
* @param string $statusList |
|
|
|
|
* @param array $keyword |
|
|
|
|
* @param array $actions |
|
|
|
|
* @param string $viewUrl |
|
|
|
|
* |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
public static function inbox_display($keyword = '') |
|
|
|
|
public static function getMessageGrid($statusList, $keyword, $actions = [], $viewUrl = '') |
|
|
|
|
{ |
|
|
|
|
if (empty($statusList)) { |
|
|
|
|
return ''; |
|
|
|
|
} |
|
|
|
|
$success = get_lang('SelectedMessagesDeleted'); |
|
|
|
|
$success_read = get_lang('SelectedMessagesRead'); |
|
|
|
|
$success_unread = get_lang('SelectedMessagesUnRead'); |
|
|
|
|
$currentUserId = api_get_user_id(); |
|
|
|
|
$html = ''; |
|
|
|
|
|
|
|
|
|
Session::write('message_search_keyword', $keyword); |
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['action'])) { |
|
|
|
|
switch ($_REQUEST['action']) { |
|
|
|
|
case 'mark_as_unread': |
|
|
|
|
if (is_array($_POST['id'])) { |
|
|
|
|
foreach ($_POST['id'] as $index => $message_id) { |
|
|
|
|
foreach ($_POST['id'] as $index => $messageId) { |
|
|
|
|
self::update_message_status( |
|
|
|
|
api_get_user_id(), |
|
|
|
|
$message_id, |
|
|
|
|
$currentUserId, |
|
|
|
|
$messageId, |
|
|
|
|
MESSAGE_STATUS_UNREAD |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
@ -2080,10 +2143,10 @@ class MessageManager |
|
|
|
|
break; |
|
|
|
|
case 'mark_as_read': |
|
|
|
|
if (is_array($_POST['id'])) { |
|
|
|
|
foreach ($_POST['id'] as $index => $message_id) { |
|
|
|
|
foreach ($_POST['id'] as $index => $messageId) { |
|
|
|
|
self::update_message_status( |
|
|
|
|
api_get_user_id(), |
|
|
|
|
$message_id, |
|
|
|
|
$currentUserId, |
|
|
|
|
$messageId, |
|
|
|
|
MESSAGE_STATUS_NEW |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
@ -2095,8 +2158,8 @@ class MessageManager |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
case 'delete': |
|
|
|
|
foreach ($_POST['id'] as $index => $message_id) { |
|
|
|
|
self::delete_message_by_user_receiver(api_get_user_id(), $message_id); |
|
|
|
|
foreach ($_POST['id'] as $index => $messageId) { |
|
|
|
|
self::delete_message_by_user_receiver($currentUserId, $messageId); |
|
|
|
|
} |
|
|
|
|
$html .= Display::return_message( |
|
|
|
|
api_xml_http_response_encode($success), |
|
|
|
|
@ -2105,7 +2168,7 @@ class MessageManager |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
case 'deleteone': |
|
|
|
|
self::delete_message_by_user_receiver(api_get_user_id(), $_GET['id']); |
|
|
|
|
self::delete_message_by_user_receiver($currentUserId, $_GET['id']); |
|
|
|
|
$html .= Display::return_message( |
|
|
|
|
api_xml_http_response_encode($success), |
|
|
|
|
'confirmation', |
|
|
|
|
@ -2119,33 +2182,72 @@ class MessageManager |
|
|
|
|
$table = new SortableTable( |
|
|
|
|
'message_inbox', |
|
|
|
|
['MessageManager', 'getNumberOfMessages'], |
|
|
|
|
['MessageManager', 'get_message_data'], |
|
|
|
|
['MessageManager', 'getMessageData'], |
|
|
|
|
2, |
|
|
|
|
20, |
|
|
|
|
'DESC', |
|
|
|
|
null, |
|
|
|
|
'table-custom' |
|
|
|
|
'DESC' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$table->setDataFunctionParams( |
|
|
|
|
['keyword' => $keyword, 'message_status' => $statusList, 'actions' => $actions, 'view_url' => $viewUrl] |
|
|
|
|
); |
|
|
|
|
$table->set_header(0, '', false, ['style' => 'width:15px;']); |
|
|
|
|
$table->set_header(1, get_lang('Messages'), false); |
|
|
|
|
$table->set_header(2, get_lang('Subject'), false); |
|
|
|
|
$table->set_header(3, get_lang('Date'), true, ['style' => 'width:180px;']); |
|
|
|
|
$table->set_header(4, get_lang('Modify'), false, ['style' => 'width:120px;']); |
|
|
|
|
$table->set_header(2, get_lang('Date'), true, ['style' => 'width:180px;']); |
|
|
|
|
$table->set_header(3, get_lang('Modify'), false, ['style' => 'width:120px;']); |
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['f']) && $_REQUEST['f'] == 'social') { |
|
|
|
|
if (isset($_REQUEST['f']) && $_REQUEST['f'] === 'social') { |
|
|
|
|
$parameters['f'] = 'social'; |
|
|
|
|
$table->set_additional_parameters($parameters); |
|
|
|
|
} |
|
|
|
|
$table->set_form_actions( |
|
|
|
|
[ |
|
|
|
|
'delete' => get_lang('DeleteSelectedMessages'), |
|
|
|
|
'mark_as_unread' => get_lang('MailMarkSelectedAsUnread'), |
|
|
|
|
'mark_as_read' => get_lang('MailMarkSelectedAsRead'), |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$defaultActions = [ |
|
|
|
|
'delete' => get_lang('DeleteSelectedMessages'), |
|
|
|
|
'mark_as_unread' => get_lang('MailMarkSelectedAsUnread'), |
|
|
|
|
'mark_as_read' => get_lang('MailMarkSelectedAsRead'), |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
if (!in_array('delete', $actions)) { |
|
|
|
|
unset($defaultActions['delete']); |
|
|
|
|
} |
|
|
|
|
if (!in_array('mark_as_unread', $actions)) { |
|
|
|
|
unset($defaultActions['mark_as_unread']); |
|
|
|
|
} |
|
|
|
|
if (!in_array('mark_as_read', $actions)) { |
|
|
|
|
unset($defaultActions['mark_as_read']); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$table->set_form_actions($defaultActions); |
|
|
|
|
|
|
|
|
|
$html .= $table->return_table(); |
|
|
|
|
|
|
|
|
|
Session::erase('message_search_keyword'); |
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param string $keyword |
|
|
|
|
* |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
public static function inboxDisplay($keyword = '') |
|
|
|
|
{ |
|
|
|
|
$actions = ['reply', 'mark_as_unread', 'mark_as_read', 'forward', 'delete']; |
|
|
|
|
$html = self::getMessageGrid([MESSAGE_STATUS_NEW, MESSAGE_STATUS_UNREAD], $keyword, $actions); |
|
|
|
|
|
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param string $keyword |
|
|
|
|
* |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
public static function getPromotedMessagesGrid($keyword = '') |
|
|
|
|
{ |
|
|
|
|
//$actions = ['edit', 'delete']; |
|
|
|
|
$actions = ['delete']; |
|
|
|
|
$url = api_get_path(WEB_CODE_PATH).'social/view_promoted_message.php'; |
|
|
|
|
$html = self::getMessageGrid([MESSAGE_STATUS_PROMOTED], $keyword, $actions, $url); |
|
|
|
|
|
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
@ -2165,12 +2267,12 @@ class MessageManager |
|
|
|
|
if (isset($_REQUEST['action'])) { |
|
|
|
|
switch ($_REQUEST['action']) { |
|
|
|
|
case 'delete': |
|
|
|
|
$number_of_selected_messages = count($_POST['id']); |
|
|
|
|
if ($number_of_selected_messages != 0) { |
|
|
|
|
foreach ($_POST['id'] as $index => $message_id) { |
|
|
|
|
$count = count($_POST['id']); |
|
|
|
|
if ($count != 0) { |
|
|
|
|
foreach ($_POST['id'] as $index => $messageId) { |
|
|
|
|
self::delete_message_by_user_receiver( |
|
|
|
|
api_get_user_id(), |
|
|
|
|
$message_id |
|
|
|
|
$messageId |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -2187,24 +2289,24 @@ class MessageManager |
|
|
|
|
// display sortable table with messages of the current user |
|
|
|
|
$table = new SortableTable( |
|
|
|
|
'message_outbox', |
|
|
|
|
['MessageManager', 'getNumberOfMessagesSent'], |
|
|
|
|
['MessageManager', 'getNumberOfMessages'], |
|
|
|
|
['MessageManager', 'get_message_data_sent'], |
|
|
|
|
2, |
|
|
|
|
20, |
|
|
|
|
'DESC' |
|
|
|
|
); |
|
|
|
|
$table->setDataFunctionParams( |
|
|
|
|
['keyword' => $keyword, 'message_status' => [MESSAGE_STATUS_OUTBOX]] |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$table->set_header(0, '', false, ['style' => 'width:15px;']); |
|
|
|
|
$table->set_header(1, get_lang('Messages'), false); |
|
|
|
|
$table->set_header(2, get_lang('Subject'), false); |
|
|
|
|
$table->set_header(3, get_lang('Date'), true, ['style' => 'width:180px;']); |
|
|
|
|
$table->set_header(4, get_lang('Modify'), false, ['style' => 'width:70px;']); |
|
|
|
|
$table->set_header(2, get_lang('Date'), true, ['style' => 'width:180px;']); |
|
|
|
|
$table->set_header(3, get_lang('Modify'), false, ['style' => 'width:70px;']); |
|
|
|
|
|
|
|
|
|
$table->set_form_actions(['delete' => get_lang('DeleteSelectedMessages')]); |
|
|
|
|
$html .= $table->return_table(); |
|
|
|
|
|
|
|
|
|
Session::erase('message_sent_search_keyword'); |
|
|
|
|
|
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -2462,7 +2564,6 @@ class MessageManager |
|
|
|
|
$i = 1; |
|
|
|
|
while (!feof($file)) { |
|
|
|
|
$line = fgets($file); |
|
|
|
|
// $line = trim($line); |
|
|
|
|
|
|
|
|
|
if (trim($line) == '') { |
|
|
|
|
continue; |
|
|
|
|
|