Changeset 6771 for branches


Ignore:
Timestamp:
07/12/12 15:11:27 (7 years ago)
Author:
eduardow
Message:

Ticket #2956 - Inconsistência em filtros com critério por assunto/contem a frase.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4/prototype/modules/filters/interceptors/FilterMapping.php

    r6754 r6771  
    9494    { 
    9595                $require_fileinto = $require_flag = $require_reject = $require_vacation = $require_body = $require_imapflag = $vacation = $startswith = $endswith = false; 
    96  
    9796                $script_rules = $script_header = $script_criteria = $vacation_action = ""; 
    98  
    9997                $i = 0; 
    10098                 
     
    104102                                continue; 
    105103                                 
    106                         if(array_key_exists("block", $data)) { 
     104                        if(array_key_exists("block", $data))  
     105                        { 
    107106                                /* Usado na opção Bloquear usuário do ExpressoMail */ 
    108107                                if($data['block']) { 
     
    130129                        {                                        
    131130                                 
    132                                 switch($criteria[$j]['field']) { 
    133                                         case 'To':     
    134                                         case 'to':     
     131                                switch(strtoupper($criteria[$j]['field'])) {  
     132                        case 'TO':          
    135133                                        case 'CC': 
    136                                         case 'Cc': 
    137134                                                $criteria[$j]['field'] = "[\"To\", \"TO\", \"Cc\", \"CC\"]";  
    138135                                                $script_criteria .= "address :"; 
    139136                                                break; 
    140                                         case 'from': 
     137                                        case 'FROM': 
    141138                                                $criteria[$j]['field'] = "\"" . $criteria[$j]['field'] . "\""; 
    142139                                                $script_criteria .= "address :"; 
    143140                                                break; 
    144                                         case 'size':     
     141                                        case 'SIZE':     
    145142                                                $criteria[$j]['field'] = ''; 
    146143                                                $script_criteria .= "size :"; 
    147144                                                break; 
    148                                         case 'subject': 
     145                                        case 'SUBJECT': 
    149146                                                $criteria[$j]['field'] = "\"" . $criteria[$j]['field'] . "\""; 
    150                                                 $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "*\", \"" . base64_encode($criteria[$j]['value']) . ""; 
    151                                                 $criteria[$j]['operator'] = "^";  //temporary 
    152147                                                $script_criteria .= "header :"; 
    153                                                 break; 
    154                                         case 'body': 
     148                                                if($criteria[$j]['operator'] == "$") {  
     149                                $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "\", \"*" . base64_encode($criteria[$j]['value']) . "";  
     150                                break;  
     151                        }  
     152                        if($criteria[$j]['operator'] == "^") {  
     153                                $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "*\", \"" . base64_encode($criteria[$j]['value']) . "";  
     154                                break;  
     155                        }  
     156                        $criteria[$j]['value'] = "" . imap_8bit($criteria[$j]['value']) . "\", \"" . base64_encode($criteria[$j]['value']) . "";  
     157                        break;  
     158                case 'BODY': 
    155159                                                $criteria[$j]['field'] = ''; 
    156160                                                $script_criteria .= "body :"; 
    157161                                                $require_body = true; 
    158162                                                break; 
    159                                         case 'vacation': 
     163                                        case 'VACATION': 
    160164                                                continue; 
    161                                         case 'hasAttachment': 
     165                                        case 'HASATTACHMENT': 
    162166                                                $criteria[$j]['field'] = ''; 
    163167                                                $script_criteria .= "body :"; 
     
    221225                        } 
    222226                        $script_criteria = substr($script_criteria,0,-2); 
    223                         /* if ($vacation == false) */  
    224227                        $script_criteria .= ")";  
    225228 
    226                         //$script_action = " {\r\n "; 
    227                         /* Somente para controlar que o addFlag virá antes de qualquer ação. Modificar isso depois */ 
    228229                        $action_addFlag = ''; 
    229230                         
     
    291292 
    292293                if( $vacation_action ) 
    293                 { 
    294294                  $script_rules .= "vacation" . $vacation_action . "\r\n"; 
    295                 } 
    296295 
    297296                foreach ($rules as &$values) {                                           
     
    302301 
    303302                $json_data = json_encode($rules); 
    304                  
    305303                $script_begin = "#Filtro gerado por Expresso Livre\r\n\r\n"; 
    306  
    307304                $content = $script_begin . $script_header . $script_rules . "\r\n\r\n#PseudoScript#" . "\r\n#" . $json_data; 
    308305 
Note: See TracChangeset for help on using the changeset viewer.