Changeset 4038


Ignore:
Timestamp:
04/15/11 10:27:39 (13 years ago)
Author:
alexandrecorreia
Message:

Ticket #1751 - Corrigido problema na lentidao da abertura das mailboxes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/expressoMail1_2/inc/class.imap_functions.inc.php

    r4022 r4038  
    9898        } 
    9999 
    100         function get_range_msgs2($params) 
    101         { 
    102                 $folder = $params['folder']; 
    103                 $msg_range_begin = $params['msg_range_begin']; 
    104                 $msg_range_end = $params['msg_range_end']; 
    105                 $sort_box_type = $params['sort_box_type']; 
    106                 $sort_box_reverse = $params['sort_box_reverse']; 
    107                 $search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
    108  
    109                 if(!$this->mbox || !is_resource($this->mbox)) 
    110                         $this->mbox = $this->open_mbox($folder); 
    111  
    112                 $return = array(); 
     100    function get_range_msgs2($params) 
     101    { 
     102        // Free others requests 
     103        session_write_close(); 
     104         
     105        $folder                         = $params['folder']; 
     106        $msg_range_begin        = $params['msg_range_begin']; 
     107        $msg_range_end          = $params['msg_range_end']; 
     108        $sort_box_type          = $params['sort_box_type']; 
     109        $sort_box_reverse       = $params['sort_box_reverse']; 
     110        $search_box_type        = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
     111 
     112        if( !$this->mbox || !is_resource( $this->mbox ) ) 
     113            $this->mbox = $this->open_mbox($folder); 
     114 
     115                $name_folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1"); 
     116 
     117        $return = array(); 
     118        //Para enviar o offset entre o timezone definido pelo usuário e GMT 
     119        $return['offsetToGMT'] = $this->functions->CalculateDateOffset(); 
     120                                           
     121        $msgs_info   = imap_status( $this->mbox,"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$name_folder ,SA_ALL ); 
     122        $num_msgs    = $msgs_info->messages; //imap_num_msg($this->mbox); 
     123         
     124        $sort_array_msg    = $this->get_msgs( $folder, $sort_box_type, $search_box_type, $sort_box_reverse, $msg_range_begin, $msg_range_end ); 
    113125                 
    114                 if(!$search_box_type || $search_box_type=="UNSEEN" || $search_box_type=="SEEN") { 
    115                         $msgs_info = imap_mailboxmsginfo($this->mbox);           
    116  
    117  
    118                         $return['tot_unseen'] = $search_box_type == "SEEN" ? 0 : $msgs_info->Unread; 
    119  
    120                         $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$msg_range_end); 
    121  
    122                         $num_msgs = ($search_box_type=="UNSEEN") ? $msgs_info->Unread : (($search_box_type=="SEEN") ? ($msgs_info->Nmsgs - $msgs_info->Unread) : $msgs_info->Nmsgs); 
    123  
     126                // Total Msg Unseen 
     127        $return['tot_unseen']   = $msgs_info->unseen; 
     128 
     129                // Total Msg 
     130        $return['num_msgs']             = $msgs_info->messages; 
     131        
     132        if( is_array($sort_array_msg) ) 
     133        { 
    124134                        $i = 0; 
    125                         if(is_array($sort_array_msg)){ 
    126                                 foreach($sort_array_msg as $msg_number => $value) 
    127                                 { 
    128                                         $temp = $this->get_info_head_msg($msg_number); 
    129                                         if(!$temp) 
    130                                                 return false; 
    131  
    132                                         $return[$i] = $temp; 
    133                                         $i++; 
    134                                 } 
    135                         } 
    136                         $return['num_msgs'] =  $num_msgs; 
    137                 } 
    138                 else { 
    139                         $num_msgs = imap_num_msg($this->mbox);   
    140                         $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$num_msgs); 
    141  
    142  
    143                         $return['tot_unseen'] = 0; 
    144                         $i = 0;          
    145  
    146                         if(is_array($sort_array_msg)){ 
    147                                 foreach($sort_array_msg as $msg_number => $value) 
    148                                 { 
    149                                         $temp = $this->get_info_head_msg($msg_number); 
    150                                         if(!$temp) 
    151                                                 return false; 
    152                                  
    153                                         if($temp['Unseen'] == 'U' || $temp['Recent'] == 'N'){ 
    154                                                 $return['tot_unseen']++; 
    155                                         } 
    156                                  
    157                                         if($i <= ($msg_range_end-$msg_range_begin)) 
    158                                                 $return[$i] = $temp; 
    159                                         $i++; 
    160                                 } 
    161                         } 
    162                         $return['num_msgs'] = count($sort_array_msg)+($msg_range_begin-1); 
    163  
    164                 } 
    165                 return $return; 
    166         } 
    167  
    168         function get_info_head_msg($msg_number) { 
     135                         
     136            foreach($sort_array_msg as $msg_number => $value) 
     137            { 
     138                $temp = $this->get_info_head_msg($msg_number); 
     139                
     140                if(!$temp) 
     141                    return false; 
     142 
     143                if($i <= ($msg_range_end-$msg_range_begin)) 
     144                    $return[$i] = $temp; 
     145                
     146                $i++; 
     147            } 
     148        } 
     149        
     150        return $return; 
     151    } 
     152 
     153        function get_info_head_msg($msg_number) 
     154        { 
    169155                $head_array = array(); 
    170156                include_once("class.imap_attachment.inc.php"); 
Note: See TracChangeset for help on using the changeset viewer.