Completed
Pull Request — master (#32)
by
unknown
05:47
created
ecrire/urls/page.php 2 patches
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 define('URLS_PAGE_EXEMPLE', 'spip.php?article12');
@@ -30,74 +30,74 @@  discard block
 block discarded – undo
30 30
 // http://code.spip.net/@_generer_url_page
31 31
 function _generer_url_page($type, $id, $args = '', $ancre = '') {
32 32
 
33
-	if ($generer_url_externe = charger_fonction("generer_url_$type", 'urls', true)) {
34
-		$url = $generer_url_externe($id, $args, $ancre);
35
-		if (null != $url) {
36
-			return $url;
37
-		}
38
-	}
33
+    if ($generer_url_externe = charger_fonction("generer_url_$type", 'urls', true)) {
34
+        $url = $generer_url_externe($id, $args, $ancre);
35
+        if (null != $url) {
36
+            return $url;
37
+        }
38
+    }
39 39
 
40
-	$url = _debut_urls_page . $type . _separateur_urls_page
41
-		. $id . _terminaison_urls_page;
40
+    $url = _debut_urls_page . $type . _separateur_urls_page
41
+        . $id . _terminaison_urls_page;
42 42
 
43
-	if ($args) {
44
-		$args = strpos($url, '?') ? "&$args" : "?$args";
45
-	}
43
+    if ($args) {
44
+        $args = strpos($url, '?') ? "&$args" : "?$args";
45
+    }
46 46
 
47
-	return _DIR_RACINE . $url . $args . ($ancre ? "#$ancre" : '');
47
+    return _DIR_RACINE . $url . $args . ($ancre ? "#$ancre" : '');
48 48
 }
49 49
 
50 50
 // retrouve le fond et les parametres d'une URL abregee
51 51
 // le contexte deja existant est fourni dans args sous forme de tableau ou query string
52 52
 // http://code.spip.net/@urls_page_dist
53 53
 function urls_page_dist($i, &$entite, $args = '', $ancre = '') {
54
-	if (is_numeric($i)) {
55
-		return _generer_url_page($entite, $i, $args, $ancre);
56
-	}
54
+    if (is_numeric($i)) {
55
+        return _generer_url_page($entite, $i, $args, $ancre);
56
+    }
57 57
 
58
-	// traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
59
-	if ($GLOBALS['profondeur_url'] > 0 and $entite == 'sommaire') {
60
-		return array(array(), '404');
61
-	}
58
+    // traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
59
+    if ($GLOBALS['profondeur_url'] > 0 and $entite == 'sommaire') {
60
+        return array(array(), '404');
61
+    }
62 62
 
63
-	// voir s'il faut recuperer le id_* implicite et les &debut_xx;
64
-	if (is_array($args)) {
65
-		$contexte = $args;
66
-	} else {
67
-		parse_str($args, $contexte);
68
-	}
69
-	include_spip('inc/urls');
70
-	$r = nettoyer_url_page($i, $contexte);
71
-	if ($r) {
72
-		array_pop($r); // nettoyer_url_page renvoie un argument de plus inutile ici
73
-		return $r;
74
-	}
63
+    // voir s'il faut recuperer le id_* implicite et les &debut_xx;
64
+    if (is_array($args)) {
65
+        $contexte = $args;
66
+    } else {
67
+        parse_str($args, $contexte);
68
+    }
69
+    include_spip('inc/urls');
70
+    $r = nettoyer_url_page($i, $contexte);
71
+    if ($r) {
72
+        array_pop($r); // nettoyer_url_page renvoie un argument de plus inutile ici
73
+        return $r;
74
+    }
75 75
 
76
-	/*
76
+    /*
77 77
 	 * Le bloc qui suit sert a faciliter les transitions depuis
78 78
 	 * le mode 'urls-propres' vers les modes 'urls-standard' et 'url-html'
79 79
 	 * Il est inutile de le recopier si vous personnalisez vos URLs
80 80
 	 * et votre .htaccess
81 81
 	 */
82
-	// Si on est revenu en mode html, mais c'est une ancienne url_propre
83
-	// on ne redirige pas, on assume le nouveau contexte (si possible)
84
-	$url = $i;
85
-	$url_propre = isset($url)
86
-		? $url
87
-		: (isset($_SERVER['REDIRECT_url_propre'])
88
-			? $_SERVER['REDIRECT_url_propre']
89
-			: (isset($_ENV['url_propre'])
90
-				? $_ENV['url_propre']
91
-				: ''
92
-			));
93
-	if ($url_propre) {
94
-		if ($GLOBALS['profondeur_url'] <= 0) {
95
-			$urls_anciennes = charger_fonction('propres', 'urls', true);
96
-		} else {
97
-			$urls_anciennes = charger_fonction('arbo', 'urls', true);
98
-		}
82
+    // Si on est revenu en mode html, mais c'est une ancienne url_propre
83
+    // on ne redirige pas, on assume le nouveau contexte (si possible)
84
+    $url = $i;
85
+    $url_propre = isset($url)
86
+        ? $url
87
+        : (isset($_SERVER['REDIRECT_url_propre'])
88
+            ? $_SERVER['REDIRECT_url_propre']
89
+            : (isset($_ENV['url_propre'])
90
+                ? $_ENV['url_propre']
91
+                : ''
92
+            ));
93
+    if ($url_propre) {
94
+        if ($GLOBALS['profondeur_url'] <= 0) {
95
+            $urls_anciennes = charger_fonction('propres', 'urls', true);
96
+        } else {
97
+            $urls_anciennes = charger_fonction('arbo', 'urls', true);
98
+        }
99 99
 
100
-		return $urls_anciennes ? $urls_anciennes($url_propre, $entite, $contexte) : '';
101
-	}
102
-	/* Fin du bloc compatibilite url-propres */
100
+        return $urls_anciennes ? $urls_anciennes($url_propre, $entite, $contexte) : '';
101
+    }
102
+    /* Fin du bloc compatibilite url-propres */
103 103
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -23,7 +23,7 @@  discard block
 block discarded – undo
23 23
 # attention toutefois seuls '' et '=' figurent dans les modes de compatibilite
24 24
 define('_separateur_urls_page', '');
25 25
 # on peut indiquer '' si on a installe le .htaccess
26
-define('_debut_urls_page', get_spip_script('./') . '?');
26
+define('_debut_urls_page', get_spip_script('./').'?');
27 27
 #######
28 28
 
29 29
 
@@ -37,14 +37,14 @@  discard block
 block discarded – undo
37 37
 		}
38 38
 	}
39 39
 
40
-	$url = _debut_urls_page . $type . _separateur_urls_page
41
-		. $id . _terminaison_urls_page;
40
+	$url = _debut_urls_page.$type._separateur_urls_page
41
+		. $id._terminaison_urls_page;
42 42
 
43 43
 	if ($args) {
44 44
 		$args = strpos($url, '?') ? "&$args" : "?$args";
45 45
 	}
46 46
 
47
-	return _DIR_RACINE . $url . $args . ($ancre ? "#$ancre" : '');
47
+	return _DIR_RACINE.$url.$args.($ancre ? "#$ancre" : '');
48 48
 }
49 49
 
50 50
 // retrouve le fond et les parametres d'une URL abregee
Please login to merge, or discard this patch.
ecrire/xml/interfaces.php 2 patches
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 define('_REGEXP_DOCTYPE',
@@ -33,14 +33,14 @@  discard block
 block discarded – undo
33 33
 define('_REGEXP_ENTITY_DEF', '/^%(' . _SUB_REGEXP_SYMBOL . '+);/');
34 34
 define('_REGEXP_TYPE_XML', 'PUBLIC|SYSTEM|INCLUDE|IGNORE|CDATA');
35 35
 define('_REGEXP_ENTITY_DECL', '/^<!ENTITY\s+(%?)\s*(' .
36
-	_SUB_REGEXP_SYMBOL .
37
-	'+;?)\s+(' .
38
-	_REGEXP_TYPE_XML .
39
-	')?\s*(' .
40
-	"('([^']*)')" .
41
-	'|("([^"]*)")' .
42
-	'|\s*(%' . _SUB_REGEXP_SYMBOL . '+;)\s*' .
43
-	')\s*(--.*?--)?("([^"]*)")?\s*>\s*(.*)$/s');
36
+    _SUB_REGEXP_SYMBOL .
37
+    '+;?)\s+(' .
38
+    _REGEXP_TYPE_XML .
39
+    ')?\s*(' .
40
+    "('([^']*)')" .
41
+    '|("([^"]*)")' .
42
+    '|\s*(%' . _SUB_REGEXP_SYMBOL . '+;)\s*' .
43
+    ')\s*(--.*?--)?("([^"]*)")?\s*>\s*(.*)$/s');
44 44
 
45 45
 define('_REGEXP_INCLUDE_USE', '/^<!\[\s*%\s*([^;]*);\s*\[\s*(.*)$/s');
46 46
 
@@ -50,11 +50,11 @@  discard block
 block discarded – undo
50 50
  * Document Type Compilation
51 51
  **/
