Completed
Push — master ( 0f44c6...bc13d2 )
by cam
01:34
created
ecrire/base/trouver_table.php 1 patch
Indentation   +138 added lines, -138 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\SQL\Tables
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 include_spip('base/objets');
22 22
 
@@ -64,141 +64,141 @@  discard block
 block discarded – undo
64 64
  *
65 65
  **/
66 66
 function base_trouver_table_dist($nom, $serveur = '', $table_spip = true) {
67
-	static $nom_cache_desc_sql = array();
68
-
69
-	if (!spip_connect($serveur)
70
-		or !preg_match('/^[a-zA-Z0-9._-]*/', $nom)
71
-	) {
72
-		return null;
73
-	}
74
-
75
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
76
-	$objets_sql = lister_tables_objets_sql("::md5");
77
-
78
-	// le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
79
-	// ce qui permet une auto invalidation en cas de modif manuelle du fichier
80
-	// de connexion, et tout risque d'ambiguite
81
-	if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])) {
82
-		$nom_cache_desc_sql[$serveur][$objets_sql] =
83
-			_DIR_CACHE . 'sql_desc_'
84
-			. ($serveur ? "{$serveur}_" : "")
85
-			. substr(md5($connexion['db'] . ":" . $connexion['prefixe'] . ":$objets_sql"), 0, 8)
86
-			. '.txt';
87
-		// nouveau nom de cache = nouvelle version en memoire
88
-		unset($connexion['tables']);
89
-	}
90
-
91
-	// un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
92
-	if (!$nom) {
93
-		spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
94
-		$connexion['tables'] = array();
95
-
96
-		return null;
97
-	}
98
-
99
-	$nom_sql = $nom;
100
-	if (preg_match('/\.(.*)$/', $nom, $s)) {
101
-		$nom_sql = $s[1];
102
-	} else {
103
-		$nom_sql = $nom;
104
-	}
105
-
106
-	$fdesc = $desc = '';
107
-	$connexion = &$GLOBALS['connexions'][$serveur ? $serveur : 0];
108
-
109
-	// base sous SPIP: gerer les abreviations explicites des noms de table
110
-	if ($connexion['spip_connect_version']) {
111
-		if ($table_spip and isset($GLOBALS['table_des_tables'][$nom])) {
112
-			$nom = $GLOBALS['table_des_tables'][$nom];
113
-			$nom_sql = 'spip_' . $nom;
114
-		}
115
-	}
116
-
117
-	// si c'est la premiere table qu'on cherche
118
-	// et si on est pas explicitement en recalcul
119
-	// on essaye de recharger le cache des decriptions de ce serveur
120
-	// dans le fichier cache
121
-	if (!isset($connexion['tables'][$nom_sql])
122
-		and defined('_VAR_MODE') and _VAR_MODE !== 'recalcul'
123
-		and (!isset($connexion['tables']) or !$connexion['tables'])
124
-	) {
125
-		if (lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], $desc_cache)
126
-			and $desc_cache = unserialize($desc_cache)
127
-		) {
128
-			$connexion['tables'] = $desc_cache;
129
-		}
130
-	}
131
-	if ($table_spip and !isset($connexion['tables'][$nom_sql])) {
132
-
133
-		if (isset($GLOBALS['tables_principales'][$nom_sql])) {
134
-			$fdesc = $GLOBALS['tables_principales'][$nom_sql];
135
-		}
136
-		// meme si pas d'abreviation declaree, trouver la table spip_$nom
137
-		// si c'est une table principale,
138
-		// puisqu'on le fait aussi pour les tables auxiliaires
139
-		elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_' . $nom])) {
140
-			$nom_sql = 'spip_' . $nom;
141
-			$fdesc = &$GLOBALS['tables_principales'][$nom_sql];
142
-		} elseif (isset($GLOBALS['tables_auxiliaires'][$n = $nom])
143
-			or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_' . $nom])
144
-		) {
145
-			$nom_sql = $n;
146
-			$fdesc = &$GLOBALS['tables_auxiliaires'][$n];
147
-		}  # table locale a cote de SPIP, comme non SPIP:
148
-	}
149
-	if (!isset($connexion['tables'][$nom_sql])) {
150
-
151
-		// La *vraie* base a la priorite
152
-		$desc = sql_showtable($nom_sql, $table_spip, $serveur);
153
-		if (!$desc or !$desc['field']) {
154
-			if (!$fdesc) {
155
-				spip_log("trouver_table: table inconnue '$serveur' '$nom'", 'base' . _LOG_INFO_IMPORTANTE);
156
-
157
-				return null;
158
-			}
159
-			// on ne sait pas lire la structure de la table :
160
-			// on retombe sur la description donnee dans les fichiers spip
161
-			$desc = $fdesc;
162
-			$desc['exist'] = false;
163
-		} else {
164
-			$desc['exist'] = true;
165
-			// gerer le cas des cles vides (echec de l'analyse sur une vue par exemple)
166
-			// pour recuperer la declaration de lister_tables_objets_sql() si il y en a une
167
-			if (! $desc['key']) {
168
-				spip_log("trouver_table: table sans cle '$serveur' '$nom'", 'base');
169
-				unset($desc['key']);
170
-			}
171
-		}
172
-
173
-		$desc['table'] = $desc['table_sql'] = $nom_sql;
174
-		$desc['connexion'] = $serveur;
175
-
176
-		// charger les infos declarees pour cette table
177
-		// en lui passant les infos connues
178
-		// $desc est prioritaire pour la description de la table
179
-		$desc = array_merge(lister_tables_objets_sql($nom_sql, $desc), $desc);
180
-		// s'assurer qu'on a toujours un 'key'
181
-		if (!isset($desc['key']) && !empty($fdesc['key'])){
182
-			$desc['key'] = $fdesc['key'];
183
-		}
184
-		if (! isset($desc['key'])) {
185
-			$desc['key'] = array();
186
-		}
187
-
188
-		// si tables_objets_sql est bien fini d'init, on peut cacher
189
-		$connexion['tables'][$nom_sql] = $desc;
190
-		$res = &$connexion['tables'][$nom_sql];
191
-		// une nouvelle table a ete decrite
192
-		// mettons donc a jour le cache des descriptions de ce serveur
193
-		if (is_writeable(_DIR_CACHE)) {
194
-			ecrire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], serialize($connexion['tables']), true);
195
-		}
196
-	} else {
197
-		$res = &$connexion['tables'][$nom_sql];
198
-	}
199
-
200
-	// toujours retourner $nom dans id_table
201
-	$res['id_table'] = $nom;
202
-
203
-	return $res;
67
+    static $nom_cache_desc_sql = array();
68
+
69
+    if (!spip_connect($serveur)
70
+        or !preg_match('/^[a-zA-Z0-9._-]*/', $nom)
71
+    ) {
72
+        return null;
73
+    }
74
+
75
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
76
+    $objets_sql = lister_tables_objets_sql("::md5");
77
+
78
+    // le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
79
+    // ce qui permet une auto invalidation en cas de modif manuelle du fichier
80
+    // de connexion, et tout risque d'ambiguite
81
+    if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])) {
82
+        $nom_cache_desc_sql[$serveur][$objets_sql] =
83
+            _DIR_CACHE . 'sql_desc_'
84
+            . ($serveur ? "{$serveur}_" : "")
85
+            . substr(md5($connexion['db'] . ":" . $connexion['prefixe'] . ":$objets_sql"), 0, 8)
86
+            . '.txt';
87
+        // nouveau nom de cache = nouvelle version en memoire
88
+        unset($connexion['tables']);
89
+    }
90
+
91
+    // un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
92
+    if (!$nom) {
93
+        spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
94
+        $connexion['tables'] = array();
95
+
96
+        return null;
97
+    }
98
+
99
+    $nom_sql = $nom;
100
+    if (preg_match('/\.(.*)$/', $nom, $s)) {
101
+        $nom_sql = $s[1];
102
+    } else {
103
+        $nom_sql = $nom;
104
+    }
105
+
106
+    $fdesc = $desc = '';
107
+    $connexion = &$GLOBALS['connexions'][$serveur ? $serveur : 0];
108
+
109
+    // base sous SPIP: gerer les abreviations explicites des noms de table
110
+    if ($connexion['spip_connect_version']) {
111
+        if ($table_spip and isset($GLOBALS['table_des_tables'][$nom])) {
112
+            $nom = $GLOBALS['table_des_tables'][$nom];
113
+            $nom_sql = 'spip_' . $nom;
114
+        }
115
+    }
116
+
117
+    // si c'est la premiere table qu'on cherche
118
+    // et si on est pas explicitement en recalcul
119
+    // on essaye de recharger le cache des decriptions de ce serveur
120
+    // dans le fichier cache
121
+    if (!isset($connexion['tables'][$nom_sql])
122
+        and defined('_VAR_MODE') and _VAR_MODE !== 'recalcul'
123
+        and (!isset($connexion['tables']) or !$connexion['tables'])
124
+    ) {
125
+        if (lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], $desc_cache)
126
+            and $desc_cache = unserialize($desc_cache)
127
+        ) {
128
+            $connexion['tables'] = $desc_cache;
129
+        }
130
+    }
131
+    if ($table_spip and !isset($connexion['tables'][$nom_sql])) {
132
+
133
+        if (isset($GLOBALS['tables_principales'][$nom_sql])) {
134
+            $fdesc = $GLOBALS['tables_principales'][$nom_sql];
135
+        }
136
+        // meme si pas d'abreviation declaree, trouver la table spip_$nom
137
+        // si c'est une table principale,
138
+        // puisqu'on le fait aussi pour les tables auxiliaires
139
+        elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_' . $nom])) {
140
+            $nom_sql = 'spip_' . $nom;
141
+            $fdesc = &$GLOBALS['tables_principales'][$nom_sql];
142
+        } elseif (isset($GLOBALS['tables_auxiliaires'][$n = $nom])
143
+            or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_' . $nom])
144
+        ) {
145
+            $nom_sql = $n;
146
+            $fdesc = &$GLOBALS['tables_auxiliaires'][$n];
147
+        }  # table locale a cote de SPIP, comme non SPIP:
148
+    }
149
+    if (!isset($connexion['tables'][$nom_sql])) {
150
+
151
+        // La *vraie* base a la priorite
152
+        $desc = sql_showtable($nom_sql, $table_spip, $serveur);
153
+        if (!$desc or !$desc['field']) {
154
+            if (!$fdesc) {
155
+                spip_log("trouver_table: table inconnue '$serveur' '$nom'", 'base' . _LOG_INFO_IMPORTANTE);
156
+
157
+                return null;
158
+            }
159
+            // on ne sait pas lire la structure de la table :
160
+            // on retombe sur la description donnee dans les fichiers spip
161
+            $desc = $fdesc;
162
+            $desc['exist'] = false;
163
+        } else {
164
+            $desc['exist'] = true;
165
+            // gerer le cas des cles vides (echec de l'analyse sur une vue par exemple)
166
+            // pour recuperer la declaration de lister_tables_objets_sql() si il y en a une
167
+            if (! $desc['key']) {
168
+                spip_log("trouver_table: table sans cle '$serveur' '$nom'", 'base');
169
+                unset($desc['key']);
170
+            }
171
+        }
172
+
173
+        $desc['table'] = $desc['table_sql'] = $nom_sql;
174
+        $desc['connexion'] = $serveur;
175
+
176
+        // charger les infos declarees pour cette table
177
+        // en lui passant les infos connues
178
+        // $desc est prioritaire pour la description de la table
179
+        $desc = array_merge(lister_tables_objets_sql($nom_sql, $desc), $desc);
180
+        // s'assurer qu'on a toujours un 'key'
181
+        if (!isset($desc['key']) && !empty($fdesc['key'])){
182
+            $desc['key'] = $fdesc['key'];
183
+        }
184
+        if (! isset($desc['key'])) {
185
+            $desc['key'] = array();
186
+        }
187
+
188
+        // si tables_objets_sql est bien fini d'init, on peut cacher
189
+        $connexion['tables'][$nom_sql] = $desc;
190
+        $res = &$connexion['tables'][$nom_sql];
191
+        // une nouvelle table a ete decrite
192
+        // mettons donc a jour le cache des descriptions de ce serveur
193
+        if (is_writeable(_DIR_CACHE)) {
194
+            ecrire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], serialize($connexion['tables']), true);
195
+        }
196
+    } else {
197
+        $res = &$connexion['tables'][$nom_sql];
198
+    }
199
+
200
+    // toujours retourner $nom dans id_table
201
+    $res['id_table'] = $nom;
202
+
203
+    return $res;
204 204
 }
Please login to merge, or discard this patch.
ecrire/action/editer_liens.php 1 patch
Indentation   +520 added lines, -520 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
  */
30 30
 
31 31
 if (!defined('_ECRIRE_INC_VERSION')) {
32
-	return;
32
+    return;
33 33
 }
34 34
 
35 35
 // charger la gestion les rôles sur les objets
@@ -47,21 +47,21 @@  discard block
 block discarded – undo
47 47
  *     - array(clé primaire, nom de la table de lien) si associable
48 48
  */
49 49
 function objet_associable($objet) {
50
-	$trouver_table = charger_fonction('trouver_table', 'base');
51
-	$table_sql = table_objet_sql($objet);
50
+    $trouver_table = charger_fonction('trouver_table', 'base');
51
+    $table_sql = table_objet_sql($objet);
52 52
 
53
-	$l = "";
54
-	if ($primary = id_table_objet($objet)
55
-		and $trouver_table($l = $table_sql . "_liens")
56
-		and !preg_match(',[^\w],', $primary)
57
-		and !preg_match(',[^\w],', $l)
58
-	) {
59
-		return array($primary, $l);
60
-	}
53
+    $l = "";
54
+    if ($primary = id_table_objet($objet)
55
+        and $trouver_table($l = $table_sql . "_liens")
56
+        and !preg_match(',[^\w],', $primary)
57
+        and !preg_match(',[^\w],', $l)
58
+    ) {
59
+        return array($primary, $l);
60
+    }
61 61
 
62
-	spip_log("Objet $objet non associable : ne dispose pas d'une cle primaire $primary OU d'une table liens $l");
62
+    spip_log("Objet $objet non associable : ne dispose pas d'une cle primaire $primary OU d'une table liens $l");
63 63
 
64
-	return false;
64
+    return false;
65 65
 }
66 66
 
67 67
 /**
@@ -87,13 +87,13 @@  discard block
 block discarded – undo
87 87
  * @return bool|int
88 88
  */
89 89
 function objet_associer($objets_source, $objets_lies, $qualif = null) {
90
-	$modifs = objet_traiter_liaisons('lien_insert', $objets_source, $objets_lies, $qualif);
90
+    $modifs = objet_traiter_liaisons('lien_insert', $objets_source, $objets_lies, $qualif);
91 91
 
92
-	if ($qualif) {
93
-		objet_qualifier_liens($objets_source, $objets_lies, $qualif);
94
-	}
92
+    if ($qualif) {
93
+        objet_qualifier_liens($objets_source, $objets_lies, $qualif);
94
+    }
95 95
 
96
-	return $modifs; // pas d'erreur
96
+    return $modifs; // pas d'erreur
97 97
 }
98 98
 
99 99
 
@@ -127,7 +127,7 @@  discard block
 block discarded – undo
127 127
  * @return bool|int
128 128
  */
129 129
 function objet_dissocier($objets_source, $objets_lies, $cond = null) {
130
-	return objet_traiter_liaisons('lien_delete', $objets_source, $objets_lies, $cond);
130
+    return objet_traiter_liaisons('lien_delete', $objets_source, $objets_lies, $cond);
131 131
 }
132 132
 
133 133
 
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
  * @return bool|int
153 153
  */
154 154
 function objet_qualifier_liens($objets_source, $objets_lies, $qualif) {
155
-	return objet_traiter_liaisons('lien_set', $objets_source, $objets_lies, $qualif);
155
+    return objet_traiter_liaisons('lien_set', $objets_source, $objets_lies, $qualif);
156 156
 }
157 157
 
158 158
 
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
  *     Liste des trouvailles
188 188
  */
189 189
 function objet_trouver_liens($objets_source, $objets_lies, $cond = null) {
190
-	return objet_traiter_liaisons('lien_find', $objets_source, $objets_lies, $cond);
190
+    return objet_traiter_liaisons('lien_find', $objets_source, $objets_lies, $cond);
191 191
 }
192 192
 
193 193
 
@@ -211,8 +211,8 @@  discard block
 block discarded – undo
211 211
  * @return int
212 212
  */
213 213
 function objet_optimiser_liens($objets_source, $objets_lies) {
214
-	spip_log("objet_optimiser_liens : ".json_encode($objets_source) . ', ' . json_encode($objets_lies), 'genie'._LOG_DEBUG);
215
-	return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
214
+    spip_log("objet_optimiser_liens : ".json_encode($objets_source) . ', ' . json_encode($objets_lies), 'genie'._LOG_DEBUG);
215
+    return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
216 216
 }
217 217
 
218 218
 
@@ -232,37 +232,37 @@  discard block
 block discarded – undo
232 232
  *     Nombre de liens copiés
233 233
  */
