For a full list of contributors, see "credits.txt". The full license can be read in "license.txt". This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the GNU General Public License for more details. Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium Mail: info@dokeos.com ============================================================================== */ include_once(api_get_path(LIBRARY_PATH).'/main_api.lib.php'); include_once(api_get_path(LIBRARY_PATH).'/online.inc.php'); class MessageManager { function MessageManager() { } public static function get_online_user_list($current_user_id) { $min=30; global $_configuration; $userlist = WhoIsOnline($current_user_id,$_configuration['statistics_database'],$min); foreach($userlist as $row) { $receiver_id = $row[0]; $online_user_list[$receiver_id] = GetFullUserName($receiver_id).($current_user_id==$receiver_id?(" (".get_lang('Myself').")"):("")); } return $online_user_list; } /** * Displays info stating that the message is sent successfully. */ public static function display_success_message($uid) { global $charset; if ($_SESSION['social_exist']===true) { $redirect="#remote-tab-2"; if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') { $success=mb_convert_encoding(get_lang('MessageSentTo'),'UTF-8',$charset). " ". GetFullUserName($uid). "". "
". mb_convert_encoding(get_lang('BackToInbox'),'UTF-8',$charset). ""; }else { $success= mb_convert_encoding(get_lang('MessageSentTo'),'UTF-8',$charset). " ". GetFullUserName($uid). "". "
". mb_convert_encoding(get_lang('BackToInbox'),'UTF-8',$charset). ""; } } else { $success= mb_convert_encoding(get_lang('MessageSentTo'),'UTF-8',$charset). " ". GetFullUserName($uid). "". "
". mb_convert_encoding(get_lang('BackToInbox'),'UTF-8',$charset). ""; } Display::display_confirmation_message($success, false); } /** * Displays the wysiwyg html editor. */ public static function display_html_editor_area($name,$resp) { api_disp_html_area($name, get_lang('TypeYourMessage'), '', '100%'); } /** * Get the new messages for the current user from the database. */ public static function get_new_messages() { $table_message = Database::get_main_table(TABLE_MESSAGE); if (!api_get_user_id()) { return false; } $i=0; $query = "SELECT * FROM $table_message WHERE user_receiver_id=".api_get_user_id()." AND msg_status=1"; $result = api_sql_query($query,__FILE__,__LINE__); $i = Database::num_rows($result); return $i; } /** * Get the list of user_ids of users who are online. */ public static function users_connected_by_id() { global $_configuration, $_user; $minute=30; $user_connect = WhoIsOnline($_user['user_id'],$_configuration['statistics_database'],$minute); for ($i=0; $i'; } else { $message[0] = ($result[0]); } if ($request===true) { if($result[4]==0) { $message[1] = Display::return_icon('mail_open.png',get_lang('AlreadyReadMessage'));//Message already read } else { $message[1] = Display::return_icon('mail.png',get_lang('UnReadMessage'));//Message without reading } $message[2] = mb_convert_encoding(GetFullUserName($result[1]),'UTF-8',$charset); $message[3] = ''.str_replace("\\","",mb_convert_encoding($result[2],'UTF-8',$charset)).''; $message[5] = ''.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).''. '  '.Display::return_icon('message_delete.png',mb_convert_encoding(get_lang('DeleteMessage'),'UTF-8',$charset)).''; } else { $message[2] = GetFullUserName(($result[1])); $message[3] = ''.$result[2].''; $message[5] = ''.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).''. '  '.Display::return_icon('message_delete.png',mb_convert_encoding(get_lang('DeleteMessage'),'UTF-8',$charset)).''; } $message[4] = ($result[3]); //date stays the same $message_list[] = $message; $i++; } return $message_list; } public static function send_message ($receiver_user_id, $title, $content) { $table_message = Database::get_main_table(TABLE_MESSAGE); //message in inbox $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content ) ". " VALUES (". "'".api_get_user_id()."', '".Database::escape_string($receiver_user_id)."', '1', '".date('Y-m-d H:i:s')."','".Database::escape_string($title)."','".Database::escape_string($content)."'". ")"; //message in outbox $sql = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content ) ". " VALUES (". "'".api_get_user_id()."', '".Database::escape_string($receiver_user_id)."', '4', '".date('Y-m-d H:i:s')."','".Database::escape_string($title)."','".Database::escape_string($content)."'". ")"; $rs = api_sql_query($sql,__FILE__,__LINE__); $result = api_sql_query($query,__FILE__,__LINE__); return $result; } public static function delete_message_by_user_receiver ($user_receiver_id,$id) { $table_message = Database::get_main_table(TABLE_MESSAGE); $sql="SELECT COUNT(*) as count FROM $table_message WHERE id=".$id." AND msg_status<>4;"; $rs=api_sql_query($sql,__FILE__,__LINE__); $row=Database::fetch_array($rs,'ASSOC'); if ($row['count']==1) { $query = "DELETE FROM $table_message " . "WHERE user_receiver_id=".Database::escape_string($user_receiver_id)." AND id=".Database::escape_string($id); $result = api_sql_query($query,__FILE__,__LINE__); return $result; } else { return false; } } /** * Set status deleted * @author Isaac FLores Paz * @param integer * @param integer * @return array */ public static function delete_message_by_user_sender ($user_sender_id,$id) { $table_message = Database::get_main_table(TABLE_MESSAGE); $query = "DELETE FROM $table_message " . "WHERE user_sender_id=".Database::escape_string($user_sender_id)." AND id=".Database::escape_string($id); $result = api_sql_query($query,__FILE__,__LINE__); return $result; } public static function update_message ($user_id, $id) { $table_message = Database::get_main_table(TABLE_MESSAGE); $query = "UPDATE $table_message SET msg_status = '0' WHERE msg_status<>4 AND user_receiver_id=".Database::escape_string($user_id)." AND id='".Database::escape_string($id)."'"; $result = api_sql_query($query,__FILE__,__LINE__); } public static function get_message_by_user ($user_id,$id) { $table_message = Database::get_main_table(TABLE_MESSAGE); $query = "SELECT * FROM $table_message WHERE user_receiver_id=".Database::escape_string($user_id)." AND id='".Database::escape_string($id)."'"; $result = api_sql_query($query,__FILE__,__LINE__); return $row = Database::fetch_array($result); } /** * Gets information about if exist messages * @author Isaac FLores Paz * @param integer * @param integer * @return boolean */ public static function exist_message ($user_id, $id) { $table_message = Database::get_main_table(TABLE_MESSAGE); $query = "SELECT id FROM $table_message WHERE user_receiver_id=".Database::escape_string($user_id)." AND id='".Database::escape_string($id)."'"; $result = api_sql_query($query,__FILE__,__LINE__); $num = Database::num_rows($result); if ($num>0) return true; else return false; } /** * Gets information about messages sent * @author Isaac FLores Paz * @param integer * @param integer * @param string * @return array */ public static function get_message_data_sent ($from, $number_of_items, $column, $direction) { global $charset; $table_message = Database::get_main_table(TABLE_MESSAGE); $request=api_is_xml_http_request(); $sql_query = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3, user_receiver_id as col4, msg_status as col5 FROM $table_message " . "WHERE user_sender_id=".api_get_user_id()." AND msg_status=4 " . "ORDER BY col$column $direction LIMIT $from,$number_of_items"; $sql_result = api_sql_query($sql_query,__FILE__,__LINE__); $i = 0; $message_list = array (); while ($result = Database::fetch_row($sql_result)) { if ($request===true) { $message[0] = ''; } else { $message[0] = ($result[0]); } if ($request===true) { if ($result[5]==4) { $message[1] = Display::return_icon('mail_send.png',get_lang('MessageSent'));//Message Sent } $message[2] = mb_convert_encoding(GetFullUserName($result[4]),'UTF-8',$charset); $message[3] = ''.str_replace("\\","",mb_convert_encoding($result[2],'UTF-8',$charset)).''; $message[5] = '  '.Display::return_icon('message_delete.png',mb_convert_encoding(get_lang('DeleteMessage'),'UTF-8',$charset)).''; } else { $message[2] = GetFullUserName($result[4]); $message[3] = ''.$result[2].''; $message[5] = ''.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).''. '  '.Display::return_icon('message_delete.png',get_lang('DeleteMessage')).''; } $message[4] = $result[3]; //date stays the same $message_list[] = $message; $i++; } return $message_list; } /** * Gets information about number messages sent * @author Isaac FLores Paz * @param void * @return integer */ public static function get_number_of_messages_sent () { $table_message = Database::get_main_table(TABLE_MESSAGE); $sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE msg_status=4 AND user_sender_id=".api_get_user_id(); $sql_result = api_sql_query($sql_query,__FILE__,__LINE__); $result = Database::fetch_array($sql_result); return $result['number_messages']; } public static function show_message_box () { global $charset; $table_message = Database::get_main_table(TABLE_MESSAGE); if (isset($_GET['id_send'])) { $query = "SELECT * FROM $table_message WHERE user_sender_id=".api_get_user_id()." AND id=".$_GET['id_send']." AND msg_status=4;"; $result = api_sql_query($query,__FILE__,__LINE__); $path='outbox.php'; } else { $query = "UPDATE $table_message SET msg_status = '0' WHERE user_receiver_id=".api_get_user_id()." AND id='".Database::escape_string($_GET['id'])."';"; $result = api_sql_query($query,__FILE__,__LINE__); $query = "SELECT * FROM $table_message WHERE msg_status<>4 AND user_receiver_id=".api_get_user_id()." AND id='".Database::escape_string($_GET['id'])."';"; $result = api_sql_query($query,__FILE__,__LINE__); $path='inbox.php'; } $row = Database::fetch_array($result); $user_con = self::users_connected_by_id(); $band=0; $reply=''; for ($i=0;$i'.Display::return_icon('message_reply.png',get_lang('ReplyToMessage')).get_lang('ReplyToMessage').''; } echo '
'; echo '
 

'.str_replace("\\","",mb_convert_encoding($row[5],'UTF-8',$charset)).'

'.mb_convert_encoding(get_lang('From'),'UTF-8',$charset).' '.GetFullUserName($row[1]).' '.mb_convert_encoding(strtolower(get_lang('To')),'UTF-8',$charset).'  '.mb_convert_encoding(GetFullUserName($row[2]),'UTF-8',$charset).'
'.mb_convert_encoding(get_lang('Date'),'UTF-8',$charset).'  '.$row[4].'

'.mb_convert_encoding($row[6],'UTF-8',$charset).'
 
'; } public static function show_message_box_sent () { global $charset; $table_message = Database::get_main_table(TABLE_MESSAGE); $query = "SELECT * FROM $table_message WHERE user_sender_id=".api_get_user_id()." AND id=".$_GET['id_send']." AND msg_status=4;"; $result = api_sql_query($query,__FILE__,__LINE__); $path='outbox.php'; $row = Database::fetch_array($result); $user_con = self::users_connected_by_id(); $band=0; $reply=''; for ($i=0;$i'; echo ''.Display::return_icon('folder_up.gif',mb_convert_encoding(get_lang('BackToOutbox'),'UTF-8',$charset)).mb_convert_encoding(get_lang('BackToOutbox'),'UTF-8',$charset).''; echo ''.Display::return_icon('message_delete.png',mb_convert_encoding(get_lang('DeleteMessage'),'UTF-8',$charset)).''.mb_convert_encoding(get_lang('DeleteMessage'),'UTF-8',$charset).''; echo '
'; echo '
 

'.str_replace("\\","",mb_convert_encoding($row[5],'UTF-8',$charset)).'

'.mb_convert_encoding(get_lang('From'),'UTF-8',$charset).' '.GetFullUserName($row[1]).' '.mb_convert_encoding(strtolower(get_lang('To')),'UTF-8',$charset).'  '.mb_convert_encoding(GetFullUserName($row[2]),'UTF-8',$charset).'
'.mb_convert_encoding(get_lang('Date'),'UTF-8',$charset).'  '.$row[4].'

'.mb_convert_encoding($row[6],'UTF-8',$charset).'
 
'; } /** * get user id by user email * @param string $user_email * @return int user id */ public static function get_user_id_by_email ($user_email) { $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $sql='SELECT user_id FROM '.$tbl_user.' WHERE email="'.Database::escape_string($user_email).'";'; $rs=api_sql_query($sql,__FILE__,__LINE__); $row=Database::fetch_array($rs,'ASSOC'); if (isset($row['user_id'])) { return $row['user_id']; } else { return null; } } } ?>