52 52
 class DTC {
53
-	public $macros = array();
54
-	public $elements = array();
55
-	public $peres = array();
56
-	public $attributs = array();
57
-	public $entites = array();
58
-	public $regles = array();
59
-	public $pcdata = array();
53
+    public $macros = array();
54
+    public $elements = array();
55
+    public $peres = array();
56
+    public $attributs = array();
57
+    public $entites = array();
58
+    public $regles = array();
59
+    public $pcdata = array();
60 60
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -23,23 +23,23 @@
 block discarded – undo
23 23
 
24 24
 define('_SUB_REGEXP_SYMBOL', '[\w_:.-]');
25 25
 
26
-define('_REGEXP_NMTOKEN', '/^' . _SUB_REGEXP_SYMBOL . '+$/');
26
+define('_REGEXP_NMTOKEN', '/^'._SUB_REGEXP_SYMBOL.'+$/');
27 27
 
28
-define('_REGEXP_NMTOKENS', '/^(' . _SUB_REGEXP_SYMBOL . '+\s*)*$/');
28
+define('_REGEXP_NMTOKENS', '/^('._SUB_REGEXP_SYMBOL.'+\s*)*$/');
29 29
 
30
-define('_REGEXP_ID', '/^[A-Za-z_:]' . _SUB_REGEXP_SYMBOL . '*$/');
30
+define('_REGEXP_ID', '/^[A-Za-z_:]'._SUB_REGEXP_SYMBOL.'*$/');
31 31
 
32
-define('_REGEXP_ENTITY_USE', '/%(' . _SUB_REGEXP_SYMBOL . '+);/');
33
-define('_REGEXP_ENTITY_DEF', '/^%(' . _SUB_REGEXP_SYMBOL . '+);/');
32
+define('_REGEXP_ENTITY_USE', '/%('._SUB_REGEXP_SYMBOL.'+);/');
33
+define('_REGEXP_ENTITY_DEF', '/^%('._SUB_REGEXP_SYMBOL.'+);/');
34 34
 define('_REGEXP_TYPE_XML', 'PUBLIC|SYSTEM|INCLUDE|IGNORE|CDATA');
35
-define('_REGEXP_ENTITY_DECL', '/^<!ENTITY\s+(%?)\s*(' .
36
-	_SUB_REGEXP_SYMBOL .
37
-	'+;?)\s+(' .
38
-	_REGEXP_TYPE_XML .
39
-	')?\s*(' .
40
-	"('([^']*)')" .
41
-	'|("([^"]*)")' .
42
-	'|\s*(%' . _SUB_REGEXP_SYMBOL . '+;)\s*' .
35
+define('_REGEXP_ENTITY_DECL', '/^<!ENTITY\s+(%?)\s*('.
36
+	_SUB_REGEXP_SYMBOL.
37
+	'+;?)\s+('.
38
+	_REGEXP_TYPE_XML.
39
+	')?\s*('.
40
+	"('([^']*)')".
41
+	'|("([^"]*)")'.
42
+	'|\s*(%'._SUB_REGEXP_SYMBOL.'+;)\s*'.
43 43
 	')\s*(--.*?--)?("([^"]*)")?\s*>\s*(.*)$/s');
44 44
 
45 45
 define('_REGEXP_INCLUDE_USE', '/^<!\[\s*%\s*([^;]*);\s*\[\s*(.*)$/s');
Please login to merge, or discard this patch.
ecrire/xml/indenter.php 2 patches
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -11,61 +11,61 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 class IndenteurXML {
18 18
 
19
-	// http://code.spip.net/@debutElement
20
-	public function debutElement($phraseur, $name, $attrs) {
21
-		xml_debutElement($this, $name, $attrs);
22
-	}
19
+    // http://code.spip.net/@debutElement
20
+    public function debutElement($phraseur, $name, $attrs) {
21
+        xml_debutElement($this, $name, $attrs);
22
+    }
23 23
 
24
-	// http://code.spip.net/@finElement
25
-	public function finElement($phraseur, $name) {
26
-		xml_finElement($this, $name);
27
-	}
24
+    // http://code.spip.net/@finElement
25
+    public function finElement($phraseur, $name) {
26
+        xml_finElement($this, $name);
27
+    }
28 28
 
29
-	// http://code.spip.net/@textElement
30
-	public function textElement($phraseur, $data) {
31
-		xml_textElement($this, $data);
32
-	}
29
+    // http://code.spip.net/@textElement
30
+    public function textElement($phraseur, $data) {
31
+        xml_textElement($this, $data);
32
+    }
33 33
 
34
-	public function piElement($phraseur, $target, $data) {
35
-		xml_PiElement($this, $target, $data);
36
-	}
34
+    public function piElement($phraseur, $target, $data) {
35
+        xml_PiElement($this, $target, $data);
36
+    }
37 37
 
38
-	// http://code.spip.net/@defautElement
39
-	public function defaultElement($phraseur, $data) {
40
-		xml_defaultElement($this, $data);
41
-	}
38
+    // http://code.spip.net/@defautElement
39
+    public function defaultElement($phraseur, $data) {
40
+        xml_defaultElement($this, $data);
41
+    }
42 42
 
43
-	// http://code.spip.net/@phraserTout
44
-	public function phraserTout($phraseur, $data) {
45
-		xml_parsestring($this, $data);
46
-	}
43
+    // http://code.spip.net/@phraserTout
44
+    public function phraserTout($phraseur, $data) {
45
+        xml_parsestring($this, $data);
46
+    }
47 47
 
48
-	public $depth = "";
49
-	public $res = "";
50
-	public $err = array();
51
-	public $contenu = array();
52
-	public $ouvrant = array();
53
-	public $reperes = array();
54
-	public $entete = '';
55
-	public $page = '';
56
-	public $dtc = null;
57
-	public $sax = null;
48
+    public $depth = "";
49
+    public $res = "";
50
+    public $err = array();
51
+    public $contenu = array();
52
+    public $ouvrant = array();
53
+    public $reperes = array();
54
+    public $entete = '';
55
+    public $page = '';
56
+    public $dtc = null;
57
+    public $sax = null;
58 58
 }
59 59
 
60 60
 // http://code.spip.net/@xml_indenter_dist
61 61
 function xml_indenter_dist($page, $apply = false) {
62
-	$sax = charger_fonction('sax', 'xml');
63
-	$f = new IndenteurXML();
64
-	$sax($page, $apply, $f);
65
-	if (!$f->err) {
66
-		return $f->entete . $f->res;
67
-	}
68
-	spip_log("indentation impossible " . count($f->err) . " erreurs de validation");
62
+    $sax = charger_fonction('sax', 'xml');
63
+    $f = new IndenteurXML();
64
+    $sax($page, $apply, $f);
65
+    if (!$f->err) {
66
+        return $f->entete . $f->res;
67
+    }
68
+    spip_log("indentation impossible " . count($f->err) . " erreurs de validation");
69 69
 
70
-	return $f->entete . $f->page;
70
+    return $f->entete . $f->page;
71 71
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -63,9 +63,9 @@
 block discarded – undo
63 63
 	$f = new IndenteurXML();
64 64
 	$sax($page, $apply, $f);
65 65
 	if (!$f->err) {
66
-		return $f->entete . $f->res;
66
+		return $f->entete.$f->res;
67 67
 	}
68
-	spip_log("indentation impossible " . count($f->err) . " erreurs de validation");
68
+	spip_log("indentation impossible ".count($f->err)." erreurs de validation");
69 69
 
70
-	return $f->entete . $f->page;
70
+	return $f->entete.$f->page;
71 71
 }
Please login to merge, or discard this patch.
ecrire/public/cacher.php 3 patches
Indentation   +287 added lines, -287 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 /**
@@ -27,9 +27,9 @@  discard block
 block discarded – undo
27 27
  * @return string
28 28
  */
29 29
 function generer_nom_fichier_cache($contexte, $page) {
30
-	$u = md5(var_export(array($contexte, $page), true));
30
+    $u = md5(var_export(array($contexte, $page), true));
31 31
 
32
-	return $u . ".cache";
32
+    return $u . ".cache";
33 33
 }
34 34
 
35 35
 /**
@@ -40,13 +40,13 @@  discard block
 block discarded – undo
40 40
  * @return bool
41 41
  */
42 42
 function ecrire_cache($nom_cache, $valeur) {
43
-	$d = substr($nom_cache, 0, 2);
44
-	$u = substr($nom_cache, 2, 2);
45
-	$rep = _DIR_CACHE;
46
-	$rep = sous_repertoire($rep, '', false, true);
47
-	$rep = sous_repertoire($rep, $d, false, true);
43
+    $d = substr($nom_cache, 0, 2);
44
+    $u = substr($nom_cache, 2, 2);
45
+    $rep = _DIR_CACHE;
46
+    $rep = sous_repertoire($rep, '', false, true);
47
+    $rep = sous_repertoire($rep, $d, false, true);
48 48
 
49
-	return ecrire_fichier($rep . $u . ".cache", serialize(array("nom_cache" => $nom_cache, "valeur" => $valeur)));
49
+    return ecrire_fichier($rep . $u . ".cache", serialize(array("nom_cache" => $nom_cache, "valeur" => $valeur)));
50 50
 }
51 51
 
52 52
 /**
@@ -56,31 +56,31 @@  discard block
 block discarded – undo
56 56
  * @return mixed
57 57
  */
58 58
 function lire_cache($nom_cache) {
59
-	$d = substr($nom_cache, 0, 2);
60
-	$u = substr($nom_cache, 2, 2);
61
-	if (file_exists($f = _DIR_CACHE . "$d/$u.cache")
62
-		and lire_fichier($f, $tmp)
63
-		and $tmp = unserialize($tmp)
64
-		and $tmp['nom_cache'] == $nom_cache
65
-		and isset($tmp['valeur'])
66
-	) {
67
-		return $tmp['valeur'];
68
-	}
69
-
70
-	return false;
59
+    $d = substr($nom_cache, 0, 2);
60
+    $u = substr($nom_cache, 2, 2);
61
+    if (file_exists($f = _DIR_CACHE . "$d/$u.cache")
62
+        and lire_fichier($f, $tmp)
63
+        and $tmp = unserialize($tmp)
64
+        and $tmp['nom_cache'] == $nom_cache
65
+        and isset($tmp['valeur'])
66
+    ) {
67
+        return $tmp['valeur'];
68
+    }
69
+
70
+    return false;
71 71
 }
72 72
 
73 73
 // Parano : on signe le cache, afin d'interdire un hack d'injection
74 74
 // dans notre memcache
75 75
 function cache_signature(&$page) {
76
-	if (!isset($GLOBALS['meta']['cache_signature'])) {
77
-		include_spip('inc/acces');
78
-		include_spip('auth/sha256.inc');
79
-		ecrire_meta('cache_signature',
80
-			_nano_sha256($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SERVER_SIGNATURE"] . creer_uniqid()), 'non');
81
-	}
82
-
83
-	return crc32($GLOBALS['meta']['cache_signature'] . $page['texte']);
76
+    if (!isset($GLOBALS['meta']['cache_signature'])) {
77
+        include_spip('inc/acces');
78
+        include_spip('auth/sha256.inc');
79
+        ecrire_meta('cache_signature',
80
+            _nano_sha256($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SERVER_SIGNATURE"] . creer_uniqid()), 'non');
81
+    }
82
+
83
+    return crc32($GLOBALS['meta']['cache_signature'] . $page['texte']);
84 84
 }
85 85
 
86 86
 /**
@@ -94,14 +94,14 @@  discard block
 block discarded – undo
94 94
  * @return array
95 95
  */
96 96
 function gzip_page($page) {
97
-	if (function_exists('gzcompress') and strlen($page['texte']) > 16 * 1024) {
98
-		$page['gz'] = true;
99
-		$page['texte'] = gzcompress($page['texte']);
100
-	} else {
101
-		$page['gz'] = false;
102
-	}
103
-
104
-	return $page;
97
+    if (function_exists('gzcompress') and strlen($page['texte']) > 16 * 1024) {
98
+        $page['gz'] = true;
99
+        $page['texte'] = gzcompress($page['texte']);
100
+    } else {
101
+        $page['gz'] = false;
102
+    }
103
+
104
+    return $page;
105 105
 }
106 106
 
107 107
 /**
@@ -116,10 +116,10 @@  discard block
 block discarded – undo
116 116
  * @return void
117 117
  */
118 118
 function gunzip_page(&$page) {
119
-	if ($page['gz']) {
120
-		$page['texte'] = gzuncompress($page['texte']);
121
-		$page['gz'] = false; // ne pas gzuncompress deux fois une meme page
122
-	}
119
+    if ($page['gz']) {
120
+        $page['texte'] = gzuncompress($page['texte']);
121
+        $page['gz'] = false; // ne pas gzuncompress deux fois une meme page
122
+    }
123 123
 }
124 124
 
125 125
 /**
@@ -135,72 +135,72 @@  discard block
 block discarded – undo
135 135
  */
136 136
 /// http://code.spip.net/@cache_valide
137 137
 function cache_valide(&$page, $date) {
138
-	$now = $_SERVER['REQUEST_TIME'];
139
-
140
-	// Apparition d'un nouvel article post-date ?
141
-	if (isset($GLOBALS['meta']['post_dates'])
142
-		and $GLOBALS['meta']['post_dates'] == 'non'
143
-		and isset($GLOBALS['meta']['date_prochain_postdate'])
144
-		and $now > $GLOBALS['meta']['date_prochain_postdate']
145
-	) {
146
-		spip_log('Un article post-date invalide le cache');
147
-		include_spip('inc/rubriques');
148
-		calculer_prochain_postdate(true);
149
-	}
150
-
151
-	if (defined('_VAR_NOCACHE') and _VAR_NOCACHE) {
152
-		return -1;
153
-	}
154
-	if (isset($GLOBALS['meta']['cache_inhib']) and $_SERVER['REQUEST_TIME'] < $GLOBALS['meta']['cache_inhib']) {
155
-		return -1;
156
-	}
157
-	if (defined('_NO_CACHE')) {
158
-		return (_NO_CACHE == 0 and !isset($page['texte'])) ? 1 : _NO_CACHE;
159
-	}
160
-
161
-	// pas de cache ? on le met a jour, sauf pour les bots (on leur calcule la page sans mise en cache)
162
-	if (!$page or !isset($page['texte']) or !isset($page['entetes']['X-Spip-Cache'])) {
163
-		return _IS_BOT ? -1 : 1;
164
-	}
165
-
166
-	// controle de la signature
167
-	if ($page['sig'] !== cache_signature($page)) {
168
-		return _IS_BOT ? -1 : 1;
169
-	}
170
-
171
-	// #CACHE{n,statique} => on n'invalide pas avec derniere_modif
172
-	// cf. ecrire/public/balises.php, balise_CACHE_dist()
173
-	if (!isset($page['entetes']['X-Spip-Statique']) or $page['entetes']['X-Spip-Statique'] !== 'oui') {
174
-
175
-		// Cache invalide par la meta 'derniere_modif'
176
-		// sauf pour les bots, qui utilisent toujours le cache
177
-		if (!_IS_BOT
178
-			and $GLOBALS['derniere_modif_invalide']
179
-			and isset($GLOBALS['meta']['derniere_modif'])
180
-			and $date < $GLOBALS['meta']['derniere_modif']
181
-		) {
182
-			return 1;
183
-		}
184
-
185
-	}
186
-
187
-	// Sinon comparer l'age du fichier a sa duree de cache
188
-	$duree = intval($page['entetes']['X-Spip-Cache']);
189
-	$cache_mark = (isset($GLOBALS['meta']['cache_mark']) ? $GLOBALS['meta']['cache_mark'] : 0);
190
-	if ($duree == 0)  #CACHE{0}
191
-	{
192
-		return -1;
193
-	} // sauf pour les bots, qui utilisent toujours le cache
194
-	else {
195
-		if ((!_IS_BOT and $date + $duree < $now)
196
-			# le cache est anterieur a la derniere purge : l'ignorer, meme pour les bots
197
-			or $date < $cache_mark
198
-		) {
199
-			return _IS_BOT ? -1 : 1;
200
-		} else {
201
-			return 0;
202
-		}
203
-	}
138
+    $now = $_SERVER['REQUEST_TIME'];
139
+
140
+    // Apparition d'un nouvel article post-date ?
141
+    if (isset($GLOBALS['meta']['post_dates'])
142
+        and $GLOBALS['meta']['post_dates'] == 'non'
143
+        and isset($GLOBALS['meta']['date_prochain_postdate'])
144
+        and $now > $GLOBALS['meta']['date_prochain_postdate']
145
+    ) {
146
+        spip_log('Un article post-date invalide le cache');
147
+        include_spip('inc/rubriques');
148
+        calculer_prochain_postdate(true);
149
+    }
150
+
151
+    if (defined('_VAR_NOCACHE') and _VAR_NOCACHE) {
152
+        return -1;
153
+    }
154
+    if (isset($GLOBALS['meta']['cache_inhib']) and $_SERVER['REQUEST_TIME'] < $GLOBALS['meta']['cache_inhib']) {
155
+        return -1;
156
+    }
157
+    if (defined('_NO_CACHE')) {
158
+        return (_NO_CACHE == 0 and !isset($page['texte'])) ? 1 : _NO_CACHE;
159
+    }
160
+
161
+    // pas de cache ? on le met a jour, sauf pour les bots (on leur calcule la page sans mise en cache)
162
+    if (!$page or !isset($page['texte']) or !isset($page['entetes']['X-Spip-Cache'])) {
163
+        return _IS_BOT ? -1 : 1;
164
+    }
165
+
166
+    // controle de la signature
167
+    if ($page['sig'] !== cache_signature($page)) {
168
+        return _IS_BOT ? -1 : 1;
169
+    }
170
+
171
+    // #CACHE{n,statique} => on n'invalide pas avec derniere_modif
172
+    // cf. ecrire/public/balises.php, balise_CACHE_dist()
173
+    if (!isset($page['entetes']['X-Spip-Statique']) or $page['entetes']['X-Spip-Statique'] !== 'oui') {
174
+
175
+        // Cache invalide par la meta 'derniere_modif'
176
+        // sauf pour les bots, qui utilisent toujours le cache
177
+        if (!_IS_BOT
178
+            and $GLOBALS['derniere_modif_invalide']
179
+            and isset($GLOBALS['meta']['derniere_modif'])
180
+            and $date < $GLOBALS['meta']['derniere_modif']
181
+        ) {
182
+            return 1;
183
+        }
184
+
185
+    }
186
+
187
+    // Sinon comparer l'age du fichier a sa duree de cache
188
+    $duree = intval($page['entetes']['X-Spip-Cache']);
189
+    $cache_mark = (isset($GLOBALS['meta']['cache_mark']) ? $GLOBALS['meta']['cache_mark'] : 0);
190
+    if ($duree == 0)  #CACHE{0}
191
+    {
192
+        return -1;
193
+    } // sauf pour les bots, qui utilisent toujours le cache
194
+    else {
195
+        if ((!_IS_BOT and $date + $duree < $now)
196
+            # le cache est anterieur a la derniere purge : l'ignorer, meme pour les bots
197
+            or $date < $cache_mark
198
+        ) {
199
+            return _IS_BOT ? -1 : 1;
200
+        } else {
201
+            return 0;
202
+        }
203
+    }
204 204
 }
205 205
 
206 206
 /**
@@ -215,55 +215,55 @@  discard block
 block discarded – undo
215 215
  */
216 216
 function creer_cache(&$page, &$chemin_cache) {
217 217
 
218
-	// Ne rien faire si on est en preview, debug, ou si une erreur
219
-	// grave s'est presentee (compilation du squelette, MySQL, etc)
220
-	// le cas var_nocache ne devrait jamais arriver ici (securite)
221
-	// le cas spip_interdire_cache correspond a une ereur SQL grave non anticipable
222
-	if ((defined('_VAR_NOCACHE') and _VAR_NOCACHE)
223
-		or defined('spip_interdire_cache')
224
-	) {
225
-		return;
226
-	}
227
-
228
-	// Si la page c1234 a un invalideur de session 'zz', sauver dans
229
-	// 'tmp/cache/MD5(chemin_cache)_zz'
230
-	if (isset($page['invalideurs'])
231
-		and isset($page['invalideurs']['session'])
232
-	) {
233
-		// on verifie que le contenu du chemin cache indique seulement
234
-		// "cache sessionne" ; sa date indique la date de validite
235
-		// des caches sessionnes
236
-		if (!$tmp = lire_cache($chemin_cache)) {
237
-			spip_log('Creation cache sessionne ' . $chemin_cache);
238
-			$tmp = array(
239
-				'invalideurs' => array('session' => ''),
240
-				'lastmodified' => $_SERVER['REQUEST_TIME']
241
-			);
242
-			ecrire_cache($chemin_cache, $tmp);
243
-		}
244
-		$chemin_cache = generer_nom_fichier_cache(array("chemin_cache" => $chemin_cache),
245
-			array("session" => $page['invalideurs']['session']));
246
-	}
247
-
248
-	// ajouter la date de production dans le cache lui meme
249
-	// (qui contient deja sa duree de validite)
250
-	$page['lastmodified'] = $_SERVER['REQUEST_TIME'];
251
-
252
-	// compresser le contenu si besoin
253
-	$pagez = gzip_page($page);
254
-
255
-	// signer le contenu
256
-	$pagez['sig'] = cache_signature($pagez);
257
-
258
-	// l'enregistrer, compresse ou non...
259
-	$ok = ecrire_cache($chemin_cache, $pagez);
260
-
261
-	spip_log((_IS_BOT ? "Bot:" : "") . "Creation du cache $chemin_cache pour "
262
-		. $page['entetes']['X-Spip-Cache'] . " secondes" . ($ok ? '' : ' (erreur!)'), _LOG_INFO_IMPORTANTE);
263
-
264
-	// Inserer ses invalideurs
265
-	include_spip('inc/invalideur');
266
-	maj_invalideurs($chemin_cache, $page);
218
+    // Ne rien faire si on est en preview, debug, ou si une erreur
219
+    // grave s'est presentee (compilation du squelette, MySQL, etc)
220
+    // le cas var_nocache ne devrait jamais arriver ici (securite)
221
+    // le cas spip_interdire_cache correspond a une ereur SQL grave non anticipable
222
+    if ((defined('_VAR_NOCACHE') and _VAR_NOCACHE)
223
+        or defined('spip_interdire_cache')
224
+    ) {
225
+        return;
226
+    }
227
+
228
+    // Si la page c1234 a un invalideur de session 'zz', sauver dans
229
+    // 'tmp/cache/MD5(chemin_cache)_zz'
230
+    if (isset($page['invalideurs'])
231
+        and isset($page['invalideurs']['session'])
232
+    ) {
233
+        // on verifie que le contenu du chemin cache indique seulement
234
+        // "cache sessionne" ; sa date indique la date de validite
235
+        // des caches sessionnes
236
+        if (!$tmp = lire_cache($chemin_cache)) {
237
+            spip_log('Creation cache sessionne ' . $chemin_cache);
238
+            $tmp = array(
239
+                'invalideurs' => array('session' => ''),
240
+                'lastmodified' => $_SERVER['REQUEST_TIME']
241
+            );
242
+            ecrire_cache($chemin_cache, $tmp);
243
+        }
244
+        $chemin_cache = generer_nom_fichier_cache(array("chemin_cache" => $chemin_cache),
245
+            array("session" => $page['invalideurs']['session']));
246
+    }
247
+
248
+    // ajouter la date de production dans le cache lui meme
249
+    // (qui contient deja sa duree de validite)
250
+    $page['lastmodified'] = $_SERVER['REQUEST_TIME'];
251
+
252
+    // compresser le contenu si besoin
253
+    $pagez = gzip_page($page);
254
+
255
+    // signer le contenu
256
+    $pagez['sig'] = cache_signature($pagez);
257
+
258
+    // l'enregistrer, compresse ou non...
259
+    $ok = ecrire_cache($chemin_cache, $pagez);
260
+
261
+    spip_log((_IS_BOT ? "Bot:" : "") . "Creation du cache $chemin_cache pour "
262
+        . $page['entetes']['X-Spip-Cache'] . " secondes" . ($ok ? '' : ' (erreur!)'), _LOG_INFO_IMPORTANTE);
263
+
264
+    // Inserer ses invalideurs
265
+    include_spip('inc/invalideur');
266
+    maj_invalideurs($chemin_cache, $page);
267 267
 
268 268
 }
269 269
 
@@ -279,15 +279,15 @@  discard block
 block discarded – undo
279 279
  * @return void
280 280
  */
281 281
 function nettoyer_petit_cache($prefix, $duree = 300) {
282
-	// determiner le repertoire a purger : 'tmp/CACHE/rech/'
283
-	$dircache = sous_repertoire(_DIR_CACHE, $prefix);
284
-	if (spip_touch($dircache . 'purger_' . $prefix, $duree, true)) {
285
-		foreach (preg_files($dircache, '[.]txt$') as $f) {
286
-			if ($_SERVER['REQUEST_TIME'] - (@file_exists($f) ? @filemtime($f) : 0) > $duree) {
287
-				spip_unlink($f);
288
-			}
289
-		}
290
-	}
282
+    // determiner le repertoire a purger : 'tmp/CACHE/rech/'
283
+    $dircache = sous_repertoire(_DIR_CACHE, $prefix);
284
+    if (spip_touch($dircache . 'purger_' . $prefix, $duree, true)) {
285
+        foreach (preg_files($dircache, '[.]txt$') as $f) {
286
+            if ($_SERVER['REQUEST_TIME'] - (@file_exists($f) ? @filemtime($f) : 0) > $duree) {
287
+                spip_unlink($f);
288
+            }
289
+        }
290
+    }
291 291
 }
292 292
 
293 293
 
@@ -317,126 +317,126 @@  discard block
 block discarded – undo
317 317
  */
318 318
 function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified) {
319 319
 
320
-	# fonction de cache minimale : dire "non on ne met rien en cache"
321
-	# $use_cache = -1; return;
322
-
323
-	// Second appel, destine a l'enregistrement du cache sur le disque
324
-	if (isset($chemin_cache)) {
325
-		return creer_cache($page, $chemin_cache);
326
-	}
327
-
328
-	// Toute la suite correspond au premier appel
329
-	$contexte_implicite = $page['contexte_implicite'];
330
-
331
-	// Cas ignorant le cache car completement dynamique
332
-	if ($_SERVER['REQUEST_METHOD'] == 'POST'
333
-		or _request('connect')
334
-	) {
335
-		$use_cache = -1;
336
-		$lastmodified = 0;
337
-		$chemin_cache = "";
338
-		$page = array();
339
-
340
-		return;
341
-	}
342
-
343
-	// Controler l'existence d'un cache nous correspondant
344
-	$chemin_cache = generer_nom_fichier_cache($contexte, $page);
345
-	$lastmodified = 0;
346
-
347
-	// charger le cache s'il existe (et si il a bien le bon hash = anticollision)
348
-	if (!$page = lire_cache($chemin_cache)) {
349
-		$page = array();
350
-	}
351
-
352
-	// s'il est sessionne, charger celui correspondant a notre session
353
-	if (isset($page['invalideurs'])
354
-		and isset($page['invalideurs']['session'])
355
-	) {
356
-		$chemin_cache_session = generer_nom_fichier_cache(array("chemin_cache" => $chemin_cache),
357
-			array("session" => spip_session()));
358
-		if ($page_session = lire_cache($chemin_cache_session)
359
-			and $page_session['lastmodified'] >= $page['lastmodified']
360
-		) {
361
-			$page = $page_session;
362
-		} else {
363
-			$page = array();
364
-		}
365
-	}
366
-
367
-
368
-	// Faut-il effacer des pages invalidees (en particulier ce cache-ci) ?
369
-	if (isset($GLOBALS['meta']['invalider'])) {
370
-		// ne le faire que si la base est disponible
371
-		if (spip_connect()) {
372
-			include_spip('inc/invalideur');
373
-			retire_caches($chemin_cache); # API invalideur inutile
374
-			supprimer_fichier(_DIR_CACHE . $chemin_cache);
375
-			if (isset($chemin_cache_session) and $chemin_cache_session) {
376
-				supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
377
-			}
378
-		}
379
-	}
380
-
381
-	// Si un calcul, recalcul [ou preview, mais c'est recalcul] est demande,
382
-	// on supprime le cache
383
-	if (defined('_VAR_MODE') && _VAR_MODE &&
384
-		(isset($_COOKIE['spip_session'])
385
-			|| isset($_COOKIE['spip_admin'])
386
-			|| @file_exists(_ACCESS_FILE_NAME))
387
-	) {
388
-		$page = array('contexte_implicite' => $contexte_implicite); // ignorer le cache deja lu
389
-		include_spip('inc/invalideur');
390
-		retire_caches($chemin_cache); # API invalideur inutile
391
-		supprimer_fichier(_DIR_CACHE . $chemin_cache);
392
-		if (isset($chemin_cache_session) and $chemin_cache_session) {
393
-			supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
394
-		}
395
-	}
396
-
397
-	// $delais par defaut
398
-	// pour toutes les pages sans #CACHE{} hors modeles/ et espace privé
399
-	// qui sont a cache nul par defaut
400
-	if (!isset($GLOBALS['delais'])) {
401
-		if (!defined('_DUREE_CACHE_DEFAUT')) {
402
-			define('_DUREE_CACHE_DEFAUT', 24 * 3600);
403
-		}
404
-		$GLOBALS['delais'] = _DUREE_CACHE_DEFAUT;
405
-	}
406
-
407
-	// determiner la validite de la page
408
-	if ($page) {
409
-		$use_cache = cache_valide($page, isset($page['lastmodified']) ? $page['lastmodified'] : 0);
410
-		// le contexte implicite n'est pas stocke dans le cache, mais il y a equivalence
411
-		// par le nom du cache. On le reinjecte donc ici pour utilisation eventuelle au calcul
412
-		$page['contexte_implicite'] = $contexte_implicite;
413
-		if (!$use_cache) {
414
-			// $page est un cache utilisable
415
-			gunzip_page($page);
416
-
417
-			return;
418
-		}
419
-	} else {
420
-		$page = array('contexte_implicite' => $contexte_implicite);
421
-		$use_cache = cache_valide($page, 0); // fichier cache absent : provoque le calcul
422
-	}
423
-
424
-	// Si pas valide mais pas de connexion a la base, le garder quand meme
425
-	if (!spip_connect()) {
426
-		if (isset($page['texte'])) {
427
-			gunzip_page($page);
428
-			$use_cache = 0;
429
-		} else {
430
-			spip_log("Erreur base de donnees, impossible utiliser $chemin_cache");
431
-			include_spip('inc/minipres');
432
-
433
-			return minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), array('status' => 503));
434
-		}
435
-	}
436
-
437
-	if ($use_cache < 0) {
438
-		$chemin_cache = '';
439
-	}
440
-
441
-	return;
320
+    # fonction de cache minimale : dire "non on ne met rien en cache"
321
+    # $use_cache = -1; return;
322
+
323
+    // Second appel, destine a l'enregistrement du cache sur le disque
324
+    if (isset($chemin_cache)) {
325
+        return creer_cache($page, $chemin_cache);
326
+    }
327
+
328
+    // Toute la suite correspond au premier appel
329
+    $contexte_implicite = $page['contexte_implicite'];
330
+
331
+    // Cas ignorant le cache car completement dynamique
332
+    if ($_SERVER['REQUEST_METHOD'] == 'POST'
333
+        or _request('connect')
334
+    ) {
335
+        $use_cache = -1;
336
+        $lastmodified = 0;
337
+        $chemin_cache = "";
338
+        $page = array();
339
+
340
+        return;
341
+    }
342
+
343
+    // Controler l'existence d'un cache nous correspondant
344
+    $chemin_cache = generer_nom_fichier_cache($contexte, $page);
345
+    $lastmodified = 0;
346
+
347
+    // charger le cache s'il existe (et si il a bien le bon hash = anticollision)
348
+    if (!$page = lire_cache($chemin_cache)) {
349
+        $page = array();
350
+    }
351
+
352
+    // s'il est sessionne, charger celui correspondant a notre session
353
+    if (isset($page['invalideurs'])
354
+        and isset($page['invalideurs']['session'])
355
+    ) {
356
+        $chemin_cache_session = generer_nom_fichier_cache(array("chemin_cache" => $chemin_cache),
357
+            array("session" => spip_session()));
358
+        if ($page_session = lire_cache($chemin_cache_session)
359
+            and $page_session['lastmodified'] >= $page['lastmodified']
360
+        ) {
361
+            $page = $page_session;
362
+        } else {
363
+            $page = array();
364
+        }
365
+    }
366
+
367
+
368
+    // Faut-il effacer des pages invalidees (en particulier ce cache-ci) ?
369
+    if (isset($GLOBALS['meta']['invalider'])) {
370
+        // ne le faire que si la base est disponible
371
+        if (spip_connect()) {
372
+            include_spip('inc/invalideur');
373
+            retire_caches($chemin_cache); # API invalideur inutile
374
+            supprimer_fichier(_DIR_CACHE . $chemin_cache);
375
+            if (isset($chemin_cache_session) and $chemin_cache_session) {
376
+                supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
377
+            }
378
+        }
379
+    }
380
+
381
+    // Si un calcul, recalcul [ou preview, mais c'est recalcul] est demande,
382
+    // on supprime le cache
383
+    if (defined('_VAR_MODE') && _VAR_MODE &&
384
+        (isset($_COOKIE['spip_session'])
385
+            || isset($_COOKIE['spip_admin'])
386
+            || @file_exists(_ACCESS_FILE_NAME))
387
+    ) {
388
+        $page = array('contexte_implicite' => $contexte_implicite); // ignorer le cache deja lu
389
+        include_spip('inc/invalideur');
390
+        retire_caches($chemin_cache); # API invalideur inutile
391
+        supprimer_fichier(_DIR_CACHE . $chemin_cache);
392
+        if (isset($chemin_cache_session) and $chemin_cache_session) {
393
+            supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
394
+        }
395
+    }
396
+
397
+    // $delais par defaut
398
+    // pour toutes les pages sans #CACHE{} hors modeles/ et espace privé
399
+    // qui sont a cache nul par defaut
400
+    if (!isset($GLOBALS['delais'])) {
401
+        if (!defined('_DUREE_CACHE_DEFAUT')) {
402
+            define('_DUREE_CACHE_DEFAUT', 24 * 3600);
403
+        }
404
+        $GLOBALS['delais'] = _DUREE_CACHE_DEFAUT;
405
+    }
406
+
407
+    // determiner la validite de la page
408
+    if ($page) {
409
+        $use_cache = cache_valide($page, isset($page['lastmodified']) ? $page['lastmodified'] : 0);
410
+        // le contexte implicite n'est pas stocke dans le cache, mais il y a equivalence
411
+        // par le nom du cache. On le reinjecte donc ici pour utilisation eventuelle au calcul
412
+        $page['contexte_implicite'] = $contexte_implicite;
413
+        if (!$use_cache) {
414
+            // $page est un cache utilisable
415
+            gunzip_page($page);
416
+
417
+            return;
418
+        }
419
+    } else {
420
+        $page = array('contexte_implicite' => $contexte_implicite);
421
+        $use_cache = cache_valide($page, 0); // fichier cache absent : provoque le calcul
422
+    }
423
+
424
+    // Si pas valide mais pas de connexion a la base, le garder quand meme
425
+    if (!spip_connect()) {
426
+        if (isset($page['texte'])) {
427
+            gunzip_page($page);
428
+            $use_cache = 0;
429
+        } else {
430
+            spip_log("Erreur base de donnees, impossible utiliser $chemin_cache");
431
+            include_spip('inc/minipres');
432
+
433
+            return minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), array('status' => 503));
434
+        }
435
+    }
436
+
437
+    if ($use_cache < 0) {
438
+        $chemin_cache = '';
439
+    }
440
+
441
+    return;
442 442
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
 function generer_nom_fichier_cache($contexte, $page) {
30 30
 	$u = md5(var_export(array($contexte, $page), true));
31 31
 
32
-	return $u . ".cache";
32
+	return $u.".cache";
33 33
 }
34 34
 
35 35
 /**
@@ -46,7 +46,7 @@  discard block
 block discarded – undo
46 46
 	$rep = sous_repertoire($rep, '', false, true);
47 47
 	$rep = sous_repertoire($rep, $d, false, true);
48 48
 
49
-	return ecrire_fichier($rep . $u . ".cache", serialize(array("nom_cache" => $nom_cache, "valeur" => $valeur)));
49
+	return ecrire_fichier($rep.$u.".cache", serialize(array("nom_cache" => $nom_cache, "valeur" => $valeur)));
50 50
 }
51 51
 
52 52
 /**
@@ -58,7 +58,7 @@  discard block
 block discarded – undo
58 58
 function lire_cache($nom_cache) {
59 59
 	$d = substr($nom_cache, 0, 2);
60 60
 	$u = substr($nom_cache, 2, 2);
61
-	if (file_exists($f = _DIR_CACHE . "$d/$u.cache")
61
+	if (file_exists($f = _DIR_CACHE."$d/$u.cache")
62 62
 		and lire_fichier($f, $tmp)
63 63
 		and $tmp = unserialize($tmp)
64 64
 		and $tmp['nom_cache'] == $nom_cache
@@ -77,10 +77,10 @@  discard block
 block discarded – undo
77 77
 		include_spip('inc/acces');
78 78
 		include_spip('auth/sha256.inc');
79 79
 		ecrire_meta('cache_signature',
80
-			_nano_sha256($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SERVER_SIGNATURE"] . creer_uniqid()), 'non');
80
+			_nano_sha256($_SERVER["DOCUMENT_ROOT"].$_SERVER["SERVER_SIGNATURE"].creer_uniqid()), 'non');
81 81
 	}
82 82
 
83
-	return crc32($GLOBALS['meta']['cache_signature'] . $page['texte']);
83
+	return crc32($GLOBALS['meta']['cache_signature'].$page['texte']);
84 84
 }
85 85
 
86 86
 /**
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
 		// "cache sessionne" ; sa date indique la date de validite
235 235
 		// des caches sessionnes
236 236
 		if (!$tmp = lire_cache($chemin_cache)) {
237
-			spip_log('Creation cache sessionne ' . $chemin_cache);
237
+			spip_log('Creation cache sessionne '.$chemin_cache);
238 238
 			$tmp = array(
239 239
 				'invalideurs' => array('session' => ''),
240 240
 				'lastmodified' => $_SERVER['REQUEST_TIME']
@@ -258,8 +258,8 @@  discard block
 block discarded – undo
258 258
 	// l'enregistrer, compresse ou non...
259 259
 	$ok = ecrire_cache($chemin_cache, $pagez);
260 260
 
261
-	spip_log((_IS_BOT ? "Bot:" : "") . "Creation du cache $chemin_cache pour "
262
-		. $page['entetes']['X-Spip-Cache'] . " secondes" . ($ok ? '' : ' (erreur!)'), _LOG_INFO_IMPORTANTE);
261
+	spip_log((_IS_BOT ? "Bot:" : "")."Creation du cache $chemin_cache pour "
262
+		. $page['entetes']['X-Spip-Cache']." secondes".($ok ? '' : ' (erreur!)'), _LOG_INFO_IMPORTANTE);
263 263
 
264 264
 	// Inserer ses invalideurs
265 265
 	include_spip('inc/invalideur');
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 function nettoyer_petit_cache($prefix, $duree = 300) {
282 282
 	// determiner le repertoire a purger : 'tmp/CACHE/rech/'
283 283
 	$dircache = sous_repertoire(_DIR_CACHE, $prefix);
284
-	if (spip_touch($dircache . 'purger_' . $prefix, $duree, true)) {
284
+	if (spip_touch($dircache.'purger_'.$prefix, $duree, true)) {
285 285
 		foreach (preg_files($dircache, '[.]txt$') as $f) {
286 286
 			if ($_SERVER['REQUEST_TIME'] - (@file_exists($f) ? @filemtime($f) : 0) > $duree) {
287 287
 				spip_unlink($f);
@@ -371,9 +371,9 @@  discard block
 block discarded – undo
371 371
 		if (spip_connect()) {
372 372
 			include_spip('inc/invalideur');
373 373
 			retire_caches($chemin_cache); # API invalideur inutile
374
-			supprimer_fichier(_DIR_CACHE . $chemin_cache);
374
+			supprimer_fichier(_DIR_CACHE.$chemin_cache);
375 375
 			if (isset($chemin_cache_session) and $chemin_cache_session) {
376
-				supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
376
+				supprimer_fichier(_DIR_CACHE.$chemin_cache_session);
377 377
 			}
378 378
 		}
379 379
 	}
@@ -388,9 +388,9 @@  discard block
 block discarded – undo
388 388
 		$page = array('contexte_implicite' => $contexte_implicite); // ignorer le cache deja lu
389 389
 		include_spip('inc/invalideur');
390 390
 		retire_caches($chemin_cache); # API invalideur inutile
391
-		supprimer_fichier(_DIR_CACHE . $chemin_cache);
391
+		supprimer_fichier(_DIR_CACHE.$chemin_cache);
392 392
 		if (isset($chemin_cache_session) and $chemin_cache_session) {
393
-			supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
393
+			supprimer_fichier(_DIR_CACHE.$chemin_cache_session);
394 394
 		}
395 395
 	}
396 396
 
Please login to merge, or discard this patch.
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -187,9 +187,11 @@
 block discarded – undo
187 187
 	// Sinon comparer l'age du fichier a sa duree de cache
188 188
 	$duree = intval($page['entetes']['X-Spip-Cache']);
189 189
 	$cache_mark = (isset($GLOBALS['meta']['cache_mark']) ? $GLOBALS['meta']['cache_mark'] : 0);
190
-	if ($duree == 0)  #CACHE{0}
190
+	if ($duree == 0) {
191
+	    #CACHE{0}
191 192
 	{
192 193
 		return -1;
194
+	}
193 195
 	} // sauf pour les bots, qui utilisent toujours le cache
194 196
 	else {
195 197
 		if ((!_IS_BOT and $date + $duree < $now)
Please login to merge, or discard this patch.
ecrire/public/decompiler.php 2 patches
Indentation   +172 added lines, -172 removed lines patch added patch discarded remove patch
@@ -11,127 +11,127 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 // Decompilation de l'arbre de syntaxe abstraite d'un squelette SPIP
18 18
 
19 19
 function decompiler_boucle($struct, $fmt = '', $prof = 0) {
20
-	$nom = $struct->id_boucle;
21
-	$avant = decompiler_($struct->avant, $fmt, $prof);
22
-	$apres = decompiler_($struct->apres, $fmt, $prof);
23
-	$altern = decompiler_($struct->altern, $fmt, $prof);
24
-	$milieu = decompiler_($struct->milieu, $fmt, $prof);
25
-
26
-	$type = $struct->sql_serveur ? "$struct->sql_serveur:" : '';
27
-	$type .= ($struct->type_requete ? $struct->type_requete :
28
-		$struct->table_optionnelle);
29
-
30
-	if ($struct->jointures_explicites) {
31
-		$type .= " " . $struct->jointures_explicites;
32
-	}
33
-	if ($struct->table_optionnelle) {
34
-		$type .= "?";
35
-	}
36
-	// Revoir le cas de la boucle recursive
37
-
38
-	$crit = $struct->param;
39
-	if ($crit and !is_array($crit[0])) {
40
-		$type = strtolower($type) . array_shift($crit);
41
-	}
42
-	$crit = decompiler_criteres($struct, $fmt, $prof);
43
-
44
-	$f = 'format_boucle_' . $fmt;
45
-
46
-	return $f($avant, $nom, $type, $crit, $milieu, $apres, $altern, $prof);
20
+    $nom = $struct->id_boucle;
21
+    $avant = decompiler_($struct->avant, $fmt, $prof);
22
+    $apres = decompiler_($struct->apres, $fmt, $prof);
23
+    $altern = decompiler_($struct->altern, $fmt, $prof);
24
+    $milieu = decompiler_($struct->milieu, $fmt, $prof);
25
+
26
+    $type = $struct->sql_serveur ? "$struct->sql_serveur:" : '';
27
+    $type .= ($struct->type_requete ? $struct->type_requete :
28
+        $struct->table_optionnelle);
29
+
30
+    if ($struct->jointures_explicites) {
31
+        $type .= " " . $struct->jointures_explicites;
32
+    }
33
+    if ($struct->table_optionnelle) {
34
+        $type .= "?";
35
+    }
36
+    // Revoir le cas de la boucle recursive
37
+
38
+    $crit = $struct->param;
39
+    if ($crit and !is_array($crit[0])) {
40
+        $type = strtolower($type) . array_shift($crit);
41
+    }
42
+    $crit = decompiler_criteres($struct, $fmt, $prof);
43
+
44
+    $f = 'format_boucle_' . $fmt;
45
+
46
+    return $f($avant, $nom, $type, $crit, $milieu, $apres, $altern, $prof);
47 47
 }
48 48
 
49 49
 function decompiler_include($struct, $fmt = '', $prof = 0) {
50
-	$res = array();
51
-	foreach ($struct->param ? $struct->param : array() as $couple) {
52
-		array_shift($couple);
53
-		foreach ($couple as $v) {
54
-			$res[] = decompiler_($v, $fmt, $prof);
55
-		}
56
-	}
57
-	$file = is_string($struct->texte) ? $struct->texte :
58
-		decompiler_($struct->texte, $fmt, $prof);
59
-	$f = 'format_inclure_' . $fmt;
60
-
61
-	return $f($file, $res, $prof);
50
+    $res = array();
51
+    foreach ($struct->param ? $struct->param : array() as $couple) {
52
+        array_shift($couple);
53
+        foreach ($couple as $v) {
54
+            $res[] = decompiler_($v, $fmt, $prof);
55
+        }
56
+    }
57
+    $file = is_string($struct->texte) ? $struct->texte :
58
+        decompiler_($struct->texte, $fmt, $prof);
59
+    $f = 'format_inclure_' . $fmt;
60
+
61
+    return $f($file, $res, $prof);
62 62
 }
63 63
 
64 64
 function decompiler_texte($struct, $fmt = '', $prof = 0) {
65
-	$f = 'format_texte_' . $fmt;
65
+    $f = 'format_texte_' . $fmt;
66 66
 
67
-	return strlen($struct->texte) ? $f($struct->texte, $prof) : '';
67
+    return strlen($struct->texte) ? $f($struct->texte, $prof) : '';
68 68
 }
69 69
 
70 70
 function decompiler_polyglotte($struct, $fmt = '', $prof = 0) {
71
-	$f = 'format_polyglotte_' . $fmt;
71
+    $f = 'format_polyglotte_' . $fmt;
72 72
 
73
-	return $f($struct->traductions, $prof);
73
+    return $f($struct->traductions, $prof);
74 74
 }
75 75
 
76 76
 function decompiler_idiome($struct, $fmt = '', $prof = 0) {
77
-	$args = array();
78
-	foreach ($struct->arg as $k => $v) {
79
-		$args[$k] = public_decompiler($v, $fmt, $prof);
80
-	}
77
+    $args = array();
78
+    foreach ($struct->arg as $k => $v) {
79
+        $args[$k] = public_decompiler($v, $fmt, $prof);
80
+    }
81 81
 
82
-	$filtres = decompiler_liste($struct->param, $fmt, $prof);
82
+    $filtres = decompiler_liste($struct->param, $fmt, $prof);
83 83
 
84
-	$f = 'format_idiome_' . $fmt;
84
+    $f = 'format_idiome_' . $fmt;
85 85
 
86
-	return $f($struct->nom_champ, $struct->module, $args, $filtres, $prof);
86
+    return $f($struct->nom_champ, $struct->module, $args, $filtres, $prof);
87 87
 }
88 88
 
89 89
 function decompiler_champ($struct, $fmt = '', $prof = 0) {
90
-	$avant = decompiler_($struct->avant, $fmt, $prof);
91
-	$apres = decompiler_($struct->apres, $fmt, $prof);
92
-	$args = $filtres = '';
93
-	if ($p = $struct->param) {
94
-		if ($p[0][0] === '') {
95
-			$args = decompiler_liste(array(array_shift($p)), $fmt, $prof);
96
-		}
97
-		$filtres = decompiler_liste($p, $fmt, $prof);
98
-	}
99
-	$f = 'format_champ_' . $fmt;
100
-
101
-	return $f($struct->nom_champ, $struct->nom_boucle, $struct->etoile, $avant, $apres, $args, $filtres, $prof);
90
+    $avant = decompiler_($struct->avant, $fmt, $prof);
91
+    $apres = decompiler_($struct->apres, $fmt, $prof);
92
+    $args = $filtres = '';
93
+    if ($p = $struct->param) {
94
+        if ($p[0][0] === '') {
95
+            $args = decompiler_liste(array(array_shift($p)), $fmt, $prof);
96
+        }
97
+        $filtres = decompiler_liste($p, $fmt, $prof);
98
+    }
99
+    $f = 'format_champ_' . $fmt;
100
+
101
+    return $f($struct->nom_champ, $struct->nom_boucle, $struct->etoile, $avant, $apres, $args, $filtres, $prof);
102 102
 }
103 103
 
104 104
 function decompiler_liste($sources, $fmt = '', $prof = 0) {
105
-	if (!is_array($sources)) {
106
-		return '';
107
-	}
108
-	$f = 'format_liste_' . $fmt;
109
-	$res = '';
110
-	foreach ($sources as $arg) {
111
-		if (!is_array($arg)) {
112
-			continue; // ne devrait pas arriver.
113
-		} else {
114
-			$r = array_shift($arg);
115
-		}
116
-		$args = array();
117
-		foreach ($arg as $v) {
118
-			// cas des arguments entoures de ' ou "
119
-			if ((count($v) == 1)
120
-				and $v[0]->type == 'texte'
121
-				and (strlen($v[0]->apres) == 1)
122
-				and $v[0]->apres == $v[0]->avant
123
-			) {
124
-				$args[] = $v[0]->avant . $v[0]->texte . $v[0]->apres;
125
-			} else {
126
-				$args[] = decompiler_($v, $fmt, 0 - $prof);
127
-			}
128
-		}
129
-		if (($r !== '') or $args) {
130
-			$res .= $f($r, $args, $prof);
131
-		}
132
-	}
133
-
134
-	return $res;
105
+    if (!is_array($sources)) {
106
+        return '';
107
+    }
108
+    $f = 'format_liste_' . $fmt;
109
+    $res = '';
110
+    foreach ($sources as $arg) {
111
+        if (!is_array($arg)) {
112
+            continue; // ne devrait pas arriver.
113
+        } else {
114
+            $r = array_shift($arg);
115
+        }
116
+        $args = array();
117
+        foreach ($arg as $v) {
118
+            // cas des arguments entoures de ' ou "
119
+            if ((count($v) == 1)
120
+                and $v[0]->type == 'texte'
121
+                and (strlen($v[0]->apres) == 1)
122
+                and $v[0]->apres == $v[0]->avant
123
+            ) {
124
+                $args[] = $v[0]->avant . $v[0]->texte . $v[0]->apres;
125
+            } else {
126
+                $args[] = decompiler_($v, $fmt, 0 - $prof);
127
+            }
128
+        }
129
+        if (($r !== '') or $args) {
130
+            $res .= $f($r, $args, $prof);
131
+        }
132
+    }
133
+
134
+    return $res;
135 135
 }
136 136
 
137 137
 // Decompilation des criteres: on triche et on deroge:
@@ -139,91 +139,91 @@  discard block
 block discarded – undo
139 139
 // - le champ apres signale le critere {"separateur"} ou {'separateur'}
140 140
 // - les champs sont implicitement etendus (crochets implicites mais interdits)
141 141
 function decompiler_criteres($boucle, $fmt = '', $prof = 0) {
142
-	$sources = $boucle->param;
143
-	if (!is_array($sources)) {
144
-		return '';
145
-	}
146
-	$res = '';
147
-	$f = 'format_critere_' . $fmt;
148
-	foreach ($sources as $crit) {
149
-		if (!is_array($crit)) {
150
-			continue;
151
-		} // boucle recursive
152
-		array_shift($crit);
153
-		$args = array();
154
-		foreach ($crit as $i => $v) {
155
-			if ((count($v) == 1)
156
-				and $v[0]->type == 'texte'
157
-				and $v[0]->apres
158
-			) {
159
-				$args[] = array(array('texte', ($v[0]->apres . $v[0]->texte . $v[0]->apres)));
160
-			} else {
161
-				$res2 = array();
162
-				foreach ($v as $k => $p) {
163
-					if (isset($p->type)
164
-						and function_exists($d = 'decompiler_' . $p->type)
165
-					) {
166
-						$r = $d($p, $fmt, (0 - $prof), @$v[$k + 1]);
167
-						$res2[] = array($p->type, $r);
168
-					} else {
169
-						spip_log("critere $i / $k mal forme");
170
-					}
171
-				}
172
-				$args[] = $res2;
173
-			}
174
-		}
175
-		$res .= $f($args);
176
-	}
177
-
178
-	return $res;
142
+    $sources = $boucle->param;
143
+    if (!is_array($sources)) {
144
+        return '';
145
+    }
146
+    $res = '';
147
+    $f = 'format_critere_' . $fmt;
148
+    foreach ($sources as $crit) {
149
+        if (!is_array($crit)) {
150
+            continue;
151
+        } // boucle recursive
152
+        array_shift($crit);
153
+        $args = array();
154
+        foreach ($crit as $i => $v) {
155
+            if ((count($v) == 1)
156
+                and $v[0]->type == 'texte'
157
+                and $v[0]->apres
158
+            ) {
159
+                $args[] = array(array('texte', ($v[0]->apres . $v[0]->texte . $v[0]->apres)));
160
+            } else {
161
+                $res2 = array();
162
+                foreach ($v as $k => $p) {
163
+                    if (isset($p->type)
164
+                        and function_exists($d = 'decompiler_' . $p->type)
165
+                    ) {
166
+                        $r = $d($p, $fmt, (0 - $prof), @$v[$k + 1]);
167
+                        $res2[] = array($p->type, $r);
168
+                    } else {
169
+                        spip_log("critere $i / $k mal forme");
170
+                    }
171
+                }
172
+                $args[] = $res2;
173
+            }
174
+        }
175
+        $res .= $f($args);
176
+    }
177
+
178
+    return $res;
179 179
 }
180 180
 
181 181
 
182 182
 function decompiler_($liste, $fmt = '', $prof = 0) {
183
-	if (!is_array($liste)) {
184
-		return '';
185
-	}
186
-	$prof2 = ($prof < 0) ? ($prof - 1) : ($prof + 1);
187
-	$contenu = array();
188
-	foreach ($liste as $k => $p) {
189
-		if (!isset($p->type)) {
190
-			continue;
191
-		} #??????
192
-		$d = 'decompiler_' . $p->type;
193
-		$next = isset($liste[$k + 1]) ? $liste[$k + 1] : false;
194
-		// Forcer le champ etendu si son source (pas les reecritures)
195
-		// contenait des args et s'il est suivi d'espaces,
196
-		// le champ simple les eliminant est un bug helas perenne.
197
-
198
-		if ($next
199
-			and ($next->type == 'texte')
200
-			and $p->type == 'champ'
201
-			and !$p->apres
202
-			and !$p->avant
203
-			and $p->fonctions
204
-		) {
205
-			$n = strlen($next->texte) - strlen(ltrim($next->texte));
206
-			if ($n) {
207
-				$champ = new Texte;
208
-				$champ->texte = substr($next->texte, 0, $n);
209
-				$champ->ligne = $p->ligne;
210
-				$p->apres = array($champ);
211
-				$next->texte = substr($next->texte, $n);
212
-			}
213
-		}
214
-		$contenu[] = array($d($p, $fmt, $prof2), $p->type);
215
-
216
-	}
217
-	$f = 'format_suite_' . $fmt;
218
-
219
-	return $f($contenu);
183
+    if (!is_array($liste)) {
184
+        return '';
185
+    }
186
+    $prof2 = ($prof < 0) ? ($prof - 1) : ($prof + 1);
187
+    $contenu = array();
188
+    foreach ($liste as $k => $p) {
189
+        if (!isset($p->type)) {
190
+            continue;
191
+        } #??????
192
+        $d = 'decompiler_' . $p->type;
193
+        $next = isset($liste[$k + 1]) ? $liste[$k + 1] : false;
194
+        // Forcer le champ etendu si son source (pas les reecritures)
195
+        // contenait des args et s'il est suivi d'espaces,
196
+        // le champ simple les eliminant est un bug helas perenne.
197
+
198
+        if ($next
199
+            and ($next->type == 'texte')
200
+            and $p->type == 'champ'
201
+            and !$p->apres
202
+            and !$p->avant
203
+            and $p->fonctions
204
+        ) {
205
+            $n = strlen($next->texte) - strlen(ltrim($next->texte));
206
+            if ($n) {
207
+                $champ = new Texte;
208
+                $champ->texte = substr($next->texte, 0, $n);
209
+                $champ->ligne = $p->ligne;
210
+                $p->apres = array($champ);
211
+                $next->texte = substr($next->texte, $n);
212
+            }
213
+        }
214
+        $contenu[] = array($d($p, $fmt, $prof2), $p->type);
215
+
216
+    }
217
+    $f = 'format_suite_' . $fmt;
218
+
219
+    return $f($contenu);
220 220
 }
221 221
 
222 222
 function public_decompiler($liste, $fmt = '', $prof = 0, $quoi = '') {
223
-	if (!include_spip('public/format_' . $fmt)) {
224
-		return "'$fmt'?";
225
-	}
226
-	$f = 'decompiler_' . $quoi;
223
+    if (!include_spip('public/format_' . $fmt)) {
224
+        return "'$fmt'?";
225
+    }
226
+    $f = 'decompiler_' . $quoi;
227 227
 
228
-	return $f($liste, $fmt, $prof);
228
+    return $f($liste, $fmt, $prof);
229 229
 }
Please login to merge, or discard this patch.
Spacing   +19 added lines, -21 removed lines patch added patch discarded remove patch
@@ -24,11 +24,10 @@  discard block
 block discarded – undo
24 24
 	$milieu = decompiler_($struct->milieu, $fmt, $prof);
25 25
 
26 26
 	$type = $struct->sql_serveur ? "$struct->sql_serveur:" : '';
27
-	$type .= ($struct->type_requete ? $struct->type_requete :
28
-		$struct->table_optionnelle);
27
+	$type .= ($struct->type_requete ? $struct->type_requete : $struct->table_optionnelle);
29 28
 
30 29
 	if ($struct->jointures_explicites) {
31
-		$type .= " " . $struct->jointures_explicites;
30
+		$type .= " ".$struct->jointures_explicites;
32 31
 	}
33 32
 	if ($struct->table_optionnelle) {
34 33
 		$type .= "?";
@@ -37,11 +36,11 @@  discard block
 block discarded – undo
37 36
 
38 37
 	$crit = $struct->param;
39 38
 	if ($crit and !is_array($crit[0])) {
40
-		$type = strtolower($type) . array_shift($crit);
39
+		$type = strtolower($type).array_shift($crit);
41 40
 	}
42 41
 	$crit = decompiler_criteres($struct, $fmt, $prof);
43 42
 
44
-	$f = 'format_boucle_' . $fmt;
43
+	$f = 'format_boucle_'.$fmt;
45 44
 
46 45
 	return $f($avant, $nom, $type, $crit, $milieu, $apres, $altern, $prof);
47 46
 }
@@ -54,21 +53,20 @@  discard block
 block discarded – undo
54 53
 			$res[] = decompiler_($v, $fmt, $prof);
55 54
 		}
56 55
 	}
57
-	$file = is_string($struct->texte) ? $struct->texte :
58
-		decompiler_($struct->texte, $fmt, $prof);
59
-	$f = 'format_inclure_' . $fmt;
56
+	$file = is_string($struct->texte) ? $struct->texte : decompiler_($struct->texte, $fmt, $prof);
57
+	$f = 'format_inclure_'.$fmt;
60 58
 
61 59
 	return $f($file, $res, $prof);
62 60
 }
63 61
 
64 62
 function decompiler_texte($struct, $fmt = '', $prof = 0) {
65
-	$f = 'format_texte_' . $fmt;
63
+	$f = 'format_texte_'.$fmt;
66 64
 
67 65
 	return strlen($struct->texte) ? $f($struct->texte, $prof) : '';
68 66
 }
69 67
 
70 68
 function decompiler_polyglotte($struct, $fmt = '', $prof = 0) {
71
-	$f = 'format_polyglotte_' . $fmt;
69
+	$f = 'format_polyglotte_'.$fmt;
72 70
 
73 71
 	return $f($struct->traductions, $prof);
74 72
 }
@@ -81,7 +79,7 @@  discard block
 block discarded – undo
81 79
 
82 80
 	$filtres = decompiler_liste($struct->param, $fmt, $prof);
83 81
 
84
-	$f = 'format_idiome_' . $fmt;
82
+	$f = 'format_idiome_'.$fmt;
85 83
 
86 84
 	return $f($struct->nom_champ, $struct->module, $args, $filtres, $prof);
87 85
 }
@@ -96,7 +94,7 @@  discard block
 block discarded – undo
96 94
 		}
97 95
 		$filtres = decompiler_liste($p, $fmt, $prof);
98 96
 	}
99
-	$f = 'format_champ_' . $fmt;
97
+	$f = 'format_champ_'.$fmt;
100 98
 
101 99
 	return $f($struct->nom_champ, $struct->nom_boucle, $struct->etoile, $avant, $apres, $args, $filtres, $prof);
102 100
 }
@@ -105,7 +103,7 @@  discard block
 block discarded – undo
105 103
 	if (!is_array($sources)) {
106 104
 		return '';
107 105
 	}
108
-	$f = 'format_liste_' . $fmt;
106
+	$f = 'format_liste_'.$fmt;
109 107
 	$res = '';
110 108
 	foreach ($sources as $arg) {
111 109
 		if (!is_array($arg)) {
@@ -121,7 +119,7 @@  discard block
 block discarded – undo
121 119
 				and (strlen($v[0]->apres) == 1)
122 120
 				and $v[0]->apres == $v[0]->avant
123 121
 			) {
124
-				$args[] = $v[0]->avant . $v[0]->texte . $v[0]->apres;
122
+				$args[] = $v[0]->avant.$v[0]->texte.$v[0]->apres;
125 123
 			} else {
126 124
 				$args[] = decompiler_($v, $fmt, 0 - $prof);
127 125
 			}
@@ -144,7 +142,7 @@  discard block
 block discarded – undo
144 142
 		return '';
145 143
 	}
146 144
 	$res = '';
147
-	$f = 'format_critere_' . $fmt;
145
+	$f = 'format_critere_'.$fmt;
148 146
 	foreach ($sources as $crit) {
149 147
 		if (!is_array($crit)) {
150 148
 			continue;
@@ -156,12 +154,12 @@  discard block
 block discarded – undo
156 154
 				and $v[0]->type == 'texte'
157 155
 				and $v[0]->apres
158 156
 			) {
159
-				$args[] = array(array('texte', ($v[0]->apres . $v[0]->texte . $v[0]->apres)));
157
+				$args[] = array(array('texte', ($v[0]->apres.$v[0]->texte.$v[0]->apres)));
160 158
 			} else {
161 159
 				$res2 = array();
162 160
 				foreach ($v as $k => $p) {
163 161
 					if (isset($p->type)
164
-						and function_exists($d = 'decompiler_' . $p->type)
162
+						and function_exists($d = 'decompiler_'.$p->type)
165 163
 					) {
166 164
 						$r = $d($p, $fmt, (0 - $prof), @$v[$k + 1]);
167 165
 						$res2[] = array($p->type, $r);
@@ -189,7 +187,7 @@  discard block
 block discarded – undo
189 187
 		if (!isset($p->type)) {
190 188
 			continue;
191 189
 		} #??????
192
-		$d = 'decompiler_' . $p->type;
190
+		$d = 'decompiler_'.$p->type;
193 191
 		$next = isset($liste[$k + 1]) ? $liste[$k + 1] : false;
194 192
 		// Forcer le champ etendu si son source (pas les reecritures)
195 193
 		// contenait des args et s'il est suivi d'espaces,
@@ -214,16 +212,16 @@  discard block
 block discarded – undo
214 212
 		$contenu[] = array($d($p, $fmt, $prof2), $p->type);
215 213
 
216 214
 	}
217
-	$f = 'format_suite_' . $fmt;
215
+	$f = 'format_suite_'.$fmt;
218 216
 
219 217
 	return $f($contenu);
220 218
 }
221 219
 
222 220
 function public_decompiler($liste, $fmt = '', $prof = 0, $quoi = '') {
223
-	if (!include_spip('public/format_' . $fmt)) {
221
+	if (!include_spip('public/format_'.$fmt)) {
224 222
 		return "'$fmt'?";
225 223
 	}
226
-	$f = 'decompiler_' . $quoi;
224
+	$f = 'decompiler_'.$quoi;
227 225
 
228 226
 	return $f($liste, $fmt, $prof);
229 227
 }
Please login to merge, or discard this patch.
ecrire/public/styliser.php 1 patch
Indentation   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
  **/
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 // Ce fichier doit imperativement definir la fonction ci-dessous:
@@ -39,53 +39,53 @@  discard block
 block discarded – undo
39 39
  * @return array
40 40
  */
41 41
 function public_styliser_dist($fond, $contexte, $lang = '', $connect = '') {
42
-	static $styliser_par_z;
43
-
44
-	// s'assurer que le fond est licite
45
-	// car il peut etre construit a partir d'une variable d'environnement
46
-	if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
47
-		$fond = "404";
48
-	}
49
-
50
-	// Choisir entre $fond-dist.html, $fond=7.html, etc?
51
-	$id_rubrique = 0;
52
-	// Chercher le fond qui va servir de squelette
53
-	if ($r = quete_rubrique_fond($contexte)) {
54
-		list($id_rubrique, $lang) = $r;
55
-	}
56
-
57
-	// trouver un squelette du nom demande
58
-	// ne rien dire si on ne trouve pas, 
59
-	// c'est l'appelant qui sait comment gerer la situation
60
-	// ou les plugins qui feront mieux dans le pipeline
61
-	$squelette = trouver_fond($fond, "", true);
62
-	$ext = $squelette['extension'];
63
-
64
-	$flux = array(
65
-		'args' => array(
66
-			'id_rubrique' => $id_rubrique,
67
-			'ext' => $ext,
68
-			'fond' => $fond,
69
-			'lang' => $lang,
70
-			'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
71
-			'connect' => $connect
72
-		),
73
-		'data' => $squelette['fond'],
74
-	);
75
-
76
-	if (test_espace_prive() or defined('_ZPIP')) {
77
-		if (!$styliser_par_z) {
78
-			$styliser_par_z = charger_fonction('styliser_par_z', 'public');
79
-		}
80
-		$flux = $styliser_par_z($flux);
81
-	}
82
-
83
-	$flux = styliser_par_objets($flux);
84
-
85
-	// pipeline styliser
86
-	$squelette = pipeline('styliser', $flux);
87
-
88
-	return array($squelette, $ext, $ext, "$squelette.$ext");
42
+    static $styliser_par_z;
43
+
44
+    // s'assurer que le fond est licite
45
+    // car il peut etre construit a partir d'une variable d'environnement
46
+    if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
47
+        $fond = "404";
48
+    }
49
+
50
+    // Choisir entre $fond-dist.html, $fond=7.html, etc?
51
+    $id_rubrique = 0;
52
+    // Chercher le fond qui va servir de squelette
53
+    if ($r = quete_rubrique_fond($contexte)) {
54
+        list($id_rubrique, $lang) = $r;
55
+    }
56
+
57
+    // trouver un squelette du nom demande
58
+    // ne rien dire si on ne trouve pas, 
59
+    // c'est l'appelant qui sait comment gerer la situation
60
+    // ou les plugins qui feront mieux dans le pipeline
61
+    $squelette = trouver_fond($fond, "", true);
62
+    $ext = $squelette['extension'];
63
+
64
+    $flux = array(
65
+        'args' => array(
66
+            'id_rubrique' => $id_rubrique,
67
+            'ext' => $ext,
68
+            'fond' => $fond,
69
+            'lang' => $lang,
70
+            'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
71
+            'connect' => $connect
72
+        ),
73
+        'data' => $squelette['fond'],
74
+    );
75
+
76
+    if (test_espace_prive() or defined('_ZPIP')) {
77
+        if (!$styliser_par_z) {
78
+            $styliser_par_z = charger_fonction('styliser_par_z', 'public');
79
+        }
80
+        $flux = $styliser_par_z($flux);
81
+    }
82
+
83
+    $flux = styliser_par_objets($flux);
84
+
85
+    // pipeline styliser
86
+    $squelette = pipeline('styliser', $flux);
87
+
88
+    return array($squelette, $ext, $ext, "$squelette.$ext");
89 89
 }
