Changeset 5672
- Timestamp:
- 03/07/12 18:00:57 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/filters/interceptors/FilterMapping.php
r5630 r5672 255 255 } 256 256 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 258 307 /** 259 308 * Método que faz o parsing do Script Sieve, transformando em Array. … … 270 319 public function parseSieveScript( $script ) 271 320 { 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 272 347 $pos = strripos($script, "#PseudoScript#"); 273 348 $pseudo_script = substr( $script, $pos+17 );
Note: See TracChangeset
for help on using the changeset viewer.