234 234
 function objet_dupliquer_liens($objet, $id_source, $id_cible, $types = null, $exclure_types = null) {
235
-	include_spip('base/objets');
236
-	$tables = lister_tables_objets_sql();
237
-	$n = 0;
238
-	foreach ($tables as $table_sql => $infos) {
239
-		if (
240
-			(is_null($types) or in_array($infos['type'], $types))
241
-			and (is_null($exclure_types) or !in_array($infos['type'], $exclure_types))
242
-		) {
243
-			if (objet_associable($infos['type'])) {
244
-				$liens = (($infos['type'] == $objet) ?
245
-					objet_trouver_liens(array($objet => $id_source), '*')
246
-					:
247
-					objet_trouver_liens(array($infos['type'] => '*'), array($objet => $id_source)));
248
-				foreach ($liens as $lien) {
249
-					$n++;
250
-					if ($infos['type'] == $objet) {
251
-						if (
252
-							(is_null($types) or in_array($lien['objet'], $types))
253
-							and (is_null($exclure_types) or !in_array($lien['objet'], $exclure_types))
254
-						) {
255
-							objet_associer(array($objet => $id_cible), array($lien['objet'] => $lien[$lien['objet']]), $lien);
256
-						}
257
-					} else {
258
-						objet_associer(array($infos['type'] => $lien[$infos['type']]), array($objet => $id_cible), $lien);
259
-					}
260
-				}
261
-			}
262
-		}
263
-	}
264
-
265
-	return $n;
235
+    include_spip('base/objets');
236
+    $tables = lister_tables_objets_sql();
237
+    $n = 0;
238
+    foreach ($tables as $table_sql => $infos) {
239
+        if (
240
+            (is_null($types) or in_array($infos['type'], $types))
241
+            and (is_null($exclure_types) or !in_array($infos['type'], $exclure_types))
242
+        ) {
243
+            if (objet_associable($infos['type'])) {
244
+                $liens = (($infos['type'] == $objet) ?
245
+                    objet_trouver_liens(array($objet => $id_source), '*')
246
+                    :
247
+                    objet_trouver_liens(array($infos['type'] => '*'), array($objet => $id_source)));
248
+                foreach ($liens as $lien) {
249
+                    $n++;
250
+                    if ($infos['type'] == $objet) {
251
+                        if (
252
+                            (is_null($types) or in_array($lien['objet'], $types))
253
+                            and (is_null($exclure_types) or !in_array($lien['objet'], $exclure_types))
254
+                        ) {
255
+                            objet_associer(array($objet => $id_cible), array($lien['objet'] => $lien[$lien['objet']]), $lien);
256
+                        }
257
+                    } else {
258
+                        objet_associer(array($infos['type'] => $lien[$infos['type']]), array($objet => $id_cible), $lien);
259
+                    }
260
+                }
261
+            }
262
+        }
263
+    }
264
+
265
+    return $n;
266 266
 }
267 267
 
268 268
 /**
@@ -304,38 +304,38 @@  discard block
 block discarded – undo
304 304
  * @return bool|int|array
305 305
  */
306 306
 function objet_traiter_liaisons($operation, $objets_source, $objets_lies, $set = null) {
307
-	// accepter une syntaxe minimale pour supprimer tous les liens
308
-	if ($objets_lies == '*') {
309
-		$objets_lies = array('*' => '*');
310
-	}
311
-	$modifs = 0; // compter le nombre de modifications
312
-	$echec = null;
313
-	foreach ($objets_source as $objet => $ids) {
314
-		if ($a = objet_associable($objet)) {
315
-			list($primary, $l) = $a;
316
-			if (!is_array($ids)) {
317
-				$ids = array($ids);
318
-			} elseif (reset($ids) == "NOT") {
319
-				// si on demande un array('NOT',...) => recuperer la liste d'ids correspondants
320
-				$where = lien_where($primary, $ids, '*', '*');
321
-				$ids = sql_allfetsel($primary, $l, $where);
322
-				$ids = array_map('reset', $ids);
323
-			}
324
-			foreach ($ids as $id) {
325
-				$res = $operation($objet, $primary, $l, $id, $objets_lies, $set);
326
-				if ($res === false) {
327
-					spip_log("objet_traiter_liaisons [Echec] : $operation sur $objet/$primary/$l/$id", _LOG_ERREUR);
328
-					$echec = true;
329
-				} else {
330
-					$modifs = ($modifs ? (is_array($res) ? array_merge($modifs, $res) : $modifs + $res) : $res);
331
-				}
332
-			}
333
-		} else {
334
-			$echec = true;
335
-		}
336
-	}
337
-
338
-	return ($echec ? false : $modifs); // pas d'erreur
307
+    // accepter une syntaxe minimale pour supprimer tous les liens
308
+    if ($objets_lies == '*') {
309
+        $objets_lies = array('*' => '*');
310
+    }
311
+    $modifs = 0; // compter le nombre de modifications
312
+    $echec = null;
313
+    foreach ($objets_source as $objet => $ids) {
314
+        if ($a = objet_associable($objet)) {
315
+            list($primary, $l) = $a;
316
+            if (!is_array($ids)) {
317
+                $ids = array($ids);
318
+            } elseif (reset($ids) == "NOT") {
319
+                // si on demande un array('NOT',...) => recuperer la liste d'ids correspondants
320
+                $where = lien_where($primary, $ids, '*', '*');
321
+                $ids = sql_allfetsel($primary, $l, $where);
322
+                $ids = array_map('reset', $ids);
323
+            }
324
+            foreach ($ids as $id) {
325
+                $res = $operation($objet, $primary, $l, $id, $objets_lies, $set);
326
+                if ($res === false) {
327
+                    spip_log("objet_traiter_liaisons [Echec] : $operation sur $objet/$primary/$l/$id", _LOG_ERREUR);
328
+                    $echec = true;
329
+                } else {
330
+                    $modifs = ($modifs ? (is_array($res) ? array_merge($modifs, $res) : $modifs + $res) : $res);
331
+                }
332
+            }
333
+        } else {
334
+            $echec = true;
335
+        }
336
+    }
337
+
338
+    return ($echec ? false : $modifs); // pas d'erreur
339 339
 }
340 340
 
341 341
 
@@ -364,106 +364,106 @@  discard block
 block discarded – undo
364 364
  *     Nombre d'insertions faites, false si échec.
365 365
  */
366 366
 function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif) {
367
-	$ins = 0;
368
-	$echec = null;
369
-	if (is_null($qualif)) {
370
-		$qualif = array();
371
-	}
372
-
373
-	foreach ($objets as $objet => $id_objets) {
374
-		if (!is_array($id_objets)) {
375
-			$id_objets = array($id_objets);
376
-		}
377
-
378
-		// role, colonne, where par défaut
379
-		list($role, $colonne_role, $cond) =
380
-			roles_trouver_dans_qualif($objet_source, $objet, $qualif);
381
-
382
-		foreach ($id_objets as $id_objet) {
383
-			$objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
384
-
385
-			$insertions = array(
386
-				'id_objet' => $id_objet,
387
-				'objet' => $objet,
388
-				$primary => $id
389
-			);
390
-			// rôle en plus s'il est défini
391
-			if ($role) {
392
-				$insertions += array(
393
-					$colonne_role => $role
394
-				);
395
-			}
396
-
397
-			if (lien_triables($table_lien)) {
398
-				$where = lien_where($primary, $id, $objet, $id_objet);
399
-				// si il y a deja un lien pour ce couple (avec un autre role?) on reprend le meme rang si non nul
400
-				if (!$rang = intval(sql_getfetsel('rang_lien', $table_lien, $where))) {
401
-					$where = lien_where($primary, '*', $objet, $id_objet);
402
-					$rang = intval(sql_getfetsel('max(rang_lien)', $table_lien, $where));
403
-					// si aucun lien n'a de rang, on en introduit pas, on garde zero
404
-					if ($rang>0) {
405
-						$rang = intval($rang) + 1;
406
-					}
407
-				}
408
-				$insertions['rang_lien'] = $rang;
409
-			}
410
-
411
-			$args = array(
412
-				'table_lien' => $table_lien,
413
-				'objet_source' => $objet_source,
414
-				'id_objet_source' => $id,
415
-				'objet' => $objet,
416
-				'id_objet' => $id_objet,
417
-				'role' => $role,
418
-				'colonne_role' => $colonne_role,
419
-				'action' => 'insert',
420
-			);
421
-
422
-			// Envoyer aux plugins
423
-			$insertions = pipeline('pre_edition_lien',
424
-				array(
425
-					'args' => $args,
426
-					'data' => $insertions
427
-				)
428
-			);
429
-			$args['id_objet'] = $insertions['id_objet'];
430
-
431
-			$where = lien_where($primary, $id, $objet, $id_objet, $cond);
432
-
433
-			if (($id_objet = intval($insertions['id_objet']) or in_array($objet, ['site', 'rubrique']))
434
-				and !sql_getfetsel($primary, $table_lien, $where)
435
-			) {
436
-
437
-				if (lien_triables($table_lien) and isset($insertions['rang_lien']) and intval($insertions['rang_lien'])) {
438
-					// on decale les liens de rang_lien>=la valeur inseree pour faire la place
439
-					$w = lien_where($primary, '*', $objet, $id_objet, array('rang_lien>='.intval($insertions['rang_lien']),"$primary!=".intval($id)));
440
-					sql_update($table_lien, array('rang_lien'=>'rang_lien+1'), $w);
441
-				}
442
-
443
-				$e = sql_insertq($table_lien, $insertions);
444
-				if ($e !== false) {
445
-					$ins++;
446
-					lien_propage_date_modif($objet, $id_objet);
447
-					lien_propage_date_modif($objet_source, $id);
448
-					// Envoyer aux plugins
449
-					pipeline('post_edition_lien',
450
-						array(
451
-							'args' => $args,
452
-							'data' => $insertions
453
-						)
454
-					);
455
-				} else {
456
-					$echec = true;
457
-				}
458
-			}
459
-		}
460
-	}
461
-	// si on a fait des insertions, on reordonne les liens concernes
462
-	if ($ins>0) {
463
-		lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
464
-	}
465
-
466
-	return ($echec ? false : $ins);
367
+    $ins = 0;
368
+    $echec = null;
369
+    if (is_null($qualif)) {
370
+        $qualif = array();
371
+    }
372
+
373
+    foreach ($objets as $objet => $id_objets) {
374
+        if (!is_array($id_objets)) {
375
+            $id_objets = array($id_objets);
376
+        }
377
+
378
+        // role, colonne, where par défaut
379
+        list($role, $colonne_role, $cond) =
380
+            roles_trouver_dans_qualif($objet_source, $objet, $qualif);
381
+
382
+        foreach ($id_objets as $id_objet) {
383
+            $objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
384
+
385
+            $insertions = array(
386
+                'id_objet' => $id_objet,
387
+                'objet' => $objet,
388
+                $primary => $id
389
+            );
390
+            // rôle en plus s'il est défini
391
+            if ($role) {
392
+                $insertions += array(
393
+                    $colonne_role => $role
394
+                );
395
+            }
396
+
397
+            if (lien_triables($table_lien)) {
398
+                $where = lien_where($primary, $id, $objet, $id_objet);
399
+                // si il y a deja un lien pour ce couple (avec un autre role?) on reprend le meme rang si non nul
400
+                if (!$rang = intval(sql_getfetsel('rang_lien', $table_lien, $where))) {
401
+                    $where = lien_where($primary, '*', $objet, $id_objet);
402
+                    $rang = intval(sql_getfetsel('max(rang_lien)', $table_lien, $where));
403
+                    // si aucun lien n'a de rang, on en introduit pas, on garde zero
404
+                    if ($rang>0) {
405
+                        $rang = intval($rang) + 1;
406
+                    }
407
+                }
408
+                $insertions['rang_lien'] = $rang;
409
+            }
410
+
411
+            $args = array(
412
+                'table_lien' => $table_lien,
413
+                'objet_source' => $objet_source,
414
+                'id_objet_source' => $id,
415
+                'objet' => $objet,
416
+                'id_objet' => $id_objet,
417
+                'role' => $role,
418
+                'colonne_role' => $colonne_role,
419
+                'action' => 'insert',
420
+            );
421
+
422
+            // Envoyer aux plugins
423
+            $insertions = pipeline('pre_edition_lien',
424
+                array(
425
+                    'args' => $args,
426
+                    'data' => $insertions
427
+                )
428
+            );
429
+            $args['id_objet'] = $insertions['id_objet'];
430
+
431
+            $where = lien_where($primary, $id, $objet, $id_objet, $cond);
432
+
433
+            if (($id_objet = intval($insertions['id_objet']) or in_array($objet, ['site', 'rubrique']))
434
+                and !sql_getfetsel($primary, $table_lien, $where)
435
+            ) {
436
+
437
+                if (lien_triables($table_lien) and isset($insertions['rang_lien']) and intval($insertions['rang_lien'])) {
438
+                    // on decale les liens de rang_lien>=la valeur inseree pour faire la place
439
+                    $w = lien_where($primary, '*', $objet, $id_objet, array('rang_lien>='.intval($insertions['rang_lien']),"$primary!=".intval($id)));
440
+                    sql_update($table_lien, array('rang_lien'=>'rang_lien+1'), $w);
441
+                }
442
+
443
+                $e = sql_insertq($table_lien, $insertions);
444
+                if ($e !== false) {
445
+                    $ins++;
446
+                    lien_propage_date_modif($objet, $id_objet);
447
+                    lien_propage_date_modif($objet_source, $id);
448
+                    // Envoyer aux plugins
449
+                    pipeline('post_edition_lien',
450
+                        array(
451
+                            'args' => $args,
452
+                            'data' => $insertions
453
+                        )
454
+                    );
455
+                } else {
456
+                    $echec = true;
457
+                }
458
+            }
459
+        }
460
+    }
461
+    // si on a fait des insertions, on reordonne les liens concernes
462
+    if ($ins>0) {
463
+        lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
464
+    }
465
+
466
+    return ($echec ? false : $ins);
467 467
 }
468 468
 
469 469
 
@@ -476,32 +476,32 @@  discard block
 block discarded – undo
476 476
  * @param array|string $objets
477 477
  */
478 478
 function lien_ordonner($objet_source, $primary, $table_lien, $id, $objets) {
479
-	if (!lien_triables($table_lien)) {
480
-		return;
481
-	}
482
-
483
-	foreach ($objets as $objet => $id_objets) {
484
-		if (!is_array($id_objets)) {
485
-			$id_objets = array($id_objets);
486
-		}
487
-
488
-		foreach ($id_objets as $id_objet) {
489
-			$objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
490
-
491
-			$where = lien_where($primary, '*', $objet, $id_objet);
492
-			$liens = sql_allfetsel("$primary, id_objet, objet, rang_lien", $table_lien, $where, $primary,"rang_lien");
493
-
494
-			$rangs = array_column($liens, 'rang_lien');
495
-			if (count($rangs) and (max($rangs)>0 or min($rangs)<0)) {
496
-				$rang = 1;
497
-				foreach ($liens as $lien) {
498
-					$where = lien_where($primary, $lien[$primary], $objet, $id_objet, array('rang_lien!='.intval($rang)));
499
-					sql_updateq($table_lien, array('rang_lien' => $rang), $where);
500
-					$rang++;
501
-				}
502
-			}
503
-		}
504
-	}
479
+    if (!lien_triables($table_lien)) {
480
+        return;
481
+    }
482
+
483
+    foreach ($objets as $objet => $id_objets) {
484
+        if (!is_array($id_objets)) {
485
+            $id_objets = array($id_objets);
486
+        }
487
+
488
+        foreach ($id_objets as $id_objet) {
489
+            $objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
490
+
491
+            $where = lien_where($primary, '*', $objet, $id_objet);
492
+            $liens = sql_allfetsel("$primary, id_objet, objet, rang_lien", $table_lien, $where, $primary,"rang_lien");
493
+
494
+            $rangs = array_column($liens, 'rang_lien');
495
+            if (count($rangs) and (max($rangs)>0 or min($rangs)<0)) {
496
+                $rang = 1;
497
+                foreach ($liens as $lien) {
498
+                    $where = lien_where($primary, $lien[$primary], $objet, $id_objet, array('rang_lien!='.intval($rang)));
499
+                    sql_updateq($table_lien, array('rang_lien' => $rang), $where);
500
+                    $rang++;
501
+                }
502
+            }
503
+        }
504
+    }
505 505
 }
506 506
 
507 507
 
@@ -512,18 +512,18 @@  discard block
 block discarded – undo
512 512
  * @return mixed
513 513
  */
514 514
 function lien_triables($table_lien) {
515
-	static $triables = array();
516
-	if (!isset($triables[$table_lien])) {
517
-		$trouver_table = charger_fonction('trouver_table', 'base');
518
-		$desc = $trouver_table($table_lien);
519
-		if ($desc and isset($desc['field']['rang_lien'])) {
520
-			$triables[$table_lien] = true;
521
-		}
522
-		else {
523
-			$triables[$table_lien] = false;
524
-		}
525
-	}
526
-	return $triables[$table_lien];
515
+    static $triables = array();
516
+    if (!isset($triables[$table_lien])) {
517
+        $trouver_table = charger_fonction('trouver_table', 'base');
518
+        $desc = $trouver_table($table_lien);
519
+        if ($desc and isset($desc['field']['rang_lien'])) {
520
+            $triables[$table_lien] = true;
521
+        }
522
+        else {
523
+            $triables[$table_lien] = false;
524
+        }
525
+    }
526
+    return $triables[$table_lien];
527 527
 }
528 528
 
529 529
 
@@ -539,45 +539,45 @@  discard block
 block discarded – undo
539 539
  * @return array                        Liste des conditions
