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.exporteml.inc.php

    r5134 r5172  
    183183        // apenas um arquivo a ser exportado,  
    184184        // não seja criado em zip  
     185        // 
     186        // Funcao altarada para exportar uma ou 
     187        // varia mensagens de um pesquisa 
     188 
    185189        function makeAll($params) { 
     190        //Exporta menssagens selecionadas na pesquisa 
     191        if($params['folder'] === 'false'){ 
     192                 
     193                $this->folder = $params['folder']; 
     194                $error = False; 
     195                $fileNames = ""; 
     196                 
     197                $sel_msgs = explode(",", $params['msgs_to_export']); 
     198                @reset($sel_msgs); 
     199                $sorted_msgs = array(); 
     200                foreach($sel_msgs as $idx => $sel_msg) { 
     201                        $sel_msg = explode(";", $sel_msg); 
     202                        if(array_key_exists($sel_msg[0], $sorted_msgs)){ 
     203                                $sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1]; 
     204                        } 
     205                        else { 
     206                                $sorted_msgs[$sel_msg[0]] = $sel_msg[1]; 
     207                        } 
     208                } 
     209                         
     210                unset($sorted_msgs['']);                         
     211 
     212                 
     213                // Verifica se as n mensagens selecionadas 
     214                // se encontram em um mesmo folder 
     215                if (count($sorted_msgs)==1){ 
     216                                                         
     217                        $array_names_keys = array_keys($sorted_msgs); 
     218                        $this->folder = mb_convert_encoding($array_names_keys[0], "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 
     219                        $msg_number = explode(',', $sorted_msgs[$array_names_keys[0]]); 
     220                        $tempDir = $this->tempDir; 
     221                        $this->connectImap(); 
     222                         
     223                        //verifica se apenas uma mensagem foi selecionada e exportar em .eml                     
     224                        if(count($msg_number) == 1){ 
     225                                $header         = $this->getHeader($msg_number[0]); 
     226                                $body           = $this->getBody($msg_number[0]);                        
     227                                $sEMLData       = $this->parseEml($header, $body);                      
     228                                $fileName       = $this->CreateFileEml($sEMLData, $tempDir, $msg_number[0]."_".$_SESSION[ 'phpgw_session' ][ 'session_id' ]); 
     229                 
     230                                 
     231                                imap_close($this->mbox_stream); 
     232                                if (!$fileName) { 
     233                                        return false; 
     234                                }else{ 
     235                                        return $tempDir.'/'.$fileName; 
     236                                } 
     237                        } 
     238                         
     239                        //cria um .zip com as mensagens selecionadas 
     240                        for($i = 0; $i < count($msg_number); $i++)  
     241                        { 
     242                                $header         = $this-> getHeader($msg_number[$i]);                                                                                    
     243                                $body           = $this-> getBody($msg_number[$i]);                      
     244                                $sEMLData       = $this -> parseEml($header, $body);                    
     245                                $fileName       = $this -> CreateFileEml($sEMLData, $tempDir, $msg_number[$i]); 
     246 
     247                                if(!$fileName)  
     248                                { 
     249                                        $error = True;                                  
     250                                        break; 
     251                                } else{ 
     252                                        $fileNames .= "\"".$fileName."\" ";                      
     253                                } 
     254                        } 
     255                        imap_close($this->mbox_stream); 
     256 
     257                        $nameFileZip = 'False';                  
     258                        if($fileNames && !$error)  
     259                        { 
     260                                $nameFileZip = $this -> createFileZip($fileNames, $tempDir); 
     261                                if($nameFileZip)  
     262                                {                
     263                                        $file = $tempDir.'/'.$nameFileZip; 
     264                                } else { 
     265                                        $file = false; 
     266                                }                                                                
     267                        } 
     268                        else  
     269                        { 
     270                                $file = false; 
     271                        } 
     272 
     273                        return $file; 
     274                 
     275                //exporta mensagens de diferentes pastas 
     276                }else{ 
     277                        $array_names_keys = array_keys($sorted_msgs); 
     278                         
     279                        for($i = 0; $i < count($array_names_keys); $i++){  
     280                                $this->folder = mb_convert_encoding($array_names_keys[$i], "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 
     281                                $msg_number = explode(',', $sorted_msgs[$array_names_keys[$i]]); 
     282                                $tempDir = $this->tempDir; 
     283                                $this->connectImap(); 
     284                                 
     285                                for($j = 0; $j < count($msg_number); $j++)  
     286                                { 
     287                                        $header         = $this-> getHeader($msg_number[$j]);                                                                                    
     288                                        $body           = $this-> getBody($msg_number[$j]);                      
     289                                        $sEMLData       = $this -> parseEml($header, $body);                    
     290                                        $fileName       = $this -> CreateFileEml($sEMLData, $tempDir, $msg_number[$j]); 
     291 
     292                                        if(!$fileName)  
     293                                        { 
     294                                                $error = True;                                  
     295                                                break; 
     296                                        } else{ 
     297                                                $fileNames .= "\"".$fileName."\" ";                      
     298                                        } 
     299                                } 
     300                                imap_close($this->mbox_stream); 
     301                        } 
     302                        $nameFileZip = 'False';                  
     303                        if($fileNames && !$error)  
     304                        { 
     305                                $nameFileZip = $this -> createFileZip($fileNames, $tempDir); 
     306                                if($nameFileZip)  
     307                                {                
     308                                        $file = $tempDir.'/'.$nameFileZip; 
     309                                } else { 
     310                                        $file = false; 
     311                                }                                                                
     312                        } 
     313                        else  
     314                        { 
     315                                $file = false; 
     316                        } 
     317                        return $file; 
     318                } 
     319        }else{ 
    186320                // Exportacao de mensagens arquivadas localmente 
    187321                if($params['l_msg'] == "t") 
     
    235369                { 
    236370                        $this-> folder = $params['folder']; 
    237                         $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8"); 
     371                                $this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8, ISO-8859-1, UTF7-IMAP"); 
    238372                        $array_ids = explode(',', $params['msgs_to_export']); 
    239373                        $error = False; 
     
    293427                        return $file; 
    294428                } 
     429    } 
    295430    } 
    296431 
Note: See TracChangeset for help on using the changeset viewer.