Ignore:
Timestamp:
06/14/12 09:02:04 (12 years ago)
Author:
marcieli
Message:

Ticket #2764 - Após o merge e correção de bugs, commit da melhoria no trunk

File:
1 edited

Legend:

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

    r6483 r6487  
    10951095        function get_info_msg($params) 
    10961096        { 
    1097          
    10981097                if(isset($params['alarm'])){ 
    10991098                        $alarm = $params['alarm']; 
     
    53325331        
    53335332   } 
     5333         
     5334         
     5335        /** 
     5336        * Método que retorna as mensagens com a flag $FilteredMessage que representa as mensagens filtradas que devem ser alertadas para o usuário 
     5337        * 
     5338        * @license    http://www.gnu.org/copyleft/gpl.html GPL 
     5339        * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     5340        * @sponsor    Caixa Econômica Federal 
     5341        * @author     Airton Bordin Junior <airton@prognus.com.br> 
     5342        * @author         Marcieli <marcieli@prognus.com.br>     
     5343        * @author         Marcos <marcosw@prognus.com.br>        
     5344        * @param      <Array> <$paramFolders> <Pastas onde devem ser buscadas as mensagens> 
     5345        * @return     <Mensagens encontradas com a flag $FilteredMessage> 
     5346        * @access     <public> 
     5347        */ 
     5348        function getFlaggedAlertMessages($paramFolders) { 
     5349                 
     5350                $folders = explode(",", $paramFolders['folders']); 
     5351         
     5352                $messages = array(); 
     5353                $result   = array(); 
     5354                $label    = '$FilteredMessage'; 
     5355                 
     5356                foreach ($folders as $folder) { 
     5357                        $this->mbox = $this->open_mbox($folder); 
     5358                        /* Não deletadas, não lidas e com a flag */ 
     5359                        $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 
     5360                        if(is_array($messages)) 
     5361                                foreach ($messages as $k => $m) { 
     5362                                        $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 
     5363                                        $date = explode(" ", $headers[0]->date);  
     5364                                        $result[$m."_".$folder] = array ( 
     5365                                                'udate'      => $headers[0]->udate, 
     5366                                                'smalldate'  => $date[4], 
     5367                                                'from'       => $headers[0]->from, 
     5368                                                'subject'    => self::decodeMimeString($headers[0]->subject), 
     5369                                                'msg_number' => $m, 
     5370                                                'msg_folder' => $folder 
     5371                                        ); 
     5372                                } 
     5373                } 
     5374                $result_final = array(); 
     5375                foreach ($result as $r){ 
     5376                        $result_final[] = $r; 
     5377                } 
     5378 
     5379                return $result_final; 
     5380        } 
     5381         
     5382        /** 
     5383        * Esta função é chamada ao clicar sobre uma mensagem listada nos alertas de Filtro por Remetente 
     5384        * remove a flag e chama a função que recupera os dados da mensagem, para serem utilizados na abertura da aba de leitura da msg 
     5385        */ 
     5386        function open_flagged_msg($params){ 
     5387                $message_number = $params['msg_number']; 
     5388                $message_folder = $params['msg_folder']; 
     5389                $alarm = $params['alarm']; 
     5390                if ($message_folder && $message_number) { 
     5391                        $this->mbox = $this->open_mbox($message_folder); 
     5392                        imap_clearflag_full($this->mbox, $message_number, '$FilteredMessage', ST_UID); 
     5393                } 
     5394                $r = $this->get_info_msg(array('msg_number' => $message_number, 'msg_folder' =>urlencode($message_folder), 'alarm' => ($alarm))); 
     5395                return $r; 
     5396        } 
     5397         
     5398        /** 
     5399        * Remove a flag que caracteriza uma mensagem como alertada por Filtro por Remetente. 
     5400        * se houver o parametro msg_number, então remove a flag de uma msg especifica 
     5401        * se não houver o parametro msg_number, mas sim o from, então remove a flag de todas as msgs da pasta (parametro from),  
     5402        * e que o remetente for o from. 
     5403        */ 
     5404        function removeFlagMessagesFilter($params){ 
     5405                $message_number = $params['msg_number']; 
     5406                $folder = $params['folder']; 
     5407 
     5408                if(isset($message_number)){ 
     5409                        if(isset($folder)){ 
     5410                                $message_number = explode(',', $message_number); 
     5411                                $this->mbox = $this->open_mbox($folder); 
     5412                                foreach ($message_number as $k => $m) {                  
     5413                                                imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 
     5414                                        } 
     5415                        } 
     5416                } 
     5417                else{ 
     5418                        $from = $params['from']; 
     5419                        if(isset($folder) && isset($from)){ 
     5420                                $this->mbox = $this->open_mbox($folder); 
     5421                                $messages = imap_search($this->mbox, 'UNDELETED UNSEEN KEYWORD "$FilteredMessage"', SE_UID); 
     5422                        } 
     5423                        if(is_array($messages)){ 
     5424                                foreach ($messages as $k => $m) { 
     5425                                        $headers = imap_fetch_overview($this->mbox, $m, FT_UID); 
     5426                                        if(strpos($headers[0]->from, $from) > 0){ 
     5427                                                imap_clearflag_full($this->mbox, $m, '$FilteredMessage', ST_UID); 
     5428                                        } 
     5429                                } 
     5430                        } 
     5431                } 
     5432                 
     5433                return array('status' => "success");  
     5434        } 
     5435 
    53345436} 
    53355437?> 
Note: See TracChangeset for help on using the changeset viewer.