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

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

les régles compilées incluent des directives dynamique require vers un fichier php homonyme au yaml, dont le chemin est relatif au chemin courant.
Il faut donc differencier le cache compilé selon _DIR_RACINE

File size: 2.5 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//
48// Methode de chargement d'une wheel SPIP
49//
50
51class SPIPTextWheelRuleset extends TextWheelRuleSet {
52        protected function findFile(&$file, $path=''){
53                static $default_path;
54
55                // absolute file path?
56                if (file_exists($file))
57                        return $file;
58
59                // file include with texwheels, relative to calling ruleset
60                if ($path AND file_exists($f = $path.$file))
61                        return $f;
62
63                return find_in_path($file,'wheels/');
64        }
65
66        public static function &loader($ruleset, $callback = '', $class = 'SPIPTextWheelRuleset') {
67
68                # memoization
69                # attention : le ruleset peut contenir apres loading des chemins relatifs
70                # il faut donc que le cache depende du chemin courant vers la racine de SPIP
71                $key = 'tw-'.md5(serialize($ruleset).$callback.$class._DIR_RACINE);
72
73                # lecture du cache
74                include_spip('inc/memoization');
75                if (!function_exists('cache_get')) include_spip('inc/memoization-mini');
76                if (!_request('var_mode')
77                AND $cacheruleset = cache_get($key))
78                        return $cacheruleset;
79
80                # calcul de la wheel
81                $ruleset = parent::loader($ruleset, $callback, $class);
82
83                # ecriture du cache
84                cache_set($key, $ruleset);
85
86                return $ruleset;
87        }
88}
89
90
91?>
Note: See TracBrowser for help on using the repository browser.