540 540
  */
541 541
 function lien_where($primary, $id_source, $objet, $id_objet, $cond = array()) {
542
-	if ((!is_array($id_source) and !strlen($id_source))
543
-		or !strlen($objet)
544
-		or (!is_array($id_objet) and !strlen($id_objet))
545
-	) {
546
-		return array("0=1");
547
-	} // securite
548
-
549
-	$not = "";
550
-	if (is_array($id_source) and reset($id_source) == "NOT") {
551
-		$not = array_shift($id_source);
552
-		$id_source = reset($id_source);
553
-	}
554
-
555
-	$where = $cond;
556
-
557
-	if ($id_source !== '*') {
558
-		$where[] = (is_array($id_source) ? sql_in(addslashes($primary), array_map('intval', $id_source),
559
-			$not) : addslashes($primary) . ($not ? "<>" : "=") . intval($id_source));
560
-	} elseif ($not) {
561
-		$where[] = "0=1";
562
-	} // idiot mais quand meme
563
-
564
-	$not = "";
565
-	if (is_array($id_objet) and reset($id_objet) == "NOT") {
566
-		$not = array_shift($id_objet);
567
-		$id_objet = reset($id_objet);
568
-	}
569
-
570
-	if ($objet !== '*') {
571
-		$where[] = "objet=" . sql_quote($objet);
572
-	}
573
-	if ($id_objet !== '*') {
574
-		$where[] = (is_array($id_objet) ? sql_in('id_objet', array_map('intval', $id_objet),
575
-			$not) : "id_objet" . ($not ? "<>" : "=") . intval($id_objet));
576
-	} elseif ($not) {
577
-		$where[] = "0=1";
578
-	} // idiot mais quand meme
579
-
580
-	return $where;
542
+    if ((!is_array($id_source) and !strlen($id_source))
543
+        or !strlen($objet)
544
+        or (!is_array($id_objet) and !strlen($id_objet))
545
+    ) {
546
+        return array("0=1");
547
+    } // securite
548
+
549
+    $not = "";
550
+    if (is_array($id_source) and reset($id_source) == "NOT") {
551
+        $not = array_shift($id_source);
552
+        $id_source = reset($id_source);
553
+    }
554
+
555
+    $where = $cond;
556
+
557
+    if ($id_source !== '*') {
558
+        $where[] = (is_array($id_source) ? sql_in(addslashes($primary), array_map('intval', $id_source),
559
+            $not) : addslashes($primary) . ($not ? "<>" : "=") . intval($id_source));
560
+    } elseif ($not) {
561
+        $where[] = "0=1";
562
+    } // idiot mais quand meme
563
+
564
+    $not = "";
565
+    if (is_array($id_objet) and reset($id_objet) == "NOT") {
566
+        $not = array_shift($id_objet);
567
+        $id_objet = reset($id_objet);
568
+    }
569
+
570
+    if ($objet !== '*') {
571
+        $where[] = "objet=" . sql_quote($objet);
572
+    }
573
+    if ($id_objet !== '*') {
574
+        $where[] = (is_array($id_objet) ? sql_in('id_objet', array_map('intval', $id_objet),
575
+            $not) : "id_objet" . ($not ? "<>" : "=") . intval($id_objet));
576
+    } elseif ($not) {
577
+        $where[] = "0=1";
578
+    } // idiot mais quand meme
579
+
580
+    return $where;
581 581
 }
582 582
 
583 583
 /**
@@ -608,89 +608,89 @@  discard block
 block discarded – undo
608 608
  */
609 609
 function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond = null) {
610 610
 
611
-	$retire = array();
612
-	$dels = 0;
613
-	$echec = false;
614
-	if (is_null($cond)) {
615
-		$cond = array();
616
-	}
617
-
618
-	foreach ($objets as $objet => $id_objets) {
619
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
620
-		if (!is_array($id_objets) or reset($id_objets) == "NOT") {
621
-			$id_objets = array($id_objets);
622
-		}
623
-		foreach ($id_objets as $id_objet) {
624
-			list($cond, $colonne_role, $role) = roles_creer_condition_role($objet_source, $objet, $cond);
625
-			// id_objet peut valoir '*'
626
-			$where = lien_where($primary, $id, $objet, $id_objet, $cond);
627
-
628
-			// lire les liens existants pour propager la date de modif
629
-			$select = "$primary,id_objet,objet";
630
-			if ($colonne_role) {
631
-				$select .= ",$colonne_role";
632
-			}
633
-			$liens = sql_allfetsel($select, $table_lien, $where);
634
-
635
-			// iterer sur les liens pour permettre aux plugins de gerer
636
-			foreach ($liens as $l) {
637
-
638
-				$args = array(
639
-					'table_lien' => $table_lien,
640
-					'objet_source' => $objet_source,
641
-					'id_objet_source' => $l[$primary],
642
-					'objet' => $l['objet'],
643
-					'id_objet' => $l['id_objet'],
644
-					'colonne_role' => $colonne_role,
645
-					'role' => ($colonne_role ? $l[$colonne_role] : ''),
646
-					'action' => 'delete',
647
-				);
648
-
649
-				// Envoyer aux plugins
650
-				$l = pipeline('pre_edition_lien',
651
-					array(
652
-						'args' => $args,
653
-						'data' => $l
654
-					)
655
-				);
656
-				$args['id_objet'] = $id_o = $l['id_objet'];
657
-
658
-				if ($id_o = intval($l['id_objet']) or in_array($l['objet'], ['site', 'rubrique'])) {
659
-					$where = lien_where($primary, $l[$primary], $l['objet'], $id_o, $cond);
660
-					$e = sql_delete($table_lien, $where);
661
-					if ($e !== false) {
662
-						$dels += $e;
663
-						lien_propage_date_modif($l['objet'], $id_o);
664
-						lien_propage_date_modif($objet_source, $l[$primary]);
665
-					} else {
666
-						$echec = true;
667
-					}
668
-					$retire[] = array(
669
-						'source' => array($objet_source => $l[$primary]),
670
-						'lien' => array($l['objet'] => $id_o),
671
-						'type' => $l['objet'],
672
-						'role' => ($colonne_role ? $l[$colonne_role] : ''),
673
-						'id' => $id_o
674
-					);
675
-					// Envoyer aux plugins
676
-					pipeline('post_edition_lien',
677
-						array(
678
-							'args' => $args,
679
-							'data' => $l
680
-						)
681
-					);
682
-				}
683
-			}
684
-		}
685
-	}
686
-	// si on a supprime des liens, on reordonne les liens concernes
687
-	if ($dels) {
688
-		lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
689
-	}
690
-
691
-	pipeline('trig_supprimer_objets_lies', $retire);
692
-
693
-	return ($echec ? false : $dels);
611
+    $retire = array();
612
+    $dels = 0;
613
+    $echec = false;
614
+    if (is_null($cond)) {
615
+        $cond = array();
616
+    }
617
+
618
+    foreach ($objets as $objet => $id_objets) {
619
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
620
+        if (!is_array($id_objets) or reset($id_objets) == "NOT") {
621
+            $id_objets = array($id_objets);
622
+        }
623
+        foreach ($id_objets as $id_objet) {
624
+            list($cond, $colonne_role, $role) = roles_creer_condition_role($objet_source, $objet, $cond);
625
+            // id_objet peut valoir '*'
626
+            $where = lien_where($primary, $id, $objet, $id_objet, $cond);
627
+
628
+            // lire les liens existants pour propager la date de modif
629
+            $select = "$primary,id_objet,objet";
630
+            if ($colonne_role) {
631
+                $select .= ",$colonne_role";
632
+            }
633
+            $liens = sql_allfetsel($select, $table_lien, $where);
634
+
635
+            // iterer sur les liens pour permettre aux plugins de gerer
636
+            foreach ($liens as $l) {
637
+
638
+                $args = array(
639
+                    'table_lien' => $table_lien,
640
+                    'objet_source' => $objet_source,
641
+                    'id_objet_source' => $l[$primary],
642
+                    'objet' => $l['objet'],
643
+                    'id_objet' => $l['id_objet'],
644
+                    'colonne_role' => $colonne_role,
645
+                    'role' => ($colonne_role ? $l[$colonne_role] : ''),
646
+                    'action' => 'delete',
647
+                );
648
+
649
+                // Envoyer aux plugins
650
+                $l = pipeline('pre_edition_lien',
651
+                    array(
652
+                        'args' => $args,
653
+                        'data' => $l
654
+                    )
655
+                );
656
+                $args['id_objet'] = $id_o = $l['id_objet'];
657
+
658
+                if ($id_o = intval($l['id_objet']) or in_array($l['objet'], ['site', 'rubrique'])) {
659
+                    $where = lien_where($primary, $l[$primary], $l['objet'], $id_o, $cond);
660
+                    $e = sql_delete($table_lien, $where);
661
+                    if ($e !== false) {
662
+                        $dels += $e;
663
+                        lien_propage_date_modif($l['objet'], $id_o);
664
+                        lien_propage_date_modif($objet_source, $l[$primary]);
665
+                    } else {
666
+                        $echec = true;
667
+                    }
668
+                    $retire[] = array(
669
+                        'source' => array($objet_source => $l[$primary]),
670
+                        'lien' => array($l['objet'] => $id_o),
671
+                        'type' => $l['objet'],
672
+                        'role' => ($colonne_role ? $l[$colonne_role] : ''),
673
+                        'id' => $id_o
674
+                    );
675
+                    // Envoyer aux plugins
676
+                    pipeline('post_edition_lien',
677
+                        array(
678
+                            'args' => $args,
679
+                            'data' => $l
680
+                        )
681
+                    );
682
+                }
683
+            }
684
+        }
685
+    }
686
+    // si on a supprime des liens, on reordonne les liens concernes
687
+    if ($dels) {
688
+        lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
689
+    }
690
+
691
+    pipeline('trig_supprimer_objets_lies', $retire);
692
+
693
+    return ($echec ? false : $dels);
694 694
 }
695 695
 
696 696
 
@@ -713,61 +713,61 @@  discard block
 block discarded – undo
713 713
  * @return bool|int
714 714
  */
715 715
 function lien_optimise($objet_source, $primary, $table_lien, $id, $objets) {
716
-	include_spip('genie/optimiser');
717
-	$echec = false;
718
-	$dels = 0;
719
-	foreach ($objets as $objet => $id_objets) {
720
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
721
-		if (!is_array($id_objets) or reset($id_objets) == "NOT") {
722
-			$id_objets = array($id_objets);
723
-		}
724
-		foreach ($id_objets as $id_objet) {
725
-			$where = lien_where($primary, $id, $objet, $id_objet);
726
-			# les liens vers un objet inexistant
727
-			$r = sql_select("DISTINCT objet", $table_lien, $where);
728
-			while ($t = sql_fetch($r)) {
729
-				$type = $t['objet'];
730
-				$spip_table_objet = table_objet_sql($type);
731
-				$id_table_objet = id_table_objet($type);
732
-				$res = sql_select("L.$primary AS id,L.id_objet",
733
-					// la condition de jointure inclue L.objet='xxx' pour ne joindre que les bonnes lignes
734
-					// du coups toutes les lignes avec un autre objet ont un id_xxx=NULL puisque LEFT JOIN
735
-					// il faut les eliminier en repetant la condition dans le where L.objet='xxx'
736
-					"$table_lien AS L
716
+    include_spip('genie/optimiser');
717
+    $echec = false;
718
+    $dels = 0;
719
+    foreach ($objets as $objet => $id_objets) {
720
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
721
+        if (!is_array($id_objets) or reset($id_objets) == "NOT") {
722
+            $id_objets = array($id_objets);
723
+        }
724
+        foreach ($id_objets as $id_objet) {
725
+            $where = lien_where($primary, $id, $objet, $id_objet);
726
+            # les liens vers un objet inexistant
727
+            $r = sql_select("DISTINCT objet", $table_lien, $where);
728
+            while ($t = sql_fetch($r)) {
729
+                $type = $t['objet'];
730
+                $spip_table_objet = table_objet_sql($type);
731
+                $id_table_objet = id_table_objet($type);
732
+                $res = sql_select("L.$primary AS id,L.id_objet",
733
+                    // la condition de jointure inclue L.objet='xxx' pour ne joindre que les bonnes lignes
734
+                    // du coups toutes les lignes avec un autre objet ont un id_xxx=NULL puisque LEFT JOIN
735
+                    // il faut les eliminier en repetant la condition dans le where L.objet='xxx'
736
+                    "$table_lien AS L
737 737
 									LEFT JOIN $spip_table_objet AS O
738 738
 										ON (O.$id_table_objet=L.id_objet AND L.objet=" . sql_quote($type) . ")",
739
-					"L.objet=" . sql_quote($type) . " AND O.$id_table_objet IS NULL");
740
-				// sur une cle primaire composee, pas d'autres solutions que de virer un a un
741
-				while ($row = sql_fetch($res)) {
742
-					if ($primary === 'id_document' and in_array($type, ['site', 'rubrique']) and !intval($row['id_objet'])) {
743
-						continue; // gaffe, c'est le logo du site ou des rubriques!
744
-					}
745
-					$e = sql_delete($table_lien,
746
-						array("$primary=" . $row['id'], "id_objet=" . $row['id_objet'], "objet=" . sql_quote($type)));
747
-					if ($e != false) {
748
-						$dels += $e;
749
-						spip_log(
750
-							"lien_optimise: Entree " . $row['id'] . "/" . $row['id_objet'] . "/$type supprimee dans la table $table_lien",
751
-							'genie'._LOG_INFO_IMPORTANTE
752
-						);
753
-					}
754
-				}
755
-			}
756
-
757
-			# les liens depuis un objet inexistant
758
-			$table_source = table_objet_sql($objet_source);
759
-			// filtrer selon $id, $objet, $id_objet eventuellement fournis
760
-			// (en general '*' pour chaque)
761
-			$where = lien_where("L.$primary", $id, $objet, $id_objet);
762
-			$where[] = "O.$primary IS NULL";
763
-			$res = sql_select("L.$primary AS id",
764
-				"$table_lien AS L LEFT JOIN $table_source AS O ON L.$primary=O.$primary",
765
-				$where);
766
-			$dels += optimiser_sansref($table_lien, $primary, $res);
767
-		}
768
-	}
769
-
770
-	return ($echec ? false : $dels);
739
+                    "L.objet=" . sql_quote($type) . " AND O.$id_table_objet IS NULL");
740
+                // sur une cle primaire composee, pas d'autres solutions que de virer un a un
741
+                while ($row = sql_fetch($res)) {
742
+                    if ($primary === 'id_document' and in_array($type, ['site', 'rubrique']) and !intval($row['id_objet'])) {
743
+                        continue; // gaffe, c'est le logo du site ou des rubriques!
744
+                    }
745
+                    $e = sql_delete($table_lien,
746
+                        array("$primary=" . $row['id'], "id_objet=" . $row['id_objet'], "objet=" . sql_quote($type)));
747
+                    if ($e != false) {
748
+                        $dels += $e;
749
+                        spip_log(
750
+                            "lien_optimise: Entree " . $row['id'] . "/" . $row['id_objet'] . "/$type supprimee dans la table $table_lien",
751
+                            'genie'._LOG_INFO_IMPORTANTE
752
+                        );
753
+                    }
754
+                }
755
+            }
756
+
757
+            # les liens depuis un objet inexistant
758
+            $table_source = table_objet_sql($objet_source);
759
+            // filtrer selon $id, $objet, $id_objet eventuellement fournis
760
+            // (en general '*' pour chaque)
761
+            $where = lien_where("L.$primary", $id, $objet, $id_objet);
762
+            $where[] = "O.$primary IS NULL";
763
+            $res = sql_select("L.$primary AS id",
764
+                "$table_lien AS L LEFT JOIN $table_source AS O ON L.$primary=O.$primary",
765
+                $where);
766
+            $dels += optimiser_sansref($table_lien, $primary, $res);
767
+        }
768
+    }
769
+
770
+    return ($echec ? false : $dels);
771 771
 }
772 772
 
773 773
 
@@ -799,89 +799,89 @@  discard block
 block discarded – undo
799 799
  *     Nombre de modifications faites, false si échec.
800 800
  */
