source: spip-zone/_core_/plugins/textwheel/inc/textwheel.php @ 59769

Last change on this file since 59769 was 59769, checked in by cedric@…, 8 years ago

Ferme http://core.spip.org/issues/2479 : utiliser la wheel des listes pour la fonction traiter_listes

File size: 2.8 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2010                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('engine/textwheel');
16
17//
18// Definition des principales wheels de SPIP
19//
20
21// Si le tableau des raccourcis existe déjà
22if (!is_array($GLOBALS['spip_wheels']['raccourcis']))
23        $GLOBALS['spip_wheels']['raccourcis'] = array(
24                'spip/spip.yaml',
25                'spip/spip-paragrapher.yaml'
26        );
27else
28        $GLOBALS['spip_wheels']['raccourcis'] = array_merge(
29                array(
30                        'spip/spip.yaml',
31                        'spip/spip-paragrapher.yaml'
32                ),
33                $GLOBALS['spip_wheels']['raccourcis']
34        );
35
36if (test_espace_prive ())
37        $GLOBALS['spip_wheels']['raccourcis'][] = 'spip/ecrire.yaml';
38
39$GLOBALS['spip_wheels']['interdire_scripts'] = array(
40        'spip/interdire-scripts.yaml'
41);
42
43$GLOBALS['spip_wheels']['echappe_js'] = array(
44        'spip/echappe-js.yaml'
45);
46
47$GLOBALS['spip_wheels']['paragrapher'] = array(
48        'spip/spip-paragrapher.yaml'
49);
50
51$GLOBALS['spip_wheels']['listes'] = array(
52        'spip/spip-listes.yaml'
53);
54
55//
56// Methode de chargement d'une wheel SPIP
57//
58
59class SPIPTextWheelRuleset extends TextWheelRuleSet {
60        protected function findFile(&$file, $path=''){
61                static $default_path;
62
63                // absolute file path?
64                if (file_exists($file))
65                        return $file;
66
67                // file include with texwheels, relative to calling ruleset
68                if ($path AND file_exists($f = $path.$file))
69                        return $f;
70
71                return find_in_path($file,'wheels/');
72        }
73
74        public static function &loader($ruleset, $callback = '', $class = 'SPIPTextWheelRuleset') {
75
76                # memoization
77                # attention : le ruleset peut contenir apres loading des chemins relatifs
78                # il faut donc que le cache depende du chemin courant vers la racine de SPIP
79                $key = 'tw-'.md5(serialize($ruleset).$callback.$class._DIR_RACINE);
80
81                # lecture du cache
82                include_spip('inc/memoization');
83                if (!function_exists('cache_get')) include_spip('inc/memoization-mini');
84                if (_VAR_MODE!='recalcul'
85                  AND $cacheruleset = cache_get($key))
86                        return $cacheruleset;
87
88                # calcul de la wheel
89                $ruleset = parent::loader($ruleset, $callback, $class);
90
91                # ecriture du cache
92                cache_set($key, $ruleset);
93
94                return $ruleset;
95        }
96}
97
98
99function tw_trig_purger($quoi){
100        if ($quoi=='cache')
101                purger_repertoire(_DIR_CACHE."wheels");
102        return $quoi;
103}
104
105?>
Note: See TracBrowser for help on using the repository browser.