Changeset 5672


Ignore:
Timestamp:
03/07/12 18:00:57 (12 years ago)
Author:
airton
Message:

Ticket #2088 - Melhorias no filtro de mensagens do Expresso - Migracao dos filtros antigos

File:
1 edited

Legend:

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

    r5630 r5672  
    255255        } 
    256256         
    257  
     257        /** 
     258        * Método que lê e faz o parser dos filtros antigos 
     259        * 
     260        * @license    http://www.gnu.org/copyleft/gpl.html GPL 
     261        * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     262        * @sponsor    Caixa EconÃŽmica Federal 
     263        * @author     Airton Bordin Junior 
     264        * @author         Gustavo Pereira dos Santos     
     265        * @param      <$scriptName> <Regras do usuário> 
     266        * @return     <Regra do usuário parseada> 
     267        * @access     <public> 
     268        */ 
     269        public function readOldScript($scriptName)  
     270        { 
     271        // Recebe o conteúdo do array; 
     272        $lines = array(); 
     273        $lines = preg_split("/\n/", $scriptName); 
     274 
     275        // Pega o tamanho da regra na primeira do script; 
     276        $size_rule = array_shift($lines); 
     277 
     278        // Recebe o tamanho do script, pela primeira linha; 
     279        $this->size = trim($size_rule); 
     280 
     281        // Verifica a composição do script; */ 
     282         $line = array_shift($lines); 
     283 
     284        // Variaveis para a regra e o campo ferias; 
     285        $regexps = array('^ *##PSEUDO', '^ *#rule', '^ *#vacation', '^ *#mode'); 
     286        $retorno['rule'] = array(); 
     287 
     288        $line = array_shift($lines); 
     289        while (isset($line)) { 
     290            foreach ($regexps as $regp) { 
     291                if (preg_match("/$regp/i", $line)) { 
     292                    // Recebe todas as regras criadas no servidor; 
     293                    if (preg_match("/^ *#rule&&/i", $line)) { 
     294                        $retorno['rule'][] = $line . "\n"; 
     295                    } 
     296                } 
     297            } 
     298            // Pega a proxima linha do sript; 
     299            $line = array_shift($lines); 
     300        } 
     301        return $retorno; 
     302    } 
     303         
     304         
     305         
     306         
    258307        /** 
    259308        * Método que faz o parsing do Script Sieve, transformando em Array. 
     
    270319        public function parseSieveScript( $script ) 
    271320        { 
     321                $old_rule = strripos($script, "##PSEUDO script start"); 
     322                 
     323                if($old_rule) { 
     324                         
     325                        $parsed_rule = $this->readOldScript($old_script); 
     326                        $array_rule = explode("&&", $parsed_rule['rule'][0]); 
     327 
     328                        $old_retorno = array(); 
     329                        $old_retorno['isExact'] = false; 
     330                        $old_retorno['name'] = $array_rule[1]; 
     331                        $old_retorno['criteria'] = array(); 
     332                        $old_retorno['criteria'][0] = array(); 
     333                        $old_retorno['criteria'][0]['value'] = $array_rule[5]; 
     334                        $old_retorno['criteria'][0]['operator'] = '='; 
     335                        $old_retorno['criteria'][0]['field'] = 'subject'; 
     336                        $old_retorno['actions'] = array(); 
     337                        $old_retorno['actions'][0] = array(); 
     338                        $old_retorno['actions'][0]['parameter'] = $array_rule[7]; 
     339                        $old_retorno['actions'][0]['type'] = $array_rule[6]; 
     340                        $old_retorno['enabled'] = true; 
     341                        $old_retorno['id'] = $array_rule[1]; 
     342                        $old_retorno['applyMessages'] = ''; 
     343 
     344                        return $old_retorno; 
     345                } 
     346 
    272347                $pos = strripos($script, "#PseudoScript#"); 
    273348                $pseudo_script = substr( $script, $pos+17 ); 
Note: See TracChangeset for help on using the changeset viewer.