90 90
 
91 91
 /**
@@ -104,31 +104,31 @@  discard block
 block discarded – undo
104 104
  *     Données du pipeline styliser
105 105
  **/
106 106
 function styliser_par_objets($flux) {
107
-	if (test_espace_prive()
108
-		and !$squelette = $flux['data']
109
-		and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0
110
-		and $echafauder = charger_fonction('echafauder', 'prive', true)
111
-	) {
112
-		if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
113
-			$table = table_objet(substr($flux['args']['fond'], 19));
114
-			$table_sql = table_objet_sql($table);
115
-			$objets = lister_tables_objets_sql();
116
-			if (isset($objets[$table_sql])) {
117
-				$flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
118
-			}
119
-		}
120
-		if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
121
-			$type = substr($flux['args']['fond'], 21);
122
-			$table = table_objet($type);
123
-			$table_sql = table_objet_sql($table);
124
-			$objets = lister_tables_objets_sql();
125
-			if (isset($objets[$table_sql])) {
126
-				$flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
127
-			}
128
-		}
129
-	}
130
-
131
-	return $flux;
107
+    if (test_espace_prive()
108
+        and !$squelette = $flux['data']
109
+        and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0
110
+        and $echafauder = charger_fonction('echafauder', 'prive', true)
111
+    ) {
112
+        if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
113
+            $table = table_objet(substr($flux['args']['fond'], 19));
114
+            $table_sql = table_objet_sql($table);
115
+            $objets = lister_tables_objets_sql();
116
+            if (isset($objets[$table_sql])) {
117
+                $flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
118
+            }
119
+        }
120
+        if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
121
+            $type = substr($flux['args']['fond'], 21);
122
+            $table = table_objet($type);
123
+            $table_sql = table_objet_sql($table);
124
+            $objets = lister_tables_objets_sql();
125
+            if (isset($objets[$table_sql])) {
126
+                $flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
127
+            }
128
+        }
129
+    }
130
+
131
+    return $flux;
132 132
 }
133 133
 
134 134
 /**
@@ -144,49 +144,49 @@  discard block
 block discarded – undo
144 144
  * @return array
145 145
  */
146 146
 function quete_rubrique_fond($contexte) {
147
-	static $liste_objets = null;
148
-	static $quete = array();
149
-	if (is_null($liste_objets)) {
150
-		$liste_objets = array();
151
-		include_spip('inc/urls');
152
-		include_spip('public/quete');
153
-		$l = urls_liste_objets(false);
154
-		// placer la rubrique en tete des objets
155
-		$l = array_diff($l, array('rubrique'));
156
-		array_unshift($l, 'rubrique');
157
-		foreach ($l as $objet) {
158
-			$id = id_table_objet($objet);
159
-			if (!isset($liste_objets[$id])) {
160
-				$liste_objets[$id] = objet_type($objet, false);
161
-			}
162
-		}
163
-	}
164
-	$c = array_intersect_key($contexte, $liste_objets);
165
-	if (!count($c)) {
166
-		return false;
167
-	}
168
-
169
-	$c = array_map('intval', $c);
170
-	$s = serialize($c);
171
-	if (isset($quete[$s])) {
172
-		return $quete[$s];
173
-	}
174
-
175
-	if (isset($c['id_rubrique']) and $r = $c['id_rubrique']) {
176
-		unset($c['id_rubrique']);
177
-		$c = array('id_rubrique' => $r) + $c;
178
-	}
179
-
180
-	foreach ($c as $_id => $id) {
181
-		if ($id
182
-			and $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]), $id)
183
-		) {
184
-			$lang = isset($row['lang']) ? $row['lang'] : '';
185
-			if ($_id == 'id_rubrique' or (isset($row['id_rubrique']) and $id = $row['id_rubrique'])) {
186
-				return $quete[$s] = array($id, $lang);
187
-			}
188
-		}
189
-	}
190
-
191
-	return $quete[$s] = false;
147
+    static $liste_objets = null;
148
+    static $quete = array();
149
+    if (is_null($liste_objets)) {
150
+        $liste_objets = array();
151
+        include_spip('inc/urls');
152
+        include_spip('public/quete');
153
+        $l = urls_liste_objets(false);
154
+        // placer la rubrique en tete des objets
155
+        $l = array_diff($l, array('rubrique'));
156
+        array_unshift($l, 'rubrique');
157
+        foreach ($l as $objet) {
158
+            $id = id_table_objet($objet);
159
+            if (!isset($liste_objets[$id])) {
160
+                $liste_objets[$id] = objet_type($objet, false);
161
+            }
162
+        }
163
+    }
164
+    $c = array_intersect_key($contexte, $liste_objets);
165
+    if (!count($c)) {
166
+        return false;
167
+    }
168
+
169
+    $c = array_map('intval', $c);
170
+    $s = serialize($c);
171
+    if (isset($quete[$s])) {
172
+        return $quete[$s];
173
+    }
174
+
175
+    if (isset($c['id_rubrique']) and $r = $c['id_rubrique']) {
176
+        unset($c['id_rubrique']);
177
+        $c = array('id_rubrique' => $r) + $c;
178
+    }
179
+
180
+    foreach ($c as $_id => $id) {
181
+        if ($id
182
+            and $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]), $id)
183
+        ) {
184
+            $lang = isset($row['lang']) ? $row['lang'] : '';
185
+            if ($_id == 'id_rubrique' or (isset($row['id_rubrique']) and $id = $row['id_rubrique'])) {
186
+                return $quete[$s] = array($id, $lang);
187
+            }
188
+        }
189
+    }
190
+
191
+    return $quete[$s] = false;
192 192
 }
Please login to merge, or discard this patch.
ecrire/public/interfaces.php 1 patch
Indentation   +884 added lines, -884 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 
@@ -34,53 +34,53 @@  discard block
 block discarded – undo
34 34
  * @package SPIP\Core\Compilateur\AST
35 35
  */
36 36
 class Contexte {
37
-	/**
38
-	 * Description du squelette
39
-	 *
40
-	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
41
-	 *
42
-	 * Peut contenir les index :
43
-	 *
44
-	 * - nom : Nom du fichier de cache
45
-	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
46
-	 * - sourcefile : Chemin du squelette
47
-	 * - squelette : Code du squelette
48
-	 * - id_mere : Identifiant de la boucle parente
49
-	 * - documents : Pour embed et img dans les textes
50
-	 * - session : Pour un cache sessionné par auteur
51
-	 * - niv : Niveau de tabulation
52
-	 *
53
-	 * @var array
54
-	 */
55
-	public $descr = array();
56
-
57
-	/**
58
-	 * Identifiant de la boucle
59
-	 *
60
-	 * @var string
61
-	 */
62
-	public $id_boucle = '';
63
-
64
-	/**
65
-	 * Numéro de ligne dans le code source du squelette
66
-	 *
67
-	 * @var int
68
-	 */
69
-	public $ligne = 0;
70
-
71
-	/**
72
-	 * Langue d'exécution
73
-	 *
74
-	 * @var string
75
-	 */
76
-	public $lang = '';
77
-
78
-	/**
79
-	 * Résultat de la compilation: toujours une expression PHP
80
-	 *
81
-	 * @var string
82
-	 */
83
-	public $code = '';
37
+    /**
38
+     * Description du squelette
39
+     *
40
+     * Sert pour la gestion d'erreur et la production de code dependant du contexte
41
+     *
42
+     * Peut contenir les index :
43
+     *
44
+     * - nom : Nom du fichier de cache
45
+     * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
46
+     * - sourcefile : Chemin du squelette
47
+     * - squelette : Code du squelette
48
+     * - id_mere : Identifiant de la boucle parente
49
+     * - documents : Pour embed et img dans les textes
50
+     * - session : Pour un cache sessionné par auteur
51
+     * - niv : Niveau de tabulation
52
+     *
53
+     * @var array
54
+     */
55
+    public $descr = array();
56
+
57
+    /**
58
+     * Identifiant de la boucle
59
+     *
60
+     * @var string
61
+     */
62
+    public $id_boucle = '';
63
+
64
+    /**
65
+     * Numéro de ligne dans le code source du squelette
66
+     *
67
+     * @var int
68
+     */
69
+    public $ligne = 0;
70
+
71
+    /**
72
+     * Langue d'exécution
73
+     *
74
+     * @var string
75
+     */
76
+    public $lang = '';
77
+
78
+    /**
79
+     * Résultat de la compilation: toujours une expression PHP
80
+     *
81
+     * @var string
82
+     */
83
+    public $code = '';
84 84
 }
85 85
 
86 86
 
@@ -90,44 +90,44 @@  discard block
 block discarded – undo
90 90
  * @package SPIP\Core\Compilateur\AST
91 91
  **/
92 92
 class Texte {
93
-	/**
94
-	 * Type de noeud
95
-	 *
96
-	 * @var string
97
-	 */
98
-	public $type = 'texte';
99
-
100
-	/**
101
-	 * Le texte
102
-	 *
103
-	 * @var string
104
-	 */
105
-	public $texte;
106
-
107
-	/**
108
-	 * Contenu avant le texte.
109
-	 *
110
-	 * Vide ou apostrophe simple ou double si le texte en était entouré
111
-	 *
112
-	 * @var string|array
113
-	 */
114
-	public $avant = "";
115
-
116
-	/**
117
-	 * Contenu après le texte.
118
-	 *
119
-	 * Vide ou apostrophe simple ou double si le texte en était entouré
120
-	 *
121
-	 * @var string|array
122
-	 */
123
-	public $apres = "";
124
-
125
-	/**
126
-	 * Numéro de ligne dans le code source du squelette
127
-	 *
128
-	 * @var int
129
-	 */
130
-	public $ligne = 0;
93
+    /**
94
+     * Type de noeud
95
+     *
96
+     * @var string
97
+     */
98
+    public $type = 'texte';
99
+
100
+    /**
101
+     * Le texte
102
+     *
103
+     * @var string
104
+     */
105
+    public $texte;
106
+
107
+    /**
108
+     * Contenu avant le texte.
109
+     *
110
+     * Vide ou apostrophe simple ou double si le texte en était entouré
111
+     *
112
+     * @var string|array
113
+     */
114
+    public $avant = "";
115
+
116
+    /**
117
+     * Contenu après le texte.
118
+     *
119
+     * Vide ou apostrophe simple ou double si le texte en était entouré
120
+     *
121
+     * @var string|array
122
+     */
123
+    public $apres = "";
124
+
125
+    /**
126
+     * Numéro de ligne dans le code source du squelette
127
+     *
128
+     * @var int
129
+     */
130
+    public $ligne = 0;
131 131
 }
132 132
 
133 133
 /**
@@ -136,50 +136,50 @@  discard block
 block discarded – undo
136 136
  * @package SPIP\Core\Compilateur\AST
137 137
  **/
138 138
 class Inclure {
139
-	/**
140
-	 * Type de noeud
141
-	 *
142
-	 * @var string
143
-	 */
144
-	public $type = 'include';
145
-
146
-	/**
147
-	 * Nom d'un fichier inclu
148
-	 *
149
-	 * - Objet Texte si inclusion d'un autre squelette
150
-	 * - chaîne si inclusion d'un fichier PHP directement
151
-	 *
152
-	 * @var string|Texte
153
-	 */
154
-	public $texte;
155
-
156
-	/**
157
-	 * Inutilisé, propriété générique de l'AST
158
-	 *
159
-	 * @var string|array
160
-	 */
161
-	public $avant = '';
162
-
163
-	/**
164
-	 * Inutilisé, propriété générique de l'AST
165
-	 *
166
-	 * @var string|array
167
-	 */
168
-	public $apres = '';
169
-
170
-	/**
171
-	 * Numéro de ligne dans le code source du squelette
172
-	 *
173
-	 * @var int
174
-	 */
175
-	public $ligne = 0;
176
-
177
-	/**
178
-	 * Valeurs des paramètres
179
-	 *
180
-	 * @var array
181
-	 */
182
-	public $param = array();
139
+    /**
140
+     * Type de noeud
141
+     *
142
+     * @var string
143
+     */
144
+    public $type = 'include';
145
+
146
+    /**
147
+     * Nom d'un fichier inclu
148
+     *
149
+     * - Objet Texte si inclusion d'un autre squelette
150
+     * - chaîne si inclusion d'un fichier PHP directement
151
+     *
152
+     * @var string|Texte
153
+     */
154
+    public $texte;
155
+
156
+    /**
157
+     * Inutilisé, propriété générique de l'AST
158
+     *
159
+     * @var string|array
160
+     */
161
+    public $avant = '';
162
+
163
+    /**
164
+     * Inutilisé, propriété générique de l'AST
165
+     *
166
+     * @var string|array
167
+     */
168
+    public $apres = '';
169
+
170
+    /**
171
+     * Numéro de ligne dans le code source du squelette
172
+     *
173
+     * @var int
174
+     */
175
+    public $ligne = 0;
176
+
177
+    /**
178
+     * Valeurs des paramètres
179
+     *
180
+     * @var array
181
+     */
182
+    public $param = array();
183 183
 }
184 184
 
185 185
 
@@ -189,364 +189,364 @@  discard block
 block discarded – undo
189 189
  * @package SPIP\Core\Compilateur\AST
190 190
  **/
191 191
 class Boucle {
192
-	/**
193
-	 * Type de noeud
194
-	 *
195
-	 * @var string
196
-	 */
197
-	public $type = 'boucle';
198
-
199
-	/**
200
-	 * Identifiant de la boucle
201
-	 *
202
-	 * @var string
203
-	 */
204
-	public $id_boucle;
205
-
206
-	/**
207
-	 * Identifiant de la boucle parente
208
-	 *
209
-	 * @var string
210
-	 */
211
-	public $id_parent = '';
212
-
213
-	/**
214
-	 * Partie optionnelle avant
215
-	 *
216
-	 * @var string|array
217
-	 */
218
-	public $avant = '';
219
-
220
-	/**
221
-	 * Pour chaque élément
222
-	 *
223
-	 * @var string|array
224
-	 */
225
-	public $milieu = '';
226
-
227
-	/**
228
-	 * Partie optionnelle après
229
-	 *
230
-	 * @var string|array
231
-	 */
232
-	public $apres = '';
233
-
234
-	/**
235
-	 * Partie alternative, si pas de résultat dans la boucle
236
-	 *
237
-	 * @var string|array
238
-	 */
239
-	public $altern = '';
240
-
241
-	/**
242
-	 * La boucle doit-elle sélectionner la langue ?
243
-	 *
244
-	 * @var string|null
245
-	 */
246
-	public $lang_select;
247
-
248
-	/**
249
-	 * Alias de table d'application de la requête ou nom complet de la table SQL
250
-	 *
251
-	 * @var string|null
252
-	 */
253
-	public $type_requete;
254
-
255
-	/**
256
-	 * La table est elle optionnelle ?
257
-	 *
258
-	 * Si oui, aucune erreur ne sera générée si la table demandée n'est pas présente
259
-	 *
260
-	 * @var bool
261
-	 */
262
-	public $table_optionnelle = false;
263
-
264
-	/**
265
-	 * Nom du fichier de connexion
266
-	 *
267
-	 * @var string
268
-	 */
269
-	public $sql_serveur = '';
270
-
271
-	/**
272
-	 * Paramètres de la boucle
273
-	 *
274
-	 * Description des paramètres passés à la boucle, qui servent ensuite
275
-	 * au calcul des critères
276
-	 *
277
-	 * @var array
278
-	 */
279
-	public $param = array();
280
-
281
-	/**
282
-	 * Critères de la boucle
283
-	 *
284
-	 * @var Critere[]
285
-	 */
286
-	public $criteres = array();
287
-
288
-	/**
289
-	 * Textes insérés entre 2 éléments de boucle (critère inter)
290
-	 *
291
-	 * @var string[]
292
-	 */
293
-	public $separateur = array();
294
-
295
-	/**
296
-	 * Liste des jointures possibles avec cette table
297
-	 *
298
-	 * Les jointures par défaut de la table sont complétées en priorité
299
-	 * des jointures déclarées explicitement sur la boucle
300
-	 *
301
-	 * @see base_trouver_table_dist()
302
-	 * @var array
303
-	 */
304
-	public $jointures = array();
305
-
306
-	/**
307
-	 * Jointures explicites avec cette table
308
-	 *
309
-	 * Ces jointures sont utilisées en priorité par rapport aux jointures
310
-	 * normales possibles pour retrouver les colonnes demandées extérieures
311
-	 * à la boucle.
312
-	 *
313
-	 * @var string|bool
314
-	 */
315
-	public $jointures_explicites = false;
316
-
317
-	/**
318
-	 * Nom de la variable PHP stockant le noms de doublons utilisés "$doublons_index"
319
-	 *
320
-	 * @var string|null
321
-	 */
322
-	public $doublons;
323
-
324
-	/**
325
-	 * Code PHP ajouté au début de chaque itération de boucle.
326
-	 *
327
-	 * Utilisé entre autre par les critères {pagination}, {n-a,b}, {a/b}...
328
-	 *
329
-	 * @var string
330
-	 */
331
-	public $partie = "";
332
-
333
-	/**
334
-	 * Nombre de divisions de la boucle, d'éléments à afficher,
335
-	 * ou de soustractions d'éléments à faire
336
-	 *
337
-	 * Dans les critères limitant le nombre d'éléments affichés
338
-	 * {a,b}, {a,n-b}, {a/b}, {pagination b}, b est affecté à total_parties.
339
-	 *
340
-	 * @var string
341
-	 */
342
-	public $total_parties = "";
343
-
344
-	/**
345
-	 * Code PHP ajouté avant l'itération de boucle.
346
-	 *
347
-	 * Utilisé entre autre par les critères {pagination}, {a,b}, {a/b}
348
-	 * pour initialiser les variables de début et de fin d'itération.
349
-	 *
350
-	 * @var string
351
-	 */
352
-	public $mode_partie = '';
353
-
354
-	/**
355
-	 * Identifiant d'une boucle qui appelle celle-ci de manière récursive
356
-	 *
357
-	 * Si une boucle est appelée de manière récursive quelque part par
358
-	 * une autre boucle comme <BOUCLE_rec(boucle_identifiant) />, cette
359
-	 * boucle (identifiant) reçoit dans cette propriété l'identifiant
360
-	 * de l'appelant (rec)
361
-	 *
362
-	 * @var string
363
-	 */
364
-	public $externe = '';
365
-
366
-	// champs pour la construction de la requete SQL
367
-
368
-	/**
369
-	 * Liste des champs à récupérer par la boucle
370
-	 *
371
-	 * Expression 'table.nom_champ' ou calculée 'nom_champ AS x'
372
-	 *
373
-	 * @var string[]
374
-	 */
375
-	public $select = array();
376
-
377
-	/**
378
-	 * Liste des alias / tables SQL utilisées dans la boucle
379
-	 *
380
-	 * L'index est un identifiant (xx dans spip_xx assez souvent) qui servira
381
-	 * d'alias au nom de la table ; la valeur est le nom de la table SQL désirée.
382
-	 *
383
-	 * L'index 0 peut définir le type de sources de données de l'itérateur DATA
384
-	 *
385
-	 * @var string[]
386
-	 */
387
-	public $from = array();
388
-
389
-	/**
390
-	 * Liste des alias / type de jointures utilisées dans la boucle
391
-	 *
392
-	 * L'index est le nom d'alias (comme pour la propriété $from), et la valeur
393
-	 * un type de jointure parmi 'INNER', 'LEFT', 'RIGHT', 'OUTER'.
394
-	 *
395
-	 * Lorsque le type n'est pas déclaré pour un alias, c'est 'INNER'
396
-	 * qui sera utilisé par défaut (créant donc un INNER JOIN).
397
-	 *
398
-	 * @var string[]
399
-	 */
400
-	public $from_type = array();
401
-
402
-	/**
403
-	 * Liste des conditions WHERE de la boucle
404
-	 *
405
-	 * Permet de restreindre les éléments retournés par une boucle
406
-	 * en fonctions des conditions transmises dans ce tableau.
407
-	 *
408
-	 * Ce tableau peut avoir plusieurs niveaux de profondeur.
409
-	 *
410
-	 * Les éléments du premier niveau sont reliés par des AND, donc
411
-	 * chaque élément ajouté directement au where par
412
-	 * $boucle->where[] = array(...) ou $boucle->where[] = "'expression'"
413
-	 * est une condition AND en plus.
414
-	 *
415
-	 * Par contre, lorsqu'on indique un tableau, il peut décrire des relations
416
-	 * internes différentes. Soit $expr un tableau d'expressions quelconques de 3 valeurs :
417
-	 * $expr = array(operateur, val1, val2)
418
-	 *
419
-	 * Ces 3 valeurs sont des expressions PHP. L'index 0 désigne l'opérateur
420
-	 * à réaliser tel que :
421
-	 *
422
-	 * - "'='" , "'>='", "'<'", "'IN'", "'REGEXP'", "'LIKE'", ... :
423
-	 *    val1 et val2 sont des champs et valeurs à utiliser dans la comparaison
424
-	 *    suivant cet ordre : "val1 operateur val2".
425
-	 *    Exemple : $boucle->where[] = array("'='", "'articles.statut'", "'\"publie\"'");
426
-	 * - "'AND'", "'OR'", "'NOT'" :
427
-	 *    dans ce cas val1 et val2 sont également des expressions
428
-	 *    de comparaison complètes, et peuvent être eux-même des tableaux comme $expr
429
-	 *    Exemples :
430
-	 *    $boucle->where[] = array("'OR'", $expr1, $expr2);
431
-	 *    $boucle->where[] = array("'NOT'", $expr); // val2 n'existe pas avec NOT
432
-	 *
433
-	 * D'autres noms sont possibles pour l'opérateur (le nombre de valeurs diffère) :
434
-	 * - "'SELF'", "'SUBSELECT'" : indiquent des sous requêtes
435
-	 * - "'?'" : indique une condition à faire évaluer (val1 ? val2 : val3)
436
-	 *
437
-	 * @var array
438
-	 */
439
-	public $where = array();
440
-
441
-	public $join = array();
442
-	public $having = array();
443
-	public $limit;
444
-	public $group = array();
445
-	public $order = array();
446
-	public $default_order = array();
447
-	public $date = 'date';
448
-	public $hash = "";
449
-	public $in = "";
450
-	public $sous_requete = false;
451
-
452
-	/**
453
-	 * Code PHP qui sera ajouté en tout début de la fonction de boucle
454
-	 *
455
-	 * Il sert à insérer le code calculant une hierarchie
456
-	 *
457
-	 * @var string
458
-	 */
459
-	public $hierarchie = '';
460
-
461
-	/**
462
-	 * Indique la présence d'un critère sur le statut
463
-	 *
464
-	 * @deprecated Remplacé par $boucle->modificateur['criteres']['statut']
465
-	 * @var bool
466
-	 */
467
-	public $statut = false;
468
-
469
-	// champs pour la construction du corps PHP
470
-
471
-	/**
472
-	 * Description des sources de données de la boucle
473
-	 *
474
-	 * Description des données de la boucle issu de trouver_table
475
-	 * dans le cadre de l'itérateur SQL et contenant au moins l'index 'field'.
476
-	 *
477
-	 * @see base_trouver_table_dist()
478
-	 * @var array
479
-	 */
480
-	public $show = array();
481
-
482
-	/**
483
-	 * Nom de la table SQL principale de la boucle, sans son préfixe
484
-	 *
485
-	 * @var string
486
-	 */
487
-	public $id_table;
488
-
489
-	/**
490
-	 * Nom de la clé primaire de la table SQL principale de la boucle
491
-	 *
492
-	 * @var string
493
-	 */
494
-	public $primary;
495
-
496
-	/**
497
-	 * Code PHP compilé de la boucle
498
-	 *
499
-	 * @var string
500
-	 */
501
-	public $return;
502
-
503
-	public $numrows = false;
504
-	public $cptrows = false;
505
-
506
-	/**
507
-	 * Description du squelette
508
-	 *
509
-	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
510
-	 *
511
-	 * Peut contenir les index :
512
-	 *
513
-	 * - nom : Nom du fichier de cache
514
-	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
515
-	 * - sourcefile : Chemin du squelette
516
-	 * - squelette : Code du squelette
517
-	 * - id_mere : Identifiant de la boucle parente
518
-	 * - documents : Pour embed et img dans les textes
519
-	 * - session : Pour un cache sessionné par auteur
520
-	 * - niv : Niveau de tabulation
521
-	 *
522
-	 * @var array
523
-	 */
524
-	public $descr = array();
525
-
526
-	/**
527
-	 * Numéro de ligne dans le code source du squelette
528
-	 *
529
-	 * @var int
530
-	 */
531
-	public $ligne = 0;
532
-
533
-
534
-	public $modificateur = array(); // table pour stocker les modificateurs de boucle tels que tout, plat ..., utilisable par les plugins egalement
535
-
536
-	/**
537
-	 * Type d'itérateur utilisé pour cette boucle
538
-	 *
539
-	 * - 'SQL' dans le cadre d'une boucle sur une table SQL
540
-	 * - 'DATA' pour l'itérateur DATA, ...
541
-	 *
542
-	 * @var string
543
-	 */
544
-	public $iterateur = ''; // type d'iterateur
545
-
546
-	// obsoletes, conserves provisoirement pour compatibilite
547
-	public $tout = false;
548
-	public $plat = false;
549
-	public $lien = false;
192
+    /**
193
+     * Type de noeud
194
+     *
195
+     * @var string
196
+     */
197
+    public $type = 'boucle';
198
+
199
+    /**
200
+     * Identifiant de la boucle
201
+     *
202
+     * @var string
203
+     */
204
+    public $id_boucle;
205
+
206
+    /**
207
+     * Identifiant de la boucle parente
208
+     *
209
+     * @var string
210
+     */
211
+    public $id_parent = '';
212
+
213
+    /**
214
+     * Partie optionnelle avant
215
+     *
216
+     * @var string|array
217
+     */
218
+    public $avant = '';
219
+
220
+    /**
221
+     * Pour chaque élément
222
+     *
223
+     * @var string|array
224
+     */
225
+    public $milieu = '';
226
+
227
+    /**
228
+     * Partie optionnelle après
229
+     *
230
+     * @var string|array
231
+     */
232
+    public $apres = '';
233
+
234
+    /**
235
+     * Partie alternative, si pas de résultat dans la boucle
236
+     *
237
+     * @var string|array
238
+     */
239
+    public $altern = '';
240
+
241
+    /**
242
+     * La boucle doit-elle sélectionner la langue ?
243
+     *
244
+     * @var string|null
245
+     */
246
+    public $lang_select;
247
+
248
+    /**
249
+     * Alias de table d'application de la requête ou nom complet de la table SQL
250
+     *
251
+     * @var string|null
252
+     */
253
+    public $type_requete;
254
+
255
+    /**
256
+     * La table est elle optionnelle ?
257
+     *
258
+     * Si oui, aucune erreur ne sera générée si la table demandée n'est pas présente
259
+     *
260
+     * @var bool
261
+     */
262
+    public $table_optionnelle = false;
263
+
264
+    /**
265
+     * Nom du fichier de connexion
266
+     *
267
+     * @var string
268
+     */
269
+    public $sql_serveur = '';
270
+
271
+    /**
272
+     * Paramètres de la boucle
273
+     *
274
+     * Description des paramètres passés à la boucle, qui servent ensuite
275
+     * au calcul des critères
276
+     *
277
+     * @var array
278
+     */
279
+    public $param = array();
280
+
281
+    /**
282
+     * Critères de la boucle
283
+     *
284
+     * @var Critere[]
285
+     */
286
+    public $criteres = array();
287
+
288
+    /**
289
+     * Textes insérés entre 2 éléments de boucle (critère inter)
290
+     *
291
+     * @var string[]
292
+     */
293
+    public $separateur = array();
294
+
295
+    /**
296
+     * Liste des jointures possibles avec cette table
297
+     *
298
+     * Les jointures par défaut de la table sont complétées en priorité
299
+     * des jointures déclarées explicitement sur la boucle
300
+     *
301
+     * @see base_trouver_table_dist()
302
+     * @var array
303
+     */
304
+    public $jointures = array();
305
+
306
+    /**
307
+     * Jointures explicites avec cette table
308
+     *
309
+     * Ces jointures sont utilisées en priorité par rapport aux jointures
310
+     * normales possibles pour retrouver les colonnes demandées extérieures
311
+     * à la boucle.
312
+     *
313
+     * @var string|bool
314
+     */
315
+    public $jointures_explicites = false;
316
+
317
+    /**
318
+     * Nom de la variable PHP stockant le noms de doublons utilisés "$doublons_index"
319
+     *
320
+     * @var string|null
321
+     */
322
+    public $doublons;
323
+
324
+    /**
325
+     * Code PHP ajouté au début de chaque itération de boucle.
326
+     *
327
+     * Utilisé entre autre par les critères {pagination}, {n-a,b}, {a/b}...
328
+     *
329
+     * @var string
330
+     */
331
+    public $partie = "";
332
+
333
+    /**
334
+     * Nombre de divisions de la boucle, d'éléments à afficher,
335
+     * ou de soustractions d'éléments à faire
336
+     *
337
+     * Dans les critères limitant le nombre d'éléments affichés
338
+     * {a,b}, {a,n-b}, {a/b}, {pagination b}, b est affecté à total_parties.
339
+     *
340
+     * @var string
341
+     */
342
+    public $total_parties = "";
343
+
344
+    /**
345
+     * Code PHP ajouté avant l'itération de boucle.
346
+     *
347
+     * Utilisé entre autre par les critères {pagination}, {a,b}, {a/b}
348
+     * pour initialiser les variables de début et de fin d'itération.
349
+     *
350
+     * @var string
351
+     */
352
+    public $mode_partie = '';
353
+
354
+    /**
355
+     * Identifiant d'une boucle qui appelle celle-ci de manière récursive
356
+     *
357
+     * Si une boucle est appelée de manière récursive quelque part par
358
+     * une autre boucle comme <BOUCLE_rec(boucle_identifiant) />, cette
359
+     * boucle (identifiant) reçoit dans cette propriété l'identifiant
360
+     * de l'appelant (rec)
361
+     *
362
+     * @var string
363
+     */
364
+    public $externe = '';
365
+
366
+    // champs pour la construction de la requete SQL
367
+
368
+    /**
369
+     * Liste des champs à récupérer par la boucle
370
+     *
371
+     * Expression 'table.nom_champ' ou calculée 'nom_champ AS x'
372
+     *
373
+     * @var string[]
374
+     */
375
+    public $select = array();
376
+
377
+    /**
378
+     * Liste des alias / tables SQL utilisées dans la boucle
379
+     *
380
+     * L'index est un identifiant (xx dans spip_xx assez souvent) qui servira
381
+     * d'alias au nom de la table ; la valeur est le nom de la table SQL désirée.
382
+     *
383
+     * L'index 0 peut définir le type de sources de données de l'itérateur DATA
384
+     *
385
+     * @var string[]
386
+     */
387
+    public $from = array();
388
+
389
+    /**
390
+     * Liste des alias / type de jointures utilisées dans la boucle
391
+     *
392
+     * L'index est le nom d'alias (comme pour la propriété $from), et la valeur
393
+     * un type de jointure parmi 'INNER', 'LEFT', 'RIGHT', 'OUTER'.
394
+     *
395
+     * Lorsque le type n'est pas déclaré pour un alias, c'est 'INNER'
396
+     * qui sera utilisé par défaut (créant donc un INNER JOIN).
397
+     *
398
+     * @var string[]
399
+     */
400
+    public $from_type = array();
401
+
402
+    /**
403
+     * Liste des conditions WHERE de la boucle
404
+     *
405
+     * Permet de restreindre les éléments retournés par une boucle
406
+     * en fonctions des conditions transmises dans ce tableau.
407
+     *
408
+     * Ce tableau peut avoir plusieurs niveaux de profondeur.
409
+     *
410
+     * Les éléments du premier niveau sont reliés par des AND, donc
411
+     * chaque élément ajouté directement au where par
412
+     * $boucle->where[] = array(...) ou $boucle->where[] = "'expression'"
413
+     * est une condition AND en plus.
414
+     *
415
+     * Par contre, lorsqu'on indique un tableau, il peut décrire des relations
416
+     * internes différentes. Soit $expr un tableau d'expressions quelconques de 3 valeurs :
417
+     * $expr = array(operateur, val1, val2)
418
+     *
419
+     * Ces 3 valeurs sont des expressions PHP. L'index 0 désigne l'opérateur
420
+     * à réaliser tel que :
421
+     *
422
+     * - "'='" , "'>='", "'<'", "'IN'", "'REGEXP'", "'LIKE'", ... :
423
+     *    val1 et val2 sont des champs et valeurs à utiliser dans la comparaison
424
+     *    suivant cet ordre : "val1 operateur val2".
425
+     *    Exemple : $boucle->where[] = array("'='", "'articles.statut'", "'\"publie\"'");
426
+     * - "'AND'", "'OR'", "'NOT'" :
427
+     *    dans ce cas val1 et val2 sont également des expressions
428
+     *    de comparaison complètes, et peuvent être eux-même des tableaux comme $expr
429
+     *    Exemples :
430
+     *    $boucle->where[] = array("'OR'", $expr1, $expr2);
431
+     *    $boucle->where[] = array("'NOT'", $expr); // val2 n'existe pas avec NOT
432
+     *
433
+     * D'autres noms sont possibles pour l'opérateur (le nombre de valeurs diffère) :
434
+     * - "'SELF'", "'SUBSELECT'" : indiquent des sous requêtes
435
+     * - "'?'" : indique une condition à faire évaluer (val1 ? val2 : val3)
436
+     *
437
+     * @var array
438
+     */
439
+    public $where = array();
440
+
441
+    public $join = array();
442
+    public $having = array();
443
+    public $limit;
444
+    public $group = array();
445
+    public $order = array();
446
+    public $default_order = array();
447
+    public $date = 'date';
448
+    public $hash = "";
449
+    public $in = "";
450
+    public $sous_requete = false;
451
+
452
+    /**
453
+     * Code PHP qui sera ajouté en tout début de la fonction de boucle
454
+     *
455
+     * Il sert à insérer le code calculant une hierarchie
456
+     *
457
+     * @var string
458
+     */
459
+    public $hierarchie = '';
460
+
461
+    /**
462
+     * Indique la présence d'un critère sur le statut
463
+     *
464
+     * @deprecated Remplacé par $boucle->modificateur['criteres']['statut']
465
+     * @var bool
466
+     */
467
+    public $statut = false;
468
+
469
+    // champs pour la construction du corps PHP
470
+
471
+    /**
472
+     * Description des sources de données de la boucle
473
+     *
474
+     * Description des données de la boucle issu de trouver_table
475
+     * dans le cadre de l'itérateur SQL et contenant au moins l'index 'field'.
476
+     *
477
+     * @see base_trouver_table_dist()
478
+     * @var array
479
+     */
480
+    public $show = array();
481
+
482
+    /**
483
+     * Nom de la table SQL principale de la boucle, sans son préfixe
484
+     *
485
+     * @var string
486
+     */
487
+    public $id_table;
488
+
489
+    /**
490
+     * Nom de la clé primaire de la table SQL principale de la boucle
491
+     *
492
+     * @var string
493
+     */
494
+    public $primary;
495
+
496
+    /**
497
+     * Code PHP compilé de la boucle
498
+     *
499
+     * @var string
500
+     */
501
+    public $return;
502
+
503
+    public $numrows = false;
504
+    public $cptrows = false;
505
+
506
+    /**
507
+     * Description du squelette
508
+     *
509
+     * Sert pour la gestion d'erreur et la production de code dependant du contexte
510
+     *
511
+     * Peut contenir les index :
512
+     *
513
+     * - nom : Nom du fichier de cache
514
+     * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
515
+     * - sourcefile : Chemin du squelette
516
+     * - squelette : Code du squelette
517
+     * - id_mere : Identifiant de la boucle parente
518
+     * - documents : Pour embed et img dans les textes
519
+     * - session : Pour un cache sessionné par auteur
520
+     * - niv : Niveau de tabulation
521
+     *
522
+     * @var array
523
+     */
524
+    public $descr = array();
525
+
526
+    /**
527
+     * Numéro de ligne dans le code source du squelette
528
+     *
529
+     * @var int
530
+     */
531
+    public $ligne = 0;
532
+
533
+
534
+    public $modificateur = array(); // table pour stocker les modificateurs de boucle tels que tout, plat ..., utilisable par les plugins egalement
535
+
536
+    /**
537
+     * Type d'itérateur utilisé pour cette boucle
538
+     *
539
+     * - 'SQL' dans le cadre d'une boucle sur une table SQL
540
+     * - 'DATA' pour l'itérateur DATA, ...
541
+     *
542
+     * @var string
543
+     */
544
+    public $iterateur = ''; // type d'iterateur
545
+
546
+    // obsoletes, conserves provisoirement pour compatibilite
547
+    public $tout = false;
548
+    public $plat = false;
549
+    public $lien = false;
550 550
 }
