Show
Ignore:
Timestamp:
11.11.2007 12:25:25 (2 years ago)
Author:
cedric@…
Message:

"vider le cache doit aussi vider le percolateur"

Location:
_plugins_/_dev_/expresso
Files:
2 added
1 modified

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/expresso/expresso_pipeline.php

    r16761 r16764  
    1515// il faut laisser passer une partie des requetes pour que spip mette les pages a jour 
    1616@define('_EXPRESSO_CACHE_RATIO',50); 
     17@define('_DIR_EXPRESSO',_DIR_VAR . "apache/"); 
    1718 
    1819function expresso_genere_htaccess(){ 
     
    2425        lire_fichier('.htaccess',$htaccess); 
    2526        if (strpos($htaccess,'###EXPRESSO###')!==FALSE) { 
     27                $htaccess = preg_replace(",###EXPRESSO###.*###/EXPRESSO###,ms","###EXPRESSO###",$htaccess); 
    2628                $base = preg_replace(';^[a-z]{3,5}://[^/]*;','',$GLOBALS['meta']['adresse_site']); 
    27                 $express = "AddCharset ".strtoupper($GLOBALS['meta']['charset'])." .html\n"; 
    2829                $liste_pages = explode("\n",$GLOBALS['meta']['expresso']); 
    29                 foreach($liste_pages as $rewrite) { 
    30                         $rewrite = explode('!',$rewrite); 
    31                         if (count($rewrite)==2) { 
    32                                 # une fraction de temps donnee basse sur la valeur des secondes 
    33                                 # on sert par apache 
    34                                 $url = parse_url($rewrite[0]); 
    35                                 $query = $url['query']; 
    36                                 $host = $url['host']; 
    37                                 $url = preg_replace(';^[a-z]{3,5}://[^/]*;','',$rewrite[0]); 
    38                                 $url = substr($url,strlen($base)); 
    39                                 if ($url{0}=='/') $url = substr($url,1); 
    40                                 if (($p=strpos($url,"?"))!==FALSE) 
    41                                         $url = substr($url,0,$p); 
    42                                 $url = preg_quote($url); 
    43                                 $start = rand(0,59); 
    44                                 $r = "RewriteCond %{HTTP_HOST} ^$host$ 
     30                $express = ""; 
     31                if (is_array($liste_pages) && count($liste_pages)) { 
     32                        $express .= "AddCharset ".strtoupper($GLOBALS['meta']['charset'])." .html\n"; 
     33                        foreach($liste_pages as $rewrite) { 
     34                                $rewrite = explode('!',$rewrite); 
     35                                if (count($rewrite)==2) { 
     36                                        # une fraction de temps donnee basse sur la valeur des secondes 
     37                                        # on sert par apache 
     38                                        $url = parse_url($rewrite[0]); 
     39                                        $query = $url['query']; 
     40                                        $host = $url['host']; 
     41                                        $url = preg_replace(';^[a-z]{3,5}://[^/]*;','',$rewrite[0]); 
     42                                        $url = substr($url,strlen($base)); 
     43                                        if ($url{0}=='/') $url = substr($url,1); 
     44                                        if (($p=strpos($url,"?"))!==FALSE) 
     45                                                $url = substr($url,0,$p); 
     46                                        $url = preg_quote($url); 
     47                                        $start = rand(0,59); 
     48                                        $r = "RewriteCond %{HTTP_HOST} ^$host$ 
    4549RewriteCond %{REQUEST_METHOD} !POST 
    4650RewriteCond %{HTTP_COOKIE} !^.*spip_admin=.*$ 
     
    5357 
    5458";                                       
    55                                 } 
    56                                 else { 
    57                                         $end = ($start+round(_EXPRESSO_CACHE_RATIO))%60; 
    58                                         $start--; 
    59                                         $end++; 
    60                                         if ($start<$end) 
    61                                                 $express .= $r ." 
     59                                        } 
     60                                        else { 
     61                                                $end = ($start+round(_EXPRESSO_CACHE_RATIO))%60; 
     62                                                $start--; 
     63                                                $end++; 
     64                                                if ($start<$end) 
     65                                                        $express .= $r ." 
    6266RewriteCond %{TIME_SEC} >$start 
    6367RewriteCond %{TIME_SEC} <$end 
     
    6569         
    6670"; 
    67                                         else 
    68                                                 $express .= $r . " 
     71                                                else 
     72                                                        $express .= $r . " 
    6973RewriteCond %{TIME_SEC} >$start 
    7074RewriteRule ^$url$ ".$rewrite[1]." [L] 
     
    7478         
    7579"; 
     80                                        } 
    7681                                } 
    7782                        } 
    7883                } 
    79                 $htaccess = preg_replace(",###EXPRESSO###.*###/EXPRESSO###,ms","###EXPRESSO###",$htaccess); 
    8084                $htaccess = str_replace("###EXPRESSO###","###EXPRESSO###\n$express###/EXPRESSO###",$htaccess); 
    8185                ecrire_fichier('.htaccess',$htaccess); 
     
    98102        @unlink($cachefile); 
    99103} 
     104function expresso_clear_all_url(){ 
     105        $GLOBALS['meta']['expresso'] = ""; 
     106        expresso_genere_htaccess(); 
     107        include_spip('inc/invalideur'); 
     108        purger_repertoire(_DIR_EXPRESSO); 
     109} 
    100110 
    101111function expresso_affichage_final($flux) { 
     
    107117        AND !isset($_SERVER['PHP_AUTH_USER'])){ 
    108118                if (isset($GLOBALS['page']['entetes']['X-Expresso'])) { 
    109                         $nom_cache = _DIR_VAR . "apache/".md5($url).".html"; 
     119                        $nom_cache = _DIR_EXPRESSO .md5($url).".html"; 
    110120                        if (  
    111121                                ($GLOBALS['var_mode']=='calcul') 
     
    133143                        ( ($GLOBALS['var_mode']=='calcul') OR ($GLOBALS['var_mode']=='recalcul')) 
    134144                        ) { 
    135                                 $nom_cache = _DIR_VAR . "apache/".md5($url).".html"; 
     145                                $nom_cache = _DIR_EXPRESSO .md5($url).".html"; 
    136146                                if (file_exists($nom_cache)) 
    137147                                        expresso_remove_url($url,$nom_cache);