Ignore:
Timestamp:
11/11/11 16:42:49 (12 years ago)
Author:
wmerlotto
Message:

Ticket #2305 - Enviando alteracoes, desenvolvidas internamente na Prognus. Ultimas sincronizacoes...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r5158 r5172  
    595595        function get_info_msgs($params) { 
    596596                include_once("class.exporteml.inc.php"); 
     597                 
     598                if(array_key_exists('messages', $params)){ 
     599                        $sel_msgs = explode(",", $params['messages']); 
     600                        @reset($sel_msgs); 
     601                        $sorted_msgs = array(); 
     602                        foreach($sel_msgs as $idx => $sel_msg) { 
     603                                $sel_msg = explode(";", $sel_msg); 
     604                                if(array_key_exists($sel_msg[0], $sorted_msgs)){ 
     605                                        $sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1]; 
     606                                } 
     607                                else { 
     608                                        $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 
     609                                } 
     610                        } 
     611                        unset($sorted_msgs['']);         
     612                 
     613                        $return = array(); 
     614                        $array_names_keys = array_keys($sorted_msgs); 
     615                         
     616                        for($i = 0; $i < count($sorted_msgs); $i++){ 
     617                         
     618                                $new_params = array(); 
     619                                $attach_params = array(); 
     620                         
     621                                $new_params["msg_folder"]= $array_names_keys[$i]; 
     622                                $attach_params["folder"] = $params["folder"]; 
     623                                $msgs = explode(",",$sorted_msgs[$array_names_keys[$i]]); 
     624                                $exporteml = new ExportEml(); 
     625                                $unseen_msgs = array(); 
     626                                foreach($msgs as $msg_number) { 
     627                                        $new_params["msg_number"] = $msg_number; 
     628                                        //ini_set("display_errors","1"); 
     629                                        $msg_info = $this->get_info_msg($new_params); 
     630 
     631                                        $this->mbox = $this->open_mbox($array_names_keys[$i]); //Não sei porque, mas se não abrir de novo a caixa dá erro. 
     632                                        $msg_info['header'] = $this->get_info_head_msg($msg_number); 
     633 
     634                                        $attach_params["num_msg"] = $msg_number; 
     635                                        $msg_info['array_attach'] = $exporteml->get_attachments_in_array($attach_params); 
     636                                        imap_close($this->mbox); 
     637                                        $this->mbox=false; 
     638                                        array_push($return,serialize($msg_info)); 
     639                                 
     640                                        if($msg_info['Unseen'] == "U" || $msg_info['Recent'] == "N"){ 
     641                                                        array_push($unseen_msgs,$msg_number); 
     642                                        } 
     643                                } 
     644                        } 
     645                        if($unseen_msgs){ 
     646                                $msgs_list = implode(",",$unseen_msgs); 
     647                                $array_msgs = array('folder' => $new_params["msg_folder"], "msgs_to_set" => $msgs_list, "flag" => "unseen"); 
     648                                $this->set_messages_flag($array_msgs); 
     649                        } 
     650                        return $return; 
     651                }else{ 
    597652                $return = array(); 
    598653                $new_params = array(); 
     
    626681                        $this->set_messages_flag($array_msgs); 
    627682                } 
    628  
    629683                return $return; 
     684        } 
    630685        } 
    631686 
     
    20692124                if($mbox_stream) 
    20702125                        imap_close($mbox_stream, CL_EXPUNGE); 
     2126                         
     2127                $return['status'] = true; 
    20712128                return $return; 
    20722129        } 
     
    34693526        } 
    34703527 
    3471  
    3472         function move_search_messages($params){ 
    3473                 $params['selected_messages'] = urldecode($params['selected_messages']); 
    3474                 $params['new_folder'] = urldecode($params['new_folder']); 
    3475                 $params['new_folder_name'] = urldecode($params['new_folder_name']); 
     3528        function move_delete_search_messages($params){ 
     3529                $move = false; 
     3530                $msg_no_move = ""; 
     3531         
     3532                $params['selected_messages'] = urldecode($params['selected_messages_move']); 
     3533                $params['new_folder'] = urldecode($params['new_folder_move']); 
     3534                $params['new_folder_name'] = urldecode($params['new_folder_name_move']); 
    34763535                $sel_msgs = explode(",", $params['selected_messages']); 
    34773536                @reset($sel_msgs); 
     
    34853544                                $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 
    34863545                         } 
    3487                 } 
     3546                }                
    34883547                @ksort($sorted_msgs); 
    34893548                $last_return = false; 
     
    34913550                        $params['msgs_number'] = $msgs_number; 
    34923551                        $params['folder'] = $folder; 
    3493                         if($params['new_folder'] && $folder != $params['new_folder']){ 
    3494                                 $last_return = $this -> move_messages($params); 
    3495                         } 
    3496                         elseif(!$params['new_folder'] || $params['delete'] ){ 
    3497                                 $last_return = $this -> delete_msgs($params); 
     3552                                 
     3553                        $last_return = $this->move_messages($params); 
     3554                         
     3555                        if($last_return['status']){ 
     3556                                $move = true; 
     3557                        }else{ 
     3558                                $msg_no_move =  $params['msgs_number']; 
     3559                        } 
     3560                } 
     3561                $sel_msgs = null;                
     3562                $params['selected_messages'] = urldecode($params['selected_messages_delete']); 
     3563                $params['new_folder'] = urldecode($params['new_folder_delete']); 
     3564                $params['new_folder_name'] = urldecode($params['new_folder_name_delete']); 
     3565                $sel_msgs = explode(",", $params['selected_messages']); 
     3566                @reset($sel_msgs); 
     3567                $sorted_msgs = array(); 
     3568                foreach($sel_msgs as $idx => $sel_msg) { 
     3569                        $sel_msg = explode(";", $sel_msg); 
     3570                         if(array_key_exists($sel_msg[0], $sorted_msgs)){ 
     3571                                $sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1]; 
     3572                         } 
     3573                         else { 
     3574                                $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 
     3575                         } 
     3576                } 
     3577                @ksort($sorted_msgs); 
     3578                $last_return = false; 
     3579                foreach($sorted_msgs as $folder => $msgs_number) { 
     3580                        $params['msgs_number'] = $msgs_number; 
     3581                        $params['folder'] = $folder; 
     3582                 
     3583                        $params['folder'] = $params['new_folder_delete']; 
     3584                        $last_return = $this->delete_msgs($params); 
     3585                        $last_return['deleted'] = true; 
     3586                        if($last_return['status']){ 
     3587                                $move = true; 
     3588                        }else{ 
     3589                                $msg_no_move =  $params['msgs_number']; 
     3590                        } 
     3591                 
     3592                } 
     3593         
     3594                if($move) 
     3595                        $last_return['move'] = true; 
     3596                         
     3597                if($msg_no_move != "") 
     3598                        $last_return['no_move'] = $msg_no_move; 
     3599                 
     3600                return $last_return; 
     3601        } 
     3602 
     3603        function move_search_messages($params){ 
     3604                $params['selected_messages'] = urldecode($params['selected_messages']); 
     3605                $params['new_folder'] = urldecode($params['new_folder']); 
     3606                $params['new_folder_name'] = urldecode($params['new_folder_name']); 
     3607                $sel_msgs = explode(",", $params['selected_messages']); 
     3608                $move = false; 
     3609                $msg_no_move = ""; 
     3610                 
     3611                @reset($sel_msgs); 
     3612                $sorted_msgs = array(); 
     3613                foreach($sel_msgs as $idx => $sel_msg) { 
     3614                        $sel_msg = explode(";", $sel_msg); 
     3615                         if(array_key_exists($sel_msg[0], $sorted_msgs)){ 
     3616                                $sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1]; 
     3617                         } 
     3618                         else { 
     3619                                $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 
     3620                         } 
     3621                } 
     3622                @ksort($sorted_msgs); 
     3623                $last_return = false; 
     3624                foreach($sorted_msgs as $folder => $msgs_number) { 
     3625                        $params['msgs_number'] = $msgs_number; 
     3626                        $params['folder'] = $folder; 
     3627                         
     3628                if($params['delete'] === 'true'){ 
     3629                        $params['folder'] = $params['new_folder']; 
     3630                        $last_return = $this->delete_msgs($params); 
    34983631                                $last_return['deleted'] = true; 
    3499                         } 
    3500                 } 
     3632                         
     3633                        if($last_return['status']){ 
     3634                                $move = true; 
     3635                        }else{ 
     3636                                $msg_no_move =  $params['msgs_number']; 
     3637                        } 
     3638                         
     3639                }else{ 
     3640                                $last_return = $this->move_messages($params); 
     3641                                 
     3642                                if($last_return['status']){ 
     3643                                        $move = true; 
     3644                                }else{ 
     3645                                        $msg_no_move =  $params['msgs_number']; 
     3646                        } 
     3647                } 
     3648                } 
     3649                 
     3650                if($move) 
     3651                        $last_return['move'] = true; 
     3652                         
     3653                if($msg_no_move != "") 
     3654                        $last_return['no_move'] = $msg_no_move; 
     3655                         
    35013656                return $last_return; 
    35023657        } 
     
    50665221                 
    50675222                if(!isset($params['sort'])) 
    5068                         $params['sort'] = SORTDATE; 
     5223                        $params['sort'] = 'SORTDATE_REVERSE'; 
    50695224                                 
    50705225                $params['search'] = mb_convert_encoding($params['search'], 'UTF-8',mb_detect_encoding($params['search'].'x', 'UTF-8, ISO-8859-1')); 
     
    50815236                { 
    50825237                        $imap = $this->open_mbox( $folder ) ; 
    5083                         $msgIds = imap_sort( $imap , SORTDATE , 0 , SE_UID , $search ,'UTF-8'); 
     5238                        $msgIds = imap_sort( $imap , SORTDATE , 1 , SE_UID , $search ,'UTF-8'); 
    50845239                                                 
    50855240                        $count += count($msgIds);   
     
    51405295        }  
    51415296         
    5142                 $return['msgs'] = $this->array_msort($return['msgs'] , array( $sA => SORT_ASC)); 
    51435297                         
     5298                if($params['sort'] !== 'SORTDATE_REVERSE') 
    51445299                if(strpos($params['sort'],'REVERSE') !== false) 
    5145                         $return['msgs'] = array_reverse($return['msgs']);        
    5146                                  
     5300                                $return['msgs'] = $this->array_msort($return['msgs'] , array( $sA => SORT_DESC)); 
     5301                        else 
     5302                                $return['msgs'] = $this->array_msort($return['msgs'] , array( $sA => SORT_ASC)); 
    51475303                 
    51485304                $k = -1; 
Note: See TracChangeset for help on using the changeset viewer.