551 551
 
552 552
 /**
@@ -557,56 +557,56 @@  discard block
 block discarded – undo
557 557
  * @package SPIP\Core\Compilateur\AST
558 558
  **/
559 559
 class Critere {
560
-	/**
561
-	 * Type de noeud
562
-	 *
563
-	 * @var string
564
-	 */
565
-	public $type = 'critere';
566
-
567
-	/**
568
-	 * Opérateur (>, <, >=, IN, ...)
569
-	 *
570
-	 * @var null|string
571
-	 */
572
-	public $op;
573
-
574
-	/**
575
-	 * Présence d'une négation (truc !op valeur)
576
-	 *
577
-	 * @var null|string
578
-	 */
579
-	public $not;
580
-
581
-	/**
582
-	 * Présence d'une exclusion (!truc op valeur)
583
-	 *
584
-	 * @var null|string
585
-	 */
586
-	public $exclus;
587
-
588
-	/**
589
-	 * Présence d'une condition dans le critère (truc ?)
590
-	 *
591
-	 * @var bool
592
-	 */
593
-	public $cond = false;
594
-
595
-	/**
596
-	 * Paramètres du critère
597
-	 * - $param[0] : élément avant l'opérateur
598
-	 * - $param[1..n] : éléments après l'opérateur
599
-	 *
600
-	 * @var array
601
-	 */
602
-	public $param = array();
603
-
604
-	/**
605
-	 * Numéro de ligne dans le code source du squelette
606
-	 *
607
-	 * @var int
608
-	 */
609
-	public $ligne = 0;
560
+    /**
561
+     * Type de noeud
562
+     *
563
+     * @var string
564
+     */
565
+    public $type = 'critere';
566
+
567
+    /**
568
+     * Opérateur (>, <, >=, IN, ...)
569
+     *
570
+     * @var null|string
571
+     */
572
+    public $op;
573
+
574
+    /**
575
+     * Présence d'une négation (truc !op valeur)
576
+     *
577
+     * @var null|string
578
+     */
579
+    public $not;
580
+
581
+    /**
582
+     * Présence d'une exclusion (!truc op valeur)
583
+     *
584
+     * @var null|string
585
+     */
586
+    public $exclus;
587
+
588
+    /**
589
+     * Présence d'une condition dans le critère (truc ?)
590
+     *
591
+     * @var bool
592
+     */
593
+    public $cond = false;
594
+
595
+    /**
596
+     * Paramètres du critère
597
+     * - $param[0] : élément avant l'opérateur
598
+     * - $param[1..n] : éléments après l'opérateur
599
+     *
600
+     * @var array
601
+     */
602
+    public $param = array();
603
+
604
+    /**
605
+     * Numéro de ligne dans le code source du squelette
606
+     *
607
+     * @var int
608
+     */
609
+    public $ligne = 0;
610 610
 }
611 611
 
612 612
 /**
@@ -615,139 +615,139 @@  discard block
 block discarded – undo
615 615
  * @package SPIP\Core\Compilateur\AST
616 616
  **/
617 617
 class Champ {
618
-	/**
619
-	 * Type de noeud
620
-	 *
621
-	 * @var string
622
-	 */
623
-	public $type = 'champ';
624
-
625
-	/**
626
-	 * Nom du champ demandé. Exemple 'ID_ARTICLE'
627
-	 *
628
-	 * @var string|null
629
-	 */
630
-	public $nom_champ;
631
-
632
-	/**
633
-	 * Identifiant de la boucle parente si explicité
634
-	 *
635
-	 * @var string|null
636
-	 */
637
-	public $nom_boucle = '';
638
-
639
-	/**
640
-	 * Partie optionnelle avant
641
-	 *
642
-	 * @var null|string|array
643
-	 */
644
-	public $avant;
645
-
646
-	/**
647
-	 * Partie optionnelle après
648
-	 *
649
-	 * @var null|string|array
650
-	 */
651
-	public $apres;
652
-
653
-	/**
654
-	 * Étoiles : annuler des automatismes
655
-	 *
656
-	 * - '*' annule les filtres automatiques
657
-	 * - '**' annule en plus les protections de scripts
658
-	 *
659
-	 * @var null|string
660
-	 */
661
-	public $etoile;
662
-
663
-	/**
664
-	 * Arguments et filtres explicites sur la balise
665
-	 *
666
-	 * - $param[0] contient les arguments de la balise
667
-	 * - $param[1..n] contient les filtres à appliquer à la balise
668
-	 *
669
-	 * @var array
670
-	 */
671
-	public $param = array();
672
-
673
-	/**
674
-	 * Source des filtres  (compatibilité) (?)
675
-	 *
676
-	 * @var array|null
677
-	 */
678
-	public $fonctions = array();
679
-
680
-	/**
681
-	 * Identifiant de la boucle
682
-	 *
683
-	 * @var string
684
-	 */
685
-	public $id_boucle = '';
686
-
687
-	/**
688
-	 * AST du squelette, liste de toutes les boucles
689
-	 *
690
-	 * @var Boucles[]
691
-	 */
692
-	public $boucles;
693
-
694
-	/**
695
-	 * Alias de table d'application de la requête ou nom complet de la table SQL
696
-	 *
697
-	 * @var string|null
698
-	 */
699
-	public $type_requete;
700
-
701
-	/**
702
-	 * Résultat de la compilation: toujours une expression PHP
703
-	 *
704
-	 * @var string
705
-	 */
706
-	public $code = '';
707
-
708
-	/**
709
-	 * Interdire les scripts
710
-	 *
711
-	 * false si on est sûr de cette balise
712
-	 *
713
-	 * @see interdire_scripts()
714
-	 * @var bool
715
-	 */
716
-	public $interdire_scripts = true;
717
-
718
-	/**
719
-	 * Description du squelette
720
-	 *
721
-	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
722
-	 *
723
-	 * Peut contenir les index :
724
-	 *
725
-	 * - nom : Nom du fichier de cache
726
-	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
727
-	 * - sourcefile : Chemin du squelette
728
-	 * - squelette : Code du squelette
729
-	 * - id_mere : Identifiant de la boucle parente
730
-	 * - documents : Pour embed et img dans les textes
731
-	 * - session : Pour un cache sessionné par auteur
732
-	 * - niv : Niveau de tabulation
733
-	 *
734
-	 * @var array
735
-	 */
736
-	public $descr = array();
737
-
738
-	/**
739
-	 * Numéro de ligne dans le code source du squelette
740
-	 *
741
-	 * @var int
742
-	 */
743
-	public $ligne = 0;
744
-
745
-	/**
746
-	 * Drapeau pour reperer les balises calculées par une fonction explicite
747
-	 *
748
-	 * @var bool
749
-	 */
750
-	public $balise_calculee = false;
618
+    /**
619
+     * Type de noeud
620
+     *
621
+     * @var string
622
+     */
623
+    public $type = 'champ';
624
+
625
+    /**
626
+     * Nom du champ demandé. Exemple 'ID_ARTICLE'
627
+     *
628
+     * @var string|null
629
+     */
630
+    public $nom_champ;
631
+
632
+    /**
633
+     * Identifiant de la boucle parente si explicité
634
+     *
635
+     * @var string|null
636
+     */
637
+    public $nom_boucle = '';
638
+
639
+    /**
640
+     * Partie optionnelle avant
641
+     *
642
+     * @var null|string|array
643
+     */
644
+    public $avant;
645
+
646
+    /**
647
+     * Partie optionnelle après
648
+     *
649
+     * @var null|string|array
650
+     */
651
+    public $apres;
652
+
653
+    /**
654
+     * Étoiles : annuler des automatismes
655
+     *
656
+     * - '*' annule les filtres automatiques
657
+     * - '**' annule en plus les protections de scripts
658
+     *
659
+     * @var null|string
660
+     */
661
+    public $etoile;
662
+
663
+    /**
664
+     * Arguments et filtres explicites sur la balise
665
+     *
666
+     * - $param[0] contient les arguments de la balise
667
+     * - $param[1..n] contient les filtres à appliquer à la balise
668
+     *
669
+     * @var array
670
+     */
671
+    public $param = array();
672
+
673
+    /**
674
+     * Source des filtres  (compatibilité) (?)
675
+     *
676
+     * @var array|null
677
+     */
678
+    public $fonctions = array();
679
+
680
+    /**
681
+     * Identifiant de la boucle
682
+     *
683
+     * @var string
684
+     */
685
+    public $id_boucle = '';
686
+
687
+    /**
688
+     * AST du squelette, liste de toutes les boucles
689
+     *
690
+     * @var Boucles[]
691
+     */
692
+    public $boucles;
693
+
694
+    /**
695
+     * Alias de table d'application de la requête ou nom complet de la table SQL
696
+     *
697
+     * @var string|null
698
+     */
699
+    public $type_requete;
700
+
701
+    /**
702
+     * Résultat de la compilation: toujours une expression PHP
703
+     *
704
+     * @var string
705
+     */
706
+    public $code = '';
707
+
708
+    /**
709
+     * Interdire les scripts
710
+     *
711
+     * false si on est sûr de cette balise
712
+     *
713
+     * @see interdire_scripts()
714
+     * @var bool
715
+     */
716
+    public $interdire_scripts = true;
717
+
718
+    /**
719
+     * Description du squelette
720
+     *
721
+     * Sert pour la gestion d'erreur et la production de code dependant du contexte
722
+     *
723
+     * Peut contenir les index :
724
+     *
725
+     * - nom : Nom du fichier de cache
726
+     * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
727
+     * - sourcefile : Chemin du squelette
728
+     * - squelette : Code du squelette
729
+     * - id_mere : Identifiant de la boucle parente
730
+     * - documents : Pour embed et img dans les textes
731
+     * - session : Pour un cache sessionné par auteur
732
+     * - niv : Niveau de tabulation
733
+     *
734
+     * @var array
735
+     */
736
+    public $descr = array();
737
+
738
+    /**
739
+     * Numéro de ligne dans le code source du squelette
740
+     *
741
+     * @var int
742
+     */
743
+    public $ligne = 0;
744
+
745
+    /**
746
+     * Drapeau pour reperer les balises calculées par une fonction explicite
747
+     *
748
+     * @var bool
749
+     */
750
+    public $balise_calculee = false;
751 751
 }
752 752
 
753 753
 
@@ -755,123 +755,123 @@  discard block
 block discarded – undo
755 755
  * Description d'une chaîne de langue
756 756
  **/
757 757
 class Idiome {
758
-	/**
759
-	 * Type de noeud
760
-	 *
761
-	 * @var string
762
-	 */
763
-	public $type = 'idiome';
764
-
765
-	/**
766
-	 * Clé de traduction demandée. Exemple 'item_oui'
767
-	 *
768
-	 * @var string
769
-	 */
770
-	public $nom_champ = "";
771
-
772
-	/**
773
-	 * Module de langue où chercher la clé de traduction. Exemple 'medias'
774
-	 *
775
-	 * @var string
776
-	 */
777
-	public $module = "";
778
-
779
-	/**
780
-	 * Arguments à passer à la chaîne
781
-	 *
782
-	 * @var array
783
-	 */
784
-	public $arg = array();
785
-
786
-	/**
787
-	 * Filtres à appliquer au résultat
788
-	 *
789
-	 * @var array
790
-	 */
791
-	public $param = array();
792
-
793
-	/**
794
-	 * Source des filtres  (compatibilité) (?)
795
-	 *
796
-	 * @var array|null
797
-	 */
798
-	public $fonctions = array();
799
-
800
-	/**
801
-	 * Inutilisé, propriété générique de l'AST
802
-	 *
803
-	 * @var string|array
804
-	 */
805
-	public $avant = '';
806
-
807
-	/**
808
-	 * Inutilisé, propriété générique de l'AST
809
-	 *
810
-	 * @var string|array
811
-	 */
812
-	public $apres = '';
813
-
814
-	/**
815
-	 * Identifiant de la boucle
816
-	 *
817
-	 * @var string
818
-	 */
819
-	public $id_boucle = '';
820
-
821
-	/**
822
-	 * AST du squelette, liste de toutes les boucles
823
-	 *
824
-	 * @var Boucles[]
825
-	 */
826
-	public $boucles;
827
-
828
-	/**
829
-	 * Alias de table d'application de la requête ou nom complet de la table SQL
830
-	 *
831
-	 * @var string|null
832
-	 */
833
-	public $type_requete;
834
-
835
-	/**
836
-	 * Résultat de la compilation: toujours une expression PHP
837
-	 *
838
-	 * @var string
839
-	 */
840
-	public $code = '';
841
-
842
-	/**
843
-	 * Interdire les scripts
844
-	 *
845
-	 * @see interdire_scripts()
846
-	 * @var bool
847
-	 */
848
-	public $interdire_scripts = false;
849
-
850
-	/**
851
-	 * Description du squelette
852
-	 *
853
-	 * Sert pour la gestion d'erreur et la production de code dependant du contexte
854
-	 *
855
-	 * Peut contenir les index :
856
-	 * - nom : Nom du fichier de cache
857
-	 * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
858
-	 * - sourcefile : Chemin du squelette
859
-	 * - squelette : Code du squelette
860
-	 * - id_mere : Identifiant de la boucle parente
861
-	 * - documents : Pour embed et img dans les textes
862
-	 * - session : Pour un cache sessionné par auteur
863
-	 * - niv : Niveau de tabulation
864
-	 *
865
-	 * @var array
866
-	 */
867
-	public $descr = array();
868
-
869
-	/**
870
-	 * Numéro de ligne dans le code source du squelette
871
-	 *
872
-	 * @var int
873
-	 */
874
-	public $ligne = 0;
758
+    /**
759
+     * Type de noeud
760
+     *
761
+     * @var string
762
+     */
763
+    public $type = 'idiome';
764
+
765
+    /**
766
+     * Clé de traduction demandée. Exemple 'item_oui'
767
+     *
768
+     * @var string
769
+     */
770
+    public $nom_champ = "";
771
+
772
+    /**
773
+     * Module de langue où chercher la clé de traduction. Exemple 'medias'
774
+     *
775
+     * @var string
776
+     */
777
+    public $module = "";
778
+
779
+    /**
780
+     * Arguments à passer à la chaîne
781
+     *
782
+     * @var array
783
+     */
784
+    public $arg = array();
785
+
786
+    /**
787
+     * Filtres à appliquer au résultat
788
+     *
789
+     * @var array
790
+     */
791
+    public $param = array();
792
+
793
+    /**
794
+     * Source des filtres  (compatibilité) (?)
795
+     *
796
+     * @var array|null
797
+     */
798
+    public $fonctions = array();
799
+
800
+    /**
801
+     * Inutilisé, propriété générique de l'AST
802
+     *
803
+     * @var string|array
804
+     */
805
+    public $avant = '';
806
+
807
+    /**
808
+     * Inutilisé, propriété générique de l'AST
809
+     *
810
+     * @var string|array
811
+     */
812
+    public $apres = '';
813
+
814
+    /**
815
+     * Identifiant de la boucle
816
+     *
817
+     * @var string
818
+     */
819
+    public $id_boucle = '';
820
+
821
+    /**
822
+     * AST du squelette, liste de toutes les boucles
823
+     *
824
+     * @var Boucles[]
825
+     */
826
+    public $boucles;
827
+
828
+    /**
829
+     * Alias de table d'application de la requête ou nom complet de la table SQL
830
+     *
831
+     * @var string|null
832
+     */
833
+    public $type_requete;
834
+
835
+    /**
836
+     * Résultat de la compilation: toujours une expression PHP
837
+     *
838
+     * @var string
839
+     */
840
+    public $code = '';
841
+
842
+    /**
843
+     * Interdire les scripts
844
+     *
845
+     * @see interdire_scripts()
846
+     * @var bool
847
+     */
848
+    public $interdire_scripts = false;
849
+
850
+    /**
851
+     * Description du squelette
852
+     *
853
+     * Sert pour la gestion d'erreur et la production de code dependant du contexte
854
+     *
855
+     * Peut contenir les index :
856
+     * - nom : Nom du fichier de cache
857
+     * - gram : Nom de la grammaire du squelette (détermine le phraseur à utiliser)
858
+     * - sourcefile : Chemin du squelette
859
+     * - squelette : Code du squelette
860
+     * - id_mere : Identifiant de la boucle parente
861
+     * - documents : Pour embed et img dans les textes
862
+     * - session : Pour un cache sessionné par auteur
863
+     * - niv : Niveau de tabulation
864
+     *
865
+     * @var array
866
+     */
867
+    public $descr = array();
868
+
869
+    /**
870
+     * Numéro de ligne dans le code source du squelette
871
+     *
872
+     * @var int
873
+     */
874
+    public $ligne = 0;
875 875
 }
876 876
 
877 877
 /**
@@ -880,28 +880,28 @@  discard block
 block discarded – undo
880 880
  * @package SPIP\Core\Compilateur\AST
881 881
  **/
882 882
 class Polyglotte {
883
-	/**
884
-	 * Type de noeud
885
-	 *
886
-	 * @var string
887
-	 */
888
-	public $type = 'polyglotte';
889
-
890
-	/**
891
-	 * Tableau des traductions possibles classées par langue
892
-	 *
893
-	 * Tableau code de langue => texte
894
-	 *
895
-	 * @var array
896
-	 */
897
-	public $traductions = array();
898
-
899
-	/**
900
-	 * Numéro de ligne dans le code source du squelette
901
-	 *
902
-	 * @var int
903
-	 */
904
-	public $ligne = 0;
883
+    /**
884
+     * Type de noeud
885
+     *
886
+     * @var string
887
+     */
888
+    public $type = 'polyglotte';
889
+
890
+    /**
891
+     * Tableau des traductions possibles classées par langue
892
+     *
893
+     * Tableau code de langue => texte
894
+     *
895
+     * @var array
896
+     */
897
+    public $traductions = array();
898
+
899
+    /**
900
+     * Numéro de ligne dans le code source du squelette
901
+     *
902
+     * @var int
903
+     */
904
+    public $ligne = 0;
905 905
 }
906 906
 
907 907
 
@@ -926,80 +926,80 @@  discard block
 block discarded – undo
926 926
  */
927 927
 function declarer_interfaces() {
928 928
 
929
-	$GLOBALS['table_des_tables']['articles'] = 'articles';
930
-	$GLOBALS['table_des_tables']['auteurs'] = 'auteurs';
931
-	$GLOBALS['table_des_tables']['rubriques'] = 'rubriques';
932
-	$GLOBALS['table_des_tables']['hierarchie'] = 'rubriques';
933
-
934
-	// definition des statuts de publication
935
-	$GLOBALS['table_statut'] = array();
936
-
937
-	//
938
-	// tableau des tables de jointures
939
-	// Ex: gestion du critere {id_mot} dans la boucle(ARTICLES)
940
-	$GLOBALS['tables_jointures'] = array();
941
-	$GLOBALS['tables_jointures']['spip_jobs'][] = 'jobs_liens';
942
-
943
-	// $GLOBALS['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre'); // pour exemple
944
-	$GLOBALS['exceptions_des_jointures']['profondeur'] = array('spip_rubriques', 'profondeur');
945
-
946
-	define('_TRAITEMENT_TYPO', 'typo(%s, "TYPO", $connect, $Pile[0])');
947
-	define('_TRAITEMENT_RACCOURCIS', 'propre(%s, $connect, $Pile[0])');
948
-	define('_TRAITEMENT_TYPO_SANS_NUMERO', 'supprimer_numero(typo(%s), "TYPO", $connect, $Pile[0])');
949
-
950
-	$GLOBALS['table_des_traitements']['BIO'][] = _TRAITEMENT_RACCOURCIS;
951
-	$GLOBALS['table_des_traitements']['CHAPO'][] = _TRAITEMENT_RACCOURCIS;
952
-	$GLOBALS['table_des_traitements']['DATE'][] = 'normaliser_date(%s)';
953
-	$GLOBALS['table_des_traitements']['DATE_REDAC'][] = 'normaliser_date(%s)';
954
-	$GLOBALS['table_des_traitements']['DATE_MODIF'][] = 'normaliser_date(%s)';
955
-	$GLOBALS['table_des_traitements']['DATE_NOUVEAUTES'][] = 'normaliser_date(%s)';
956
-	$GLOBALS['table_des_traitements']['DESCRIPTIF'][] = _TRAITEMENT_RACCOURCIS;
957
-	$GLOBALS['table_des_traitements']['INTRODUCTION'][] = _TRAITEMENT_RACCOURCIS;
958
-	$GLOBALS['table_des_traitements']['NOM_SITE_SPIP'][] = _TRAITEMENT_TYPO;
959
-	$GLOBALS['table_des_traitements']['NOM'][] = _TRAITEMENT_TYPO_SANS_NUMERO;
960
-	$GLOBALS['table_des_traitements']['AUTEUR'][] = _TRAITEMENT_TYPO;
961
-	$GLOBALS['table_des_traitements']['PS'][] = _TRAITEMENT_RACCOURCIS;
962
-	$GLOBALS['table_des_traitements']['SOURCE'][] = _TRAITEMENT_TYPO;
963
-	$GLOBALS['table_des_traitements']['SOUSTITRE'][] = _TRAITEMENT_TYPO;
964
-	$GLOBALS['table_des_traitements']['SURTITRE'][] = _TRAITEMENT_TYPO;
965
-	$GLOBALS['table_des_traitements']['TAGS'][] = '%s';
966
-	$GLOBALS['table_des_traitements']['TEXTE'][] = _TRAITEMENT_RACCOURCIS;
967
-	$GLOBALS['table_des_traitements']['TITRE'][] = _TRAITEMENT_TYPO_SANS_NUMERO;
968
-	$GLOBALS['table_des_traitements']['TYPE'][] = _TRAITEMENT_TYPO;
969
-	$GLOBALS['table_des_traitements']['DESCRIPTIF_SITE_SPIP'][] = _TRAITEMENT_RACCOURCIS;
970
-	$GLOBALS['table_des_traitements']['SLOGAN_SITE_SPIP'][] = _TRAITEMENT_TYPO;
971
-	$GLOBALS['table_des_traitements']['ENV'][] = 'entites_html(%s,true)';
972
-
973
-	// valeur par defaut pour les balises non listees ci-dessus
974
-	$GLOBALS['table_des_traitements']['*'][] = false; // pas de traitement, mais permet au compilo de trouver la declaration suivante
975
-	// toujours securiser les DATA
976
-	$GLOBALS['table_des_traitements']['*']['DATA'] = 'safehtml(%s)';
977
-	// expliciter pour VALEUR qui est un champ calcule et ne sera pas protege par le catch-all *
978
-	$GLOBALS['table_des_traitements']['VALEUR']['DATA'] = 'safehtml(%s)';
979
-
980
-
981
-	// gerer l'affectation en 2 temps car si le pipe n'est pas encore declare, on ecrase les globales
982
-	$interfaces = pipeline('declarer_tables_interfaces',
983
-		array(
984
-			'table_des_tables' => $GLOBALS['table_des_tables'],
985
-			'exceptions_des_tables' => $GLOBALS['exceptions_des_tables'],
986
-			'table_date' => $GLOBALS['table_date'],
987
-			'table_titre' => $GLOBALS['table_titre'],
988
-			'tables_jointures' => $GLOBALS['tables_jointures'],
989
-			'exceptions_des_jointures' => $GLOBALS['exceptions_des_jointures'],
990
-			'table_des_traitements' => $GLOBALS['table_des_traitements'],
991
-			'table_statut' => $GLOBALS['table_statut'],
992
-		));
993
-	if ($interfaces) {
994
-		$GLOBALS['table_des_tables'] = $interfaces['table_des_tables'];
995
-		$GLOBALS['exceptions_des_tables'] = $interfaces['exceptions_des_tables'];
996
-		$GLOBALS['table_date'] = $interfaces['table_date'];
997
-		$GLOBALS['table_titre'] = $interfaces['table_titre'];
998
-		$GLOBALS['tables_jointures'] = $interfaces['tables_jointures'];
999
-		$GLOBALS['exceptions_des_jointures'] = $interfaces['exceptions_des_jointures'];
1000
-		$GLOBALS['table_des_traitements'] = $interfaces['table_des_traitements'];
1001
-		$GLOBALS['table_statut'] = $interfaces['table_statut'];
1002
-	}
929
+    $GLOBALS['table_des_tables']['articles'] = 'articles';
930
+    $GLOBALS['table_des_tables']['auteurs'] = 'auteurs';
931
+    $GLOBALS['table_des_tables']['rubriques'] = 'rubriques';
932
+    $GLOBALS['table_des_tables']['hierarchie'] = 'rubriques';
933
+
934
+    // definition des statuts de publication
935
+    $GLOBALS['table_statut'] = array();
936
+
937
+    //
938
+    // tableau des tables de jointures
939
+    // Ex: gestion du critere {id_mot} dans la boucle(ARTICLES)
940
+    $GLOBALS['tables_jointures'] = array();
941
+    $GLOBALS['tables_jointures']['spip_jobs'][] = 'jobs_liens';
942
+
943
+    // $GLOBALS['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre'); // pour exemple
944
+    $GLOBALS['exceptions_des_jointures']['profondeur'] = array('spip_rubriques', 'profondeur');
945
+
946
+    define('_TRAITEMENT_TYPO', 'typo(%s, "TYPO", $connect, $Pile[0])');
947
+    define('_TRAITEMENT_RACCOURCIS', 'propre(%s, $connect, $Pile[0])');
948
+    define('_TRAITEMENT_TYPO_SANS_NUMERO', 'supprimer_numero(typo(%s), "TYPO", $connect, $Pile[0])');
949
+
950
+    $GLOBALS['table_des_traitements']['BIO'][] = _TRAITEMENT_RACCOURCIS;
951
+    $GLOBALS['table_des_traitements']['CHAPO'][] = _TRAITEMENT_RACCOURCIS;
952
+    $GLOBALS['table_des_traitements']['DATE'][] = 'normaliser_date(%s)';
953
+    $GLOBALS['table_des_traitements']['DATE_REDAC'][] = 'normaliser_date(%s)';
954
+    $GLOBALS['table_des_traitements']['DATE_MODIF'][] = 'normaliser_date(%s)';
955
+    $GLOBALS['table_des_traitements']['DATE_NOUVEAUTES'][] = 'normaliser_date(%s)';
956
+    $GLOBALS['table_des_traitements']['DESCRIPTIF'][] = _TRAITEMENT_RACCOURCIS;
957
+    $GLOBALS['table_des_traitements']['INTRODUCTION'][] = _TRAITEMENT_RACCOURCIS;
958
+    $GLOBALS['table_des_traitements']['NOM_SITE_SPIP'][] = _TRAITEMENT_TYPO;
959
+    $GLOBALS['table_des_traitements']['NOM'][] = _TRAITEMENT_TYPO_SANS_NUMERO;
960
+    $GLOBALS['table_des_traitements']['AUTEUR'][] = _TRAITEMENT_TYPO;
961
+    $GLOBALS['table_des_traitements']['PS'][] = _TRAITEMENT_RACCOURCIS;
962
+    $GLOBALS['table_des_traitements']['SOURCE'][] = _TRAITEMENT_TYPO;
963
+    $GLOBALS['table_des_traitements']['SOUSTITRE'][] = _TRAITEMENT_TYPO;
964
+    $GLOBALS['table_des_traitements']['SURTITRE'][] = _TRAITEMENT_TYPO;
965
+    $GLOBALS['table_des_traitements']['TAGS'][] = '%s';
966
+    $GLOBALS['table_des_traitements']['TEXTE'][] = _TRAITEMENT_RACCOURCIS;
967
+    $GLOBALS['table_des_traitements']['TITRE'][] = _TRAITEMENT_TYPO_SANS_NUMERO;
968
+    $GLOBALS['table_des_traitements']['TYPE'][] = _TRAITEMENT_TYPO;
969
+    $GLOBALS['table_des_traitements']['DESCRIPTIF_SITE_SPIP'][] = _TRAITEMENT_RACCOURCIS;
970
+    $GLOBALS['table_des_traitements']['SLOGAN_SITE_SPIP'][] = _TRAITEMENT_TYPO;
971
+    $GLOBALS['table_des_traitements']['ENV'][] = 'entites_html(%s,true)';
972
+
973
+    // valeur par defaut pour les balises non listees ci-dessus
974
+    $GLOBALS['table_des_traitements']['*'][] = false; // pas de traitement, mais permet au compilo de trouver la declaration suivante
975
+    // toujours securiser les DATA
976
+    $GLOBALS['table_des_traitements']['*']['DATA'] = 'safehtml(%s)';
977
+    // expliciter pour VALEUR qui est un champ calcule et ne sera pas protege par le catch-all *
978
+    $GLOBALS['table_des_traitements']['VALEUR']['DATA'] = 'safehtml(%s)';
979
+
980
+
981
+    // gerer l'affectation en 2 temps car si le pipe n'est pas encore declare, on ecrase les globales
982
+    $interfaces = pipeline('declarer_tables_interfaces',
983
+        array(
984
+            'table_des_tables' => $GLOBALS['table_des_tables'],
985
+            'exceptions_des_tables' => $GLOBALS['exceptions_des_tables'],
986
+            'table_date' => $GLOBALS['table_date'],
987
+            'table_titre' => $GLOBALS['table_titre'],
988
+            'tables_jointures' => $GLOBALS['tables_jointures'],
989
+            'exceptions_des_jointures' => $GLOBALS['exceptions_des_jointures'],
990
+            'table_des_traitements' => $GLOBALS['table_des_traitements'],
991
+            'table_statut' => $GLOBALS['table_statut'],
992
+        ));
993
+    if ($interfaces) {
994
+        $GLOBALS['table_des_tables'] = $interfaces['table_des_tables'];
995
+        $GLOBALS['exceptions_des_tables'] = $interfaces['exceptions_des_tables'];
996
+        $GLOBALS['table_date'] = $interfaces['table_date'];
997
+        $GLOBALS['table_titre'] = $interfaces['table_titre'];
998
+        $GLOBALS['tables_jointures'] = $interfaces['tables_jointures'];
999
+        $GLOBALS['exceptions_des_jointures'] = $interfaces['exceptions_des_jointures'];
1000
+        $GLOBALS['table_des_traitements'] = $interfaces['table_des_traitements'];
1001
+        $GLOBALS['table_statut'] = $interfaces['table_statut'];
1002
+    }
1003 1003
 }