801 801
 function lien_set($objet_source, $primary, $table_lien, $id, $objets, $qualif) {
802
-	$echec = null;
803
-	$ok = 0;
804
-	$reordonner = false;
805
-	if (!$qualif) {
806
-		return false;
807
-	}
808
-	// nettoyer qualif qui peut venir directement d'un objet_trouver_lien :
809
-	unset($qualif[$primary]);
810
-	unset($qualif[$objet_source]);
811
-	if (isset($qualif['objet'])) {
812
-		unset($qualif[$qualif['objet']]);
813
-	}
814
-	unset($qualif['objet']);
815
-	unset($qualif['id_objet']);
816
-	foreach ($objets as $objet => $id_objets) {
817
-
818
-		// role, colonne, where par défaut
819
-		list($role, $colonne_role, $cond) =
820
-			roles_trouver_dans_qualif($objet_source, $objet, $qualif);
821
-
822
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
823
-		if (!is_array($id_objets) or reset($id_objets) == "NOT") {
824
-			$id_objets = array($id_objets);
825
-		}
826
-		foreach ($id_objets as $id_objet) {
827
-
828
-			$args = array(
829
-				'table_lien' => $table_lien,
830
-				'objet_source' => $objet_source,
831
-				'id_objet_source' => $id,
832
-				'objet' => $objet,
833
-				'id_objet' => $id_objet,
834
-				'role' => $role,
835
-				'colonne_role' => $colonne_role,
836
-				'action' => 'modifier',
837
-			);
838
-
839
-			// Envoyer aux plugins
840
-			$qualif = pipeline('pre_edition_lien',
841
-				array(
842
-					'args' => $args,
843
-					'data' => $qualif,
844
-				)
845
-			);
846
-			$args['id_objet'] = $id_objet;
847
-
848
-			if (lien_triables($table_lien) and isset($qualif['rang_lien'])) {
849
-				if (intval($qualif['rang_lien'])) {
850
-					// on decale les liens de rang_lien>=la valeur inseree pour faire la place
851
-					$w = lien_where($primary, '*', $objet, $id_objet, array('rang_lien>='.intval($qualif['rang_lien']),"$primary!=".intval($id)));
852
-					sql_update($table_lien, array('rang_lien'=>'rang_lien+1'), $w);
853
-				}
854
-				// tous les liens de même rôle recoivent le rang indiqué aussi
855
-				if (roles_colonne($objet_source, $objet)) {
856
-					$w = lien_where($primary, $id, $objet, $id_objet);
857
-					sql_updateq($table_lien, array('rang_lien' => intval($qualif['rang_lien'])), $w);
858
-				}
859
-				$reordonner = true;
860
-			}
861
-
862
-			$where = lien_where($primary, $id, $objet, $id_objet, $cond);
863
-			$e = sql_updateq($table_lien, $qualif, $where);
864
-
865
-			if ($e === false) {
866
-				$echec = true;
867
-			} else {
868
-				// Envoyer aux plugins
869
-				pipeline('post_edition_lien',
870
-					array(
871
-						'args' => $args,
872
-						'data' => $qualif
873
-					)
874
-				);
875
-				$ok++;
876
-			}
877
-		}
878
-	}
879
-	// si on a fait des modif de rang, on reordonne les liens concernes
880
-	if ($reordonner) {
881
-		lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
882
-	}
883
-
884
-	return ($echec ? false : $ok);
802
+    $echec = null;
803
+    $ok = 0;
804
+    $reordonner = false;
805
+    if (!$qualif) {
806
+        return false;
807
+    }
808
+    // nettoyer qualif qui peut venir directement d'un objet_trouver_lien :
809
+    unset($qualif[$primary]);
810
+    unset($qualif[$objet_source]);
811
+    if (isset($qualif['objet'])) {
812
+        unset($qualif[$qualif['objet']]);
813
+    }
814
+    unset($qualif['objet']);
815
+    unset($qualif['id_objet']);
816
+    foreach ($objets as $objet => $id_objets) {
817
+
818
+        // role, colonne, where par défaut
819
+        list($role, $colonne_role, $cond) =
820
+            roles_trouver_dans_qualif($objet_source, $objet, $qualif);
821
+
822
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
823
+        if (!is_array($id_objets) or reset($id_objets) == "NOT") {
824
+            $id_objets = array($id_objets);
825
+        }
826
+        foreach ($id_objets as $id_objet) {
827
+
828
+            $args = array(
829
+                'table_lien' => $table_lien,
830
+                'objet_source' => $objet_source,
831
+                'id_objet_source' => $id,
832
+                'objet' => $objet,
833
+                'id_objet' => $id_objet,
834
+                'role' => $role,
835
+                'colonne_role' => $colonne_role,
836
+                'action' => 'modifier',
837
+            );
838
+
839
+            // Envoyer aux plugins
840
+            $qualif = pipeline('pre_edition_lien',
841
+                array(
842
+                    'args' => $args,
843
+                    'data' => $qualif,
844
+                )
845
+            );
846
+            $args['id_objet'] = $id_objet;
847
+
848
+            if (lien_triables($table_lien) and isset($qualif['rang_lien'])) {
849
+                if (intval($qualif['rang_lien'])) {
850
+                    // on decale les liens de rang_lien>=la valeur inseree pour faire la place
851
+                    $w = lien_where($primary, '*', $objet, $id_objet, array('rang_lien>='.intval($qualif['rang_lien']),"$primary!=".intval($id)));
852
+                    sql_update($table_lien, array('rang_lien'=>'rang_lien+1'), $w);
853
+                }
854
+                // tous les liens de même rôle recoivent le rang indiqué aussi
855
+                if (roles_colonne($objet_source, $objet)) {
856
+                    $w = lien_where($primary, $id, $objet, $id_objet);
857
+                    sql_updateq($table_lien, array('rang_lien' => intval($qualif['rang_lien'])), $w);
858
+                }
859
+                $reordonner = true;
860
+            }
861
+
862
+            $where = lien_where($primary, $id, $objet, $id_objet, $cond);
863
+            $e = sql_updateq($table_lien, $qualif, $where);
864
+
865
+            if ($e === false) {
866
+                $echec = true;
867
+            } else {
868
+                // Envoyer aux plugins
869
+                pipeline('post_edition_lien',
870
+                    array(
871
+                        'args' => $args,
872
+                        'data' => $qualif
873
+                    )
874
+                );
875
+                $ok++;
876
+            }
877
+        }
878
+    }
879
+    // si on a fait des modif de rang, on reordonne les liens concernes
880
+    if ($reordonner) {
881
+        lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
882
+    }
883
+
884
+    return ($echec ? false : $ok);
885 885
 }
886 886
 
887 887
 /**
@@ -911,23 +911,23 @@  discard block
 block discarded – undo
911 911
  * @return array
912 912
  */
913 913
 function lien_find($objet_source, $primary, $table_lien, $id, $objets, $cond = null) {
914
-	$trouve = array();
915
-	foreach ($objets as $objet => $id_objets) {
916
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
917
-		// gerer les roles s'il y en a dans $cond
918
-		list($cond) = roles_creer_condition_role($objet_source, $objet, $cond, true);
919
-		// lien_where prend en charge les $id_objets sous forme int ou array
920
-		$where = lien_where($primary, $id, $objet, $id_objets, $cond);
921
-		$liens = sql_allfetsel('*', $table_lien, $where);
922
-		// ajouter les entrees objet_source et objet cible par convenance
923
-		foreach ($liens as $l) {
924
-			$l[$objet_source] = $l[$primary];
925
-			$l[$l['objet']] = $l['id_objet'];
926
-			$trouve[] = $l;
927
-		}
928
-	}
929
-
930
-	return $trouve;
914
+    $trouve = array();
915
+    foreach ($objets as $objet => $id_objets) {
916
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
917
+        // gerer les roles s'il y en a dans $cond
918
+        list($cond) = roles_creer_condition_role($objet_source, $objet, $cond, true);
919
+        // lien_where prend en charge les $id_objets sous forme int ou array
920
+        $where = lien_where($primary, $id, $objet, $id_objets, $cond);
921
+        $liens = sql_allfetsel('*', $table_lien, $where);
922
+        // ajouter les entrees objet_source et objet cible par convenance
923
+        foreach ($liens as $l) {
924
+            $l[$objet_source] = $l[$primary];
925
+            $l[$l['objet']] = $l['id_objet'];
926
+            $trouve[] = $l;
927
+        }
928
+    }
929
+
930
+    return $trouve;
931 931
 }
932 932
 
933 933
 /**
@@ -938,25 +938,25 @@  discard block
 block discarded – undo
938 938
  * @param array|int $ids
939 939
  */
940 940
 function lien_propage_date_modif($objet, $ids) {
941
-	static $done = array();
942
-	$hash = md5($objet . serialize($ids));
943
-
944
-	// sql_updateq, peut être un rien lent.
945
-	// On évite de l'appeler 2 fois sur les mêmes choses
946
-	if (isset($done[$hash])) {
947
-		return;
948
-	}
949
-
950
-	$trouver_table = charger_fonction('trouver_table', 'base');
951
-
952
-	$table = table_objet_sql($objet);
953
-	if ($desc = $trouver_table($table)
954
-		and isset($desc['field']['date_modif'])
955
-	) {
956
-		$primary = id_table_objet($objet);
957
-		$where = (is_array($ids) ? sql_in($primary, array_map('intval', $ids)) : "$primary=" . intval($ids));
958
-		sql_updateq($table, array('date_modif' => date('Y-m-d H:i:s')), $where);
959
-	}
960
-
961
-	$done[$hash] = true;
941
+    static $done = array();
942
+    $hash = md5($objet . serialize($ids));
943
+
944
+    // sql_updateq, peut être un rien lent.
945
+    // On évite de l'appeler 2 fois sur les mêmes choses
946
+    if (isset($done[$hash])) {
947
+        return;
948
+    }
949
+
950
+    $trouver_table = charger_fonction('trouver_table', 'base');
951
+
952
+    $table = table_objet_sql($objet);
953
+    if ($desc = $trouver_table($table)
954
+        and isset($desc['field']['date_modif'])
955
+    ) {
956
+        $primary = id_table_objet($objet);
957
+        $where = (is_array($ids) ? sql_in($primary, array_map('intval', $ids)) : "$primary=" . intval($ids));
958
+        sql_updateq($table, array('date_modif' => date('Y-m-d H:i:s')), $where);
959
+    }
960
+
961
+    $done[$hash] = true;
962 962
 }
Please login to merge, or discard this patch.
ecrire/public/decompiler.php 1 patch
Indentation   +174 added lines, -174 removed lines patch added patch discarded remove patch
@@ -11,129 +11,129 @@  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
-	$preaff = decompiler_($struct->preaff, $fmt, $prof);
22
-	$avant = decompiler_($struct->avant, $fmt, $prof);
23
-	$apres = decompiler_($struct->apres, $fmt, $prof);
24
-	$altern = decompiler_($struct->altern, $fmt, $prof);
25
-	$milieu = decompiler_($struct->milieu, $fmt, $prof);
26
-	$postaff = decompiler_($struct->postaff, $fmt, $prof);
27
-
28
-	$type = $struct->sql_serveur ? "$struct->sql_serveur:" : '';
29
-	$type .= ($struct->type_requete ? $struct->type_requete :
30
-		$struct->table_optionnelle);
31
-
32
-	if ($struct->jointures_explicites) {
33
-		$type .= " " . $struct->jointures_explicites;
34
-	}
35
-	if ($struct->table_optionnelle) {
36
-		$type .= "?";
37
-	}
38
-	// Revoir le cas de la boucle recursive
39
-
40
-	$crit = $struct->param;
41
-	if ($crit and !is_array($crit[0])) {
42
-		$type = strtolower($type) . array_shift($crit);
43
-	}
44
-	$crit = decompiler_criteres($struct, $fmt, $prof);
45
-
46
-	$f = 'format_boucle_' . $fmt;
47
-
48
-	return $f($preaff, $avant, $nom, $type, $crit, $milieu, $apres, $altern, $postaff, $prof);
20
+    $nom = $struct->id_boucle;
21
+    $preaff = decompiler_($struct->preaff, $fmt, $prof);
22
+    $avant = decompiler_($struct->avant, $fmt, $prof);
23
+    $apres = decompiler_($struct->apres, $fmt, $prof);
24
+    $altern = decompiler_($struct->altern, $fmt, $prof);
25
+    $milieu = decompiler_($struct->milieu, $fmt, $prof);
26
+    $postaff = decompiler_($struct->postaff, $fmt, $prof);
27
+
28
+    $type = $struct->sql_serveur ? "$struct->sql_serveur:" : '';
29
+    $type .= ($struct->type_requete ? $struct->type_requete :
30
+        $struct->table_optionnelle);
31
+
32
+    if ($struct->jointures_explicites) {
33
+        $type .= " " . $struct->jointures_explicites;
34
+    }
35
+    if ($struct->table_optionnelle) {
36
+        $type .= "?";
37
+    }
38
+    // Revoir le cas de la boucle recursive
39
+
40
+    $crit = $struct->param;
41
+    if ($crit and !is_array($crit[0])) {
42
+        $type = strtolower($type) . array_shift($crit);
43
+    }
44
+    $crit = decompiler_criteres($struct, $fmt, $prof);
45
+
46
+    $f = 'format_boucle_' . $fmt;
47
+
48
+    return $f($preaff, $avant, $nom, $type, $crit, $milieu, $apres, $altern, $postaff, $prof);
49 49
 }
50 50
 
51 51
 function decompiler_include($struct, $fmt = '', $prof = 0) {
52
-	$res = array();
53
-	foreach ($struct->param ? $struct->param : array() as $couple) {
54
-		array_shift($couple);
55
-		foreach ($couple as $v) {
56
-			$res[] = decompiler_($v, $fmt, $prof);
57
-		}
58
-	}
59
-	$file = is_string($struct->texte) ? $struct->texte :
60
-		decompiler_($struct->texte, $fmt, $prof);
61
-	$f = 'format_inclure_' . $fmt;
62
-
63
-	return $f($file, $res, $prof);
52
+    $res = array();
53
+    foreach ($struct->param ? $struct->param : array() as $couple) {
54
+        array_shift($couple);
55
+        foreach ($couple as $v) {
56
+            $res[] = decompiler_($v, $fmt, $prof);
57
+        }
58
+    }
59
+    $file = is_string($struct->texte) ? $struct->texte :
60
+        decompiler_($struct->texte, $fmt, $prof);
61
+    $f = 'format_inclure_' . $fmt;
62
+
63
+    return $f($file, $res, $prof);
64 64
 }
65 65
 
66 66
 function decompiler_texte($struct, $fmt = '', $prof = 0) {
67
-	$f = 'format_texte_' . $fmt;
67
+    $f = 'format_texte_' . $fmt;
68 68
 
69
-	return strlen($struct->texte) ? $f($struct->texte, $prof) : '';
69
+    return strlen($struct->texte) ? $f($struct->texte, $prof) : '';
70 70
 }
71 71
 
72 72
 function decompiler_polyglotte($struct, $fmt = '', $prof = 0) {
73
-	$f = 'format_polyglotte_' . $fmt;
73
+    $f = 'format_polyglotte_' . $fmt;
74 74
 
75
-	return $f($struct->traductions, $prof);
75
+    return $f($struct->traductions, $prof);
76 76
 }
77 77
 
78 78
 function decompiler_idiome($struct, $fmt = '', $prof = 0) {
79
-	$args = array();
80
-	foreach ($struct->arg as $k => $v) {
81
-		$args[$k] = public_decompiler($v, $fmt, $prof);
82
-	}
79
+    $args = array();
80
+    foreach ($struct->arg as $k => $v) {
81
+        $args[$k] = public_decompiler($v, $fmt, $prof);
82
+    }
83 83
 
84
-	$filtres = decompiler_liste($struct->param, $fmt, $prof);
84
+    $filtres = decompiler_liste($struct->param, $fmt, $prof);
85 85
 
86
-	$f = 'format_idiome_' . $fmt;
86
+    $f = 'format_idiome_' . $fmt;
87 87
 
88
-	return $f($struct->nom_champ, $struct->module, $args, $filtres, $prof);
88
+    return $f($struct->nom_champ, $struct->module, $args, $filtres, $prof);
89 89
 }
90 90
 
91 91
 function decompiler_champ($struct, $fmt = '', $prof = 0) {
92
-	$avant = decompiler_($struct->avant, $fmt, $prof);
93
-	$apres = decompiler_($struct->apres, $fmt, $prof);
94
-	$args = $filtres = '';
95
-	if ($p = $struct->param) {
96
-		if ($p[0][0] === '') {
97
-			$args = decompiler_liste(array(array_shift($p)), $fmt, $prof);
98
-		}
99
-		$filtres = decompiler_liste($p, $fmt, $prof);
100
-	}
101
-	$f = 'format_champ_' . $fmt;
102
-
103
-	return $f($struct->nom_champ, $struct->nom_boucle, $struct->etoile, $avant, $apres, $args, $filtres, $prof);
92
+    $avant = decompiler_($struct->avant, $fmt, $prof);
93
+    $apres = decompiler_($struct->apres, $fmt, $prof);
94
+    $args = $filtres = '';
95
+    if ($p = $struct->param) {
96
+        if ($p[0][0] === '') {
97
+            $args = decompiler_liste(array(array_shift($p)), $fmt, $prof);
98
+        }
99
+        $filtres = decompiler_liste($p, $fmt, $prof);
100
+    }
101
+    $f = 'format_champ_' . $fmt;
102
+
103
+    return $f($struct->nom_champ, $struct->nom_boucle, $struct->etoile, $avant, $apres, $args, $filtres, $prof);
104 104
 }
105 105
 
