($iProfileId || $aProfile['Role'] & BX_DOL_ROLE_ADMIN) ? $iProfileId : 0, // message recipient's ID ; 'recipient_id' => ($vRecipientID) ? (int) $vRecipientID : 0, // mailbox mode such as : inbox, outbox, trash ; 'mailbox_mode' => (isset($_GET['mode'])) ? $_GET['mode'] : 'inbox', // type of message's sort ; 'sort_mode' => (isset($_GET['sorting'])) ? $_GET['sorting'] : 'date_desc', // contain number of current page ; 'page' => (isset($_GET['page'])) ? (int) $_GET['page']: 0, // contain per page number for current page ; 'per_page' => (isset($_GET['per_page'])) ? (int) $_GET['per_page']: 0, // contain type of needed type of contacts (friends, faves ...) 'contacts_mode' => (isset($_GET['contacts_mode'])) ? $_GET['contacts_mode'] : null, // contain number of current contacts page ; 'contacts_page' => (isset($_GET['contacts_page'])) ? (int) $_GET['contacts_page'] : 0, // contain number of needed message ; 'messageID' => (isset($_GET['messageID'])) ? (int) $_GET['messageID'] : 0, ); // contain all needed settings for compose message ; $aComposeSettings = array ( // allow to send message to phisical recipient's email ; 'send_copy' => ( isset($_GET['copy_message']) ) ? true : false , // allow to send message to phisical sender's email; 'send_copy_to_me' => ( isset($_GET['copy_message_to_me']) ) ? true : false , // allow to send notification to the recipient's email ; 'notification' => ( isset($_GET['notify']) ) ? true : false , ); // define the type of message (greet, mail ...) ; if ( isset($_GET['messages_types']) ) $aMailBoxSettings['messages_types'] = $_GET['messages_types']; // ** swith the compose page; switch($aMailBoxSettings['mailbox_mode']) { case 'inbox' : case 'outbox' : case 'trash' : $sComposedPage = 'mail_page'; break; case 'compose' : $sComposedPage = 'mail_page_compose'; break; case 'view_message' : $sComposedPage = 'mail_page_view'; break; default : $sComposedPage = 'mail_page'; } // create BxTemplMailBox object $oMailBox = new BxTemplMailBox( $sComposedPage, $aMailBoxSettings ); // for ajax requests processing ; if ( isset($_GET['ajax_mode']) and isset($_GET['action']) ) { // contain all the available callback functions ; $aCallbackFunctions = array( 'genMessagesRows', 'genArchiveMessages', 'getInboxMessagesCount' ); switch($_GET['action']) { case 'sort' : case 'paginate' : case 'get_page' : $sOutputHtml = $oMailBox -> genMessagesRows(); break; // mark all the received messages ; case 'mark' : // mark message with received mode ; if ( is_array($aMessagesList) and !empty($aMessagesList) ) { foreach( $aMessagesList AS $iKey ) { $iMessageID = (int) $iKey; if ( $iMessageID ) $oMailBox -> setMarkMessage($iMessageID, $iMessageStatus); } $sOutputHtml = 'ok'; } break; // delete all the received messages ; case 'delete' : if ( is_array($aMessagesList ) and !empty($aMessagesList) ) { foreach( $aMessagesList AS $iKey ) { $iMessageID = (int) $iKey; if ( $iMessageID ) $oMailBox -> setTrashedMessage($iMessageID); } } break; // restore all the deleted messages from trash; case 'restore' : if ( is_array($aMessagesList) and !empty($aMessagesList) ) { foreach( $aMessagesList AS $iKey ) { $iMessageID = (int) $iKey; if ( $iMessageID ) $oMailBox -> setRestoredMessage($iMessageID); } } break; // will return count of inbox messages ; case 'get_messages_count' : $iMessageCount = $oMailBox -> getInboxMessagesCount(); $sResponceText = ( $iMessageCount ) ? ' (' . $iMessageCount . ') ' : null; $sOutputHtml = $sResponceText; break; // will return all the arhive's message list ; case 'archives_paginate' : $sOutputHtml = $oMailBox -> genArchiveMessages(); break; // will return message's replay window; case 'reply_message' : if ( $iMessageID and $vRecipientID ) { $vRecipientID = (int) $vRecipientID; $sOutputHtml = $oMailBox -> genReplayMessage($vRecipientID, $iMessageID); } break; case 'compose_mail' : if ( $sMessageSubject and $sMessageBody and $vRecipientID) $sOutputHtml = $oMailBox -> sendMessage($sMessageSubject, $sMessageBody, $vRecipientID, $aComposeSettings); else $sOutputHtml = _t_err( '_please_fill_next_fields_first' ); break; case 'auto_complete' : if ( $sAutoCompleteQ ) $sOutputHtml = $oMailBox -> getAutoCompleteList($sAutoCompleteQ); break; case 'get_thumbnail' : $iRecipientID = getId($vRecipientID); if ( $iRecipientID ) $sOutputHtml = get_member_thumbnail($iRecipientID, 'none'); break; } // try to define the callback function name ; if ( isset($_GET['callback_function']) and in_array($_GET['callback_function'], $aCallbackFunctions) ) { if (method_exists($oMailBox, $_GET['callback_function'])) $sOutputHtml = $oMailBox -> $_GET['callback_function'](); } echo $sOutputHtml; exit; } // ** prepare to output page in normal mode ; $_page['name_index'] = 7; $_page['header'] = _t( "_Mailbox" ); $_page['header_text'] = _t( "_Mailbox" ); $GLOBALS['oTopMenu'] -> setCustomSubIconUrl( getTemplateIcon('bx_mymail.png') ); $_page['css_name'] = 'mail.css'; $_page['js_name'] = 'mail_box.js'; $_page['extra_js'] = $oTemplConfig -> sTinyMceEditorCompactJS; $_ni = $_page['name_index']; if ( $aMailBoxSettings['member_id'] ) { $sOutputHtml = $oMailBox -> getCode(); } else { login_form( _t( "_LOGIN_OBSOLETE" ), 0, false ); } $_page_cont[$_ni]['page_main_code'] = $sOutputHtml; PageCode(); ?>