source: spip-zone/_plugins_/memoization/trunk/memoization_administrations.php @ 114180

Last change on this file since 114180 was 114180, checked in by cedric@…, 7 months ago

Ne plus faire de ecrire_meta() sauvage dans le options, ca fait planter les sites pas encore installes - on utilise la maj de base puisqu'on en a maintenant une sur ce plugin, et par defaut le plugin tourne avec les define() fallback dans chaque methode de memoization

File size: 2.1 KB
Line 
1<?php
2/**
3 * Fichier gérant l'installation et la désinstallation du plugin
4 *
5 * @package SPIP\memoization\Installation
6**/
7
8// Sécurité
9if (!defined('_ECRIRE_INC_VERSION')) {
10                return;
11}
12
13/**
14 * Installation/maj des tables de memoization...
15 *
16 * @param string $nom_meta_base_version
17 *       Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
18 * @param string $version_cible
19 *       Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
20 * @return void
21 */
22function memoization_upgrade($nom_meta_base_version, $version_cible) {
23        // Création des tables
24        include_spip('base/create');
25        include_spip('base/abstract_sql');
26
27        $maj = array();
28
29        $maj['create'] = array(
30                array('memoization_init_cache_namespace'),
31                array('memoization_init_cache_key'),
32        );
33
34        $maj['20190109'] = array(
35                array('memoization_migrer_config_pages')
36        );
37        $maj['20190228'] = array(
38                array('memoization_init_cache_key')
39        );
40
41        include_spip('base/upgrade');
42        maj_plugin($nom_meta_base_version, $version_cible, $maj);
43}
44
45function memoization_init_cache_key() {
46        include_spip("inc/securiser_action");
47        $key = pack("H*", calculer_cle_action('memoization'));
48        $key = base64_encode($key);
49        ecrire_meta('cache_key', $key, 'non');
50
51        // il faut redefinir le namespace car on introduit une cle -> invalidation des caches existants
52        memoization_init_cache_namespace();
53}
54
55function memoization_init_cache_namespace() {
56        include_spip('inc/acces');
57        $namespace = dechex(crc32($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SERVER_SIGNATURE"] . creer_uniqid()));
58        ecrire_meta('cache_namespace', $namespace, 'non');
59}
60
61
62function memoization_migrer_config_pages() {
63        include_spip('inc/config');
64        spip_log ("memoization_migrer_config_pages done", "memoization_migrer_config_pages");
65        if ($methode=lire_config('memoization/pages')) {
66                ecrire_config('memoization/methode', $methode);
67                effacer_config('memoization/pages');
68        }
69}
70
71function memoization_vider_tables($nom_meta_base_version) {
72        include_spip('inc/config');
73        include_spip('inc/meta');
74
75        effacer_config("memoization");
76        effacer_meta($nom_meta_base_version);
77}
Note: See TracBrowser for help on using the repository browser.