106 106
 function decompiler_liste($sources, $fmt = '', $prof = 0) {
107
-	if (!is_array($sources)) {
108
-		return '';
109
-	}
110
-	$f = 'format_liste_' . $fmt;
111
-	$res = '';
112
-	foreach ($sources as $arg) {
113
-		if (!is_array($arg)) {
114
-			continue; // ne devrait pas arriver.
115
-		} else {
116
-			$r = array_shift($arg);
117
-		}
118
-		$args = array();
119
-		foreach ($arg as $v) {
120
-			// cas des arguments entoures de ' ou "
121
-			if ((count($v) == 1)
122
-				and $v[0]->type == 'texte'
123
-				and (strlen($v[0]->apres) == 1)
124
-				and $v[0]->apres == $v[0]->avant
125
-			) {
126
-				$args[] = $v[0]->avant . $v[0]->texte . $v[0]->apres;
127
-			} else {
128
-				$args[] = decompiler_($v, $fmt, 0 - $prof);
129
-			}
130
-		}
131
-		if (($r !== '') or $args) {
132
-			$res .= $f($r, $args, $prof);
133
-		}
134
-	}
135
-
136
-	return $res;
107
+    if (!is_array($sources)) {
108
+        return '';
109
+    }
110
+    $f = 'format_liste_' . $fmt;
111
+    $res = '';
112
+    foreach ($sources as $arg) {
113
+        if (!is_array($arg)) {
114
+            continue; // ne devrait pas arriver.
115
+        } else {
116
+            $r = array_shift($arg);
117
+        }
118
+        $args = array();
119
+        foreach ($arg as $v) {
120
+            // cas des arguments entoures de ' ou "
121
+            if ((count($v) == 1)
122
+                and $v[0]->type == 'texte'
123
+                and (strlen($v[0]->apres) == 1)
124
+                and $v[0]->apres == $v[0]->avant
125
+            ) {
126
+                $args[] = $v[0]->avant . $v[0]->texte . $v[0]->apres;
127
+            } else {
128
+                $args[] = decompiler_($v, $fmt, 0 - $prof);
129
+            }
130
+        }
131
+        if (($r !== '') or $args) {
132
+            $res .= $f($r, $args, $prof);
133
+        }
134
+    }
135
+
136
+    return $res;
137 137
 }
138 138
 
139 139
 // Decompilation des criteres: on triche et on deroge:
@@ -141,91 +141,91 @@  discard block
 block discarded – undo
141 141
 // - le champ apres signale le critere {"separateur"} ou {'separateur'}
142 142
 // - les champs sont implicitement etendus (crochets implicites mais interdits)
143 143
 function decompiler_criteres($boucle, $fmt = '', $prof = 0) {
144
-	$sources = $boucle->param;
145
-	if (!is_array($sources)) {
146
-		return '';
147
-	}
148
-	$res = '';
149
-	$f = 'format_critere_' . $fmt;
150
-	foreach ($sources as $crit) {
151
-		if (!is_array($crit)) {
152
-			continue;
153
-		} // boucle recursive
154
-		array_shift($crit);
155
-		$args = array();
156
-		foreach ($crit as $i => $v) {
157
-			if ((count($v) == 1)
158
-				and $v[0]->type == 'texte'
159
-				and $v[0]->apres
160
-			) {
161
-				$args[] = array(array('texte', ($v[0]->apres . $v[0]->texte . $v[0]->apres)));
162
-			} else {
163
-				$res2 = array();
164
-				foreach ($v as $k => $p) {
165
-					if (isset($p->type)
166
-						and function_exists($d = 'decompiler_' . $p->type)
167
-					) {
168
-						$r = $d($p, $fmt, (0 - $prof), @$v[$k + 1]);
169
-						$res2[] = array($p->type, $r);
170
-					} else {
171
-						spip_log("critere $i / $k mal forme");
172
-					}
173
-				}
174
-				$args[] = $res2;
175
-			}
176
-		}
177
-		$res .= $f($args);
178
-	}
179
-
180
-	return $res;
144
+    $sources = $boucle->param;
145
+    if (!is_array($sources)) {
146
+        return '';
147
+    }
148
+    $res = '';
149
+    $f = 'format_critere_' . $fmt;
150
+    foreach ($sources as $crit) {
151
+        if (!is_array($crit)) {
152
+            continue;
153
+        } // boucle recursive
154
+        array_shift($crit);
155
+        $args = array();
156
+        foreach ($crit as $i => $v) {
157
+            if ((count($v) == 1)
158
+                and $v[0]->type == 'texte'
159
+                and $v[0]->apres
160
+            ) {
161
+                $args[] = array(array('texte', ($v[0]->apres . $v[0]->texte . $v[0]->apres)));
162
+            } else {
163
+                $res2 = array();
164
+                foreach ($v as $k => $p) {
165
+                    if (isset($p->type)
166
+                        and function_exists($d = 'decompiler_' . $p->type)
167
+                    ) {
168
+                        $r = $d($p, $fmt, (0 - $prof), @$v[$k + 1]);
169
+                        $res2[] = array($p->type, $r);
170
+                    } else {
171
+                        spip_log("critere $i / $k mal forme");
172
+                    }
173
+                }
174
+                $args[] = $res2;
175
+            }
176
+        }
177
+        $res .= $f($args);
178
+    }
179
+
180
+    return $res;
181 181
 }
182 182
 
183 183
 
184 184
 function decompiler_($liste, $fmt = '', $prof = 0) {
185
-	if (!is_array($liste)) {
186
-		return '';
187
-	}
188
-	$prof2 = ($prof < 0) ? ($prof - 1) : ($prof + 1);
189
-	$contenu = array();
190
-	foreach ($liste as $k => $p) {
191
-		if (!isset($p->type)) {
192
-			continue;
193
-		} #??????
194
-		$d = 'decompiler_' . $p->type;
195
-		$next = isset($liste[$k + 1]) ? $liste[$k + 1] : false;
196
-		// Forcer le champ etendu si son source (pas les reecritures)
197
-		// contenait des args et s'il est suivi d'espaces,
198
-		// le champ simple les eliminant est un bug helas perenne.
199
-
200
-		if ($next
201
-			and ($next->type == 'texte')
202
-			and $p->type == 'champ'
203
-			and !$p->apres
204
-			and !$p->avant
205
-			and $p->fonctions
206
-		) {
207
-			$n = strlen($next->texte) - strlen(ltrim($next->texte));
208
-			if ($n) {
209
-				$champ = new Texte;
210
-				$champ->texte = substr($next->texte, 0, $n);
211
-				$champ->ligne = $p->ligne;
212
-				$p->apres = array($champ);
213
-				$next->texte = substr($next->texte, $n);
214
-			}
215
-		}
216
-		$contenu[] = array($d($p, $fmt, $prof2), $p->type);
217
-
218
-	}
219
-	$f = 'format_suite_' . $fmt;
220
-
221
-	return $f($contenu);
185
+    if (!is_array($liste)) {
186
+        return '';
187
+    }
188
+    $prof2 = ($prof < 0) ? ($prof - 1) : ($prof + 1);
189
+    $contenu = array();
190
+    foreach ($liste as $k => $p) {
191
+        if (!isset($p->type)) {
192
+            continue;
193
+        } #??????
194
+        $d = 'decompiler_' . $p->type;
195
+        $next = isset($liste[$k + 1]) ? $liste[$k + 1] : false;
196
+        // Forcer le champ etendu si son source (pas les reecritures)
197
+        // contenait des args et s'il est suivi d'espaces,
198
+        // le champ simple les eliminant est un bug helas perenne.
199
+
200
+        if ($next
201
+            and ($next->type == 'texte')
202
+            and $p->type == 'champ'
203
+            and !$p->apres
204
+            and !$p->avant
205
+            and $p->fonctions
206
+        ) {
207
+            $n = strlen($next->texte) - strlen(ltrim($next->texte));
208
+            if ($n) {
209
+                $champ = new Texte;
210
+                $champ->texte = substr($next->texte, 0, $n);
211
+                $champ->ligne = $p->ligne;
212
+                $p->apres = array($champ);
213
+                $next->texte = substr($next->texte, $n);
214
+            }
215
+        }
216
+        $contenu[] = array($d($p, $fmt, $prof2), $p->type);
217
+
218
+    }
219
+    $f = 'format_suite_' . $fmt;
220
+
221
+    return $f($contenu);
222 222
 }
223 223
 
224 224
 function public_decompiler($liste, $fmt = '', $prof = 0, $quoi = '') {
225
-	if (!include_spip('public/format_' . $fmt)) {
226
-		return "'$fmt'?";
227
-	}
228
-	$f = 'decompiler_' . $quoi;
225
+    if (!include_spip('public/format_' . $fmt)) {
226
+        return "'$fmt'?";
227
+    }
228
+    $f = 'decompiler_' . $quoi;
229 229
 
230
-	return $f($liste, $fmt, $prof);
230
+    return $f($liste, $fmt, $prof);
231 231
 }
Please login to merge, or discard this patch.
ecrire/prive.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -20,20 +20,20 @@
 block discarded – undo
20 20
 $var_auth = $auth();
21 21
 
22 22
 if ($var_auth !== '') {
23
-	if (!is_int($var_auth)) {
24
-		// si l'authentifie' n'a pas acces a l'espace de redac
25
-		// c'est qu'on voulait forcer sa reconnaissance en tant que visiteur.
26
-		// On reexecute pour deboucher sur le include public.
27
-		// autrement on insiste
28
-		if (is_array($var_auth)) {
29
-			$var_auth = '../?' . $_SERVER['QUERY_STRING'];
30
-			spip_setcookie('spip_session', $_COOKIE['spip_session'], [
31
-				'expires' => time() + 3600 * 24 * 14
32
-			]);
33
-		}
34
-		include_spip('inc/headers');
35
-		redirige_formulaire($var_auth);
36
-	}
23
+    if (!is_int($var_auth)) {
24
+        // si l'authentifie' n'a pas acces a l'espace de redac
25
+        // c'est qu'on voulait forcer sa reconnaissance en tant que visiteur.
26
+        // On reexecute pour deboucher sur le include public.
27
+        // autrement on insiste
28
+        if (is_array($var_auth)) {
29
+            $var_auth = '../?' . $_SERVER['QUERY_STRING'];
30
+            spip_setcookie('spip_session', $_COOKIE['spip_session'], [
31
+                'expires' => time() + 3600 * 24 * 14
32
+            ]);
33
+        }
34
+        include_spip('inc/headers');
35
+        redirige_formulaire($var_auth);
36
+    }
37 37
 }
38 38
 
39 39
 // En somme, est prive' ce qui est publiquement nomme'...
Please login to merge, or discard this patch.
ecrire/inc/session.php 1 patch
Indentation   +455 added lines, -455 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  */
20 20
 
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	return;
22
+    return;
23 23
 }
24 24
 
25 25
 
@@ -40,15 +40,15 @@  discard block
 block discarded – undo
40 40
  * @return bool|null|void
41 41
  */
42 42
 function inc_session_dist($auteur = false) {
43
-	if (is_numeric($auteur)) {
44
-		return supprimer_sessions($auteur, $auteur > 0);
45
-	} else {
46
-		if (is_array($auteur)) {
47
-			return ajouter_session($auteur);
48
-		} else {
49
-			return verifier_session($auteur);
50
-		}
51
-	}
43
+    if (is_numeric($auteur)) {
44
+        return supprimer_sessions($auteur, $auteur > 0);
45
+    } else {
46
+        if (is_array($auteur)) {
47
+            return ajouter_session($auteur);
48
+        } else {
49
+            return verifier_session($auteur);
50
+        }
51
+    }
52 52
 }
53 53
 
54 54
 
@@ -77,36 +77,36 @@  discard block
 block discarded – undo
77 77
  */
78 78
 function supprimer_sessions($id_auteur, $toutes = true, $actives = true) {
79 79
 
80
-	$nb_files = 0;
81
-	$nb_max_files = (defined('_MAX_NB_SESSIONS_OUVERTES') ? _MAX_NB_SESSIONS_OUVERTES : 1000);
82
-	spip_log("supprimer sessions auteur $id_auteur", "session");
83
-	if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
84
-		if ($dir = opendir(_DIR_SESSIONS)) {
85
-			$t = $_SERVER['REQUEST_TIME']  - (4*_RENOUVELLE_ALEA); // 48h par defaut
86
-			$t_short = $_SERVER['REQUEST_TIME']  - max(_RENOUVELLE_ALEA/4,3*3600); // 3h par defaut
87
-			$t = time() - (4 * _RENOUVELLE_ALEA);
88
-			while (($f = readdir($dir)) !== false) {
89
-				$nb_files++;
90
-				if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) {
91
-					$f = _DIR_SESSIONS . $f;
92
-					if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
93
-						spip_unlink($f);
94
-					}
95
-					// si il y a trop de sessions ouvertes, on purge les sessions anonymes de plus de 3H
96
-					// cf http://core.spip.org/issues/3276
97
-					elseif ($nb_files>$nb_max_files and !intval($regs[1]) and ($t_short > filemtime($f))) {
98
-						spip_unlink($f);
99
-					}
100
-				}
101
-			}
102
-		}
103
-	} else {
104
-		verifier_session();
105
-		spip_unlink(fichier_session('alea_ephemere', true));
106
-	}
107
-
108
-	// forcer le recalcul de la session courante
109
-	spip_session(true);
80
+    $nb_files = 0;
81
+    $nb_max_files = (defined('_MAX_NB_SESSIONS_OUVERTES') ? _MAX_NB_SESSIONS_OUVERTES : 1000);
82
+    spip_log("supprimer sessions auteur $id_auteur", "session");
83
+    if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
84
+        if ($dir = opendir(_DIR_SESSIONS)) {
85
+            $t = $_SERVER['REQUEST_TIME']  - (4*_RENOUVELLE_ALEA); // 48h par defaut
86
+            $t_short = $_SERVER['REQUEST_TIME']  - max(_RENOUVELLE_ALEA/4,3*3600); // 3h par defaut
87
+            $t = time() - (4 * _RENOUVELLE_ALEA);
88
+            while (($f = readdir($dir)) !== false) {
89
+                $nb_files++;
90
+                if (preg_match(",^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,", $f, $regs)) {
91
+                    $f = _DIR_SESSIONS . $f;
92
+                    if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
93
+                        spip_unlink($f);
94
+                    }
95
+                    // si il y a trop de sessions ouvertes, on purge les sessions anonymes de plus de 3H
96
+                    // cf http://core.spip.org/issues/3276
97
+                    elseif ($nb_files>$nb_max_files and !intval($regs[1]) and ($t_short > filemtime($f))) {
98
+                        spip_unlink($f);
99
+                    }
100
+                }
101
+            }
102
+        }
103
+    } else {
104
+        verifier_session();
105
+        spip_unlink(fichier_session('alea_ephemere', true));
106
+    }
107
+
108
+    // forcer le recalcul de la session courante
109
+    spip_session(true);
110 110
 }
111 111
 
112 112
 /**
@@ -124,122 +124,122 @@  discard block
 block discarded – undo
124 124
  * @return bool|string
125 125
  */
