Changeset 5172 for trunk/expressoMail1_2/inc/class.imap_functions.inc.php
- Timestamp:
- 11/11/11 16:42:49 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.imap_functions.inc.php
r5158 r5172 595 595 function get_info_msgs($params) { 596 596 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{ 597 652 $return = array(); 598 653 $new_params = array(); … … 626 681 $this->set_messages_flag($array_msgs); 627 682 } 628 629 683 return $return; 684 } 630 685 } 631 686 … … 2069 2124 if($mbox_stream) 2070 2125 imap_close($mbox_stream, CL_EXPUNGE); 2126 2127 $return['status'] = true; 2071 2128 return $return; 2072 2129 } … … 3469 3526 } 3470 3527 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']); 3476 3535 $sel_msgs = explode(",", $params['selected_messages']); 3477 3536 @reset($sel_msgs); … … 3485 3544 $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 3486 3545 } 3487 } 3546 } 3488 3547 @ksort($sorted_msgs); 3489 3548 $last_return = false; … … 3491 3550 $params['msgs_number'] = $msgs_number; 3492 3551 $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); 3498 3631 $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 3501 3656 return $last_return; 3502 3657 } … … 5066 5221 5067 5222 if(!isset($params['sort'])) 5068 $params['sort'] = SORTDATE;5223 $params['sort'] = 'SORTDATE_REVERSE'; 5069 5224 5070 5225 $params['search'] = mb_convert_encoding($params['search'], 'UTF-8',mb_detect_encoding($params['search'].'x', 'UTF-8, ISO-8859-1')); … … 5081 5236 { 5082 5237 $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'); 5084 5239 5085 5240 $count += count($msgIds); … … 5140 5295 } 5141 5296 5142 $return['msgs'] = $this->array_msort($return['msgs'] , array( $sA => SORT_ASC));5143 5297 5298 if($params['sort'] !== 'SORTDATE_REVERSE') 5144 5299 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)); 5147 5303 5148 5304 $k = -1;
Note: See TracChangeset
for help on using the changeset viewer.