Changeset 16764 for _plugins_/_dev_/expresso
- Timestamp:
- 11.11.2007 12:25:25 (2 years ago)
- Location:
- _plugins_/_dev_/expresso
- Files:
-
- 2 added
- 1 modified
-
action (added)
-
action/purger.php (added)
-
expresso_pipeline.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/_dev_/expresso/expresso_pipeline.php
r16761 r16764 15 15 // il faut laisser passer une partie des requetes pour que spip mette les pages a jour 16 16 @define('_EXPRESSO_CACHE_RATIO',50); 17 @define('_DIR_EXPRESSO',_DIR_VAR . "apache/"); 17 18 18 19 function expresso_genere_htaccess(){ … … 24 25 lire_fichier('.htaccess',$htaccess); 25 26 if (strpos($htaccess,'###EXPRESSO###')!==FALSE) { 27 $htaccess = preg_replace(",###EXPRESSO###.*###/EXPRESSO###,ms","###EXPRESSO###",$htaccess); 26 28 $base = preg_replace(';^[a-z]{3,5}://[^/]*;','',$GLOBALS['meta']['adresse_site']); 27 $express = "AddCharset ".strtoupper($GLOBALS['meta']['charset'])." .html\n";28 29 $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$ 45 49 RewriteCond %{REQUEST_METHOD} !POST 46 50 RewriteCond %{HTTP_COOKIE} !^.*spip_admin=.*$ … … 53 57 54 58 "; 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 ." 62 66 RewriteCond %{TIME_SEC} >$start 63 67 RewriteCond %{TIME_SEC} <$end … … 65 69 66 70 "; 67 else68 $express .= $r . "71 else 72 $express .= $r . " 69 73 RewriteCond %{TIME_SEC} >$start 70 74 RewriteRule ^$url$ ".$rewrite[1]." [L] … … 74 78 75 79 "; 80 } 76 81 } 77 82 } 78 83 } 79 $htaccess = preg_replace(",###EXPRESSO###.*###/EXPRESSO###,ms","###EXPRESSO###",$htaccess);80 84 $htaccess = str_replace("###EXPRESSO###","###EXPRESSO###\n$express###/EXPRESSO###",$htaccess); 81 85 ecrire_fichier('.htaccess',$htaccess); … … 98 102 @unlink($cachefile); 99 103 } 104 function expresso_clear_all_url(){ 105 $GLOBALS['meta']['expresso'] = ""; 106 expresso_genere_htaccess(); 107 include_spip('inc/invalideur'); 108 purger_repertoire(_DIR_EXPRESSO); 109 } 100 110 101 111 function expresso_affichage_final($flux) { … … 107 117 AND !isset($_SERVER['PHP_AUTH_USER'])){ 108 118 if (isset($GLOBALS['page']['entetes']['X-Expresso'])) { 109 $nom_cache = _DIR_ VAR . "apache/".md5($url).".html";119 $nom_cache = _DIR_EXPRESSO .md5($url).".html"; 110 120 if ( 111 121 ($GLOBALS['var_mode']=='calcul') … … 133 143 ( ($GLOBALS['var_mode']=='calcul') OR ($GLOBALS['var_mode']=='recalcul')) 134 144 ) { 135 $nom_cache = _DIR_ VAR . "apache/".md5($url).".html";145 $nom_cache = _DIR_EXPRESSO .md5($url).".html"; 136 146 if (file_exists($nom_cache)) 137 147 expresso_remove_url($url,$nom_cache);
