main_content.inc
上传用户:xiao730204
上传日期:2007-01-04
资源大小:141k
文件大小:9k
- <?php
- /*
- To add cached info for the sorting of the mailbox.
- We'll need to have the sort direction cached
- and then set a flag for the direction, so that it doesn't
- reask for it to sort.
- */
- Function is_global_var( $key_var ) {
- reset( $GLOBALS );
- while( list( $key, $value ) = each( $GLOBALS ) ) {
- if ( $key == $key_var ) {
- return 1;
- }
- }
- }
- /* Users are allowed to change folders */
- $changed_folder = 0;
- if ( ($folder != '' && $folder != $mail_folder) &&
- $mailbox_action != 'message_move' ) {
- $mail_folder = $folder;
- $changed_folder = 1;
- }
- $url_util = new UrlObject();
- $server_settings_db = new MailServer_Settings_Db();
- $mail = new Mail();
- $mail->server = $current_server_settings->server_name;
- $mail->user_name = $current_server_settings->server_username;
- $mail->password = $current_server_settings->server_password;
- $mail->folder = $mail_folder;
- /*
- The imap true hard code will change as we get other server
- type support
- */
- $mail->imap = true;
- echo( '<!-- ' . "n" );
- echo( 'First mail call... ' . "n" );
- echo( 'if there is nothing past here imap is dorked' . "n" );
- echo( '-->' . "n" );
- $folders = Array();
- $user_folder_list = '';
- if ( $default->pimp->folders == 1 ) {
- $folders = $mail->GetBareFolderNameList( $mail->ListFolders() );
- $folders[] = 'INBOX';
- for( $i = 0; $i < count( $folders ); $i++ ) {
- $folder_name = $folders[ $i ];
- $is_selected = '';
- if ( $folder_name == $mail_folder ) {
- $is_selected = ' selected';
- }
- $user_folder_list .=
- '<option' . $is_selected . '>' . $folder_name;
- }
- $user_folder_list =
- '<select name="folder">' .
- $user_folder_list .
- '</select>'
- ;
- }
- $template_obj->Register( 'user_folder_list', $user_folder_list );
- $ret_vals = $mail->GetFolder( $mail_folder );
- if ( $ret_vals[ 0 ] == 1 ) {
- //echo( 'NO CALL TO GETSTATS' );
- $folder_obj = $ret_vals[ 1 ];
- $folder_obj->GetStats();
- } else {
- $folder_obj = new MailFolder();
- $folder_obj->folder = 'INBOX';
- }
- if ( $page == '' ) {
- $page = 1;
- }
- $page_nav = new PageNavigator();
- $page_nav->num_items = $folder_obj->count;
- $page_nav->num_items_per_page = 20;
- $page_nav->current_page = $page;
- $page_nav->Calculate();
- if (! is_array( $selected_messages )) {
- $selected_messages= Array();
- $session->Add(
- $temp = new SessionElement( 'selected_messages', 'array' )
- );
- }
- /* Mailbox start */
- include( './pimp/templates/mailbox/mailbox_header.inc' );
- /* Top toolbar */
- $template_obj->ParseTemplate(
- './pimp/templates/mailbox/templates/actions.inc'
- );
- if ( $page_nav->first_item == 0 ) {
- $template_obj->ParseTemplate(
- './pimp/templates/mailbox/templates/no_messages.inc'
- );
- } else {
- /* page navigator */
- include( './pimp/templates/mailbox/page_nav.inc' );
- /* Color meanings */
- $template_obj->ParseTemplate(
- './pimp/templates/mailbox/color_legend.inc'
- );
- }
- if ( $mailbox_action == 'expunge' ) {
- $folder_obj->ExpungeDeletedMessages();
- /* jic they had some deleted messages selected */
- $selected_messages = Array();
- }
- $sort_by = '';
- $sort_flag = SORTARRIVAL;
- $sort_flag_reversed = 0;
- include( './pimp/templates/mailbox/sort_urls.inc' );
- switch( $form_mode ) {
- case PIMP_MAIL_SORT_ASC_SUBJECT:
- $sort_flag = SORTSUBJECT;
- $sort_flag_reversed = 0;
- $subject_sort_asc_url = '>>';
- break;
- case PIMP_MAIL_SORT_REV_SUBJECT:
- $sort_flag = SORTSUBJECT;
- $sort_flag_reversed = 1;
- $subject_sort_rev_url = '<<';
- break;
- case PIMP_MAIL_SORT_ASC_FROM:
- $sort_flag = SORTFROM;
- $sort_flag_reversed = 0;
- $from_sort_asc_url = '>>';
- break;
- case PIMP_MAIL_SORT_REV_FROM:
- $sort_flag = SORTFROM;
- $sort_flag_reversed = 1;
- $from_sort_rev_url = '<<';
- break;
- case PIMP_MAIL_SORT_ASC_DATE:
- $sort_flag = SORTARRIVAL;
- $sort_flag_reversed = 0;
- $date_sort_asc_url = '>>';
- break;
- case PIMP_MAIL_SORT_REV_DATE:
- $sort_flag = SORTARRIVAL;
- $sort_flag_reversed = 1;
- $date_sort_rev_url = '<<';
- break;
- case PIMP_MAIL_SORT_ASC_SIZE:
- $sort_flag = SORTSIZE;
- $sort_flag_reversed = 0;
- $size_sort_asc_url = '>>';
- break;
- case PIMP_MAIL_SORT_REV_SIZE:
- $sort_flag = SORTSIZE;
- $sort_flag_reversed = 1;
- $size_sort_rev_url = '<<';
- break;
- default:
- $form_mode = PIMP_MAIL_SORT_REV_DATE;
- $sort_flag = SORTARRIVAL;
- $sort_flag_reversed = 1;
- $date_sort_rev_url = '<<';
- break;
- }
- if ( $page_nav->first_item == 0 ) {
- } else {
- /*
- SORTARRIVAL is the default
- SORTFROM
- SORTSIZE
- SORTSUBJECT
- */
- $sorted_message_ids = $folder_obj->Sort(
- $sort_flag,
- $sort_flag_reversed
- );
- /* Message header title.inc */
- include( './pimp/templates/mailbox/message_headers_title.inc' );
- /*
- We subtract 1 from the first and last item since
- arrays count with a start of 0 humans do not.
- */
- /* Set the selected items */
- for(
- $t_id = $page_nav->first_item - 1;
- $t_id < $page_nav->last_item;
- $t_id++ ) {
- $message_var = 'message_id_' . $t_id;
- if ( is_global_var( $message_var ) ) {
- $selected_messages[ $sorted_message_ids[ $t_id ] ] = 1;
- } else {
- if ( $selected_messages[ $sorted_message_ids[ $t_id ] ] == 1 ) {
- $selected_messages[ $sorted_message_ids[ $t_id ] ] = 0;
- }
- }
- } /* End Select messages */
- if ( $mailbox_action == 'select_none' || $changed_folder == 1) {
- $selected_messages = Array();
- }
- if ( $mailbox_action == 'message_move' && $changed_folder == 0 ) {
- while( list( $message_id, $true ) = each( $selected_messages ) ) {
- $folder_obj->MoveMessage( $folder, $message_id );
- }
- /* Reset the selection */
- $selected_messages = Array();
- }
- if ( $mailbox_action == 'message_delete' && $changed_folder == 0 ) {
- while( list( $message_id, $true ) = each ( $selected_messages ) ) {
- $folder_obj->DeleteMessage( $message_id );
- }
- /* If we want to deslect the messages post deletion mark */
- /* $selected_messages = Array(); */
- }
- if ( $mailbox_action == 'message_undelete' && $changed_folder == 0) {
- while( list( $message_id, $true ) = each ( $selected_messages ) ) {
- $folder_obj->UnDeleteMessage( $message_id );
- }
- /* If we want to deslect the messages post undeletion mark */
- /* $selected_messages = Array(); */
- }
- for(
- $i = ($page_nav->first_item - 1);
- $i < ($page_nav->last_item );
- $i++ ) {
- if ( $mailbox_action == 'select_all' && $changed_folder != 1 ) {
- $selected_messages[ $sorted_message_ids[ $i ] ] = 1;
- }
- /* Fetch the message header */
- list( $ret, $current_header ) = $folder_obj->GetMessageHeader(
- $sorted_message_ids[ $i ]
- );
- if ( ! is_object( $current_header ) ) {
- /* Error trapping via a overloaded object */
- $current_header = new BaseObject();
- }
- /* Pretty format the fields and determin the row color */
- $row_color = 'mail_read';
- if (
- $current_header->Recent == 'N' || $current_header->Unseen == 'U'
- ) {
- /* New */
- $row_color = 'mail_new';
- }
- if ( $current_header->Draft == 'X' ) {
- }
- if ( $current_header->Flagged == 'F' ) {
- }
- if ( $current_header->Deleted == 'D' ) {
- /* Marked for deletion */
- $row_color = 'mail_deleted';
- }
- /* Format the time */
- $time_obj = new TimeObject();
- $time_obj->time = strtotime( $current_header->date );
- $time_obj->FormatTime();
- $cur_time_obj = new TimeObject();
- $cur_time_obj->GetLocalTime();
- $cur_time_obj->FormatTime();
- $message_date = '';
- $message_date =
- $time_obj->hour . ':' . $time_obj->min . ':' . $time_obj->am_pm;
- if (
- ($cur_time_obj->year != $time_obj->year)||
- ($cur_time_obj->month != $time_obj->month ) ||
- ($cur_time_obj->day != $time_obj->day)
- ) {
- $message_date .= ' ' .
- $time_obj->year . '/' . $time_obj->month . '/' . $time_obj->day;
- }
- /* Format the message size */
- $message_size = '';
- $filesize_obj = new FileSizeObject();
- $message_size =
- $filesize_obj->FormatFileSize( $current_header->Size );
- $read_message = $url_util->PostUrl(
- $default->base_url,
- Array(
- 'session_id' => $session_id,
- 'form_mode' => PIMP_MAIL_READ_MESSAGE,
- 'message_id' => $sorted_message_ids[ $i ],
- 'page' => $page,
- 'folder' => $folder_obj->folder,
- 'sort_by' => $form_mode
- )
- );
-
- include( './pimp/templates/mailbox/message_headers_row.inc' );
- } // END loop throug messages
- /* page navigator */
- include( './pimp/templates/mailbox/page_nav.inc' );
- } // END if no items
- /* Mailbox end */
- include( './pimp/templates/mailbox/mailbox_footer.inc' );
- ?>