Ignore:
Timestamp:
03/12/12 18:58:19 (12 years ago)
Author:
marcieli
Message:

Ticket #2486 - Correcao de problemas em salvar followupflagged e adequacao de novos ids

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/services/ImapServiceAdapter.php

    r5697 r5708  
    236236                                                $this->mbox = $this->open_mbox($folder); 
    237237                                                 
    238                                                 foreach ($map['id'] as $followupflagged) { 
    239                                                         $messagesFlaggeds = imap_search($this->mbox, 'UNDELETED KEYWORD "$Followupflag'.$followupflagged.'"', SE_UID); 
    240                                                          
     238                                                /** 
     239                                                 * Caso não tenha sido passado id no filtro 
     240                                                 */ 
     241                                                if (!$map['id']) { 
     242                                                        $messagesFlaggeds = imap_search($this->mbox, 'UNDELETED KEYWORD "$Followupflagged"', SE_UID); 
     243 
    241244                                                        foreach ($messagesFlaggeds as $messageFlagged) { 
    242245                                                                if (count($map['messageNumber']) > 0 && !in_array($messageFlagged, $map['messageNumber'])) 
     
    244247                                                                         
    245248                                                                $result[] = array ( 
    246                                                                         'id' => $folder . '/' . $messageFlagged . '#' . $followupflagged,  
    247249                                                                        'folderName' => $folder, 
    248250                                                                        'messageNumber' => $messageFlagged 
    249251                                                                ); 
     252                                                        } 
     253                                                         
     254                                                } else { 
     255                                                        foreach ($map['id'] as $followupflagged) { 
     256                                                                $messagesFlaggeds = imap_search($this->mbox, 'UNDELETED KEYWORD "$Followupflag'.$followupflagged.'"', SE_UID); 
     257                                                                 
     258                                                                foreach ($messagesFlaggeds as $messageFlagged) { 
     259                                                                        if (count($map['messageNumber']) > 0 && !in_array($messageFlagged, $map['messageNumber'])) 
     260                                                                                continue; 
     261                                                                                 
     262                                                                        $result[] = array ( 
     263                                                                                'id' => $folder . '/' . $messageFlagged . '#' . $followupflagged,  
     264                                                                                'folderName' => $folder, 
     265                                                                                'messageNumber' => $messageFlagged 
     266                                                                        ); 
     267                                                                } 
    250268                                                        } 
    251269                                                } 
     
    309327                                 */ 
    310328                                list($messageId, $followupflaggedId) = explode('#', $URI['id']); 
    311                                 $folderName = basename($messageId); 
    312                                 $messageNumber = dirname($messageId); 
     329                                $folderName = dirname($messageId); 
     330                                $messageNumber = basename($messageId); 
    313331                                 
    314332                                $result = array(); 
     
    358376                                         
    359377                                        $this->mbox = $this->open_mbox($data['folderName']); 
    360                                         imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflagged $Followupflag' . $followupflaggedId, ST_UID); 
    361                                          
    362                                         /** 
    363                                          * implementa a possibilidade de listar todas as mensagens sinalizadas através da busca 
    364                                          */ 
    365                                         //imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflagged', ST_UID); 
    366  
     378                                        $s = imap_setflag_full($this->mbox, $data['messageNumber'], '$Followupflagged $Followupflag' . $followupflaggedId, ST_UID); 
     379                                                                                 
    367380                                        imap_close($this->mbox); 
    368381                                        $this->mbox = false; 
    369382 
    370                                         return array ('id' => $data['id']); 
     383                                        return ($s) ? $data : array(); 
     384 
    371385                                } 
    372386                                return array (); 
Note: See TracChangeset for help on using the changeset viewer.