1004 1004
 
1005 1005
 declarer_interfaces();
Please login to merge, or discard this patch.
ecrire/public/balises.php 3 patches
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -2884,8 +2884,7 @@
 block discarded – undo
2884 2884
 	$_const = interprete_argument_balise(1, $p);
2885 2885
 	if (!strlen($_const)) {
2886 2886
 		$p->code = "''";
2887
-	}
2888
-	else {
2887
+	} else {
2889 2888
 		$p->code = "(defined($_const)?constant($_const):'')";
2890 2889
 	}
2891 2890
 	$p->interdire_scripts = false;
Please login to merge, or discard this patch.
Indentation   +892 added lines, -892 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
  **/
27 27
 
28 28
 if (!defined('_ECRIRE_INC_VERSION')) {
29
-	return;
29
+    return;
30 30
 }
31 31
 
32 32
 /**
@@ -48,14 +48,14 @@  discard block
 block discarded – undo
48 48
  *     Code PHP si cet argument est présent, sinon null
49 49
  **/
50 50
 function interprete_argument_balise($n, $p) {
51
-	if (($p->param) && (!$p->param[0][0]) && (count($p->param[0]) > $n)) {
52
-		return calculer_liste($p->param[0][$n],
53
-			$p->descr,
54
-			$p->boucles,
55
-			$p->id_boucle);
56
-	} else {
57
-		return null;
58
-	}
51
+    if (($p->param) && (!$p->param[0][0]) && (count($p->param[0]) > $n)) {
52
+        return calculer_liste($p->param[0][$n],
53
+            $p->descr,
54
+            $p->boucles,
55
+            $p->id_boucle);
56
+    } else {
57
+        return null;
58
+    }
59 59
 }
60 60
 
61 61
 
@@ -75,10 +75,10 @@  discard block
 block discarded – undo
75 75
  *     Pile complétée par le code à générer
76 76
  **/
77 77
 function balise_NOM_SITE_SPIP_dist($p) {
78
-	$p->code = "\$GLOBALS['meta']['nom_site']";
78
+    $p->code = "\$GLOBALS['meta']['nom_site']";
79 79
 
80
-	#$p->interdire_scripts = true;
81
-	return $p;
80
+    #$p->interdire_scripts = true;
81
+    return $p;
82 82
 }
83 83
 
84 84
 /**
@@ -94,10 +94,10 @@  discard block
 block discarded – undo
94 94
  *     Pile complétée par le code à générer
95 95
  **/
96 96
 function balise_EMAIL_WEBMASTER_dist($p) {
97
-	$p->code = "\$GLOBALS['meta']['email_webmaster']";
97
+    $p->code = "\$GLOBALS['meta']['email_webmaster']";
98 98
 
99
-	#$p->interdire_scripts = true;
100
-	return $p;
99
+    #$p->interdire_scripts = true;
100
+    return $p;
101 101
 }
102 102
 
103 103
 /**
@@ -113,10 +113,10 @@  discard block
 block discarded – undo
113 113
  *     Pile complétée par le code à générer
114 114
  **/
115 115
 function balise_DESCRIPTIF_SITE_SPIP_dist($p) {
116
-	$p->code = "\$GLOBALS['meta']['descriptif_site']";
116
+    $p->code = "\$GLOBALS['meta']['descriptif_site']";
117 117
 
118
-	#$p->interdire_scripts = true;
119
-	return $p;
118
+    #$p->interdire_scripts = true;
119
+    return $p;
120 120
 }
121 121
 
122 122
 
@@ -137,10 +137,10 @@  discard block
 block discarded – undo
137 137
  *     Pile complétée par le code à générer
138 138
  **/
139 139
 function balise_CHARSET_dist($p) {
140
-	$p->code = "\$GLOBALS['meta']['charset']";
140
+    $p->code = "\$GLOBALS['meta']['charset']";
141 141
 
142
-	#$p->interdire_scripts = true;
143
-	return $p;
142
+    #$p->interdire_scripts = true;
143
+    return $p;
144 144
 }
145 145
 
146 146
 /**
@@ -165,11 +165,11 @@  discard block
 block discarded – undo
165 165
  *     Pile complétée par le code à générer
166 166
  **/
167 167
 function balise_LANG_LEFT_dist($p) {
168
-	$_lang = champ_sql('lang', $p);
169
-	$p->code = "lang_dir($_lang, 'left','right')";
170
-	$p->interdire_scripts = false;
168
+    $_lang = champ_sql('lang', $p);
169
+    $p->code = "lang_dir($_lang, 'left','right')";
170
+    $p->interdire_scripts = false;
171 171
 
172
-	return $p;
172
+    return $p;
173 173
 }
174 174
 
175 175
 /**
@@ -189,11 +189,11 @@  discard block
 block discarded – undo
189 189
  *     Pile complétée par le code à générer
190 190
  **/
191 191
 function balise_LANG_RIGHT_dist($p) {
192
-	$_lang = champ_sql('lang', $p);
193
-	$p->code = "lang_dir($_lang, 'right','left')";
194
-	$p->interdire_scripts = false;
192
+    $_lang = champ_sql('lang', $p);
193
+    $p->code = "lang_dir($_lang, 'right','left')";
194
+    $p->interdire_scripts = false;
195 195
 
196
-	return $p;
196
+    return $p;
197 197
 }
198 198
 
199 199
 /**
@@ -218,11 +218,11 @@  discard block
 block discarded – undo
218 218
  *     Pile complétée par le code à générer
219 219
  **/
220 220
 function balise_LANG_DIR_dist($p) {
221
-	$_lang = champ_sql('lang', $p);
222
-	$p->code = "lang_dir($_lang, 'ltr','rtl')";
223
-	$p->interdire_scripts = false;
221
+    $_lang = champ_sql('lang', $p);
222
+    $p->code = "lang_dir($_lang, 'ltr','rtl')";
223
+    $p->interdire_scripts = false;
224 224
 
225
-	return $p;
225
+    return $p;
226 226
 }
227 227
 
228 228
 
@@ -239,10 +239,10 @@  discard block
 block discarded – undo
239 239
  *     Pile complétée par le code à générer
240 240
  **/
241 241
 function balise_PUCE_dist($p) {
242
-	$p->code = "definir_puce()";
243
-	$p->interdire_scripts = false;
242
+    $p->code = "definir_puce()";
243
+    $p->interdire_scripts = false;
244 244
 
245
-	return $p;
245
+    return $p;
246 246
 }
247 247
 
248 248
 
@@ -266,12 +266,12 @@  discard block
 block discarded – undo
266 266
  *     Pile completée du code PHP d'exécution de la balise
267 267
  */
268 268
 function balise_DATE_dist($p) {
269
-	$d = champ_sql('date', $p);
269
+    $d = champ_sql('date', $p);
270 270
 #	if ($d === "@\$Pile[0]['date']")
271 271
 #		$d = "isset(\$Pile[0]['date']) ? $d : time()";
272
-	$p->code = $d;
272
+    $p->code = $d;
273 273
 
274
-	return $p;
274
+    return $p;
275 275
 }
276 276
 
277 277
 
@@ -291,13 +291,13 @@  discard block
 block discarded – undo
291 291
  *     Pile completée du code PHP d'exécution de la balise
292 292
  */
293 293
 function balise_DATE_REDAC_dist($p) {
294
-	$d = champ_sql('date_redac', $p);
294
+    $d = champ_sql('date_redac', $p);
295 295
 #	if ($d === "@\$Pile[0]['date_redac']")
296 296
 #		$d = "isset(\$Pile[0]['date_redac']) ? $d : time()";
297
-	$p->code = $d;
298
-	$p->interdire_scripts = false;
297
+    $p->code = $d;
298
+    $p->interdire_scripts = false;
299 299
 
300
-	return $p;
300
+    return $p;
301 301
 }
302 302
 
303 303
 /**
@@ -316,10 +316,10 @@  discard block
 block discarded – undo
316 316
  *     Pile completée du code PHP d'exécution de la balise
317 317
  */
318 318
 function balise_DATE_MODIF_dist($p) {
319
-	$p->code = champ_sql('date_modif', $p);
320
-	$p->interdire_scripts = false;
319
+    $p->code = champ_sql('date_modif', $p);
320
+    $p->interdire_scripts = false;
321 321
 
322
-	return $p;
322
+    return $p;
323 323
 }
324 324
 
325 325
 /**
@@ -337,13 +337,13 @@  discard block
 block discarded – undo
337 337
  *     Pile completée du code PHP d'exécution de la balise
338 338
  */
339 339
 function balise_DATE_NOUVEAUTES_dist($p) {
340
-	$p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
340
+    $p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
341 341
 	AND isset(\$GLOBALS['meta']['dernier_envoi_neuf'])) ?
342 342
 	\$GLOBALS['meta']['dernier_envoi_neuf'] :
343 343
 	\"'0000-00-00'\")";
344
-	$p->interdire_scripts = false;
344
+    $p->interdire_scripts = false;
345 345
 
346
-	return $p;
346
+    return $p;
347 347
 }
348 348
 
349 349
 
@@ -362,11 +362,11 @@  discard block
 block discarded – undo
362 362
  *     Pile completée du code PHP d'exécution de la balise
363 363
  */
364 364
 function balise_DOSSIER_SQUELETTE_dist($p) {
365
-	$code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
366
-	$p->code = "_DIR_RACINE . '$code'" .
367
-		$p->interdire_scripts = false;
365
+    $code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
366
+    $p->code = "_DIR_RACINE . '$code'" .
367
+        $p->interdire_scripts = false;
368 368
 
369
-	return $p;
369
+    return $p;
370 370
 }
371 371
 
372 372
 /**
@@ -381,11 +381,11 @@  discard block
 block discarded – undo
381 381
  *     Pile completée du code PHP d'exécution de la balise
382 382
  */
383 383
 function balise_SQUELETTE_dist($p) {
384
-	$code = addslashes($p->descr['sourcefile']);
385
-	$p->code = "'$code'" .
386
-		$p->interdire_scripts = false;
384
+    $code = addslashes($p->descr['sourcefile']);
385
+    $p->code = "'$code'" .
386
+        $p->interdire_scripts = false;
387 387
 
388
-	return $p;
388
+    return $p;
389 389
 }
390 390
 
391 391
 /**
@@ -404,10 +404,10 @@  discard block
 block discarded – undo
404 404
  *     Pile completée du code PHP d'exécution de la balise
405 405
  */
406 406
 function balise_SPIP_VERSION_dist($p) {
407
-	$p->code = "spip_version()";
408
-	$p->interdire_scripts = false;
407
+    $p->code = "spip_version()";
408
+    $p->interdire_scripts = false;
409 409
 
410
-	return $p;
410
+    return $p;
411 411
 }
412 412
 
413 413
 
@@ -433,18 +433,18 @@  discard block
 block discarded – undo
433 433
  *     Pile complétée par le code à générer
434 434
  **/
435 435
 function balise_NOM_SITE_dist($p) {
436
-	if (!$p->etoile) {
437
-		$p->code = "supprimer_numero(calculer_url(" .
438
-			champ_sql('url_site', $p) . "," .
439
-			champ_sql('nom_site', $p) .
440
-			", 'titre', \$connect, false))";
441
-	} else {
442
-		$p->code = champ_sql('nom_site', $p);
443
-	}
436
+    if (!$p->etoile) {
437
+        $p->code = "supprimer_numero(calculer_url(" .
438
+            champ_sql('url_site', $p) . "," .
439
+            champ_sql('nom_site', $p) .
440
+            ", 'titre', \$connect, false))";
441
+    } else {
442
+        $p->code = champ_sql('nom_site', $p);
443
+    }
444 444
 
445
-	$p->interdire_scripts = true;
445
+    $p->interdire_scripts = true;
446 446
 
447
-	return $p;
447
+    return $p;
448 448
 }
449 449
 
450 450
 
@@ -461,11 +461,11 @@  discard block
 block discarded – undo
461 461
  *     Pile complétée par le code à générer
462 462
  **/
463 463
 function balise_NOTES_dist($p) {
464
-	// Recuperer les notes
465
-	$p->code = 'calculer_notes()';
464
+    // Recuperer les notes
465
+    $p->code = 'calculer_notes()';
466 466
 
467
-	#$p->interdire_scripts = true;
468
-	return $p;
467
+    #$p->interdire_scripts = true;
468
+    return $p;
469 469
 }
470 470
 
471 471
 
@@ -487,10 +487,10 @@  discard block
 block discarded – undo
487 487
  *     Pile complétée par le code à générer
488 488
  **/
489 489
 function balise_RECHERCHE_dist($p) {
490
-	$p->code = 'entites_html(_request("recherche"))';
491
-	$p->interdire_scripts = false;
490
+    $p->code = 'entites_html(_request("recherche"))';
491
+    $p->interdire_scripts = false;
492 492
 
493
-	return $p;
493
+    return $p;
494 494
 }
495 495
 
496 496
 
@@ -508,20 +508,20 @@  discard block
 block discarded – undo
508 508
  *     Pile complétée par le code à générer
509 509
  **/
510 510
 function balise_COMPTEUR_BOUCLE_dist($p) {
511
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
512
-	if ($b === '') {
513
-		$msg = array(
514
-			'zbug_champ_hors_boucle',
515
-			array('champ' => '#COMPTEUR_BOUCLE')
516
-		);
517
-		erreur_squelette($msg, $p);
518
-	} else {
519
-		$p->code = "\$Numrows['$b']['compteur_boucle']";
520
-		$p->boucles[$b]->cptrows = true;
521
-		$p->interdire_scripts = false;
511
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
512
+    if ($b === '') {
513
+        $msg = array(
514
+            'zbug_champ_hors_boucle',
515
+            array('champ' => '#COMPTEUR_BOUCLE')
516
+        );
517
+        erreur_squelette($msg, $p);
518
+    } else {
519
+        $p->code = "\$Numrows['$b']['compteur_boucle']";
520
+        $p->boucles[$b]->cptrows = true;
521
+        $p->interdire_scripts = false;
522 522
 
523
-		return $p;
524
-	}
523
+        return $p;
524
+    }
525 525
 }
526 526
 
527 527
 /**
@@ -539,20 +539,20 @@  discard block
 block discarded – undo
539 539
  *     Pile complétée par le code à générer
540 540
  **/
541 541
 function balise_TOTAL_BOUCLE_dist($p) {
542
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
543
-	if ($b === '' || !isset($p->boucles[$b])) {
544
-		$msg = array(
545
-			'zbug_champ_hors_boucle',
546
-			array('champ' => "#$b" . 'TOTAL_BOUCLE')
547
-		);
548
-		erreur_squelette($msg, $p);
549
-	} else {
550
-		$p->code = "\$Numrows['$b']['total']";
551
-		$p->boucles[$b]->numrows = true;
552
-		$p->interdire_scripts = false;
553
-	}
542
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
543
+    if ($b === '' || !isset($p->boucles[$b])) {
544
+        $msg = array(
545
+            'zbug_champ_hors_boucle',
546
+            array('champ' => "#$b" . 'TOTAL_BOUCLE')
547
+        );
548
+        erreur_squelette($msg, $p);
549
+    } else {
550
+        $p->code = "\$Numrows['$b']['total']";
551
+        $p->boucles[$b]->numrows = true;
552
+        $p->interdire_scripts = false;
553
+    }
554 554
 
555
-	return $p;
555
+    return $p;
556 556
 }
557 557
 
558 558
 
@@ -572,7 +572,7 @@  discard block
 block discarded – undo
572 572
  *     Pile complétée par le code à générer
573 573
  **/
574 574
 function balise_POINTS_dist($p) {
575
-	return rindex_pile($p, 'points', 'recherche');
575
+    return rindex_pile($p, 'points', 'recherche');
576 576
 }
577 577
 
578 578
 
@@ -593,12 +593,12 @@  discard block
 block discarded – undo
593 593
  *     Pile complétée par le code à générer
594 594
  **/
595 595
 function balise_POPULARITE_ABSOLUE_dist($p) {
596
-	$p->code = 'ceil(' .
597
-		champ_sql('popularite', $p) .
598
-		')';
599
-	$p->interdire_scripts = false;
596
+    $p->code = 'ceil(' .
597
+        champ_sql('popularite', $p) .
598
+        ')';
599
+    $p->interdire_scripts = false;
600 600
 
601
-	return $p;
601
+    return $p;
602 602
 }
603 603
 
604 604
 /**
@@ -618,10 +618,10 @@  discard block
 block discarded – undo
618 618
  *     Pile complétée par le code à générer
619 619
  **/
620 620
 function balise_POPULARITE_SITE_dist($p) {
621
-	$p->code = 'ceil($GLOBALS["meta"][\'popularite_total\'])';
622
-	$p->interdire_scripts = false;
621
+    $p->code = 'ceil($GLOBALS["meta"][\'popularite_total\'])';
622
+    $p->interdire_scripts = false;
623 623
 
624
-	return $p;
624
+    return $p;
625 625
 }
626 626
 
627 627
 /**
@@ -642,10 +642,10 @@  discard block
 block discarded – undo
642 642
  *     Pile complétée par le code à générer
643 643
  **/
644 644
 function balise_POPULARITE_MAX_dist($p) {
645
-	$p->code = 'ceil($GLOBALS["meta"][\'popularite_max\'])';
646
-	$p->interdire_scripts = false;
645
+    $p->code = 'ceil($GLOBALS["meta"][\'popularite_max\'])';
646
+    $p->interdire_scripts = false;
647 647
 
648
-	return $p;
648
+    return $p;
649 649
 }
650 650
 
651 651
 
@@ -671,14 +671,14 @@  discard block
 block discarded – undo
671 671
  *     Pile complétée par le code à générer
672 672
  **/
673 673
 function balise_VALEUR_dist($p) {
674
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
675
-	$p->code = index_pile($p->id_boucle, 'valeur', $p->boucles, $b);;
676
-	if (($v = interprete_argument_balise(1, $p)) !== null) {
677
-		$p->code = 'table_valeur(' . $p->code . ', ' . $v . ')';
678
-	}
679
-	$p->interdire_scripts = true;
674
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
675
+    $p->code = index_pile($p->id_boucle, 'valeur', $p->boucles, $b);;
676
+    if (($v = interprete_argument_balise(1, $p)) !== null) {
677
+        $p->code = 'table_valeur(' . $p->code . ', ' . $v . ')';
678
+    }
679
+    $p->interdire_scripts = true;
680 680
 
681
-	return $p;
681
+    return $p;
682 682
 }
683 683
 
684 684
 /**
@@ -707,17 +707,17 @@  discard block
 block discarded – undo
707 707
  *     Pile complétée par le code à générer
708 708
  **/
709 709
 function balise_EXPOSE_dist($p) {
710
-	$on = "'on'";
711
-	$off = "''";
712
-	if (($v = interprete_argument_balise(1, $p)) !== null) {
713
-		$on = $v;
714
-		if (($v = interprete_argument_balise(2, $p)) !== null) {
715
-			$off = $v;
716
-		}
710
+    $on = "'on'";
711
+    $off = "''";
712
+    if (($v = interprete_argument_balise(1, $p)) !== null) {
713
+        $on = $v;
714
+        if (($v = interprete_argument_balise(2, $p)) !== null) {
715
+            $off = $v;
716
+        }
717 717
 
718
-	}
718
+    }
719 719
 
720
-	return calculer_balise_expose($p, $on, $off);
720
+    return calculer_balise_expose($p, $on, $off);
721 721
 }
722 722
 
723 723
 /**
@@ -735,36 +735,36 @@  discard block
 block discarded – undo
735 735
  *     Pile complétée par le code à générer
736 736
  **/
737 737
 function calculer_balise_expose($p, $on, $off) {
738
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
739
-	if (empty($p->boucles[$b]->primary)) {
740
-		$msg = array('zbug_champ_hors_boucle', array('champ' => '#EXPOSER'));
741
-		erreur_squelette($msg, $p);
742
-	} else {
738
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
739
+    if (empty($p->boucles[$b]->primary)) {
740
+        $msg = array('zbug_champ_hors_boucle', array('champ' => '#EXPOSER'));
741
+        erreur_squelette($msg, $p);
742
+    } else {
743 743
 
744
-		$key = $p->boucles[$b]->primary;
745
-		$type = $p->boucles[$p->id_boucle]->primary;
746
-		$desc = $p->boucles[$b]->show;
747
-		$connect = sql_quote($p->boucles[$b]->sql_serveur);
744
+        $key = $p->boucles[$b]->primary;
745
+        $type = $p->boucles[$p->id_boucle]->primary;
746
+        $desc = $p->boucles[$b]->show;
747
+        $connect = sql_quote($p->boucles[$b]->sql_serveur);
748 748
 
749
-		// Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite
750
-		$c = index_pile($p->id_boucle, $type, $p->boucles);
749
+        // Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite
750
+        $c = index_pile($p->id_boucle, $type, $p->boucles);
751 751
 
752
-		if (isset($desc['field']['id_parent'])) {
753
-			$parent = 0; // pour if (!$parent) dans calculer_expose
754
-		} elseif (isset($desc['field']['id_rubrique'])) {
755
-			$parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b);
756
-		} elseif (isset($desc['field']['id_groupe'])) {
757
-			$parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b);
758
-		} else {
759
-			$parent = "''";
760
-		}
752
+        if (isset($desc['field']['id_parent'])) {
753
+            $parent = 0; // pour if (!$parent) dans calculer_expose
754
+        } elseif (isset($desc['field']['id_rubrique'])) {
755
+            $parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b);
756
+        } elseif (isset($desc['field']['id_groupe'])) {
757
+            $parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b);
758
+        } else {
759
+            $parent = "''";
760
+        }
761 761
 
762
-		$p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)";
763
-	}
762
+        $p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)";
763
+    }
764 764
 
765
-	$p->interdire_scripts = false;
765
+    $p->interdire_scripts = false;
766 766
 
767
-	return $p;
767
+    return $p;
768 768
 }
769 769
 
770 770
 
@@ -802,47 +802,47 @@  discard block
 block discarded – undo
802 802
  **/
803 803
 function balise_INTRODUCTION_dist($p) {
804 804
 
805
-	$type = $p->type_requete;
806
-
807
-	$_texte = champ_sql('texte', $p);
808
-	$trouver_table = charger_fonction('trouver_table', 'base');
809
-	$desc = $trouver_table(table_objet_sql($type));
810
-	$_descriptif = "''";
811
-	if ($desc and isset($desc['field']['descriptif'])) {
812
-		// notamment articles et rubriques mais aussi tout nouvel objet concerne
813
-		$_descriptif = champ_sql('descriptif', $p);
814
-	}
815
-
816
-	// notamment les articles mais aussi tout nouvel objet concerne
817
-	if ($desc and isset($desc['field']['chapo'])) {
818
-		$_chapo = champ_sql('chapo', $p);
819
-		$_texte = "(strlen($_descriptif))
805
+    $type = $p->type_requete;
806
+
807
+    $_texte = champ_sql('texte', $p);
808
+    $trouver_table = charger_fonction('trouver_table', 'base');
809
+    $desc = $trouver_table(table_objet_sql($type));
810
+    $_descriptif = "''";
811
+    if ($desc and isset($desc['field']['descriptif'])) {
812
+        // notamment articles et rubriques mais aussi tout nouvel objet concerne
813
+        $_descriptif = champ_sql('descriptif', $p);
814
+    }
815
+
816
+    // notamment les articles mais aussi tout nouvel objet concerne
817
+    if ($desc and isset($desc['field']['chapo'])) {
818
+        $_chapo = champ_sql('chapo', $p);
819
+        $_texte = "(strlen($_descriptif))
820 820
 		? ''
821 821
 		: $_chapo . \"\\n\\n\" . $_texte";
822
-	}
822
+    }
823 823
 
824
-	// longueur en parametre, ou valeur par defaut
825
-	$longueur_defaut = objet_info($type, 'introduction_longueur');
826
-	if (!$longueur_defaut) {
827
-		$longueur_defaut = 600;
828
-	}
824
+    // longueur en parametre, ou valeur par defaut
825
+    $longueur_defaut = objet_info($type, 'introduction_longueur');
826
+    if (!$longueur_defaut) {
827
+        $longueur_defaut = 600;
828
+    }
829 829
 
830
-	$_suite = 'null';
831
-	$_longueur = $longueur_defaut;
832
-	if (($v = interprete_argument_balise(1, $p)) !== null) {
833
-		$_longueur = 'is_numeric(' . $v . ')?intval(' . $v . '):' . $longueur_defaut;
834
-		$_suite = '!is_numeric(' . $v . ')?' . $v . ':null';
835
-	}
836
-	if (($v2 = interprete_argument_balise(2, $p)) !== null) {
837
-		$_suite = $v2;
838
-	}
830
+    $_suite = 'null';
831
+    $_longueur = $longueur_defaut;
832
+    if (($v = interprete_argument_balise(1, $p)) !== null) {
833
+        $_longueur = 'is_numeric(' . $v . ')?intval(' . $v . '):' . $longueur_defaut;
834
+        $_suite = '!is_numeric(' . $v . ')?' . $v . ':null';
835
+    }
836
+    if (($v2 = interprete_argument_balise(2, $p)) !== null) {
837
+        $_suite = $v2;
838
+    }
839 839
 
840
-	$f = chercher_filtre('introduction');
841
-	$p->code = "$f($_descriptif, $_texte, $_longueur, \$connect, $_suite)";
840
+    $f = chercher_filtre('introduction');
841
+    $p->code = "$f($_descriptif, $_texte, $_longueur, \$connect, $_suite)";
842 842
 
843
-	#$p->interdire_scripts = true;
844
-	$p->etoile = '*'; // propre est deja fait dans le calcul de l'intro
845
-	return $p;
843
+    #$p->interdire_scripts = true;
844
+    $p->etoile = '*'; // propre est deja fait dans le calcul de l'intro
845
+    return $p;
846 846
 }
847 847
 
848 848
 
@@ -862,15 +862,15 @@  discard block
 block discarded – undo
862 862
  *     Pile complétée par le code à générer
863 863
  **/
864 864
 function balise_LANG_dist($p) {
865
-	$_lang = champ_sql('lang', $p);
866
-	if (!$p->etoile) {
867
-		$p->code = "spip_htmlentities($_lang ? $_lang : \$GLOBALS['spip_lang'])";
868
-	} else {
869
-		$p->code = "spip_htmlentities($_lang)";
870
-	}
871
-	$p->interdire_scripts = false;
865
+    $_lang = champ_sql('lang', $p);
866
+    if (!$p->etoile) {
867
+        $p->code = "spip_htmlentities($_lang ? $_lang : \$GLOBALS['spip_lang'])";
868
+    } else {
869
+        $p->code = "spip_htmlentities($_lang)";
870
+    }
871
+    $p->interdire_scripts = false;
872 872
 
873
-	return $p;
873
+    return $p;
874 874
 }
875 875
 
876 876
 /**
@@ -892,44 +892,44 @@  discard block
 block discarded – undo
892 892
  *     Pile complétée par le code à générer
893 893
  */
894 894
 function balise_LESAUTEURS_dist($p) {
895
-	// Cherche le champ 'lesauteurs' dans la pile
896
-	$_lesauteurs = champ_sql('lesauteurs', $p, false);
897
-
898
-	// Si le champ n'existe pas (cas de spip_articles), on applique
899
-	// le modele lesauteurs.html en passant id_article dans le contexte;
900
-	// dans le cas contraire on prend le champ 'lesauteurs'
901
-	// (cf extension sites/)
902
-	if ($_lesauteurs
903
-		and $_lesauteurs != '@$Pile[0][\'lesauteurs\']'
904
-	) {
905
-		$p->code = "safehtml($_lesauteurs)";
906
-		// $p->interdire_scripts = true;
907
-	} else {
908
-		if (!$p->id_boucle) {
909
-			$connect = '';
910
-			$objet = 'article';
911
-			$id_table_objet = 'id_article';
912
-		} else {
913
-			$b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
914
-			$connect = $p->boucles[$b]->sql_serveur;
915
-			$type_boucle = $p->boucles[$b]->type_requete;
916
-			$objet = objet_type($type_boucle);
917
-			$id_table_objet = id_table_objet($type_boucle);
918
-		}
919
-		$c = memoriser_contexte_compil($p);
920
-
921
-		$p->code = sprintf(CODE_RECUPERER_FOND, "'modeles/lesauteurs'",
922
-			"array('objet'=>'" . $objet .
923
-			"','id_objet' => " . champ_sql($id_table_objet, $p) .
924
-			",'$id_table_objet' => " . champ_sql($id_table_objet, $p) .
925
-			($objet == 'article' ? "" : ",'id_article' => " . champ_sql('id_article', $p)) .
926
-			")",
927
-			"'trim'=>true, 'compil'=>array($c)",
928
-			_q($connect));
929
-		$p->interdire_scripts = false; // securite apposee par recuperer_fond()
930
-	}
931
-
932
-	return $p;
895
+    // Cherche le champ 'lesauteurs' dans la pile
896
+    $_lesauteurs = champ_sql('lesauteurs', $p, false);
897
+
898
+    // Si le champ n'existe pas (cas de spip_articles), on applique
899
+    // le modele lesauteurs.html en passant id_article dans le contexte;
900
+    // dans le cas contraire on prend le champ 'lesauteurs'
901
+    // (cf extension sites/)
902
+    if ($_lesauteurs
903
+        and $_lesauteurs != '@$Pile[0][\'lesauteurs\']'
904
+    ) {
905
+        $p->code = "safehtml($_lesauteurs)";
906
+        // $p->interdire_scripts = true;
907
+    } else {
908
+        if (!$p->id_boucle) {
909
+            $connect = '';
910
+            $objet = 'article';
911
+            $id_table_objet = 'id_article';
912
+        } else {
913
+            $b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
914
+            $connect = $p->boucles[$b]->sql_serveur;
915
+            $type_boucle = $p->boucles[$b]->type_requete;
916
+            $objet = objet_type($type_boucle);
917
+            $id_table_objet = id_table_objet($type_boucle);
918
+        }
919
+        $c = memoriser_contexte_compil($p);
920
+
921
+        $p->code = sprintf(CODE_RECUPERER_FOND, "'modeles/lesauteurs'",
922
+            "array('objet'=>'" . $objet .
923
+            "','id_objet' => " . champ_sql($id_table_objet, $p) .
924
+            ",'$id_table_objet' => " . champ_sql($id_table_objet, $p) .
925
+            ($objet == 'article' ? "" : ",'id_article' => " . champ_sql('id_article', $p)) .
926
+            ")",
927
+            "'trim'=>true, 'compil'=>array($c)",
928
+            _q($connect));
929
+        $p->interdire_scripts = false; // securite apposee par recuperer_fond()
930
+    }
931
+
932
+    return $p;
933 933
 }
934 934
 
935 935
 
@@ -956,62 +956,62 @@  discard block
 block discarded – undo
