Changeset 32602 in spip-zone


Ignore:
Timestamp:
Nov 1, 2009, 10:51:27 PM (11 years ago)
Author:
fil@…
Message:

une option pour utiliser fastcache sur toutes les pages + gestion complete de ETag, If-Modified-Since etc

Location:
_plugins_/fastcache
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fastcache/creer_fastcache.php

    r32455 r32602  
    1111        $debug = var_export($cfg['debug'] === 'on', true);
    1212        $pnghack = var_export($cfg['pnghack'] === 'on', true);
     13        $toutes = var_export($cfg['toutes'] === 'on', true);
     14        $gzip = var_export($GLOBALS['meta']['auto_compress_http'] === 'oui', true);
    1315
    1416        if (!$periode = intval($cfg['periode']))
     
    3638@define ('_FC_META', $meta);
    3739@define ('_FC_IE_PNGHACK', $pnghack);
     40@define ('_FC_TOUTES', $toutes);
     41@define ('_FC_GZIP', $gzip);
    3842@define ('_FC_COOKIE_PREFIX', $prefix);
    3943@define ('_FC_MEMOIZATION', $memoization);
  • _plugins_/fastcache/fastcache.php

    r32455 r32602  
    3535AND $p['time'] == @filemtime(_FC_META)
    3636) {
     37        // choix du body
     38        $b = (!is_null($p['ie']) AND fc_testie()) ? 'ie' : 'body';
     39
     40        // envoi des entetes
    3741        eval($p['head']);
    38         $b = (!is_null($p['ie']) AND fc_testie()) ? 'ie' : 'body';
     42
     43        // compression gzip
     44        if (_FC_GZIP
     45        AND strstr(@$_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
     46                header('Content-Encoding: gzip');
     47                $p[$b] = gzencode($p[$b]);
     48        }
     49
     50        // cache navigateur ?
     51        $etag = '"'.md5($p[$b]).'"';
     52        header('ETag: '.$etag);
     53        if (@$_SERVER['HTTP_IF_NONE_MATCH'] == $etag
     54        OR (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) AND strstr($p['head'], $_SERVER['HTTP_IF_MODIFIED_SINCE']))
     55        ) {
     56                header('HTTP/1.0 304 Not Modified');
     57                exit;
     58        }
     59
     60        // ultime entete : la longueur
    3961        header('Content-length: '.strlen($p[$b]));
    4062        header('Connection: close');
  • _plugins_/fastcache/fastcache_options.php

    r32445 r32602  
    1818
    1919        if ($page['duree']
    20         AND isset($page['entetes'])
    21         AND isset($page['entetes']['X-Fast-Cache'])) {
     20        AND ( _FC_TOUTES OR isset($page['entetes']['X-Fast-Cache']) )
     21        ) {
    2222
    2323                // verifier que le lanceur est OK
  • _plugins_/fastcache/fonds/cfg_fastcache.html

    r32444 r32602  
    2323<label>
    2424P&#233;riode (en secondes) de validit&#233; d'un cache rapide&nbsp;: <input type="text" name="periode" [value="(#ENV{periode}|sinon{180})"] /></label>
    25 
     25<br />
     26Par d&#233;faut le plugin ne s'applique qu'aux pages contenant la balise
     27<kbd>#<span/>FASTCACHE</kbd>.
     28<br />
     29<label><input type="checkbox" name="toutes" [checked="(#ENV{toutes})"] />
     30Appliquer &agrave; toutes les pages sans exception.</label>
    2631</p>
    2732</fieldset>
    2833
     34<input type="submit" name="_cfg_ok" value="<:OK:>" style="float:#LANG_RIGHT;" />
     35</form>
     36
     37<p />
     38<br />
     39<p />
    2940
    3041<?php
    31         // Effacer le lanceur, pour qu'il reflete la nouvelle config
    32         supprimer_fichier(_DIR_TMP.'pre_spip.inc');
    33 
    3442        echo debut_boite_info(true);
    3543        // Patcher spip.php a la racine
     
    5462?>
    5563
    56 
    57 
    58 <input type="submit" name="_cfg_ok" value="<:OK:>" style="float:#LANG_RIGHT;" />
    59 <!-- <input type="reset" value="<:Reset:>" />
    60 <input type="submit" name="_cfg_delete" value="<:Supprimer:>" />
    61 -->
    62 </form>
  • _plugins_/fastcache/fonds/cfg_fastcache_fonctions.php

    r32443 r32602  
    77list($site) = explode(':', $site); // supprimer le :80 (flash)
    88define('_FC_LANCEUR', _DIR_RACINE.'tmp/fcconfig_' . $site . '.inc');
    9 unlink(_FC_LANCEUR); # on ne peut pas le creer depuis l'espace prive, les chemins sont faux !
     9@unlink(_FC_LANCEUR); # on ne peut pas le creer depuis l'espace prive, les chemins sont faux !
Note: See TracChangeset for help on using the changeset viewer.