126 126
 function ajouter_session($auteur) {
127
-	// Si le client a deja une session valide pour son id_auteur
128
-	// on conserve le meme fichier
129
-
130
-	// Attention un visiteur peut avoir une session et un id=0,
131
-	// => ne pas melanger les sessions des differents visiteurs
132
-	$id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
133
-
134
-	// Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session)
135
-	// on va vérifier s'il y a vraiment des choses à écrire
136
-	if (!$id_auteur) {
137
-		// On supprime les données de base pour voir le contenu réel de la session
138
-		$auteur_verif = $auteur;
139
-		if (isset($auteur_verif['id_auteur'])) {
140
-			unset($auteur_verif['id_auteur']);
141
-		}
142
-		if (isset($auteur_verif['hash_env'])) {
143
-			unset($auteur_verif['hash_env']);
144
-		}
145
-		if (isset($auteur_verif['ip_change'])) {
146
-			unset($auteur_verif['ip_change']);
147
-		}
148
-		if (isset($auteur_verif['date_session'])) {
149
-			unset($auteur_verif['date_session']);
150
-		}
151
-
152
-		// Les variables vraiment nulle ne sont pas à prendre en compte non plus
153
-		foreach ($auteur_verif as $variable => $valeur) {
154
-			if ($valeur === null) {
155
-				unset($auteur_verif[$variable]);
156
-			}
157
-		}
158
-
159
-		// Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là
160
-		if (!$auteur_verif) {
161
-			if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) {
162
-				unset($_SESSION[$_COOKIE['spip_session']]);
163
-			}
164
-			if (isset($_COOKIE['spip_session'])) {
165
-				unset($_COOKIE['spip_session']);
166
-			}
167
-
168
-			return false;
169
-		}
170
-	}
171
-
172
-	if (!isset($_COOKIE['spip_session'])
173
-		or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
174
-	) {
175
-		$_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true));
176
-	}
177
-
178
-	// Maintenant on sait qu'on a des choses à écrire
179
-	// On s'assure d'avoir au moins ces valeurs
180
-	$auteur['id_auteur'] = $id_auteur;
181
-	if (!isset($auteur['hash_env'])) {
182
-		$auteur['hash_env'] = hash_env();
183
-	}
184
-	if (!isset($auteur['ip_change'])) {
185
-		$auteur['ip_change'] = false;
186
-	}
187
-
188
-	if (!isset($auteur['date_session'])) {
189
-		$auteur['date_session'] = time();
190
-	}
191
-	if (isset($auteur['prefs'])
192
-		and is_string($auteur['prefs'])
193
-	  and $prefs = @unserialize($auteur['prefs'])) {
194
-		$auteur['prefs'] = $prefs;
195
-	}
196
-
197
-	$fichier_session = "";
198
-
199
-	// les sessions anonymes sont stockees dans $_SESSION
200
-	if (!$id_auteur) {
201
-		spip_php_session_start();
202
-		$_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur);
203
-	} else {
204
-		$fichier_session = fichier_session('alea_ephemere');
205
-		if (!ecrire_fichier_session($fichier_session, $auteur)) {
206
-			spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS);
207
-			include_spip('inc/minipres');
208
-			echo minipres();
209
-			exit;
210
-		}
211
-		// verifier et limiter le nombre maxi de sessions
212
-		// https://core.spip.net/issues/3807
213
-		lister_sessions_auteur($id_auteur);
214
-	}
215
-
216
-	// poser le cookie de session SPIP
217
-	include_spip('inc/cookie');
218
-	$duree = definir_duree_cookie_session($auteur);
219
-	spip_setcookie( 'spip_session', $_COOKIE['spip_session'], [
220
-		'expires' => time() + $duree
221
-	]);
222
-	spip_log("ajoute session $fichier_session cookie $duree", "session");
223
-
224
-	// Si on est admin, poser le cookie de correspondance
225
-	if (!function_exists('autoriser')) {
226
-		include_spip('inc/autoriser');
227
-	}
228
-	if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) {
229
-		spip_setcookie('spip_admin', '@' . ($auteur['email'] ?: $auteur['login']), [
230
-			'expires' => time() + max(_DUREE_COOKIE_ADMIN, $duree)
231
-		]);
232
-	} // sinon le supprimer ...
233
-	else {
234
-		spip_setcookie('spip_admin', '', [
235
-			'expires' => 1
236
-		]);
237
-	}
238
-
239
-	# on en profite pour purger les vieilles sessions anonymes abandonnees
240
-	# supprimer_sessions(0, true, false);
241
-
242
-	return $_COOKIE['spip_session'];
127
+    // Si le client a deja une session valide pour son id_auteur
128
+    // on conserve le meme fichier
129
+
130
+    // Attention un visiteur peut avoir une session et un id=0,
131
+    // => ne pas melanger les sessions des differents visiteurs
132
+    $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
133
+
134
+    // Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session)
135
+    // on va vérifier s'il y a vraiment des choses à écrire
136
+    if (!$id_auteur) {
137
+        // On supprime les données de base pour voir le contenu réel de la session
138
+        $auteur_verif = $auteur;
139
+        if (isset($auteur_verif['id_auteur'])) {
140
+            unset($auteur_verif['id_auteur']);
141
+        }
142
+        if (isset($auteur_verif['hash_env'])) {
143
+            unset($auteur_verif['hash_env']);
144
+        }
145
+        if (isset($auteur_verif['ip_change'])) {
146
+            unset($auteur_verif['ip_change']);
147
+        }
148
+        if (isset($auteur_verif['date_session'])) {
149
+            unset($auteur_verif['date_session']);
150
+        }
151
+
152
+        // Les variables vraiment nulle ne sont pas à prendre en compte non plus
153
+        foreach ($auteur_verif as $variable => $valeur) {
154
+            if ($valeur === null) {
155
+                unset($auteur_verif[$variable]);
156
+            }
157
+        }
158
+
159
+        // Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là
160
+        if (!$auteur_verif) {
161
+            if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) {
162
+                unset($_SESSION[$_COOKIE['spip_session']]);
163
+            }
164
+            if (isset($_COOKIE['spip_session'])) {
165
+                unset($_COOKIE['spip_session']);
166
+            }
167
+
168
+            return false;
169
+        }
170
+    }
171
+
172
+    if (!isset($_COOKIE['spip_session'])
173
+        or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
174
+    ) {
175
+        $_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(rand(), true));
176
+    }
177
+
178
+    // Maintenant on sait qu'on a des choses à écrire
179
+    // On s'assure d'avoir au moins ces valeurs
180
+    $auteur['id_auteur'] = $id_auteur;
181
+    if (!isset($auteur['hash_env'])) {
182
+        $auteur['hash_env'] = hash_env();
183
+    }
184
+    if (!isset($auteur['ip_change'])) {
185
+        $auteur['ip_change'] = false;
186
+    }
187
+
188
+    if (!isset($auteur['date_session'])) {
189
+        $auteur['date_session'] = time();
190
+    }
191
+    if (isset($auteur['prefs'])
192
+        and is_string($auteur['prefs'])
193
+      and $prefs = @unserialize($auteur['prefs'])) {
194
+        $auteur['prefs'] = $prefs;
195
+    }
196
+
197
+    $fichier_session = "";
198
+
199
+    // les sessions anonymes sont stockees dans $_SESSION
200
+    if (!$id_auteur) {
201
+        spip_php_session_start();
202
+        $_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur);
203
+    } else {
204
+        $fichier_session = fichier_session('alea_ephemere');
205
+        if (!ecrire_fichier_session($fichier_session, $auteur)) {
206
+            spip_log('Echec ecriture fichier session ' . $fichier_session, "session" . _LOG_HS);
207
+            include_spip('inc/minipres');
208
+            echo minipres();
209
+            exit;
210
+        }
211
+        // verifier et limiter le nombre maxi de sessions
212
+        // https://core.spip.net/issues/3807
213
+        lister_sessions_auteur($id_auteur);
214
+    }
215
+
216
+    // poser le cookie de session SPIP
217
+    include_spip('inc/cookie');
218
+    $duree = definir_duree_cookie_session($auteur);
219
+    spip_setcookie( 'spip_session', $_COOKIE['spip_session'], [
220
+        'expires' => time() + $duree
221
+    ]);
222
+    spip_log("ajoute session $fichier_session cookie $duree", "session");
223
+
224
+    // Si on est admin, poser le cookie de correspondance
225
+    if (!function_exists('autoriser')) {
226
+        include_spip('inc/autoriser');
227
+    }
228
+    if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) {
229
+        spip_setcookie('spip_admin', '@' . ($auteur['email'] ?: $auteur['login']), [
230
+            'expires' => time() + max(_DUREE_COOKIE_ADMIN, $duree)
231
+        ]);
232
+    } // sinon le supprimer ...
233
+    else {
234
+        spip_setcookie('spip_admin', '', [
235
+            'expires' => 1
236
+        ]);
237
+    }
238
+
239
+    # on en profite pour purger les vieilles sessions anonymes abandonnees
240
+    # supprimer_sessions(0, true, false);
241
+
242
+    return $_COOKIE['spip_session'];
243 243
 }
244 244
 
245 245
 /**
@@ -259,15 +259,15 @@  discard block
 block discarded – undo
259 259
  *     Durée en secondes
260 260
 **/
261 261
 function definir_duree_cookie_session($auteur) {
262
-	$coef = 2;
263
-	if (isset($auteur['cookie'])) {
264
-		if (is_numeric($auteur['cookie'])) {
265
-			$coef = $auteur['cookie'];
266
-		} else {
267
-			$coef = 20;
268
-		}
269
-	}
270
-	return (int)(_RENOUVELLE_ALEA * $coef);
262
+    $coef = 2;
263
+    if (isset($auteur['cookie'])) {
264
+        if (is_numeric($auteur['cookie'])) {
265
+            $coef = $auteur['cookie'];
266
+        } else {
267
+            $coef = 20;
268
+        }
269
+    }
270
+    return (int)(_RENOUVELLE_ALEA * $coef);
271 271
 }
272 272
 
273 273
 /**
@@ -287,90 +287,90 @@  discard block
 block discarded – undo
287 287
  * @return bool|int|null
288 288
  */
289 289
 function verifier_session($change = false) {
290
-	// si pas de cookie, c'est fichu
291
-	if (!isset($_COOKIE['spip_session'])) {
292
-		return false;
293
-	}
294
-
295
-	$fichier_session = "";
296
-
297
-	// est-ce une session anonyme ?
298
-	if (!intval($_COOKIE['spip_session'])) {
299
-		spip_php_session_start();
300
-		if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) {
301
-			return false;
302
-		}
303
-		$GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']];
304
-	} else {
305
-		// Tester avec alea courant
306
-		$fichier_session = fichier_session('alea_ephemere', true);
307
-		if ($fichier_session and @file_exists($fichier_session)) {
308
-			include($fichier_session);
309
-		} else {
310
-			// Sinon, tester avec alea precedent
311
-			$fichier_session = fichier_session('alea_ephemere_ancien', true);
312
-			if (!$fichier_session or !@file_exists($fichier_session)) {
313
-				return false;
314
-			}
315
-
316
-			// Renouveler la session avec l'alea courant
317
-			include($fichier_session);
318
-			spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session");
319
-			spip_unlink($fichier_session);
320
-			ajouter_session($GLOBALS['visiteur_session']);
321
-		}
322
-	}
323
-
324
-	// Compatibilite ascendante : auteur_session est visiteur_session si
325
-	// c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut
326
-	// n'etre qu'identifie, sans aucune authentification).
327
-
328
-	if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
329
-		$GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
330
-	}
331
-
332
-
333
-	// Si l'adresse IP change, inc/presentation mettra une balise image
334
-	// avec un URL de rappel demandant a changer le nom de la session.
335
-	// Seul celui qui a l'IP d'origine est rejoue
336
-	// ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
337
-	// sa victime, mais se ferait deconnecter par elle.
338
-	if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) {
339
-		if (!$GLOBALS['visiteur_session']['ip_change']) {
340
-			define('_SESSION_REJOUER', true);
341
-			$GLOBALS['visiteur_session']['ip_change'] = true;
342
-			ajouter_session($GLOBALS['visiteur_session']);
343
-		} else {
344
-			if ($change) {
345
-				spip_log("session non rejouee, vol de cookie ?", "session");
346
-			}
347
-		}
348
-	} else {
349
-		if ($change) {
350
-			spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session");
351
-			if ($fichier_session) {
352
-				spip_unlink($fichier_session);
353
-			}
354
-			$GLOBALS['visiteur_session']['ip_change'] = false;
355
-			unset($_COOKIE['spip_session']);
356
-			ajouter_session($GLOBALS['visiteur_session']);
357
-		}
358
-	}
359
-
360
-	// Si la session a ete initiee il y a trop longtemps, elle est annulee
361
-	if (isset($GLOBALS['visiteur_session'])
362
-		and defined('_AGE_SESSION_MAX')
363
-		and _AGE_SESSION_MAX > 0
364
-		and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX
365
-	) {
366
-		unset($GLOBALS['visiteur_session']);
367
-
368
-		return false;
369
-	}
370
-
371
-	return is_numeric($GLOBALS['visiteur_session']['id_auteur'])
372
-		? $GLOBALS['visiteur_session']['id_auteur']
373
-		: null;
290
+    // si pas de cookie, c'est fichu
291
+    if (!isset($_COOKIE['spip_session'])) {
292
+        return false;
293
+    }
294
+
295
+    $fichier_session = "";
296
+
297
+    // est-ce une session anonyme ?
298
+    if (!intval($_COOKIE['spip_session'])) {
299
+        spip_php_session_start();
300
+        if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) {
301
+            return false;
302
+        }
303
+        $GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']];
304
+    } else {
305
+        // Tester avec alea courant
306
+        $fichier_session = fichier_session('alea_ephemere', true);
307
+        if ($fichier_session and @file_exists($fichier_session)) {
308
+            include($fichier_session);
309
+        } else {
310
+            // Sinon, tester avec alea precedent
311
+            $fichier_session = fichier_session('alea_ephemere_ancien', true);
312
+            if (!$fichier_session or !@file_exists($fichier_session)) {
313
+                return false;
314
+            }
315
+
316
+            // Renouveler la session avec l'alea courant
317
+            include($fichier_session);
318
+            spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], "session");
319
+            spip_unlink($fichier_session);
320
+            ajouter_session($GLOBALS['visiteur_session']);
321
+        }
322
+    }
323
+
324
+    // Compatibilite ascendante : auteur_session est visiteur_session si
325
+    // c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut
326
+    // n'etre qu'identifie, sans aucune authentification).
327
+
328
+    if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
329
+        $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
330
+    }
331
+
332
+
333
+    // Si l'adresse IP change, inc/presentation mettra une balise image
334
+    // avec un URL de rappel demandant a changer le nom de la session.
335
+    // Seul celui qui a l'IP d'origine est rejoue
336
+    // ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
337
+    // sa victime, mais se ferait deconnecter par elle.
338
+    if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) {
339
+        if (!$GLOBALS['visiteur_session']['ip_change']) {
340
+            define('_SESSION_REJOUER', true);
341
+            $GLOBALS['visiteur_session']['ip_change'] = true;
342
+            ajouter_session($GLOBALS['visiteur_session']);
343
+        } else {
344
+            if ($change) {
345
+                spip_log("session non rejouee, vol de cookie ?", "session");
346
+            }
347
+        }
348
+    } else {
349
+        if ($change) {
350
+            spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], "session");
351
+            if ($fichier_session) {
352
+                spip_unlink($fichier_session);
353
+            }
354
+            $GLOBALS['visiteur_session']['ip_change'] = false;
355
+            unset($_COOKIE['spip_session']);
356
+            ajouter_session($GLOBALS['visiteur_session']);
357
+        }
358
+    }
359
+
360
+    // Si la session a ete initiee il y a trop longtemps, elle est annulee
361
+    if (isset($GLOBALS['visiteur_session'])
362
+        and defined('_AGE_SESSION_MAX')
363
+        and _AGE_SESSION_MAX > 0
364
+        and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX
365
+    ) {
366
+        unset($GLOBALS['visiteur_session']);
367
+
368
+        return false;
369
+    }
370
+
371
+    return is_numeric($GLOBALS['visiteur_session']['id_auteur'])
372
+        ? $GLOBALS['visiteur_session']['id_auteur']
373
+        : null;
374 374
 }
375 375
 
376 376
 /**
@@ -385,7 +385,7 @@  discard block
 block discarded – undo
385 385
  *     Valeur, si trouvée, `null` sinon.
386 386
  */
387 387
 function session_get($nom) {
388
-	return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null;
388
+    return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null;
389 389
 }
390 390
 
391 391
 
@@ -401,32 +401,32 @@  discard block
 block discarded – undo
401 401
  * @return void|array
402 402
  */
403 403
 function session_set($nom, $val = null) {
404
-	static $remove = array();
405
-	static $actualiser_sessions = false;
406
-	if ($nom === false) {
407
-		return $remove;
408
-	}
409
-	if (is_null($val)) {
410
-		// rien a faire
411
-		if (!isset($GLOBALS['visiteur_session'][$nom])) {
412
-			return;
413
-		}
414
-		unset($GLOBALS['visiteur_session'][$nom]);
415
-		$remove[] = $nom;
416
-	} else {
417
-		// On ajoute la valeur dans la globale
418
-		$GLOBALS['visiteur_session'][$nom] = $val;
419
-		if ($remove) {
420
-			$remove = array_diff($remove, array($nom));
421
-		}
422
-	}
423
-	if (!$actualiser_sessions) {
424
-		// il faut creer la session si on en a pas, la premiere fois
425
-		ajouter_session($GLOBALS['visiteur_session']);
426
-		// in register la fonction qui mettra a jour toutes les sessions en fin de hit
427
-		register_shutdown_function('terminer_actualiser_sessions');
428
-		$actualiser_sessions = true;
429
-	}
404
+    static $remove = array();
405
+    static $actualiser_sessions = false;
406
+    if ($nom === false) {
407
+        return $remove;
408
+    }
409
+    if (is_null($val)) {
410
+        // rien a faire
411
+        if (!isset($GLOBALS['visiteur_session'][$nom])) {
412
+            return;
413
+        }
414
+        unset($GLOBALS['visiteur_session'][$nom]);
415
+        $remove[] = $nom;
416
+    } else {
417
+        // On ajoute la valeur dans la globale
418
+        $GLOBALS['visiteur_session'][$nom] = $val;
419
+        if ($remove) {
420
+            $remove = array_diff($remove, array($nom));
421
+        }
422
+    }
423
+    if (!$actualiser_sessions) {
424
+        // il faut creer la session si on en a pas, la premiere fois
425
+        ajouter_session($GLOBALS['visiteur_session']);
426
+        // in register la fonction qui mettra a jour toutes les sessions en fin de hit
427
+        register_shutdown_function('terminer_actualiser_sessions');
428
+        $actualiser_sessions = true;
429
+    }
430 430
 }
431 431
 
432 432
 /**
@@ -435,12 +435,12 @@  discard block
 block discarded – undo
435 435
  * @uses actualiser_sessions()
436 436
  */
437 437
 function terminer_actualiser_sessions() {
438
-	// se remettre dans le dossier de travail au cas ou Apache a change
439
-	chdir(_ROOT_CWD);
440
-	// recuperer les variables a effacer
441
-	$remove = session_set(false);
442
-	// mettre a jour toutes les sessions
443
-	actualiser_sessions($GLOBALS['visiteur_session'], $remove);
438
+    // se remettre dans le dossier de travail au cas ou Apache a change
439
+    chdir(_ROOT_CWD);
440
+    // recuperer les variables a effacer
441
+    $remove = session_set(false);
442
+    // mettre a jour toutes les sessions
443
+    actualiser_sessions($GLOBALS['visiteur_session'], $remove);
444 444
 }
445 445
 
446 446
 
@@ -465,82 +465,82 @@  discard block
 block discarded – undo
465 465
  */