956 956
  *     Pile complétée par le code à générer
957 957
  */
958 958
 function balise_RANG_dist($p) {
959
-	$b = index_boucle($p);
960
-	if ($b === '') {
961
-		$msg = array(
962
-			'zbug_champ_hors_boucle',
963
-			array('champ' => '#RANG')
964
-		);
965
-		erreur_squelette($msg, $p);
966
-	} else {
967
-		// chercher d'abord un champ sql rang (mais pas dans le env : defaut '' si on trouve pas de champ sql)
968
-		// dans la boucle immediatement englobante uniquement
969
-		// sinon on compose le champ calcule
970
-		$_rang = champ_sql('rang', $p, '', false);
971
-
972
-		// si pas trouve de champ sql rang :
973
-		if (!$_rang or $_rang == "''") {
974
-			$boucle = &$p->boucles[$b];
975
-			$trouver_table = charger_fonction('trouver_table', 'base');
976
-			$desc = $trouver_table($boucle->id_table);
977
-			$_titre = ''; # où extraire le numero ?
959
+    $b = index_boucle($p);
960
+    if ($b === '') {
961
+        $msg = array(
962
+            'zbug_champ_hors_boucle',
963
+            array('champ' => '#RANG')
964
+        );
965
+        erreur_squelette($msg, $p);
966
+    } else {
967
+        // chercher d'abord un champ sql rang (mais pas dans le env : defaut '' si on trouve pas de champ sql)
968
+        // dans la boucle immediatement englobante uniquement
969
+        // sinon on compose le champ calcule
970
+        $_rang = champ_sql('rang', $p, '', false);
971
+
972
+        // si pas trouve de champ sql rang :
973
+        if (!$_rang or $_rang == "''") {
974
+            $boucle = &$p->boucles[$b];
975
+            $trouver_table = charger_fonction('trouver_table', 'base');
976
+            $desc = $trouver_table($boucle->id_table);
977
+            $_titre = ''; # où extraire le numero ?
978 978
 			
979
-			if (isset($desc['titre'])) {
980
-				$t = $desc['titre'];
981
-				if (
982
-					// Soit on trouve avec la déclaration de la lang AVANT
983
-					preg_match(';(?:lang\s*,)\s*(.*?titre)\s*(,|$);', $t, $m)
984
-					// Soit on prend depuis le début
985
-					or preg_match(';^(.*?titre)\s*(,|$);', $t, $m)
986
-				) {
987
-					$m = preg_replace(',as\s+titre$,i', '', $m[1]);
988
-					$m = trim($m);
989
-					if ($m != "''") {
990
-						if (!preg_match(",\W,", $m)) {
991
-							$m = $boucle->id_table . ".$m";
992
-						}
979
+            if (isset($desc['titre'])) {
980
+                $t = $desc['titre'];
981
+                if (
982
+                    // Soit on trouve avec la déclaration de la lang AVANT
983
+                    preg_match(';(?:lang\s*,)\s*(.*?titre)\s*(,|$);', $t, $m)
984
+                    // Soit on prend depuis le début
985
+                    or preg_match(';^(.*?titre)\s*(,|$);', $t, $m)
986
+                ) {
987
+                    $m = preg_replace(',as\s+titre$,i', '', $m[1]);
988
+                    $m = trim($m);
989
+                    if ($m != "''") {
990
+                        if (!preg_match(",\W,", $m)) {
991
+                            $m = $boucle->id_table . ".$m";
992
+                        }
993 993
 						
994
-						$m .= " AS titre_rang";
994
+                        $m .= " AS titre_rang";
995 995
 
996
-						$boucle->select[] = $m;
997
-						$_titre = '$Pile[$SP][\'titre_rang\']';
998
-					}
999
-				}
1000
-			}
996
+                        $boucle->select[] = $m;
997
+                        $_titre = '$Pile[$SP][\'titre_rang\']';
998
+                    }
999
+                }
1000
+            }
1001 1001
 			
1002
-			// si on n'a rien trouvé, on utilise le champ titre classique
1003
-			if (!$_titre) {
1004
-				$_titre = champ_sql('titre', $p);
1005
-			}
1002
+            // si on n'a rien trouvé, on utilise le champ titre classique
1003
+            if (!$_titre) {
1004
+                $_titre = champ_sql('titre', $p);
1005
+            }
1006 1006
 			
1007
-			$_rang = "recuperer_numero($_titre)";
1008
-		}
1007
+            $_rang = "recuperer_numero($_titre)";
1008
+        }
1009 1009
 		
1010
-		$p->code = $_rang;
1011
-		$p->interdire_scripts = false;
1012
-	}
1010
+        $p->code = $_rang;
1011
+        $p->interdire_scripts = false;
1012
+    }
1013 1013
 	
1014
-	return $p;
1014
+    return $p;
1015 1015
 }
1016 1016
 
1017 1017
 
@@ -1033,12 +1033,12 @@  discard block
 block discarded – undo
1033 1033
  *     Pile complétée par le code à générer
1034 1034
  **/
1035 1035
 function balise_POPULARITE_dist($p) {
1036
-	$_popularite = champ_sql('popularite', $p);
1037
-	$p->code = "(ceil(min(100, 100 * $_popularite
1036
+    $_popularite = champ_sql('popularite', $p);
1037
+    $p->code = "(ceil(min(100, 100 * $_popularite
1038 1038
 	/ max(1 , 0 + \$GLOBALS['meta']['popularite_max']))))";
1039
-	$p->interdire_scripts = false;
1039
+    $p->interdire_scripts = false;
1040 1040
 
1041
-	return $p;
1041
+    return $p;
1042 1042
 }
1043 1043
 
1044 1044
 /**
@@ -1085,65 +1085,65 @@  discard block
 block discarded – undo
1085 1085
  *     Pile complétée par le code à générer
1086 1086
  */
1087 1087
 function balise_PAGINATION_dist($p, $liste = 'true') {
1088
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
1089
-
1090
-	// s'il n'y a pas de nom de boucle, on ne peut pas paginer
1091
-	if ($b === '') {
1092
-		$msg = array(
1093
-			'zbug_champ_hors_boucle',
1094
-			array('champ' => $liste ? 'PAGINATION' : 'ANCRE_PAGINATION')
1095
-		);
1096
-		erreur_squelette($msg, $p);
1097
-
1098
-		return $p;
1099
-	}
1100
-
1101
-	// s'il n'y a pas de mode_partie, c'est qu'on se trouve
1102
-	// dans un boucle recursive ou qu'on a oublie le critere {pagination}
1103
-	if (!$p->boucles[$b]->mode_partie) {
1104
-		if (!$p->boucles[$b]->table_optionnelle) {
1105
-			$msg = array(
1106
-				'zbug_pagination_sans_critere',
1107
-				array('champ' => '#PAGINATION')
1108
-			);
1109
-			erreur_squelette($msg, $p);
1110
-		}
1111
-
1112
-		return $p;
1113
-	}
1114
-
1115
-	// a priori true
1116
-	// si false, le compilo va bloquer sur des syntaxes avec un filtre sans argument qui suit la balise
1117
-	// si true, les arguments simples (sans truc=chose) vont degager
1118
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false, false);
1119
-	if (count($_contexte)) {
1120
-		$key = key($_contexte);
1121
-		if (is_numeric($key)) {
1122
-			array_shift($_contexte);
1123
-			$__modele = interprete_argument_balise(1, $p);
1124
-		}
1125
-	}
1126
-
1127
-	if (count($_contexte)) {
1128
-		$code_contexte = implode(',', $_contexte);
1129
-	} else {
1130
-		$code_contexte = '';
1131
-	}
1132
-
1133
-	$connect = $p->boucles[$b]->sql_serveur;
1134
-	$pas = $p->boucles[$b]->total_parties;
1135
-	$f_pagination = chercher_filtre('pagination');
1136
-	$type = $p->boucles[$b]->modificateur['debut_nom'];
1137
-	$modif = ($type[0] !== "'") ? "'debut'.$type"
1138
-		: ("'debut" . substr($type, 1));
1139
-
1140
-	$p->code = sprintf(CODE_PAGINATION, $f_pagination, $b, $type, $modif, $pas, $liste,
1141
-		((isset($__modele) and $__modele) ? $__modele : "''"), _q($connect), $code_contexte);
1142
-
1143
-	$p->boucles[$b]->numrows = true;
1144
-	$p->interdire_scripts = false;
1145
-
1146
-	return $p;
1088
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
1089
+
1090
+    // s'il n'y a pas de nom de boucle, on ne peut pas paginer
1091
+    if ($b === '') {
1092
+        $msg = array(
1093
+            'zbug_champ_hors_boucle',
1094
+            array('champ' => $liste ? 'PAGINATION' : 'ANCRE_PAGINATION')
1095
+        );
1096
+        erreur_squelette($msg, $p);
1097
+
1098
+        return $p;
1099
+    }
1100
+
1101
+    // s'il n'y a pas de mode_partie, c'est qu'on se trouve
1102
+    // dans un boucle recursive ou qu'on a oublie le critere {pagination}
1103
+    if (!$p->boucles[$b]->mode_partie) {
1104
+        if (!$p->boucles[$b]->table_optionnelle) {
1105
+            $msg = array(
1106
+                'zbug_pagination_sans_critere',
1107
+                array('champ' => '#PAGINATION')
1108
+            );
1109
+            erreur_squelette($msg, $p);
1110
+        }
1111
+
1112
+        return $p;
1113
+    }
1114
+
1115
+    // a priori true
1116
+    // si false, le compilo va bloquer sur des syntaxes avec un filtre sans argument qui suit la balise
1117
+    // si true, les arguments simples (sans truc=chose) vont degager
1118
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false, false);
1119
+    if (count($_contexte)) {
1120
+        $key = key($_contexte);
1121
+        if (is_numeric($key)) {
1122
+            array_shift($_contexte);
1123
+            $__modele = interprete_argument_balise(1, $p);
1124
+        }
1125
+    }
1126
+
1127
+    if (count($_contexte)) {
1128
+        $code_contexte = implode(',', $_contexte);
1129
+    } else {
1130
+        $code_contexte = '';
1131
+    }
1132
+
1133
+    $connect = $p->boucles[$b]->sql_serveur;
1134
+    $pas = $p->boucles[$b]->total_parties;
1135
+    $f_pagination = chercher_filtre('pagination');
1136
+    $type = $p->boucles[$b]->modificateur['debut_nom'];
1137
+    $modif = ($type[0] !== "'") ? "'debut'.$type"
1138
+        : ("'debut" . substr($type, 1));
1139
+
1140
+    $p->code = sprintf(CODE_PAGINATION, $f_pagination, $b, $type, $modif, $pas, $liste,
1141
+        ((isset($__modele) and $__modele) ? $__modele : "''"), _q($connect), $code_contexte);
1142
+
1143
+    $p->boucles[$b]->numrows = true;
1144
+    $p->interdire_scripts = false;
1145
+
1146
+    return $p;
1147 1147
 }
1148 1148
 
1149 1149
 
@@ -1170,11 +1170,11 @@  discard block
 block discarded – undo
1170 1170
  *     Pile complétée par le code à générer
1171 1171
  **/
1172 1172
 function balise_ANCRE_PAGINATION_dist($p) {
1173
-	if ($f = charger_fonction('PAGINATION', 'balise', true)) {
1174
-		return $f($p, $liste = 'false');
1175
-	} else {
1176
-		return null;
1177
-	} // ou une erreur ?
1173
+    if ($f = charger_fonction('PAGINATION', 'balise', true)) {
1174
+        return $f($p, $liste = 'false');
1175
+    } else {
1176
+        return null;
1177
+    } // ou une erreur ?
1178 1178
 }
1179 1179
 
1180 1180
 
@@ -1195,21 +1195,21 @@  discard block
 block discarded – undo
1195 1195
  *     Pile complétée par le code à générer
1196 1196
  **/
1197 1197
 function balise_GRAND_TOTAL_dist($p) {
1198
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
1199
-	if ($b === '' || !isset($p->boucles[$b])) {
1200
-		$msg = array(
1201
-			'zbug_champ_hors_boucle',
1202
-			array('champ' => "#$b" . 'TOTAL_BOUCLE')
1203
-		);
1204
-		erreur_squelette($msg, $p);
1205
-	} else {
1206
-		$p->code = "(isset(\$Numrows['$b']['grand_total'])
1198
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
1199
+    if ($b === '' || !isset($p->boucles[$b])) {
1200
+        $msg = array(
1201
+            'zbug_champ_hors_boucle',
1202
+            array('champ' => "#$b" . 'TOTAL_BOUCLE')
1203
+        );
1204
+        erreur_squelette($msg, $p);
1205
+    } else {
1206
+        $p->code = "(isset(\$Numrows['$b']['grand_total'])
1207 1207
 			? \$Numrows['$b']['grand_total'] : \$Numrows['$b']['total'])";
1208
-		$p->boucles[$b]->numrows = true;
1209
-		$p->interdire_scripts = false;
1210
-	}
1208
+        $p->boucles[$b]->numrows = true;
1209
+        $p->interdire_scripts = false;
1210
+    }
1211 1211
 
1212
-	return $p;
1212
+    return $p;
1213 1213
 }
1214 1214
 
1215 1215
 
@@ -1237,10 +1237,10 @@  discard block
 block discarded – undo
1237 1237
  *     Pile complétée par le code à générer
1238 1238
  **/
1239 1239
 function balise_SELF_dist($p) {
1240
-	$p->code = 'self()';
1241
-	$p->interdire_scripts = false;
1240
+    $p->code = 'self()';
1241
+    $p->interdire_scripts = false;
1242 1242
 
1243
-	return $p;
1243
+    return $p;
1244 1244
 }
1245 1245
 
1246 1246
 
@@ -1267,17 +1267,17 @@  discard block
 block discarded – undo
1267 1267
  *     Pile complétée par le code à générer
1268 1268
  **/
1269 1269
 function balise_CHEMIN_dist($p) {
1270
-	$arg = interprete_argument_balise(1, $p);
1271
-	if (!$arg) {
1272
-		$msg = array('zbug_balise_sans_argument', array('balise' => ' CHEMIN'));
1273
-		erreur_squelette($msg, $p);
1274
-	} else {
1275
-		$p->code = 'find_in_path(' . $arg . ')';
1276
-	}
1270
+    $arg = interprete_argument_balise(1, $p);
1271
+    if (!$arg) {
1272
+        $msg = array('zbug_balise_sans_argument', array('balise' => ' CHEMIN'));
1273
+        erreur_squelette($msg, $p);
1274
+    } else {
1275
+        $p->code = 'find_in_path(' . $arg . ')';
1276
+    }
1277 1277
 
1278
-	$p->interdire_scripts = false;
1278
+    $p->interdire_scripts = false;
1279 1279
 
1280
-	return $p;
1280
+    return $p;
1281 1281
 }
1282 1282
 
1283 1283
 /**
@@ -1302,16 +1302,16 @@  discard block
 block discarded – undo
1302 1302
  *     Pile complétée par le code à générer
1303 1303
  **/
1304 1304
 function balise_CHEMIN_IMAGE_dist($p) {
1305
-	$arg = interprete_argument_balise(1, $p);
1306
-	if (!$arg) {
1307
-		$msg = array('zbug_balise_sans_argument', array('balise' => ' CHEMIN_IMAGE'));
1308
-		erreur_squelette($msg, $p);
1309
-	} else {
1310
-		$p->code = 'chemin_image(' . $arg . ')';
1311
-	}
1305
+    $arg = interprete_argument_balise(1, $p);
1306
+    if (!$arg) {
1307
+        $msg = array('zbug_balise_sans_argument', array('balise' => ' CHEMIN_IMAGE'));
1308
+        erreur_squelette($msg, $p);
1309
+    } else {
1310
+        $p->code = 'chemin_image(' . $arg . ')';
1311
+    }
1312 1312
 
1313
-	#$p->interdire_scripts = true;
1314
-	return $p;
1313
+    #$p->interdire_scripts = true;
1314
+    return $p;
1315 1315
 }
1316 1316
 
1317 1317
 
@@ -1349,36 +1349,36 @@  discard block
 block discarded – undo
1349 1349
  **/
1350 1350
 function balise_ENV_dist($p, $src = null) {
1351 1351
 
1352
-	// cle du tableau desiree
1353
-	$_nom = interprete_argument_balise(1, $p);
1354
-	// valeur par defaut
1355
-	$_sinon = interprete_argument_balise(2, $p);
1352
+    // cle du tableau desiree
1353
+    $_nom = interprete_argument_balise(1, $p);
1354
+    // valeur par defaut
1355
+    $_sinon = interprete_argument_balise(2, $p);
1356 1356
 
1357
-	// $src est un tableau de donnees sources eventuellement transmis
1358
-	// en absence, on utilise l'environnement du squelette $Pile[0]
1357
+    // $src est un tableau de donnees sources eventuellement transmis
1358
+    // en absence, on utilise l'environnement du squelette $Pile[0]
1359 1359
 
1360
-	if (!$_nom) {
1361
-		// cas de #ENV sans argument : on retourne le serialize() du tableau
1362
-		// une belle fonction [(#ENV|affiche_env)] serait pratique
1363
-		if ($src) {
1364
-			$p->code = '(is_array($a = (' . $src . ')) ? serialize($a) : "")';
1365
-		} else {
1366
-			$p->code = '@serialize($Pile[0])';
1367
-		}
1368
-	} else {
1369
-		if (!$src) {
1370
-			$src = '@$Pile[0]';
1371
-		}
1372
-		if ($_sinon) {
1373
-			$p->code = "sinon(table_valeur($src, (string)$_nom, null), $_sinon)";
1374
-		} else {
1375
-			$p->code = "table_valeur($src, (string)$_nom, null)";
1376
-		}
1377
-	}
1360
+    if (!$_nom) {
1361
+        // cas de #ENV sans argument : on retourne le serialize() du tableau
1362
+        // une belle fonction [(#ENV|affiche_env)] serait pratique
1363
+        if ($src) {
1364
+            $p->code = '(is_array($a = (' . $src . ')) ? serialize($a) : "")';
1365
+        } else {
1366
+            $p->code = '@serialize($Pile[0])';
1367
+        }
1368
+    } else {
1369
+        if (!$src) {
1370
+            $src = '@$Pile[0]';
1371
+        }
1372
+        if ($_sinon) {
1373
+            $p->code = "sinon(table_valeur($src, (string)$_nom, null), $_sinon)";
1374
+        } else {
1375
+            $p->code = "table_valeur($src, (string)$_nom, null)";
1376
+        }
1377
+    }
1378 1378
 
1379
-	#$p->interdire_scripts = true;
1379
+    #$p->interdire_scripts = true;
1380 1380
 
1381
-	return $p;
1381
+    return $p;
1382 1382
 }
1383 1383
 
1384 1384
 /**
@@ -1408,16 +1408,16 @@  discard block
 block discarded – undo
1408 1408
  *     Pile completée du code PHP d'exécution de la balise
1409 1409
  */
1410 1410
 function balise_CONFIG_dist($p) {
1411
-	if (!$arg = interprete_argument_balise(1, $p)) {
1412
-		$arg = "''";
1413
-	}
1414
-	$_sinon = interprete_argument_balise(2, $p);
1415
-	$_unserialize = sinon(interprete_argument_balise(3, $p), "false");
1411
+    if (!$arg = interprete_argument_balise(1, $p)) {
1412
+        $arg = "''";
1413
+    }
1414
+    $_sinon = interprete_argument_balise(2, $p);
1415
+    $_unserialize = sinon(interprete_argument_balise(3, $p), "false");
1416 1416
 
1417
-	$p->code = '(include_spip(\'inc/config\')?lire_config(' . $arg . ',' .
1418
-		($_sinon && $_sinon != "''" ? $_sinon : 'null') . ',' . $_unserialize . "):'')";
1417
+    $p->code = '(include_spip(\'inc/config\')?lire_config(' . $arg . ',' .
1418
+        ($_sinon && $_sinon != "''" ? $_sinon : 'null') . ',' . $_unserialize . "):'')";
1419 1419
 
1420
-	return $p;
1420
+    return $p;
1421 1421
 }
1422 1422
 
1423 1423
 
@@ -1440,10 +1440,10 @@  discard block
 block discarded – undo
1440 1440
  *     Pile completée du code PHP d'exécution de la balise
1441 1441
  */
1442 1442
 function balise_CONNECT_dist($p) {
1443
-	$p->code = '($connect ? $connect : NULL)';
1444
-	$p->interdire_scripts = false;
1443
+    $p->code = '($connect ? $connect : NULL)';
1444
+    $p->interdire_scripts = false;
1445 1445
 
1446
-	return $p;
1446
+    return $p;
1447 1447
 }
1448 1448
 
1449 1449
 
@@ -1471,15 +1471,15 @@  discard block
 block discarded – undo
1471 1471
  *     Pile completée du code PHP d'exécution de la balise
1472 1472
  **/
1473 1473
 function balise_SESSION_dist($p) {
1474
-	$p->descr['session'] = true;
1474
+    $p->descr['session'] = true;
1475 1475
 
1476
-	$f = function_exists('balise_ENV')
1477
-		? 'balise_ENV'
1478
-		: 'balise_ENV_dist';
1476
+    $f = function_exists('balise_ENV')
1477
+        ? 'balise_ENV'
1478
+        : 'balise_ENV_dist';
1479 1479
 
1480
-	$p = $f($p, '$GLOBALS["visiteur_session"]');
1480
+    $p = $f($p, '$GLOBALS["visiteur_session"]');
1481 1481
 
1482
-	return $p;
1482
+    return $p;
1483 1483
 }
1484 1484
 
1485 1485
 
@@ -1502,18 +1502,18 @@  discard block
 block discarded – undo
1502 1502
  *     Pile completée du code PHP d'exécution de la balise
1503 1503
  **/
1504 1504
 function balise_SESSION_SET_dist($p) {
1505
-	$_nom = interprete_argument_balise(1, $p);
1506
-	$_val = interprete_argument_balise(2, $p);
1507
-	if (!$_nom or !$_val) {
1508
-		$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'SESSION_SET'));
1509
-		erreur_squelette($err_b_s_a, $p);
1510
-	} else {
1511
-		$p->code = '(include_spip("inc/session") AND session_set(' . $_nom . ',' . $_val . '))';
1512
-	}
1505
+    $_nom = interprete_argument_balise(1, $p);
1506
+    $_val = interprete_argument_balise(2, $p);
1507
+    if (!$_nom or !$_val) {
1508
+        $err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'SESSION_SET'));
1509
+        erreur_squelette($err_b_s_a, $p);
1510
+    } else {
1511
+        $p->code = '(include_spip("inc/session") AND session_set(' . $_nom . ',' . $_val . '))';
1512
+    }
1513 1513
 
1514
-	$p->interdire_scripts = false;
1514
+    $p->interdire_scripts = false;
1515 1515
 
1516
-	return $p;
1516
+    return $p;
1517 1517
 }
1518 1518
 
1519 1519
 
@@ -1544,25 +1544,25 @@  discard block
 block discarded – undo
1544 1544
  *     Pile completée du code PHP d'exécution de la balise
1545 1545
  **/
1546 1546
 function balise_EVAL_dist($p) {
1547
-	$php = interprete_argument_balise(1, $p);
1548
-	if ($php) {
1549
-		# optimisation sur les #EVAL{une expression sans #BALISE}
1550
-		# attention au commentaire "// x signes" qui precede
1551
-		if (preg_match(",^([[:space:]]*//[^\n]*\n)'([^']+)'$,ms",
1552
-			$php, $r)) {
1553
-			$p->code = /* $r[1]. */
1554
-				'(' . $r[2] . ')';
1555
-		} else {
1556
-			$p->code = "eval('return '.$php.';')";
1557
-		}
1558
-	} else {
1559
-		$msg = array('zbug_balise_sans_argument', array('balise' => ' EVAL'));
1560
-		erreur_squelette($msg, $p);
1561
-	}
1547
+    $php = interprete_argument_balise(1, $p);
1548
+    if ($php) {
1549
+        # optimisation sur les #EVAL{une expression sans #BALISE}
1550
+        # attention au commentaire "// x signes" qui precede
1551
+        if (preg_match(",^([[:space:]]*//[^\n]*\n)'([^']+)'$,ms",
1552
+            $php, $r)) {
1553
+            $p->code = /* $r[1]. */
1554
+                '(' . $r[2] . ')';
1555
+        } else {
1556
+            $p->code = "eval('return '.$php.';')";
1557
+        }
1558
+    } else {
1559
+        $msg = array('zbug_balise_sans_argument', array('balise' => ' EVAL'));
1560
+        erreur_squelette($msg, $p);
1561
+    }
1562 1562
 
1563
-	#$p->interdire_scripts = true;
1563
+    #$p->interdire_scripts = true;
1564 1564
 
1565
-	return $p;
1565
+    return $p;
1566 1566
 }
1567 1567
 
1568 1568
 
@@ -1592,18 +1592,18 @@  discard block
 block discarded – undo
1592 1592
  **/
1593 1593
 function balise_CHAMP_SQL_dist($p) {
1594 1594
 
1595
-	if ($p->param
1596
-		and isset($p->param[0][1][0])
1597
-		and $champ = ($p->param[0][1][0]->texte)
1598
-	) {
1599
-		$p->code = champ_sql($champ, $p);
1600
-	} else {
1601
-		$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => ' CHAMP_SQL'));
1602
-		erreur_squelette($err_b_s_a, $p);
1603
-	}
1595
+    if ($p->param
1596
+        and isset($p->param[0][1][0])
1597
+        and $champ = ($p->param[0][1][0]->texte)
1598
+    ) {
1599
+        $p->code = champ_sql($champ, $p);
1600
+    } else {
1601
+        $err_b_s_a = array('zbug_balise_sans_argument', array('balise' => ' CHAMP_SQL'));
1602
+        erreur_squelette($err_b_s_a, $p);
1603
+    }
1604 1604
 
1605
-	#$p->interdire_scripts = true;
1606
-	return $p;
1605
+    #$p->interdire_scripts = true;
1606
+    return $p;
1607 1607
 }
1608 1608
 
1609 1609
 /**
@@ -1629,13 +1629,13 @@  discard block
 block discarded – undo
1629 1629
  *     Pile complétée par le code à générer
1630 1630
  **/
1631 1631
 function balise_VAL_dist($p) {
1632
-	$p->code = interprete_argument_balise(1, $p);
1633
-	if (!strlen($p->code)) {
1634
-		$p->code = "''";
1635
-	}
1636
-	$p->interdire_scripts = false;
1632
+    $p->code = interprete_argument_balise(1, $p);
1633
+    if (!strlen($p->code)) {
1634
+        $p->code = "''";
1635
+    }
1636
+    $p->interdire_scripts = false;
1637 1637
 
1638
-	return $p;
1638
+    return $p;
1639 1639
 }
1640 1640
 
1641 1641
 /**
@@ -1681,10 +1681,10 @@  discard block
 block discarded – undo
1681 1681
  *     Pile complétée par le code à générer
1682 1682
  **/
1683 1683
 function balise_REM_dist($p) {
1684
-	$p->code = "''";
1685
-	$p->interdire_scripts = false;
1684
+    $p->code = "''";
1685
+    $p->interdire_scripts = false;
1686 1686
 
1687
-	return $p;
1687
+    return $p;
1688 1688
 }
1689 1689
 
1690 1690
 
@@ -1708,18 +1708,18 @@  discard block
 block discarded – undo
1708 1708
  **/
1709 1709
 function balise_HTTP_HEADER_dist($p) {
1710 1710
 
1711
-	$header = interprete_argument_balise(1, $p);
1712
-	if (!$header) {
1713
-		$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'HTTP_HEADER'));
1714
-		erreur_squelette($err_b_s_a, $p);
1715
-	} else {
1716
-		$p->code = "'<'.'?php header(' . _q("
1717
-			. $header
1718
-			. ") . '); ?'.'>'";
1719
-	}
1720
-	$p->interdire_scripts = false;
1711
+    $header = interprete_argument_balise(1, $p);
1712
+    if (!$header) {
1713
+        $err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'HTTP_HEADER'));
1714
+        erreur_squelette($err_b_s_a, $p);
1715
+    } else {
1716
+        $p->code = "'<'.'?php header(' . _q("
1717
+            . $header
1718
+            . ") . '); ?'.'>'";
1719
+    }
1720
+    $p->interdire_scripts = false;
1721 1721
 
1722
-	return $p;
1722
+    return $p;
1723 1723
 }
1724 1724
 
1725 1725
 
@@ -1744,20 +1744,20 @@  discard block
 block discarded – undo
1744 1744
  *     Pile complétée par le code à générer
1745 1745
  **/
1746 1746
 function balise_FILTRE_dist($p) {
1747
-	if ($p->param) {
1748
-		$args = array();
1749
-		foreach ($p->param as $i => $ignore) {
1750
-			$args[] = interprete_argument_balise($i + 1, $p);
1751
-		}
1752
-		$p->code = "'<' . '"
1753
-			. '?php header("X-Spip-Filtre: \'.'
1754
-			. join('.\'|\'.', $args)
1755
-			. " . '\"); ?'.'>'";
1747
+    if ($p->param) {
1748
+        $args = array();
1749
+        foreach ($p->param as $i => $ignore) {
1750
+            $args[] = interprete_argument_balise($i + 1, $p);
1751
+        }
1752
+        $p->code = "'<' . '"
1753
+            . '?php header("X-Spip-Filtre: \'.'
1754
+            . join('.\'|\'.', $args)
1755
+            . " . '\"); ?'.'>'";
1756 1756
 
1757
-		$p->interdire_scripts = false;
1757
+        $p->interdire_scripts = false;
1758 1758
 
1759
-		return $p;
1760
-	}
1759
+        return $p;
1760
+    }
1761 1761
 }
1762 1762
 
1763 1763
 
@@ -1793,53 +1793,53 @@  discard block
 block discarded – undo
1793 1793
  **/
1794 1794
 function balise_CACHE_dist($p) {
1795 1795
 
1796
-	if ($p->param) {
1797
-		$duree = valeur_numerique($p->param[0][1][0]->texte);
1798
-
1799
-		// noter la duree du cache dans un entete proprietaire
1800
-
1801
-		$code = "'<'.'" . '?php header("X-Spip-Cache: '
1802
-			. $duree
1803
-			. '"); ?' . "'.'>'";
1804
-
1805
-		// Remplir le header Cache-Control
1806
-		// cas #CACHE{0}
1807
-		if ($duree == 0) {
1808
-			$code .= ".'<'.'"
1809
-				. '?php header("Cache-Control: no-cache, must-revalidate"); ?'
1810
-				. "'.'><'.'"
1811
-				. '?php header("Pragma: no-cache"); ?'
1812
-				. "'.'>'";
1813
-		}
1814
-
1815
-		// recuperer les parametres suivants
1816
-		$i = 1;
1817
-		while (isset($p->param[0][++$i])) {
1818
-			$pa = ($p->param[0][$i][0]->texte);
1819
-
1820
-			if ($pa == 'cache-client'
1821
-				and $duree > 0
1822
-			) {
1823
-				$code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1824
-					. $duree
1825
-					. '"); ?' . "'.'>'";
1826
-				// il semble logique, si on cache-client, de ne pas invalider
1827
-				$pa = 'statique';
1828
-			}
1829
-
1830
-			if ($pa == 'statique'
1831
-				and $duree > 0
1832
-			) {
1833
-				$code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1834
-			}
1835
-		}
1836
-	} else {
1837
-		$code = "''";
1838
-	}
1839
-	$p->code = $code;
1840
-	$p->interdire_scripts = false;
1841
-
1842
-	return $p;
1796
+    if ($p->param) {
1797
+        $duree = valeur_numerique($p->param[0][1][0]->texte);
1798
+
1799
+        // noter la duree du cache dans un entete proprietaire
1800
+
1801
+        $code = "'<'.'" . '?php header("X-Spip-Cache: '
1802
+            . $duree
1803
+            . '"); ?' . "'.'>'";
1804
+
1805
+        // Remplir le header Cache-Control
1806
+        // cas #CACHE{0}
1807
+        if ($duree == 0) {
1808
+            $code .= ".'<'.'"
1809
+                . '?php header("Cache-Control: no-cache, must-revalidate"); ?'
1810
+                . "'.'><'.'"
1811
+                . '?php header("Pragma: no-cache"); ?'
1812
+                . "'.'>'";
1813
+        }
1814
+
1815
+        // recuperer les parametres suivants
1816
+        $i = 1;
1817
+        while (isset($p->param[0][++$i])) {
1818
+            $pa = ($p->param[0][$i][0]->texte);
1819
+
1820
+            if ($pa == 'cache-client'
1821
+                and $duree > 0
1822
+            ) {
1823
+                $code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1824
+                    . $duree
1825
+                    . '"); ?' . "'.'>'";
1826
+                // il semble logique, si on cache-client, de ne pas invalider
1827
+                $pa = 'statique';
1828
+            }
1829
+
1830
+            if ($pa == 'statique'
1831
+                and $duree > 0
1832
+            ) {
1833
+                $code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1834
+            }
1835
+        }
1836
+    } else {
1837
+        $code = "''";
1838
+    }
1839
+    $p->code = $code;
1840
+    $p->interdire_scripts = false;
1841
+
1842
+    return $p;
1843 1843
 }
1844 1844
 
1845 1845
 
@@ -1871,13 +1871,13 @@  discard block
 block discarded – undo
1871 1871
  *     Pile complétée par le code à générer
1872 1872
  */
1873 1873
 function balise_INSERT_HEAD_dist($p) {
1874
-	$p->code = "'<'.'"
1875
-		. '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?'
1876
-		. "'.'>'";
1877
-	$p->code .= ". pipeline('insert_head','<!-- insert_head -->')";
1878
-	$p->interdire_scripts = false;
1874
+    $p->code = "'<'.'"
1875
+        . '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?'
1876
+        . "'.'>'";
1877
+    $p->code .= ". pipeline('insert_head','<!-- insert_head -->')";
1878
+    $p->interdire_scripts = false;
1879 1879
 
1880
-	return $p;
1880
+    return $p;
1881 1881
 }
1882 1882
 
1883 1883
 /**
@@ -1895,10 +1895,10 @@  discard block
 block discarded – undo
1895 1895
  *     Pile complétée par le code à générer
1896 1896
  */
1897 1897
 function balise_INSERT_HEAD_CSS_dist($p) {
1898
-	$p->code = "pipeline('insert_head_css','<!-- insert_head_css -->')";
1899
-	$p->interdire_scripts = false;
1898
+    $p->code = "pipeline('insert_head_css','<!-- insert_head_css -->')";
1899
+    $p->interdire_scripts = false;
1900 1900
 
1901
-	return $p;
1901
+    return $p;
1902 1902
 }
1903 1903
 
1904 1904
 /**
@@ -1913,11 +1913,11 @@  discard block
 block discarded – undo
1913 1913
  *     Pile complétée par le code à générer
1914 1914
  **/
1915 1915
 function balise_INCLUDE_dist($p) {
1916
-	if (function_exists('balise_INCLURE')) {
1917
-		return balise_INCLURE($p);
1918
-	} else {
1919
-		return balise_INCLURE_dist($p);
1920
-	}
1916
+    if (function_exists('balise_INCLURE')) {
1917
+        return balise_INCLURE($p);
1918
+    } else {
1919
+        return balise_INCLURE_dist($p);
1920
+    }
1921 1921
 }
