Ignore:
Timestamp:
10/21/10 15:40:08 (14 years ago)
Author:
eduardoalex
Message:

Ticket #1210 - Corrigido erro da paginacao na selecao de algum filtro

File:
1 edited

Legend:

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

    r3391 r3392  
    9191                $sort_box_reverse = $params['sort_box_reverse']; 
    9292                $search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
    93                 $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$msg_range_end); 
     93 
     94                if(!$this->mbox || !is_resource($this->mbox)) 
     95                        $this->mbox = $this->open_mbox($folder); 
    9496 
    9597                $return = array(); 
    96                 $i = 0; 
    97                 $num_msgs = imap_num_msg($this->mbox); 
    98                 if(is_array($sort_array_msg)){ 
    99                         foreach($sort_array_msg as $msg_number => $value) 
    100                         { 
    101                                 $temp = $this->get_info_head_msg($msg_number); 
    102                                 $temp['msg_sample'] = $this->get_msg_sample($msg_number); 
    103                                 if(!$temp) 
     98                 
     99                if(!$search_box_type || $search_box_type=="UNSEEN" || $search_box_type=="SEEN") { 
     100                        $msgs_info = imap_status($this->mbox,"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder,SA_ALL); 
     101 
     102 
     103                        $return['tot_unseen'] = $search_box_type == "SEEN" ? 0 : $msgs_info->unseen; 
     104 
     105                        $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$msg_range_end); 
     106 
     107                        $num_msgs = ($search_box_type=="UNSEEN") ? $msgs_info->unseen : (($search_box_type=="SEEN") ? ($msgs_info->messages - $msgs_info->unseen) : $msgs_info->messages); 
     108 
     109                        $i = 0; 
     110                        if(is_array($sort_array_msg)){ 
     111                                foreach($sort_array_msg as $msg_number => $value) 
    104112                                { 
    105                                         return false; 
    106                                 } 
    107  
    108                                 $return[$i] = $temp; 
    109                                 $i++; 
    110                         } 
    111                 } 
    112                 $return['num_msgs'] = $num_msgs; 
    113  
     113                                        $temp = $this->get_info_head_msg($msg_number); 
     114                                        if(!$temp) 
     115                                                return false; 
     116 
     117                                        $return[$i] = $temp; 
     118                                        $i++; 
     119                                } 
     120                        } 
     121                        $return['num_msgs'] =  $num_msgs; 
     122                } 
     123                else { 
     124                        $num_msgs = imap_num_msg($this->mbox);   
     125                        $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$num_msgs); 
     126 
     127 
     128                        $return['tot_unseen'] = 0; 
     129                        $i = 0;          
     130 
     131                        if(is_array($sort_array_msg)){ 
     132                                foreach($sort_array_msg as $msg_number => $value) 
     133                                { 
     134                                        $temp = $this->get_info_head_msg($msg_number); 
     135                                        if(!$temp) 
     136                                                return false; 
     137                                 
     138                                        if($temp['Unseen'] == 'U' || $temp['Recent'] == 'N'){ 
     139                                                $return['tot_unseen']++; 
     140                                        } 
     141                                 
     142                                        if($i <= ($msg_range_end-$msg_range_begin)) 
     143                                                $return[$i] = $temp; 
     144                                        $i++; 
     145                                } 
     146                        } 
     147                        $return['num_msgs'] = count($sort_array_msg)+($msg_range_begin-1); 
     148 
     149                } 
    114150                return $return; 
    115151        } 
Note: See TracChangeset for help on using the changeset viewer.