466 466
 function actualiser_sessions($auteur, $supprimer_cles = array()) {
467 467
 
468
-	$id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
469
-	$id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0;
470
-
471
-	// si l'auteur est celui de la session courante, verifier/creer la session si besoin
472
-	$fichier_session_courante = "";
473
-	if ($id_auteur == $id_auteur_courant) {
474
-		$auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
475
-		ajouter_session($auteur);
476
-		if ($id_auteur) {
477
-			$fichier_session_courante = fichier_session('alea_ephemere');
478
-		}
479
-	}
480
-
481
-	// si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees
482
-	if (!$id_auteur) {
483
-		return;
484
-	}
485
-
486
-	// les préférences sont désérialisées, toujours.
487
-	// [fixme] Le champ 'prefs' sert aussi à l’inscription
488
-	if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
489
-		$auteur['prefs'] = @unserialize($auteur['prefs']);
490
-		if (!is_array($auteur['prefs'])) {
491
-			$auteur['prefs'] = [];
492
-		}
493
-	}
494
-
495
-	// memoriser l'auteur courant (celui qui modifie la fiche)
496
-	$sauve = $GLOBALS['visiteur_session'];
497
-
498
-	// .. mettre a jour les sessions de l'auteur cible
499
-	// attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire
500
-	// cree par une ecriture concurente d'une session (fichier atomique temporaire)
501
-	$sessions = lister_sessions_auteur($id_auteur);
502
-
503
-	// 1ere passe : lire et fusionner les sessions
504
-	foreach ($sessions as $session) {
505
-		$GLOBALS['visiteur_session'] = array();
506
-		// a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
507
-		if ($session !== $fichier_session_courante
508
-			and @file_exists($session)
509
-		) {
510
-			include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
511
-
512
-			$auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
513
-		}
514
-	}
515
-
516
-	// supprimer les eventuelles cles dont on ne veut plus
517
-	foreach ($supprimer_cles as $cle) {
518
-		unset($auteur[$cle]);
519
-	}
520
-
521
-	$auteur_session = preparer_ecriture_session($auteur);
522
-
523
-	// seconde passe : ecrire les sessions qui ne sont pas a jour
524
-	foreach ($sessions as $session) {
525
-		$GLOBALS['visiteur_session'] = array();
526
-		// a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
527
-		if (@file_exists($session)) {
528
-			include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
529
-
530
-			// est-ce que cette session est a mettre a jour ?
531
-			if ($auteur_session != $GLOBALS['visiteur_session']) {
532
-				ecrire_fichier_session($session, $auteur);
533
-			}
534
-		}
535
-	}
536
-
537
-	if ($id_auteur == $id_auteur_courant) {
538
-		$GLOBALS['visiteur_session'] = $auteur;
539
-		$GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
540
-	} else {
541
-		// restaurer l'auteur courant
542
-		$GLOBALS['visiteur_session'] = $sauve;
543
-	}
468
+    $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
469
+    $id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0;
470
+
471
+    // si l'auteur est celui de la session courante, verifier/creer la session si besoin
472
+    $fichier_session_courante = "";
473
+    if ($id_auteur == $id_auteur_courant) {
474
+        $auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
475
+        ajouter_session($auteur);
476
+        if ($id_auteur) {
477
+            $fichier_session_courante = fichier_session('alea_ephemere');
478
+        }
479
+    }
480
+
481
+    // si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees
482
+    if (!$id_auteur) {
483
+        return;
484
+    }
485
+
486
+    // les préférences sont désérialisées, toujours.
487
+    // [fixme] Le champ 'prefs' sert aussi à l’inscription
488
+    if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
489
+        $auteur['prefs'] = @unserialize($auteur['prefs']);
490
+        if (!is_array($auteur['prefs'])) {
491
+            $auteur['prefs'] = [];
492
+        }
493
+    }
494
+
495
+    // memoriser l'auteur courant (celui qui modifie la fiche)
496
+    $sauve = $GLOBALS['visiteur_session'];
497
+
498
+    // .. mettre a jour les sessions de l'auteur cible
499
+    // attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire
500
+    // cree par une ecriture concurente d'une session (fichier atomique temporaire)
501
+    $sessions = lister_sessions_auteur($id_auteur);
502
+
503
+    // 1ere passe : lire et fusionner les sessions
504
+    foreach ($sessions as $session) {
505
+        $GLOBALS['visiteur_session'] = array();
506
+        // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
507
+        if ($session !== $fichier_session_courante
508
+            and @file_exists($session)
509
+        ) {
510
+            include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
511
+
512
+            $auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
513
+        }
514
+    }
515
+
516
+    // supprimer les eventuelles cles dont on ne veut plus
517
+    foreach ($supprimer_cles as $cle) {
518
+        unset($auteur[$cle]);
519
+    }
520
+
521
+    $auteur_session = preparer_ecriture_session($auteur);
522
+
523
+    // seconde passe : ecrire les sessions qui ne sont pas a jour
524
+    foreach ($sessions as $session) {
525
+        $GLOBALS['visiteur_session'] = array();
526
+        // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
527
+        if (@file_exists($session)) {
528
+            include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
529
+
530
+            // est-ce que cette session est a mettre a jour ?
531
+            if ($auteur_session != $GLOBALS['visiteur_session']) {
532
+                ecrire_fichier_session($session, $auteur);
533
+            }
534
+        }
535
+    }
536
+
537
+    if ($id_auteur == $id_auteur_courant) {
538
+        $GLOBALS['visiteur_session'] = $auteur;
539
+        $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
540
+    } else {
541
+        // restaurer l'auteur courant
542
+        $GLOBALS['visiteur_session'] = $sauve;
543
+    }
544 544
 
545 545
 }
546 546
 
@@ -555,46 +555,46 @@  discard block
 block discarded – undo
555 555
  */
556 556
 function lister_sessions_auteur($id_auteur, $nb_max = null) {
557 557
 
558
-	if (is_null($nb_max)) {
559
-		if (!defined('_NB_SESSIONS_MAX')) {
560
-			define('_NB_SESSIONS_MAX', 100);
561
-		}
562
-		$nb_max = _NB_SESSIONS_MAX;
563
-	}
564
-
565
-	// liste des sessions
566
-	$sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
567
-
568
-	// si on en a plus que la limite, supprimer les plus vieilles
569
-	// si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
570
-	if ($id_auteur
571
-		and count($sessions) > $nb_max) {
572
-
573
-		// limiter le nombre de sessions ouvertes par un auteur
574
-		// filemtime sur les sessions
575
-		$sessions = array_flip($sessions);
576
-
577
-		// 1ere passe : lire les filemtime
578
-		foreach ($sessions as $session => $z) {
579
-			if ($d = @filemtime($session)
580
-			) {
581
-				$sessions[$session] = $d;
582
-			} else {
583
-				$sessions[$session] = 0;
584
-			}
585
-		}
586
-
587
-		// les plus anciennes en premier
588
-		asort($sessions);
589
-
590
-		$sessions = array_keys($sessions);
591
-		while (count($sessions) > $nb_max) {
592
-			$session = array_shift($sessions);
593
-			@unlink($session);
594
-		}
595
-	}
596
-
597
-	return $sessions;
558
+    if (is_null($nb_max)) {
559
+        if (!defined('_NB_SESSIONS_MAX')) {
560
+            define('_NB_SESSIONS_MAX', 100);
561
+        }
562
+        $nb_max = _NB_SESSIONS_MAX;
563
+    }
564
+
565
+    // liste des sessions
566
+    $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
567
+
568
+    // si on en a plus que la limite, supprimer les plus vieilles
569
+    // si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
570
+    if ($id_auteur
571
+        and count($sessions) > $nb_max) {
572
+
573
+        // limiter le nombre de sessions ouvertes par un auteur
574
+        // filemtime sur les sessions
575
+        $sessions = array_flip($sessions);
576
+
577
+        // 1ere passe : lire les filemtime
578
+        foreach ($sessions as $session => $z) {
579
+            if ($d = @filemtime($session)
580
+            ) {
581
+                $sessions[$session] = $d;
582
+            } else {
583
+                $sessions[$session] = 0;
584
+            }
585
+        }
586
+
587
+        // les plus anciennes en premier
588
+        asort($sessions);
589
+
590
+        $sessions = array_keys($sessions);
591
+        while (count($sessions) > $nb_max) {
592
+            $session = array_shift($sessions);
593
+            @unlink($session);
594
+        }
595
+    }
596
+
597
+    return $sessions;
598 598
 }
599 599
 
600 600
 
@@ -608,26 +608,26 @@  discard block
 block discarded – undo
608 608
  * @return array
609 609
  */
610 610
 function preparer_ecriture_session($auteur) {
611
-	$row = $auteur;
612
-
613
-	// ne pas enregistrer ces elements de securite
614
-	// dans le fichier de session
615
-	unset($auteur['pass']);
616
-	unset($auteur['htpass']);
617
-	unset($auteur['low_sec']);
618
-	unset($auteur['alea_actuel']);
619
-	unset($auteur['alea_futur']);
620
-
621
-	$auteur = pipeline('preparer_fichier_session', array('args' => array('row' => $row), 'data' => $auteur));
622
-
623
-	// ne pas enregistrer les valeurs vraiment nulle dans le fichier
624
-	foreach ($auteur as $variable => $valeur) {
625
-		if ($valeur === null) {
626
-			unset($auteur[$variable]);
627
-		}
628
-	}
629
-
630
-	return $auteur;
611
+    $row = $auteur;
612
+
613
+    // ne pas enregistrer ces elements de securite
614
+    // dans le fichier de session
615
+    unset($auteur['pass']);
616
+    unset($auteur['htpass']);
617
+    unset($auteur['low_sec']);
618
+    unset($auteur['alea_actuel']);
619
+    unset($auteur['alea_futur']);
620
+
621
+    $auteur = pipeline('preparer_fichier_session', array('args' => array('row' => $row), 'data' => $auteur));
622
+
623
+    // ne pas enregistrer les valeurs vraiment nulle dans le fichier
624
+    foreach ($auteur as $variable => $valeur) {
625
+        if ($valeur === null) {
626
+            unset($auteur[$variable]);
627
+        }
628
+    }
629
+
630
+    return $auteur;
631 631
 }
632 632
 
633 633
 /**
@@ -639,17 +639,17 @@  discard block
 block discarded – undo
639 639
  */
640 640
 function ecrire_fichier_session($fichier, $auteur) {
641 641
 
642
-	$auteur = preparer_ecriture_session($auteur);
642
+    $auteur = preparer_ecriture_session($auteur);
643 643
 
644
-	// enregistrer les autres donnees du visiteur
645
-	$texte = "<" . "?php\n";
646
-	foreach ($auteur as $var => $val) {
647
-		$texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
648
-			. var_export($val, true) . ";\n";
649
-	}
650
-	$texte .= "?" . ">\n";
644
+    // enregistrer les autres donnees du visiteur
645
+    $texte = "<" . "?php\n";
646
+    foreach ($auteur as $var => $val) {
647
+        $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
648
+            . var_export($val, true) . ";\n";
649
+    }
650
+    $texte .= "?" . ">\n";
651 651
 
652
-	return ecrire_fichier($fichier, $texte);
652
+    return ecrire_fichier($fichier, $texte);
653 653
 }
654 654
 
655 655
 
@@ -662,23 +662,23 @@  discard block
 block discarded – undo
662 662
  */
663 663
 function fichier_session($alea, $tantpis = false) {
664 664
 
665
-	include_spip('inc/acces');
666
-	charger_aleas();
665
+    include_spip('inc/acces');
666
+    charger_aleas();
667 667
 
668
-	if (empty($GLOBALS['meta'][$alea])) {
669
-		if (!$tantpis) {
670
-			spip_log("fichier session ($tantpis): $alea indisponible", "session");
671
-			include_spip('inc/minipres');
672
-			echo minipres();
673
-		}
668
+    if (empty($GLOBALS['meta'][$alea])) {
669
+        if (!$tantpis) {
670
+            spip_log("fichier session ($tantpis): $alea indisponible", "session");
671
+            include_spip('inc/minipres');
672
+            echo minipres();
673
+        }
674 674
 
675
-		return ''; // echec mais $tanpis
676
-	} else {
677
-		$repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
678
-		$c = $_COOKIE['spip_session'];
675
+        return ''; // echec mais $tanpis
676
+    } else {
677
+        $repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
678
+        $c = $_COOKIE['spip_session'];
679 679
 
680
-		return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
681
-	}
680
+        return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
681
+    }
682 682
 }
683 683
 
684 684
 
@@ -695,7 +695,7 @@  discard block
 block discarded – undo
695 695
  * @return string
696 696
  */
697 697
 function rejouer_session() {
698
-	return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
698
+    return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
699 699
 }
700 700
 
701 701
 
@@ -705,12 +705,12 @@  discard block
 block discarded – undo
705 705
  * @return string
706 706
  */
707 707
 function hash_env() {
708
-	static $res = '';
709
-	if ($res) {
710
-		return $res;
711
-	}
708
+    static $res = '';
709
+    if ($res) {
710
+        return $res;
711
+    }
712 712
 
713
-	return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''));
713
+    return $res = md5($GLOBALS['ip'] . (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''));
714 714
 }
715 715
 
716 716
 
@@ -722,11 +722,11 @@  discard block
 block discarded – undo
722 722
  * @return bool True si une session PHP est ouverte.
723 723
  **/
724 724
 function spip_php_session_start() {
725
-	if (!is_php_session_started()) {
726
-		return session_start();
727
-	}
725
+    if (!is_php_session_started()) {
726
+        return session_start();
727
+    }
728 728
 
729
-	return true;
729
+    return true;
730 730
 }
731 731
 
732 732
 /**
@@ -736,9 +736,9 @@  discard block
 block discarded – undo
736 736
  * @return bool true si une session PHP est active
737 737
  **/
738 738
 function is_php_session_started() {
739
-	if (php_sapi_name() !== 'cli') {
740
-		return session_status() === PHP_SESSION_ACTIVE ? true : false;
741
-	}
739
+    if (php_sapi_name() !== 'cli') {
740
+        return session_status() === PHP_SESSION_ACTIVE ? true : false;
741
+    }
742 742
 
743
-	return false;
743
+    return false;
744 744
 }
Please login to merge, or discard this patch.
ecrire/action/converser.php 1 patch
Indentation   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Langue
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('inc/cookie');
@@ -30,21 +30,21 @@  discard block
 block discarded – undo
30 30
  * @return void
31 31
  */
32 32
 function action_converser_dist() {
33
-	$update_session = false;
34
-	if (_request('arg') and spip_connect()) {
35
-		$securiser_action = charger_fonction('securiser_action', 'inc');
36
-		$securiser_action();
37
-		$update_session = true;
38
-	}
33
+    $update_session = false;
34
+    if (_request('arg') and spip_connect()) {
35
+        $securiser_action = charger_fonction('securiser_action', 'inc');
36
+        $securiser_action();
37
+        $update_session = true;
38
+    }
39 39
 
40
-	$lang = action_converser_changer_langue($update_session);
41
-	$redirect = rawurldecode(_request('redirect'));
40
+    $lang = action_converser_changer_langue($update_session);
41
+    $redirect = rawurldecode(_request('redirect'));
42 42
 
43
-	if (!$redirect) {
44
-		$redirect = _DIR_RESTREINT_ABS;
45
-	}
46
-	$redirect = parametre_url($redirect, 'lang', $lang, '&');
47
-	redirige_par_entete($redirect, true);
43
+    if (!$redirect) {
44
+        $redirect = _DIR_RESTREINT_ABS;
45
+    }
46
+    $redirect = parametre_url($redirect, 'lang', $lang, '&');
47
+    redirige_par_entete($redirect, true);
48 48
 }
49 49
 
50 50
 /**
@@ -56,23 +56,23 @@  discard block
 block discarded – undo
56 56
  * @return string
57 57
  */
58 58
 function action_converser_changer_langue($update_session) {
59
-	if ($lang = _request('var_lang')) {
60
-		action_converser_post($lang);
61
-	} elseif ($lang = _request('var_lang_ecrire')) {
62
-		if ($update_session) {
63
-			sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
64
-			$GLOBALS['visiteur_session']['lang'] = $lang;
65
-			$session = charger_fonction('session', 'inc');
66
-			if ($spip_session = $session($GLOBALS['visiteur_session'])) {
67
-				spip_setcookie('spip_session', $spip_session, [
68
-					'expires' => time() + 3600 * 24 * 14
69
-				]);
70
-			}
71
-		}
72
-		action_converser_post($lang, 'spip_lang_ecrire');
73
-	}
59
+    if ($lang = _request('var_lang')) {
60
+        action_converser_post($lang);
61
+    } elseif ($lang = _request('var_lang_ecrire')) {
62
+        if ($update_session) {
63
+            sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
64
+            $GLOBALS['visiteur_session']['lang'] = $lang;
65
+            $session = charger_fonction('session', 'inc');
66
+            if ($spip_session = $session($GLOBALS['visiteur_session'])) {
67
+                spip_setcookie('spip_session', $spip_session, [
68
+                    'expires' => time() + 3600 * 24 * 14
69
+                ]);
70
+            }
71
+        }
72
+        action_converser_post($lang, 'spip_lang_ecrire');
73
+    }
74 74
 
75
-	return $lang;
75
+    return $lang;
76 76
 }
77 77
 
78 78
 /**
@@ -83,17 +83,17 @@  discard block
 block discarded – undo
83 83
  * @return void
84 84
  */
85 85
 function action_converser_post($lang, $ecrire = false) {
86
-	if ($lang) {
87
-		include_spip('inc/lang');
88
-		if (changer_langue($lang)) {
89
-			spip_setcookie('spip_lang', $_COOKIE['spip_lang'] = $lang, [
90
-				'expires' => time() + 365 * 24 * 3600
91
-			]);
92
-			if ($ecrire) {
93
-				spip_setcookie('spip_lang_ecrire', $_COOKIE['spip_lang_ecrire'] = $lang, [
94
-					'expires' => time() + 365 * 24 * 3600
95
-				]);
96
-			}
97
-		}
98
-	}
86
+    if ($lang) {
87
+        include_spip('inc/lang');
88
+        if (changer_langue($lang)) {
89
+            spip_setcookie('spip_lang', $_COOKIE['spip_lang'] = $lang, [
90
+                'expires' => time() + 365 * 24 * 3600
91
+            ]);
92
+            if ($ecrire) {
93
+                spip_setcookie('spip_lang_ecrire', $_COOKIE['spip_lang_ecrire'] = $lang, [
94
+                    'expires' => time() + 365 * 24 * 3600
95
+                ]);
96
+            }
97
+        }
98
+    }
99 99
 }
