source: spip-zone/_plugins_/_test_/fastcache/fastcache_options.php @ 24495

Last change on this file since 24495 was 24495, checked in by fil@…, 11 years ago

desormais meme avec les stats fastcache va tres vite

File size: 2.7 KB
Line 
1<?php
2
3# pipeline affichage_final pour stocker les pages dans le cache rapide
4if (!defined("_ECRIRE_INC_VERSION")) return;
5
6function Fastcache_versionie($page) {
7        if (!_FC_IE_PNGHACK
8        OR strpos($page, 'BackgroundImageCache')
9        OR !include_spip('inc/msie'))
10                return $page;
11       
12        $msiefix = charger_fonction('msiefix', 'inc');
13        return $msiefix($page);
14}
15
16function Fastcache_affichage_final($texte) {
17        global $page, $html; # dommage le pipeline ne connait pas les entetes...
18
19        if ($page['duree']
20        AND isset($page['entetes'])
21        AND isset($page['entetes']['X-Fast-Cache'])) {
22
23                // verifier que le lanceur est OK
24                if (defined('_FC_LANCEUR')
25                AND !file_exists(_FC_LANCEUR)) {
26                        include_spip('creer_fastcache');
27                        creer_fastcache();
28                }
29
30                if (defined('_FC_FILE')) {
31
32                        // preparer les entetes
33                        $head = '<'."?php\n"
34                        ."// ".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n"
35                        ."header('Vary: Cookie, Accept-Encoding');\n";
36
37                        foreach ($page['entetes'] as $x => $v)
38                                if ($x !== 'X-Spip-Cache')
39                                        $head .= "header('$x: ".addslashes($v)."');\n";
40
41                        // entetes pour les stats
42                        foreach(array('id_article', 'id_breve', 'id_rubrique') as $id)
43                                if (isset($GLOBALS[$id]))
44                                        $head .= "\$GLOBALS['$id'] = "
45                                        .var_export(intval($GLOBALS[$id]),true).";\n";
46
47                        // stocker les caches
48                        $ok = ecrire_fichier(_FC_FILE.'_head.inc', $head);
49                        $ok &= ecrire_fichier(_FC_FILE, $texte
50                        .(_FC_DEBUG?"\n<!-- read "._FC_FILE." -->\n":''));
51                        $ok &= ecrire_fichier(_FC_FILE.'.gz', $texte
52                        .(_FC_DEBUG?"\n<!-- read "._FC_FILE.".gz -->\n":''));
53
54                        // version MSIE
55                        if (_FC_IE_PNGHACK
56                        AND $html) {
57                                $textemsie = Fastcache_versionie($texte);
58                                $ok &= ecrire_fichier(_FC_FILE.'_ie', $textemsie
59                                .(_FC_DEBUG?"\n<!-- read "._FC_FILE."_ie -->\n":''));
60                                $ok &= ecrire_fichier(_FC_FILE.'_ie.gz', $textemsie
61                                .(_FC_DEBUG?"\n<!-- read "._FC_FILE."_ie.gz -->\n":''));
62                        }
63
64                        supprimer_fichier(_FC_FILE.'.lock');
65
66                        if (!$ok) {
67                                include_once 'ecrire/inc_version.php';
68                                sous_repertoire(dirname(_FC_DIR_CACHE), basename(_FC_DIR_CACHE), true);
69                        }
70
71                        return $texte
72                                . (_FC_DEBUG
73                                        ? ($ok
74                                                ? "\n<!-- stored "._FC_FILE." -->\n"
75                                                : "\n<!-- error "._FC_FILE." -->\n"
76                                                )
77                                        : ''
78                                );
79                }
80
81        }
82
83        // else ...
84        return $texte;
85}
86
87# s'inserer au *debut* du pipeline affichage_final pour etre avant f_surligne etc
88# mais de preference apres mutualisation_url_img_courtes pour qu'il s'applique
89$GLOBALS['spip_pipeline']['affichage_final'] = preg_replace(',\|mutualisation_url_img_courtes|^,','\0|Fastcache_affichage_final', $GLOBALS['spip_pipeline']['affichage_final']);
90
91
92# supprimer les fc_cache trop vieux ?
93if (isset($_GET['var_mode'])) {
94        array_map('supprimer_fichier', preg_files(_FC_DIR_CACHE, '/fc_'));
95}
96
97?>
Note: See TracBrowser for help on using the repository browser.