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

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

Corrections de notices PHP

File size: 3.0 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//
20if (!isset($GLOBALS['spip_wheels'])) {
21        $GLOBALS['spip_wheels'] = array();
22}
23
24// Si le tableau des raccourcis existe déjà
25if (!isset($GLOBALS['spip_wheels']['raccourcis']) OR !is_array($GLOBALS['spip_wheels']['raccourcis']))
26        $GLOBALS['spip_wheels']['raccourcis'] = array(
27                'spip/spip.yaml',
28                'spip/spip-paragrapher.yaml'
29        );
30else
31        $GLOBALS['spip_wheels']['raccourcis'] = array_merge(
32                array(
33                        'spip/spip.yaml',
34                        'spip/spip-paragrapher.yaml'
35                ),
36                $GLOBALS['spip_wheels']['raccourcis']
37        );
38
39if (test_espace_prive ())
40        $GLOBALS['spip_wheels']['raccourcis'][] = 'spip/ecrire.yaml';
41
42$GLOBALS['spip_wheels']['interdire_scripts'] = array(
43        'spip/interdire-scripts.yaml'
44);
45
46$GLOBALS['spip_wheels']['echappe_js'] = array(
47        'spip/echappe-js.yaml'
48);
49
50$GLOBALS['spip_wheels']['paragrapher'] = array(
51        'spip/spip-paragrapher.yaml'
52);
53
54$GLOBALS['spip_wheels']['listes'] = array(
55        'spip/spip-listes.yaml'
56);
57
58//
59// Methode de chargement d'une wheel SPIP
60//
61
62class SPIPTextWheelRuleset extends TextWheelRuleSet {
63        protected function findFile(&$file, $path=''){
64                static $default_path;
65
66                // absolute file path?
67                if (file_exists($file))
68                        return $file;
69
70                // file include with texwheels, relative to calling ruleset
71                if ($path AND file_exists($f = $path.$file))
72                        return $f;
73
74                return find_in_path($file,'wheels/');
75        }
76
77        public static function &loader($ruleset, $callback = '', $class = 'SPIPTextWheelRuleset') {
78
79                # memoization
80                # attention : le ruleset peut contenir apres loading des chemins relatifs
81                # il faut donc que le cache depende du chemin courant vers la racine de SPIP
82                $key = 'tw-'.md5(serialize($ruleset).$callback.$class._DIR_RACINE);
83
84                # lecture du cache
85                include_spip('inc/memoization');
86                if (!function_exists('cache_get')) include_spip('inc/memoization-mini');
87                if ((!defined('_VAR_MODE') OR _VAR_MODE!='recalcul')
88                  AND $cacheruleset = cache_get($key))
89                        return $cacheruleset;
90
91                # calcul de la wheel
92                $ruleset = parent::loader($ruleset, $callback, $class);
93
94                # ecriture du cache
95                cache_set($key, $ruleset);
96
97                return $ruleset;
98        }
99}
100
101
102function tw_trig_purger($quoi){
103        if ($quoi=='cache')
104                purger_repertoire(_DIR_CACHE."wheels");
105        return $quoi;
106}
107
108?>
Note: See TracBrowser for help on using the repository browser.