Please login to merge, or discard this patch.
ecrire/action/cookie.php 1 patch
Indentation   +78 added lines, -78 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
 include_spip('inc/actions');
@@ -33,88 +33,88 @@  discard block
 block discarded – undo
33 33
  * @return void
34 34
  */
35 35
 function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
36
-	$redirect_echec = $redirect = null;
37
-	$test_echec_cookie = null;
38
-	$url = "";
39
-	if (is_null($set_cookie_admin)) {
40
-		$set_cookie_admin = _request('cookie_admin');
41
-		$change_session = _request('change_session');
42
-		$test_echec_cookie = _request('test_echec_cookie');
36
+    $redirect_echec = $redirect = null;
37
+    $test_echec_cookie = null;
38
+    $url = "";
39
+    if (is_null($set_cookie_admin)) {
40
+        $set_cookie_admin = _request('cookie_admin');
41
+        $change_session = _request('change_session');
42
+        $test_echec_cookie = _request('test_echec_cookie');
43 43
 
44
-		// La cible de notre operation de connexion
45
-		$url = securiser_redirect_action(_request('url'));
46
-		$redirect = $url ? $url : generer_url_ecrire('accueil');
47
-		$redirect_echec = _request('url_echec');
48
-		if (!isset($redirect_echec)) {
49
-			if (strpos($redirect, _DIR_RESTREINT_ABS) !== false) {
50
-				$redirect_echec = generer_url_public('login', '', true);
51
-			} else {
52
-				$redirect_echec = $redirect;
53
-			}
54
-		}
55
-	}
44
+        // La cible de notre operation de connexion
45
+        $url = securiser_redirect_action(_request('url'));
46
+        $redirect = $url ? $url : generer_url_ecrire('accueil');
47
+        $redirect_echec = _request('url_echec');
48
+        if (!isset($redirect_echec)) {
49
+            if (strpos($redirect, _DIR_RESTREINT_ABS) !== false) {
50
+                $redirect_echec = generer_url_public('login', '', true);
51
+            } else {
52
+                $redirect_echec = $redirect;
53
+            }
54
+        }
55
+    }
56 56
 
57 57
 
58
-	// rejoue le cookie pour renouveler spip_session
59
-	if ($change_session == 'oui') {
60
-		$session = charger_fonction('session', 'inc');
61
-		$session(true);
62
-		spip_log("statut 204 pour " . $_SERVER['REQUEST_URI']);
63
-		http_status(204); // No Content
64
-		return;
65
-	}
58
+    // rejoue le cookie pour renouveler spip_session
59
+    if ($change_session == 'oui') {
60
+        $session = charger_fonction('session', 'inc');
61
+        $session(true);
62
+        spip_log("statut 204 pour " . $_SERVER['REQUEST_URI']);
63
+        http_status(204); // No Content
64
+        return;
65
+    }
66 66
 
67
-	// tentative de connexion en auth_http
68
-	if (_request('essai_auth_http') and !$GLOBALS['ignore_auth_http']) {
69
-		include_spip('inc/auth');
70
-		if (@$_SERVER['PHP_AUTH_USER']
71
-			and @$_SERVER['PHP_AUTH_PW']
72
-			and $auteur = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])
73
-		) {
74
-			auth_loger($auteur);
75
-			redirige_par_entete(parametre_url($redirect, 't', time(), '&'));
76
-		} else {
77
-			ask_php_auth(_T('info_connexion_refusee'),
78
-				_T('login_login_pass_incorrect'),
79
-				_T('login_retour_site'),
80
-				"url=" . rawurlencode($redirect),
81
-				_T('login_nouvelle_tentative'),
82
-				(strpos($url, _DIR_RESTREINT_ABS) !== false));
83
-		}
84
-	} else {
67
+    // tentative de connexion en auth_http
68
+    if (_request('essai_auth_http') and !$GLOBALS['ignore_auth_http']) {
69
+        include_spip('inc/auth');
70
+        if (@$_SERVER['PHP_AUTH_USER']
71
+            and @$_SERVER['PHP_AUTH_PW']
72
+            and $auteur = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])
73
+        ) {
74
+            auth_loger($auteur);
75
+            redirige_par_entete(parametre_url($redirect, 't', time(), '&'));
76
+        } else {
77
+            ask_php_auth(_T('info_connexion_refusee'),
78
+                _T('login_login_pass_incorrect'),
79
+                _T('login_retour_site'),
80
+                "url=" . rawurlencode($redirect),
81
+                _T('login_nouvelle_tentative'),
82
+                (strpos($url, _DIR_RESTREINT_ABS) !== false));
83
+        }
84
+    } else {
85 85
 
86
-		// en cas de login sur bonjour=oui, on tente de poser un cookie
87
-		// puis de passer au login qui diagnostiquera l'echec de cookie
88
-		// le cas echeant.
89
-		if ($test_echec_cookie == 'oui') {
90
-			spip_setcookie('spip_session', 'test_echec_cookie');
91
-			if ($redirect) {
92
-				$redirect = parametre_url(parametre_url($redirect_echec, 'var_echec_cookie', 'oui', '&'), 'url',
93
-					rawurlencode($redirect), '&');
94
-			}
95
-		} else {
86
+        // en cas de login sur bonjour=oui, on tente de poser un cookie
87
+        // puis de passer au login qui diagnostiquera l'echec de cookie
88
+        // le cas echeant.
89
+        if ($test_echec_cookie == 'oui') {
90
+            spip_setcookie('spip_session', 'test_echec_cookie');
91
+            if ($redirect) {
92
+                $redirect = parametre_url(parametre_url($redirect_echec, 'var_echec_cookie', 'oui', '&'), 'url',
93
+                    rawurlencode($redirect), '&');
94
+            }
95
+        } else {
96 96
 
97
-			$cook = isset($_COOKIE['spip_admin']) ? $_COOKIE['spip_admin'] : '';
98
-			// Suppression cookie d'admin ?
99
-			if ($set_cookie_admin == "non") {
100
-				if ($cook) {
101
-					spip_setcookie('spip_admin', $cook, [
102
-						'expires' => time() - 3600 * 24
103
-					]);
104
-				}
105
-			} // Ajout de cookie d'admin
106
-			else {
107
-				if ($set_cookie_admin and _DUREE_COOKIE_ADMIN) {
108
-					spip_setcookie('spip_admin', $set_cookie_admin, [
109
-						'expires' => time() + max(_DUREE_COOKIE_ADMIN, 2 * _RENOUVELLE_ALEA)
110
-					]);
111
-				}
112
-			}
113
-		}
114
-	}
97
+            $cook = isset($_COOKIE['spip_admin']) ? $_COOKIE['spip_admin'] : '';
98
+            // Suppression cookie d'admin ?
99
+            if ($set_cookie_admin == "non") {
100
+                if ($cook) {
101
+                    spip_setcookie('spip_admin', $cook, [
102
+                        'expires' => time() - 3600 * 24
103
+                    ]);
104
+                }
105
+            } // Ajout de cookie d'admin
106
+            else {
107
+                if ($set_cookie_admin and _DUREE_COOKIE_ADMIN) {
108
+                    spip_setcookie('spip_admin', $set_cookie_admin, [
109
+                        'expires' => time() + max(_DUREE_COOKIE_ADMIN, 2 * _RENOUVELLE_ALEA)
110
+                    ]);
111
+                }
112
+            }
113
+        }
114
+    }
115 115
 
116
-	// Redirection finale
117
-	if ($redirect) {
118
-		redirige_par_entete($redirect, true);
119
-	}
116
+    // Redirection finale
117
+    if ($redirect) {
118
+        redirige_par_entete($redirect, true);
119
+    }
120 120
 }
Please login to merge, or discard this patch.
ecrire/action/logout.php 1 patch
Indentation   +84 added lines, -84 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
 include_spip('inc/cookie');
@@ -34,70 +34,70 @@  discard block
 block discarded – undo
34 34
  *
35 35
  */
36 36
 function action_logout_dist() {
37
-	$logout = _request('logout');
38
-	$url = securiser_redirect_action(_request('url'));
39
-	// cas particulier, logout dans l'espace public
40
-	if ($logout == 'public' and !$url) {
41
-		$url = url_de_base();
42
-	}
43
-
44
-	// seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
45
-	if (isset($GLOBALS['visiteur_session']['id_auteur'])
46
-		and is_numeric($GLOBALS['visiteur_session']['id_auteur'])
47
-		// des sessions anonymes avec id_auteur=0 existent, mais elle n'ont pas de statut : double check
48
-		and isset($GLOBALS['visiteur_session']['statut'])
49
-	) {
50
-
51
-		// il faut un jeton pour fermer la session (eviter les CSRF)
52
-		if (!$jeton = _request('jeton')
53
-			or !verifier_jeton_logout($jeton, $GLOBALS['visiteur_session'])
54
-		) {
55
-			$jeton = generer_jeton_logout($GLOBALS['visiteur_session']);
56
-			$action = generer_url_action("logout", "jeton=$jeton");
57
-			$action = parametre_url($action, 'logout', _request('logout'));
58
-			$action = parametre_url($action, 'url', _request('url'));
59
-			include_spip("inc/minipres");
60
-			include_spip("inc/filtres");
61
-			$texte = bouton_action(_T('spip:icone_deconnecter'), $action);
62
-			$texte = "<div class='boutons'>$texte</div>";
63
-			$texte .= '<script type="text/javascript">document.write("<style>body{visibility:hidden;}</style>");window.document.forms[0].submit();</script>';
64
-			$res = minipres(_T('spip:icone_deconnecter'), $texte, '', true);
65
-			echo $res;
66
-
67
-			return;
68
-		}
69
-
70
-		include_spip('inc/auth');
71
-		auth_trace($GLOBALS['visiteur_session'], '0000-00-00 00:00:00');
72
-		// le logout explicite vaut destruction de toutes les sessions
73
-		if (isset($_COOKIE['spip_session'])) {
74
-			$session = charger_fonction('session', 'inc');
75
-			$session($GLOBALS['visiteur_session']['id_auteur']);
76
-			spip_setcookie('spip_session', $_COOKIE['spip_session'], [
77
-				'expires' => time() - 3600
78
-			]);
79
-		}
80
-		// si authentification http, et que la personne est loge,
81
-		// pour se deconnecter, il faut proposer un nouveau formulaire de connexion http
82
-		if (isset($_SERVER['PHP_AUTH_USER'])
83
-			and !$GLOBALS['ignore_auth_http']
84
-			and $GLOBALS['auth_can_disconnect']
85
-		) {
86
-			ask_php_auth(_T('login_deconnexion_ok'),
87
-				_T('login_verifiez_navigateur'),
88
-				_T('login_retour_public'),
89
-				"redirect=" . _DIR_RESTREINT_ABS,
90
-				_T('login_test_navigateur'),
91
-				true);
92
-
93
-		}
94
-	}
95
-
96
-	// Rediriger en contrant le cache navigateur (Safari3)
97
-	include_spip('inc/headers');
98
-	redirige_par_entete($url
99
-		? parametre_url($url, 'var_hasard', uniqid(rand()), '&')
100
-		: generer_url_public('login'));
37
+    $logout = _request('logout');
38
+    $url = securiser_redirect_action(_request('url'));
39
+    // cas particulier, logout dans l'espace public
40
+    if ($logout == 'public' and !$url) {
41
+        $url = url_de_base();
42
+    }
43
+
44
+    // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
45
+    if (isset($GLOBALS['visiteur_session']['id_auteur'])
46
+        and is_numeric($GLOBALS['visiteur_session']['id_auteur'])
47
+        // des sessions anonymes avec id_auteur=0 existent, mais elle n'ont pas de statut : double check
48
+        and isset($GLOBALS['visiteur_session']['statut'])
49
+    ) {
50
+
51
+        // il faut un jeton pour fermer la session (eviter les CSRF)
52
+        if (!$jeton = _request('jeton')
53
+            or !verifier_jeton_logout($jeton, $GLOBALS['visiteur_session'])
54
+        ) {
55
+            $jeton = generer_jeton_logout($GLOBALS['visiteur_session']);
56
+            $action = generer_url_action("logout", "jeton=$jeton");
57
+            $action = parametre_url($action, 'logout', _request('logout'));
58
+            $action = parametre_url($action, 'url', _request('url'));
59
+            include_spip("inc/minipres");
60
+            include_spip("inc/filtres");
61
+            $texte = bouton_action(_T('spip:icone_deconnecter'), $action);
62
+            $texte = "<div class='boutons'>$texte</div>";
63
+            $texte .= '<script type="text/javascript">document.write("<style>body{visibility:hidden;}</style>");window.document.forms[0].submit();</script>';
64
+            $res = minipres(_T('spip:icone_deconnecter'), $texte, '', true);
65
+            echo $res;
66
+
67
+            return;
68
+        }
69
+
70
+        include_spip('inc/auth');
71
+        auth_trace($GLOBALS['visiteur_session'], '0000-00-00 00:00:00');
72
+        // le logout explicite vaut destruction de toutes les sessions
73
+        if (isset($_COOKIE['spip_session'])) {
74
+            $session = charger_fonction('session', 'inc');
75
+            $session($GLOBALS['visiteur_session']['id_auteur']);
76
+            spip_setcookie('spip_session', $_COOKIE['spip_session'], [
77
+                'expires' => time() - 3600
78
+            ]);
79
+        }
80
+        // si authentification http, et que la personne est loge,
81
+        // pour se deconnecter, il faut proposer un nouveau formulaire de connexion http
82
+        if (isset($_SERVER['PHP_AUTH_USER'])
83
+            and !$GLOBALS['ignore_auth_http']
84
+            and $GLOBALS['auth_can_disconnect']
85
+        ) {
86
+            ask_php_auth(_T('login_deconnexion_ok'),
87
+                _T('login_verifiez_navigateur'),
88
+                _T('login_retour_public'),
89
+                "redirect=" . _DIR_RESTREINT_ABS,
90
+                _T('login_test_navigateur'),
91
+                true);
92
+
93
+        }
94
+    }
95
+
96
+    // Rediriger en contrant le cache navigateur (Safari3)
97
+    include_spip('inc/headers');
98
+    redirige_par_entete($url
99
+        ? parametre_url($url, 'var_hasard', uniqid(rand()), '&')
100
+        : generer_url_public('login'));
101 101
 }
102 102
 
103 103
 /**
@@ -108,18 +108,18 @@  discard block
 block discarded – undo
108 108
  * @return string
109 109
  */
110 110
 function generer_jeton_logout($session, $alea = null) {
111
-	if (is_null($alea)) {
112
-		include_spip('inc/acces');
113
-		$alea = charger_aleas();
114
-	}
115
-
116
-	$jeton = md5($session['date_session']
117
-		. $session['id_auteur']
118
-		. $session['statut']
119
-		. $alea
120
-	);
121
-
122
-	return $jeton;
111
+    if (is_null($alea)) {
112
+        include_spip('inc/acces');
113
+        $alea = charger_aleas();
114
+    }
115
+
116
+    $jeton = md5($session['date_session']
117
+        . $session['id_auteur']
118
+        . $session['statut']
119
+        . $alea
120
+    );
121
+
122
+    return $jeton;
123 123
 }
124 124
 
125 125
 /**
@@ -133,13 +133,13 @@  discard block
 block discarded – undo
133 133
  * @return bool
134 134
  */
135 135
 function verifier_jeton_logout($jeton, $session) {
136
-	if (generer_jeton_logout($session) === $jeton) {
137
-		return true;
138
-	}
136
+    if (generer_jeton_logout($session) === $jeton) {
137
+        return true;
138
+    }
139 139
 
140
-	if (generer_jeton_logout($session, $GLOBALS['meta']['alea_ephemere_ancien']) === $jeton) {
141
-		return true;
142
-	}
140
+    if (generer_jeton_logout($session, $GLOBALS['meta']['alea_ephemere_ancien']) === $jeton) {
141
+        return true;
142
+    }
143 143
 
144
-	return false;
144
+    return false;
145 145
 }
Please login to merge, or discard this patch.
prive/images/index.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -9,13 +9,13 @@
 block discarded – undo
9 9
 	<h1>Index des icones de <a href='https://www.spip.net'>Spip</a></h1>
10 10
 	<table>
11 11
 		<?php
12
-		$myDir = opendir('.');
13
-		while ($file = readdir($myDir)) {
14
-			if (preg_match(',\.(png|gif)$,i', $file)) {
15
-				echo "		<tr><td>$file</td><td><img src='$file' alt='$file' /></td></tr>\n";
16
-			}
17
-		}
18
-		?>
12
+        $myDir = opendir('.');
13
+        while ($file = readdir($myDir)) {
14
+            if (preg_match(',\.(png|gif)$,i', $file)) {
15
+                echo "		<tr><td>$file</td><td><img src='$file' alt='$file' /></td></tr>\n";
16
+            }
17
+        }
18
+        ?>
19 19
 	</table>
20 20
 </center>
21 21
 </body>
Please login to merge, or discard this patch.