|
@@ -22,7 +22,8 @@ require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
|
|
|
*/
|
|
|
define('MESSAGE_STATUS_NEW', '0');
|
|
|
define('MESSAGE_STATUS_UNREAD', '1');
|
|
|
-define('MESSAGE_STATUS_DELETED', '2');
|
|
|
+define('MESSAGE_STATUS_DELETED', '3');
|
|
|
+define('MESSAGE_STATUS_OUTBOX', '4');
|
|
|
|
|
|
define('MESSAGE_STATUS_INVITATION_PENDING', '5');
|
|
|
define('MESSAGE_STATUS_INVITATION_ACCEPTED','6');
|
|
@@ -192,10 +193,33 @@ class MessageManager
|
|
|
$content = api_convert_encoding($content,$charset,'UTF-8');
|
|
|
$content = Database::escape_string($content);
|
|
|
//message in inbox
|
|
|
- $sql = "SELECT COUNT(*) as count FROM $table_message WHERE user_sender_id = ".$user_sender_id." AND user_receiver_id='$receiver_user_id' AND title = '$title' AND content ='$content' AND group_id = '$group_id' AND parent_id = '$parent_id'";
|
|
|
- $res_exist = Database::query($sql,__FILE__,__LINE__);
|
|
|
- $row_exist = Database::fetch_array($res_exist,'ASSOC');
|
|
|
- if ($row_exist['count'] == 0) {
|
|
|
+
|
|
|
+ //useless query
|
|
|
+ //echo $sql = "SELECT COUNT(*) as count FROM $table_message WHERE user_sender_id = ".$user_sender_id." AND user_receiver_id='$receiver_user_id' AND title = '$title' AND content ='$content' AND group_id = '$group_id' AND parent_id = '$parent_id'";
|
|
|
+ //$res_exist = Database::query($sql,__FILE__,__LINE__);
|
|
|
+ //$row_exist = Database::fetch_array($res_exist,'ASSOC');
|
|
|
+
|
|
|
+ //We should ALWAYS sent emails
|
|
|
+ //if ($row_exist['count'] == 0) {
|
|
|
+
|
|
|
+ //message in inbox for user friend
|
|
|
+ $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id ) ".
|
|
|
+ " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".date('Y-m-d H:i:s')."','$title','$content','$group_id','$parent_id')";
|
|
|
+ $result = Database::query($query,__FILE__,__LINE__);
|
|
|
+ $inbox_last_id = Database::insert_id();
|
|
|
+
|
|
|
+ // save attachment file for inbox messages
|
|
|
+ if (is_array($file_attachments)) {
|
|
|
+ $i = 0;
|
|
|
+ foreach ($file_attachments as $file_attach) {
|
|
|
+ if ($file_attach['error'] == 0) {
|
|
|
+ self::save_message_attachment_file($file_attach,$file_comments[$i],$inbox_last_id,null,$receiver_user_id,$group_id);
|
|
|
+ }
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (empty($group_id)) {
|
|
|
//message in outbox for user friend or group
|
|
|
$sql = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id ) ".
|
|
|
" VALUES ('$user_sender_id', '$receiver_user_id', '4', '".date('Y-m-d H:i:s')."','$title','$content', '$group_id', '$parent_id')";
|
|
@@ -212,54 +236,56 @@ class MessageManager
|
|
|
$o++;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if (!empty($group_id)) {
|
|
|
- //message in inbox for group
|
|
|
- $users_by_group = GroupPortalManager::get_all_users_by_group($group_id);
|
|
|
- $users_ids = array_keys($users_by_group);
|
|
|
- if (is_array($users_ids) && count($users_ids) > 0) {
|
|
|
- foreach ($users_ids as $user_id) {
|
|
|
- $receiver_user_id = $user_id;
|
|
|
- $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id ) ".
|
|
|
- " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".date('Y-m-d H:i:s')."','$title','$content','$group_id','$parent_id')";
|
|
|
- $result = Database::query($query,__FILE__,__LINE__);
|
|
|
- $inbox_last_id = Database::insert_id();
|
|
|
- // save attachment file for inbox messages
|
|
|
- if (is_array($file_attachments)) {
|
|
|
- $i = 0;
|
|
|
- foreach ($file_attachments as $file_attach) {
|
|
|
- if ($file_attach['error'] == 0) {
|
|
|
- self::save_message_attachment_file($file_attach,$file_comments[$i],$inbox_last_id,null,$receiver_user_id);
|
|
|
- }
|
|
|
- $i++;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ if (!empty($group_id)) {
|
|
|
+ //message in inbox for group
|
|
|
+ $users_by_group = GroupPortalManager::get_all_users_by_group($group_id);
|
|
|
+ $users_ids = array_keys($users_by_group);
|
|
|
+ if (is_array($users_ids) && count($users_ids) > 0) {
|
|
|
+ foreach ($users_ids as $user_id) {
|
|
|
+ $receiver_user_id = $user_id;
|
|
|
+ $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id ) ".
|
|
|
+ " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".date('Y-m-d H:i:s')."','$title','$content','$group_id','$parent_id')";
|
|
|
+ $result = Database::query($query,__FILE__,__LINE__);
|
|
|
+ $inbox_last_id = Database::insert_id();
|
|
|
+ // save attachment file for inbox messages
|
|
|
+ if (is_array($file_attachments)) {
|
|
|
+ $i = 0;
|
|
|
+ foreach ($file_attachments as $file_attach) {
|
|
|
+ if ($file_attach['error'] == 0) {
|
|
|
+ self::save_message_attachment_file($file_attach,$file_comments[$i],$inbox_last_id,null,$receiver_user_id);
|
|
|
}
|
|
|
- }
|
|
|
- // update parent id for other receiver users belongs the group
|
|
|
- if (!empty($parent_id)) {
|
|
|
- self::update_parent_ids_from_reply($parent_id, $receiver_user_id, $inbox_last_id);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
-
|
|
|
- //message in inbox for user friend
|
|
|
- $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id ) ".
|
|
|
- " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".date('Y-m-d H:i:s')."','$title','$content','$group_id','$parent_id')";
|
|
|
- $result = Database::query($query,__FILE__,__LINE__);
|
|
|
- $inbox_last_id = Database::insert_id();
|
|
|
- // save attachment file for inbox messages
|
|
|
- if (is_array($file_attachments)) {
|
|
|
- $i = 0;
|
|
|
- foreach ($file_attachments as $file_attach) {
|
|
|
- if ($file_attach['error'] == 0) {
|
|
|
- self::save_message_attachment_file($file_attach,$file_comments[$i],$inbox_last_id,null,$receiver_user_id);
|
|
|
+ $i++;
|
|
|
}
|
|
|
- $i++;
|
|
|
+ }
|
|
|
+ // update parent id for other receiver users belongs the group
|
|
|
+ if (!empty($parent_id)) {
|
|
|
+ self::update_parent_ids_from_reply($parent_id, $receiver_user_id, $inbox_last_id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
+ //message in inbox for user friend
|
|
|
+ $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id ) ".
|
|
|
+ " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".date('Y-m-d H:i:s')."','$title','$content','$group_id','$parent_id')";
|
|
|
+ $result = Database::query($query,__FILE__,__LINE__);
|
|
|
+ $inbox_last_id = Database::insert_id();
|
|
|
+ // save attachment file for inbox messages
|
|
|
+ if (is_array($file_attachments)) {
|
|
|
+ $i = 0;
|
|
|
+ foreach ($file_attachments as $file_attach) {
|
|
|
+ if ($file_attach['error'] == 0) {
|
|
|
+ self::save_message_attachment_file($file_attach,$file_comments[$i],$inbox_last_id,null,$receiver_user_id);
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ */
|
|
|
+ return $result;
|
|
|
+ //}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
@@ -344,7 +370,7 @@ class MessageManager
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- public static function save_message_attachment_file($file_attach,$file_comment,$message_id,$receiver_user_id=0,$sender_user_id=0) {
|
|
|
+ public static function save_message_attachment_file($file_attach,$file_comment,$message_id,$receiver_user_id=0,$sender_user_id=0,$group_id=0) {
|
|
|
|
|
|
$tbl_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
|
|
|
|
|
@@ -367,7 +393,13 @@ class MessageManager
|
|
|
}
|
|
|
|
|
|
// User-reserved directory where photos have to be placed.
|
|
|
- $path_user_info = UserManager::get_user_picture_path_by_id($message_user_id, 'system', true);
|
|
|
+
|
|
|
+ if (!empty($group_id)) {
|
|
|
+ $path_user_info = GroupPortalManager::get_group_picture_path_by_id($group_id, 'system', true);
|
|
|
+ } else {
|
|
|
+ $path_user_info = UserManager::get_user_picture_path_by_id($message_user_id, 'system', true);
|
|
|
+ }
|
|
|
+
|
|
|
$path_message_attach = $path_user_info['dir'].'message_attachments/';
|
|
|
|
|
|
// If this directory does not exist - we create it.
|
|
@@ -398,7 +430,7 @@ class MessageManager
|
|
|
* @param int message user id (receiver user id or sender user id)
|
|
|
* @return void
|
|
|
*/
|
|
|
- public static function delete_message_attachment_file($message_id,$message_uid) {
|
|
|
+ public static function delete_message_attachment_file($message_id,$message_uid,$group_id=0) {
|
|
|
|
|
|
$message_id = intval($message_id);
|
|
|
$message_uid = intval($message_uid);
|
|
@@ -411,7 +443,13 @@ class MessageManager
|
|
|
$path = $row['path'];
|
|
|
$attach_id = $row['id'];
|
|
|
$new_path = $path.'_DELETED_'.$attach_id;
|
|
|
- $path_user_info = UserManager::get_user_picture_path_by_id($message_uid, 'system', true);
|
|
|
+
|
|
|
+ if (!empty($group_id)) {
|
|
|
+ $path_user_info = GroupPortalManager::get_group_picture_path_by_id($group_id, 'system', true);
|
|
|
+ } else {
|
|
|
+ $path_user_info = UserManager::get_user_picture_path_by_id($message_uid, 'system', true);
|
|
|
+ }
|
|
|
+
|
|
|
$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)) {
|
|
@@ -442,7 +480,7 @@ class MessageManager
|
|
|
$table_message = Database::get_main_table(TABLE_MESSAGE);
|
|
|
$current_uid = api_get_user_id();
|
|
|
$group_id = intval($group_id);
|
|
|
- $query = "SELECT * FROM $table_message WHERE group_id='$group_id' AND msg_status <> 4 AND user_receiver_id = '$current_uid' ORDER BY id";
|
|
|
+ $query = "SELECT * FROM $table_message WHERE group_id='$group_id' AND msg_status <> 4 ORDER BY id";
|
|
|
$rs = Database::query($query,__FILE__,__LINE__);
|
|
|
$data = array();
|
|
|
if (Database::num_rows($rs) > 0) {
|
|
@@ -573,7 +611,7 @@ class MessageManager
|
|
|
$row = Database::fetch_array($result);
|
|
|
|
|
|
// get file attachments by message id
|
|
|
- $files_attachments = self::get_links_message_attachment_files($message_id);
|
|
|
+ $files_attachments = self::get_links_message_attachment_files($message_id,$source);
|
|
|
|
|
|
$user_con = self::users_connected_by_id();
|
|
|
$band=0;
|
|
@@ -659,7 +697,7 @@ class MessageManager
|
|
|
$path='outbox.php';
|
|
|
|
|
|
// get file attachments by message id
|
|
|
- $files_attachments = self::get_links_message_attachment_files($message_id);
|
|
|
+ $files_attachments = self::get_links_message_attachment_files($message_id,'outbox');
|
|
|
|
|
|
$row = Database::fetch_array($result);
|
|
|
$user_con = self::users_connected_by_id();
|
|
@@ -821,9 +859,10 @@ class MessageManager
|
|
|
/**
|
|
|
* Get array of links (download) for message attachment files
|
|
|
* @param int message id
|
|
|
+ * @param string type message list (inbox/outbox)
|
|
|
* @return array
|
|
|
*/
|
|
|
- public static function get_links_message_attachment_files($message_id) {
|
|
|
+ public static function get_links_message_attachment_files($message_id,$type='') {
|
|
|
|
|
|
$tbl_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
|
|
|
$message_id = intval($message_id);
|
|
@@ -831,11 +870,15 @@ class MessageManager
|
|
|
// get file attachments by message id
|
|
|
$links_attach_file = array();
|
|
|
if (!empty($message_id)) {
|
|
|
- $sql = "SELECT * FROM $tbl_message_attach WHERE message_id = '$message_id'";
|
|
|
+
|
|
|
+ $sql = "SELECT * FROM $tbl_message_attach WHERE message_id = '$message_id'";
|
|
|
+
|
|
|
$rs_file = Database::query($sql,__FILE__,__LINE__);
|
|
|
if (Database::num_rows($rs_file) > 0) {
|
|
|
- $attach_icon = Display::return_icon('attachment.gif');
|
|
|
- $archiveURL=api_get_path(WEB_CODE_PATH).'messages/download.php?type=inbox&file=';
|
|
|
+ $attach_icon = Display::return_icon('attachment.gif');
|
|
|
+
|
|
|
+ $archiveURL=api_get_path(WEB_CODE_PATH).'messages/download.php?type='.$type.'&file=';
|
|
|
+
|
|
|
while ($row_file = Database::fetch_array($rs_file)) {
|
|
|
$archiveFile= $row_file['path'];
|
|
|
$filename = $row_file['filename'];
|