1922 1922
 
1923 1923
 /**
@@ -1951,72 +1951,72 @@  discard block
 block discarded – undo
1951 1951
  *     Pile complétée par le code à générer
1952 1952
  **/
1953 1953
 function balise_INCLURE_dist($p) {
1954
-	$id_boucle = $p->id_boucle;
1955
-	// la lang n'est pas passe de facon automatique par argumenter
1956
-	// mais le sera pas recuperer_fond, sauf si etoile=>true est passe
1957
-	// en option
1954
+    $id_boucle = $p->id_boucle;
1955
+    // la lang n'est pas passe de facon automatique par argumenter
1956
+    // mais le sera pas recuperer_fond, sauf si etoile=>true est passe
1957
+    // en option
1958 1958
 
1959
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $id_boucle, false, false);
1959
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $id_boucle, false, false);
1960 1960
 
1961
-	// erreur de syntaxe = fond absent
1962
-	// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
1963
-	if (!$_contexte) {
1964
-		$contexte = array();
1965
-	}
1961
+    // erreur de syntaxe = fond absent
1962
+    // (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
1963
+    if (!$_contexte) {
1964
+        $contexte = array();
1965
+    }
1966 1966
 
1967
-	if (isset($_contexte['fond'])) {
1967
+    if (isset($_contexte['fond'])) {
1968 1968
 
1969
-		$f = $_contexte['fond'];
1970
-		// toujours vrai :
1971
-		if (preg_match('/^.fond.\s*=>(.*)$/s', $f, $r)) {
1972
-			$f = $r[1];
1973
-			unset($_contexte['fond']);
1974
-		} else {
1975
-			spip_log("compilation de #INCLURE a revoir");
1976
-		}
1969
+        $f = $_contexte['fond'];
1970
+        // toujours vrai :
1971
+        if (preg_match('/^.fond.\s*=>(.*)$/s', $f, $r)) {
1972
+            $f = $r[1];
1973
+            unset($_contexte['fond']);
1974
+        } else {
1975
+            spip_log("compilation de #INCLURE a revoir");
1976
+        }
1977 1977
 
1978
-		// #INCLURE{doublons}
1979
-		if (isset($_contexte['doublons'])) {
1980
-			$_contexte['doublons'] = "'doublons' => \$doublons";
1981
-		}
1978
+        // #INCLURE{doublons}
1979
+        if (isset($_contexte['doublons'])) {
1980
+            $_contexte['doublons'] = "'doublons' => \$doublons";
1981
+        }
1982 1982
 
1983
-		// Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
1984
-		$flag_env = false;
1985
-		if (isset($_contexte['env']) or isset($_contexte['self'])) {
1986
-			$flag_env = true;
1987
-			unset($_contexte['env']);
1988
-		}
1983
+        // Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
1984
+        $flag_env = false;
1985
+        if (isset($_contexte['env']) or isset($_contexte['self'])) {
1986
+            $flag_env = true;
1987
+            unset($_contexte['env']);
1988
+        }
1989 1989
 
1990
-		$_options = array();
1990
+        $_options = array();
1991 1991
 
1992
-		// Fix #4235 : sessionner le contexte appelant si cette inclusion statique est sessionnée
1993
-		$_options[] = "'sessionnement_contaminant'=>true";
1992
+        // Fix #4235 : sessionner le contexte appelant si cette inclusion statique est sessionnée
1993
+        $_options[] = "'sessionnement_contaminant'=>true";
1994 1994
 
1995
-		if (isset($_contexte['ajax'])) {
1996
-			$_options[] = preg_replace(",=>(.*)$,ims", '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
1997
-			unset($_contexte['ajax']);
1998
-		}
1999
-		if ($p->etoile) {
2000
-			$_options[] = "'etoile'=>true";
2001
-		}
2002
-		$_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ")";
1995
+        if (isset($_contexte['ajax'])) {
1996
+            $_options[] = preg_replace(",=>(.*)$,ims", '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
1997
+            unset($_contexte['ajax']);
1998
+        }
1999
+        if ($p->etoile) {
2000
+            $_options[] = "'etoile'=>true";
2001
+        }
2002
+        $_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ")";
2003 2003
 
2004
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2005
-		if ($flag_env) {
2006
-			$_l = "array_merge(\$Pile[0],$_l)";
2007
-		}
2004
+        $_l = 'array(' . join(",\n\t", $_contexte) . ')';
2005
+        if ($flag_env) {
2006
+            $_l = "array_merge(\$Pile[0],$_l)";
2007
+        }
2008 2008
 
2009
-		$p->code = sprintf(CODE_RECUPERER_FOND, $f, $_l, join(',', $_options), "_request('connect')");
2009
+        $p->code = sprintf(CODE_RECUPERER_FOND, $f, $_l, join(',', $_options), "_request('connect')");
2010 2010
 
2011
-	} elseif (!isset($_contexte[1])) {
2012
-		$msg = array('zbug_balise_sans_argument', array('balise' => ' INCLURE'));
2013
-		erreur_squelette($msg, $p);
2014
-	} else {
2015
-		$p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2016
-	}
2011
+    } elseif (!isset($_contexte[1])) {
2012
+        $msg = array('zbug_balise_sans_argument', array('balise' => ' INCLURE'));
2013
+        erreur_squelette($msg, $p);
2014
+    } else {
2015
+        $p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2016
+    }
2017 2017
 
2018
-	$p->interdire_scripts = false; // la securite est assuree par recuperer_fond
2019
-	return $p;
2018
+    $p->interdire_scripts = false; // la securite est assuree par recuperer_fond
2019
+    return $p;
2020 2020
 }
2021 2021
 
2022 2022
 
@@ -2044,71 +2044,71 @@  discard block
 block discarded – undo
2044 2044
  **/
2045 2045
 function balise_MODELE_dist($p) {
2046 2046
 
2047
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
2048
-
2049
-	// erreur de syntaxe = fond absent
2050
-	// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
2051
-	if (!$_contexte) {
2052
-		$_contexte = array();
2053
-	}
2054
-
2055
-	if (!isset($_contexte[1])) {
2056
-		$msg = array('zbug_balise_sans_argument', array('balise' => ' MODELE'));
2057
-		erreur_squelette($msg, $p);
2058
-	} else {
2059
-		$nom = $_contexte[1];
2060
-		unset($_contexte[1]);
2061
-
2062
-		if (preg_match("/^\s*'[^']*'/s", $nom)) {
2063
-			$nom = "'modeles/" . substr($nom, 1);
2064
-		} else {
2065
-			$nom = "'modeles/' . $nom";
2066
-		}
2067
-
2068
-		$flag_env = false;
2069
-		if (isset($_contexte['env'])) {
2070
-			$flag_env = true;
2071
-			unset($_contexte['env']);
2072
-		}
2073
-
2074
-		// Incoherence dans la syntaxe du contexte. A revoir.
2075
-		// Reserver la cle primaire de la boucle courante si elle existe
2076
-		if (isset($p->boucles[$p->id_boucle]->primary)) {
2077
-			$primary = $p->boucles[$p->id_boucle]->primary;
2078
-			if (!strpos($primary, ',')) {
2079
-				$id = champ_sql($primary, $p);
2080
-				$_contexte[] = "'$primary'=>" . $id;
2081
-				$_contexte[] = "'id'=>" . $id;
2082
-			}
2083
-		}
2084
-		$_contexte[] = "'recurs'=>(++\$recurs)";
2085
-		$connect = '';
2086
-		if (isset($p->boucles[$p->id_boucle])) {
2087
-			$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2088
-		}
2089
-
2090
-		$_options = memoriser_contexte_compil($p);
2091
-		// Fix #4235 : sessionner le contexte appelant si ce modèle est sessionné
2092
-		$_options = "'compil'=>array($_options), 'trim'=>true, 'sessionnement_contaminant'=>true";
2047
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
2048
+
2049
+    // erreur de syntaxe = fond absent
2050
+    // (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
2051
+    if (!$_contexte) {
2052
+        $_contexte = array();
2053
+    }
2054
+
2055
+    if (!isset($_contexte[1])) {
2056
+        $msg = array('zbug_balise_sans_argument', array('balise' => ' MODELE'));
2057
+        erreur_squelette($msg, $p);
2058
+    } else {
2059
+        $nom = $_contexte[1];
2060
+        unset($_contexte[1]);
2061
+
2062
+        if (preg_match("/^\s*'[^']*'/s", $nom)) {
2063
+            $nom = "'modeles/" . substr($nom, 1);
2064
+        } else {
2065
+            $nom = "'modeles/' . $nom";
2066
+        }
2067
+
2068
+        $flag_env = false;
2069
+        if (isset($_contexte['env'])) {
2070
+            $flag_env = true;
2071
+            unset($_contexte['env']);
2072
+        }
2073
+
2074
+        // Incoherence dans la syntaxe du contexte. A revoir.
2075
+        // Reserver la cle primaire de la boucle courante si elle existe
2076
+        if (isset($p->boucles[$p->id_boucle]->primary)) {
2077
+            $primary = $p->boucles[$p->id_boucle]->primary;
2078
+            if (!strpos($primary, ',')) {
2079
+                $id = champ_sql($primary, $p);
2080
+                $_contexte[] = "'$primary'=>" . $id;
2081
+                $_contexte[] = "'id'=>" . $id;
2082
+            }
2083
+        }
2084
+        $_contexte[] = "'recurs'=>(++\$recurs)";
2085
+        $connect = '';
2086
+        if (isset($p->boucles[$p->id_boucle])) {
2087
+            $connect = $p->boucles[$p->id_boucle]->sql_serveur;
2088
+        }
2089
+
2090
+        $_options = memoriser_contexte_compil($p);
2091
+        // Fix #4235 : sessionner le contexte appelant si ce modèle est sessionné
2092
+        $_options = "'compil'=>array($_options), 'trim'=>true, 'sessionnement_contaminant'=>true";
2093 2093
 		
2094
-		if (isset($_contexte['ajax'])) {
2095
-			$_options .= ", " . preg_replace(",=>(.*)$,ims", '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2096
-			unset($_contexte['ajax']);
2097
-		}
2094
+        if (isset($_contexte['ajax'])) {
2095
+            $_options .= ", " . preg_replace(",=>(.*)$,ims", '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2096
+            unset($_contexte['ajax']);
2097
+        }
2098 2098
 
2099
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2100
-		if ($flag_env) {
2101
-			$_l = "array_merge(\$Pile[0],$_l)";
2102
-		}
2099
+        $_l = 'array(' . join(",\n\t", $_contexte) . ')';
2100
+        if ($flag_env) {
2101
+            $_l = "array_merge(\$Pile[0],$_l)";
2102
+        }
2103 2103
 
2104
-		$page = sprintf(CODE_RECUPERER_FOND, $nom, $_l, $_options, _q($connect));
2104
+        $page = sprintf(CODE_RECUPERER_FOND, $nom, $_l, $_options, _q($connect));
2105 2105
 
2106
-		$p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
2106
+        $p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
2107 2107
 
2108
-		$p->interdire_scripts = false; // securite assuree par le squelette
2109
-	}
2108
+        $p->interdire_scripts = false; // securite assuree par le squelette
2109
+    }
2110 2110
 
2111
-	return $p;
2111
+    return $p;
2112 2112
 }
2113 2113
 
2114 2114
 
@@ -2132,21 +2132,21 @@  discard block
 block discarded – undo
2132 2132
  *     Pile complétée par le code à générer
2133 2133
  **/
2134 2134
 function balise_SET_dist($p) {
2135
-	$_nom = interprete_argument_balise(1, $p);
2136
-	$_val = interprete_argument_balise(2, $p);
2135
+    $_nom = interprete_argument_balise(1, $p);
2136
+    $_val = interprete_argument_balise(2, $p);
2137 2137
 
2138
-	if (!$_nom or !$_val) {
2139
-		$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'SET'));
2140
-		erreur_squelette($err_b_s_a, $p);
2141
-	}
2142
-	// affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
2143
-	// cf https://bugs.php.net/bug.php?id=65845
2144
-	else {
2145
-		$p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
2146
-	}
2138
+    if (!$_nom or !$_val) {
2139
+        $err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'SET'));
2140
+        erreur_squelette($err_b_s_a, $p);
2141
+    }
2142
+    // affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
2143
+    // cf https://bugs.php.net/bug.php?id=65845
2144
+    else {
2145
+        $p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
2146
+    }
2147 2147
 
2148
-	$p->interdire_scripts = false; // la balise ne renvoie rien
2149
-	return $p;
2148
+    $p->interdire_scripts = false; // la balise ne renvoie rien
2149
+    return $p;
2150 2150
 }
2151 2151
 
2152 2152
 
@@ -2176,12 +2176,12 @@  discard block
 block discarded – undo
2176 2176
  *     Pile complétée par le code à générer
2177 2177
  **/
2178 2178
 function balise_GET_dist($p) {
2179
-	$p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
2180
-	if (function_exists('balise_ENV')) {
2181
-		return balise_ENV($p, '$Pile["vars"]');
2182
-	} else {
2183
-		return balise_ENV_dist($p, '$Pile["vars"]');
2184
-	}
2179
+    $p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
2180
+    if (function_exists('balise_ENV')) {
2181
+        return balise_ENV($p, '$Pile["vars"]');
2182
+    } else {
2183
+        return balise_ENV_dist($p, '$Pile["vars"]');
2184
+    }
2185 2185
 }
2186 2186
 
2187 2187
 
@@ -2204,22 +2204,22 @@  discard block
 block discarded – undo
2204 2204
  *     Pile complétée par le code à générer
2205 2205
  **/
2206 2206
 function balise_DOUBLONS_dist($p) {
2207
-	if ($type = interprete_argument_balise(1, $p)) {
2208
-		if ($famille = interprete_argument_balise(2, $p)) {
2209
-			$type .= '.' . $famille;
2210
-		}
2211
-		$p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2212
-		if (!$p->etoile) {
2213
-			$p->code = 'array_filter(array_map("intval",explode(",",'
2214
-				. $p->code . ')))';
2215
-		}
2216
-	} else {
2217
-		$p->code = '$doublons';
2218
-	}
2207
+    if ($type = interprete_argument_balise(1, $p)) {
2208
+        if ($famille = interprete_argument_balise(2, $p)) {
2209
+            $type .= '.' . $famille;
2210
+        }
2211
+        $p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2212
+        if (!$p->etoile) {
2213
+            $p->code = 'array_filter(array_map("intval",explode(",",'
2214
+                . $p->code . ')))';
2215
+        }
2216
+    } else {
2217
+        $p->code = '$doublons';
2218
+    }
2219 2219
 
2220
-	$p->interdire_scripts = false;
2220
+    $p->interdire_scripts = false;
2221 2221
 
2222
-	return $p;
2222
+    return $p;
2223 2223
 }
2224 2224
 
2225 2225
 
@@ -2242,18 +2242,18 @@  discard block
 block discarded – undo
2242 2242
  *     Pile complétée par le code à générer
2243 2243
  **/
2244 2244
 function balise_PIPELINE_dist($p) {
2245
-	$_pipe = interprete_argument_balise(1, $p);
2246
-	if (!$_pipe) {
2247
-		$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'PIPELINE'));
2248
-		erreur_squelette($err_b_s_a, $p);
2249
-	} else {
2250
-		$_flux = interprete_argument_balise(2, $p);
2251
-		$_flux = $_flux ? $_flux : "''";
2252
-		$p->code = "pipeline( $_pipe , $_flux )";
2253
-		$p->interdire_scripts = false;
2254
-	}
2245
+    $_pipe = interprete_argument_balise(1, $p);
2246
+    if (!$_pipe) {
2247
+        $err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'PIPELINE'));
2248
+        erreur_squelette($err_b_s_a, $p);
2249
+    } else {
2250
+        $_flux = interprete_argument_balise(2, $p);
2251
+        $_flux = $_flux ? $_flux : "''";
2252
+        $p->code = "pipeline( $_pipe , $_flux )";
2253
+        $p->interdire_scripts = false;
2254
+    }
2255 2255
 
2256
-	return $p;
2256
+    return $p;
2257 2257
 }
2258 2258
 
2259 2259
 
@@ -2278,10 +2278,10 @@  discard block
 block discarded – undo
2278 2278
  *     Pile complétée par le code à générer
2279 2279
  **/
2280 2280
 function balise_EDIT_dist($p) {
2281
-	$p->code = "''";
2282
-	$p->interdire_scripts = false;
2281
+    $p->code = "''";
2282
+    $p->interdire_scripts = false;
2283 2283
 
2284
-	return $p;
2284
+    return $p;
2285 2285
 }
2286 2286
 
2287 2287
 
@@ -2304,11 +2304,11 @@  discard block
 block discarded – undo
2304 2304
  *     Pile complétée par le code à générer
2305 2305
  **/
2306 2306
 function balise_TOTAL_UNIQUE_dist($p) {
2307
-	$_famille = interprete_argument_balise(1, $p);
2308
-	$_famille = $_famille ? $_famille : "''";
2309
-	$p->code = "unique('', $_famille, true)";
2307
+    $_famille = interprete_argument_balise(1, $p);
2308
+    $_famille = $_famille ? $_famille : "''";
2309
+    $p->code = "unique('', $_famille, true)";
2310 2310
 
2311
-	return $p;
2311
+    return $p;
2312 2312
 }
2313 2313
 
2314 2314
 /**
@@ -2331,19 +2331,19 @@  discard block
 block discarded – undo
2331 2331
  *     Pile complétée par le code à générer
2332 2332
  **/
2333 2333
 function balise_ARRAY_dist($p) {
2334
-	$_code = array();
2335
-	$n = 1;
2336
-	do {
2337
-		$_key = interprete_argument_balise($n++, $p);
2338
-		$_val = interprete_argument_balise($n++, $p);
2339
-		if ($_key and $_val) {
2340
-			$_code[] = "$_key => $_val";
2341
-		}
2342
-	} while ($_key && $_val);
2343
-	$p->code = 'array(' . join(', ', $_code) . ')';
2344
-	$p->interdire_scripts = false;
2334
+    $_code = array();
2335
+    $n = 1;
2336
+    do {
2337
+        $_key = interprete_argument_balise($n++, $p);
2338
+        $_val = interprete_argument_balise($n++, $p);
2339
+        if ($_key and $_val) {
2340
+            $_code[] = "$_key => $_val";
2341
+        }
2342
+    } while ($_key && $_val);
2343
+    $p->code = 'array(' . join(', ', $_code) . ')';
2344
+    $p->interdire_scripts = false;
2345 2345
 
2346
-	return $p;
2346
+    return $p;
2347 2347
 }
2348 2348
 
2349 2349
 /**
@@ -2362,15 +2362,15 @@  discard block
 block discarded – undo
2362 2362
  *     Pile complétée par le code à générer
2363 2363
  */
2364 2364
 function balise_LISTE_dist($p) {
2365
-	$_code = array();
2366
-	$n = 1;
2367
-	while ($_val = interprete_argument_balise($n++, $p)) {
2368
-		$_code[] = $_val;
2369
-	}
2370
-	$p->code = 'array(' . join(', ', $_code) . ')';
2371
-	$p->interdire_scripts = false;
2365
+    $_code = array();
2366
+    $n = 1;
2367
+    while ($_val = interprete_argument_balise($n++, $p)) {
2368
+        $_code[] = $_val;
2369
+    }
2370
+    $p->code = 'array(' . join(', ', $_code) . ')';
2371
+    $p->interdire_scripts = false;
2372 2372
 
2373
-	return $p;
2373
+    return $p;
2374 2374
 }
2375 2375
 
2376 2376
 
@@ -2404,19 +2404,19 @@  discard block
 block discarded – undo
2404 2404
  *     Pile complétée par le code à générer
2405 2405
  **/
2406 2406
 function balise_AUTORISER_dist($p) {
2407
-	$_code = array();
2408
-	$p->descr['session'] = true; // faire un cache par session
2407
+    $_code = array();
2408
+    $p->descr['session'] = true; // faire un cache par session
2409 2409
 
2410
-	$n = 1;
2411
-	while ($_v = interprete_argument_balise($n++, $p)) {
2412
-		$_code[] = $_v;
2413
-	}
2410
+    $n = 1;
2411
+    while ($_v = interprete_argument_balise($n++, $p)) {
2412
+        $_code[] = $_v;
2413
+    }
2414 2414
 
2415
-	$p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(', ',
2416
-			$_code) . ')?" ":"")';
2417
-	$p->interdire_scripts = false;
2415
+    $p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(', ',
2416
+            $_code) . ')?" ":"")';
2417
+    $p->interdire_scripts = false;
2418 2418
 
2419
-	return $p;
2419
+    return $p;
2420 2420
 }
2421 2421
 
2422 2422
 
@@ -2440,15 +2440,15 @@  discard block
 block discarded – undo
2440 2440
  *     Pile complétée par le code à générer
2441 2441
  **/
2442 2442
 function balise_PLUGIN_dist($p) {
2443
-	$plugin = interprete_argument_balise(1, $p);
2444
-	$plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""';
2445
-	$type_info = interprete_argument_balise(2, $p);
2446
-	$type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2443
+    $plugin = interprete_argument_balise(1, $p);
2444
+    $plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""';
2445
+    $type_info = interprete_argument_balise(2, $p);
2446
+    $type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2447 2447
 
2448
-	$f = chercher_filtre('info_plugin');
2449
-	$p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2448
+    $f = chercher_filtre('info_plugin');
2449
+    $p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2450 2450
 
2451
-	return $p;
2451
+    return $p;
2452 2452
 }
2453 2453
 
2454 2454
 /**
@@ -2469,11 +2469,11 @@  discard block
 block discarded – undo
2469 2469
  *     Pile complétée par le code à générer
2470 2470
  **/
2471 2471
 function balise_AIDER_dist($p) {
2472
-	$_motif = interprete_argument_balise(1, $p);
2473
-	$s = "'" . addslashes($p->descr['sourcefile']) . "'";
2474
-	$p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif,$s, \$Pile[0]):'')";
2472
+    $_motif = interprete_argument_balise(1, $p);
2473
+    $s = "'" . addslashes($p->descr['sourcefile']) . "'";
2474
+    $p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif,$s, \$Pile[0]):'')";
2475 2475
 
2476
-	return $p;
2476
+    return $p;
2477 2477
 }
2478 2478
 
2479 2479
 /**
@@ -2499,16 +2499,16 @@  discard block
 block discarded – undo
2499 2499
  *     Pile complétée par le code à générer
2500 2500
  **/
2501 2501
 function balise_ACTION_FORMULAIRE($p) {
2502
-	if (!$_url = interprete_argument_balise(1, $p)) {
2503
-		$_url = "@\$Pile[0]['action']";
2504
-	}
2505
-	if (!$_form = interprete_argument_balise(2, $p)) {
2506
-		$_form = "@\$Pile[0]['form']";
2507
-	}
2508
-
2509
-	// envoyer le nom du formulaire que l'on traite
2510
-	// transmettre les eventuels args de la balise formulaire
2511
-	$p->code = "	'<div>' .
2502
+    if (!$_url = interprete_argument_balise(1, $p)) {
2503
+        $_url = "@\$Pile[0]['action']";
2504
+    }
2505
+    if (!$_form = interprete_argument_balise(2, $p)) {
2506
+        $_form = "@\$Pile[0]['form']";
2507
+    }
2508
+
2509
+    // envoyer le nom du formulaire que l'on traite
2510
+    // transmettre les eventuels args de la balise formulaire
2511
+    $p->code = "	'<div>' .
2512 2512
 	form_hidden($_url) .
2513 2513
 	'<input name=\'formulaire_action\' type=\'hidden\'
2514 2514
 		value=\'' . $_form . '\' />' .
@@ -2517,9 +2517,9 @@  discard block
 block discarded – undo
2517 2517
 	(!empty(\$Pile[0]['_hidden']) ? @\$Pile[0]['_hidden'] : '') .
2518 2518
 	'</div>'";
2519 2519
 
2520
-	$p->interdire_scripts = false;
2520
+    $p->interdire_scripts = false;
2521 2521
 
2522
-	return $p;
2522
+    return $p;
2523 2523
 }
2524 2524
 
2525 2525
 
@@ -2549,25 +2549,25 @@  discard block
 block discarded – undo
2549 2549
  */
2550 2550
 function balise_BOUTON_ACTION_dist($p) {
2551 2551
 
2552
-	$args = array();
2553
-	for ($k = 1; $k <= 6; $k++) {
2554
-		$_a = interprete_argument_balise($k, $p);
2555
-		if (!$_a) {
2556
-			$_a = "''";
2557
-		}
2558
-		$args[] = $_a;
2559
-	}
2560
-	// supprimer les args vides
2561
-	while (end($args) == "''" and count($args) > 2) {
2562
-		array_pop($args);
2563
-	}
2564
-	$args = implode(",", $args);
2552
+    $args = array();
2553
+    for ($k = 1; $k <= 6; $k++) {
2554
+        $_a = interprete_argument_balise($k, $p);
2555
+        if (!$_a) {
2556
+            $_a = "''";
2557
+        }
2558
+        $args[] = $_a;
2559
+    }
2560
+    // supprimer les args vides
2561
+    while (end($args) == "''" and count($args) > 2) {
2562
+        array_pop($args);
2563
+    }
2564
+    $args = implode(",", $args);
2565 2565
 
2566
-	$bouton_action = chercher_filtre("bouton_action");
2567
-	$p->code = "$bouton_action($args)";
2568
-	$p->interdire_scripts = false;
2566
+    $bouton_action = chercher_filtre("bouton_action");
2567
+    $p->code = "$bouton_action($args)";
2568
+    $p->interdire_scripts = false;
2569 2569
 
2570
-	return $p;
2570
+    return $p;
2571 2571
 }
2572 2572
 
2573 2573
 
@@ -2586,10 +2586,10 @@  discard block
 block discarded – undo
2586 2586
  *     Pile complétée par le code à générer
2587 2587
  */
2588 2588
 function balise_SLOGAN_SITE_SPIP_dist($p) {
2589
-	$p->code = "\$GLOBALS['meta']['slogan_site']";
2589
+    $p->code = "\$GLOBALS['meta']['slogan_site']";
2590 2590
 
2591
-	#$p->interdire_scripts = true;
2592
-	return $p;
2591
+    #$p->interdire_scripts = true;
2592
+    return $p;
2593 2593
 }
2594 2594
 
2595 2595
 
@@ -2613,10 +2613,10 @@  discard block
 block discarded – undo
2613 2613
  *     Pile complétée par le code à générer
2614 2614
  */
2615 2615
 function balise_HTML5_dist($p) {
2616
-	$p->code = html5_permis() ? "' '" : "''";
2617
-	$p->interdire_scripts = false;
2616
+    $p->code = html5_permis() ? "' '" : "''";
2617
+    $p->interdire_scripts = false;
2618 2618
 
2619
-	return $p;
2619
+    return $p;
2620 2620
 }
2621 2621
 
2622 2622
 
@@ -2642,63 +2642,63 @@  discard block
 block discarded – undo
2642 2642
  *     Pile complétée par le code à générer
2643 2643
  */
2644 2644
 function balise_TRI_dist($p, $liste = 'true') {
2645
-	$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
2645
+    $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
2646 2646
 
2647
-	// s'il n'y a pas de nom de boucle, on ne peut pas trier
2648
-	if ($b === '') {
2649
-		erreur_squelette(
2650
-			_T('zbug_champ_hors_boucle',
2651
-				array('champ' => '#TRI')
2652
-			), $p->id_boucle);
2653
-		$p->code = "''";
2647
+    // s'il n'y a pas de nom de boucle, on ne peut pas trier
2648
+    if ($b === '') {
2649
+        erreur_squelette(
2650
+            _T('zbug_champ_hors_boucle',
2651
+                array('champ' => '#TRI')
2652
+            ), $p->id_boucle);
2653
+        $p->code = "''";
2654 2654
 
2655
-		return $p;
2656
-	}
2657
-	$boucle = $p->boucles[$b];
2655
+        return $p;
2656
+    }
2657
+    $boucle = $p->boucles[$b];
2658 2658
 
2659
-	// s'il n'y a pas de tri_champ, c'est qu'on se trouve
2660
-	// dans un boucle recursive ou qu'on a oublie le critere {tri}
2661
-	if (!isset($boucle->modificateur['tri_champ'])) {
2662
-		erreur_squelette(
2663
-			_T('zbug_tri_sans_critere',
2664
-				array('champ' => '#TRI')
2665
-			), $p->id_boucle);
2666
-		$p->code = "''";
2659
+    // s'il n'y a pas de tri_champ, c'est qu'on se trouve
2660
+    // dans un boucle recursive ou qu'on a oublie le critere {tri}
2661
+    if (!isset($boucle->modificateur['tri_champ'])) {
2662
+        erreur_squelette(
2663
+            _T('zbug_tri_sans_critere',
2664
+                array('champ' => '#TRI')
2665
+            ), $p->id_boucle);
2666
+        $p->code = "''";
2667 2667
 
2668
-		return $p;
2669
-	}
2668
+        return $p;
2669
+    }
2670 2670
 
2671
-	$_champ = interprete_argument_balise(1, $p);
2672
-	// si pas de champ, renvoyer le critere de tri utilise
2673
-	if (!$_champ) {
2674
-		$p->code = $boucle->modificateur['tri_champ'];
2671
+    $_champ = interprete_argument_balise(1, $p);
2672
+    // si pas de champ, renvoyer le critere de tri utilise
2673
+    if (!$_champ) {
2674
+        $p->code = $boucle->modificateur['tri_champ'];
2675 2675
 
2676
-		return $p;
2677
-	}
2678
-	// forcer la jointure si besoin, et si le champ est statique
2679
-	if (preg_match(",^'([\w.]+)'$,i", $_champ, $m)) {
2680
-		index_pile($b, $m[1], $p->boucles, '', null, true, false);
2681
-	}
2676
+        return $p;
2677
+    }
2678
+    // forcer la jointure si besoin, et si le champ est statique
2679
+    if (preg_match(",^'([\w.]+)'$,i", $_champ, $m)) {
2680
+        index_pile($b, $m[1], $p->boucles, '', null, true, false);
2681
+    }
2682 2682
 
2683
-	$_libelle = interprete_argument_balise(2, $p);
2684
-	$_libelle = $_libelle ? $_libelle : $_champ;
2683
+    $_libelle = interprete_argument_balise(2, $p);
2684
+    $_libelle = $_libelle ? $_libelle : $_champ;
2685 2685
 
2686
-	$_class = interprete_argument_balise(3, $p);
2687
-	// si champ = ">" c'est un lien vers le tri croissant : de gauche a droite ==> 1
2688
-	// si champ = "<" c'est un lien vers le tri decroissant : (sens inverse) == -1
2689
-	$_issens = "in_array($_champ,array('>','<'))";
2690
-	$_sens = "(strpos('< >',$_champ)-1)";
2686
+    $_class = interprete_argument_balise(3, $p);
2687
+    // si champ = ">" c'est un lien vers le tri croissant : de gauche a droite ==> 1
2688
+    // si champ = "<" c'est un lien vers le tri decroissant : (sens inverse) == -1
2689
+    $_issens = "in_array($_champ,array('>','<'))";
2690
+    $_sens = "(strpos('< >',$_champ)-1)";
2691 2691
 
2692
-	$_variable = "((\$s=$_issens)?'sens':'tri')." . $boucle->modificateur['tri_nom'];
2693
-	$_url = "parametre_url(self(),$_variable,\$s?$_sens:$_champ)";
2694
-	$_url = "parametre_url($_url,'var_memotri',strncmp(" . $boucle->modificateur['tri_nom'] . ",'session',7)==0?$_variable:'')";
2695
-	$_on = "\$s?(" . $boucle->modificateur['tri_sens'] . "==$_sens" . '):(' . $boucle->modificateur['tri_champ'] . "==$_champ)";
2692
+    $_variable = "((\$s=$_issens)?'sens':'tri')." . $boucle->modificateur['tri_nom'];
2693
+    $_url = "parametre_url(self(),$_variable,\$s?$_sens:$_champ)";
2694
+    $_url = "parametre_url($_url,'var_memotri',strncmp(" . $boucle->modificateur['tri_nom'] . ",'session',7)==0?$_variable:'')";
2695
+    $_on = "\$s?(" . $boucle->modificateur['tri_sens'] . "==$_sens" . '):(' . $boucle->modificateur['tri_champ'] . "==$_champ)";
2696 2696
 
2697
-	$p->code = "lien_ou_expose($_url,$_libelle,$_on" . ($_class ? ",$_class" : "") . ")";
2698
-	//$p->code = "''";
2699
-	$p->interdire_scripts = false;
2697
+    $p->code = "lien_ou_expose($_url,$_libelle,$_on" . ($_class ? ",$_class" : "") . ")";
2698
+    //$p->code = "''";
2699
+    $p->interdire_scripts = false;
2700 2700
 
2701
-	return $p;
2701
+    return $p;
2702 2702
 }
2703 2703
 
2704 2704
 
@@ -2719,22 +2719,22 @@  discard block
 block discarded – undo
2719 2719
  *     Pile complétée par le code à générer
2720 2720
  */
2721 2721
 function balise_SAUTER_dist($p) {
2722
-	$id_boucle = $p->id_boucle;
2722
+    $id_boucle = $p->id_boucle;
2723 2723
 
2724
-	if (empty($p->boucles[$id_boucle])) {
2725
-		$msg = array('zbug_champ_hors_boucle', array('champ' => '#SAUTER'));
2726
-		erreur_squelette($msg, $p);
2727
-	} else {
2728
-		$boucle = $p->boucles[$id_boucle];
2729
-		$_saut = interprete_argument_balise(1, $p);
2730
-		$_compteur = "\$Numrows['$id_boucle']['compteur_boucle']";
2731
-		$_total = "\$Numrows['$id_boucle']['total']";
2724
+    if (empty($p->boucles[$id_boucle])) {
2725
+        $msg = array('zbug_champ_hors_boucle', array('champ' => '#SAUTER'));
2726
+        erreur_squelette($msg, $p);
2727
+    } else {
2728
+        $boucle = $p->boucles[$id_boucle];
2729
+        $_saut = interprete_argument_balise(1, $p);
2730
+        $_compteur = "\$Numrows['$id_boucle']['compteur_boucle']";
2731
+        $_total = "\$Numrows['$id_boucle']['total']";
2732 2732
 
2733
-		$p->code = "vide($_compteur=\$iter->skip($_saut,$_total))";
2734
-	}
2735
-	$p->interdire_scripts = false;
2733
+        $p->code = "vide($_compteur=\$iter->skip($_saut,$_total))";
2734
+    }
2735
+    $p->interdire_scripts = false;
2736 2736
 
2737
-	return $p;
2737
+    return $p;
2738 2738
 }
2739 2739
 
2740 2740
 
@@ -2756,22 +2756,22 @@  discard block
 block discarded – undo
2756 2756
  *     Pile complétée par le code à générer
2757 2757
  */
