source: spip-zone/_plugins_/varnish/varnish_pipelines.php @ 46925

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

plus cool en utilisant les alertes_auteurs()

File size: 2.1 KB
Line 
1<?php
2
3####### insert_head n'est pas bon car c'est le meme head pour toutes les pages
4# => affichage_final pour inserer le head
5# => affichage_entetes_final pour envoyer des messages à varnish
6
7if (!defined("_ECRIRE_INC_VERSION")) return;
8
9// Vider le cache implique une demande de purge varnish
10if (isset($_GET['exec']) AND $_GET['exec'] == "admin_vider")
11        @header('X-Varnish-Purge: *');
12
13
14// Donner a varnish d'eventuelles instructions de mise en cache
15function varnish_affichage_entetes_final($entetes) {
16        # signaler a varnish s'il peut conserver la page, et pour quelle durée
17        # sachant qu'on saura l'invalider si besoin
18
19        # Certaines pages contenant du PHP peuvent vouloir rester dynamiques
20        # * si elles ont une #SESSION ça ne pose pas de problème (varnish respectant
21        #   le cookie du visiteur)
22        # * par defaut, on autorise varnish a les cacher pour une duree = #CACHE
23        # * si on veut bypasser ce default, utiliser
24        #    #HTTP_HEADER{X-Varnish-TTTL: xxx}
25        if (!isset($entetes['X-Varnish-Ttl']))
26                $entetes['X-Varnish-Ttl'] = $entetes['X-Spip-Cache'];
27
28
29        // Apparition d'un nouvel article post-date ?
30        // on applique ici la logique de public/cacher:cache_valide()
31        if ($GLOBALS['meta']['post_dates'] == 'non'
32        AND isset($GLOBALS['meta']['date_prochain_postdate'])
33        AND time() > $GLOBALS['meta']['date_prochain_postdate']) {
34                spip_log('Un article post-date invalide le cache');
35                include_spip('inc/rubriques');
36                ecrire_meta('derniere_modif', time());
37                calculer_prochain_postdate();
38                $entetes['X-Varnish-Purge'] = '*';
39        }
40
41        return $entetes;
42}
43
44/* verifier le besoin d'installer statjs et le signaler */
45function varnish_alertes_auteur($flux) {
46        if (autoriser('webmestre', $flux['args']['id_auteur'])
47        AND $GLOBALS['meta']['activer_statistiques'] == 'oui') {
48                $plugins = unserialize($GLOBALS['meta']['plugin']);
49
50                if (!isset($plugins['STATSJS'])) {
51                        $flux['data'][] = _T('avis_attention'). ' '
52                                . _L("Pour utiliser les statistiques de SPIP avec Varnish, il est recommandé d'installer le plugin <a href='http://www.spip-contrib.net/3753'>StatsJS</a>.");
53                }
54        }
55#var_dump($flux);
56
57        return $flux;
58}
59
60?>
Note: See TracBrowser for help on using the repository browser.