source: spip-zone/_plugins_/nocache/nocache-1.0/nocache_options.php @ 70524

Last change on this file since 70524 was 28140, checked in by beuc@…, 12 years ago

Corrige bug affichage info plugins dans 1.9.2

File size: 4.8 KB
Line 
1<?php
2// Désactiver le cache SPIP
3// Copyright (c) 2001-2009 Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James
4// Copyright (C) 2009  Cliss XXI
5//
6// This program is free software: you can redistribute it and/or modify
7// it under the terms of the GNU General Public License as published by
8// the Free Software Foundation, either version 3 of the License, or
9// (at your option) any later version.
10//
11// This program is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14// GNU General Public License for more details.
15//
16// You should have received a copy of the GNU General Public License
17// along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19// Auteur: Sylvain Beucler <beuc@beuc.net>
20
21// Chargé à chaque appel de page
22if (!defined('_ECRIRE_INC_VERSION')) return; // sécurité
23
24
25/**
26 * Désactivation du cache de pages
27 */
28if ($spip_version_code >= 1.92 && $spip_version_code < 2)
29  {
30
31    /**
32     * Surcharge de public_cacher_dist(...) dans
33     * 'ecrire/public/cacher.php' - plus précisément copier/coller de
34     * la partie "// Cas ignorant le cache car completement dynamique"
35     *
36     * Merci à 'Committo, Ergo Sum' pour l'idée
37     * http://forum.spip.org/fr_3874.html
38     */
39    function public_cacher($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified)
40    {
41      $use_cache = -1;
42      $lastmodified = 0;
43      $chemin_cache = "";
44      $page = array();
45      return;
46    }
47    /* Il existe une autre solution implémentée dans le plugin
48       'desactiver_cache_1_9', qui consiste à forcer
49       $_SERVER['REQUEST_METHOD']='POST', sauf pour quelques fichiers
50       - mais ce n'est pas très propre AMHA. */
51  }
52else if (version_compare($spip_version_branche, "2.0.0"))
53  {
54    // Inspiré du plugin 'couteau_suisse':
55    define('_NO_CACHE', -1); // toujours recalculer sans stocker
56  }
57
58
59/**
60 * Désactivation du cache de squelettes. Normalement les squelettes
61 * sont rafraîchis 1) si on recalcule (géré par le cache de page) et
62 * 2) si le squelette .html est plus récent que le cache - donc c'est
63 * automatique a priori (cf. la fonction squelette_obsolete($phpfile,
64 * $source)). Cependant, les balises incluses dans les squelettes ne
65 * sont pas recalculées, même si on a changé leur définitions, d'où
66 * l'utilité de cette fonction.
67 *
68 * Surcharge de public_composer_dist(...) dans
69 * 'ecrire/public/composer.php'
70 */
71include_spip('public/composer');
72if ($spip_version_code >= 1.92 && $spip_version_code < 2)
73  {
74    function public_composer($squelette, $mime_type, $gram, $sourcefile)
75    {
76      // Si le fichier a déjà été compilé dans cette requête, on le garde
77      $nom = $mime_type . '_' . md5($squelette);
78      if (function_exists($nom))
79        return $nom;
80
81      // sinon on le supprime et on repasse la main à la fonction d'origine
82      $phpfile = sous_repertoire(_DIR_SKELS) . $nom . '.php';
83      supprimer_fichier($phpfile);
84      return public_composer_dist($squelette, $mime_type, $gram, $sourcefile);
85    }
86  }
87else if (version_compare($spip_version_branche, "2.0.0"))
88  {
89    function public_composer($squelette, $mime_type, $gram, $source, $connect='')
90    {
91      // Si le fichier a déjà été compilé dans cette requête, on le garde
92      $nom = calculer_nom_fonction_squel($squelette, $mime_type, $connect);
93      if (function_exists($nom))
94        return array($nom);
95     
96      // sinon on le supprime et on repasse la main à la fonction d'origine
97      $phpfile = sous_repertoire(_DIR_SKELS,'',false,true) . $nom . '.php';
98      supprimer_fichier($phpfile);
99      return public_composer_dist($squelette, $mime_type, $gram, $source, $connect);
100    }
101  }
102
103
104/**
105 * Recharge les fichiers plugin.xml.
106 *
107 * Utile quand on est en train de développer un plugin (sinon il faut
108 * aller dans la page 'exec=admin_plugin' qui appelle aussi
109 * verif_plugin()). Ne recharge que les plugins actifs.
110 */
111if ($spip_version_code >= 1.92 && $spip_version_code < 2)
112  {
113    /* Demande le rechargement. Comme ce rechargement n'est effectué
114       qu'après que les plugins sont chargés (puisque nous sommes dans
115       un plugin..), les changements ne seront effectifs qu'au
116       prochain chargement. La solution avec 'supprimer_fichier'
117       fonctionne donc mieux car le rechargement est différé, mais
118       dans SPIP 1.9.2 elle occasionne des problèmes quand on demande
119       des infos sur un plugin dans exec=admin_plugin. */
120    include_spip('inc/plugin');
121    verif_plugin();
122  }
123else if (version_compare($spip_version_branche, "2.0.0"))
124  {
125    /* Le fichier est déjà chargé par PHP, donc on peut le supprimer
126       sans risque. L'absence du fichier force la revérification des
127       plugins à chaque page affichée. */
128    supprimer_fichier(_DIR_TMP."charger_plugins_options.php");
129  }
Note: See TracBrowser for help on using the repository browser.