2758 2758
 function balise_PUBLIE_dist($p) {
2759
-	if (!$_type = interprete_argument_balise(1, $p)) {
2760
-		$_type = _q($p->type_requete);
2761
-		$_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
2762
-	} else {
2763
-		$_id = interprete_argument_balise(2, $p);
2764
-	}
2759
+    if (!$_type = interprete_argument_balise(1, $p)) {
2760
+        $_type = _q($p->type_requete);
2761
+        $_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
2762
+    } else {
2763
+        $_id = interprete_argument_balise(2, $p);
2764
+    }
2765 2765
 
2766
-	$connect = '';
2767
-	if (isset($p->boucles[$p->id_boucle])) {
2768
-		$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2769
-	}
2766
+    $connect = '';
2767
+    if (isset($p->boucles[$p->id_boucle])) {
2768
+        $connect = $p->boucles[$p->id_boucle]->sql_serveur;
2769
+    }
2770 2770
 
2771
-	$p->code = "(objet_test_si_publie(" . $_type . ",intval(" . $_id . ")," . _q($connect) . ")?' ':'')";
2772
-	$p->interdire_scripts = false;
2771
+    $p->code = "(objet_test_si_publie(" . $_type . ",intval(" . $_id . ")," . _q($connect) . ")?' ':'')";
2772
+    $p->interdire_scripts = false;
2773 2773
 
2774
-	return $p;
2774
+    return $p;
2775 2775
 }
2776 2776
 
2777 2777
 /**
@@ -2800,12 +2800,12 @@  discard block
 block discarded – undo
2800 2800
  *     Pile complétée par le code à générer
2801 2801
  */
2802 2802
 function balise_PRODUIRE_dist($p) {
2803
-	$balise_inclure = charger_fonction('INCLURE', 'balise');
2804
-	$p = $balise_inclure($p);
2803
+    $balise_inclure = charger_fonction('INCLURE', 'balise');
2804
+    $p = $balise_inclure($p);
2805 2805
 
2806
-	$p->code = str_replace('recuperer_fond(', 'produire_fond_statique(', $p->code);
2806
+    $p->code = str_replace('recuperer_fond(', 'produire_fond_statique(', $p->code);
2807 2807
 
2808
-	return $p;
2808
+    return $p;
2809 2809
 }
2810 2810
 
2811 2811
 /**
@@ -2824,13 +2824,13 @@  discard block
 block discarded – undo
2824 2824
  *     Pile complétée par le code à générer
2825 2825
  */
2826 2826
 function balise_LARGEUR_ECRAN_dist($p) {
2827
-	$_class = interprete_argument_balise(1, $p);
2828
-	if (!$_class) {
2829
-		$_class = 'null';
2830
-	}
2831
-	$p->code = "(is_string($_class)?vide(\$GLOBALS['largeur_ecran']=$_class):(isset(\$GLOBALS['largeur_ecran'])?\$GLOBALS['largeur_ecran']:''))";
2827
+    $_class = interprete_argument_balise(1, $p);
2828
+    if (!$_class) {
2829
+        $_class = 'null';
2830
+    }
2831
+    $p->code = "(is_string($_class)?vide(\$GLOBALS['largeur_ecran']=$_class):(isset(\$GLOBALS['largeur_ecran'])?\$GLOBALS['largeur_ecran']:''))";
2832 2832
 
2833
-	return $p;
2833
+    return $p;
2834 2834
 }
2835 2835
 
2836 2836
 
@@ -2846,14 +2846,14 @@  discard block
 block discarded – undo
2846 2846
  *     Pile complétée par le code à générer
2847 2847
  **/
2848 2848
 function balise_CONST_dist($p) {
2849
-	$_const = interprete_argument_balise(1, $p);
2850
-	if (!strlen($_const)) {
2851
-		$p->code = "''";
2852
-	}
2853
-	else {
2854
-		$p->code = "(defined($_const)?constant($_const):'')";
2855
-	}
2856
-	$p->interdire_scripts = false;
2857
-
2858
-	return $p;
2849
+    $_const = interprete_argument_balise(1, $p);
2850
+    if (!strlen($_const)) {
2851
+        $p->code = "''";
2852
+    }
2853
+    else {
2854
+        $p->code = "(defined($_const)?constant($_const):'')";
2855
+    }
2856
+    $p->interdire_scripts = false;
2857
+
2858
+    return $p;
2859 2859
 }
Please login to merge, or discard this patch.
Spacing   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -363,7 +363,7 @@  discard block
 block discarded – undo
363 363
  */
364 364
 function balise_DOSSIER_SQUELETTE_dist($p) {
365 365
 	$code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
366
-	$p->code = "_DIR_RACINE . '$code'" .
366
+	$p->code = "_DIR_RACINE . '$code'".
367 367
 		$p->interdire_scripts = false;
368 368
 
369 369
 	return $p;
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
  */
383 383
 function balise_SQUELETTE_dist($p) {
384 384
 	$code = addslashes($p->descr['sourcefile']);
385
-	$p->code = "'$code'" .
385
+	$p->code = "'$code'".
386 386
 		$p->interdire_scripts = false;
387 387
 
388 388
 	return $p;
@@ -434,9 +434,9 @@  discard block
 block discarded – undo
434 434
  **/
435 435
 function balise_NOM_SITE_dist($p) {
436 436
 	if (!$p->etoile) {
437
-		$p->code = "supprimer_numero(calculer_url(" .
438
-			champ_sql('url_site', $p) . "," .
439
-			champ_sql('nom_site', $p) .
437
+		$p->code = "supprimer_numero(calculer_url(".
438
+			champ_sql('url_site', $p).",".
439
+			champ_sql('nom_site', $p).
440 440
 			", 'titre', \$connect, false))";
441 441
 	} else {
442 442
 		$p->code = champ_sql('nom_site', $p);
@@ -543,7 +543,7 @@  discard block
 block discarded – undo
543 543
 	if ($b === '' || !isset($p->boucles[$b])) {
544 544
 		$msg = array(
545 545
 			'zbug_champ_hors_boucle',
546
-			array('champ' => "#$b" . 'TOTAL_BOUCLE')
546
+			array('champ' => "#$b".'TOTAL_BOUCLE')
547 547
 		);
548 548
 		erreur_squelette($msg, $p);
549 549
 	} else {
@@ -593,8 +593,8 @@  discard block
 block discarded – undo
593 593
  *     Pile complétée par le code à générer
594 594
  **/
595 595
 function balise_POPULARITE_ABSOLUE_dist($p) {
596
-	$p->code = 'ceil(' .
597
-		champ_sql('popularite', $p) .
596
+	$p->code = 'ceil('.
597
+		champ_sql('popularite', $p).
598 598
 		')';
599 599
 	$p->interdire_scripts = false;
600 600
 
@@ -672,9 +672,9 @@  discard block
 block discarded – undo
672 672
  **/
673 673
 function balise_VALEUR_dist($p) {
674 674
 	$b = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
675
-	$p->code = index_pile($p->id_boucle, 'valeur', $p->boucles, $b);;
675
+	$p->code = index_pile($p->id_boucle, 'valeur', $p->boucles, $b); ;
676 676
 	if (($v = interprete_argument_balise(1, $p)) !== null) {
677
-		$p->code = 'table_valeur(' . $p->code . ', ' . $v . ')';
677
+		$p->code = 'table_valeur('.$p->code.', '.$v.')';
678 678
 	}
679 679
 	$p->interdire_scripts = true;
680 680
 
@@ -830,8 +830,8 @@  discard block
 block discarded – undo
830 830
 	$_suite = 'null';
831 831
 	$_longueur = $longueur_defaut;
832 832
 	if (($v = interprete_argument_balise(1, $p)) !== null) {
833
-		$_longueur = 'is_numeric(' . $v . ')?intval(' . $v . '):' . $longueur_defaut;
834
-		$_suite = '!is_numeric(' . $v . ')?' . $v . ':null';
833
+		$_longueur = 'is_numeric('.$v.')?intval('.$v.'):'.$longueur_defaut;
834
+		$_suite = '!is_numeric('.$v.')?'.$v.':null';
835 835
 	}
836 836
 	if (($v2 = interprete_argument_balise(2, $p)) !== null) {
837 837
 		$_suite = $v2;
@@ -919,10 +919,10 @@  discard block
 block discarded – undo
919 919
 		$c = memoriser_contexte_compil($p);
920 920
 
921 921
 		$p->code = sprintf(CODE_RECUPERER_FOND, "'modeles/lesauteurs'",
922
-			"array('objet'=>'" . $objet .
923
-			"','id_objet' => " . champ_sql($id_table_objet, $p) .
924
-			",'$id_table_objet' => " . champ_sql($id_table_objet, $p) .
925
-			($objet == 'article' ? "" : ",'id_article' => " . champ_sql('id_article', $p)) .
922
+			"array('objet'=>'".$objet.
923
+			"','id_objet' => ".champ_sql($id_table_objet, $p).
924
+			",'$id_table_objet' => ".champ_sql($id_table_objet, $p).
925
+			($objet == 'article' ? "" : ",'id_article' => ".champ_sql('id_article', $p)).
926 926
 			")",
927 927
 			"'trim'=>true, 'compil'=>array($c)",
928 928
 			_q($connect));
@@ -988,7 +988,7 @@  discard block
 block discarded – undo
988 988
 					$m = trim($m);
989 989
 					if ($m != "''") {
990 990
 						if (!preg_match(",\W,", $m)) {
991
-							$m = $boucle->id_table . ".$m";
991
+							$m = $boucle->id_table.".$m";
992 992
 						}
993 993
 						
994 994
 						$m .= " AS titre_rang";
@@ -1135,7 +1135,7 @@  discard block
 block discarded – undo
1135 1135
 	$f_pagination = chercher_filtre('pagination');
1136 1136
 	$type = $p->boucles[$b]->modificateur['debut_nom'];
1137 1137
 	$modif = ($type[0] !== "'") ? "'debut'.$type"
1138
-		: ("'debut" . substr($type, 1));
1138
+		: ("'debut".substr($type, 1));
1139 1139
 
1140 1140
 	$p->code = sprintf(CODE_PAGINATION, $f_pagination, $b, $type, $modif, $pas, $liste,
1141 1141
 		((isset($__modele) and $__modele) ? $__modele : "''"), _q($connect), $code_contexte);
@@ -1199,7 +1199,7 @@  discard block
 block discarded – undo
1199 1199
 	if ($b === '' || !isset($p->boucles[$b])) {
1200 1200
 		$msg = array(
1201 1201
 			'zbug_champ_hors_boucle',
1202
-			array('champ' => "#$b" . 'TOTAL_BOUCLE')
1202
+			array('champ' => "#$b".'TOTAL_BOUCLE')
1203 1203
 		);
1204 1204
 		erreur_squelette($msg, $p);
1205 1205
 	} else {
@@ -1272,7 +1272,7 @@  discard block
 block discarded – undo
1272 1272
 		$msg = array('zbug_balise_sans_argument', array('balise' => ' CHEMIN'));
1273 1273
 		erreur_squelette($msg, $p);
1274 1274
 	} else {
1275
-		$p->code = 'find_in_path(' . $arg . ')';
1275
+		$p->code = 'find_in_path('.$arg.')';
1276 1276
 	}
1277 1277
 
1278 1278
 	$p->interdire_scripts = false;
@@ -1307,7 +1307,7 @@  discard block
 block discarded – undo
1307 1307
 		$msg = array('zbug_balise_sans_argument', array('balise' => ' CHEMIN_IMAGE'));
1308 1308
 		erreur_squelette($msg, $p);
1309 1309
 	} else {
1310
-		$p->code = 'chemin_image(' . $arg . ')';
1310
+		$p->code = 'chemin_image('.$arg.')';
1311 1311
 	}
1312 1312
 
1313 1313
 	#$p->interdire_scripts = true;
@@ -1361,7 +1361,7 @@  discard block
 block discarded – undo
1361 1361
 		// cas de #ENV sans argument : on retourne le serialize() du tableau
1362 1362
 		// une belle fonction [(#ENV|affiche_env)] serait pratique
1363 1363
 		if ($src) {
1364
-			$p->code = '(is_array($a = (' . $src . ')) ? serialize($a) : "")';
1364
+			$p->code = '(is_array($a = ('.$src.')) ? serialize($a) : "")';
1365 1365
 		} else {
1366 1366
 			$p->code = '@serialize($Pile[0])';
1367 1367
 		}
@@ -1414,8 +1414,8 @@  discard block
 block discarded – undo
1414 1414
 	$_sinon = interprete_argument_balise(2, $p);
1415 1415
 	$_unserialize = sinon(interprete_argument_balise(3, $p), "false");
1416 1416
 
1417
-	$p->code = '(include_spip(\'inc/config\')?lire_config(' . $arg . ',' .
1418
-		($_sinon && $_sinon != "''" ? $_sinon : 'null') . ',' . $_unserialize . "):'')";
1417
+	$p->code = '(include_spip(\'inc/config\')?lire_config('.$arg.','.
1418
+		($_sinon && $_sinon != "''" ? $_sinon : 'null').','.$_unserialize."):'')";
1419 1419
 
1420 1420
 	return $p;
1421 1421
 }
@@ -1508,7 +1508,7 @@  discard block
 block discarded – undo
1508 1508
 		$err_b_s_a = array('zbug_balise_sans_argument', array('balise' => 'SESSION_SET'));
1509 1509
 		erreur_squelette($err_b_s_a, $p);
1510 1510
 	} else {
1511
-		$p->code = '(include_spip("inc/session") AND session_set(' . $_nom . ',' . $_val . '))';
1511
+		$p->code = '(include_spip("inc/session") AND session_set('.$_nom.','.$_val.'))';
1512 1512
 	}
1513 1513
 
1514 1514
 	$p->interdire_scripts = false;
@@ -1551,7 +1551,7 @@  discard block
 block discarded – undo
1551 1551
 		if (preg_match(",^([[:space:]]*//[^\n]*\n)'([^']+)'$,ms",
1552 1552
 			$php, $r)) {
1553 1553
 			$p->code = /* $r[1]. */
1554
-				'(' . $r[2] . ')';
1554
+				'('.$r[2].')';
1555 1555
 		} else {
1556 1556
 			$p->code = "eval('return '.$php.';')";
1557 1557
 		}
@@ -1798,9 +1798,9 @@  discard block
 block discarded – undo
1798 1798
 
1799 1799
 		// noter la duree du cache dans un entete proprietaire
1800 1800
 
1801
-		$code = "'<'.'" . '?php header("X-Spip-Cache: '
1801
+		$code = "'<'.'".'?php header("X-Spip-Cache: '
1802 1802
 			. $duree
1803
-			. '"); ?' . "'.'>'";
1803
+			. '"); ?'."'.'>'";
1804 1804
 
1805 1805
 		// Remplir le header Cache-Control
1806 1806
 		// cas #CACHE{0}
@@ -1820,9 +1820,9 @@  discard block
 block discarded – undo
1820 1820
 			if ($pa == 'cache-client'
1821 1821
 				and $duree > 0
1822 1822
 			) {
1823
-				$code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1823
+				$code .= ".'<'.'".'?php header("Cache-Control: max-age='
1824 1824
 					. $duree
1825
-					. '"); ?' . "'.'>'";
1825
+					. '"); ?'."'.'>'";
1826 1826
 				// il semble logique, si on cache-client, de ne pas invalider
1827 1827
 				$pa = 'statique';
1828 1828
 			}
@@ -1830,7 +1830,7 @@  discard block
 block discarded – undo
1830 1830
 			if ($pa == 'statique'
1831 1831
 				and $duree > 0
1832 1832
 			) {
1833
-				$code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1833
+				$code .= ".'<'.'".'?php header("X-Spip-Statique: oui"); ?'."'.'>'";
1834 1834
 			}
1835 1835
 		}
1836 1836
 	} else {
@@ -1999,9 +1999,9 @@  discard block
 block discarded – undo
1999 1999
 		if ($p->etoile) {
2000 2000
 			$_options[] = "'etoile'=>true";
2001 2001
 		}
2002
-		$_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ")";
2002
+		$_options[] = "'compil'=>array(".memoriser_contexte_compil($p).")";
2003 2003
 
2004
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2004
+		$_l = 'array('.join(",\n\t", $_contexte).')';
2005 2005
 		if ($flag_env) {
2006 2006
 			$_l = "array_merge(\$Pile[0],$_l)";
2007 2007
 		}
@@ -2012,7 +2012,7 @@  discard block
 block discarded – undo
2012 2012
 		$msg = array('zbug_balise_sans_argument', array('balise' => ' INCLURE'));
2013 2013
 		erreur_squelette($msg, $p);
2014 2014
 	} else {
2015
-		$p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2015
+		$p->code = 'charge_scripts('.$_contexte[1].',false)';
2016 2016
 	}
2017 2017
 
2018 2018
 	$p->interdire_scripts = false; // la securite est assuree par recuperer_fond
@@ -2060,7 +2060,7 @@  discard block
 block discarded – undo
2060 2060
 		unset($_contexte[1]);
2061 2061
 
2062 2062
 		if (preg_match("/^\s*'[^']*'/s", $nom)) {
2063
-			$nom = "'modeles/" . substr($nom, 1);
2063
+			$nom = "'modeles/".substr($nom, 1);
2064 2064
 		} else {
2065 2065
 			$nom = "'modeles/' . $nom";
2066 2066
 		}
@@ -2077,8 +2077,8 @@  discard block
 block discarded – undo
2077 2077
 			$primary = $p->boucles[$p->id_boucle]->primary;
2078 2078
 			if (!strpos($primary, ',')) {
2079 2079
 				$id = champ_sql($primary, $p);
2080
-				$_contexte[] = "'$primary'=>" . $id;
2081
-				$_contexte[] = "'id'=>" . $id;
2080
+				$_contexte[] = "'$primary'=>".$id;
2081
+				$_contexte[] = "'id'=>".$id;
2082 2082
 			}
2083 2083
 		}
2084 2084
 		$_contexte[] = "'recurs'=>(++\$recurs)";
@@ -2092,11 +2092,11 @@  discard block
 block discarded – undo
2092 2092
 		$_options = "'compil'=>array($_options), 'trim'=>true, 'sessionnement_contaminant'=>true";
2093 2093
 		
2094 2094
 		if (isset($_contexte['ajax'])) {
2095
-			$_options .= ", " . preg_replace(",=>(.*)$,ims", '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2095
+			$_options .= ", ".preg_replace(",=>(.*)$,ims", '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2096 2096
 			unset($_contexte['ajax']);
2097 2097
 		}
2098 2098
 
2099
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2099
+		$_l = 'array('.join(",\n\t", $_contexte).')';
2100 2100
 		if ($flag_env) {
2101 2101
 			$_l = "array_merge(\$Pile[0],$_l)";
2102 2102
 		}
@@ -2206,12 +2206,12 @@  discard block
 block discarded – undo
2206 2206
 function balise_DOUBLONS_dist($p) {
2207 2207
 	if ($type = interprete_argument_balise(1, $p)) {
2208 2208
 		if ($famille = interprete_argument_balise(2, $p)) {
2209
-			$type .= '.' . $famille;
2209
+			$type .= '.'.$famille;
2210 2210
 		}
2211
-		$p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2211
+		$p->code = '(isset($doublons['.$type.']) ? $doublons['.$type.'] : "")';
2212 2212
 		if (!$p->etoile) {
2213 2213
 			$p->code = 'array_filter(array_map("intval",explode(",",'
2214
-				. $p->code . ')))';
2214
+				. $p->code.')))';
2215 2215
 		}
2216 2216
 	} else {
2217 2217
 		$p->code = '$doublons';
@@ -2340,7 +2340,7 @@  discard block
 block discarded – undo
2340 2340
 			$_code[] = "$_key => $_val";
2341 2341
 		}
2342 2342
 	} while ($_key && $_val);
2343
-	$p->code = 'array(' . join(', ', $_code) . ')';
2343
+	$p->code = 'array('.join(', ', $_code).')';
2344 2344
 	$p->interdire_scripts = false;
2345 2345
 
2346 2346
 	return $p;
@@ -2367,7 +2367,7 @@  discard block
 block discarded – undo
2367 2367
 	while ($_val = interprete_argument_balise($n++, $p)) {
2368 2368
 		$_code[] = $_val;
2369 2369
 	}
2370
-	$p->code = 'array(' . join(', ', $_code) . ')';
2370
+	$p->code = 'array('.join(', ', $_code).')';
2371 2371
 	$p->interdire_scripts = false;
2372 2372
 
2373 2373
 	return $p;
@@ -2412,8 +2412,8 @@  discard block
 block discarded – undo
2412 2412
 		$_code[] = $_v;
2413 2413
 	}
2414 2414
 
2415
-	$p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(', ',
2416
-			$_code) . ')?" ":"")';
2415
+	$p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser('.join(', ',
2416
+			$_code).')?" ":"")';
2417 2417
 	$p->interdire_scripts = false;
2418 2418
 
2419 2419
 	return $p;
@@ -2446,7 +2446,7 @@  discard block
 block discarded – undo
2446 2446
 	$type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2447 2447
 
2448 2448
 	$f = chercher_filtre('info_plugin');
2449
-	$p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2449
+	$p->code = $f.'('.$plugin.', '.$type_info.')';
2450 2450
 
2451 2451
 	return $p;
2452 2452
 }
@@ -2470,7 +2470,7 @@  discard block
 block discarded – undo
2470 2470
  **/
2471 2471
 function balise_AIDER_dist($p) {
2472 2472
 	$_motif = interprete_argument_balise(1, $p);
2473
-	$s = "'" . addslashes($p->descr['sourcefile']) . "'";
2473
+	$s = "'".addslashes($p->descr['sourcefile'])."'";
2474 2474
 	$p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif,$s, \$Pile[0]):'')";
2475 2475
 
2476 2476
 	return $p;
@@ -2689,12 +2689,12 @@  discard block
 block discarded – undo
2689 2689
 	$_issens = "in_array($_champ,array('>','<'))";
2690 2690
 	$_sens = "(strpos('< >',$_champ)-1)";
2691 2691
 
2692
-	$_variable = "((\$s=$_issens)?'sens':'tri')." . $boucle->modificateur['tri_nom'];
2692
+	$_variable = "((\$s=$_issens)?'sens':'tri').".$boucle->modificateur['tri_nom'];
2693 2693
 	$_url = "parametre_url(self(),$_variable,\$s?$_sens:$_champ)";
2694
-	$_url = "parametre_url($_url,'var_memotri',strncmp(" . $boucle->modificateur['tri_nom'] . ",'session',7)==0?$_variable:'')";
2695
-	$_on = "\$s?(" . $boucle->modificateur['tri_sens'] . "==$_sens" . '):(' . $boucle->modificateur['tri_champ'] . "==$_champ)";
2694
+	$_url = "parametre_url($_url,'var_memotri',strncmp(".$boucle->modificateur['tri_nom'].",'session',7)==0?$_variable:'')";
2695
+	$_on = "\$s?(".$boucle->modificateur['tri_sens']."==$_sens".'):('.$boucle->modificateur['tri_champ']."==$_champ)";
2696 2696
 
2697
-	$p->code = "lien_ou_expose($_url,$_libelle,$_on" . ($_class ? ",$_class" : "") . ")";
2697
+	$p->code = "lien_ou_expose($_url,$_libelle,$_on".($_class ? ",$_class" : "").")";
2698 2698
 	//$p->code = "''";
2699 2699
 	$p->interdire_scripts = false;
2700 2700
 
@@ -2768,7 +2768,7 @@  discard block
 block discarded – undo
2768 2768
 		$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2769 2769
 	}
2770 2770
 
2771
-	$p->code = "(objet_test_si_publie(" . $_type . ",intval(" . $_id . ")," . _q($connect) . ")?' ':'')";
2771
+	$p->code = "(objet_test_si_publie(".$_type.",intval(".$_id."),"._q($connect).")?' ':'')";
2772 2772
 	$p->interdire_scripts = false;
2773 2773
 
2774 2774
 	return $p;
Please login to merge, or discard this patch.
ecrire/public/evaluer_page.php 3 patches
Indentation   +55 added lines, -55 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 /**
@@ -33,64 +33,64 @@  discard block
 block discarded – undo
33 33
 // Cas d'une page contenant du PHP :
34 34
 if (empty($page['process_ins']) or $page['process_ins'] != 'html') {
35 35
 
36
-	include_spip('inc/lang');
36
+    include_spip('inc/lang');
37 37
 
38
-	// restaurer l'etat des notes avant calcul
39
-	if (isset($page['notes'])
40
-		and $page['notes']
41
-		and $notes = charger_fonction("notes", "inc", true)
42
-	) {
43
-		$notes($page['notes'], 'restaurer_etat');
44
-	}
45
-	ob_start();
46
-	if (strpos($page['texte'], '?xml') !== false) {
47
-		$page['texte'] = str_replace('<' . '?xml', "<\1?xml", $page['texte']);
48
-	}
38
+    // restaurer l'etat des notes avant calcul
39
+    if (isset($page['notes'])
40
+        and $page['notes']
41
+        and $notes = charger_fonction("notes", "inc", true)
42
+    ) {
43
+        $notes($page['notes'], 'restaurer_etat');
44
+    }
45
+    ob_start();
46
+    if (strpos($page['texte'], '?xml') !== false) {
47
+        $page['texte'] = str_replace('<' . '?xml', "<\1?xml", $page['texte']);
48
+    }
49 49
 
50
-	try {
51
-		$res = eval('?' . '>' . $page['texte']);
52
-		// error catching 5.2<=PHP<7
53
-		if ($res === false
54
-		  and function_exists('error_get_last')
55
-		  and ($erreur = error_get_last()) ) {
56
-			$code = $page['texte'];
57
-			$GLOBALS['numero_ligne_php'] = 1;
58
-			if (!function_exists('numerote_ligne_php')){
59
-				function numerote_ligne_php($match){
60
-					$GLOBALS['numero_ligne_php']++;
61
-					return "\n/*".str_pad($GLOBALS['numero_ligne_php'],3,"0",STR_PAD_LEFT)."*/";
62
-				}
63
-			}
64
-			$code = "/*001*/".preg_replace_callback(",\n,","numerote_ligne_php",$code);
65
-			$code = trim(highlight_string($code,true));
66
-			erreur_squelette("L".$erreur['line'].": ".$erreur['message']."<br />".$code,array($page['source'],'',$erreur['file'],'',$GLOBALS['spip_lang']));
67
-			$page['texte'] = "<!-- Erreur -->";
68
-		}
69
-		else {
70
-			$page['texte'] = ob_get_contents();
71
-		}
72
-	}
73
-	catch (Exception $e){
74
-		$code = $page['texte'];
75
-		$GLOBALS['numero_ligne_php'] = 1;
76
-		if (!function_exists('numerote_ligne_php')){
77
-			function numerote_ligne_php($match){
78
-				$GLOBALS['numero_ligne_php']++;
79
-				return "\n/*".str_pad($GLOBALS['numero_ligne_php'],3,"0",STR_PAD_LEFT)."*/";
80
-			}
81
-		}
82
-		$code = "/*001*/".preg_replace_callback(",\n,","numerote_ligne_php",$code);
83
-		$code = trim(highlight_string($code,true));
84
-		erreur_squelette("L".$e->getLine().": ".$e->getMessage()."<br />".$code,array($page['source'],'',$e->getFile(),'',$GLOBALS['spip_lang']));
85
-		$page['texte'] = "<!-- Erreur -->";
86
-	}
87
-	ob_end_clean();
50
+    try {
51
+        $res = eval('?' . '>' . $page['texte']);
52
+        // error catching 5.2<=PHP<7
53
+        if ($res === false
54
+          and function_exists('error_get_last')
55
+          and ($erreur = error_get_last()) ) {
56
+            $code = $page['texte'];
57
+            $GLOBALS['numero_ligne_php'] = 1;
58
+            if (!function_exists('numerote_ligne_php')){
59
+                function numerote_ligne_php($match){
60
+                    $GLOBALS['numero_ligne_php']++;
61
+                    return "\n/*".str_pad($GLOBALS['numero_ligne_php'],3,"0",STR_PAD_LEFT)."*/";
62
+                }
63
+            }
64
+            $code = "/*001*/".preg_replace_callback(",\n,","numerote_ligne_php",$code);
65
+            $code = trim(highlight_string($code,true));
66
+            erreur_squelette("L".$erreur['line'].": ".$erreur['message']."<br />".$code,array($page['source'],'',$erreur['file'],'',$GLOBALS['spip_lang']));
67
+            $page['texte'] = "<!-- Erreur -->";
68
+        }
69
+        else {
70
+            $page['texte'] = ob_get_contents();
71
+        }
72
+    }
73
+    catch (Exception $e){
74
+        $code = $page['texte'];
75
+        $GLOBALS['numero_ligne_php'] = 1;
76
+        if (!function_exists('numerote_ligne_php')){
77
+            function numerote_ligne_php($match){
78
+                $GLOBALS['numero_ligne_php']++;
79
+                return "\n/*".str_pad($GLOBALS['numero_ligne_php'],3,"0",STR_PAD_LEFT)."*/";
80
+            }
81
+        }
82
+        $code = "/*001*/".preg_replace_callback(",\n,","numerote_ligne_php",$code);
83
+        $code = trim(highlight_string($code,true));
84
+        erreur_squelette("L".$e->getLine().": ".$e->getMessage()."<br />".$code,array($page['source'],'',$e->getFile(),'',$GLOBALS['spip_lang']));
85
+        $page['texte'] = "<!-- Erreur -->";
86
+    }
87
+    ob_end_clean();
88 88
 
89
-	$page['process_ins'] = 'html';
89
+    $page['process_ins'] = 'html';
90 90
 
91
-	if (strpos($page['texte'], '?xml') !== false) {
92
-		$page['texte'] = str_replace("<\1?xml", '<' . '?xml', $page['texte']);
93
-	}
91
+    if (strpos($page['texte'], '?xml') !== false) {
92
+        $page['texte'] = str_replace("<\1?xml", '<' . '?xml', $page['texte']);
93
+    }
94 94
 }
95 95
 
96 96
 page_base_href($page['texte']);
Please login to merge, or discard this patch.
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -44,44 +44,44 @@  discard block
 block discarded – undo
44 44
 	}
45 45
 	ob_start();
46 46
 	if (strpos($page['texte'], '?xml') !== false) {
47
-		$page['texte'] = str_replace('<' . '?xml', "<\1?xml", $page['texte']);
47
+		$page['texte'] = str_replace('<'.'?xml', "<\1?xml", $page['texte']);
48 48
 	}
49 49
 
50 50
 	try {
51
-		$res = eval('?' . '>' . $page['texte']);
51
+		$res = eval('?'.'>'.$page['texte']);
52 52
 		// error catching 5.2<=PHP<7
53 53
 		if ($res === false
54 54
 		  and function_exists('error_get_last')
55
-		  and ($erreur = error_get_last()) ) {
55
+		  and ($erreur = error_get_last())) {
56 56
 			$code = $page['texte'];
57 57
 			$GLOBALS['numero_ligne_php'] = 1;
58
-			if (!function_exists('numerote_ligne_php')){
59
-				function numerote_ligne_php($match){
58
+			if (!function_exists('numerote_ligne_php')) {
59
+				function numerote_ligne_php($match) {
60 60
 					$GLOBALS['numero_ligne_php']++;
61
-					return "\n/*".str_pad($GLOBALS['numero_ligne_php'],3,"0",STR_PAD_LEFT)."*/";
61
+					return "\n/*".str_pad($GLOBALS['numero_ligne_php'], 3, "0", STR_PAD_LEFT)."*/";
62 62
 				}
63 63
 			}
64
-			$code = "/*001*/".preg_replace_callback(",\n,","numerote_ligne_php",$code);
65
-			$code = trim(highlight_string($code,true));
66
-			erreur_squelette("L".$erreur['line'].": ".$erreur['message']."<br />".$code,array($page['source'],'',$erreur['file'],'',$GLOBALS['spip_lang']));
64
+			$code = "/*001*/".preg_replace_callback(",\n,", "numerote_ligne_php", $code);
65
+			$code = trim(highlight_string($code, true));
66
+			erreur_squelette("L".$erreur['line'].": ".$erreur['message']."<br />".$code, array($page['source'], '', $erreur['file'], '', $GLOBALS['spip_lang']));
67 67
 			$page['texte'] = "<!-- Erreur -->";
68 68
 		}
69 69
 		else {
70 70
 			$page['texte'] = ob_get_contents();
71 71
 		}
72 72
 	}
73
-	catch (Exception $e){
73
+	catch (Exception $e) {
74 74
 		$code = $page['texte'];
75 75
 		$GLOBALS['numero_ligne_php'] = 1;
76
-		if (!function_exists('numerote_ligne_php')){
77
-			function numerote_ligne_php($match){
76
+		if (!function_exists('numerote_ligne_php')) {
77
+			function numerote_ligne_php($match) {
78 78
 				$GLOBALS['numero_ligne_php']++;
79
-				return "\n/*".str_pad($GLOBALS['numero_ligne_php'],3,"0",STR_PAD_LEFT)."*/";
79
+				return "\n/*".str_pad($GLOBALS['numero_ligne_php'], 3, "0", STR_PAD_LEFT)."*/";
80 80
 			}
81 81
 		}
82
-		$code = "/*001*/".preg_replace_callback(",\n,","numerote_ligne_php",$code);
83
-		$code = trim(highlight_string($code,true));
84
-		erreur_squelette("L".$e->getLine().": ".$e->getMessage()."<br />".$code,array($page['source'],'',$e->getFile(),'',$GLOBALS['spip_lang']));
82
+		$code = "/*001*/".preg_replace_callback(",\n,", "numerote_ligne_php", $code);
83
+		$code = trim(highlight_string($code, true));
84
+		erreur_squelette("L".$e->getLine().": ".$e->getMessage()."<br />".$code, array($page['source'], '', $e->getFile(), '', $GLOBALS['spip_lang']));
85 85
 		$page['texte'] = "<!-- Erreur -->";
86 86
 	}
87 87
 	ob_end_clean();
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
 	$page['process_ins'] = 'html';
90 90
 
91 91
 	if (strpos($page['texte'], '?xml') !== false) {
92
-		$page['texte'] = str_replace("<\1?xml", '<' . '?xml', $page['texte']);
92
+		$page['texte'] = str_replace("<\1?xml", '<'.'?xml', $page['texte']);
93 93
 	}
94 94
 }
95 95
 
Please login to merge, or discard this patch.
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -65,12 +65,10 @@
 block discarded – undo
65 65
 			$code = trim(highlight_string($code,true));
66 66
 			erreur_squelette("L".$erreur['line'].": ".$erreur['message']."<br />".$code,array($page['source'],'',$erreur['file'],'',$GLOBALS['spip_lang']));
67 67
 			$page['texte'] = "<!-- Erreur -->";
68
-		}
69
-		else {
68
+		} else {
70 69
 			$page['texte'] = ob_get_contents();
71 70
 		}
72
-	}
73
-	catch (Exception $e){
71
+	} catch (Exception $e){
74 72
 		$code = $page['texte'];
75 73
 		$GLOBALS['numero_ligne_php'] = 1;
76 74
 		if (!function_exists('numerote_ligne_php')){
Please login to merge, or discard this patch.