Completed
Pull Request — master (#36)
by
unknown
06:08
created
ecrire/auth/ldap.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -314,7 +314,7 @@
 block discarded – undo
314 314
  * @param $new_pass
315 315
  * @param $id_auteur
316 316
  * @param string $serveur
317
- * @return bool
317
+ * @return string|boolean
318 318
  *    Informe du succès ou de l'echec du changement du mot de passe
319 319
  */
320 320
 function auth_ldap_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') {
Please login to merge, or discard this patch.
Indentation   +175 added lines, -175 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
 // Authentifie via LDAP et retourne la ligne SQL decrivant l'utilisateur si ok
@@ -25,12 +25,12 @@  discard block
 block discarded – undo
25 25
 // Attributs LDAP correspondants a ceux de SPIP, notamment pour le login
26 26
 // ne pas ecraser une definition perso dans mes_options
27 27
 if (!isset($GLOBALS['ldap_attributes']) or !is_array($GLOBALS['ldap_attributes'])) {
28
-	$GLOBALS['ldap_attributes'] = array(
29
-		'login' => array('sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn'),
30
-		'nom' => "cn",
31
-		'email' => "mail",
32
-		'bio' => "description"
33
-	);
28
+    $GLOBALS['ldap_attributes'] = array(
29
+        'login' => array('sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn'),
30
+        'nom' => "cn",
31
+        'email' => "mail",
32
+        'bio' => "description"
33
+    );
34 34
 }
35 35
 
36 36
 /**
@@ -56,49 +56,49 @@  discard block
 block discarded – undo
56 56
  */
57 57
 function auth_ldap_dist($login, $pass, $serveur = '', $phpauth = false) {
58 58
 
59
-	#spip_log("ldap $login " . ($pass ? "mdp fourni" : "mdp absent"));
60
-
61
-	// Utilisateur connu ?
62
-	// si http auth, inutile de reauthentifier: cela
63
-	// ne marchera pas avec auth http autre que basic.
64
-	$checkpass = isset($_SERVER["REMOTE_USER"]) ? false : true;
65
-	if (!($dn = auth_ldap_search($login, $pass, $checkpass, $serveur))) {
66
-		return array();
67
-	}
68
-	$credentials_ldap = array('ldap_dn' => $dn, 'ldap_password' => $pass);
69
-
70
-	// Si l'utilisateur figure deja dans la base, y recuperer les infos
71
-	$r = sql_fetsel("*", "spip_auteurs", "login=" . sql_quote($login) . " AND source='ldap'", '', '', '', '', $serveur);
72
-
73
-	if ($r) {
74
-		return array_merge($r, $credentials_ldap);
75
-	}
76
-
77
-	// sinon importer les infos depuis LDAP, 
78
-
79
-	if ($GLOBALS['meta']["ldap_statut_import"]
80
-		and $desc = auth_ldap_retrouver($dn, array(), $serveur)
81
-	) {
82
-		// rajouter le statut indique  a l'install
83
-		$desc['statut'] = $GLOBALS['meta']["ldap_statut_import"];
84
-		$desc['login'] = $login;
85
-		$desc['source'] = 'ldap';
86
-		$desc['pass'] = '';
87
-
88
-		$r = sql_insertq('spip_auteurs', $desc, '', $serveur);
89
-	}
90
-
91
-	if ($r) {
92
-		return array_merge(
93
-			$credentials_ldap,
94
-			sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($r), '', '', '', '', $serveur)
95
-		);
96
-	}
97
-
98
-	// sinon echec
99
-	spip_log("Creation de l'auteur '$login' impossible");
100
-
101
-	return array();
59
+    #spip_log("ldap $login " . ($pass ? "mdp fourni" : "mdp absent"));
60
+
61
+    // Utilisateur connu ?
62
+    // si http auth, inutile de reauthentifier: cela
63
+    // ne marchera pas avec auth http autre que basic.
64
+    $checkpass = isset($_SERVER["REMOTE_USER"]) ? false : true;
65
+    if (!($dn = auth_ldap_search($login, $pass, $checkpass, $serveur))) {
66
+        return array();
67
+    }
68
+    $credentials_ldap = array('ldap_dn' => $dn, 'ldap_password' => $pass);
69
+
70
+    // Si l'utilisateur figure deja dans la base, y recuperer les infos
71
+    $r = sql_fetsel("*", "spip_auteurs", "login=" . sql_quote($login) . " AND source='ldap'", '', '', '', '', $serveur);
72
+
73
+    if ($r) {
74
+        return array_merge($r, $credentials_ldap);
75
+    }
76
+
77
+    // sinon importer les infos depuis LDAP, 
78
+
79
+    if ($GLOBALS['meta']["ldap_statut_import"]
80
+        and $desc = auth_ldap_retrouver($dn, array(), $serveur)
81
+    ) {
82
+        // rajouter le statut indique  a l'install
83
+        $desc['statut'] = $GLOBALS['meta']["ldap_statut_import"];
84
+        $desc['login'] = $login;
85
+        $desc['source'] = 'ldap';
86
+        $desc['pass'] = '';
87
+
88
+        $r = sql_insertq('spip_auteurs', $desc, '', $serveur);
89
+    }
90
+
91
+    if ($r) {
92
+        return array_merge(
93
+            $credentials_ldap,
94
+            sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($r), '', '', '', '', $serveur)
95
+        );
96
+    }
97
+
98
+    // sinon echec
99
+    spip_log("Creation de l'auteur '$login' impossible");
100
+
101
+    return array();
102 102
 }
103 103
 
104 104
 /**
@@ -112,36 +112,36 @@  discard block
 block discarded – undo
112 112
  * @return array
113 113
  */
114 114
 function auth_ldap_connect($serveur = '') {
115
-	include_spip('base/connect_sql');
116
-	static $connexions_ldap = array();
117
-	if (isset($connexions_ldap[$serveur])) {
118
-		return $connexions_ldap[$serveur];
119
-	}
120
-	$connexion = spip_connect($serveur);
121
-	if (!is_array($connexion['ldap'])) {
122
-		if ($connexion['authentification']['ldap']) {
123
-			$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
124
-			unset($GLOBALS['ldap_link']);
125
-			if (is_readable($f)) {
126
-				include_once($f);
127
-			};
128
-			if (isset($GLOBALS['ldap_link'])) {
129
-				$connexion['ldap'] = array(
130
-					'link' => $GLOBALS['ldap_link'],
131
-					'base' => $GLOBALS['ldap_base']
132
-				);
133
-			} else {
134
-				spip_log("connection LDAP $serveur mal definie dans $f");
135
-			}
136
-			if (isset($GLOBALS['ldap_champs'])) {
137
-				$connexion['ldap']['attributes'] = $GLOBALS['ldap_champs'];
138
-			}
139
-		} else {
140
-			spip_log("connection LDAP $serveur inconnue");
141
-		}
142
-	}
143
-
144
-	return $connexions_ldap[$serveur] = $connexion['ldap'];
115
+    include_spip('base/connect_sql');
116
+    static $connexions_ldap = array();
117
+    if (isset($connexions_ldap[$serveur])) {
118
+        return $connexions_ldap[$serveur];
119
+    }
120
+    $connexion = spip_connect($serveur);
121
+    if (!is_array($connexion['ldap'])) {
122
+        if ($connexion['authentification']['ldap']) {
123
+            $f = _DIR_CONNECT . $connexion['authentification']['ldap'];
124
+            unset($GLOBALS['ldap_link']);
125
+            if (is_readable($f)) {
126
+                include_once($f);
127
+            };
128
+            if (isset($GLOBALS['ldap_link'])) {
129
+                $connexion['ldap'] = array(
130
+                    'link' => $GLOBALS['ldap_link'],
131
+                    'base' => $GLOBALS['ldap_base']
132
+                );
133
+            } else {
134
+                spip_log("connection LDAP $serveur mal definie dans $f");
135
+            }
136
+            if (isset($GLOBALS['ldap_champs'])) {
137
+                $connexion['ldap']['attributes'] = $GLOBALS['ldap_champs'];
138
+            }
139
+        } else {
140
+            spip_log("connection LDAP $serveur inconnue");
141
+        }
142
+    }
143
+
144
+    return $connexions_ldap[$serveur] = $connexion['ldap'];
145 145
 }
146 146
 
147 147
 /**
@@ -155,52 +155,52 @@  discard block
 block discarded – undo
155 155
  *    Le login trouvé ou chaine vide si non trouvé
156 156
  */
157 157
 function auth_ldap_search($login, $pass, $checkpass = true, $serveur = '') {
158
-	// Securite anti-injection et contre un serveur LDAP laxiste
159
-	$login_search = preg_replace("/[^-@._\s\d\w]/", "", $login);
160
-	if (!strlen($login_search) or ($checkpass and !strlen($pass))) {
161
-		return '';
162
-	}
163
-
164
-	// verifier la connexion
165
-	if (!$ldap = auth_ldap_connect($serveur)) {
166
-		return '';
167
-	}
168
-
169
-	$ldap_link = isset($ldap['link']) ? $ldap['link'] : null;
170
-	$ldap_base = isset($ldap['base']) ? $ldap['base'] : null;
171
-	$desc = isset($ldap['attributes']) && $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ;
172
-
173
-	$logins = is_array($desc['login']) ? $desc['login'] : array($desc['login']);
174
-
175
-	// Tenter une recherche pour essayer de retrouver le DN
176
-	foreach ($logins as $att) {
177
-		$result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", array("dn"));
178
-		$info = @ldap_get_entries($ldap_link, $result);
179
-		// Ne pas accepter les resultats si plus d'une entree
180
-		// (on veut un attribut unique)
181
-
182
-		if (is_array($info) and $info['count'] == 1) {
183
-			$dn = $info[0]['dn'];
184
-			if (!$checkpass) {
185
-				return $dn;
186
-			}
187
-			if (@ldap_bind($ldap_link, $dn, $pass)) {
188
-				return $dn;
189
-			}
190
-		}
191
-	}
192
-
193
-	if ($checkpass and !isset($dn)) {
194
-		// Si echec, essayer de deviner le DN
195
-		foreach ($logins as $att) {
196
-			$dn = "$att=$login_search, $ldap_base";
197
-			if (@ldap_bind($ldap_link, $dn, $pass)) {
198
-				return "$att=$login_search, $ldap_base";
199
-			}
200
-		}
201
-	}
202
-
203
-	return '';
158
+    // Securite anti-injection et contre un serveur LDAP laxiste
159
+    $login_search = preg_replace("/[^-@._\s\d\w]/", "", $login);
160
+    if (!strlen($login_search) or ($checkpass and !strlen($pass))) {
161
+        return '';
162
+    }
163
+
164
+    // verifier la connexion
165
+    if (!$ldap = auth_ldap_connect($serveur)) {
166
+        return '';
167
+    }
168
+
169
+    $ldap_link = isset($ldap['link']) ? $ldap['link'] : null;
170
+    $ldap_base = isset($ldap['base']) ? $ldap['base'] : null;
171
+    $desc = isset($ldap['attributes']) && $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ;
172
+
173
+    $logins = is_array($desc['login']) ? $desc['login'] : array($desc['login']);
174
+
175
+    // Tenter une recherche pour essayer de retrouver le DN
176
+    foreach ($logins as $att) {
177
+        $result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", array("dn"));
178
+        $info = @ldap_get_entries($ldap_link, $result);
179
+        // Ne pas accepter les resultats si plus d'une entree
180
+        // (on veut un attribut unique)
181
+
182
+        if (is_array($info) and $info['count'] == 1) {
183
+            $dn = $info[0]['dn'];
184
+            if (!$checkpass) {
185
+                return $dn;
186
+            }
187
+            if (@ldap_bind($ldap_link, $dn, $pass)) {
188
+                return $dn;
189
+            }
190
+        }
191
+    }
192
+
193
+    if ($checkpass and !isset($dn)) {
194
+        // Si echec, essayer de deviner le DN
195
+        foreach ($logins as $att) {
196
+            $dn = "$att=$login_search, $ldap_base";
197
+            if (@ldap_bind($ldap_link, $dn, $pass)) {
198
+                return "$att=$login_search, $ldap_base";
199
+            }
200
+        }
201
+    }
202
+
203
+    return '';
204 204
 }
205 205
 
206 206
 /**
@@ -212,40 +212,40 @@  discard block
 block discarded – undo
212 212
  * @return array
213 213
  */
214 214
 function auth_ldap_retrouver($dn, $desc = array(), $serveur = '') {
215
-	// Lire les infos sur l'utilisateur a partir de son DN depuis LDAP
215
+    // Lire les infos sur l'utilisateur a partir de son DN depuis LDAP
216 216
 
217
-	if (!$ldap = spip_connect_ldap($serveur)) {
218
-		spip_log("ldap $serveur injoignable");
217
+    if (!$ldap = spip_connect_ldap($serveur)) {
218
+        spip_log("ldap $serveur injoignable");
219 219
 
220
-		return array();
221
-	}
220
+        return array();
221
+    }
222 222
 
223
-	$ldap_link = $ldap['link'];
224
-	if (!$desc) {
225
-		$desc = $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'];
226
-		unset($desc['login']);
227
-	}
228
-	$result = @ldap_read($ldap_link, $dn, "objectClass=*", array_values($desc));
223
+    $ldap_link = $ldap['link'];
224
+    if (!$desc) {
225
+        $desc = $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'];
226
+        unset($desc['login']);
227
+    }
228
+    $result = @ldap_read($ldap_link, $dn, "objectClass=*", array_values($desc));
229 229
 
230
-	if (!$result) {
231
-		return array();
232
-	}
230
+    if (!$result) {
231
+        return array();
232
+    }
233 233
 
234
-	// Recuperer les donnees du premier (unique?) compte de l'auteur
235
-	$val = @ldap_get_entries($ldap_link, $result);
236
-	if (!is_array($val) or !is_array($val[0])) {
237
-		return array();
238
-	}
239
-	$val = $val[0];
234
+    // Recuperer les donnees du premier (unique?) compte de l'auteur
235
+    $val = @ldap_get_entries($ldap_link, $result);
236
+    if (!is_array($val) or !is_array($val[0])) {
237
+        return array();
238
+    }
239
+    $val = $val[0];
240 240
 
241
-	// Convertir depuis UTF-8 (jeu de caracteres par defaut)
242
-	include_spip('inc/charsets');
241
+    // Convertir depuis UTF-8 (jeu de caracteres par defaut)
242
+    include_spip('inc/charsets');
243 243
 
244
-	foreach ($desc as $k => $v) {
245
-		$desc[$k] = importer_charset($val[strtolower($v)][0], 'utf-8');
246
-	}
244
+    foreach ($desc as $k => $v) {
245
+        $desc[$k] = importer_charset($val[strtolower($v)][0], 'utf-8');
246
+    }
247 247
 
248
-	return $desc;
248
+    return $desc;
249 249
 }
250 250
 
251 251
 
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
  * @return string
258 258
  */
259 259
 function auth_ldap_retrouver_login($login, $serveur = '') {
260
-	return auth_ldap_search($login, '', false, $serveur) ? $login : '';
260
+    return auth_ldap_search($login, '', false, $serveur) ? $login : '';
261 261
 }
262 262
 
263 263
 /**
@@ -277,9 +277,9 @@  discard block
 block discarded – undo
277 277
  *   Message d'erreur si login non valide, chaîne vide sinon
278 278
  */
279 279
 function auth_ldap_verifier_pass($login, $new_pass, $id_auteur = 0, $serveur = '') {
280
-	include_spip('auth/spip');
280
+    include_spip('auth/spip');
281 281
 
282
-	return auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur);
282
+    return auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur);
283 283
 }
284 284
 
285 285
 /**
@@ -300,7 +300,7 @@  discard block
 block discarded – undo
300 300
  *   ```
301 301
  */
302 302
 function auth_ldap_autoriser_modifier_pass($serveur = '') {
303
-	return true;
303
+    return true;
304 304
 }
305 305
 
306 306
 /**
@@ -318,23 +318,23 @@  discard block
 block discarded – undo
318 318
  *    Informe du succès ou de l'echec du changement du mot de passe
319 319
  */
320 320
 function auth_ldap_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') {
321
-	if (is_null($new_pass) or auth_ldap_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
322
-		return false;
323
-	}
324
-	if (!$ldap = auth_ldap_connect($serveur)) {
325
-		return '';
326
-	}
327
-	$link = $ldap['link'];
328
-	include_spip("inc/session");
329
-	$dn = session_get('ldap_dn');
330
-	if ('' == $dn) {
331
-		return false;
332
-	}
333
-	if (!ldap_bind($link, $dn, session_get('ldap_password'))) {
334
-		return false;
335
-	}
336
-	$encoded_pass = "{MD5}" . base64_encode(pack("H*", md5($new_pass)));
337
-	$success = ldap_mod_replace($link, $dn, array('userPassword' => $encoded_pass));
338
-
339
-	return $success;
321
+    if (is_null($new_pass) or auth_ldap_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
322
+        return false;
323
+    }
324
+    if (!$ldap = auth_ldap_connect($serveur)) {
325
+        return '';
326
+    }
327
+    $link = $ldap['link'];
328
+    include_spip("inc/session");
329
+    $dn = session_get('ldap_dn');
330
+    if ('' == $dn) {
331
+        return false;
332
+    }
333
+    if (!ldap_bind($link, $dn, session_get('ldap_password'))) {
334
+        return false;
335
+    }
336
+    $encoded_pass = "{MD5}" . base64_encode(pack("H*", md5($new_pass)));
337
+    $success = ldap_mod_replace($link, $dn, array('userPassword' => $encoded_pass));
338
+
339
+    return $success;
340 340
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
 	$credentials_ldap = array('ldap_dn' => $dn, 'ldap_password' => $pass);
69 69
 
70 70
 	// Si l'utilisateur figure deja dans la base, y recuperer les infos
71
-	$r = sql_fetsel("*", "spip_auteurs", "login=" . sql_quote($login) . " AND source='ldap'", '', '', '', '', $serveur);
71
+	$r = sql_fetsel("*", "spip_auteurs", "login=".sql_quote($login)." AND source='ldap'", '', '', '', '', $serveur);
72 72
 
73 73
 	if ($r) {
74 74
 		return array_merge($r, $credentials_ldap);
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
 	if ($r) {
92 92
 		return array_merge(
93 93
 			$credentials_ldap,
94
-			sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($r), '', '', '', '', $serveur)
94
+			sql_fetsel("*", "spip_auteurs", "id_auteur=".intval($r), '', '', '', '', $serveur)
95 95
 		);
96 96
 	}
97 97
 
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 	$connexion = spip_connect($serveur);
121 121
 	if (!is_array($connexion['ldap'])) {
122 122
 		if ($connexion['authentification']['ldap']) {
123
-			$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
123
+			$f = _DIR_CONNECT.$connexion['authentification']['ldap'];
124 124
 			unset($GLOBALS['ldap_link']);
125 125
 			if (is_readable($f)) {
126 126
 				include_once($f);
@@ -168,7 +168,7 @@  discard block
 block discarded – undo
168 168
 
169 169
 	$ldap_link = isset($ldap['link']) ? $ldap['link'] : null;
170 170
 	$ldap_base = isset($ldap['base']) ? $ldap['base'] : null;
171
-	$desc = isset($ldap['attributes']) && $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ;
171
+	$desc = isset($ldap['attributes']) && $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'];
172 172
 
173 173
 	$logins = is_array($desc['login']) ? $desc['login'] : array($desc['login']);
174 174
 
@@ -333,7 +333,7 @@  discard block
 block discarded – undo
333 333
 	if (!ldap_bind($link, $dn, session_get('ldap_password'))) {
334 334
 		return false;
335 335
 	}
336
-	$encoded_pass = "{MD5}" . base64_encode(pack("H*", md5($new_pass)));
336
+	$encoded_pass = "{MD5}".base64_encode(pack("H*", md5($new_pass)));
337 337
 	$success = ldap_mod_replace($link, $dn, array('userPassword' => $encoded_pass));
338 338
 
339 339
 	return $success;
Please login to merge, or discard this patch.
ecrire/balise/formulaire_.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -60,7 +60,7 @@
 block discarded – undo
60 60
  * @see trouver_fond()
61 61
  * @param string $form
62 62
  *     Nom du formulaire
63
- * @return string|bool
63
+ * @return string|false
64 64
  *     - string : chemin du squelette
65 65
  *     - false : pas de squelette trouvé
66 66
  **/
Please login to merge, or discard this patch.
Indentation   +221 added lines, -221 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
  * @package SPIP\Core\Formulaires
16 16
  **/
17 17
 if (!defined('_ECRIRE_INC_VERSION')) {
18
-	return;
18
+    return;
19 19
 }
20 20
 
21 21
 include_spip('inc/filtres');
@@ -34,24 +34,24 @@  discard block
 block discarded – undo
34 34
  *     Saisie protégée
35 35
  **/
36 36
 function protege_champ($texte) {
37
-	if (is_array($texte)) {
38
-		$texte = array_map('protege_champ', $texte);
39
-	} else {
40
-		// ne pas corrompre une valeur serialize
41
-		if ((preg_match(",^[abis]:\d+[:;],", $texte) and @unserialize($texte) != false) or is_null($texte)) {
42
-			return $texte;
43
-		}
44
-		if (is_string($texte)
45
-			and $texte
46
-			and strpbrk($texte, "&\"'<>") !== false
47
-		) {
48
-			$texte = spip_htmlspecialchars($texte, ENT_QUOTES);
49
-		} elseif (is_bool($texte)) {
50
-			$texte = ($texte ? '1' : '');
51
-		}
52
-	}
53
-
54
-	return $texte;
37
+    if (is_array($texte)) {
38
+        $texte = array_map('protege_champ', $texte);
39
+    } else {
40
+        // ne pas corrompre une valeur serialize
41
+        if ((preg_match(",^[abis]:\d+[:;],", $texte) and @unserialize($texte) != false) or is_null($texte)) {
42
+            return $texte;
43
+        }
44
+        if (is_string($texte)
45
+            and $texte
46
+            and strpbrk($texte, "&\"'<>") !== false
47
+        ) {
48
+            $texte = spip_htmlspecialchars($texte, ENT_QUOTES);
49
+        } elseif (is_bool($texte)) {
50
+            $texte = ($texte ? '1' : '');
51
+        }
52
+    }
53
+
54
+    return $texte;
55 55
 }
56 56
 
57 57
 /**
@@ -65,17 +65,17 @@  discard block
 block discarded – undo
65 65
  *     - false : pas de squelette trouvé
66 66
  **/
67 67
 function existe_formulaire($form) {
68
-	if (substr($form, 0, 11) == "FORMULAIRE_") {
69
-		$form = strtolower(substr($form, 11));
70
-	} else {
71
-		$form = strtolower($form);
72
-	}
68
+    if (substr($form, 0, 11) == "FORMULAIRE_") {
69
+        $form = strtolower(substr($form, 11));
70
+    } else {
71
+        $form = strtolower($form);
72
+    }
73 73
 
74
-	if (!$form) {
75
-		return '';
76
-	} // on ne sait pas, le nom du formulaire n'est pas fourni ici
74
+    if (!$form) {
75
+        return '';
76
+    } // on ne sait pas, le nom du formulaire n'est pas fourni ici
77 77
 
78
-	return trouver_fond($form, 'formulaires/') ? $form : false;
78
+    return trouver_fond($form, 'formulaires/') ? $form : false;
79 79
 }
80 80
 
81 81
 
@@ -91,17 +91,17 @@  discard block
 block discarded – undo
91 91
  **/
92 92
 function balise_FORMULAIRE__dist($p) {
93 93
 
94
-	// Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide.
95
-	// mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer
96
-	if (existe_formulaire($p->nom_champ) === false) {
97
-		$p->code = "''";
98
-		$p->interdire_scripts = false;
94
+    // Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide.
95
+    // mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer
96
+    if (existe_formulaire($p->nom_champ) === false) {
97
+        $p->code = "''";
98
+        $p->interdire_scripts = false;
99 99
 
100
-		return $p;
101
-	}
100
+        return $p;
101
+    }
102 102
 
103
-	// sinon renvoyer un code php dynamique
104
-	return calculer_balise_dynamique($p, $p->nom_champ, array());
103
+    // sinon renvoyer un code php dynamique
104
+    return calculer_balise_dynamique($p, $p->nom_champ, array());
105 105
 }
106 106
 
107 107
 /**
@@ -114,27 +114,27 @@  discard block
 block discarded – undo
114 114
  *     - string : texte à afficher directement
115 115
  */
116 116
 function balise_FORMULAIRE__dyn($form) {
117
-	$form = existe_formulaire($form);
118
-	if (!$form) {
119
-		return '';
120
-	}
121
-
122
-	// deux moyen d'arriver ici : 
123
-	// soit #FORMULAIRE_XX reroute avec 'FORMULAIRE_XX' ajoute en premier arg
124
-	// soit #FORMULAIRE_{xx}
125
-
126
-	// recuperer les arguments passes a la balise
127
-	// on enleve le premier qui est le nom de la balise 
128
-	// deja recupere ci-dessus
129
-
130
-	$args = func_get_args();
131
-	array_shift($args);
132
-	$contexte = balise_FORMULAIRE__contexte($form, $args);
133
-	if (!is_array($contexte)) {
134
-		return $contexte;
135
-	}
136
-
137
-	return array("formulaires/$form", 3600, $contexte);
117
+    $form = existe_formulaire($form);
118
+    if (!$form) {
119
+        return '';
120
+    }
121
+
122
+    // deux moyen d'arriver ici : 
123
+    // soit #FORMULAIRE_XX reroute avec 'FORMULAIRE_XX' ajoute en premier arg
124
+    // soit #FORMULAIRE_{xx}
125
+
126
+    // recuperer les arguments passes a la balise
127
+    // on enleve le premier qui est le nom de la balise 
128
+    // deja recupere ci-dessus
129
+
130
+    $args = func_get_args();
131
+    array_shift($args);
132
+    $contexte = balise_FORMULAIRE__contexte($form, $args);
133
+    if (!is_array($contexte)) {
134
+        return $contexte;
135
+    }
136
+
137
+    return array("formulaires/$form", 3600, $contexte);
138 138
 }
139 139
 
140 140
 /**
@@ -148,120 +148,120 @@  discard block
 block discarded – undo
148 148
  *     Contexte d'environnement à envoyer au squelette
149 149
  **/
150 150
 function balise_FORMULAIRE__contexte($form, $args) {
151
-	// tester si ce formulaire vient d'etre poste (memes arguments)
152
-	// pour ne pas confondre 2 #FORMULAIRES_XX identiques sur une meme page
153
-	// si poste, on recupere les erreurs
154
-
155
-	$je_suis_poste = false;
156
-	if ($post_form = _request('formulaire_action')
157
-		and $post_form == $form
158
-		and $p = _request('formulaire_action_args')
159
-		and is_array($p = decoder_contexte_ajax($p, $post_form))
160
-	) {
161
-		// enlever le faux attribut de langue masque
162
-		array_shift($p);
163
-		if (formulaire__identifier($form, $args, $p)) {
164
-			$je_suis_poste = true;
165
-		}
166
-	}
167
-
168
-	$editable = true;
169
-	$erreurs = $post = array();
170
-	if ($je_suis_poste) {
171
-		$post = traiter_formulaires_dynamiques(true);
172
-		$e = "erreurs_$form";
173
-		$erreurs = isset($post[$e]) ? $post[$e] : array();
174
-		$editable = "editable_$form";
175
-		$editable = (!isset($post[$e]))
176
-			|| count($erreurs)
177
-			|| (isset($post[$editable]) && $post[$editable]);
178
-	}
179
-
180
-	$valeurs = formulaire__charger($form, $args, $je_suis_poste);
181
-
182
-	// si $valeurs n'est pas un tableau, le formulaire n'est pas applicable
183
-	// C'est plus fort qu'editable qui est gere par le squelette 
184
-	// Idealement $valeur doit etre alors un message explicatif.
185
-	if (!is_array($valeurs)) {
186
-		return is_string($valeurs) ? $valeurs : '';
187
-	}
188
-
189
-	// charger peut passer une action si le formulaire ne tourne pas sur self()
190
-	// ou une action vide si elle ne sert pas
191
-	$action = (isset($valeurs['action'])) ? $valeurs['action'] : self('&amp;', true);
192
-	// bug IEx : si action finit par / 
193
-	// IE croit que le <form ... action=../ > est autoferme
194
-	if (substr($action, -1) == '/') {
195
-		// on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un /
196
-		$action .= '#';
197
-	}
198
-
199
-	// recuperer la saisie en cours si erreurs
200
-	// seulement si c'est ce formulaire qui est poste
201
-	// ou si on le demande explicitement par le parametre _forcer_request = true
202
-	$dispo = ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request']));
203
-	foreach (array_keys($valeurs) as $champ) {
204
-		if ($champ[0] !== '_' and !in_array($champ, array('message_ok', 'message_erreur', 'editable'))) {
205
-			if ($dispo and (($v = _request($champ)) !== null)) {
206
-				$valeurs[$champ] = $v;
207
-			}
208
-			// nettoyer l'url des champs qui vont etre saisis
209
-			if ($action) {
210
-				$action = parametre_url($action, $champ, '');
211
-			}
212
-			// proteger les ' et les " dans les champs que l'on va injecter
213
-			$valeurs[$champ] = protege_champ($valeurs[$champ]);
214
-		}
215
-	}
216
-
217
-	if ($action) {
218
-		// nettoyer l'url
219
-		$action = parametre_url($action, 'formulaire_action', '');
220
-		$action = parametre_url($action, 'formulaire_action_args', '');
221
-	}
222
-
223
-	if (isset($valeurs['_action'])) {
224
-		$securiser_action = charger_fonction('securiser_action', 'inc');
225
-		$secu = $securiser_action(reset($valeurs['_action']), end($valeurs['_action']), '', -1);
226
-		$valeurs['_hidden'] = (isset($valeurs['_hidden']) ? $valeurs['_hidden'] : '') .
227
-			"<input type='hidden' name='arg' value='" . $secu['arg'] . "' />"
228
-			. "<input type='hidden' name='hash' value='" . $secu['hash'] . "' />";
229
-	}
230
-
231
-	// empiler la lang en tant que premier argument implicite du CVT
232
-	// pour permettre de la restaurer au moment du Verifier et du Traiter
233
-	array_unshift($args, $GLOBALS['spip_lang']);
234
-
235
-	$valeurs['formulaire_args'] = encoder_contexte_ajax($args, $form);
236
-	$valeurs['erreurs'] = $erreurs;
237
-	$valeurs['action'] = $action;
238
-	$valeurs['form'] = $form;
239
-
240
-	if (!isset($valeurs['id'])) {
241
-		$valeurs['id'] = 'new';
242
-	}
243
-	// editable peut venir de charger() ou de traiter() sinon
244
-	if (!isset($valeurs['editable'])) {
245
-		$valeurs['editable'] = $editable;
246
-	}
247
-	// dans tous les cas, renvoyer un espace ou vide (et pas un booleen)
248
-	$valeurs['editable'] = ($valeurs['editable'] ? ' ' : '');
249
-
250
-	if ($je_suis_poste) {
251
-		$valeurs['message_erreur'] = "";
252
-		if (isset($erreurs['message_erreur'])) {
253
-			$valeurs['message_erreur'] = $erreurs['message_erreur'];
254
-		}
255
-
256
-		$valeurs['message_ok'] = "";
257
-		if (isset($post["message_ok_$form"])) {
258
-			$valeurs['message_ok'] = $post["message_ok_$form"];
259
-		} elseif (isset($erreurs['message_ok'])) {
260
-			$valeurs['message_ok'] = $erreurs["message_ok"];
261
-		}
262
-	}
263
-
264
-	return $valeurs;
151
+    // tester si ce formulaire vient d'etre poste (memes arguments)
152
+    // pour ne pas confondre 2 #FORMULAIRES_XX identiques sur une meme page
153
+    // si poste, on recupere les erreurs
154
+
155
+    $je_suis_poste = false;
156
+    if ($post_form = _request('formulaire_action')
157
+        and $post_form == $form
158
+        and $p = _request('formulaire_action_args')
159
+        and is_array($p = decoder_contexte_ajax($p, $post_form))
160
+    ) {
161
+        // enlever le faux attribut de langue masque
162
+        array_shift($p);
163
+        if (formulaire__identifier($form, $args, $p)) {
164
+            $je_suis_poste = true;
165
+        }
166
+    }
167
+
168
+    $editable = true;
169
+    $erreurs = $post = array();
170
+    if ($je_suis_poste) {
171
+        $post = traiter_formulaires_dynamiques(true);
172
+        $e = "erreurs_$form";
173
+        $erreurs = isset($post[$e]) ? $post[$e] : array();
174
+        $editable = "editable_$form";
175
+        $editable = (!isset($post[$e]))
176
+            || count($erreurs)
177
+            || (isset($post[$editable]) && $post[$editable]);
178
+    }
179
+
180
+    $valeurs = formulaire__charger($form, $args, $je_suis_poste);
181
+
182
+    // si $valeurs n'est pas un tableau, le formulaire n'est pas applicable
183
+    // C'est plus fort qu'editable qui est gere par le squelette 
184
+    // Idealement $valeur doit etre alors un message explicatif.
185
+    if (!is_array($valeurs)) {
186
+        return is_string($valeurs) ? $valeurs : '';
187
+    }
188
+
189
+    // charger peut passer une action si le formulaire ne tourne pas sur self()
190
+    // ou une action vide si elle ne sert pas
191
+    $action = (isset($valeurs['action'])) ? $valeurs['action'] : self('&amp;', true);
192
+    // bug IEx : si action finit par / 
193
+    // IE croit que le <form ... action=../ > est autoferme
194
+    if (substr($action, -1) == '/') {
195
+        // on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un /
196
+        $action .= '#';
197
+    }
198
+
199
+    // recuperer la saisie en cours si erreurs
200
+    // seulement si c'est ce formulaire qui est poste
201
+    // ou si on le demande explicitement par le parametre _forcer_request = true
202
+    $dispo = ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request']));
203
+    foreach (array_keys($valeurs) as $champ) {
204
+        if ($champ[0] !== '_' and !in_array($champ, array('message_ok', 'message_erreur', 'editable'))) {
205
+            if ($dispo and (($v = _request($champ)) !== null)) {
206
+                $valeurs[$champ] = $v;
207
+            }
208
+            // nettoyer l'url des champs qui vont etre saisis
209
+            if ($action) {
210
+                $action = parametre_url($action, $champ, '');
211
+            }
212
+            // proteger les ' et les " dans les champs que l'on va injecter
213
+            $valeurs[$champ] = protege_champ($valeurs[$champ]);
214
+        }
215
+    }
216
+
217
+    if ($action) {
218
+        // nettoyer l'url
219
+        $action = parametre_url($action, 'formulaire_action', '');
220
+        $action = parametre_url($action, 'formulaire_action_args', '');
221
+    }
222
+
223
+    if (isset($valeurs['_action'])) {
224
+        $securiser_action = charger_fonction('securiser_action', 'inc');
225
+        $secu = $securiser_action(reset($valeurs['_action']), end($valeurs['_action']), '', -1);
226
+        $valeurs['_hidden'] = (isset($valeurs['_hidden']) ? $valeurs['_hidden'] : '') .
227
+            "<input type='hidden' name='arg' value='" . $secu['arg'] . "' />"
228
+            . "<input type='hidden' name='hash' value='" . $secu['hash'] . "' />";
229
+    }
230
+
231
+    // empiler la lang en tant que premier argument implicite du CVT
232
+    // pour permettre de la restaurer au moment du Verifier et du Traiter
233
+    array_unshift($args, $GLOBALS['spip_lang']);
234
+
235
+    $valeurs['formulaire_args'] = encoder_contexte_ajax($args, $form);
236
+    $valeurs['erreurs'] = $erreurs;
237
+    $valeurs['action'] = $action;
238
+    $valeurs['form'] = $form;
239
+
240
+    if (!isset($valeurs['id'])) {
241
+        $valeurs['id'] = 'new';
242
+    }
243
+    // editable peut venir de charger() ou de traiter() sinon
244
+    if (!isset($valeurs['editable'])) {
245
+        $valeurs['editable'] = $editable;
246
+    }
247
+    // dans tous les cas, renvoyer un espace ou vide (et pas un booleen)
248
+    $valeurs['editable'] = ($valeurs['editable'] ? ' ' : '');
249
+
250
+    if ($je_suis_poste) {
251
+        $valeurs['message_erreur'] = "";
252
+        if (isset($erreurs['message_erreur'])) {
253
+            $valeurs['message_erreur'] = $erreurs['message_erreur'];
254
+        }
255
+
256
+        $valeurs['message_ok'] = "";
257
+        if (isset($post["message_ok_$form"])) {
258
+            $valeurs['message_ok'] = $post["message_ok_$form"];
259
+        } elseif (isset($erreurs['message_ok'])) {
260
+            $valeurs['message_ok'] = $erreurs["message_ok"];
261
+        }
262
+    }
263
+
264
+    return $valeurs;
265 265
 }
266 266
 
267 267
 /**
@@ -273,51 +273,51 @@  discard block
 block discarded – undo
273 273
  * @return array
274 274
  */
275 275
 function formulaire__charger($form, $args, $poste) {
276
-	if ($charger_valeurs = charger_fonction("charger", "formulaires/$form", true)) {
277
-		$valeurs = call_user_func_array($charger_valeurs, $args);
278
-	} else {
279
-		$valeurs = array();
280
-	}
281
-
282
-	$valeurs = pipeline(
283
-		'formulaire_charger',
284
-		array(
285
-			'args' => array('form' => $form, 'args' => $args, 'je_suis_poste' => $poste),
286
-			'data' => $valeurs
287
-		)
288
-	);
289
-
290
-	// prise en charge CVT multi etape
291
-	if (is_array($valeurs) and isset($valeurs['_etapes'])) {
292
-		include_spip('inc/cvt_multietapes');
293
-		$valeurs = cvtmulti_formulaire_charger_etapes(
294
-			array('form' => $form, 'args' => $args, 'je_suis_poste' => $poste), 
295
-			$valeurs
296
-		);
297
-	}
298
-
299
-	// si $valeurs et false ou une chaine, pas de formulaire, donc pas de pipeline !
300
-	if (is_array($valeurs)) {
301
-		if (!isset($valeurs['_pipelines'])) {
302
-			$valeurs['_pipelines'] = array();
303
-		}
304
-		// l'ancien argument _pipeline devient maintenant _pipelines
305
-		// reinjectons le vieux _pipeline au debut de _pipelines
306
-		if (isset($valeurs['_pipeline'])) {
307
-			$pipe = is_array($valeurs['_pipeline']) ? reset($valeurs['_pipeline']) : $valeurs['_pipeline'];
308
-			$args = is_array($valeurs['_pipeline']) ? end($valeurs['_pipeline']) : array();
309
-
310
-			$pipelines = array($pipe => $args);
311
-			$valeurs['_pipelines'] = array_merge($pipelines, $valeurs['_pipelines']);
312
-		}
313
-
314
-		// et enfin, ajoutons systematiquement un pipeline sur le squelette du formulaire
315
-		// qui constitue le cas le plus courant d'utilisation du pipeline recuperer_fond
316
-		// (performance, cela evite de s'injecter dans recuperer_fond utilise pour *tous* les squelettes)
317
-		$valeurs['_pipelines']['formulaire_fond'] = array('form' => $form, 'args' => $args, 'je_suis_poste' => $poste);
318
-	}
319
-
320
-	return $valeurs;
276
+    if ($charger_valeurs = charger_fonction("charger", "formulaires/$form", true)) {
277
+        $valeurs = call_user_func_array($charger_valeurs, $args);
278
+    } else {
279
+        $valeurs = array();
280
+    }
281
+
282
+    $valeurs = pipeline(
283
+        'formulaire_charger',
284
+        array(
285
+            'args' => array('form' => $form, 'args' => $args, 'je_suis_poste' => $poste),
286
+            'data' => $valeurs
287
+        )
288
+    );
289
+
290
+    // prise en charge CVT multi etape
291
+    if (is_array($valeurs) and isset($valeurs['_etapes'])) {
292
+        include_spip('inc/cvt_multietapes');
293
+        $valeurs = cvtmulti_formulaire_charger_etapes(
294
+            array('form' => $form, 'args' => $args, 'je_suis_poste' => $poste), 
295
+            $valeurs
296
+        );
297
+    }
298
+
299
+    // si $valeurs et false ou une chaine, pas de formulaire, donc pas de pipeline !
300
+    if (is_array($valeurs)) {
301
+        if (!isset($valeurs['_pipelines'])) {
302
+            $valeurs['_pipelines'] = array();
303
+        }
304
+        // l'ancien argument _pipeline devient maintenant _pipelines
305
+        // reinjectons le vieux _pipeline au debut de _pipelines
306
+        if (isset($valeurs['_pipeline'])) {
307
+            $pipe = is_array($valeurs['_pipeline']) ? reset($valeurs['_pipeline']) : $valeurs['_pipeline'];
308
+            $args = is_array($valeurs['_pipeline']) ? end($valeurs['_pipeline']) : array();
309
+
310
+            $pipelines = array($pipe => $args);
311
+            $valeurs['_pipelines'] = array_merge($pipelines, $valeurs['_pipelines']);
312
+        }
313
+
314
+        // et enfin, ajoutons systematiquement un pipeline sur le squelette du formulaire
315
+        // qui constitue le cas le plus courant d'utilisation du pipeline recuperer_fond
316
+        // (performance, cela evite de s'injecter dans recuperer_fond utilise pour *tous* les squelettes)
317
+        $valeurs['_pipelines']['formulaire_fond'] = array('form' => $form, 'args' => $args, 'je_suis_poste' => $poste);
318
+    }
319
+
320
+    return $valeurs;
321 321
 }
322 322
 
323 323
 /**
@@ -336,9 +336,9 @@  discard block
 block discarded – undo
336 336
  * @return bool
337 337
  */
338 338
 function formulaire__identifier($form, $args, $p) {
339
-	if ($identifier_args = charger_fonction("identifier", "formulaires/$form", true)) {
340
-		return call_user_func_array($identifier_args, $args) === call_user_func_array($identifier_args, $p);
341
-	}
339
+    if ($identifier_args = charger_fonction("identifier", "formulaires/$form", true)) {
340
+        return call_user_func_array($identifier_args, $args) === call_user_func_array($identifier_args, $p);
341
+    }
342 342
 
343
-	return $args === $p;
343
+    return $args === $p;
344 344
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -223,9 +223,9 @@
 block discarded – undo
223 223
 	if (isset($valeurs['_action'])) {
224 224
 		$securiser_action = charger_fonction('securiser_action', 'inc');
225 225
 		$secu = $securiser_action(reset($valeurs['_action']), end($valeurs['_action']), '', -1);
226
-		$valeurs['_hidden'] = (isset($valeurs['_hidden']) ? $valeurs['_hidden'] : '') .
227
-			"<input type='hidden' name='arg' value='" . $secu['arg'] . "' />"
228
-			. "<input type='hidden' name='hash' value='" . $secu['hash'] . "' />";
226
+		$valeurs['_hidden'] = (isset($valeurs['_hidden']) ? $valeurs['_hidden'] : '').
227
+			"<input type='hidden' name='arg' value='".$secu['arg']."' />"
228
+			. "<input type='hidden' name='hash' value='".$secu['hash']."' />";
229 229
 	}
230 230
 
231 231
 	// empiler la lang en tant que premier argument implicite du CVT
Please login to merge, or discard this patch.
ecrire/base/connect_sql.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -36,7 +36,7 @@
 block discarded – undo
36 36
  *
37 37
  * @param string $serveur Nom du connecteur
38 38
  * @param string $version Version de l'API SQL
39
- * @return bool|array
39
+ * @return string
40 40
  *     - false si la connexion a échouée,
41 41
  *     - tableau décrivant la connexion sinon
42 42
  **/
Please login to merge, or discard this patch.
Spacing   +11 added lines, -12 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19 19
 	return;
20 20
 }
21
-require_once _ROOT_RESTREINT . 'base/objets.php';
21
+require_once _ROOT_RESTREINT.'base/objets.php';
22 22
 
23 23
 
24 24
 /**
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 		$f = (!preg_match('/^[\w\.]*$/', $serveur))
60 60
 			? '' // nom de serveur mal ecrit
61 61
 			: ($serveur ?
62
-				(_DIR_CONNECT . $serveur . '.php') // serveur externe
62
+				(_DIR_CONNECT.$serveur.'.php') // serveur externe
63 63
 				: (_FILE_CONNECT ? _FILE_CONNECT // serveur principal ok
64 64
 					: ($install ? _FILE_CONNECT_TMP // init du serveur principal
65 65
 						: ''))); // installation pas faite
@@ -102,9 +102,9 @@  discard block
 block discarded – undo
102 102
 	// chargement de la version du jeu de fonctions
103 103
 	// si pas dans le fichier par defaut
104 104
 	$type = $GLOBALS['db_ok']['type'];
105
-	$jeu = 'spip_' . $type . '_functions_' . $version;
105
+	$jeu = 'spip_'.$type.'_functions_'.$version;
106 106
 	if (!isset($GLOBALS[$jeu])) {
107
-		if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) {
107
+		if (!find_in_path($type.'_'.$version.'.php', 'req/', true)) {
108 108
 			spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
109 109
 
110 110
 			// ne plus reessayer
@@ -165,9 +165,9 @@  discard block
 block discarded – undo
165 165
 	$connexion = spip_connect($serveur);
166 166
 	$e = sql_errno($serveur);
167 167
 	$t = (isset($connexion['type']) ? $connexion['type'] : 'sql');
168
-	$m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']);
169
-	$f = $t . $serveur;
170
-	spip_log($m, $f . '.' . _LOG_ERREUR);
168
+	$m = "Erreur $e de $t: ".sql_error($serveur)."\nin ".sql_error_backtrace()."\n".trim($connexion['last']);
169
+	$f = $t.$serveur;
170
+	spip_log($m, $f.'.'._LOG_ERREUR);
171 171
 }
172 172
 
173 173
 /**
@@ -249,7 +249,7 @@  discard block
 block discarded – undo
249 249
 	// si en cours d'installation ou si db=@test@ on ne pose rien
250 250
 	// car c'est un test de connexion
251 251
 	if (!defined('_ECRIRE_INSTALL') and $db !== "@test@") {
252
-		$f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out';
252
+		$f = _DIR_TMP.$type.'.'.substr(md5($host.$port.$db), 0, 8).'.out';
253 253
 	} elseif ($db == '@test@') {
254 254
 		$db = '';
255 255
 	}
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
 	// En cas d'indisponibilite du serveur, eviter de le bombarder
290 290
 	if ($f) {
291 291
 		@touch($f);
292
-		spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS);
292
+		spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type.'.'._LOG_HS);
293 293
 	}
294 294
 }
295 295
 
@@ -379,8 +379,7 @@  discard block
 block discarded – undo
379 379
  * @return string Valeur échappée.
380 380
  **/
381 381
 function _q($a) {
382
-	return (is_numeric($a)) ? strval($a) :
383
-		(!is_array($a) ? ("'" . addslashes($a) . "'")
382
+	return (is_numeric($a)) ? strval($a) : (!is_array($a) ? ("'".addslashes($a)."'")
384 383
 			: join(",", array_map('_q', $a)));
385 384
 }
386 385
 
@@ -452,7 +451,7 @@  discard block
 block discarded – undo
452 451
 				break;
453 452
 			default:
454 453
 				$replace = range(1, count($textes));
455
-				$replace = '%' . implode('$s,%', $replace) . '$s';
454
+				$replace = '%'.implode('$s,%', $replace).'$s';
456 455
 				$replace = explode(',', $replace);
457 456
 				break;
458 457
 		}
Please login to merge, or discard this patch.
Indentation   +309 added lines, -309 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\SQL
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 require_once _ROOT_RESTREINT . 'base/objets.php';
22 22
 
@@ -42,118 +42,118 @@  discard block
 block discarded – undo
42 42
  **/
43 43
 function spip_connect($serveur = '', $version = '') {
44 44
 
45
-	$serveur = !is_string($serveur) ? '' : strtolower($serveur);
46
-	$index = $serveur ? $serveur : 0;
47
-	if (!$version) {
48
-		$version = $GLOBALS['spip_sql_version'];
49
-	}
50
-	if (isset($GLOBALS['connexions'][$index][$version])) {
51
-		return $GLOBALS['connexions'][$index];
52
-	}
53
-
54
-	include_spip('base/abstract_sql');
55
-	$install = (_request('exec') == 'install');
56
-
57
-	// Premiere connexion ?
58
-	if (!($old = isset($GLOBALS['connexions'][$index]))) {
59
-		$f = (!preg_match('/^[\w\.]*$/', $serveur))
60
-			? '' // nom de serveur mal ecrit
61
-			: ($serveur ?
62
-				(_DIR_CONNECT . $serveur . '.php') // serveur externe
63
-				: (_FILE_CONNECT ? _FILE_CONNECT // serveur principal ok
64
-					: ($install ? _FILE_CONNECT_TMP // init du serveur principal
65
-						: ''))); // installation pas faite
66
-
67
-		unset($GLOBALS['db_ok']);
68
-		unset($GLOBALS['spip_connect_version']);
69
-		if ($f) {
70
-			if (is_readable($f)) {
71
-				include($f);
72
-			} elseif ($serveur and !$install) {
73
-				// chercher une declaration de serveur dans le path
74
-				// qui pourra un jour servir a declarer des bases sqlite
75
-				// par des plugins. Et sert aussi aux boucles POUR.
76
-				find_in_path("$serveur.php", 'connect/', true);
77
-			}
78
-		}
79
-		if (!isset($GLOBALS['db_ok'])) {
80
-			// fera mieux la prochaine fois
81
-			if ($install) {
82
-				return false;
83
-			}
84
-			if ($f and is_readable($f)) {
85
-				spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE);
86
-			} else {
87
-				spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE);
88
-			}
89
-			spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS);
90
-
91
-			// ne plus reessayer si ce n'est pas l'install
92
-			return $GLOBALS['connexions'][$index] = false;
93
-		}
94
-		$GLOBALS['connexions'][$index] = $GLOBALS['db_ok'];
95
-	}
96
-	// si la connexion a deja ete tentee mais a echoue, le dire!
97
-	if (!$GLOBALS['connexions'][$index]) {
98
-		return false;
99
-	}
100
-
101
-	// la connexion a reussi ou etait deja faite.
102
-	// chargement de la version du jeu de fonctions
103
-	// si pas dans le fichier par defaut
104
-	$type = $GLOBALS['db_ok']['type'];
105
-	$jeu = 'spip_' . $type . '_functions_' . $version;
106
-	if (!isset($GLOBALS[$jeu])) {
107
-		if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) {
108
-			spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
109
-
110
-			// ne plus reessayer
111
-			return $GLOBALS['connexions'][$index][$version] = array();
112
-		}
113
-	}
114
-	$GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu];
115
-	if ($old) {
116
-		return $GLOBALS['connexions'][$index];
117
-	}
118
-
119
-	$GLOBALS['connexions'][$index]['spip_connect_version'] = isset($GLOBALS['spip_connect_version']) ? $GLOBALS['spip_connect_version'] : 0;
120
-
121
-	// initialisation de l'alphabet utilise dans les connexions SQL
122
-	// si l'installation l'a determine.
123
-	// Celui du serveur principal l'impose aux serveurs secondaires
124
-	// s'ils le connaissent
125
-
126
-	if (!$serveur) {
127
-		$charset = spip_connect_main($GLOBALS[$jeu], $GLOBALS['db_ok']['charset']);
128
-		if (!$charset) {
129
-			unset($GLOBALS['connexions'][$index]);
130
-			spip_log("spip_connect: absence de charset", _LOG_AVERTISSEMENT);
131
-
132
-			return false;
133
-		}
134
-	} else {
135
-		if ($GLOBALS['db_ok']['charset']) {
136
-			$charset = $GLOBALS['db_ok']['charset'];
137
-		}
138
-		// spip_meta n'existe pas toujours dans la base
139
-		// C'est le cas d'un dump sqlite par exemple 
140
-		elseif ($GLOBALS['connexions'][$index]['spip_connect_version']
141
-			and sql_showtable('spip_meta', true, $serveur)
142
-			and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur)
143
-		) {
144
-			$charset = $r;
145
-		} else {
146
-			$charset = -1;
147
-		}
148
-	}
149
-	if ($charset != -1) {
150
-		$f = $GLOBALS[$jeu]['set_charset'];
151
-		if (function_exists($f)) {
152
-			$f($charset, $serveur);
153
-		}
154
-	}
155
-
156
-	return $GLOBALS['connexions'][$index];
45
+    $serveur = !is_string($serveur) ? '' : strtolower($serveur);
46
+    $index = $serveur ? $serveur : 0;
47
+    if (!$version) {
48
+        $version = $GLOBALS['spip_sql_version'];
49
+    }
50
+    if (isset($GLOBALS['connexions'][$index][$version])) {
51
+        return $GLOBALS['connexions'][$index];
52
+    }
53
+
54
+    include_spip('base/abstract_sql');
55
+    $install = (_request('exec') == 'install');
56
+
57
+    // Premiere connexion ?
58
+    if (!($old = isset($GLOBALS['connexions'][$index]))) {
59
+        $f = (!preg_match('/^[\w\.]*$/', $serveur))
60
+            ? '' // nom de serveur mal ecrit
61
+            : ($serveur ?
62
+                (_DIR_CONNECT . $serveur . '.php') // serveur externe
63
+                : (_FILE_CONNECT ? _FILE_CONNECT // serveur principal ok
64
+                    : ($install ? _FILE_CONNECT_TMP // init du serveur principal
65
+                        : ''))); // installation pas faite
66
+
67
+        unset($GLOBALS['db_ok']);
68
+        unset($GLOBALS['spip_connect_version']);
69
+        if ($f) {
70
+            if (is_readable($f)) {
71
+                include($f);
72
+            } elseif ($serveur and !$install) {
73
+                // chercher une declaration de serveur dans le path
74
+                // qui pourra un jour servir a declarer des bases sqlite
75
+                // par des plugins. Et sert aussi aux boucles POUR.
76
+                find_in_path("$serveur.php", 'connect/', true);
77
+            }
78
+        }
79
+        if (!isset($GLOBALS['db_ok'])) {
80
+            // fera mieux la prochaine fois
81
+            if ($install) {
82
+                return false;
83
+            }
84
+            if ($f and is_readable($f)) {
85
+                spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE);
86
+            } else {
87
+                spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE);
88
+            }
89
+            spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS);
90
+
91
+            // ne plus reessayer si ce n'est pas l'install
92
+            return $GLOBALS['connexions'][$index] = false;
93
+        }
94
+        $GLOBALS['connexions'][$index] = $GLOBALS['db_ok'];
95
+    }
96
+    // si la connexion a deja ete tentee mais a echoue, le dire!
97
+    if (!$GLOBALS['connexions'][$index]) {
98
+        return false;
99
+    }
100
+
101
+    // la connexion a reussi ou etait deja faite.
102
+    // chargement de la version du jeu de fonctions
103
+    // si pas dans le fichier par defaut
104
+    $type = $GLOBALS['db_ok']['type'];
105
+    $jeu = 'spip_' . $type . '_functions_' . $version;
106
+    if (!isset($GLOBALS[$jeu])) {
107
+        if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) {
108
+            spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
109
+
110
+            // ne plus reessayer
111
+            return $GLOBALS['connexions'][$index][$version] = array();
112
+        }
113
+    }
114
+    $GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu];
115
+    if ($old) {
116
+        return $GLOBALS['connexions'][$index];
117
+    }
118
+
119
+    $GLOBALS['connexions'][$index]['spip_connect_version'] = isset($GLOBALS['spip_connect_version']) ? $GLOBALS['spip_connect_version'] : 0;
120
+
121
+    // initialisation de l'alphabet utilise dans les connexions SQL
122
+    // si l'installation l'a determine.
123
+    // Celui du serveur principal l'impose aux serveurs secondaires
124
+    // s'ils le connaissent
125
+
126
+    if (!$serveur) {
127
+        $charset = spip_connect_main($GLOBALS[$jeu], $GLOBALS['db_ok']['charset']);
128
+        if (!$charset) {
129
+            unset($GLOBALS['connexions'][$index]);
130
+            spip_log("spip_connect: absence de charset", _LOG_AVERTISSEMENT);
131
+
132
+            return false;
133
+        }
134
+    } else {
135
+        if ($GLOBALS['db_ok']['charset']) {
136
+            $charset = $GLOBALS['db_ok']['charset'];
137
+        }
138
+        // spip_meta n'existe pas toujours dans la base
139
+        // C'est le cas d'un dump sqlite par exemple 
140
+        elseif ($GLOBALS['connexions'][$index]['spip_connect_version']
141
+            and sql_showtable('spip_meta', true, $serveur)
142
+            and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur)
143
+        ) {
144
+            $charset = $r;
145
+        } else {
146
+            $charset = -1;
147
+        }
148
+    }
149
+    if ($charset != -1) {
150
+        $f = $GLOBALS[$jeu]['set_charset'];
151
+        if (function_exists($f)) {
152
+            $f($charset, $serveur);
153
+        }
154
+    }
155
+
156
+    return $GLOBALS['connexions'][$index];
157 157
 }
158 158
 
159 159
 /**
@@ -162,12 +162,12 @@  discard block
 block discarded – undo
162 162
  * @param string $serveur Nom du connecteur de bdd utilisé
163 163
  **/
164 164
 function spip_sql_erreur($serveur = '') {
165
-	$connexion = spip_connect($serveur);
166
-	$e = sql_errno($serveur);
167
-	$t = (isset($connexion['type']) ? $connexion['type'] : 'sql');
168
-	$m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']);
169
-	$f = $t . $serveur;
170
-	spip_log($m, $f . '.' . _LOG_ERREUR);
165
+    $connexion = spip_connect($serveur);
166
+    $e = sql_errno($serveur);
167
+    $t = (isset($connexion['type']) ? $connexion['type'] : 'sql');
168
+    $m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']);
169
+    $f = $t . $serveur;
170
+    spip_log($m, $f . '.' . _LOG_ERREUR);
171 171
 }
172 172
 
173 173
 /**
@@ -189,19 +189,19 @@  discard block
 block discarded – undo
189 189
  *     - array : description de la connexion, si l'instruction sql est indisponible pour cette connexion
190 190
  **/
191 191
 function spip_connect_sql($version, $ins = '', $serveur = '', $continue = false) {
192
-	$desc = spip_connect($serveur, $version);
193
-	if (function_exists($f = @$desc[$version][$ins])) {
194
-		return $f;
195
-	}
196
-	if ($continue) {
197
-		return $desc;
198
-	}
199
-	if ($ins) {
200
-		spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR);
201
-	}
202
-	include_spip('inc/minipres');
203
-	echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), array('status' => 503));
204
-	exit;
192
+    $desc = spip_connect($serveur, $version);
193
+    if (function_exists($f = @$desc[$version][$ins])) {
194
+        return $f;
195
+    }
196
+    if ($continue) {
197
+        return $desc;
198
+    }
199
+    if ($ins) {
200
+        spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR);
201
+    }
202
+    include_spip('inc/minipres');
203
+    echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), array('status' => 503));
204
+    exit;
205 205
 }
206 206
 
207 207
 /**
@@ -227,70 +227,70 @@  discard block
 block discarded – undo
227 227
  * @return array          Description de la connexion
228 228
  */
229 229
 function spip_connect_db(
230
-	$host,
231
-	$port,
232
-	$login,
233
-	$pass,
234
-	$db = '',
235
-	$type = 'mysql',
236
-	$prefixe = '',
237
-	$auth = '',
238
-	$charset = ''
230
+    $host,
231
+    $port,
232
+    $login,
233
+    $pass,
234
+    $db = '',
235
+    $type = 'mysql',
236
+    $prefixe = '',
237
+    $auth = '',
238
+    $charset = ''
239 239
 ) {
240
-	// temps avant nouvelle tentative de connexion
241
-	// suite a une connection echouee
242
-	if (!defined('_CONNECT_RETRY_DELAY')) {
243
-		define('_CONNECT_RETRY_DELAY', 30);
244
-	}
245
-
246
-	$f = "";
247
-	// un fichier de identifiant par combinaison (type,host,port,db)
248
-	// pour ne pas declarer tout indisponible d'un coup
249
-	// si en cours d'installation ou si db=@test@ on ne pose rien
250
-	// car c'est un test de connexion
251
-	if (!defined('_ECRIRE_INSTALL') and $db !== "@test@") {
252
-		$f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out';
253
-	} elseif ($db == '@test@') {
254
-		$db = '';
255
-	}
256
-
257
-	if ($f
258
-		and @file_exists($f)
259
-		and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)
260
-	) {
261
-		spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
262
-
263
-		return;
264
-	}
265
-
266
-	if (!$prefixe) {
267
-		$prefixe = isset($GLOBALS['table_prefix'])
268
-			? $GLOBALS['table_prefix'] : $db;
269
-	}
270
-	$h = charger_fonction($type, 'req', true);
271
-	if (!$h) {
272
-		spip_log("les requetes $type ne sont pas fournies", _LOG_HS);
273
-
274
-		return;
275
-	}
276
-	if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
277
-
278
-		if (!is_array($auth)) {
279
-			// compatibilite version 0.7 initiale
280
-			$g['ldap'] = $auth;
281
-			$auth = array('ldap' => $auth);
282
-		}
283
-		$g['authentification'] = $auth;
284
-		$g['type'] = $type;
285
-		$g['charset'] = $charset;
286
-
287
-		return $GLOBALS['db_ok'] = $g;
288
-	}
289
-	// En cas d'indisponibilite du serveur, eviter de le bombarder
290
-	if ($f) {
291
-		@touch($f);
292
-		spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS);
293
-	}
240
+    // temps avant nouvelle tentative de connexion
241
+    // suite a une connection echouee
242
+    if (!defined('_CONNECT_RETRY_DELAY')) {
243
+        define('_CONNECT_RETRY_DELAY', 30);
244
+    }
245
+
246
+    $f = "";
247
+    // un fichier de identifiant par combinaison (type,host,port,db)
248
+    // pour ne pas declarer tout indisponible d'un coup
249
+    // si en cours d'installation ou si db=@test@ on ne pose rien
250
+    // car c'est un test de connexion
251
+    if (!defined('_ECRIRE_INSTALL') and $db !== "@test@") {
252
+        $f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out';
253
+    } elseif ($db == '@test@') {
254
+        $db = '';
255
+    }
256
+
257
+    if ($f
258
+        and @file_exists($f)
259
+        and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)
260
+    ) {
261
+        spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
262
+
263
+        return;
264
+    }
265
+
266
+    if (!$prefixe) {
267
+        $prefixe = isset($GLOBALS['table_prefix'])
268
+            ? $GLOBALS['table_prefix'] : $db;
269
+    }
270
+    $h = charger_fonction($type, 'req', true);
271
+    if (!$h) {
272
+        spip_log("les requetes $type ne sont pas fournies", _LOG_HS);
273
+
274
+        return;
275
+    }
276
+    if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
277
+
278
+        if (!is_array($auth)) {
279
+            // compatibilite version 0.7 initiale
280
+            $g['ldap'] = $auth;
281
+            $auth = array('ldap' => $auth);
282
+        }
283
+        $g['authentification'] = $auth;
284
+        $g['type'] = $type;
285
+        $g['charset'] = $charset;
286
+
287
+        return $GLOBALS['db_ok'] = $g;
288
+    }
289
+    // En cas d'indisponibilite du serveur, eviter de le bombarder
290
+    if ($f) {
291
+        @touch($f);
292
+        spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS);
293
+    }
294 294
 }
295 295
 
296 296
 
@@ -322,31 +322,31 @@  discard block
 block discarded – undo
322 322
  *     - nom du charset sinon
323 323
  **/
324 324
 function spip_connect_main($connexion, $charset_sql_connexion = '') {
325
-	if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) {
326
-		include_spip('inc/headers');
327
-		redirige_url_ecrire('upgrade', 'reinstall=oui');
328
-	}
329
-
330
-	if (!($f = $connexion['select'])) {
331
-		return false;
332
-	}
333
-	// si le charset est fourni, l'utiliser
334
-	if ($charset_sql_connexion) {
335
-		return $charset_sql_connexion;
336
-	}
337
-	// sinon on regarde la table spip_meta
338
-	// en cas d'erreur select retourne la requette (is_string=true donc)
339
-	if (!$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'")
340
-		or is_string($r)
341
-	) {
342
-		return false;
343
-	}
344
-	if (!($f = $connexion['fetch'])) {
345
-		return false;
346
-	}
347
-	$r = $f($r);
348
-
349
-	return ($r['valeur'] ? $r['valeur'] : -1);
325
+    if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) {
326
+        include_spip('inc/headers');
327
+        redirige_url_ecrire('upgrade', 'reinstall=oui');
328
+    }
329
+
330
+    if (!($f = $connexion['select'])) {
331
+        return false;
332
+    }
333
+    // si le charset est fourni, l'utiliser
334
+    if ($charset_sql_connexion) {
335
+        return $charset_sql_connexion;
336
+    }
337
+    // sinon on regarde la table spip_meta
338
+    // en cas d'erreur select retourne la requette (is_string=true donc)
339
+    if (!$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'")
340
+        or is_string($r)
341
+    ) {
342
+        return false;
343
+    }
344
+    if (!($f = $connexion['fetch'])) {
345
+        return false;
346
+    }
347
+    $r = $f($r);
348
+
349
+    return ($r['valeur'] ? $r['valeur'] : -1);
350 350
 }
351 351
 
352 352
 /**
@@ -361,9 +361,9 @@  discard block
 block discarded – undo
361 361
  * @return array
362 362
  */
363 363
 function spip_connect_ldap($serveur = '') {
364
-	include_spip('auth/ldap');
364
+    include_spip('auth/ldap');
365 365
 
366
-	return auth_ldap_connect($serveur);
366
+    return auth_ldap_connect($serveur);
367 367
 }
368 368
 
369 369
 /**
@@ -379,9 +379,9 @@  discard block
 block discarded – undo
379 379
  * @return string Valeur échappée.
380 380
  **/
381 381
 function _q($a) {
382
-	return (is_numeric($a)) ? strval($a) :
383
-		(!is_array($a) ? ("'" . addslashes($a) . "'")
384
-			: join(",", array_map('_q', $a)));
382
+    return (is_numeric($a)) ? strval($a) :
383
+        (!is_array($a) ? ("'" . addslashes($a) . "'")
384
+            : join(",", array_map('_q', $a)));
385 385
 }
386 386
 
387 387
 
@@ -399,19 +399,19 @@  discard block
 block discarded – undo
399 399
  *     - chaîne vide si non trouvé.
400 400
  **/
401 401
 function table_jointure($x, $y) {
402
-	$trouver_table = charger_fonction('trouver_table', 'base');
403
-	$xdesc = $trouver_table(table_objet($x));
404
-	$ydesc = $trouver_table(table_objet($y));
405
-	$ix = @$xdesc['key']["PRIMARY KEY"];
406
-	$iy = @$ydesc['key']["PRIMARY KEY"];
407
-	if ($table = $ydesc['tables_jointures'][$ix]) {
408
-		return $table;
409
-	}
410
-	if ($table = $xdesc['tables_jointures'][$iy]) {
411
-		return $table;
412
-	}
413
-
414
-	return '';
402
+    $trouver_table = charger_fonction('trouver_table', 'base');
403
+    $xdesc = $trouver_table(table_objet($x));
404
+    $ydesc = $trouver_table(table_objet($y));
405
+    $ix = @$xdesc['key']["PRIMARY KEY"];
406
+    $iy = @$ydesc['key']["PRIMARY KEY"];
407
+    if ($table = $ydesc['tables_jointures'][$ix]) {
408
+        return $table;
409
+    }
410
+    if ($table = $xdesc['tables_jointures'][$iy]) {
411
+        return $table;
412
+    }
413
+
414
+    return '';
415 415
 }
416 416
 
417 417
 /**
@@ -427,41 +427,41 @@  discard block
 block discarded – undo
427 427
  * @return array
428 428
  */
429 429
 function query_echappe_textes($query) {
430
-	static $codeEchappements = array("''" => "\x1@##@\x1", "\'" => "\x2@##@\x2", "\\\"" => "\x3@##@\x3");
431
-	$query = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
432
-	if (preg_match_all("/((['])[^']*(\\2))|(([\"])[^\"]*(\\5))/S", $query, $textes)) {
433
-		$textes = reset($textes); // indice 0 du match
434
-		switch (count($textes)) {
435
-			case 0:
436
-				$replace = array();
437
-				break;
438
-			case 1:
439
-				$replace = array('%1$s');
440
-				break;
441
-			case 2:
442
-				$replace = array('%1$s', '%2$s');
443
-				break;
444
-			case 3:
445
-				$replace = array('%1$s', '%2$s', '%3$s');
446
-				break;
447
-			case 4:
448
-				$replace = array('%1$s', '%2$s', '%3$s', '%4$s');
449
-				break;
450
-			case 5:
451
-				$replace = array('%1$s', '%2$s', '%3$s', '%4$s', '%5$s');
452
-				break;
453
-			default:
454
-				$replace = range(1, count($textes));
455
-				$replace = '%' . implode('$s,%', $replace) . '$s';
456
-				$replace = explode(',', $replace);
457
-				break;
458
-		}
459
-		$query = str_replace($textes, $replace, $query);
460
-	} else {
461
-		$textes = array();
462
-	}
463
-
464
-	return array($query, $textes);
430
+    static $codeEchappements = array("''" => "\x1@##@\x1", "\'" => "\x2@##@\x2", "\\\"" => "\x3@##@\x3");
431
+    $query = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
432
+    if (preg_match_all("/((['])[^']*(\\2))|(([\"])[^\"]*(\\5))/S", $query, $textes)) {
433
+        $textes = reset($textes); // indice 0 du match
434
+        switch (count($textes)) {
435
+            case 0:
436
+                $replace = array();
437
+                break;
438
+            case 1:
439
+                $replace = array('%1$s');
440
+                break;
441
+            case 2:
442
+                $replace = array('%1$s', '%2$s');
443
+                break;
444
+            case 3:
445
+                $replace = array('%1$s', '%2$s', '%3$s');
446
+                break;
447
+            case 4:
448
+                $replace = array('%1$s', '%2$s', '%3$s', '%4$s');
449
+                break;
450
+            case 5:
451
+                $replace = array('%1$s', '%2$s', '%3$s', '%4$s', '%5$s');
452
+                break;
453
+            default:
454
+                $replace = range(1, count($textes));
455
+                $replace = '%' . implode('$s,%', $replace) . '$s';
456
+                $replace = explode(',', $replace);
457
+                break;
458
+        }
459
+        $query = str_replace($textes, $replace, $query);
460
+    } else {
461
+        $textes = array();
462
+    }
463
+
464
+    return array($query, $textes);
465 465
 }
466 466
 
467 467
 /**
@@ -475,40 +475,40 @@  discard block
 block discarded – undo
475 475
  * @return string
476 476
  */
477 477
 function query_reinjecte_textes($query, $textes) {
478
-	static $codeEchappements = array("''" => "\x1@##@\x1", "\'" => "\x2@##@\x2", "\\\"" => "\x3@##@\x3");
479
-	# debug de la substitution
480
-	#if (($c1=substr_count($query,"%"))!=($c2=count($textes))){
481
-	#	spip_log("$c1 ::". $query,"tradquery"._LOG_ERREUR);
482
-	#	spip_log("$c2 ::". var_export($textes,1),"tradquery"._LOG_ERREUR);
483
-	#	spip_log("ini ::". $qi,"tradquery"._LOG_ERREUR);
484
-	#}
485
-	switch (count($textes)) {
486
-		case 0:
487
-			break;
488
-		case 1:
489
-			$query = sprintf($query, $textes[0]);
490
-			break;
491
-		case 2:
492
-			$query = sprintf($query, $textes[0], $textes[1]);
493
-			break;
494
-		case 3:
495
-			$query = sprintf($query, $textes[0], $textes[1], $textes[2]);
496
-			break;
497
-		case 4:
498
-			$query = sprintf($query, $textes[0], $textes[1], $textes[2], $textes[3]);
499
-			break;
500
-		case 5:
501
-			$query = sprintf($query, $textes[0], $textes[1], $textes[2], $textes[3], $textes[4]);
502
-			break;
503
-		default:
504
-			array_unshift($textes, $query);
505
-			$query = call_user_func_array('sprintf', $textes);
506
-			break;
507
-	}
508
-
509
-	$query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
510
-
511
-	return $query;
478
+    static $codeEchappements = array("''" => "\x1@##@\x1", "\'" => "\x2@##@\x2", "\\\"" => "\x3@##@\x3");
479
+    # debug de la substitution
480
+    #if (($c1=substr_count($query,"%"))!=($c2=count($textes))){
481
+    #	spip_log("$c1 ::". $query,"tradquery"._LOG_ERREUR);
482
+    #	spip_log("$c2 ::". var_export($textes,1),"tradquery"._LOG_ERREUR);
483
+    #	spip_log("ini ::". $qi,"tradquery"._LOG_ERREUR);
484
+    #}
485
+    switch (count($textes)) {
486
+        case 0:
487
+            break;
488
+        case 1:
489
+            $query = sprintf($query, $textes[0]);
490
+            break;
491
+        case 2:
492
+            $query = sprintf($query, $textes[0], $textes[1]);
493
+            break;
494
+        case 3:
495
+            $query = sprintf($query, $textes[0], $textes[1], $textes[2]);
496
+            break;
497
+        case 4:
498
+            $query = sprintf($query, $textes[0], $textes[1], $textes[2], $textes[3]);
499
+            break;
500
+        case 5:
501
+            $query = sprintf($query, $textes[0], $textes[1], $textes[2], $textes[3], $textes[4]);
502
+            break;
503
+        default:
504
+            array_unshift($textes, $query);
505
+            $query = call_user_func_array('sprintf', $textes);
506
+            break;
507
+    }
508
+
509
+    $query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
510
+
511
+    return $query;
512 512
 }
513 513
 
514 514
 
@@ -527,7 +527,7 @@  discard block
 block discarded – undo
527 527
  **/
528 528
 function spip_query($query, $serveur = '') {
529 529
 
530
-	$f = spip_connect_sql($GLOBALS['spip_sql_version'], 'query', $serveur, true);
530
+    $f = spip_connect_sql($GLOBALS['spip_sql_version'], 'query', $serveur, true);
531 531
 
532
-	return function_exists($f) ? $f($query, $serveur) : false;
532
+    return function_exists($f) ? $f($query, $serveur) : false;
533 533
 }
Please login to merge, or discard this patch.
ecrire/exec/rechercher.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@
 block discarded – undo
52 52
  *
53 53
  * @param int $id
54 54
  * @param string $type
55
- * @param string|int|array $exclus
55
+ * @param integer $exclus
56 56
  * @param string|bool $rac
57 57
  * @param string $do
58 58
  * @return string
Please login to merge, or discard this patch.
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
  **/
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 include_spip('inc/actions');
@@ -31,17 +31,17 @@  discard block
 block discarded – undo
31 31
  * @uses ajax_retour()
32 32
  **/
33 33
 function exec_rechercher_dist() {
34
-	$id = intval(_request('id'));
35
-	$exclus = intval(_request('exclus'));
36
-	$rac = spip_htmlentities(_request('rac'));
37
-	$type = _request('type');
38
-	$do = _request('do');
39
-	if (preg_match('/^\w*$/', $do)) {
40
-		$r = exec_rechercher_args($id, $type, $exclus, $rac, $do);
41
-	} else {
42
-		$r = '';
43
-	}
44
-	ajax_retour($r);
34
+    $id = intval(_request('id'));
35
+    $exclus = intval(_request('exclus'));
36
+    $rac = spip_htmlentities(_request('rac'));
37
+    $type = _request('type');
38
+    $do = _request('do');
39
+    if (preg_match('/^\w*$/', $do)) {
40
+        $r = exec_rechercher_args($id, $type, $exclus, $rac, $do);
41
+    } else {
42
+        $r = '';
43
+    }
44
+    ajax_retour($r);
45 45
 }
46 46
 
47 47
 /**
@@ -58,59 +58,59 @@  discard block
 block discarded – undo
58 58
  * @return string
59 59
  **/
60 60
 function exec_rechercher_args($id, $type, $exclus, $rac, $do) {
61
-	if (!$do) {
62
-		$do = 'aff';
63
-	}
64
-
65
-	$points = $rub = array();
66
-
67
-	$where = preg_split(",\s+,", $type);
68
-	if ($where) {
69
-		foreach ($where as $k => $v) {
70
-			$where[$k] = "'%" . substr(str_replace("%", "\%", sql_quote($v, '', 'string')), 1, -1) . "%'";
71
-		}
72
-		$where_titre = ("(titre LIKE " . join(" AND titre LIKE ", $where) . ")");
73
-		$where_desc = ("(descriptif LIKE " . join(" AND descriptif LIKE ", $where) . ")");
74
-		$where_id = ("(id_rubrique = " . intval($type) . ")");
75
-
76
-		if ($exclus) {
77
-			include_spip('inc/rubriques');
78
-			$where_exclus = " AND " . sql_in('id_rubrique', calcul_branche_in($exclus), 'NOT');
79
-		} else {
80
-			$where_exclus = '';
81
-		}
82
-
83
-		foreach (array(
84
-			3 => $where_titre,
85
-			2 => $where_desc,
86
-			1 => $where_id,
87
-		) as $point => $recherche) {
88
-			$res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "$recherche$where_exclus");
89
-			while ($row = sql_fetch($res)) {
90
-				$id_rubrique = $row["id_rubrique"];
91
-				if (!isset($rub[$id_rubrique])) {
92
-					$rub[$id_rubrique] = array();
93
-				}
94
-				$rub[$id_rubrique]["titre"] = typo($row["titre"]);
95
-				$rub[$id_rubrique]["id_parent"] = $row["id_parent"];
96
-				if (!isset($points[$id_rubrique])) {
97
-					$points[$id_rubrique] = 0;
98
-				}
99
-				$points[$id_rubrique] = $points[$id_rubrique] + $point;
100
-			}
101
-		}
102
-	}
103
-
104
-	if ($points) {
105
-		arsort($points);
106
-		$style = " style='background-image: url(" . chemin_image('secteur-12.png') . ")'";
107
-		foreach ($rub as $k => $v) {
108
-			$rub[$k]['atts'] = ($v["id_parent"] ? $style : '')
109
-				. " class='petite-rubrique'";
110
-		}
111
-	}
112
-
113
-	return (proposer_item($points, $rub, $rac, $type, $do));
61
+    if (!$do) {
62
+        $do = 'aff';
63
+    }
64
+
65
+    $points = $rub = array();
66
+
67
+    $where = preg_split(",\s+,", $type);
68
+    if ($where) {
69
+        foreach ($where as $k => $v) {
70
+            $where[$k] = "'%" . substr(str_replace("%", "\%", sql_quote($v, '', 'string')), 1, -1) . "%'";
71
+        }
72
+        $where_titre = ("(titre LIKE " . join(" AND titre LIKE ", $where) . ")");
73
+        $where_desc = ("(descriptif LIKE " . join(" AND descriptif LIKE ", $where) . ")");
74
+        $where_id = ("(id_rubrique = " . intval($type) . ")");
75
+
76
+        if ($exclus) {
77
+            include_spip('inc/rubriques');
78
+            $where_exclus = " AND " . sql_in('id_rubrique', calcul_branche_in($exclus), 'NOT');
79
+        } else {
80
+            $where_exclus = '';
81
+        }
82
+
83
+        foreach (array(
84
+            3 => $where_titre,
85
+            2 => $where_desc,
86
+            1 => $where_id,
87
+        ) as $point => $recherche) {
88
+            $res = sql_select("id_rubrique, id_parent, titre", "spip_rubriques", "$recherche$where_exclus");
89
+            while ($row = sql_fetch($res)) {
90
+                $id_rubrique = $row["id_rubrique"];
91
+                if (!isset($rub[$id_rubrique])) {
92
+                    $rub[$id_rubrique] = array();
93
+                }
94
+                $rub[$id_rubrique]["titre"] = typo($row["titre"]);
95
+                $rub[$id_rubrique]["id_parent"] = $row["id_parent"];
96
+                if (!isset($points[$id_rubrique])) {
97
+                    $points[$id_rubrique] = 0;
98
+                }
99
+                $points[$id_rubrique] = $points[$id_rubrique] + $point;
100
+            }
101
+        }
102
+    }
103
+
104
+    if ($points) {
105
+        arsort($points);
106
+        $style = " style='background-image: url(" . chemin_image('secteur-12.png') . ")'";
107
+        foreach ($rub as $k => $v) {
108
+            $rub[$k]['atts'] = ($v["id_parent"] ? $style : '')
109
+                . " class='petite-rubrique'";
110
+        }
111
+    }
112
+
113
+    return (proposer_item($points, $rub, $rac, $type, $do));
114 114
 }
115 115
 
116 116
 
@@ -133,35 +133,35 @@  discard block
 block discarded – undo
133 133
  **/
134 134
 function proposer_item($ids, $titles, $rac, $type, $do) {
135 135
 
136
-	if (!$ids) {
137
-		return "<br /><br /><div style='padding: 5px; color: red;'><b>"
138
-		. spip_htmlentities($type)
139
-		. "</b> :  " . _T('avis_aucun_resultat') . "</div>";
140
-	}
136
+    if (!$ids) {
137
+        return "<br /><br /><div style='padding: 5px; color: red;'><b>"
138
+        . spip_htmlentities($type)
139
+        . "</b> :  " . _T('avis_aucun_resultat') . "</div>";
140
+    }
141 141
 
142
-	$ret = '';
143
-	$info = generer_url_ecrire('informer', "type=rubrique&rac=$rac&id=");
142
+    $ret = '';
143
+    $info = generer_url_ecrire('informer', "type=rubrique&rac=$rac&id=");
144 144
 
145
-	$onClick = "aff_selection(this.firstChild.title,'$rac" . "_selection','$info', event)";
145
+    $onClick = "aff_selection(this.firstChild.title,'$rac" . "_selection','$info', event)";
146 146
 
147
-	$ondbClick = "$do(this.firstChild.firstChild.nodeValue,this.firstChild.title,'selection_rubrique', 'id_parent');";
147
+    $ondbClick = "$do(this.firstChild.firstChild.nodeValue,this.firstChild.title,'selection_rubrique', 'id_parent');";
148 148
 
149
-	foreach ($ids as $id => $bof) {
149
+    foreach ($ids as $id => $bof) {
150 150
 
151
-		$titre = strtr(str_replace("'", "&#8217;", str_replace('"', "&#34;", textebrut($titles[$id]["titre"]))), "\n\r",
152
-			"  ");
151
+        $titre = strtr(str_replace("'", "&#8217;", str_replace('"', "&#34;", textebrut($titles[$id]["titre"]))), "\n\r",
152
+            "  ");
153 153
 
154
-		$ret .= "<div class='highlight off'\nonclick=\"changerhighlight(this); "
155
-			. $onClick
156
-			. "\"\nondblclick=\""
157
-			. $ondbClick
158
-			. $onClick
159
-			. " \"><div"
160
-			. $titles[$id]["atts"]
161
-			. " title='$id'>&nbsp; "
162
-			. $titre
163
-			. "</div></div>";
164
-	}
154
+        $ret .= "<div class='highlight off'\nonclick=\"changerhighlight(this); "
155
+            . $onClick
156
+            . "\"\nondblclick=\""
157
+            . $ondbClick
158
+            . $onClick
159
+            . " \"><div"
160
+            . $titles[$id]["atts"]
161
+            . " title='$id'>&nbsp; "
162
+            . $titre
163
+            . "</div></div>";
164
+    }
165 165
 
166
-	return $ret;
166
+    return $ret;
167 167
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -67,15 +67,15 @@  discard block
 block discarded – undo
67 67
 	$where = preg_split(",\s+,", $type);
68 68
 	if ($where) {
69 69
 		foreach ($where as $k => $v) {
70
-			$where[$k] = "'%" . substr(str_replace("%", "\%", sql_quote($v, '', 'string')), 1, -1) . "%'";
70
+			$where[$k] = "'%".substr(str_replace("%", "\%", sql_quote($v, '', 'string')), 1, -1)."%'";
71 71
 		}
72
-		$where_titre = ("(titre LIKE " . join(" AND titre LIKE ", $where) . ")");
73
-		$where_desc = ("(descriptif LIKE " . join(" AND descriptif LIKE ", $where) . ")");
74
-		$where_id = ("(id_rubrique = " . intval($type) . ")");
72
+		$where_titre = ("(titre LIKE ".join(" AND titre LIKE ", $where).")");
73
+		$where_desc = ("(descriptif LIKE ".join(" AND descriptif LIKE ", $where).")");
74
+		$where_id = ("(id_rubrique = ".intval($type).")");
75 75
 
76 76
 		if ($exclus) {
77 77
 			include_spip('inc/rubriques');
78
-			$where_exclus = " AND " . sql_in('id_rubrique', calcul_branche_in($exclus), 'NOT');
78
+			$where_exclus = " AND ".sql_in('id_rubrique', calcul_branche_in($exclus), 'NOT');
79 79
 		} else {
80 80
 			$where_exclus = '';
81 81
 		}
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
 
104 104
 	if ($points) {
105 105
 		arsort($points);
106
-		$style = " style='background-image: url(" . chemin_image('secteur-12.png') . ")'";
106
+		$style = " style='background-image: url(".chemin_image('secteur-12.png').")'";
107 107
 		foreach ($rub as $k => $v) {
108 108
 			$rub[$k]['atts'] = ($v["id_parent"] ? $style : '')
109 109
 				. " class='petite-rubrique'";
@@ -136,13 +136,13 @@  discard block
 block discarded – undo
136 136
 	if (!$ids) {
137 137
 		return "<br /><br /><div style='padding: 5px; color: red;'><b>"
138 138
 		. spip_htmlentities($type)
139
-		. "</b> :  " . _T('avis_aucun_resultat') . "</div>";
139
+		. "</b> :  "._T('avis_aucun_resultat')."</div>";
140 140
 	}
141 141
 
142 142
 	$ret = '';
143 143
 	$info = generer_url_ecrire('informer', "type=rubrique&rac=$rac&id=");
144 144
 
145
-	$onClick = "aff_selection(this.firstChild.title,'$rac" . "_selection','$info', event)";
145
+	$onClick = "aff_selection(this.firstChild.title,'$rac"."_selection','$info', event)";
146 146
 
147 147
 	$ondbClick = "$do(this.firstChild.firstChild.nodeValue,this.firstChild.title,'selection_rubrique', 'id_parent');";
148 148
 
Please login to merge, or discard this patch.
ecrire/genie/maintenance.php 4 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@
 block discarded – undo
31 31
  * @uses verifier_crash_tables()
32 32
  *
33 33
  * @param object $t
34
- * @return bool Toujours à true.
34
+ * @return integer Toujours à true.
35 35
  */
36 36
 function genie_maintenance_dist($t) {
37 37
 
Please login to merge, or discard this patch.
Indentation   +44 added lines, -44 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
 /**
@@ -35,18 +35,18 @@  discard block
 block discarded – undo
35 35
  */
36 36
 function genie_maintenance_dist($t) {
37 37
 
38
-	// (re)mettre .htaccess avec deny from all
39
-	// dans les deux repertoires dits inaccessibles par http
40
-	include_spip('inc/acces');
41
-	verifier_htaccess(_DIR_ETC);
42
-	verifier_htaccess(_DIR_TMP);
38
+    // (re)mettre .htaccess avec deny from all
39
+    // dans les deux repertoires dits inaccessibles par http
40
+    include_spip('inc/acces');
41
+    verifier_htaccess(_DIR_ETC);
42
+    verifier_htaccess(_DIR_TMP);
43 43
 
44
-	// Verifier qu'aucune table n'est crashee
45
-	if (!_request('reinstall')) {
46
-		verifier_crash_tables();
47
-	}
44
+    // Verifier qu'aucune table n'est crashee
45
+    if (!_request('reinstall')) {
46
+        verifier_crash_tables();
47
+    }
48 48
 
49
-	return 1;
49
+    return 1;
50 50
 }
51 51
 
52 52
 
@@ -63,33 +63,33 @@  discard block
 block discarded – undo
63 63
  *     des tables qui ont crashé.
64 64
  */
65 65
 function verifier_crash_tables() {
66
-	if (spip_connect()) {
67
-		include_spip('base/serial');
68
-		include_spip('base/auxiliaires');
69
-		$crash = array();
70
-		foreach (array('tables_principales', 'tables_auxiliaires') as $com) {
71
-			foreach ($GLOBALS[$com] as $table => $desc) {
72
-				if (!sql_select('*', $table, '', '', '', 1)
73
-					and !defined('spip_interdire_cache')
74
-				) # cas "LOST CONNECTION"
75
-				{
76
-					$crash[] = $table;
77
-				}
78
-			}
79
-		}
80
-		#$crash[] = 'test';
81
-		if ($crash) {
82
-			ecrire_meta('message_crash_tables', serialize($crash));
83
-			spip_log('crash des tables', 'err');
84
-			spip_log($crash, 'err');
85
-		} else {
86
-			effacer_meta('message_crash_tables');
87
-		}
66
+    if (spip_connect()) {
67
+        include_spip('base/serial');
68
+        include_spip('base/auxiliaires');
69
+        $crash = array();
70
+        foreach (array('tables_principales', 'tables_auxiliaires') as $com) {
71
+            foreach ($GLOBALS[$com] as $table => $desc) {
72
+                if (!sql_select('*', $table, '', '', '', 1)
73
+                    and !defined('spip_interdire_cache')
74
+                ) # cas "LOST CONNECTION"
75
+                {
76
+                    $crash[] = $table;
77
+                }
78
+            }
79
+        }
80
+        #$crash[] = 'test';
81
+        if ($crash) {
82
+            ecrire_meta('message_crash_tables', serialize($crash));
83
+            spip_log('crash des tables', 'err');
84
+            spip_log($crash, 'err');
85
+        } else {
86
+            effacer_meta('message_crash_tables');
87
+        }
88 88
 
89
-		return $crash;
90
-	}
89
+        return $crash;
90
+    }
91 91
 
92
-	return false;
92
+    return false;
93 93
 }
94 94
 
95 95
 /**
@@ -105,12 +105,12 @@  discard block
 block discarded – undo
105 105
  * @return string
106 106
  */
107 107
 function message_crash_tables() {
108
-	if ($crash = verifier_crash_tables()) {
109
-		return
110
-			'<strong>' . _T('texte_recuperer_base') . '</strong><br />'
111
-			. ' <tt>' . join(', ', $crash) . '</tt><br />'
112
-			. generer_form_ecrire('base_repair',
113
-				_T('texte_crash_base'), '',
114
-				_T('bouton_tenter_recuperation'));
115
-	}
108
+    if ($crash = verifier_crash_tables()) {
109
+        return
110
+            '<strong>' . _T('texte_recuperer_base') . '</strong><br />'
111
+            . ' <tt>' . join(', ', $crash) . '</tt><br />'
112
+            . generer_form_ecrire('base_repair',
113
+                _T('texte_crash_base'), '',
114
+                _T('bouton_tenter_recuperation'));
115
+    }
116 116
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -107,8 +107,8 @@
 block discarded – undo
107 107
 function message_crash_tables() {
108 108
 	if ($crash = verifier_crash_tables()) {
109 109
 		return
110
-			'<strong>' . _T('texte_recuperer_base') . '</strong><br />'
111
-			. ' <tt>' . join(', ', $crash) . '</tt><br />'
110
+			'<strong>'._T('texte_recuperer_base').'</strong><br />'
111
+			. ' <tt>'.join(', ', $crash).'</tt><br />'
112 112
 			. generer_form_ecrire('base_repair',
113 113
 				_T('texte_crash_base'), '',
114 114
 				_T('bouton_tenter_recuperation'));
Please login to merge, or discard this patch.
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -71,10 +71,12 @@
 block discarded – undo
71 71
 			foreach ($GLOBALS[$com] as $table => $desc) {
72 72
 				if (!sql_select('*', $table, '', '', '', 1)
73 73
 					and !defined('spip_interdire_cache')
74
-				) # cas "LOST CONNECTION"
74
+				) {
75
+				    # cas "LOST CONNECTION"
75 76
 				{
76 77
 					$crash[] = $table;
77 78
 				}
79
+				}
78 80
 			}
79 81
 		}
80 82
 		#$crash[] = 'test';
Please login to merge, or discard this patch.
ecrire/inc/acces.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -261,7 +261,7 @@
 block discarded – undo
261 261
 /**
262 262
  * Initialiser la globale htsalt si cela n'a pas déjà été fait.
263 263
  *
264
- * @return void|bool
264
+ * @return null|string
265 265
  */
266 266
 function initialiser_sel() {
267 267
 	if (CRYPT_MD5) {
Please login to merge, or discard this patch.
Indentation   +218 added lines, -218 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
 /**
@@ -31,47 +31,47 @@  discard block
 block discarded – undo
31 31
  *     Mot de passe
32 32
  **/
33 33
 function creer_pass_aleatoire($longueur = 8, $sel = '') {
34
-	$seed = (int)round(((float)microtime() + 1) * time());
35
-
36
-	mt_srand($seed);
37
-	srand($seed);
38
-	$s = '';
39
-	$pass = '';
40
-	for ($i = 0; $i < $longueur; $i++) {
41
-		if (!$s) {
42
-			$s = mt_rand();
43
-			if (!$s) {
44
-				$s = rand();
45
-			}
46
-			$s = substr(md5(uniqid($s) . $sel), 0, 16);
47
-		}
48
-		$r = unpack('Cr', pack('H2', $s . $s));
49
-		$x = $r['r'] & 63;
50
-		if ($x < 10) {
51
-			$x = chr($x + 48);
52
-		} else {
53
-			if ($x < 36) {
54
-				$x = chr($x + 55);
55
-			} else {
56
-				if ($x < 62) {
57
-					$x = chr($x + 61);
58
-				} else {
59
-					if ($x == 63) {
60
-						$x = '/';
61
-					} else {
62
-						$x = '.';
63
-					}
64
-				}
65
-			}
66
-		}
67
-		$pass .= $x;
68
-		$s = substr($s, 2);
69
-	}
70
-	$pass = preg_replace('@[./]@', 'a', $pass);
71
-	$pass = preg_replace('@[I1l]@', 'L', $pass);
72
-	$pass = preg_replace('@[0O]@', 'o', $pass);
73
-
74
-	return $pass;
34
+    $seed = (int)round(((float)microtime() + 1) * time());
35
+
36
+    mt_srand($seed);
37
+    srand($seed);
38
+    $s = '';
39
+    $pass = '';
40
+    for ($i = 0; $i < $longueur; $i++) {
41
+        if (!$s) {
42
+            $s = mt_rand();
43
+            if (!$s) {
44
+                $s = rand();
45
+            }
46
+            $s = substr(md5(uniqid($s) . $sel), 0, 16);
47
+        }
48
+        $r = unpack('Cr', pack('H2', $s . $s));
49
+        $x = $r['r'] & 63;
50
+        if ($x < 10) {
51
+            $x = chr($x + 48);
52
+        } else {
53
+            if ($x < 36) {
54
+                $x = chr($x + 55);
55
+            } else {
56
+                if ($x < 62) {
57
+                    $x = chr($x + 61);
58
+                } else {
59
+                    if ($x == 63) {
60
+                        $x = '/';
61
+                    } else {
62
+                        $x = '.';
63
+                    }
64
+                }
65
+            }
66
+        }
67
+        $pass .= $x;
68
+        $s = substr($s, 2);
69
+    }
70
+    $pass = preg_replace('@[./]@', 'a', $pass);
71
+    $pass = preg_replace('@[I1l]@', 'L', $pass);
72
+    $pass = preg_replace('@[0O]@', 'o', $pass);
73
+
74
+    return $pass;
75 75
 }
76 76
 
77 77
 /**
@@ -80,21 +80,21 @@  discard block
 block discarded – undo
80 80
  * @return string Identifiant
81 81
  */
82 82
 function creer_uniqid() {
83
-	static $seeded;
83
+    static $seeded;
84 84
 
85
-	if (!$seeded) {
86
-		$seed = (int)round(((float)microtime() + 1) * time());
87
-		mt_srand($seed);
88
-		srand($seed);
89
-		$seeded = true;
90
-	}
85
+    if (!$seeded) {
86
+        $seed = (int)round(((float)microtime() + 1) * time());
87
+        mt_srand($seed);
88
+        srand($seed);
89
+        $seeded = true;
90
+    }
91 91
 
92
-	$s = mt_rand();
93
-	if (!$s) {
94
-		$s = rand();
95
-	}
92
+    $s = mt_rand();
93
+    if (!$s) {
94
+        $s = rand();
95
+    }
96 96
 
97
-	return uniqid($s, 1);
97
+    return uniqid($s, 1);
98 98
 }
99 99
 
100 100
 /**
@@ -108,38 +108,38 @@  discard block
 block discarded – undo
108 108
  * @return string Retourne l'alea éphemère actuel au passage
109 109
  */
110 110
 function charger_aleas() {
111
-	if (!isset($GLOBALS['meta']['alea_ephemere'])) {
112
-		include_spip('base/abstract_sql');
113
-		$aleas = sql_allfetsel(
114
-			array('nom', 'valeur'),
115
-			'spip_meta',
116
-			sql_in("nom", array('alea_ephemere', 'alea_ephemere_ancien')),
117
-			'', '', '', '', '',
118
-			'continue'
119
-		);
120
-		if ($aleas) {
121
-			foreach ($aleas as $a) {
122
-				$GLOBALS['meta'][$a['nom']] = $a['valeur'];
123
-			}
124
-			return $GLOBALS['meta']['alea_ephemere'];
125
-		} else {
126
-			spip_log("aleas indisponibles", "session");
127
-			return "";
128
-		}
129
-	}
130
-	return $GLOBALS['meta']['alea_ephemere'];
111
+    if (!isset($GLOBALS['meta']['alea_ephemere'])) {
112
+        include_spip('base/abstract_sql');
113
+        $aleas = sql_allfetsel(
114
+            array('nom', 'valeur'),
115
+            'spip_meta',
116
+            sql_in("nom", array('alea_ephemere', 'alea_ephemere_ancien')),
117
+            '', '', '', '', '',
118
+            'continue'
119
+        );
120
+        if ($aleas) {
121
+            foreach ($aleas as $a) {
122
+                $GLOBALS['meta'][$a['nom']] = $a['valeur'];
123
+            }
124
+            return $GLOBALS['meta']['alea_ephemere'];
125
+        } else {
126
+            spip_log("aleas indisponibles", "session");
127
+            return "";
128
+        }
129
+    }
130
+    return $GLOBALS['meta']['alea_ephemere'];
131 131
 }
132 132
 
133 133
 /**
134 134
  * Renouveller l'alea (utilisé pour sécuriser les scripts du répertoire `action/`)
135 135
  **/
136 136
 function renouvelle_alea() {
137
-	charger_aleas();
138
-	ecrire_meta('alea_ephemere_ancien', @$GLOBALS['meta']['alea_ephemere'], 'non');
139
-	$GLOBALS['meta']['alea_ephemere'] = md5(creer_uniqid());
140
-	ecrire_meta('alea_ephemere', $GLOBALS['meta']['alea_ephemere'], 'non');
141
-	ecrire_meta('alea_ephemere_date', time(), 'non');
142
-	spip_log("renouvellement de l'alea_ephemere");
137
+    charger_aleas();
138
+    ecrire_meta('alea_ephemere_ancien', @$GLOBALS['meta']['alea_ephemere'], 'non');
139
+    $GLOBALS['meta']['alea_ephemere'] = md5(creer_uniqid());
140
+    ecrire_meta('alea_ephemere', $GLOBALS['meta']['alea_ephemere'], 'non');
141
+    ecrire_meta('alea_ephemere_date', time(), 'non');
142
+    spip_log("renouvellement de l'alea_ephemere");
143 143
 }
144 144
 
145 145
 
@@ -159,20 +159,20 @@  discard block
 block discarded – undo
159 159
  *     Clé de sécurité.
160 160
  **/
161 161
 function low_sec($id_auteur) {
162
-	// Pas d'id_auteur : low_sec
163
-	if (!$id_auteur = intval($id_auteur)) {
164
-		if (!$low_sec = $GLOBALS['meta']['low_sec']) {
165
-			ecrire_meta('low_sec', $low_sec = creer_pass_aleatoire());
166
-		}
167
-	} else {
168
-		$low_sec = sql_getfetsel('low_sec', 'spip_auteurs', 'id_auteur = '.intval($id_auteur));
169
-		if (!$low_sec) {
170
-			$low_sec = creer_pass_aleatoire();
171
-			sql_updateq('spip_auteurs', array('low_sec' => $low_sec), 'id_auteur = '.intval($id_auteur));
172
-		}
173
-	}
174
-
175
-	return $low_sec;
162
+    // Pas d'id_auteur : low_sec
163
+    if (!$id_auteur = intval($id_auteur)) {
164
+        if (!$low_sec = $GLOBALS['meta']['low_sec']) {
165
+            ecrire_meta('low_sec', $low_sec = creer_pass_aleatoire());
166
+        }
167
+    } else {
168
+        $low_sec = sql_getfetsel('low_sec', 'spip_auteurs', 'id_auteur = '.intval($id_auteur));
169
+        if (!$low_sec) {
170
+            $low_sec = creer_pass_aleatoire();
171
+            sql_updateq('spip_auteurs', array('low_sec' => $low_sec), 'id_auteur = '.intval($id_auteur));
172
+        }
173
+    }
174
+
175
+    return $low_sec;
176 176
 }
177 177
 
178 178
 /**
@@ -188,27 +188,27 @@  discard block
 block discarded – undo
188 188
  * @return string
189 189
  */
190 190
 function param_low_sec($op, $args = array(), $lang = '', $mime = 'rss') {
191
-	$a = $b = '';
192
-	foreach ($args as $val => $var) {
193
-		if ($var) {
194
-			if ($val <> 'statut') {
195
-				$a .= ':' . $val . '-' . $var;
196
-			}
197
-			$b .= $val . '=' . $var . '&';
198
-		}
199
-	}
200
-	$a = substr($a, 1);
201
-	$id = intval(@$GLOBALS['connect_id_auteur']);
202
-
203
-	return $b
204
-	. 'op='
205
-	. $op
206
-	. '&id='
207
-	. $id
208
-	. '&cle='
209
-	. afficher_low_sec($id, "$mime $op $a")
210
-	. (!$a ? '' : "&args=$a")
211
-	. (!$lang ? '' : "&lang=$lang");
191
+    $a = $b = '';
192
+    foreach ($args as $val => $var) {
193
+        if ($var) {
194
+            if ($val <> 'statut') {
195
+                $a .= ':' . $val . '-' . $var;
196
+            }
197
+            $b .= $val . '=' . $var . '&';
198
+        }
199
+    }
200
+    $a = substr($a, 1);
201
+    $id = intval(@$GLOBALS['connect_id_auteur']);
202
+
203
+    return $b
204
+    . 'op='
205
+    . $op
206
+    . '&id='
207
+    . $id
208
+    . '&cle='
209
+    . afficher_low_sec($id, "$mime $op $a")
210
+    . (!$a ? '' : "&args=$a")
211
+    . (!$lang ? '' : "&lang=$lang");
212 212
 }
213 213
 
214 214
 /**
@@ -224,7 +224,7 @@  discard block
 block discarded – undo
224 224
  *     Clé
225 225
  **/
226 226
 function afficher_low_sec($id_auteur, $action = '') {
227
-	return substr(md5($action . low_sec($id_auteur)), 0, 8);
227
+    return substr(md5($action . low_sec($id_auteur)), 0, 8);
228 228
 }
229 229
 
230 230
 /**
@@ -242,7 +242,7 @@  discard block
 block discarded – undo
242 242
  *     true si les clés corresponde, false sinon
243 243
  **/
244 244
 function verifier_low_sec($id_auteur, $cle, $action = '') {
245
-	return ($cle == afficher_low_sec($id_auteur, $action));
245
+    return ($cle == afficher_low_sec($id_auteur, $action));
246 246
 }
247 247
 
248 248
 /**
@@ -252,10 +252,10 @@  discard block
 block discarded – undo
252 252
  *     Identifiant de l'auteur
253 253
  **/
254 254
 function effacer_low_sec($id_auteur) {
255
-	if (!$id_auteur = intval($id_auteur)) {
256
-		return;
257
-	} // jamais trop prudent ;)
258
-	sql_updateq('spip_auteurs', array('low_sec' => ''), 'id_auteur = '.intval($id_auteur));
255
+    if (!$id_auteur = intval($id_auteur)) {
256
+        return;
257
+    } // jamais trop prudent ;)
258
+    sql_updateq('spip_auteurs', array('low_sec' => ''), 'id_auteur = '.intval($id_auteur));
259 259
 }
260 260
 
261 261
 /**
@@ -264,11 +264,11 @@  discard block
 block discarded – undo
264 264
  * @return void|bool
265 265
  */
266 266
 function initialiser_sel() {
267
-	if (CRYPT_MD5) {
268
-		$GLOBALS['htsalt'] = '$1$' . creer_pass_aleatoire();
269
-	} else {
270
-		return '';
271
-	}
267
+    if (CRYPT_MD5) {
268
+        $GLOBALS['htsalt'] = '$1$' . creer_pass_aleatoire();
269
+    } else {
270
+        return '';
271
+    }
272 272
 }
273 273
 
274 274
 /**
@@ -285,45 +285,45 @@  discard block
 block discarded – undo
285 285
  *     - void sinon.
286 286
  **/
287 287
 function ecrire_acces() {
288
-	$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
289
-	$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
290
-
291
-	// Cette variable de configuration peut etre posee par un plugin
292
-	// par exemple acces_restreint ;
293
-	// si .htaccess existe, outrepasser spip_meta
294
-	if ((!isset($GLOBALS['meta']['creer_htpasswd'])
295
-			or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
296
-		and !@file_exists($htaccess)
297
-	) {
298
-		spip_unlink($htpasswd);
299
-		spip_unlink($htpasswd . '-admin');
300
-		return;
301
-	}
302
-
303
-	# remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
304
-	# de devenir redacteur le cas echeant (auth http)... a nettoyer
305
-	// attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
306
-	// TODO: factoriser avec auth/spip qui fait deja ce job et generaliser le test spip_connect_ldap()
307
-
308
-	if (spip_connect_ldap()) {
309
-		return;
310
-	}
311
-	$p1 = ''; // login:htpass pour tous
312
-	$p2 = ''; // login:htpass pour les admins
313
-	$s = sql_select('login, htpass, statut', 'spip_auteurs', sql_in('statut', array('1comite', '0minirezo', 'nouveau')));
314
-	while ($t = sql_fetch($s)) {
315
-		if (strlen($t['login']) and strlen($t['htpass'])) {
316
-			$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
317
-			if ($t['statut'] == '0minirezo') {
318
-				$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
319
-			}
320
-		}
321
-	}
322
-	if ($p1) {
323
-		ecrire_fichier($htpasswd, $p1);
324
-		ecrire_fichier($htpasswd . '-admin', $p2);
325
-		spip_log("Ecriture de $htpasswd et $htpasswd-admin");
326
-	}
288
+    $htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
289
+    $htpasswd = _DIR_TMP . _AUTH_USER_FILE;
290
+
291
+    // Cette variable de configuration peut etre posee par un plugin
292
+    // par exemple acces_restreint ;
293
+    // si .htaccess existe, outrepasser spip_meta
294
+    if ((!isset($GLOBALS['meta']['creer_htpasswd'])
295
+            or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
296
+        and !@file_exists($htaccess)
297
+    ) {
298
+        spip_unlink($htpasswd);
299
+        spip_unlink($htpasswd . '-admin');
300
+        return;
301
+    }
302
+
303
+    # remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
304
+    # de devenir redacteur le cas echeant (auth http)... a nettoyer
305
+    // attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
306
+    // TODO: factoriser avec auth/spip qui fait deja ce job et generaliser le test spip_connect_ldap()
307
+
308
+    if (spip_connect_ldap()) {
309
+        return;
310
+    }
311
+    $p1 = ''; // login:htpass pour tous
312
+    $p2 = ''; // login:htpass pour les admins
313
+    $s = sql_select('login, htpass, statut', 'spip_auteurs', sql_in('statut', array('1comite', '0minirezo', 'nouveau')));
314
+    while ($t = sql_fetch($s)) {
315
+        if (strlen($t['login']) and strlen($t['htpass'])) {
316
+            $p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
317
+            if ($t['statut'] == '0minirezo') {
318
+                $p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
319
+            }
320
+        }
321
+    }
322
+    if ($p1) {
323
+        ecrire_fichier($htpasswd, $p1);
324
+        ecrire_fichier($htpasswd . '-admin', $p2);
325
+        spip_log("Ecriture de $htpasswd et $htpasswd-admin");
326
+    }
327 327
 }
328 328
 
329 329
 /**
@@ -339,9 +339,9 @@  discard block
 block discarded – undo
339 339
  *  La chaîne hachée si fonction crypt présente, rien sinon.
340 340
  */
341 341
 function generer_htpass($pass) {
342
-	if (function_exists('crypt')) {
343
-		return crypt($pass, $GLOBALS['htsalt']);
344
-	}
342
+    if (function_exists('crypt')) {
343
+        return crypt($pass, $GLOBALS['htsalt']);
344
+    }
345 345
 }
346 346
 
347 347
 /**
@@ -354,14 +354,14 @@  discard block
 block discarded – undo
354 354
  * @return boolean
355 355
  */
356 356
 function verifier_htaccess($rep, $force = false) {
357
-	$htaccess = rtrim($rep, '/') . '/' . _ACCESS_FILE_NAME;
358
-	if (((@file_exists($htaccess)) or defined('_TEST_DIRS')) and !$force) {
359
-		return true;
360
-	}
361
-
362
-	// directive deny compatible Apache 2.0+
363
-	$deny =
364
-		'# Deny all requests from Apache 2.4+.
357
+    $htaccess = rtrim($rep, '/') . '/' . _ACCESS_FILE_NAME;
358
+    if (((@file_exists($htaccess)) or defined('_TEST_DIRS')) and !$force) {
359
+        return true;
360
+    }
361
+
362
+    // directive deny compatible Apache 2.0+
363
+    $deny =
364
+        '# Deny all requests from Apache 2.4+.
365 365
 <IfModule mod_authz_core.c>
366 366
   Require all denied
367 367
 </IfModule>
@@ -370,32 +370,32 @@  discard block
 block discarded – undo
370 370
   Deny from all
371 371
 </IfModule>
372 372
 ';
373
-	// support des vieilles versions Apache 1.x mais uniquement si elles l'annoncent (pas en mode PROD)
374
-	if (function_exists('apache_get_version')
375
-		and $v = apache_get_version()
376
-		and strncmp($v, 'Apache/1.', 9) == 0) {
377
-		$deny = "deny from all\n";
378
-	}
379
-
380
-	if ($ht = @fopen($htaccess, 'w')) {
381
-		fputs($ht, $deny);
382
-		fclose($ht);
383
-		@chmod($htaccess, _SPIP_CHMOD & 0666);
384
-		$t = rtrim($rep, '/') . '/.ok';
385
-		if ($ht = @fopen($t, 'w')) {
386
-			@fclose($ht);
387
-			include_spip('inc/distant');
388
-			$t = substr($t, strlen(_DIR_RACINE));
389
-			$t = url_de_base() . $t;
390
-			$ht = recuperer_lapage($t, false, 'HEAD', 0);
391
-			// htaccess inoperant si on a recupere des entetes HTTP
392
-			// (ignorer la reussite si connexion par fopen)
393
-			$ht = !(isset($ht[0]) and $ht[0]);
394
-		}
395
-	}
396
-	spip_log("Creation de $htaccess " . ($ht ? ' reussie' : ' manquee'));
397
-
398
-	return $ht;
373
+    // support des vieilles versions Apache 1.x mais uniquement si elles l'annoncent (pas en mode PROD)
374
+    if (function_exists('apache_get_version')
375
+        and $v = apache_get_version()
376
+        and strncmp($v, 'Apache/1.', 9) == 0) {
377
+        $deny = "deny from all\n";
378
+    }
379
+
380
+    if ($ht = @fopen($htaccess, 'w')) {
381
+        fputs($ht, $deny);
382
+        fclose($ht);
383
+        @chmod($htaccess, _SPIP_CHMOD & 0666);
384
+        $t = rtrim($rep, '/') . '/.ok';
385
+        if ($ht = @fopen($t, 'w')) {
386
+            @fclose($ht);
387
+            include_spip('inc/distant');
388
+            $t = substr($t, strlen(_DIR_RACINE));
389
+            $t = url_de_base() . $t;
390
+            $ht = recuperer_lapage($t, false, 'HEAD', 0);
391
+            // htaccess inoperant si on a recupere des entetes HTTP
392
+            // (ignorer la reussite si connexion par fopen)
393
+            $ht = !(isset($ht[0]) and $ht[0]);
394
+        }
395
+    }
396
+    spip_log("Creation de $htaccess " . ($ht ? ' reussie' : ' manquee'));
397
+
398
+    return $ht;
399 399
 }
400 400
 
401 401
 /**
@@ -413,22 +413,22 @@  discard block
 block discarded – undo
413 413
  *         Valeur de la configuration `creer_htaccess`
414 414
  */
415 415
 function gerer_htaccess() {
416
-	// Cette variable de configuration peut etre posee par un plugin
417
-	// par exemple acces_restreint
418
-	$f = isset($GLOBALS['meta']['creer_htaccess']) and ($GLOBALS['meta']['creer_htaccess'] === 'oui');
419
-	$dirs = sql_allfetsel('extension', 'spip_types_documents');
420
-	$dirs[] = array('extension' => 'distant');
421
-	foreach ($dirs as $e) {
422
-		if (is_dir($dir = _DIR_IMG . $e['extension'])) {
423
-			if ($f) {
424
-				verifier_htaccess($dir);
425
-			} else {
426
-				spip_unlink($dir . '/' . _ACCESS_FILE_NAME);
427
-			}
428
-		}
429
-	}
430
-
431
-	return isset($GLOBALS['meta']['creer_htaccess']) ? $GLOBALS['meta']['creer_htaccess'] : '';
416
+    // Cette variable de configuration peut etre posee par un plugin
417
+    // par exemple acces_restreint
418
+    $f = isset($GLOBALS['meta']['creer_htaccess']) and ($GLOBALS['meta']['creer_htaccess'] === 'oui');
419
+    $dirs = sql_allfetsel('extension', 'spip_types_documents');
420
+    $dirs[] = array('extension' => 'distant');
421
+    foreach ($dirs as $e) {
422
+        if (is_dir($dir = _DIR_IMG . $e['extension'])) {
423
+            if ($f) {
424
+                verifier_htaccess($dir);
425
+            } else {
426
+                spip_unlink($dir . '/' . _ACCESS_FILE_NAME);
427
+            }
428
+        }
429
+    }
430
+
431
+    return isset($GLOBALS['meta']['creer_htaccess']) ? $GLOBALS['meta']['creer_htaccess'] : '';
432 432
 }
433 433
 
434 434
 initialiser_sel();
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
  *     Mot de passe
32 32
  **/
33 33
 function creer_pass_aleatoire($longueur = 8, $sel = '') {
34
-	$seed = (int)round(((float)microtime() + 1) * time());
34
+	$seed = (int) round(((float) microtime() + 1) * time());
35 35
 
36 36
 	mt_srand($seed);
37 37
 	srand($seed);
@@ -43,9 +43,9 @@  discard block
 block discarded – undo
43 43
 			if (!$s) {
44 44
 				$s = rand();
45 45
 			}
46
-			$s = substr(md5(uniqid($s) . $sel), 0, 16);
46
+			$s = substr(md5(uniqid($s).$sel), 0, 16);
47 47
 		}
48
-		$r = unpack('Cr', pack('H2', $s . $s));
48
+		$r = unpack('Cr', pack('H2', $s.$s));
49 49
 		$x = $r['r'] & 63;
50 50
 		if ($x < 10) {
51 51
 			$x = chr($x + 48);
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
 	static $seeded;
84 84
 
85 85
 	if (!$seeded) {
86
-		$seed = (int)round(((float)microtime() + 1) * time());
86
+		$seed = (int) round(((float) microtime() + 1) * time());
87 87
 		mt_srand($seed);
88 88
 		srand($seed);
89 89
 		$seeded = true;
@@ -192,9 +192,9 @@  discard block
 block discarded – undo
192 192
 	foreach ($args as $val => $var) {
193 193
 		if ($var) {
194 194
 			if ($val <> 'statut') {
195
-				$a .= ':' . $val . '-' . $var;
195
+				$a .= ':'.$val.'-'.$var;
196 196
 			}
197
-			$b .= $val . '=' . $var . '&';
197
+			$b .= $val.'='.$var.'&';
198 198
 		}
199 199
 	}
200 200
 	$a = substr($a, 1);
@@ -224,7 +224,7 @@  discard block
 block discarded – undo
224 224
  *     Clé
225 225
  **/
226 226
 function afficher_low_sec($id_auteur, $action = '') {
227
-	return substr(md5($action . low_sec($id_auteur)), 0, 8);
227
+	return substr(md5($action.low_sec($id_auteur)), 0, 8);
228 228
 }
229 229
 
230 230
 /**
@@ -265,7 +265,7 @@  discard block
 block discarded – undo
265 265
  */
266 266
 function initialiser_sel() {
267 267
 	if (CRYPT_MD5) {
268
-		$GLOBALS['htsalt'] = '$1$' . creer_pass_aleatoire();
268
+		$GLOBALS['htsalt'] = '$1$'.creer_pass_aleatoire();
269 269
 	} else {
270 270
 		return '';
271 271
 	}
@@ -285,8 +285,8 @@  discard block
 block discarded – undo
285 285
  *     - void sinon.
286 286
  **/
287 287
 function ecrire_acces() {
288
-	$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
289
-	$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
288
+	$htaccess = _DIR_RESTREINT._ACCESS_FILE_NAME;
289
+	$htpasswd = _DIR_TMP._AUTH_USER_FILE;
290 290
 
291 291
 	// Cette variable de configuration peut etre posee par un plugin
292 292
 	// par exemple acces_restreint ;
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 		and !@file_exists($htaccess)
297 297
 	) {
298 298
 		spip_unlink($htpasswd);
299
-		spip_unlink($htpasswd . '-admin');
299
+		spip_unlink($htpasswd.'-admin');
300 300
 		return;
301 301
 	}
302 302
 
@@ -313,15 +313,15 @@  discard block
 block discarded – undo
313 313
 	$s = sql_select('login, htpass, statut', 'spip_auteurs', sql_in('statut', array('1comite', '0minirezo', 'nouveau')));
314 314
 	while ($t = sql_fetch($s)) {
315 315
 		if (strlen($t['login']) and strlen($t['htpass'])) {
316
-			$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
316
+			$p1 .= $t['login'].':'.$t['htpass']."\n";
317 317
 			if ($t['statut'] == '0minirezo') {
318
-				$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
318
+				$p2 .= $t['login'].':'.$t['htpass']."\n";
319 319
 			}
320 320
 		}
321 321
 	}
322 322
 	if ($p1) {
323 323
 		ecrire_fichier($htpasswd, $p1);
324
-		ecrire_fichier($htpasswd . '-admin', $p2);
324
+		ecrire_fichier($htpasswd.'-admin', $p2);
325 325
 		spip_log("Ecriture de $htpasswd et $htpasswd-admin");
326 326
 	}
327 327
 }
@@ -354,7 +354,7 @@  discard block
 block discarded – undo
354 354
  * @return boolean
355 355
  */
356 356
 function verifier_htaccess($rep, $force = false) {
357
-	$htaccess = rtrim($rep, '/') . '/' . _ACCESS_FILE_NAME;
357
+	$htaccess = rtrim($rep, '/').'/'._ACCESS_FILE_NAME;
358 358
 	if (((@file_exists($htaccess)) or defined('_TEST_DIRS')) and !$force) {
359 359
 		return true;
360 360
 	}
@@ -381,19 +381,19 @@  discard block
 block discarded – undo
381 381
 		fputs($ht, $deny);
382 382
 		fclose($ht);
383 383
 		@chmod($htaccess, _SPIP_CHMOD & 0666);
384
-		$t = rtrim($rep, '/') . '/.ok';
384
+		$t = rtrim($rep, '/').'/.ok';
385 385
 		if ($ht = @fopen($t, 'w')) {
386 386
 			@fclose($ht);
387 387
 			include_spip('inc/distant');
388 388
 			$t = substr($t, strlen(_DIR_RACINE));
389
-			$t = url_de_base() . $t;
389
+			$t = url_de_base().$t;
390 390
 			$ht = recuperer_lapage($t, false, 'HEAD', 0);
391 391
 			// htaccess inoperant si on a recupere des entetes HTTP
392 392
 			// (ignorer la reussite si connexion par fopen)
393 393
 			$ht = !(isset($ht[0]) and $ht[0]);
394 394
 		}
395 395
 	}
396
-	spip_log("Creation de $htaccess " . ($ht ? ' reussie' : ' manquee'));
396
+	spip_log("Creation de $htaccess ".($ht ? ' reussie' : ' manquee'));
397 397
 
398 398
 	return $ht;
399 399
 }
@@ -419,11 +419,11 @@  discard block
 block discarded – undo
419 419
 	$dirs = sql_allfetsel('extension', 'spip_types_documents');
420 420
 	$dirs[] = array('extension' => 'distant');
421 421
 	foreach ($dirs as $e) {
422
-		if (is_dir($dir = _DIR_IMG . $e['extension'])) {
422
+		if (is_dir($dir = _DIR_IMG.$e['extension'])) {
423 423
 			if ($f) {
424 424
 				verifier_htaccess($dir);
425 425
 			} else {
426
-				spip_unlink($dir . '/' . _ACCESS_FILE_NAME);
426
+				spip_unlink($dir.'/'._ACCESS_FILE_NAME);
427 427
 			}
428 428
 		}
429 429
 	}
Please login to merge, or discard this patch.
ecrire/inc/actions.php 3 patches
Doc Comments   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -35,11 +35,11 @@  discard block
 block discarded – undo
35 35
  *     - -1 : renvoyer action, arg et hash sous forme de array()
36 36
  *     - true ou false : renvoyer une url, avec `&amp;` (false) ou `&` (true)
37 37
  *     - string : renvoyer un formulaire
38
- * @param string|int $att
38
+ * @param string $att
39 39
  *     - id_auteur pour lequel générer l'action en mode url ou array()
40 40
  *     - attributs du formulaire en mode formulaire
41 41
  * @param bool $public
42
- * @return array|string
42
+ * @return string
43 43
  *     URL, code HTML du formulaire ou tableau (action, arg, hash)
44 44
  */
45 45
 function generer_action_auteur($action, $arg, $redirect = '', $mode = false, $att = '', $public = false) {
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
  *     que l'on peut récupérer dans une fonction d'action par `_request('redirect')`
67 67
  * @param string $gra
68 68
  *     Arguments transmis au script exec de retour `arg1=yy&arg2=zz`
69
- * @param bool|string|int $mode
69
+ * @param boolean $mode
70 70
  *     - -1 : renvoyer action, arg et hash sous forme de array()
71 71
  *     - true ou false : renvoyer une url, avec `&amp;` (false) ou `&` (true)
72 72
  *     - string : renvoyer un formulaire
Please login to merge, or discard this patch.
Indentation   +25 added lines, -25 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
 /**
@@ -43,9 +43,9 @@  discard block
 block discarded – undo
43 43
  *     URL, code HTML du formulaire ou tableau (action, arg, hash)
44 44
  */
45 45
 function generer_action_auteur($action, $arg, $redirect = '', $mode = false, $att = '', $public = false) {
46
-	$securiser_action = charger_fonction('securiser_action', 'inc');
46
+    $securiser_action = charger_fonction('securiser_action', 'inc');
47 47
 
48
-	return $securiser_action($action, $arg, $redirect, $mode, $att, $public);
48
+    return $securiser_action($action, $arg, $redirect, $mode, $att, $public);
49 49
 }
50 50
 
51 51
 /**
@@ -78,9 +78,9 @@  discard block
 block discarded – undo
78 78
  *     Code HTML du formulaire
79 79
  */
80 80
 function redirige_action_auteur($action, $arg, $ret, $gra = '', $mode = false, $atts = '', $public = false) {
81
-	$r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) . generer_url_ecrire($ret, $gra, true, true);
81
+    $r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) . generer_url_ecrire($ret, $gra, true, true);
82 82
 
83
-	return generer_action_auteur($action, $arg, $r, $mode, $atts, $public);
83
+    return generer_action_auteur($action, $arg, $r, $mode, $atts, $public);
84 84
 }
85 85
 
86 86
 /**
@@ -105,9 +105,9 @@  discard block
 block discarded – undo
105 105
  *     URL, code HTML du formulaire ou tableau (action, arg, hash)
106 106
  */
107 107
 function redirige_action_post($action, $arg, $ret, $gra, $corps, $att = '') {
108
-	$r = _DIR_RESTREINT . generer_url_ecrire($ret, $gra, false, true);
108
+    $r = _DIR_RESTREINT . generer_url_ecrire($ret, $gra, false, true);
109 109
 
110
-	return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
110
+    return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
111 111
 }
112 112
 
113 113
 
@@ -122,25 +122,25 @@  discard block
 block discarded – undo
122 122
  *   passer "text/html" comme $content_type
123 123
  */
124 124
 function ajax_retour($corps, $content_type = null) {
125
-	$xml = false;
126
-	if (is_null($content_type) or $content_type === true) {
127
-		$xml = true;
128
-		$content_type = 'text/html';
129
-	} elseif (!$content_type or !is_string($content_type) or strpos($content_type, '/') === false) {
130
-		$content_type = 'text/html';
131
-	}
125
+    $xml = false;
126
+    if (is_null($content_type) or $content_type === true) {
127
+        $xml = true;
128
+        $content_type = 'text/html';
129
+    } elseif (!$content_type or !is_string($content_type) or strpos($content_type, '/') === false) {
130
+        $content_type = 'text/html';
131
+    }
132 132
 
133
-	$e = '';
134
-	if (isset($_COOKIE['spip_admin'])
135
-		and ((_request('var_mode') == 'debug') or !empty($GLOBALS['tableau_des_temps']))
136
-	) {
137
-		$e = erreur_squelette();
138
-	}
133
+    $e = '';
134
+    if (isset($_COOKIE['spip_admin'])
135
+        and ((_request('var_mode') == 'debug') or !empty($GLOBALS['tableau_des_temps']))
136
+    ) {
137
+        $e = erreur_squelette();
138
+    }
139 139
 
140
-	$c = $GLOBALS['meta']['charset'];
141
-	header('Content-Type: ' . $content_type . '; charset=' . $c);
142
-	$debut = (($xml and strlen(trim($corps))) ? '<' . "?xml version='1.0' encoding='" . $c . "'?" . ">\n" : '');
143
-	$fin = '';
140
+    $c = $GLOBALS['meta']['charset'];
141
+    header('Content-Type: ' . $content_type . '; charset=' . $c);
142
+    $debut = (($xml and strlen(trim($corps))) ? '<' . "?xml version='1.0' encoding='" . $c . "'?" . ">\n" : '');
143
+    $fin = '';
144 144
 
145
-	echo $debut, $corps, $fin, $e;
145
+    echo $debut, $corps, $fin, $e;
146 146
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
  *     Code HTML du formulaire
79 79
  */
80 80
 function redirige_action_auteur($action, $arg, $ret, $gra = '', $mode = false, $atts = '', $public = false) {
81
-	$r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) . generer_url_ecrire($ret, $gra, true, true);
81
+	$r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT).generer_url_ecrire($ret, $gra, true, true);
82 82
 
83 83
 	return generer_action_auteur($action, $arg, $r, $mode, $atts, $public);
84 84
 }
@@ -105,9 +105,9 @@  discard block
 block discarded – undo
105 105
  *     URL, code HTML du formulaire ou tableau (action, arg, hash)
106 106
  */
107 107
 function redirige_action_post($action, $arg, $ret, $gra, $corps, $att = '') {
108
-	$r = _DIR_RESTREINT . generer_url_ecrire($ret, $gra, false, true);
108
+	$r = _DIR_RESTREINT.generer_url_ecrire($ret, $gra, false, true);
109 109
 
110
-	return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
110
+	return generer_action_auteur($action, $arg, $r, $corps, $att." method='post'");
111 111
 }
112 112
 
113 113
 
@@ -138,8 +138,8 @@  discard block
 block discarded – undo
138 138
 	}
139 139
 
140 140
 	$c = $GLOBALS['meta']['charset'];
141
-	header('Content-Type: ' . $content_type . '; charset=' . $c);
142
-	$debut = (($xml and strlen(trim($corps))) ? '<' . "?xml version='1.0' encoding='" . $c . "'?" . ">\n" : '');
141
+	header('Content-Type: '.$content_type.'; charset='.$c);
142
+	$debut = (($xml and strlen(trim($corps))) ? '<'."?xml version='1.0' encoding='".$c."'?".">\n" : '');
143 143
 	$fin = '';
144 144
 
145 145
 	echo $debut, $corps, $fin, $e;
Please login to merge, or discard this patch.
ecrire/inc/autoriser.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1654,7 +1654,7 @@
 block discarded – undo
1654 1654
  *
1655 1655
  * @param string $objet
1656 1656
  * @param int $id_objet
1657
- * @param string|array $cond
1657
+ * @param string $cond
1658 1658
  *     Condition(s) supplémentaire(s) pour le where de la requête
1659 1659
  * @return int[]
1660 1660
  *     Identifiants d'auteurs
Please login to merge, or discard this patch.
Indentation   +617 added lines, -617 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Autorisations
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('base/abstract_sql');
@@ -38,83 +38,83 @@  discard block
 block discarded – undo
38 38
 
39 39
 
40 40
 if (!function_exists('autoriser')) {
41
-	/**
42
-	 * Autoriser une action
43
-	 *
44
-	 * Teste si une personne (par défaut le visiteur en cours) peut effectuer
45
-	 * une certaine action. Cette fonction est le point d'entrée de toutes
46
-	 * les autorisations.
47
-	 *
48
-	 * La fonction se charge d'appeler des fonctions d'autorisations spécifiques
49
-	 * aux actions demandées si elles existent. Elle cherche donc les fonctions
50
-	 * dans cet ordre :
51
-	 *
52
-	 * - autoriser_{type}_{faire}, sinon avec _dist
53
-	 * - autoriser_{type}, sinon avec _dist
54
-	 * - autoriser_{faire}, sinon avec _dist
55
-	 * - autoriser_{defaut}, sinon avec _dist
56
-	 *
57
-	 * Seul le premier argument est obligatoire.
58
-	 *
59
-	 * @note
60
-	 *     Le paramètre `$type` attend par défaut un type d'objet éditorial, et à ce titre,
61
-	 *     la valeur transmise se verra appliquer la fonction 'objet_type' pour uniformiser
62
-	 *     cette valeur.
63
-	 *
64
-	 *     Si ce paramètre n'a rien n'a voir avec un objet éditorial, par exemple
65
-	 *     'statistiques', un souligné avant le terme est ajouté afin d'indiquer
66
-	 *     explicitement à la fonction autoriser de ne pas transformer la chaîne en type
67
-	 *     d'objet. Cela donne pour cet exemple : `autoriser('detruire', '_statistiques')`
68
-	 *
69
-	 * @note
70
-	 *     Le paramètre `$type`, en plus de l'uniformisation en type d'objet, se voit retirer
71
-	 *     tous les soulignés du terme. Ainsi le type d'objet `livre_art` deviendra `livreart`
72
-	 *     et SPIP cherchera une fonction `autoriser_livreart_{faire}`. Ceci permet
73
-	 *     d'éviter une possible confusion si une fonction `autoriser_livre_art` existait :
74
-	 *     quel serait le type, quel serait l'action ?
75
-	 *
76
-	 *     Pour résumer, si le type d'objet éditorial a un souligné, tel que 'livre_art',
77
-	 *     la fonction d'autorisation correspondante ne l'aura pas.
78
-	 *     Exemple : `function autoriser_livreart_modifier_dist(...){...}`
79
-	 *
80
-	 * @api
81
-	 * @see autoriser_dist()
82
-	 *
83
-	 * @param string $faire
84
-	 *   une action ('modifier', 'publier'...)
85
-	 * @param string $type
86
-	 *   type d'objet ou nom de table ('article')
87
-	 * @param int $id
88
-	 *   id de l'objet sur lequel on veut agir
89
-	 * @param null|int|array $qui
90
-	 *   - si null on prend alors visiteur_session
91
-	 *   - un id_auteur (on regarde dans la base)
92
-	 *   - un tableau auteur complet, y compris [restreint]
93
-	 * @param null|array $opt
94
-	 *   options sous forme de tableau associatif
95
-	 * @return bool
96
-	 *   true si la personne peut effectuer l'action
97
-	 */
98
-	function autoriser($faire, $type = '', $id = 0, $qui = null, $opt = null) {
99
-		// Charger les fonctions d'autorisation supplementaires
100
-		static $pipe;
101
-		if (!isset($pipe)) {
102
-			$pipe = 1;
103
-			pipeline('autoriser');
104
-		}
105
-
106
-		$args = func_get_args();
107
-
108
-		return call_user_func_array('autoriser_dist', $args);
109
-	}
41
+    /**
42
+     * Autoriser une action
43
+     *
44
+     * Teste si une personne (par défaut le visiteur en cours) peut effectuer
45
+     * une certaine action. Cette fonction est le point d'entrée de toutes
46
+     * les autorisations.
47
+     *
48
+     * La fonction se charge d'appeler des fonctions d'autorisations spécifiques
49
+     * aux actions demandées si elles existent. Elle cherche donc les fonctions
50
+     * dans cet ordre :
51
+     *
52
+     * - autoriser_{type}_{faire}, sinon avec _dist
53
+     * - autoriser_{type}, sinon avec _dist
54
+     * - autoriser_{faire}, sinon avec _dist
55
+     * - autoriser_{defaut}, sinon avec _dist
56
+     *
57
+     * Seul le premier argument est obligatoire.
58
+     *
59
+     * @note
60
+     *     Le paramètre `$type` attend par défaut un type d'objet éditorial, et à ce titre,
61
+     *     la valeur transmise se verra appliquer la fonction 'objet_type' pour uniformiser
62
+     *     cette valeur.
63
+     *
64
+     *     Si ce paramètre n'a rien n'a voir avec un objet éditorial, par exemple
65
+     *     'statistiques', un souligné avant le terme est ajouté afin d'indiquer
66
+     *     explicitement à la fonction autoriser de ne pas transformer la chaîne en type
67
+     *     d'objet. Cela donne pour cet exemple : `autoriser('detruire', '_statistiques')`
68
+     *
69
+     * @note
70
+     *     Le paramètre `$type`, en plus de l'uniformisation en type d'objet, se voit retirer
71
+     *     tous les soulignés du terme. Ainsi le type d'objet `livre_art` deviendra `livreart`
72
+     *     et SPIP cherchera une fonction `autoriser_livreart_{faire}`. Ceci permet
73
+     *     d'éviter une possible confusion si une fonction `autoriser_livre_art` existait :
74
+     *     quel serait le type, quel serait l'action ?
75
+     *
76
+     *     Pour résumer, si le type d'objet éditorial a un souligné, tel que 'livre_art',
77
+     *     la fonction d'autorisation correspondante ne l'aura pas.
78
+     *     Exemple : `function autoriser_livreart_modifier_dist(...){...}`
79
+     *
80
+     * @api
81
+     * @see autoriser_dist()
82
+     *
83
+     * @param string $faire
84
+     *   une action ('modifier', 'publier'...)
85
+     * @param string $type
86
+     *   type d'objet ou nom de table ('article')
87
+     * @param int $id
88
+     *   id de l'objet sur lequel on veut agir
89
+     * @param null|int|array $qui
90
+     *   - si null on prend alors visiteur_session
91
+     *   - un id_auteur (on regarde dans la base)
92
+     *   - un tableau auteur complet, y compris [restreint]
93
+     * @param null|array $opt
94
+     *   options sous forme de tableau associatif
95
+     * @return bool
96
+     *   true si la personne peut effectuer l'action
97
+     */
98
+    function autoriser($faire, $type = '', $id = 0, $qui = null, $opt = null) {
99
+        // Charger les fonctions d'autorisation supplementaires
100
+        static $pipe;
101
+        if (!isset($pipe)) {
102
+            $pipe = 1;
103
+            pipeline('autoriser');
104
+        }
105
+
106
+        $args = func_get_args();
107
+
108
+        return call_user_func_array('autoriser_dist', $args);
109
+    }
110 110
 }
111 111
 
112 112
 
113 113
 // mes_fonctions peut aussi declarer des autorisations, il faut donc le charger
114 114
 // mais apres la fonction autoriser()
115 115
 if ($f = find_in_path('mes_fonctions.php')) {
116
-	global $dossier_squelettes;
117
-	include_once(_ROOT_CWD . $f);
116
+    global $dossier_squelettes;
117
+    include_once(_ROOT_CWD . $f);
118 118
 }
119 119
 
120 120
 
@@ -142,72 +142,72 @@  discard block
 block discarded – undo
142 142
  */
143 143
 function autoriser_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
144 144
 
145
-	// Qui ? visiteur_session ?
146
-	// si null ou '' (appel depuis #AUTORISER) on prend l'auteur loge
147
-	if ($qui === null or $qui === '') {
148
-		$qui = $GLOBALS['visiteur_session'] ? $GLOBALS['visiteur_session'] : array();
149
-		$qui = array_merge(array('statut' => '', 'id_auteur' => 0, 'webmestre' => 'non'), $qui);
150
-	} elseif (is_numeric($qui)) {
151
-		$qui = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $qui);
152
-	}
153
-
154
-	// Admins restreints, on construit ici (pas generique mais...)
155
-	// le tableau de toutes leurs rubriques (y compris les sous-rubriques)
156
-	if (_ADMINS_RESTREINTS and is_array($qui)) {
157
-		$qui['restreint'] = isset($qui['id_auteur']) ? liste_rubriques_auteur($qui['id_auteur']) : array();
158
-	}
159
-
160
-	spip_log(
161
-		"autoriser $faire $type $id (" . (isset($qui['nom']) ? $qui['nom'] : '') . ') ?',
162
-		'autoriser' . _LOG_DEBUG
163
-	);
164
-
165
-	// passer par objet_type pour avoir les alias
166
-	// et supprimer les _
167
-	$type = str_replace('_', '', strncmp($type, '_', 1) == 0 ? $type : objet_type($type, false));
168
-
169
-	// Si une exception a ete decretee plus haut dans le code, l'appliquer
170
-	if (isset($GLOBALS['autoriser_exception'][$faire][$type][$id])
171
-		and autoriser_exception($faire, $type, $id, 'verifier')
172
-	) {
173
-		spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
174
-		return true;
175
-	}
176
-
177
-	// Chercher une fonction d'autorisation
178
-	// Dans l'ordre on va chercher autoriser_type_faire[_dist], autoriser_type[_dist],
179
-	// autoriser_faire[_dist], autoriser_defaut[_dist]
180
-	$fonctions = $type
181
-		? array(
182
-			'autoriser_' . $type . '_' . $faire,
183
-			'autoriser_' . $type . '_' . $faire . '_dist',
184
-			'autoriser_' . $type,
185
-			'autoriser_' . $type . '_dist',
186
-			'autoriser_' . $faire,
187
-			'autoriser_' . $faire . '_dist',
188
-			'autoriser_defaut',
189
-			'autoriser_defaut_dist'
190
-		)
191
-		: array(
192
-			'autoriser_' . $faire,
193
-			'autoriser_' . $faire . '_dist',
194
-			'autoriser_defaut',
195
-			'autoriser_defaut_dist'
196
-		);
197
-
198
-	foreach ($fonctions as $f) {
199
-		if (function_exists($f)) {
200
-			$a = $f($faire, $type, $id, $qui, $opt);
201
-			break;
202
-		}
203
-	}
204
-
205
-	spip_log(
206
-		"$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
207
-		'autoriser' . _LOG_DEBUG
208
-	);
209
-
210
-	return $a;
145
+    // Qui ? visiteur_session ?
146
+    // si null ou '' (appel depuis #AUTORISER) on prend l'auteur loge
147
+    if ($qui === null or $qui === '') {
148
+        $qui = $GLOBALS['visiteur_session'] ? $GLOBALS['visiteur_session'] : array();
149
+        $qui = array_merge(array('statut' => '', 'id_auteur' => 0, 'webmestre' => 'non'), $qui);
150
+    } elseif (is_numeric($qui)) {
151
+        $qui = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $qui);
152
+    }
153
+
154
+    // Admins restreints, on construit ici (pas generique mais...)
155
+    // le tableau de toutes leurs rubriques (y compris les sous-rubriques)
156
+    if (_ADMINS_RESTREINTS and is_array($qui)) {
157
+        $qui['restreint'] = isset($qui['id_auteur']) ? liste_rubriques_auteur($qui['id_auteur']) : array();
158
+    }
159
+
160
+    spip_log(
161
+        "autoriser $faire $type $id (" . (isset($qui['nom']) ? $qui['nom'] : '') . ') ?',
162
+        'autoriser' . _LOG_DEBUG
163
+    );
164
+
165
+    // passer par objet_type pour avoir les alias
166
+    // et supprimer les _
167
+    $type = str_replace('_', '', strncmp($type, '_', 1) == 0 ? $type : objet_type($type, false));
168
+
169
+    // Si une exception a ete decretee plus haut dans le code, l'appliquer
170
+    if (isset($GLOBALS['autoriser_exception'][$faire][$type][$id])
171
+        and autoriser_exception($faire, $type, $id, 'verifier')
172
+    ) {
173
+        spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
174
+        return true;
175
+    }
176
+
177
+    // Chercher une fonction d'autorisation
178
+    // Dans l'ordre on va chercher autoriser_type_faire[_dist], autoriser_type[_dist],
179
+    // autoriser_faire[_dist], autoriser_defaut[_dist]
180
+    $fonctions = $type
181
+        ? array(
182
+            'autoriser_' . $type . '_' . $faire,
183
+            'autoriser_' . $type . '_' . $faire . '_dist',
184
+            'autoriser_' . $type,
185
+            'autoriser_' . $type . '_dist',
186
+            'autoriser_' . $faire,
187
+            'autoriser_' . $faire . '_dist',
188
+            'autoriser_defaut',
189
+            'autoriser_defaut_dist'
190
+        )
191
+        : array(
192
+            'autoriser_' . $faire,
193
+            'autoriser_' . $faire . '_dist',
194
+            'autoriser_defaut',
195
+            'autoriser_defaut_dist'
196
+        );
197
+
198
+    foreach ($fonctions as $f) {
199
+        if (function_exists($f)) {
200
+            $a = $f($faire, $type, $id, $qui, $opt);
201
+            break;
202
+        }
203
+    }
204
+
205
+    spip_log(
206
+        "$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
207
+        'autoriser' . _LOG_DEBUG
208
+    );
209
+
210
+    return $a;
211 211
 }
212 212
 
213 213
 // une globale pour aller au plus vite dans la fonction generique ci dessus
@@ -225,20 +225,20 @@  discard block
 block discarded – undo
225 225
  * @return bool
226 226
  */
227 227
 function autoriser_exception($faire, $type, $id, $autoriser = true) {
228
-	// une static innaccessible par url pour verifier que la globale est positionnee a bon escient
229
-	static $autorisation;
230
-	if ($autoriser === 'verifier') {
231
-		return isset($autorisation[$faire][$type][$id]);
232
-	}
233
-	if ($autoriser === true) {
234
-		$GLOBALS['autoriser_exception'][$faire][$type][$id] = $autorisation[$faire][$type][$id] = true;
235
-	}
236
-	if ($autoriser === false) {
237
-		unset($GLOBALS['autoriser_exception'][$faire][$type][$id]);
238
-		unset($autorisation[$faire][$type][$id]);
239
-	}
228
+    // une static innaccessible par url pour verifier que la globale est positionnee a bon escient
229
+    static $autorisation;
230
+    if ($autoriser === 'verifier') {
231
+        return isset($autorisation[$faire][$type][$id]);
232
+    }
233
+    if ($autoriser === true) {
234
+        $GLOBALS['autoriser_exception'][$faire][$type][$id] = $autorisation[$faire][$type][$id] = true;
235
+    }
236
+    if ($autoriser === false) {
237
+        unset($GLOBALS['autoriser_exception'][$faire][$type][$id]);
238
+        unset($autorisation[$faire][$type][$id]);
239
+    }
240 240
 
241
-	return false;
241
+    return false;
242 242
 }
243 243
 
244 244
 
@@ -255,9 +255,9 @@  discard block
 block discarded – undo
255 255
  * @return bool          true s'il a le droit, false sinon
256 256
  **/
257 257
 function autoriser_defaut_dist($faire, $type, $id, $qui, $opt) {
258
-	return
259
-		$qui['statut'] == '0minirezo'
260
-		and !$qui['restreint'];
258
+    return
259
+        $qui['statut'] == '0minirezo'
260
+        and !$qui['restreint'];
261 261
 }
262 262
 
263 263
 /**
@@ -273,10 +273,10 @@  discard block
 block discarded – undo
273 273
  * @return bool
274 274
  */
275 275
 function autoriser_loger_dist($faire, $type, $id, $qui, $opt) {
276
-	if ($qui['statut'] == '5poubelle') {
277
-		return false;
278
-	}
279
-	return true;
276
+    if ($qui['statut'] == '5poubelle') {
277
+        return false;
278
+    }
279
+    return true;
280 280
 }
281 281
 
282 282
 /**
@@ -290,7 +290,7 @@  discard block
 block discarded – undo
290 290
  * @return bool          true s'il a le droit, false sinon
291 291
  **/
292 292
 function autoriser_ecrire_dist($faire, $type, $id, $qui, $opt) {
293
-	return isset($qui['statut']) and in_array($qui['statut'], array('0minirezo', '1comite'));
293
+    return isset($qui['statut']) and in_array($qui['statut'], array('0minirezo', '1comite'));
294 294
 }
295 295
 
296 296
 /**
@@ -307,7 +307,7 @@  discard block
 block discarded – undo
307 307
  * @return bool          true s'il a le droit, false sinon
308 308
  **/
309 309
 function autoriser_creer_dist($faire, $type, $id, $qui, $opt) {
310
-	return in_array($qui['statut'], array('0minirezo', '1comite'));
310
+    return in_array($qui['statut'], array('0minirezo', '1comite'));
311 311
 }
312 312
 
313 313
 /**
@@ -325,18 +325,18 @@  discard block
 block discarded – undo
325 325
  **/
326 326
 function autoriser_previsualiser_dist($faire, $type, $id, $qui, $opt) {
327 327
 
328
-	// Le visiteur a-t-il un statut prevu par la config ?
329
-	if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
330
-		return test_previsualiser_objet_champ($type, $id, $qui, $opt);
331
-	}
328
+    // Le visiteur a-t-il un statut prevu par la config ?
329
+    if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
330
+        return test_previsualiser_objet_champ($type, $id, $qui, $opt);
331
+    }
332 332
 
333
-	// A-t-on un token de prévisualisation valable ?
334
-	include_spip('inc/securiser_action');
335
-	if (decrire_token_previsu()) {
336
-		return true;
337
-	}
333
+    // A-t-on un token de prévisualisation valable ?
334
+    include_spip('inc/securiser_action');
335
+    if (decrire_token_previsu()) {
336
+        return true;
337
+    }
338 338
 
339
-	return false;
339
+    return false;
340 340
 }
341 341
 
342 342
 /**
@@ -364,57 +364,57 @@  discard block
 block discarded – undo
364 364
  */
365 365
 function test_previsualiser_objet_champ($type = null, $id = 0, $qui = array(), $opt = array()) {
366 366
 
367
-	// si pas de type et statut fourni, c'est une autorisation generale => OK
368
-	if (!$type) {
369
-		return true;
370
-	}
371
-
372
-	include_spip('base/objets');
373
-	$infos = lister_tables_objets_sql(table_objet_sql($type));
374
-	if (isset($infos['statut'])) {
375
-		foreach ($infos['statut'] as $c) {
376
-			if (isset($c['publie'])) {
377
-				if (!isset($c['previsu'])) {
378
-					return false;
379
-				} // pas de previsu definie => NIET
380
-				$champ = $c['champ'];
381
-				if (!isset($opt[$champ])) {
382
-					return false;
383
-				} // pas de champ passe a la demande => NIET
384
-				$previsu = explode(',', $c['previsu']);
385
-				// regarder si ce statut est autorise pour l'auteur
386
-				if (in_array($opt[$champ] . '/auteur', $previsu)) {
387
-
388
-					// retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
389
-					// sinon l’auteur en session
390
-					include_spip('inc/securiser_action');
391
-					if ($desc = decrire_token_previsu()) {
392
-						$id_auteur = $desc['id_auteur'];
393
-					} elseif (isset($GLOBALS['visiteur_session']['id_auteur'])) {
394
-						$id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
395
-					} else {
396
-						$id_auteur = null;
397
-					}
398
-
399
-					if (!$id_auteur) {
400
-						return false;
401
-					} elseif(autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
402
-						// dans ce cas (admin en general), pas de filtrage sur ce statut
403
-					} elseif (!sql_countsel(
404
-						'spip_auteurs_liens',
405
-						'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
406
-					)) {
407
-						return false;
408
-					} // pas auteur de cet objet => NIET
409
-				} elseif (!in_array($opt[$champ], $previsu)) {
410
-					// le statut n'est pas dans ceux definis par la previsu => NIET
411
-					return false;
412
-				}
413
-			}
414
-		}
415
-	}
416
-
417
-	return true;
367
+    // si pas de type et statut fourni, c'est une autorisation generale => OK
368
+    if (!$type) {
369
+        return true;
370
+    }
371
+
372
+    include_spip('base/objets');
373
+    $infos = lister_tables_objets_sql(table_objet_sql($type));
374
+    if (isset($infos['statut'])) {
375
+        foreach ($infos['statut'] as $c) {
376
+            if (isset($c['publie'])) {
377
+                if (!isset($c['previsu'])) {
378
+                    return false;
379
+                } // pas de previsu definie => NIET
380
+                $champ = $c['champ'];
381
+                if (!isset($opt[$champ])) {
382
+                    return false;
383
+                } // pas de champ passe a la demande => NIET
384
+                $previsu = explode(',', $c['previsu']);
385
+                // regarder si ce statut est autorise pour l'auteur
386
+                if (in_array($opt[$champ] . '/auteur', $previsu)) {
387
+
388
+                    // retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
389
+                    // sinon l’auteur en session
390
+                    include_spip('inc/securiser_action');
391
+                    if ($desc = decrire_token_previsu()) {
392
+                        $id_auteur = $desc['id_auteur'];
393
+                    } elseif (isset($GLOBALS['visiteur_session']['id_auteur'])) {
394
+                        $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
395
+                    } else {
396
+                        $id_auteur = null;
397
+                    }
398
+
399
+                    if (!$id_auteur) {
400
+                        return false;
401
+                    } elseif(autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
402
+                        // dans ce cas (admin en general), pas de filtrage sur ce statut
403
+                    } elseif (!sql_countsel(
404
+                        'spip_auteurs_liens',
405
+                        'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
406
+                    )) {
407
+                        return false;
408
+                    } // pas auteur de cet objet => NIET
409
+                } elseif (!in_array($opt[$champ], $previsu)) {
410
+                    // le statut n'est pas dans ceux definis par la previsu => NIET
411
+                    return false;
412
+                }
413
+            }
414
+        }
415
+    }
416
+
417
+    return true;
418 418
 }
419 419
 
420 420
 /**
@@ -428,47 +428,47 @@  discard block
 block discarded – undo
428 428
  * @return bool          true s'il a le droit, false sinon
429 429
  **/
430 430
 function autoriser_changerlangue_dist($faire, $type, $id, $qui, $opt) {
431
-	$multi_objets = explode(',', lire_config('multi_objets'));
432
-	$gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
433
-	$table = table_objet_sql($type);
434
-	if (in_array($table, $multi_objets)
435
-		or in_array($table, $gerer_trad_objets)) { // affichage du formulaire si la configuration l'accepte
436
-		$multi_secteurs = lire_config('multi_secteurs');
437
-		$champs = objet_info($type, 'field');
438
-		if ($multi_secteurs == 'oui'
439
-			and array_key_exists('id_rubrique', $champs)) {
440
-			// multilinguisme par secteur et objet rattaché à une rubrique
441
-			$primary = id_table_objet($type);
442
-			if ($table != 'spip_rubriques') {
443
-				$id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
444
-			} else {
445
-				$id_rubrique = $id;
446
-			}
447
-			$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
448
-			if (!$id_secteur > 0) {
449
-				$id_secteur = $id_rubrique;
450
-			}
451
-			$langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
452
-			$langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
453
-			if ($langue_secteur != $langue_objet) {
454
-				// configuration incohérente, on laisse l'utilisateur corriger la situation
455
-				return true;
456
-			}
457
-			if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
458
-				return false;
459
-			} else {
460
-				$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
461
-				if ($id_parent != 0) {
462
-					// sous-rubriques : pas de choix de langue
463
-					return false;
464
-				}
465
-			}
466
-		}
467
-	} else {
468
-		return false;
469
-	}
470
-
471
-	return autoriser('modifier', $type, $id, $qui, $opt);
431
+    $multi_objets = explode(',', lire_config('multi_objets'));
432
+    $gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
433
+    $table = table_objet_sql($type);
434
+    if (in_array($table, $multi_objets)
435
+        or in_array($table, $gerer_trad_objets)) { // affichage du formulaire si la configuration l'accepte
436
+        $multi_secteurs = lire_config('multi_secteurs');
437
+        $champs = objet_info($type, 'field');
438
+        if ($multi_secteurs == 'oui'
439
+            and array_key_exists('id_rubrique', $champs)) {
440
+            // multilinguisme par secteur et objet rattaché à une rubrique
441
+            $primary = id_table_objet($type);
442
+            if ($table != 'spip_rubriques') {
443
+                $id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
444
+            } else {
445
+                $id_rubrique = $id;
446
+            }
447
+            $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
448
+            if (!$id_secteur > 0) {
449
+                $id_secteur = $id_rubrique;
450
+            }
451
+            $langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
452
+            $langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
453
+            if ($langue_secteur != $langue_objet) {
454
+                // configuration incohérente, on laisse l'utilisateur corriger la situation
455
+                return true;
456
+            }
457
+            if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
458
+                return false;
459
+            } else {
460
+                $id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
461
+                if ($id_parent != 0) {
462
+                    // sous-rubriques : pas de choix de langue
463
+                    return false;
464
+                }
465
+            }
466
+        }
467
+    } else {
468
+        return false;
469
+    }
470
+
471
+    return autoriser('modifier', $type, $id, $qui, $opt);
472 472
 }
473 473
 
474 474
 /**
@@ -482,7 +482,7 @@  discard block
 block discarded – undo
482 482
  * @return bool          true s'il a le droit, false sinon
483 483
  **/
484 484
 function autoriser_changertraduction_dist($faire, $type, $id, $qui, $opt) {
485
-	return autoriser('modifier', $type, $id, $qui, $opt);
485
+    return autoriser('modifier', $type, $id, $qui, $opt);
486 486
 }
487 487
 
488 488
 /**
@@ -496,41 +496,41 @@  discard block
 block discarded – undo
496 496
  * @return bool          true s'il a le droit, false sinon
497 497
  **/
498 498
 function autoriser_dater_dist($faire, $type, $id, $qui, $opt) {
499
-	$table = table_objet($type);
500
-	$trouver_table = charger_fonction('trouver_table', 'base');
501
-	$desc = $trouver_table($table);
502
-	if (!$desc) {
503
-		return false;
504
-	}
499
+    $table = table_objet($type);
500
+    $trouver_table = charger_fonction('trouver_table', 'base');
501
+    $desc = $trouver_table($table);
502
+    if (!$desc) {
503
+        return false;
504
+    }
505 505
 	
506
-	if (!isset($opt['statut'])) {
507
-		if (isset($desc['field']['statut'])) {
508
-			$statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
509
-		} else {
510
-			$statut = 'publie';
511
-		} // pas de statut => publie
512
-	} else {
513
-		$statut = $opt['statut'];
514
-	}
506
+    if (!isset($opt['statut'])) {
507
+        if (isset($desc['field']['statut'])) {
508
+            $statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
509
+        } else {
510
+            $statut = 'publie';
511
+        } // pas de statut => publie
512
+    } else {
513
+        $statut = $opt['statut'];
514
+    }
515 515
 	
516
-	// Liste des statuts publiés pour cet objet
517
-	if (isset($desc['statut'][0]['publie'])) {
518
-		$statuts_publies = explode(',', $desc['statut'][0]['publie']);
519
-	}
520
-	// Sinon en dur le statut "publie"
521
-	else {
522
-		$statuts_publies = array('publie');
523
-	}
516
+    // Liste des statuts publiés pour cet objet
517
+    if (isset($desc['statut'][0]['publie'])) {
518
+        $statuts_publies = explode(',', $desc['statut'][0]['publie']);
519
+    }
520
+    // Sinon en dur le statut "publie"
521
+    else {
522
+        $statuts_publies = array('publie');
523
+    }
524 524
 	
525
-	if (
526
-		in_array($statut, $statuts_publies)
527
-		// Ou cas particulier géré en dur ici pour les articles
528
-		or ($statut == 'prop' and $type == 'article' and $GLOBALS['meta']['post_dates'] == 'non')
529
-	) {
530
-		return autoriser('modifier', $type, $id);
531
-	}
525
+    if (
526
+        in_array($statut, $statuts_publies)
527
+        // Ou cas particulier géré en dur ici pour les articles
528
+        or ($statut == 'prop' and $type == 'article' and $GLOBALS['meta']['post_dates'] == 'non')
529
+    ) {
530
+        return autoriser('modifier', $type, $id);
531
+    }
532 532
 
533
-	return false;
533
+    return false;
534 534
 }
535 535
 
536 536
 /**
@@ -547,7 +547,7 @@  discard block
 block discarded – undo
547 547
  * @return bool          true s'il a le droit, false sinon
548 548
  **/
549 549
 function autoriser_instituer_dist($faire, $type, $id, $qui, $opt) {
550
-	return autoriser('modifier', $type, $id, $qui, $opt);
550
+    return autoriser('modifier', $type, $id, $qui, $opt);
551 551
 }
552 552
 
553 553
 /**
@@ -563,12 +563,12 @@  discard block
 block discarded – undo
563 563
  * @return bool          true s'il a le droit, false sinon
564 564
  **/
565 565
 function autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt) {
566
-	return
567
-		($qui['statut'] == '0minirezo')
568
-		and (
569
-			!$qui['restreint'] or !$id
570
-			or in_array($id, $qui['restreint'])
571
-		);
566
+    return
567
+        ($qui['statut'] == '0minirezo')
568
+        and (
569
+            !$qui['restreint'] or !$id
570
+            or in_array($id, $qui['restreint'])
571
+        );
572 572
 }
573 573
 
574 574
 /**
@@ -584,10 +584,10 @@  discard block
 block discarded – undo
584 584
  * @return bool          true s'il a le droit, false sinon
585 585
  **/
586 586
 function autoriser_rubrique_creer_dist($faire, $type, $id, $qui, $opt) {
587
-	return
588
-		((!$id and autoriser('defaut', null, null, $qui, $opt))
589
-			or $id and autoriser('creerrubriquedans', 'rubrique', $id, $qui, $opt)
590
-		);
587
+    return
588
+        ((!$id and autoriser('defaut', null, null, $qui, $opt))
589
+            or $id and autoriser('creerrubriquedans', 'rubrique', $id, $qui, $opt)
590
+        );
591 591
 }
592 592
 
593 593
 /**
@@ -603,10 +603,10 @@  discard block
 block discarded – undo
603 603
  * @return bool          true s'il a le droit, false sinon
604 604
  **/
605 605
 function autoriser_rubrique_creerrubriquedans_dist($faire, $type, $id, $qui, $opt) {
606
-	return
607
-		($id or ($qui['statut'] == '0minirezo' and !$qui['restreint']))
608
-		and autoriser('voir', 'rubrique', $id)
609
-		and autoriser('publierdans', 'rubrique', $id);
606
+    return
607
+        ($id or ($qui['statut'] == '0minirezo' and !$qui['restreint']))
608
+        and autoriser('voir', 'rubrique', $id)
609
+        and autoriser('publierdans', 'rubrique', $id);
610 610
 }
611 611
 
612 612
 /**
@@ -622,10 +622,10 @@  discard block
 block discarded – undo
622 622
  * @return bool          true s'il a le droit, false sinon
623 623
  **/
624 624
 function autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt) {
625
-	return
626
-		$id
627
-		and autoriser('voir', 'rubrique', $id)
628
-		and autoriser('creer', 'article');
625
+    return
626
+        $id
627
+        and autoriser('voir', 'rubrique', $id)
628
+        and autoriser('creer', 'article');
629 629
 }
630 630
 
631 631
 
@@ -642,8 +642,8 @@  discard block
 block discarded – undo
642 642
  * @return bool          true s'il a le droit, false sinon
643 643
  **/
644 644
 function autoriser_rubrique_modifier_dist($faire, $type, $id, $qui, $opt) {
645
-	return
646
-		autoriser('publierdans', 'rubrique', $id, $qui, $opt);
645
+    return
646
+        autoriser('publierdans', 'rubrique', $id, $qui, $opt);
647 647
 }
648 648
 
649 649
 /**
@@ -659,29 +659,29 @@  discard block
 block discarded – undo
659 659
  * @return bool          true s'il a le droit, false sinon
660 660
  **/
661 661
 function autoriser_rubrique_supprimer_dist($faire, $type, $id, $qui, $opt) {
662
-	if (!$id = intval($id)) {
663
-		return false;
664
-	}
662
+    if (!$id = intval($id)) {
663
+        return false;
664
+    }
665 665
 
666
-	if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
667
-		return false;
668
-	}
666
+    if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
667
+        return false;
668
+    }
669 669
 
670
-	if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
671
-		return false;
672
-	}
670
+    if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
671
+        return false;
672
+    }
673 673
 
674
-	$compte = pipeline(
675
-		'objet_compte_enfants',
676
-		array('args' => array('objet' => 'rubrique', 'id_objet' => $id), 'data' => array())
677
-	);
678
-	foreach ($compte as $objet => $n) {
679
-		if ($n) {
680
-			return false;
681
-		}
682
-	}
674
+    $compte = pipeline(
675
+        'objet_compte_enfants',
676
+        array('args' => array('objet' => 'rubrique', 'id_objet' => $id), 'data' => array())
677
+    );
678
+    foreach ($compte as $objet => $n) {
679
+        if ($n) {
680
+            return false;
681
+        }
682
+    }
683 683
 
684
-	return autoriser('modifier', 'rubrique', $id);
684
+    return autoriser('modifier', 'rubrique', $id);
685 685
 }
686 686
 
687 687
 
@@ -699,20 +699,20 @@  discard block
 block discarded – undo
699 699
  * @return bool          true s'il a le droit, false sinon
700 700
  **/
701 701
 function autoriser_article_modifier_dist($faire, $type, $id, $qui, $opt) {
702
-	$r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
702
+    $r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
703 703
 
704
-	return
705
-		$r
706
-		and
707
-		(
708
-			autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
709
-			or (
710
-				(!isset($opt['statut']) or $opt['statut'] !== 'publie')
711
-				and in_array($qui['statut'], array('0minirezo', '1comite'))
712
-				and in_array($r['statut'], array('prop', 'prepa', 'poubelle'))
713
-				and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
714
-			)
715
-		);
704
+    return
705
+        $r
706
+        and
707
+        (
708
+            autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
709
+            or (
710
+                (!isset($opt['statut']) or $opt['statut'] !== 'publie')
711
+                and in_array($qui['statut'], array('0minirezo', '1comite'))
712
+                and in_array($r['statut'], array('prop', 'prepa', 'poubelle'))
713
+                and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
714
+            )
715
+        );
716 716
 }
717 717
 
718 718
 /**
@@ -728,7 +728,7 @@  discard block
 block discarded – undo
728 728
  * @return bool          true s'il a le droit, false sinon
729 729
  **/
730 730
 function autoriser_article_creer_dist($faire, $type, $id, $qui, $opt) {
731
-	return (sql_countsel('spip_rubriques') > 0 and in_array($qui['statut'], array('0minirezo', '1comite')));
731
+    return (sql_countsel('spip_rubriques') > 0 and in_array($qui['statut'], array('0minirezo', '1comite')));
732 732
 }
733 733
 
734 734
 /**
@@ -748,28 +748,28 @@  discard block
 block discarded – undo
748 748
  * @return bool          true s'il a le droit, false sinon
749 749
  */
750 750
 function autoriser_article_voir_dist($faire, $type, $id, $qui, $opt) {
751
-	if ($qui['statut'] == '0minirezo') {
752
-		return true;
753
-	}
754
-	// cas des articles : depend du statut de l'article et de l'auteur
755
-	if (isset($opt['statut'])) {
756
-		$statut = $opt['statut'];
757
-	} else {
758
-		if (!$id) {
759
-			return false;
760
-		}
761
-		$statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
762
-	}
763
-
764
-	return
765
-		// si on est pas auteur de l'article,
766
-		// seuls les propose et publies sont visibles
767
-		in_array($statut, array('prop', 'publie'))
768
-		// sinon si on est auteur, on a le droit de le voir, evidemment !
769
-		or
770
-		($id
771
-			and $qui['id_auteur']
772
-			and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
751
+    if ($qui['statut'] == '0minirezo') {
752
+        return true;
753
+    }
754
+    // cas des articles : depend du statut de l'article et de l'auteur
755
+    if (isset($opt['statut'])) {
756
+        $statut = $opt['statut'];
757
+    } else {
758
+        if (!$id) {
759
+            return false;
760
+        }
761
+        $statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
762
+    }
763
+
764
+    return
765
+        // si on est pas auteur de l'article,
766
+        // seuls les propose et publies sont visibles
767
+        in_array($statut, array('prop', 'publie'))
768
+        // sinon si on est auteur, on a le droit de le voir, evidemment !
769
+        or
770
+        ($id
771
+            and $qui['id_auteur']
772
+            and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
773 773
 }
774 774
 
775 775
 
@@ -786,22 +786,22 @@  discard block
 block discarded – undo
786 786
  * @return bool          true s'il a le droit, false sinon
787 787
  **/
788 788
 function autoriser_voir_dist($faire, $type, $id, $qui, $opt) {
789
-	# securite, mais on aurait pas du arriver ici !
790
-	if (function_exists($f = 'autoriser_' . $type . '_voir')
791
-		or function_exists($f = 'autoriser_' . $type . '_voir_dist')) {
792
-		return $f($faire, $type, $id, $qui, $opt);
793
-	}
789
+    # securite, mais on aurait pas du arriver ici !
790
+    if (function_exists($f = 'autoriser_' . $type . '_voir')
791
+        or function_exists($f = 'autoriser_' . $type . '_voir_dist')) {
792
+        return $f($faire, $type, $id, $qui, $opt);
793
+    }
794 794
 
795
-	if ($qui['statut'] == '0minirezo') {
796
-		return true;
797
-	}
798
-	// admins et redacteurs peuvent voir un auteur
799
-	if ($type == 'auteur') {
800
-		return in_array($qui['statut'], array('0minirezo', '1comite'));
801
-	}
802
-	// sinon par defaut tout est visible
803
-	// sauf cas particuliers traites separemment (ie article)
804
-	return true;
795
+    if ($qui['statut'] == '0minirezo') {
796
+        return true;
797
+    }
798
+    // admins et redacteurs peuvent voir un auteur
799
+    if ($type == 'auteur') {
800
+        return in_array($qui['statut'], array('0minirezo', '1comite'));
801
+    }
802
+    // sinon par defaut tout est visible
803
+    // sauf cas particuliers traites separemment (ie article)
804
+    return true;
805 805
 }
806 806
 
807 807
 
@@ -822,12 +822,12 @@  discard block
 block discarded – undo
822 822
  * @return bool          true s'il a le droit, false sinon
823 823
  **/
824 824
 function autoriser_webmestre_dist($faire, $type, $id, $qui, $opt) {
825
-	return
826
-		(defined('_ID_WEBMESTRES') ?
827
-			in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES))
828
-			: $qui['webmestre'] == 'oui')
829
-		and $qui['statut'] == '0minirezo'
830
-		and !$qui['restreint'];
825
+    return
826
+        (defined('_ID_WEBMESTRES') ?
827
+            in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES))
828
+            : $qui['webmestre'] == 'oui')
829
+        and $qui['statut'] == '0minirezo'
830
+        and !$qui['restreint'];
831 831
 }
832 832
 
833 833
 /**
@@ -843,9 +843,9 @@  discard block
 block discarded – undo
843 843
  * @return bool          true s'il a le droit, false sinon
844 844
  **/
845 845
 function autoriser_configurer_dist($faire, $type, $id, $qui, $opt) {
846
-	return
847
-		$qui['statut'] == '0minirezo'
848
-		and !$qui['restreint'];
846
+    return
847
+        $qui['statut'] == '0minirezo'
848
+        and !$qui['restreint'];
849 849
 }
850 850
 
851 851
 /**
@@ -861,8 +861,8 @@  discard block
 block discarded – undo
861 861
  * @return bool          true s'il a le droit, false sinon
862 862
  **/
863 863
 function autoriser_sauvegarder_dist($faire, $type, $id, $qui, $opt) {
864
-	return
865
-		$qui['statut'] == '0minirezo';
864
+    return
865
+        $qui['statut'] == '0minirezo';
866 866
 }
867 867
 
868 868
 /**
@@ -878,8 +878,8 @@  discard block
 block discarded – undo
878 878
  * @return bool          true s'il a le droit, false sinon
879 879
  **/
880 880
 function autoriser_detruire_dist($faire, $type, $id, $qui, $opt) {
881
-	return
882
-		autoriser('webmestre', null, null, $qui, $opt);
881
+    return
882
+        autoriser('webmestre', null, null, $qui, $opt);
883 883
 }
884 884
 
885 885
 /**
@@ -896,20 +896,20 @@  discard block
 block discarded – undo
896 896
  * @return bool          true s'il a le droit, false sinon
897 897
  **/
898 898
 function autoriser_auteur_previsualiser_dist($faire, $type, $id, $qui, $opt) {
899
-	// les admins peuvent "previsualiser" une page auteur
900
-	if ($qui['statut'] == '0minirezo'
901
-		and !$qui['restreint']
902
-	) {
903
-		return true;
904
-	}
905
-	// "Voir en ligne" si l'auteur a un article publie
906
-	$n = sql_fetsel(
907
-		'A.id_article',
908
-		'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
909
-		"A.statut='publie' AND L.id_auteur=" . sql_quote($id)
910
-	);
899
+    // les admins peuvent "previsualiser" une page auteur
900
+    if ($qui['statut'] == '0minirezo'
901
+        and !$qui['restreint']
902
+    ) {
903
+        return true;
904
+    }
905
+    // "Voir en ligne" si l'auteur a un article publie
906
+    $n = sql_fetsel(
907
+        'A.id_article',
908
+        'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
909
+        "A.statut='publie' AND L.id_auteur=" . sql_quote($id)
910
+    );
911 911
 
912
-	return $n ? true : false;
912
+    return $n ? true : false;
913 913
 }
914 914
 
915 915
 
@@ -937,7 +937,7 @@  discard block
 block discarded – undo
937 937
  * @return bool          true s'il a le droit, false sinon
938 938
  **/
939 939
 function autoriser_auteur_creer_dist($faire, $type, $id, $qui, $opt) {
940
-	return ($qui['statut'] == '0minirezo');
940
+    return ($qui['statut'] == '0minirezo');
941 941
 }
942 942
 
943 943
 
@@ -957,78 +957,78 @@  discard block
 block discarded – undo
957 957
  **/
958 958
 function autoriser_auteur_modifier_dist($faire, $type, $id, $qui, $opt) {
959 959
 
960
-	// Ni admin ni redacteur => non
961
-	if (!in_array($qui['statut'], array('0minirezo', '1comite'))) {
962
-		return false;
963
-	}
964
-
965
-	// Un redacteur peut modifier ses propres donnees mais ni son login/email
966
-	// ni son statut (qui sont le cas echeant passes comme option)
967
-	if ($qui['statut'] == '1comite') {
968
-		if (!empty($opt['webmestre'])) {
969
-			return false;
970
-		} elseif (
971
-			!empty($opt['statut'])
972
-			or !empty($opt['restreintes'])
973
-			or !empty($opt['email'])
974
-		) {
975
-			return false;
976
-		} elseif ($id == $qui['id_auteur']) {
977
-			return true;
978
-		} else {
979
-			return false;
980
-		}
981
-	}
982
-
983
-	// Un admin restreint peut modifier/creer un auteur non-admin mais il
984
-	// n'a le droit ni de le promouvoir admin, ni de changer les rubriques
985
-	if ($qui['restreint']) {
986
-		if (isset($opt['webmestre']) and $opt['webmestre']) {
987
-			return false;
988
-		} elseif ((isset($opt['statut']) and ($opt['statut'] == '0minirezo'))
989
-			or (isset($opt['restreintes']) and $opt['restreintes'])
990
-		) {
991
-			return false;
992
-		} else {
993
-			if ($id == $qui['id_auteur']) {
994
-				if (isset($opt['statut']) and $opt['statut']) {
995
-					return false;
996
-				} else {
997
-					return true;
998
-				}
999
-			} else {
1000
-				if ($id_auteur = intval($id)) {
1001
-					$t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur");
1002
-					if ($t and $t['statut'] != '0minirezo') {
1003
-						return true;
1004
-					} else {
1005
-						return false;
1006
-					}
1007
-				} // id = 0 => creation
1008
-				else {
1009
-					return true;
1010
-				}
1011
-			}
1012
-		}
1013
-	}
1014
-
1015
-	// Un admin complet fait ce qu'il veut
1016
-	// sauf se degrader
1017
-	if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
1018
-		return false;
1019
-	} elseif (isset($opt['webmestre'])
1020
-				and $opt['webmestre']
1021
-				and (defined('_ID_WEBMESTRES')
1022
-				or !autoriser('webmestre'))) {
1023
-		// et toucher au statut webmestre si il ne l'est pas lui meme
1024
-		// ou si les webmestres sont fixes par constante (securite)
1025
-		return false;
1026
-	} // et modifier un webmestre si il ne l'est pas lui meme
1027
-	elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
1028
-		return false;
1029
-	} else {
1030
-		return true;
1031
-	}
960
+    // Ni admin ni redacteur => non
961
+    if (!in_array($qui['statut'], array('0minirezo', '1comite'))) {
962
+        return false;
963
+    }
964
+
965
+    // Un redacteur peut modifier ses propres donnees mais ni son login/email
966
+    // ni son statut (qui sont le cas echeant passes comme option)
967
+    if ($qui['statut'] == '1comite') {
968
+        if (!empty($opt['webmestre'])) {
969
+            return false;
970
+        } elseif (
971
+            !empty($opt['statut'])
972
+            or !empty($opt['restreintes'])
973
+            or !empty($opt['email'])
974
+        ) {
975
+            return false;
976
+        } elseif ($id == $qui['id_auteur']) {
977
+            return true;
978
+        } else {
979
+            return false;
980
+        }
981
+    }
982
+
983
+    // Un admin restreint peut modifier/creer un auteur non-admin mais il
984
+    // n'a le droit ni de le promouvoir admin, ni de changer les rubriques
985
+    if ($qui['restreint']) {
986
+        if (isset($opt['webmestre']) and $opt['webmestre']) {
987
+            return false;
988
+        } elseif ((isset($opt['statut']) and ($opt['statut'] == '0minirezo'))
989
+            or (isset($opt['restreintes']) and $opt['restreintes'])
990
+        ) {
991
+            return false;
992
+        } else {
993
+            if ($id == $qui['id_auteur']) {
994
+                if (isset($opt['statut']) and $opt['statut']) {
995
+                    return false;
996
+                } else {
997
+                    return true;
998
+                }
999
+            } else {
1000
+                if ($id_auteur = intval($id)) {
1001
+                    $t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur");
1002
+                    if ($t and $t['statut'] != '0minirezo') {
1003
+                        return true;
1004
+                    } else {
1005
+                        return false;
1006
+                    }
1007
+                } // id = 0 => creation
1008
+                else {
1009
+                    return true;
1010
+                }
1011
+            }
1012
+        }
1013
+    }
1014
+
1015
+    // Un admin complet fait ce qu'il veut
1016
+    // sauf se degrader
1017
+    if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
1018
+        return false;
1019
+    } elseif (isset($opt['webmestre'])
1020
+                and $opt['webmestre']
1021
+                and (defined('_ID_WEBMESTRES')
1022
+                or !autoriser('webmestre'))) {
1023
+        // et toucher au statut webmestre si il ne l'est pas lui meme
1024
+        // ou si les webmestres sont fixes par constante (securite)
1025
+        return false;
1026
+    } // et modifier un webmestre si il ne l'est pas lui meme
1027
+    elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
1028
+        return false;
1029
+    } else {
1030
+        return true;
1031
+    }
1032 1032
 }
1033 1033
 
1034 1034
 
@@ -1045,7 +1045,7 @@  discard block
 block discarded – undo
1045 1045
  * @return bool          true s'il a le droit, false sinon
1046 1046
  **/
1047 1047
 function autoriser_associerauteurs_dist($faire, $type, $id, $qui, $opt) {
1048
-	return autoriser('modifier', $type, $id, $qui, $opt);
1048
+    return autoriser('modifier', $type, $id, $qui, $opt);
1049 1049
 }
1050 1050
 
1051 1051
 
@@ -1062,7 +1062,7 @@  discard block
 block discarded – undo
1062 1062
  * @return bool          true s'il a le droit, false sinon
1063 1063
  **/
1064 1064
 function autoriser_chargerftp_dist($faire, $type, $id, $qui, $opt) {
1065
-	return $qui['statut'] == '0minirezo';
1065
+    return $qui['statut'] == '0minirezo';
1066 1066
 }
1067 1067
 
1068 1068
 /**
@@ -1078,7 +1078,7 @@  discard block
 block discarded – undo
1078 1078
  * @return bool          true s'il a le droit, false sinon
1079 1079
  **/
1080 1080
 function autoriser_debug_dist($faire, $type, $id, $qui, $opt) {
1081
-	return $qui['statut'] == '0minirezo';
1081
+    return $qui['statut'] == '0minirezo';
1082 1082
 }
1083 1083
 
1084 1084
 /**
@@ -1095,52 +1095,52 @@  discard block
 block discarded – undo
1095 1095
  * @return array          Liste des rubriques
1096 1096
  **/
1097 1097
 function liste_rubriques_auteur($id_auteur, $raz = false) {
1098
-	static $restreint = array();
1099
-
1100
-	if (!$id_auteur = intval($id_auteur)) {
1101
-		return array();
1102
-	}
1103
-	if ($raz) {
1104
-		unset($restreint[$id_auteur]);
1105
-	} elseif (isset($restreint[$id_auteur])) {
1106
-		return $restreint[$id_auteur];
1107
-	}
1108
-
1109
-	$rubriques = array();
1110
-	if ((!isset($GLOBALS['meta']['version_installee'])
1111
-		or $GLOBALS['meta']['version_installee'] > 16428)
1112
-		and $r = sql_allfetsel(
1113
-			'id_objet',
1114
-			'spip_auteurs_liens',
1115
-			'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1116
-		)
1117
-		and count($r)
1118
-	) {
1119
-		$r = array_column($r, 'id_objet');
1120
-
1121
-		// recuperer toute la branche, au format chaine enumeration
1122
-		include_spip('inc/rubriques');
1123
-		$r = calcul_branche_in($r);
1124
-		$r = explode(',', $r);
1125
-
1126
-		// passer les rubriques en index, elimine les doublons
1127
-		$r = array_flip($r);
1128
-		// recuperer les index seuls
1129
-		$r = array_keys($r);
1130
-		// combiner pour avoir un tableau id_rubrique=>id_rubrique
1131
-		// est-ce vraiment utile ? (on preserve la forme donnee par le code precedent)
1132
-		$rubriques = array_combine($r, $r);
1133
-	}
1134
-
1135
-	// Affecter l'auteur session le cas echeant
1136
-	if (isset($GLOBALS['visiteur_session']['id_auteur'])
1137
-		and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
1138
-	) {
1139
-		$GLOBALS['visiteur_session']['restreint'] = $rubriques;
1140
-	}
1141
-
1142
-
1143
-	return $restreint[$id_auteur] = $rubriques;
1098
+    static $restreint = array();
1099
+
1100
+    if (!$id_auteur = intval($id_auteur)) {
1101
+        return array();
1102
+    }
1103
+    if ($raz) {
1104
+        unset($restreint[$id_auteur]);
1105
+    } elseif (isset($restreint[$id_auteur])) {
1106
+        return $restreint[$id_auteur];
1107
+    }
1108
+
1109
+    $rubriques = array();
1110
+    if ((!isset($GLOBALS['meta']['version_installee'])
1111
+        or $GLOBALS['meta']['version_installee'] > 16428)
1112
+        and $r = sql_allfetsel(
1113
+            'id_objet',
1114
+            'spip_auteurs_liens',
1115
+            'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1116
+        )
1117
+        and count($r)
1118
+    ) {
1119
+        $r = array_column($r, 'id_objet');
1120
+
1121
+        // recuperer toute la branche, au format chaine enumeration
1122
+        include_spip('inc/rubriques');
1123
+        $r = calcul_branche_in($r);
1124
+        $r = explode(',', $r);
1125
+
1126
+        // passer les rubriques en index, elimine les doublons
1127
+        $r = array_flip($r);
1128
+        // recuperer les index seuls
1129
+        $r = array_keys($r);
1130
+        // combiner pour avoir un tableau id_rubrique=>id_rubrique
1131
+        // est-ce vraiment utile ? (on preserve la forme donnee par le code precedent)
1132
+        $rubriques = array_combine($r, $r);
1133
+    }
1134
+
1135
+    // Affecter l'auteur session le cas echeant
1136
+    if (isset($GLOBALS['visiteur_session']['id_auteur'])
1137
+        and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
1138
+    ) {
1139
+        $GLOBALS['visiteur_session']['restreint'] = $rubriques;
1140
+    }
1141
+
1142
+
1143
+    return $restreint[$id_auteur] = $rubriques;
1144 1144
 }
1145 1145
 
1146 1146
 /**
@@ -1156,7 +1156,7 @@  discard block
 block discarded – undo
1156 1156
  * @return bool          true s'il a le droit, false sinon
1157 1157
  **/
1158 1158
 function autoriser_rubrique_previsualiser_dist($faire, $type, $id, $qui, $opt) {
1159
-	return autoriser('previsualiser');
1159
+    return autoriser('previsualiser');
1160 1160
 }
1161 1161
 
1162 1162
 /**
@@ -1172,7 +1172,7 @@  discard block
 block discarded – undo
1172 1172
  * @return bool          true s'il a le droit, false sinon
1173 1173
  **/
1174 1174
 function autoriser_rubrique_iconifier_dist($faire, $type, $id, $qui, $opt) {
1175
-	return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
1175
+    return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
1176 1176
 }
1177 1177
 
1178 1178
 /**
@@ -1188,8 +1188,8 @@  discard block
 block discarded – undo
1188 1188
  * @return bool          true s'il a le droit, false sinon
1189 1189
  **/
1190 1190
 function autoriser_auteur_iconifier_dist($faire, $type, $id, $qui, $opt) {
1191
-	return (($id == $qui['id_auteur']) or
1192
-		(($qui['statut'] == '0minirezo') and !$qui['restreint']));
1191
+    return (($id == $qui['id_auteur']) or
1192
+        (($qui['statut'] == '0minirezo') and !$qui['restreint']));
1193 1193
 }
1194 1194
 
1195 1195
 /**
@@ -1205,8 +1205,8 @@  discard block
 block discarded – undo
1205 1205
  * @return bool          true s'il a le droit, false sinon
1206 1206
  **/
1207 1207
 function autoriser_iconifier_dist($faire, $type, $id, $qui, $opt) {
1208
-	// par defaut, on a le droit d'iconifier si on a le droit de modifier
1209
-	return autoriser('modifier', $type, $id, $qui, $opt);
1208
+    // par defaut, on a le droit d'iconifier si on a le droit de modifier
1209
+    return autoriser('modifier', $type, $id, $qui, $opt);
1210 1210
 }
1211 1211
 
1212 1212
 
@@ -1224,7 +1224,7 @@  discard block
 block discarded – undo
1224 1224
  * @return bool          true
1225 1225
  **/
1226 1226
 function autoriser_ok_dist($faire, $type, $id, $qui, $opt) {
1227
-	return true;
1227
+    return true;
1228 1228
 }
1229 1229
 
1230 1230
 /**
@@ -1241,7 +1241,7 @@  discard block
 block discarded – undo
1241 1241
  * @return bool          false
1242 1242
  **/
1243 1243
 function autoriser_niet_dist($faire, $type, $id, $qui, $opt) {
1244
-	return false;
1244
+    return false;
1245 1245
 }
1246 1246
 
1247 1247
 /**
@@ -1257,11 +1257,11 @@  discard block
 block discarded – undo
1257 1257
  * @return bool          false
1258 1258
  **/
1259 1259
 function autoriser_base_reparer_dist($faire, $type, $id, $qui, $opt) {
1260
-	if (!autoriser('detruire') or _request('reinstall')) {
1261
-		return false;
1262
-	}
1260
+    if (!autoriser('detruire') or _request('reinstall')) {
1261
+        return false;
1262
+    }
1263 1263
 
1264
-	return true;
1264
+    return true;
1265 1265
 }
1266 1266
 
1267 1267
 /**
@@ -1277,7 +1277,7 @@  discard block
 block discarded – undo
1277 1277
  * @return bool          true s'il a le droit, false sinon
1278 1278
  **/
1279 1279
 function autoriser_infosperso_dist($faire, $type, $id, $qui, $opt) {
1280
-	return true;
1280
+    return true;
1281 1281
 }
1282 1282
 
1283 1283
 /**
@@ -1293,7 +1293,7 @@  discard block
 block discarded – undo
1293 1293
  * @return bool          true s'il a le droit, false sinon
1294 1294
  **/
1295 1295
 function autoriser_langage_configurer_dist($faire, $type, $id, $qui, $opt) {
1296
-	return true;
1296
+    return true;
1297 1297
 }
1298 1298
 
1299 1299
 /**
@@ -1309,7 +1309,7 @@  discard block
 block discarded – undo
1309 1309
  * @return bool          true s'il a le droit, false sinon
1310 1310
  **/
1311 1311
 function autoriser_configurerlangage_dist($faire, $type, $id, $qui, $opt) {
1312
-	return autoriser('configurer', '_langage', $id, $qui, $opt);
1312
+    return autoriser('configurer', '_langage', $id, $qui, $opt);
1313 1313
 }
1314 1314
 
1315 1315
 /**
@@ -1325,7 +1325,7 @@  discard block
 block discarded – undo
1325 1325
  * @return bool          true s'il a le droit, false sinon
1326 1326
  **/
1327 1327
 function autoriser_preferences_configurer_dist($faire, $type, $id, $qui, $opt) {
1328
-	return true;
1328
+    return true;
1329 1329
 }
1330 1330
 
1331 1331
 /**
@@ -1341,7 +1341,7 @@  discard block
 block discarded – undo
1341 1341
  * @return bool          true s'il a le droit, false sinon
1342 1342
  **/
1343 1343
 function autoriser_configurerpreferences_dist($faire, $type, $id, $qui, $opt) {
1344
-	return autoriser('configurer', '_preferences', $id, $qui, $opt);
1344
+    return autoriser('configurer', '_preferences', $id, $qui, $opt);
1345 1345
 }
1346 1346
 
1347 1347
 /**
@@ -1357,8 +1357,8 @@  discard block
 block discarded – undo
1357 1357
  * @return bool          true s'il a le droit, false sinon
1358 1358
  **/
1359 1359
 function autoriser_menudeveloppement_menugrandeentree_dist($faire, $type, $id, $qui, $opt) {
1360
-	return (isset($GLOBALS['visiteur_session']['prefs']['activer_menudev'])
1361
-		and $GLOBALS['visiteur_session']['prefs']['activer_menudev'] == 'oui');
1360
+    return (isset($GLOBALS['visiteur_session']['prefs']['activer_menudev'])
1361
+        and $GLOBALS['visiteur_session']['prefs']['activer_menudev'] == 'oui');
1362 1362
 }
1363 1363
 
1364 1364
 /**
@@ -1375,7 +1375,7 @@  discard block
 block discarded – undo
1375 1375
  * @return bool          true s'il a le droit, false sinon
1376 1376
  **/
1377 1377
 function autoriser_menugrandeentree_dist($faire, $type, $id, $qui, $opt) {
1378
-	return true;
1378
+    return true;
1379 1379
 }
1380 1380
 
1381 1381
 /**
@@ -1391,7 +1391,7 @@  discard block
 block discarded – undo
1391 1391
  * @return bool          true s'il a le droit, false sinon
1392 1392
  **/
1393 1393
 function autoriser_auteurs_voir_dist($faire, $type, $id, $qui, $opt) {
1394
-	return true;
1394
+    return true;
1395 1395
 }
1396 1396
 
1397 1397
 /**
@@ -1407,7 +1407,7 @@  discard block
 block discarded – undo
1407 1407
  * @return bool          true s'il a le droit, false sinon
1408 1408
  **/
1409 1409
 function autoriser_auteurs_menu_dist($faire, $type, $id, $qui, $opt) {
1410
-	return autoriser('voir', '_auteurs', $id, $qui, $opt);
1410
+    return autoriser('voir', '_auteurs', $id, $qui, $opt);
1411 1411
 }
1412 1412
 
1413 1413
 /**
@@ -1423,7 +1423,7 @@  discard block
 block discarded – undo
1423 1423
  * @return bool          true s'il a le droit, false sinon
1424 1424
  **/
1425 1425
 function autoriser_articles_voir_dist($faire, $type, $id, $qui, $opt) {
1426
-	return true;
1426
+    return true;
1427 1427
 }
1428 1428
 
1429 1429
 /**
@@ -1439,7 +1439,7 @@  discard block
 block discarded – undo
1439 1439
  * @return bool          true s'il a le droit, false sinon
1440 1440
  **/
1441 1441
 function autoriser_articles_menu_dist($faire, $type, $id, $qui, $opt) {
1442
-	return autoriser('voir', '_articles', $id, $qui, $opt);
1442
+    return autoriser('voir', '_articles', $id, $qui, $opt);
1443 1443
 }
1444 1444
 
1445 1445
 /**
@@ -1455,7 +1455,7 @@  discard block
 block discarded – undo
1455 1455
  * @return bool          true s'il a le droit, false sinon
1456 1456
  **/
1457 1457
 function autoriser_rubriques_voir_dist($faire, $type, $id, $qui, $opt) {
1458
-	return true;
1458
+    return true;
1459 1459
 }
1460 1460
 
1461 1461
 /**
@@ -1471,7 +1471,7 @@  discard block
 block discarded – undo
1471 1471
  * @return bool          true s'il a le droit, false sinon
1472 1472
  **/
1473 1473
 function autoriser_rubriques_menu_dist($faire, $type, $id, $qui, $opt) {
1474
-	return autoriser('voir', '_rubriques', $id, $qui, $opt);
1474
+    return autoriser('voir', '_rubriques', $id, $qui, $opt);
1475 1475
 }
1476 1476
 
1477 1477
 /**
@@ -1487,7 +1487,7 @@  discard block
 block discarded – undo
1487 1487
  * @return bool          true s'il a le droit, false sinon
1488 1488
  **/
1489 1489
 function autoriser_articlecreer_menu_dist($faire, $type, $id, $qui, $opt) {
1490
-	return verifier_table_non_vide();
1490
+    return verifier_table_non_vide();
1491 1491
 }
1492 1492
 
1493 1493
 
@@ -1506,7 +1506,7 @@  discard block
 block discarded – undo
1506 1506
  * @return bool          true s'il a le droit, false sinon
1507 1507
  **/
1508 1508
 function autoriser_auteurcreer_menu_dist($faire, $type, $id, $qui, $opt) {
1509
-	return autoriser('creer', 'auteur', $id, $qui, $opt);
1509
+    return autoriser('creer', 'auteur', $id, $qui, $opt);
1510 1510
 }
1511 1511
 
1512 1512
 /**
@@ -1522,13 +1522,13 @@  discard block
 block discarded – undo
1522 1522
  * @return bool          true s'il a le droit, false sinon
1523 1523
  **/
1524 1524
 function autoriser_visiteurs_menu_dist($faire, $type, $id, $qui, $opt) {
1525
-	include_spip('base/abstract_sql');
1526
-	return 
1527
-		$qui['statut'] == '0minirezo' and !$qui['restreint']
1528
-		and (
1529
-			$GLOBALS['meta']["accepter_visiteurs"] != 'non'
1530
-			or sql_countsel('spip_auteurs', 'statut in ("6forum", "nouveau")') > 0
1531
-		);
1525
+    include_spip('base/abstract_sql');
1526
+    return 
1527
+        $qui['statut'] == '0minirezo' and !$qui['restreint']
1528
+        and (
1529
+            $GLOBALS['meta']["accepter_visiteurs"] != 'non'
1530
+            or sql_countsel('spip_auteurs', 'statut in ("6forum", "nouveau")') > 0
1531
+        );
1532 1532
 }
1533 1533
 
1534 1534
 /**
@@ -1544,7 +1544,7 @@  discard block
 block discarded – undo
1544 1544
  * @return bool          true s'il a le droit, false sinon
1545 1545
  **/
1546 1546
 function autoriser_suiviedito_menu_dist($faire, $type, $id, $qui, $opt) {
1547
-	return $qui['statut'] == '0minirezo';
1547
+    return $qui['statut'] == '0minirezo';
1548 1548
 }
1549 1549
 
1550 1550
 /**
@@ -1560,7 +1560,7 @@  discard block
 block discarded – undo
1560 1560
  * @return bool          true s'il a le droit, false sinon
1561 1561
  **/
1562 1562
 function autoriser_synchro_menu_dist($faire, $type, $id, $qui, $opt) {
1563
-	return $qui['statut'] == '0minirezo';
1563
+    return $qui['statut'] == '0minirezo';
1564 1564
 }
1565 1565
 
1566 1566
 /**
@@ -1688,7 +1688,7 @@  discard block
 block discarded – undo
1688 1688
  * @return bool          true s'il a le droit, false sinon
1689 1689
  **/
1690 1690
 function autoriser_queue_purger_dist($faire, $type, $id, $qui, $opt) {
1691
-	return autoriser('webmestre');
1691
+    return autoriser('webmestre');
1692 1692
 }
1693 1693
 
1694 1694
 
@@ -1706,11 +1706,11 @@  discard block
 block discarded – undo
1706 1706
  * @return bool          true s'il a le droit, false sinon
1707 1707
  **/
1708 1708
 function autoriser_echafauder_dist($faire, $type, $id, $qui, $opt) {
1709
-	if (test_espace_prive()) {
1710
-		return intval($qui['id_auteur']) ? true : false;
1711
-	} else {
1712
-		return autoriser('webmestre', '', $id, $qui, $opt);
1713
-	}
1709
+    if (test_espace_prive()) {
1710
+        return intval($qui['id_auteur']) ? true : false;
1711
+    } else {
1712
+        return autoriser('webmestre', '', $id, $qui, $opt);
1713
+    }
1714 1714
 }
1715 1715
 
1716 1716
 
@@ -1725,27 +1725,27 @@  discard block
 block discarded – undo
1725 1725
  *     Identifiants d'auteurs
1726 1726
  */
1727 1727
 function auteurs_objet($objet, $id_objet, $cond = '') {
1728
-	$objet = objet_type($objet);
1729
-	$where = array(
1730
-		'objet=' . sql_quote($objet),
1731
-		'id_objet=' . intval($id_objet)
1732
-	);
1733
-	if (!empty($cond)) {
1734
-		if (is_array($cond)) {
1735
-			$where = array_merge($where, $cond);
1736
-		} else {
1737
-			$where[] = $cond;
1738
-		}
1739
-	}
1740
-	$auteurs = sql_allfetsel(
1741
-		'id_auteur',
1742
-		'spip_auteurs_liens',
1743
-		$where
1744
-	);
1745
-	if (is_array($auteurs)) {
1746
-		return array_column($auteurs, 'id_auteur');
1747
-	}
1748
-	return array();
1728
+    $objet = objet_type($objet);
1729
+    $where = array(
1730
+        'objet=' . sql_quote($objet),
1731
+        'id_objet=' . intval($id_objet)
1732
+    );
1733
+    if (!empty($cond)) {
1734
+        if (is_array($cond)) {
1735
+            $where = array_merge($where, $cond);
1736
+        } else {
1737
+            $where[] = $cond;
1738
+        }
1739
+    }
1740
+    $auteurs = sql_allfetsel(
1741
+        'id_auteur',
1742
+        'spip_auteurs_liens',
1743
+        $where
1744
+    );
1745
+    if (is_array($auteurs)) {
1746
+        return array_column($auteurs, 'id_auteur');
1747
+    }
1748
+    return array();
1749 1749
 }
1750 1750
 
1751 1751
 /**
@@ -1759,11 +1759,11 @@  discard block
 block discarded – undo
1759 1759
  *     - false : serveur SQL indisponible
1760 1760
  */
1761 1761
 function auteurs_article($id_article, $cond = '') {
1762
-	return sql_allfetsel(
1763
-		'id_auteur',
1764
-		'spip_auteurs_liens',
1765
-		"objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1766
-	);
1762
+    return sql_allfetsel(
1763
+        'id_auteur',
1764
+        'spip_auteurs_liens',
1765
+        "objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1766
+    );
1767 1767
 }
1768 1768
 
1769 1769
 
@@ -1777,7 +1777,7 @@  discard block
 block discarded – undo
1777 1777
  */
1778 1778
 function acces_restreint_rubrique($id_rubrique) {
1779 1779
 
1780
-	return (isset($GLOBALS['connect_id_rubrique'][$id_rubrique]));
1780
+    return (isset($GLOBALS['connect_id_rubrique'][$id_rubrique]));
1781 1781
 }
1782 1782
 
1783 1783
 
@@ -1790,12 +1790,12 @@  discard block
 block discarded – undo
1790 1790
  * @return bool             true si un parent existe
1791 1791
  */
1792 1792
 function verifier_table_non_vide($table = 'spip_rubriques') {
1793
-	static $done = array();
1794
-	if (!isset($done[$table])) {
1795
-		$done[$table] = sql_countsel($table) > 0;
1796
-	}
1793
+    static $done = array();
1794
+    if (!isset($done[$table])) {
1795
+        $done[$table] = sql_countsel($table) > 0;
1796
+    }
1797 1797
 
1798
-	return $done[$table];
1798
+    return $done[$table];
1799 1799
 }
1800 1800
 
1801 1801
 /**
@@ -1820,15 +1820,15 @@  discard block
 block discarded – undo
1820 1820
  */
1821 1821
 function autoriser_inscrireauteur_dist($faire, $quoi, $id, $qui, $opt) {
1822 1822
 
1823
-	$s = array_search($quoi, $GLOBALS['liste_des_statuts']);
1824
-	switch ($s) {
1825
-		case 'info_redacteurs':
1826
-			return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
1827
-		case 'info_visiteurs':
1828
-			return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' or $GLOBALS['meta']['forums_publics'] == 'abo');
1829
-	}
1823
+    $s = array_search($quoi, $GLOBALS['liste_des_statuts']);
1824
+    switch ($s) {
1825
+        case 'info_redacteurs':
1826
+            return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
1827
+        case 'info_visiteurs':
1828
+            return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' or $GLOBALS['meta']['forums_publics'] == 'abo');
1829
+    }
1830 1830
 
1831
-	return false;
1831
+    return false;
1832 1832
 }
1833 1833
 
1834 1834
 
@@ -1845,5 +1845,5 @@  discard block
 block discarded – undo
1845 1845
  * @return bool          true s'il a le droit, false sinon
1846 1846
  **/
1847 1847
 function autoriser_phpinfos($faire, $type, $id, $qui, $opt) {
1848
-	return autoriser('webmestre');
1848
+    return autoriser('webmestre');
1849 1849
 }
Please login to merge, or discard this patch.
Spacing   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
 // mais apres la fonction autoriser()
115 115
 if ($f = find_in_path('mes_fonctions.php')) {
116 116
 	global $dossier_squelettes;
117
-	include_once(_ROOT_CWD . $f);
117
+	include_once(_ROOT_CWD.$f);
118 118
 }
119 119
 
120 120
 
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
 		$qui = $GLOBALS['visiteur_session'] ? $GLOBALS['visiteur_session'] : array();
149 149
 		$qui = array_merge(array('statut' => '', 'id_auteur' => 0, 'webmestre' => 'non'), $qui);
150 150
 	} elseif (is_numeric($qui)) {
151
-		$qui = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $qui);
151
+		$qui = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.$qui);
152 152
 	}
153 153
 
154 154
 	// Admins restreints, on construit ici (pas generique mais...)
@@ -158,8 +158,8 @@  discard block
 block discarded – undo
158 158
 	}
159 159
 
160 160
 	spip_log(
161
-		"autoriser $faire $type $id (" . (isset($qui['nom']) ? $qui['nom'] : '') . ') ?',
162
-		'autoriser' . _LOG_DEBUG
161
+		"autoriser $faire $type $id (".(isset($qui['nom']) ? $qui['nom'] : '').') ?',
162
+		'autoriser'._LOG_DEBUG
163 163
 	);
164 164
 
165 165
 	// passer par objet_type pour avoir les alias
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
 	if (isset($GLOBALS['autoriser_exception'][$faire][$type][$id])
171 171
 		and autoriser_exception($faire, $type, $id, 'verifier')
172 172
 	) {
173
-		spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
173
+		spip_log("autoriser ($faire, $type, $id, ".(isset($qui['nom']) ? $qui['nom'] : '').') : OK Exception', 'autoriser'._LOG_DEBUG);
174 174
 		return true;
175 175
 	}
176 176
 
@@ -179,18 +179,18 @@  discard block
 block discarded – undo
179 179
 	// autoriser_faire[_dist], autoriser_defaut[_dist]
180 180
 	$fonctions = $type
181 181
 		? array(
182
-			'autoriser_' . $type . '_' . $faire,
183
-			'autoriser_' . $type . '_' . $faire . '_dist',
184
-			'autoriser_' . $type,
185
-			'autoriser_' . $type . '_dist',
186
-			'autoriser_' . $faire,
187
-			'autoriser_' . $faire . '_dist',
182
+			'autoriser_'.$type.'_'.$faire,
183
+			'autoriser_'.$type.'_'.$faire.'_dist',
184
+			'autoriser_'.$type,
185
+			'autoriser_'.$type.'_dist',
186
+			'autoriser_'.$faire,
187
+			'autoriser_'.$faire.'_dist',
188 188
 			'autoriser_defaut',
189 189
 			'autoriser_defaut_dist'
190 190
 		)
191 191
 		: array(
192
-			'autoriser_' . $faire,
193
-			'autoriser_' . $faire . '_dist',
192
+			'autoriser_'.$faire,
193
+			'autoriser_'.$faire.'_dist',
194 194
 			'autoriser_defaut',
195 195
 			'autoriser_defaut_dist'
196 196
 		);
@@ -203,8 +203,8 @@  discard block
 block discarded – undo
203 203
 	}
204 204
 
205 205
 	spip_log(
206
-		"$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
207
-		'autoriser' . _LOG_DEBUG
206
+		"$f($faire, $type, $id, ".(isset($qui['nom']) ? $qui['nom'] : '').') : '.($a ? 'OK' : 'niet'),
207
+		'autoriser'._LOG_DEBUG
208 208
 	);
209 209
 
210 210
 	return $a;
@@ -326,7 +326,7 @@  discard block
 block discarded – undo
326 326
 function autoriser_previsualiser_dist($faire, $type, $id, $qui, $opt) {
327 327
 
328 328
 	// Le visiteur a-t-il un statut prevu par la config ?
329
-	if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
329
+	if (strpos($GLOBALS['meta']['preview'], ','.$qui['statut'].',') !== false) {
330 330
 		return test_previsualiser_objet_champ($type, $id, $qui, $opt);
331 331
 	}
332 332
 
@@ -383,7 +383,7 @@  discard block
 block discarded – undo
383 383
 				} // pas de champ passe a la demande => NIET
384 384
 				$previsu = explode(',', $c['previsu']);
385 385
 				// regarder si ce statut est autorise pour l'auteur
386
-				if (in_array($opt[$champ] . '/auteur', $previsu)) {
386
+				if (in_array($opt[$champ].'/auteur', $previsu)) {
387 387
 
388 388
 					// retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
389 389
 					// sinon l’auteur en session
@@ -398,11 +398,11 @@  discard block
 block discarded – undo
398 398
 
399 399
 					if (!$id_auteur) {
400 400
 						return false;
401
-					} elseif(autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
401
+					} elseif (autoriser('previsualiser'.$opt[$champ], $type, '', $id_auteur)) {
402 402
 						// dans ce cas (admin en general), pas de filtrage sur ce statut
403 403
 					} elseif (!sql_countsel(
404 404
 						'spip_auteurs_liens',
405
-						'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
405
+						'id_auteur='.intval($id_auteur).' AND objet='.sql_quote($type).' AND id_objet='.intval($id)
406 406
 					)) {
407 407
 						return false;
408 408
 					} // pas auteur de cet objet => NIET
@@ -440,16 +440,16 @@  discard block
 block discarded – undo
440 440
 			// multilinguisme par secteur et objet rattaché à une rubrique
441 441
 			$primary = id_table_objet($type);
442 442
 			if ($table != 'spip_rubriques') {
443
-				$id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
443
+				$id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=".intval($id));
444 444
 			} else {
445 445
 				$id_rubrique = $id;
446 446
 			}
447
-			$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
447
+			$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique));
448 448
 			if (!$id_secteur > 0) {
449 449
 				$id_secteur = $id_rubrique;
450 450
 			}
451
-			$langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
452
-			$langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
451
+			$langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique='.intval($id_secteur));
452
+			$langue_objet = sql_getfetsel('lang', "$table", "$primary=".intval($id));
453 453
 			if ($langue_secteur != $langue_objet) {
454 454
 				// configuration incohérente, on laisse l'utilisateur corriger la situation
455 455
 				return true;
@@ -457,7 +457,7 @@  discard block
 block discarded – undo
457 457
 			if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
458 458
 				return false;
459 459
 			} else {
460
-				$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
460
+				$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique='.intval($id));
461 461
 				if ($id_parent != 0) {
462 462
 					// sous-rubriques : pas de choix de langue
463 463
 					return false;
@@ -505,7 +505,7 @@  discard block
 block discarded – undo
505 505
 	
506 506
 	if (!isset($opt['statut'])) {
507 507
 		if (isset($desc['field']['statut'])) {
508
-			$statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
508
+			$statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type).'='.intval($id));
509 509
 		} else {
510 510
 			$statut = 'publie';
511 511
 		} // pas de statut => publie
@@ -663,11 +663,11 @@  discard block
 block discarded – undo
663 663
 		return false;
664 664
 	}
665 665
 
666
-	if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
666
+	if (sql_countsel('spip_rubriques', 'id_parent='.intval($id))) {
667 667
 		return false;
668 668
 	}
669 669
 
670
-	if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
670
+	if (sql_countsel('spip_articles', 'id_rubrique='.intval($id)." AND (statut<>'poubelle')")) {
671 671
 		return false;
672 672
 	}
673 673
 
@@ -699,7 +699,7 @@  discard block
 block discarded – undo
699 699
  * @return bool          true s'il a le droit, false sinon
700 700
  **/
701 701
 function autoriser_article_modifier_dist($faire, $type, $id, $qui, $opt) {
702
-	$r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
702
+	$r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article='.sql_quote($id));
703 703
 
704 704
 	return
705 705
 		$r
@@ -710,7 +710,7 @@  discard block
 block discarded – undo
710 710
 				(!isset($opt['statut']) or $opt['statut'] !== 'publie')
711 711
 				and in_array($qui['statut'], array('0minirezo', '1comite'))
712 712
 				and in_array($r['statut'], array('prop', 'prepa', 'poubelle'))
713
-				and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
713
+				and auteurs_objet('article', $id, 'id_auteur='.$qui['id_auteur'])
714 714
 			)
715 715
 		);
716 716
 }
@@ -758,7 +758,7 @@  discard block
 block discarded – undo
758 758
 		if (!$id) {
759 759
 			return false;
760 760
 		}
761
-		$statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
761
+		$statut = sql_getfetsel('statut', 'spip_articles', 'id_article='.intval($id));
762 762
 	}
763 763
 
764 764
 	return
@@ -769,7 +769,7 @@  discard block
 block discarded – undo
769 769
 		or
770 770
 		($id
771 771
 			and $qui['id_auteur']
772
-			and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
772
+			and auteurs_objet('article', $id, 'id_auteur='.$qui['id_auteur']));
773 773
 }
774 774
 
775 775
 
@@ -787,8 +787,8 @@  discard block
 block discarded – undo
787 787
  **/
788 788
 function autoriser_voir_dist($faire, $type, $id, $qui, $opt) {
789 789
 	# securite, mais on aurait pas du arriver ici !
790
-	if (function_exists($f = 'autoriser_' . $type . '_voir')
791
-		or function_exists($f = 'autoriser_' . $type . '_voir_dist')) {
790
+	if (function_exists($f = 'autoriser_'.$type.'_voir')
791
+		or function_exists($f = 'autoriser_'.$type.'_voir_dist')) {
792 792
 		return $f($faire, $type, $id, $qui, $opt);
793 793
 	}
794 794
 
@@ -906,7 +906,7 @@  discard block
 block discarded – undo
906 906
 	$n = sql_fetsel(
907 907
 		'A.id_article',
908 908
 		'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
909
-		"A.statut='publie' AND L.id_auteur=" . sql_quote($id)
909
+		"A.statut='publie' AND L.id_auteur=".sql_quote($id)
910 910
 	);
911 911
 
912 912
 	return $n ? true : false;
@@ -1112,7 +1112,7 @@  discard block
 block discarded – undo
1112 1112
 		and $r = sql_allfetsel(
1113 1113
 			'id_objet',
1114 1114
 			'spip_auteurs_liens',
1115
-			'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1115
+			'id_auteur='.intval($id_auteur)." AND objet='rubrique' AND id_objet!=0"
1116 1116
 		)
1117 1117
 		and count($r)
1118 1118
 	) {
@@ -1727,8 +1727,8 @@  discard block
 block discarded – undo
1727 1727
 function auteurs_objet($objet, $id_objet, $cond = '') {
1728 1728
 	$objet = objet_type($objet);
1729 1729
 	$where = array(
1730
-		'objet=' . sql_quote($objet),
1731
-		'id_objet=' . intval($id_objet)
1730
+		'objet='.sql_quote($objet),
1731
+		'id_objet='.intval($id_objet)
1732 1732
 	);
1733 1733
 	if (!empty($cond)) {
1734 1734
 		if (is_array($cond)) {
@@ -1762,7 +1762,7 @@  discard block
 block discarded – undo
1762 1762
 	return sql_allfetsel(
1763 1763
 		'id_auteur',
1764 1764
 		'spip_auteurs_liens',
1765
-		"objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1765
+		"objet='article' AND id_objet=".intval($id_article).($cond ? " AND $cond" : '')
1766 1766
 	);
1767 1767
 }
1768 1768
 
Please login to merge, or discard this patch.
ecrire/inc/charsets.php 3 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
  * @param string $charset
38 38
  *     Charset à charger.
39 39
  *     Par défaut (AUTO), utilise le charset du site
40
- * @return string|bool
40
+ * @return string|false
41 41
  *     - Nom du charset
42 42
  *     - false si le charset n'est pas décrit dans le répertoire charsets/
43 43
  **/
@@ -706,7 +706,7 @@  discard block
 block discarded – undo
706 706
  *
707 707
  * @param int $num
708 708
  *    Numéro de l'entité unicode
709
- * @return char
709
+ * @return string
710 710
  *    Caractère utf8 si trouvé, '' sinon
711 711
  **/
712 712
 function caractere_utf_8($num) {
Please login to merge, or discard this patch.
Spacing   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -73,7 +73,7 @@  discard block
 block discarded – undo
73 73
 		}
74 74
 	}
75 75
 
76
-	if (find_in_path($charset . '.php', 'charsets/', true)) {
76
+	if (find_in_path($charset.'.php', 'charsets/', true)) {
77 77
 		return $charset;
78 78
 	} else {
79 79
 		spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 	static $pcre_ok = 0;
160 160
 
161 161
 	if (!$pcre_ok) {
162
-		$s = " " . chr(195) . chr(169) . "t" . chr(195) . chr(169) . " ";
162
+		$s = " ".chr(195).chr(169)."t".chr(195).chr(169)." ";
163 163
 		if (preg_match(',\W...\W,u', $s)) {
164 164
 			$pcre_ok = 1;
165 165
 		} else {
@@ -260,38 +260,38 @@  discard block
 block discarded – undo
260 260
 
261 261
 	if (!isset($trans[$charset][$charset_cible])) {
262 262
 		$trans[$charset][$charset_cible] = array(
263
-			$p . chr(128) => "&#8364;",
264
-			$p . chr(129) => ' ', # pas affecte
265
-			$p . chr(130) => "&#8218;",
266
-			$p . chr(131) => "&#402;",
267
-			$p . chr(132) => "&#8222;",
268
-			$p . chr(133) => "&#8230;",
269
-			$p . chr(134) => "&#8224;",
270
-			$p . chr(135) => "&#8225;",
271
-			$p . chr(136) => "&#710;",
272
-			$p . chr(137) => "&#8240;",
273
-			$p . chr(138) => "&#352;",
274
-			$p . chr(139) => "&#8249;",
275
-			$p . chr(140) => "&#338;",
276
-			$p . chr(141) => ' ', # pas affecte
277
-			$p . chr(142) => "&#381;",
278
-			$p . chr(143) => ' ', # pas affecte
279
-			$p . chr(144) => ' ', # pas affecte
280
-			$p . chr(145) => "&#8216;",
281
-			$p . chr(146) => "&#8217;",
282
-			$p . chr(147) => "&#8220;",
283
-			$p . chr(148) => "&#8221;",
284
-			$p . chr(149) => "&#8226;",
285
-			$p . chr(150) => "&#8211;",
286
-			$p . chr(151) => "&#8212;",
287
-			$p . chr(152) => "&#732;",
288
-			$p . chr(153) => "&#8482;",
289
-			$p . chr(154) => "&#353;",
290
-			$p . chr(155) => "&#8250;",
291
-			$p . chr(156) => "&#339;",
292
-			$p . chr(157) => ' ', # pas affecte
293
-			$p . chr(158) => "&#382;",
294
-			$p . chr(159) => "&#376;",
263
+			$p.chr(128) => "&#8364;",
264
+			$p.chr(129) => ' ', # pas affecte
265
+			$p.chr(130) => "&#8218;",
266
+			$p.chr(131) => "&#402;",
267
+			$p.chr(132) => "&#8222;",
268
+			$p.chr(133) => "&#8230;",
269
+			$p.chr(134) => "&#8224;",
270
+			$p.chr(135) => "&#8225;",
271
+			$p.chr(136) => "&#710;",
272
+			$p.chr(137) => "&#8240;",
273
+			$p.chr(138) => "&#352;",
274
+			$p.chr(139) => "&#8249;",
275
+			$p.chr(140) => "&#338;",
276
+			$p.chr(141) => ' ', # pas affecte
277
+			$p.chr(142) => "&#381;",
278
+			$p.chr(143) => ' ', # pas affecte
279
+			$p.chr(144) => ' ', # pas affecte
280
+			$p.chr(145) => "&#8216;",
281
+			$p.chr(146) => "&#8217;",
282
+			$p.chr(147) => "&#8220;",
283
+			$p.chr(148) => "&#8221;",
284
+			$p.chr(149) => "&#8226;",
285
+			$p.chr(150) => "&#8211;",
286
+			$p.chr(151) => "&#8212;",
287
+			$p.chr(152) => "&#732;",
288
+			$p.chr(153) => "&#8482;",
289
+			$p.chr(154) => "&#353;",
290
+			$p.chr(155) => "&#8250;",
291
+			$p.chr(156) => "&#339;",
292
+			$p.chr(157) => ' ', # pas affecte
293
+			$p.chr(158) => "&#382;",
294
+			$p.chr(159) => "&#376;",
295 295
 		);
296 296
 		if ($charset_cible != 'unicode') {
297 297
 			foreach ($trans[$charset][$charset_cible] as $k => $c) {
@@ -421,7 +421,7 @@  discard block
 block discarded – undo
421 421
 					and is_array($GLOBALS['CHARSET'][$cset])
422 422
 				) {
423 423
 					foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
424
-						$trans[$charset][chr($key)] = '&#' . $val . ';';
424
+						$trans[$charset][chr($key)] = '&#'.$val.';';
425 425
 					}
426 426
 				}
427 427
 			}
@@ -488,11 +488,11 @@  discard block
 block discarded – undo
488 488
 					$h = dechex($e);
489 489
 					if ($s = isset($CHARSET_REVERSE[$charset][$e])) {
490 490
 						$s = $CHARSET_REVERSE[$charset][$e];
491
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($s);
492
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($s);
491
+						$t['&#'.$e.';'] = $t['&#0'.$e.';'] = $t['&#00'.$e.';'] = chr($s);
492
+						$t['&#x'.$h.';'] = $t['&#x0'.$h.';'] = $t['&#x00'.$h.';'] = chr($s);
493 493
 					} else {
494
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($e);
495
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($e);
494
+						$t['&#'.$e.';'] = $t['&#0'.$e.';'] = $t['&#00'.$e.';'] = chr($e);
495
+						$t['&#x'.$h.';'] = $t['&#x0'.$h.';'] = $t['&#x00'.$h.';'] = chr($e);
496 496
 					}
497 497
 				}
498 498
 			}
@@ -536,7 +536,7 @@  discard block
 block discarded – undo
536 536
 				and is_array($GLOBALS['CHARSET'][$cset])
537 537
 			) {
538 538
 				foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
539
-					$trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
539
+					$trans[$charset][chr($key)] = unicode2charset('&#'.$val.';');
540 540
 				}
541 541
 			}
542 542
 		}
@@ -643,7 +643,7 @@  discard block
 block discarded – undo
643 643
 				}
644 644
 				$thisPos++;
645 645
 			}
646
-			$encodedLetter = "&#" . preg_replace('/^0+/', '', $decimalCode) . ';';
646
+			$encodedLetter = "&#".preg_replace('/^0+/', '', $decimalCode).';';
647 647
 			$encodedString .= $encodedLetter;
648 648
 		}
649 649
 	}
@@ -686,7 +686,7 @@  discard block
 block discarded – undo
686 686
 			} // ignorer le BOM - http://www.unicode.org/faq/utf_bom.html
687 687
 			else {
688 688
 				if ($word != 65279) {
689
-					$texte .= '&#' . $word . ';';
689
+					$texte .= '&#'.$word.';';
690 690
 				}
691 691
 			}
692 692
 		}
@@ -715,13 +715,13 @@  discard block
 block discarded – undo
715 715
 		return chr($num);
716 716
 	}
717 717
 	if ($num < 2048) {
718
-		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
718
+		return chr(($num >> 6) + 192).chr(($num & 63) + 128);
719 719
 	}
720 720
 	if ($num < 65536) {
721
-		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
721
+		return chr(($num >> 12) + 224).chr((($num >> 6) & 63) + 128).chr(($num & 63) + 128);
722 722
 	}
723 723
 	if ($num < 1114112) {
724
-		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
724
+		return chr(($num >> 18) + 240).chr((($num >> 12) & 63) + 128).chr((($num >> 6) & 63) + 128).chr(($num & 63) + 128);
725 725
 	}
726 726
 
727 727
 	return '';
@@ -777,7 +777,7 @@  discard block
 block discarded – undo
777 777
 	while (preg_match(',&#0*([0-9]+);,S', $texte, $regs) and !isset($vu[$regs[1]])) {
778 778
 		$num = $regs[1];
779 779
 		$vu[$num] = true;
780
-		$s = '\u' . sprintf("%04x", $num);
780
+		$s = '\u'.sprintf("%04x", $num);
781 781
 		$texte = str_replace($regs[0], $s, $texte);
782 782
 	}
783 783
 
@@ -794,7 +794,7 @@  discard block
 block discarded – undo
794 794
  **/
795 795
 function javascript_to_unicode($texte) {
796 796
 	while (preg_match(",%u([0-9A-F][0-9A-F][0-9A-F][0-9A-F]),", $texte, $regs)) {
797
-		$texte = str_replace($regs[0], "&#" . hexdec($regs[1]) . ";", $texte);
797
+		$texte = str_replace($regs[0], "&#".hexdec($regs[1]).";", $texte);
798 798
 	}
799 799
 
800 800
 	return $texte;
@@ -839,7 +839,7 @@  discard block
 block discarded – undo
839 839
 		return $texte;
840 840
 	}
841 841
 
842
-	$table_translit = 'translit' . $complexe;
842
+	$table_translit = 'translit'.$complexe;
843 843
 
844 844
 	// 2. Translitterer grace a la table predefinie
845 845
 	if (!$trans[$complexe]) {
@@ -926,7 +926,7 @@  discard block
 block discarded – undo
926 926
  *    true s'il a un BOM
927 927
  **/
928 928
 function bom_utf8($texte) {
929
-	return (substr($texte, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF));
929
+	return (substr($texte, 0, 3) == chr(0xEF).chr(0xBB).chr(0xBF));
930 930
 }
931 931
 
932 932
 /**
@@ -1121,7 +1121,7 @@  discard block
 block discarded – undo
1121 1121
 		// on prend n fois la longueur desiree, pour etre surs d'avoir tout
1122 1122
 		// (un caractere utf-8 prenant au maximum n bytes)
1123 1123
 		$n = 0;
1124
-		while (preg_match(',[\x80-\xBF]{' . (++$n) . '},', $c)) {
1124
+		while (preg_match(',[\x80-\xBF]{'.(++$n).'},', $c)) {
1125 1125
 			;
1126 1126
 		}
1127 1127
 		$c = substr($c, 0, $n * $length);
@@ -1155,7 +1155,7 @@  discard block
 block discarded – undo
1155 1155
 
1156 1156
 	$lettre1 = mb_strtoupper(spip_substr($c, 0, 1));
1157 1157
 
1158
-	return $lettre1 . spip_substr($c, 1);
1158
+	return $lettre1.spip_substr($c, 1);
1159 1159
 }
1160 1160
 
1161 1161
 /**
Please login to merge, or discard this patch.
Indentation   +702 added lines, -702 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
 
23 23
 // securité
24 24
 if (!defined('_ECRIRE_INC_VERSION')) {
25
-	return;
25
+    return;
26 26
 }
27 27
 
28 28
 // se faciliter la lecture du charset
@@ -42,45 +42,45 @@  discard block
 block discarded – undo
42 42
  *     - false si le charset n'est pas décrit dans le répertoire charsets/
43 43
  **/
44 44
 function load_charset($charset = 'AUTO') {
45
-	if ($charset == 'AUTO') {
46
-		$charset = $GLOBALS['meta']['charset'];
47
-	}
48
-	$charset = trim(strtolower($charset));
49
-	if (isset($GLOBALS['CHARSET'][$charset])) {
50
-		return $charset;
51
-	}
52
-
53
-	if ($charset == 'utf-8') {
54
-		$GLOBALS['CHARSET'][$charset] = array();
55
-
56
-		return $charset;
57
-	}
58
-
59
-	// Quelques synonymes
60
-	if ($charset == '') {
61
-		$charset = 'iso-8859-1';
62
-	} else {
63
-		if ($charset == 'windows-1250') {
64
-			$charset = 'cp1250';
65
-		} else {
66
-			if ($charset == 'windows-1251') {
67
-				$charset = 'cp1251';
68
-			} else {
69
-				if ($charset == 'windows-1256') {
70
-					$charset = 'cp1256';
71
-				}
72
-			}
73
-		}
74
-	}
75
-
76
-	if (find_in_path($charset . '.php', 'charsets/', true)) {
77
-		return $charset;
78
-	} else {
79
-		spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
80
-		$GLOBALS['CHARSET'][$charset] = array();
81
-
82
-		return false;
83
-	}
45
+    if ($charset == 'AUTO') {
46
+        $charset = $GLOBALS['meta']['charset'];
47
+    }
48
+    $charset = trim(strtolower($charset));
49
+    if (isset($GLOBALS['CHARSET'][$charset])) {
50
+        return $charset;
51
+    }
52
+
53
+    if ($charset == 'utf-8') {
54
+        $GLOBALS['CHARSET'][$charset] = array();
55
+
56
+        return $charset;
57
+    }
58
+
59
+    // Quelques synonymes
60
+    if ($charset == '') {
61
+        $charset = 'iso-8859-1';
62
+    } else {
63
+        if ($charset == 'windows-1250') {
64
+            $charset = 'cp1250';
65
+        } else {
66
+            if ($charset == 'windows-1251') {
67
+                $charset = 'cp1251';
68
+            } else {
69
+                if ($charset == 'windows-1256') {
70
+                    $charset = 'cp1256';
71
+                }
72
+            }
73
+        }
74
+    }
75
+
76
+    if (find_in_path($charset . '.php', 'charsets/', true)) {
77
+        return $charset;
78
+    } else {
79
+        spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
80
+        $GLOBALS['CHARSET'][$charset] = array();
81
+
82
+        return false;
83
+    }
84 84
 }
85 85
 
86 86
 
@@ -91,30 +91,30 @@  discard block
 block discarded – undo
91 91
  *     true si toutes les fonctions mb nécessaires sont présentes
92 92
  **/
93 93
 function init_mb_string() {
94
-	static $mb;
95
-
96
-	// verifier que tout est present (fonctions mb_string pour php >= 4.0.6)
97
-	// et que le charset interne est connu de mb_string
98
-	if (!$mb) {
99
-		if (function_exists('mb_internal_encoding')
100
-			and function_exists('mb_detect_order')
101
-			and function_exists('mb_substr')
102
-			and function_exists('mb_strlen')
103
-			and function_exists('mb_strtolower')
104
-			and function_exists('mb_strtoupper')
105
-			and function_exists('mb_encode_mimeheader')
106
-			and function_exists('mb_encode_numericentity')
107
-			and function_exists('mb_decode_numericentity')
108
-			and mb_detect_order(lire_config('charset', _DEFAULT_CHARSET))
109
-		) {
110
-			mb_internal_encoding('utf-8');
111
-			$mb = 1;
112
-		} else {
113
-			$mb = -1;
114
-		}
115
-	}
116
-
117
-	return ($mb == 1);
94
+    static $mb;
95
+
96
+    // verifier que tout est present (fonctions mb_string pour php >= 4.0.6)
97
+    // et que le charset interne est connu de mb_string
98
+    if (!$mb) {
99
+        if (function_exists('mb_internal_encoding')
100
+            and function_exists('mb_detect_order')
101
+            and function_exists('mb_substr')
102
+            and function_exists('mb_strlen')
103
+            and function_exists('mb_strtolower')
104
+            and function_exists('mb_strtoupper')
105
+            and function_exists('mb_encode_mimeheader')
106
+            and function_exists('mb_encode_numericentity')
107
+            and function_exists('mb_decode_numericentity')
108
+            and mb_detect_order(lire_config('charset', _DEFAULT_CHARSET))
109
+        ) {
110
+            mb_internal_encoding('utf-8');
111
+            $mb = 1;
112
+        } else {
113
+            $mb = -1;
114
+        }
115
+    }
116
+
117
+    return ($mb == 1);
118 118
 }
119 119
 
120 120
 /**
@@ -129,21 +129,21 @@  discard block
 block discarded – undo
129 129
  *     true si iconv fonctionne correctement
130 130
  **/
131 131
 function test_iconv() {
132
-	static $iconv_ok;
133
-
134
-	if (!$iconv_ok) {
135
-		if (!function_exists('iconv')) {
136
-			$iconv_ok = -1;
137
-		} else {
138
-			if (utf_32_to_unicode(@iconv('utf-8', 'utf-32', 'chaine de test')) == 'chaine de test') {
139
-				$iconv_ok = 1;
140
-			} else {
141
-				$iconv_ok = -1;
142
-			}
143
-		}
144
-	}
145
-
146
-	return ($iconv_ok == 1);
132
+    static $iconv_ok;
133
+
134
+    if (!$iconv_ok) {
135
+        if (!function_exists('iconv')) {
136
+            $iconv_ok = -1;
137
+        } else {
138
+            if (utf_32_to_unicode(@iconv('utf-8', 'utf-32', 'chaine de test')) == 'chaine de test') {
139
+                $iconv_ok = 1;
140
+            } else {
141
+                $iconv_ok = -1;
142
+            }
143
+        }
144
+    }
145
+
146
+    return ($iconv_ok == 1);
147 147
 }
148 148
 
149 149
 
@@ -156,18 +156,18 @@  discard block
 block discarded – undo
156 156
  *     true si PCRE supporte l'UTF-8 correctement
157 157
  **/
158 158
 function test_pcre_unicode() {
159
-	static $pcre_ok = 0;
160
-
161
-	if (!$pcre_ok) {
162
-		$s = " " . chr(195) . chr(169) . "t" . chr(195) . chr(169) . " ";
163
-		if (preg_match(',\W...\W,u', $s)) {
164
-			$pcre_ok = 1;
165
-		} else {
166
-			$pcre_ok = -1;
167
-		}
168
-	}
169
-
170
-	return $pcre_ok == 1;
159
+    static $pcre_ok = 0;
160
+
161
+    if (!$pcre_ok) {
162
+        $s = " " . chr(195) . chr(169) . "t" . chr(195) . chr(169) . " ";
163
+        if (preg_match(',\W...\W,u', $s)) {
164
+            $pcre_ok = 1;
165
+        } else {
166
+            $pcre_ok = -1;
167
+        }
168
+    }
169
+
170
+    return $pcre_ok == 1;
171 171
 }
172 172
 
173 173
 /**
@@ -183,22 +183,22 @@  discard block
 block discarded – undo
183 183
  *    Plage de caractères
184 184
  **/
185 185
 function pcre_lettres_unicode() {
186
-	static $plage_unicode;
187
-
188
-	if (!$plage_unicode) {
189
-		if (test_pcre_unicode()) {
190
-			// cf. http://www.unicode.org/charts/
191
-			$plage_unicode = '\w' // iso-latin
192
-				. '\x{100}-\x{24f}' // europeen etendu
193
-				. '\x{300}-\x{1cff}' // des tas de trucs
194
-			;
195
-		} else {
196
-			// fallback a trois sous
197
-			$plage_unicode = '\w';
198
-		}
199
-	}
200
-
201
-	return $plage_unicode;
186
+    static $plage_unicode;
187
+
188
+    if (!$plage_unicode) {
189
+        if (test_pcre_unicode()) {
190
+            // cf. http://www.unicode.org/charts/
191
+            $plage_unicode = '\w' // iso-latin
192
+                . '\x{100}-\x{24f}' // europeen etendu
193
+                . '\x{300}-\x{1cff}' // des tas de trucs
194
+            ;
195
+        } else {
196
+            // fallback a trois sous
197
+            $plage_unicode = '\w';
198
+        }
199
+    }
200
+
201
+    return $plage_unicode;
202 202
 }
203 203
 
204 204
 
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
  *    Plage de caractères
217 217
  **/
218 218
 function plage_punct_unicode() {
219
-	return '\xE2(\x80[\x80-\xBF]|\x81[\x80-\xAF])';
219
+    return '\xE2(\x80[\x80-\xBF]|\x81[\x80-\xAF])';
220 220
 }
221 221
 
222 222
 /**
@@ -236,72 +236,72 @@  discard block
 block discarded – undo
236 236
  *     Texte corrigé
237 237
  **/
238 238
 function corriger_caracteres_windows($texte, $charset = 'AUTO', $charset_cible = 'unicode') {
239
-	static $trans;
240
-
241
-	if (is_array($texte)) {
242
-		return array_map('corriger_caracteres_windows', $texte);
243
-	}
244
-
245
-	if ($charset == 'AUTO') {
246
-		$charset = lire_config('charset', _DEFAULT_CHARSET);
247
-	}
248
-	if ($charset == 'utf-8') {
249
-		$p = chr(194);
250
-		if (strpos($texte, $p) == false) {
251
-			return $texte;
252
-		}
253
-	} else {
254
-		if ($charset == 'iso-8859-1') {
255
-			$p = '';
256
-		} else {
257
-			return $texte;
258
-		}
259
-	}
260
-
261
-	if (!isset($trans[$charset][$charset_cible])) {
262
-		$trans[$charset][$charset_cible] = array(
263
-			$p . chr(128) => "&#8364;",
264
-			$p . chr(129) => ' ', # pas affecte
265
-			$p . chr(130) => "&#8218;",
266
-			$p . chr(131) => "&#402;",
267
-			$p . chr(132) => "&#8222;",
268
-			$p . chr(133) => "&#8230;",
269
-			$p . chr(134) => "&#8224;",
270
-			$p . chr(135) => "&#8225;",
271
-			$p . chr(136) => "&#710;",
272
-			$p . chr(137) => "&#8240;",
273
-			$p . chr(138) => "&#352;",
274
-			$p . chr(139) => "&#8249;",
275
-			$p . chr(140) => "&#338;",
276
-			$p . chr(141) => ' ', # pas affecte
277
-			$p . chr(142) => "&#381;",
278
-			$p . chr(143) => ' ', # pas affecte
279
-			$p . chr(144) => ' ', # pas affecte
280
-			$p . chr(145) => "&#8216;",
281
-			$p . chr(146) => "&#8217;",
282
-			$p . chr(147) => "&#8220;",
283
-			$p . chr(148) => "&#8221;",
284
-			$p . chr(149) => "&#8226;",
285
-			$p . chr(150) => "&#8211;",
286
-			$p . chr(151) => "&#8212;",
287
-			$p . chr(152) => "&#732;",
288
-			$p . chr(153) => "&#8482;",
289
-			$p . chr(154) => "&#353;",
290
-			$p . chr(155) => "&#8250;",
291
-			$p . chr(156) => "&#339;",
292
-			$p . chr(157) => ' ', # pas affecte
293
-			$p . chr(158) => "&#382;",
294
-			$p . chr(159) => "&#376;",
295
-		);
296
-		if ($charset_cible != 'unicode') {
297
-			foreach ($trans[$charset][$charset_cible] as $k => $c) {
298
-				$trans[$charset][$charset_cible][$k] = unicode2charset($c, $charset_cible);
299
-			}
300
-		}
301
-	}
302
-
303
-	return @str_replace(array_keys($trans[$charset][$charset_cible]),
304
-		array_values($trans[$charset][$charset_cible]), $texte);
239
+    static $trans;
240
+
241
+    if (is_array($texte)) {
242
+        return array_map('corriger_caracteres_windows', $texte);
243
+    }
244
+
245
+    if ($charset == 'AUTO') {
246
+        $charset = lire_config('charset', _DEFAULT_CHARSET);
247
+    }
248
+    if ($charset == 'utf-8') {
249
+        $p = chr(194);
250
+        if (strpos($texte, $p) == false) {
251
+            return $texte;
252
+        }
253
+    } else {
254
+        if ($charset == 'iso-8859-1') {
255
+            $p = '';
256
+        } else {
257
+            return $texte;
258
+        }
259
+    }
260
+
261
+    if (!isset($trans[$charset][$charset_cible])) {
262
+        $trans[$charset][$charset_cible] = array(
263
+            $p . chr(128) => "&#8364;",
264
+            $p . chr(129) => ' ', # pas affecte
265
+            $p . chr(130) => "&#8218;",
266
+            $p . chr(131) => "&#402;",
267
+            $p . chr(132) => "&#8222;",
268
+            $p . chr(133) => "&#8230;",
269
+            $p . chr(134) => "&#8224;",
270
+            $p . chr(135) => "&#8225;",
271
+            $p . chr(136) => "&#710;",
272
+            $p . chr(137) => "&#8240;",
273
+            $p . chr(138) => "&#352;",
274
+            $p . chr(139) => "&#8249;",
275
+            $p . chr(140) => "&#338;",
276
+            $p . chr(141) => ' ', # pas affecte
277
+            $p . chr(142) => "&#381;",
278
+            $p . chr(143) => ' ', # pas affecte
279
+            $p . chr(144) => ' ', # pas affecte
280
+            $p . chr(145) => "&#8216;",
281
+            $p . chr(146) => "&#8217;",
282
+            $p . chr(147) => "&#8220;",
283
+            $p . chr(148) => "&#8221;",
284
+            $p . chr(149) => "&#8226;",
285
+            $p . chr(150) => "&#8211;",
286
+            $p . chr(151) => "&#8212;",
287
+            $p . chr(152) => "&#732;",
288
+            $p . chr(153) => "&#8482;",
289
+            $p . chr(154) => "&#353;",
290
+            $p . chr(155) => "&#8250;",
291
+            $p . chr(156) => "&#339;",
292
+            $p . chr(157) => ' ', # pas affecte
293
+            $p . chr(158) => "&#382;",
294
+            $p . chr(159) => "&#376;",
295
+        );
296
+        if ($charset_cible != 'unicode') {
297
+            foreach ($trans[$charset][$charset_cible] as $k => $c) {
298
+                $trans[$charset][$charset_cible][$k] = unicode2charset($c, $charset_cible);
299
+            }
300
+        }
301
+    }
302
+
303
+    return @str_replace(array_keys($trans[$charset][$charset_cible]),
304
+        array_values($trans[$charset][$charset_cible]), $texte);
305 305
 }
306 306
 
307 307
 
@@ -318,24 +318,24 @@  discard block
 block discarded – undo
318 318
  *     Texte converti
319 319
  **/
320 320
 function html2unicode($texte, $secure = false) {
321
-	if (strpos($texte, '&') === false) {
322
-		return $texte;
323
-	}
324
-	static $trans = array();
325
-	if (!$trans) {
326
-		load_charset('html');
327
-		foreach ($GLOBALS['CHARSET']['html'] as $key => $val) {
328
-			$trans["&$key;"] = $val;
329
-		}
330
-	}
331
-
332
-	if ($secure) {
333
-		return str_replace(array_keys($trans), array_values($trans), $texte);
334
-	} else {
335
-		return str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'),
336
-			str_replace(array_keys($trans), array_values($trans), $texte)
337
-		);
338
-	}
321
+    if (strpos($texte, '&') === false) {
322
+        return $texte;
323
+    }
324
+    static $trans = array();
325
+    if (!$trans) {
326
+        load_charset('html');
327
+        foreach ($GLOBALS['CHARSET']['html'] as $key => $val) {
328
+            $trans["&$key;"] = $val;
329
+        }
330
+    }
331
+
332
+    if ($secure) {
333
+        return str_replace(array_keys($trans), array_values($trans), $texte);
334
+    } else {
335
+        return str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'),
336
+            str_replace(array_keys($trans), array_values($trans), $texte)
337
+        );
338
+    }
339 339
 }
340 340
 
341 341
 
@@ -350,16 +350,16 @@  discard block
 block discarded – undo
350 350
  *     Texte converti
351 351
  **/
352 352
 function mathml2unicode($texte) {
353
-	static $trans;
354
-	if (!$trans) {
355
-		load_charset('mathml');
353
+    static $trans;
354
+    if (!$trans) {
355
+        load_charset('mathml');
356 356
 
357
-		foreach ($GLOBALS['CHARSET']['mathml'] as $key => $val) {
358
-			$trans["&$key;"] = $val;
359
-		}
360
-	}
357
+        foreach ($GLOBALS['CHARSET']['mathml'] as $key => $val) {
358
+            $trans["&$key;"] = $val;
359
+        }
360
+    }
361 361
 
362
-	return str_replace(array_keys($trans), array_values($trans), $texte);
362
+    return str_replace(array_keys($trans), array_values($trans), $texte);
363 363
 }
364 364
 
365 365
 
@@ -381,69 +381,69 @@  discard block
 block discarded – undo
381 381
  *     Texte converti en unicode
382 382
  **/
383 383
 function charset2unicode($texte, $charset = 'AUTO' /* $forcer: obsolete*/) {
384
-	static $trans;
385
-
386
-	if ($charset == 'AUTO') {
387
-		$charset = lire_config('charset', _DEFAULT_CHARSET);
388
-	}
389
-
390
-	if ($charset == '') {
391
-		$charset = 'iso-8859-1';
392
-	}
393
-	$charset = strtolower($charset);
394
-
395
-	switch ($charset) {
396
-		case 'utf-8':
397
-		case 'utf8':
398
-			return utf_8_to_unicode($texte);
399
-
400
-		case 'iso-8859-1':
401
-			$texte = corriger_caracteres_windows($texte, 'iso-8859-1');
402
-		// pas de break; ici, on suit sur default:
403
-
404
-		default:
405
-			// mbstring presente ?
406
-			if (init_mb_string()) {
407
-				if ($order = mb_detect_order() # mb_string connait-il $charset?
408
-					and mb_detect_order($charset)
409
-				) {
410
-					$s = mb_convert_encoding($texte, 'utf-8', $charset);
411
-					if ($s && $s != $texte) {
412
-						return utf_8_to_unicode($s);
413
-					}
414
-				}
415
-				mb_detect_order($order); # remettre comme precedemment
416
-			}
417
-
418
-			// Sinon, peut-etre connaissons-nous ce charset ?
419
-			if (!isset($trans[$charset])) {
420
-				if ($cset = load_charset($charset)
421
-					and is_array($GLOBALS['CHARSET'][$cset])
422
-				) {
423
-					foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
424
-						$trans[$charset][chr($key)] = '&#' . $val . ';';
425
-					}
426
-				}
427
-			}
428
-			if (count($trans[$charset])) {
429
-				return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
430
-			}
431
-
432
-			// Sinon demander a iconv (malgre le fait qu'il coupe quand un
433
-			// caractere n'appartient pas au charset, mais c'est un probleme
434
-			// surtout en utf-8, gere ci-dessus)
435
-			if (test_iconv()) {
436
-				$s = iconv($charset, 'utf-32le', $texte);
437
-				if ($s) {
438
-					return utf_32_to_unicode($s);
439
-				}
440
-			}
441
-
442
-			// Au pire ne rien faire
443
-			spip_log("erreur charset '$charset' non supporte");
444
-
445
-			return $texte;
446
-	}
384
+    static $trans;
385
+
386
+    if ($charset == 'AUTO') {
387
+        $charset = lire_config('charset', _DEFAULT_CHARSET);
388
+    }
389
+
390
+    if ($charset == '') {
391
+        $charset = 'iso-8859-1';
392
+    }
393
+    $charset = strtolower($charset);
394
+
395
+    switch ($charset) {
396
+        case 'utf-8':
397
+        case 'utf8':
398
+            return utf_8_to_unicode($texte);
399
+
400
+        case 'iso-8859-1':
401
+            $texte = corriger_caracteres_windows($texte, 'iso-8859-1');
402
+        // pas de break; ici, on suit sur default:
403
+
404
+        default:
405
+            // mbstring presente ?
406
+            if (init_mb_string()) {
407
+                if ($order = mb_detect_order() # mb_string connait-il $charset?
408
+                    and mb_detect_order($charset)
409
+                ) {
410
+                    $s = mb_convert_encoding($texte, 'utf-8', $charset);
411
+                    if ($s && $s != $texte) {
412
+                        return utf_8_to_unicode($s);
413
+                    }
414
+                }
415
+                mb_detect_order($order); # remettre comme precedemment
416
+            }
417
+
418
+            // Sinon, peut-etre connaissons-nous ce charset ?
419
+            if (!isset($trans[$charset])) {
420
+                if ($cset = load_charset($charset)
421
+                    and is_array($GLOBALS['CHARSET'][$cset])
422
+                ) {
423
+                    foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
424
+                        $trans[$charset][chr($key)] = '&#' . $val . ';';
425
+                    }
426
+                }
427
+            }
428
+            if (count($trans[$charset])) {
429
+                return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
430
+            }
431
+
432
+            // Sinon demander a iconv (malgre le fait qu'il coupe quand un
433
+            // caractere n'appartient pas au charset, mais c'est un probleme
434
+            // surtout en utf-8, gere ci-dessus)
435
+            if (test_iconv()) {
436
+                $s = iconv($charset, 'utf-32le', $texte);
437
+                if ($s) {
438
+                    return utf_32_to_unicode($s);
439
+                }
440
+            }
441
+
442
+            // Au pire ne rien faire
443
+            spip_log("erreur charset '$charset' non supporte");
444
+
445
+            return $texte;
446
+    }
447 447
 }
448 448
 
449 449
 
@@ -462,44 +462,44 @@  discard block
 block discarded – undo
462 462
  *     Texte transformé dans le charset souhaité
463 463
  **/
464 464
 function unicode2charset($texte, $charset = 'AUTO') {
465
-	static $CHARSET_REVERSE;
466
-	static $trans = array();
467
-
468
-	if ($charset == 'AUTO') {
469
-		$charset = lire_config('charset', _DEFAULT_CHARSET);
470
-	}
471
-
472
-	switch ($charset) {
473
-		case 'utf-8':
474
-			return unicode_to_utf_8($texte);
475
-			break;
476
-
477
-		default:
478
-			$charset = load_charset($charset);
479
-
480
-			if (!is_array($CHARSET_REVERSE[$charset])) {
481
-				$CHARSET_REVERSE[$charset] = array_flip($GLOBALS['CHARSET'][$charset]);
482
-			}
483
-
484
-			if (!isset($trans[$charset])) {
485
-				$trans[$charset] = array();
486
-				$t = &$trans[$charset];
487
-				for ($e = 128; $e < 255; $e++) {
488
-					$h = dechex($e);
489
-					if ($s = isset($CHARSET_REVERSE[$charset][$e])) {
490
-						$s = $CHARSET_REVERSE[$charset][$e];
491
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($s);
492
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($s);
493
-					} else {
494
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($e);
495
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($e);
496
-					}
497
-				}
498
-			}
499
-			$texte = str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
500
-
501
-			return $texte;
502
-	}
465
+    static $CHARSET_REVERSE;
466
+    static $trans = array();
467
+
468
+    if ($charset == 'AUTO') {
469
+        $charset = lire_config('charset', _DEFAULT_CHARSET);
470
+    }
471
+
472
+    switch ($charset) {
473
+        case 'utf-8':
474
+            return unicode_to_utf_8($texte);
475
+            break;
476
+
477
+        default:
478
+            $charset = load_charset($charset);
479
+
480
+            if (!is_array($CHARSET_REVERSE[$charset])) {
481
+                $CHARSET_REVERSE[$charset] = array_flip($GLOBALS['CHARSET'][$charset]);
482
+            }
483
+
484
+            if (!isset($trans[$charset])) {
485
+                $trans[$charset] = array();
486
+                $t = &$trans[$charset];
487
+                for ($e = 128; $e < 255; $e++) {
488
+                    $h = dechex($e);
489
+                    if ($s = isset($CHARSET_REVERSE[$charset][$e])) {
490
+                        $s = $CHARSET_REVERSE[$charset][$e];
491
+                        $t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($s);
492
+                        $t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($s);
493
+                    } else {
494
+                        $t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($e);
495
+                        $t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($e);
496
+                    }
497
+                }
498
+            }
499
+            $texte = str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
500
+
501
+            return $texte;
502
+    }
503 503
 }
504 504
 
505 505
 
@@ -517,37 +517,37 @@  discard block
 block discarded – undo
517 517
  *     Texte transformé dans le charset site
518 518
  **/
519 519
 function importer_charset($texte, $charset = 'AUTO') {
520
-	static $trans = array();
521
-	// on traite le cas le plus frequent iso-8859-1 vers utf directement pour aller plus vite !
522
-	if (($charset == 'iso-8859-1') && ($GLOBALS['meta']['charset'] == 'utf-8')) {
523
-		$texte = corriger_caracteres_windows($texte, 'iso-8859-1', $GLOBALS['meta']['charset']);
524
-		if (init_mb_string()) {
525
-			if ($order = mb_detect_order() # mb_string connait-il $charset?
526
-				and mb_detect_order($charset)
527
-			) {
528
-				$s = mb_convert_encoding($texte, 'utf-8', $charset);
529
-			}
530
-			mb_detect_order($order); # remettre comme precedemment
531
-			return $s;
532
-		}
533
-		// Sinon, peut-etre connaissons-nous ce charset ?
534
-		if (!isset($trans[$charset])) {
535
-			if ($cset = load_charset($charset)
536
-				and is_array($GLOBALS['CHARSET'][$cset])
537
-			) {
538
-				foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
539
-					$trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
540
-				}
541
-			}
542
-		}
543
-		if (count($trans[$charset])) {
544
-			return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
545
-		}
546
-
547
-		return $texte;
548
-	}
549
-
550
-	return unicode2charset(charset2unicode($texte, $charset));
520
+    static $trans = array();
521
+    // on traite le cas le plus frequent iso-8859-1 vers utf directement pour aller plus vite !
522
+    if (($charset == 'iso-8859-1') && ($GLOBALS['meta']['charset'] == 'utf-8')) {
523
+        $texte = corriger_caracteres_windows($texte, 'iso-8859-1', $GLOBALS['meta']['charset']);
524
+        if (init_mb_string()) {
525
+            if ($order = mb_detect_order() # mb_string connait-il $charset?
526
+                and mb_detect_order($charset)
527
+            ) {
528
+                $s = mb_convert_encoding($texte, 'utf-8', $charset);
529
+            }
530
+            mb_detect_order($order); # remettre comme precedemment
531
+            return $s;
532
+        }
533
+        // Sinon, peut-etre connaissons-nous ce charset ?
534
+        if (!isset($trans[$charset])) {
535
+            if ($cset = load_charset($charset)
536
+                and is_array($GLOBALS['CHARSET'][$cset])
537
+            ) {
538
+                foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
539
+                    $trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
540
+                }
541
+            }
542
+        }
543
+        if (count($trans[$charset])) {
544
+            return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
545
+        }
546
+
547
+        return $texte;
548
+    }
549
+
550
+    return unicode2charset(charset2unicode($texte, $charset));
551 551
 }
552 552
 
553 553
 
@@ -563,92 +563,92 @@  discard block
 block discarded – undo
563 563
  **/
564 564
 function utf_8_to_unicode($source) {
565 565
 
566
-	// mb_string : methode rapide
567
-	if (init_mb_string()) {
568
-		$convmap = array(0x7F, 0xFFFFFF, 0x0, 0xFFFFFF);
569
-
570
-		return mb_encode_numericentity($source, $convmap, 'UTF-8');
571
-	}
572
-
573
-	// Sinon methode pas a pas
574
-	static $decrement;
575
-	static $shift;
576
-
577
-	// Cf. php.net, par Ronen. Adapte pour compatibilite < php4
578
-	if (!is_array($decrement)) {
579
-		// array used to figure what number to decrement from character order value
580
-		// according to number of characters used to map unicode to ascii by utf-8
581
-		$decrement[4] = 240;
582
-		$decrement[3] = 224;
583
-		$decrement[2] = 192;
584
-		$decrement[1] = 0;
585
-		// the number of bits to shift each charNum by
586
-		$shift[1][0] = 0;
587
-		$shift[2][0] = 6;
588
-		$shift[2][1] = 0;
589
-		$shift[3][0] = 12;
590
-		$shift[3][1] = 6;
591
-		$shift[3][2] = 0;
592
-		$shift[4][0] = 18;
593
-		$shift[4][1] = 12;
594
-		$shift[4][2] = 6;
595
-		$shift[4][3] = 0;
596
-	}
597
-
598
-	$pos = 0;
599
-	$len = strlen($source);
600
-	$encodedString = '';
601
-	while ($pos < $len) {
602
-		$char = '';
603
-		$ischar = false;
604
-		$asciiPos = ord(substr($source, $pos, 1));
605
-		if (($asciiPos >= 240) && ($asciiPos <= 255)) {
606
-			// 4 chars representing one unicode character
607
-			$thisLetter = substr($source, $pos, 4);
608
-			$pos += 4;
609
-		} else {
610
-			if (($asciiPos >= 224) && ($asciiPos <= 239)) {
611
-				// 3 chars representing one unicode character
612
-				$thisLetter = substr($source, $pos, 3);
613
-				$pos += 3;
614
-			} else {
615
-				if (($asciiPos >= 192) && ($asciiPos <= 223)) {
616
-					// 2 chars representing one unicode character
617
-					$thisLetter = substr($source, $pos, 2);
618
-					$pos += 2;
619
-				} else {
620
-					// 1 char (lower ascii)
621
-					$thisLetter = substr($source, $pos, 1);
622
-					$pos += 1;
623
-					$char = $thisLetter;
624
-					$ischar = true;
625
-				}
626
-			}
627
-		}
628
-
629
-		if ($ischar) {
630
-			$encodedString .= $char;
631
-		} else {  // process the string representing the letter to a unicode entity
632
-			$thisLen = strlen($thisLetter);
633
-			$thisPos = 0;
634
-			$decimalCode = 0;
635
-			while ($thisPos < $thisLen) {
636
-				$thisCharOrd = ord(substr($thisLetter, $thisPos, 1));
637
-				if ($thisPos == 0) {
638
-					$charNum = intval($thisCharOrd - $decrement[$thisLen]);
639
-					$decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
640
-				} else {
641
-					$charNum = intval($thisCharOrd - 128);
642
-					$decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
643
-				}
644
-				$thisPos++;
645
-			}
646
-			$encodedLetter = "&#" . preg_replace('/^0+/', '', $decimalCode) . ';';
647
-			$encodedString .= $encodedLetter;
648
-		}
649
-	}
650
-
651
-	return $encodedString;
566
+    // mb_string : methode rapide
567
+    if (init_mb_string()) {
568
+        $convmap = array(0x7F, 0xFFFFFF, 0x0, 0xFFFFFF);
569
+
570
+        return mb_encode_numericentity($source, $convmap, 'UTF-8');
571
+    }
572
+
573
+    // Sinon methode pas a pas
574
+    static $decrement;
575
+    static $shift;
576
+
577
+    // Cf. php.net, par Ronen. Adapte pour compatibilite < php4
578
+    if (!is_array($decrement)) {
579
+        // array used to figure what number to decrement from character order value
580
+        // according to number of characters used to map unicode to ascii by utf-8
581
+        $decrement[4] = 240;
582
+        $decrement[3] = 224;
583
+        $decrement[2] = 192;
584
+        $decrement[1] = 0;
585
+        // the number of bits to shift each charNum by
586
+        $shift[1][0] = 0;
587
+        $shift[2][0] = 6;
588
+        $shift[2][1] = 0;
589
+        $shift[3][0] = 12;
590
+        $shift[3][1] = 6;
591
+        $shift[3][2] = 0;
592
+        $shift[4][0] = 18;
593
+        $shift[4][1] = 12;
594
+        $shift[4][2] = 6;
595
+        $shift[4][3] = 0;
596
+    }
597
+
598
+    $pos = 0;
599
+    $len = strlen($source);
600
+    $encodedString = '';
601
+    while ($pos < $len) {
602
+        $char = '';
603
+        $ischar = false;
604
+        $asciiPos = ord(substr($source, $pos, 1));
605
+        if (($asciiPos >= 240) && ($asciiPos <= 255)) {
606
+            // 4 chars representing one unicode character
607
+            $thisLetter = substr($source, $pos, 4);
608
+            $pos += 4;
609
+        } else {
610
+            if (($asciiPos >= 224) && ($asciiPos <= 239)) {
611
+                // 3 chars representing one unicode character
612
+                $thisLetter = substr($source, $pos, 3);
613
+                $pos += 3;
614
+            } else {
615
+                if (($asciiPos >= 192) && ($asciiPos <= 223)) {
616
+                    // 2 chars representing one unicode character
617
+                    $thisLetter = substr($source, $pos, 2);
618
+                    $pos += 2;
619
+                } else {
620
+                    // 1 char (lower ascii)
621
+                    $thisLetter = substr($source, $pos, 1);
622
+                    $pos += 1;
623
+                    $char = $thisLetter;
624
+                    $ischar = true;
625
+                }
626
+            }
627
+        }
628
+
629
+        if ($ischar) {
630
+            $encodedString .= $char;
631
+        } else {  // process the string representing the letter to a unicode entity
632
+            $thisLen = strlen($thisLetter);
633
+            $thisPos = 0;
634
+            $decimalCode = 0;
635
+            while ($thisPos < $thisLen) {
636
+                $thisCharOrd = ord(substr($thisLetter, $thisPos, 1));
637
+                if ($thisPos == 0) {
638
+                    $charNum = intval($thisCharOrd - $decrement[$thisLen]);
639
+                    $decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
640
+                } else {
641
+                    $charNum = intval($thisCharOrd - 128);
642
+                    $decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
643
+                }
644
+                $thisPos++;
645
+            }
646
+            $encodedLetter = "&#" . preg_replace('/^0+/', '', $decimalCode) . ';';
647
+            $encodedString .= $encodedLetter;
648
+        }
649
+    }
650
+
651
+    return $encodedString;
652 652
 }
653 653
 
654 654
 /**
@@ -667,32 +667,32 @@  discard block
 block discarded – undo
667 667
  **/
668 668
 function utf_32_to_unicode($source) {
669 669
 
670
-	// mb_string : methode rapide
671
-	if (init_mb_string()) {
672
-		$convmap = array(0x7F, 0xFFFFFF, 0x0, 0xFFFFFF);
673
-		$source = mb_encode_numericentity($source, $convmap, 'UTF-32LE');
674
-
675
-		return str_replace(chr(0), '', $source);
676
-	}
677
-
678
-	// Sinon methode lente
679
-	$texte = '';
680
-	while ($source) {
681
-		$words = unpack("V*", substr($source, 0, 1024));
682
-		$source = substr($source, 1024);
683
-		foreach ($words as $word) {
684
-			if ($word < 128) {
685
-				$texte .= chr($word);
686
-			} // ignorer le BOM - http://www.unicode.org/faq/utf_bom.html
687
-			else {
688
-				if ($word != 65279) {
689
-					$texte .= '&#' . $word . ';';
690
-				}
691
-			}
692
-		}
693
-	}
694
-
695
-	return $texte;
670
+    // mb_string : methode rapide
671
+    if (init_mb_string()) {
672
+        $convmap = array(0x7F, 0xFFFFFF, 0x0, 0xFFFFFF);
673
+        $source = mb_encode_numericentity($source, $convmap, 'UTF-32LE');
674
+
675
+        return str_replace(chr(0), '', $source);
676
+    }
677
+
678
+    // Sinon methode lente
679
+    $texte = '';
680
+    while ($source) {
681
+        $words = unpack("V*", substr($source, 0, 1024));
682
+        $source = substr($source, 1024);
683
+        foreach ($words as $word) {
684
+            if ($word < 128) {
685
+                $texte .= chr($word);
686
+            } // ignorer le BOM - http://www.unicode.org/faq/utf_bom.html
687
+            else {
688
+                if ($word != 65279) {
689
+                    $texte .= '&#' . $word . ';';
690
+                }
691
+            }
692
+        }
693
+    }
694
+
695
+    return $texte;
696 696
 
697 697
 }
698 698
 
@@ -710,21 +710,21 @@  discard block
 block discarded – undo
710 710
  *    Caractère utf8 si trouvé, '' sinon
711 711
  **/
712 712
 function caractere_utf_8($num) {
713
-	$num = intval($num);
714
-	if ($num < 128) {
715
-		return chr($num);
716
-	}
717
-	if ($num < 2048) {
718
-		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
719
-	}
720
-	if ($num < 65536) {
721
-		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
722
-	}
723
-	if ($num < 1114112) {
724
-		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
725
-	}
726
-
727
-	return '';
713
+    $num = intval($num);
714
+    if ($num < 128) {
715
+        return chr($num);
716
+    }
717
+    if ($num < 2048) {
718
+        return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
719
+    }
720
+    if ($num < 65536) {
721
+        return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
722
+    }
723
+    if ($num < 1114112) {
724
+        return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
725
+    }
726
+
727
+    return '';
728 728
 }
729 729
 
730 730
 /**
@@ -737,30 +737,30 @@  discard block
 block discarded – undo
737 737
  **/
738 738
 function unicode_to_utf_8($texte) {
739 739
 
740
-	// 1. Entites &#128; et suivantes
741
-	$vu = array();
742
-	if (preg_match_all(',&#0*([1-9][0-9][0-9]+);,S',
743
-		$texte, $regs, PREG_SET_ORDER)) {
744
-		foreach ($regs as $reg) {
745
-			if ($reg[1] > 127 and !isset($vu[$reg[0]])) {
746
-				$vu[$reg[0]] = caractere_utf_8($reg[1]);
747
-			}
748
-		}
749
-	}
750
-	//$texte = str_replace(array_keys($vu), array_values($vu), $texte);
751
-
752
-	// 2. Entites > &#xFF;
753
-	//$vu = array();
754
-	if (preg_match_all(',&#x0*([1-9a-f][0-9a-f][0-9a-f]+);,iS',
755
-		$texte, $regs, PREG_SET_ORDER)) {
756
-		foreach ($regs as $reg) {
757
-			if (!isset($vu[$reg[0]])) {
758
-				$vu[$reg[0]] = caractere_utf_8(hexdec($reg[1]));
759
-			}
760
-		}
761
-	}
762
-
763
-	return str_replace(array_keys($vu), array_values($vu), $texte);
740
+    // 1. Entites &#128; et suivantes
741
+    $vu = array();
742
+    if (preg_match_all(',&#0*([1-9][0-9][0-9]+);,S',
743
+        $texte, $regs, PREG_SET_ORDER)) {
744
+        foreach ($regs as $reg) {
745
+            if ($reg[1] > 127 and !isset($vu[$reg[0]])) {
746
+                $vu[$reg[0]] = caractere_utf_8($reg[1]);
747
+            }
748
+        }
749
+    }
750
+    //$texte = str_replace(array_keys($vu), array_values($vu), $texte);
751
+
752
+    // 2. Entites > &#xFF;
753
+    //$vu = array();
754
+    if (preg_match_all(',&#x0*([1-9a-f][0-9a-f][0-9a-f]+);,iS',
755
+        $texte, $regs, PREG_SET_ORDER)) {
756
+        foreach ($regs as $reg) {
757
+            if (!isset($vu[$reg[0]])) {
758
+                $vu[$reg[0]] = caractere_utf_8(hexdec($reg[1]));
759
+            }
760
+        }
761
+    }
762
+
763
+    return str_replace(array_keys($vu), array_values($vu), $texte);
764 764
 
765 765
 }
766 766
 
@@ -773,15 +773,15 @@  discard block
 block discarded – undo
773 773
  *     Texte converti
774 774
  **/
775 775
 function unicode_to_javascript($texte) {
776
-	$vu = array();
777
-	while (preg_match(',&#0*([0-9]+);,S', $texte, $regs) and !isset($vu[$regs[1]])) {
778
-		$num = $regs[1];
779
-		$vu[$num] = true;
780
-		$s = '\u' . sprintf("%04x", $num);
781
-		$texte = str_replace($regs[0], $s, $texte);
782
-	}
783
-
784
-	return $texte;
776
+    $vu = array();
777
+    while (preg_match(',&#0*([0-9]+);,S', $texte, $regs) and !isset($vu[$regs[1]])) {
778
+        $num = $regs[1];
779
+        $vu[$num] = true;
780
+        $s = '\u' . sprintf("%04x", $num);
781
+        $texte = str_replace($regs[0], $s, $texte);
782
+    }
783
+
784
+    return $texte;
785 785
 }
786 786
 
787 787
 /**
@@ -793,11 +793,11 @@  discard block
 block discarded – undo
793 793
  *     Texte converti
794 794
  **/
795 795
 function javascript_to_unicode($texte) {
796
-	while (preg_match(",%u([0-9A-F][0-9A-F][0-9A-F][0-9A-F]),", $texte, $regs)) {
797
-		$texte = str_replace($regs[0], "&#" . hexdec($regs[1]) . ";", $texte);
798
-	}
796
+    while (preg_match(",%u([0-9A-F][0-9A-F][0-9A-F][0-9A-F]),", $texte, $regs)) {
797
+        $texte = str_replace($regs[0], "&#" . hexdec($regs[1]) . ";", $texte);
798
+    }
799 799
 
800
-	return $texte;
800
+    return $texte;
801 801
 }
802 802
 
803 803
 /**
@@ -809,11 +809,11 @@  discard block
 block discarded – undo
809 809
  *     Texte converti
810 810
  **/
811 811
 function javascript_to_binary($texte) {
812
-	while (preg_match(",%([0-9A-F][0-9A-F]),", $texte, $regs)) {
813
-		$texte = str_replace($regs[0], chr(hexdec($regs[1])), $texte);
814
-	}
812
+    while (preg_match(",%([0-9A-F][0-9A-F]),", $texte, $regs)) {
813
+        $texte = str_replace($regs[0], chr(hexdec($regs[1])), $texte);
814
+    }
815 815
 
816
-	return $texte;
816
+    return $texte;
817 817
 }
818 818
 
819 819
 
@@ -831,25 +831,25 @@  discard block
 block discarded – undo
831 831
  * @return string
832 832
  */
833 833
 function translitteration_rapide($texte, $charset = 'AUTO', $complexe = '') {
834
-	static $trans;
835
-	if ($charset == 'AUTO') {
836
-		$charset = $GLOBALS['meta']['charset'];
837
-	}
838
-	if (!strlen($texte)) {
839
-		return $texte;
840
-	}
841
-
842
-	$table_translit = 'translit' . $complexe;
843
-
844
-	// 2. Translitterer grace a la table predefinie
845
-	if (!$trans[$complexe]) {
846
-		load_charset($table_translit);
847
-		foreach ($GLOBALS['CHARSET'][$table_translit] as $key => $val) {
848
-			$trans[$complexe][caractere_utf_8($key)] = $val;
849
-		}
850
-	}
851
-
852
-	return str_replace(array_keys($trans[$complexe]), array_values($trans[$complexe]), $texte);
834
+    static $trans;
835
+    if ($charset == 'AUTO') {
836
+        $charset = $GLOBALS['meta']['charset'];
837
+    }
838
+    if (!strlen($texte)) {
839
+        return $texte;
840
+    }
841
+
842
+    $table_translit = 'translit' . $complexe;
843
+
844
+    // 2. Translitterer grace a la table predefinie
845
+    if (!$trans[$complexe]) {
846
+        load_charset($table_translit);
847
+        foreach ($GLOBALS['CHARSET'][$table_translit] as $key => $val) {
848
+            $trans[$complexe][caractere_utf_8($key)] = $val;
849
+        }
850
+    }
851
+
852
+    return str_replace(array_keys($trans[$complexe]), array_values($trans[$complexe]), $texte);
853 853
 }
854 854
 
855 855
 /**
@@ -872,14 +872,14 @@  discard block
 block discarded – undo
872 872
  * @return string
873 873
  */
874 874
 function translitteration($texte, $charset = 'AUTO', $complexe = '') {
875
-	// 0. Supprimer les caracteres illegaux
876
-	include_spip('inc/filtres');
877
-	$texte = corriger_caracteres($texte);
875
+    // 0. Supprimer les caracteres illegaux
876
+    include_spip('inc/filtres');
877
+    $texte = corriger_caracteres($texte);
878 878
 
879
-	// 1. Passer le charset et les &eacute en utf-8
880
-	$texte = unicode_to_utf_8(html2unicode(charset2unicode($texte, $charset, true)));
879
+    // 1. Passer le charset et les &eacute en utf-8
880
+    $texte = unicode_to_utf_8(html2unicode(charset2unicode($texte, $charset, true)));
881 881
 
882
-	return translitteration_rapide($texte, $charset, $complexe);
882
+    return translitteration_rapide($texte, $charset, $complexe);
883 883
 }
884 884
 
885 885
 /**
@@ -894,17 +894,17 @@  discard block
 block discarded – undo
894 894
  * @return string
895 895
  */
896 896
 function translitteration_complexe($texte, $chiffres = false) {
897
-	$texte = translitteration($texte, 'AUTO', 'complexe');
897
+    $texte = translitteration($texte, 'AUTO', 'complexe');
898 898
 
899
-	if ($chiffres) {
900
-		$texte = preg_replace_callback(
901
-			"/[aeiuoyd]['`?~.^+(-]{1,2}/S",
902
-			function($m) { return translitteration_chiffree($m[0]); },
903
-			$texte
904
-		);
905
-	}
899
+    if ($chiffres) {
900
+        $texte = preg_replace_callback(
901
+            "/[aeiuoyd]['`?~.^+(-]{1,2}/S",
902
+            function($m) { return translitteration_chiffree($m[0]); },
903
+            $texte
904
+        );
905
+    }
906 906
 
907
-	return $texte;
907
+    return $texte;
908 908
 }
909 909
 
910 910
 /**
@@ -916,7 +916,7 @@  discard block
 block discarded – undo
916 916
  * @return string
917 917
  */
918 918
 function translitteration_chiffree($car) {
919
-	return strtr($car, "'`?~.^+(-", "123456789");
919
+    return strtr($car, "'`?~.^+(-", "123456789");
920 920
 }
921 921
 
922 922
 
@@ -929,7 +929,7 @@  discard block
 block discarded – undo
929 929
  *    true s'il a un BOM
930 930
  **/
931 931
 function bom_utf8($texte) {
932
-	return (substr($texte, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF));
932
+    return (substr($texte, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF));
933 933
 }
934 934
 
935 935
 /**
@@ -946,18 +946,18 @@  discard block
 block discarded – undo
946 946
  *     true si c'est le cas
947 947
  **/
948 948
 function is_utf8($string) {
949
-	return !strlen(
950
-		preg_replace(
951
-			',[\x09\x0A\x0D\x20-\x7E]'            # ASCII
952
-			. '|[\xC2-\xDF][\x80-\xBF]'             # non-overlong 2-byte
953
-			. '|\xE0[\xA0-\xBF][\x80-\xBF]'         # excluding overlongs
954
-			. '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'  # straight 3-byte
955
-			. '|\xED[\x80-\x9F][\x80-\xBF]'         # excluding surrogates
956
-			. '|\xF0[\x90-\xBF][\x80-\xBF]{2}'      # planes 1-3
957
-			. '|[\xF1-\xF3][\x80-\xBF]{3}'          # planes 4-15
958
-			. '|\xF4[\x80-\x8F][\x80-\xBF]{2}'      # plane 16
959
-			. ',sS',
960
-			'', $string));
949
+    return !strlen(
950
+        preg_replace(
951
+            ',[\x09\x0A\x0D\x20-\x7E]'            # ASCII
952
+            . '|[\xC2-\xDF][\x80-\xBF]'             # non-overlong 2-byte
953
+            . '|\xE0[\xA0-\xBF][\x80-\xBF]'         # excluding overlongs
954
+            . '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'  # straight 3-byte
955
+            . '|\xED[\x80-\x9F][\x80-\xBF]'         # excluding surrogates
956
+            . '|\xF0[\x90-\xBF][\x80-\xBF]{2}'      # planes 1-3
957
+            . '|[\xF1-\xF3][\x80-\xBF]{3}'          # planes 4-15
958
+            . '|\xF4[\x80-\x8F][\x80-\xBF]{2}'      # plane 16
959
+            . ',sS',
960
+            '', $string));
961 961
 }
962 962
 
963 963
 /**
@@ -969,10 +969,10 @@  discard block
 block discarded – undo
969 969
  *     true si c'est le cas
970 970
  **/
971 971
 function is_ascii($string) {
972
-	return !strlen(
973
-		preg_replace(
974
-			',[\x09\x0A\x0D\x20-\x7E],sS',
975
-			'', $string));
972
+    return !strlen(
973
+        preg_replace(
974
+            ',[\x09\x0A\x0D\x20-\x7E],sS',
975
+            '', $string));
976 976
 }
977 977
 
978 978
 /**
@@ -991,58 +991,58 @@  discard block
 block discarded – undo
991 991
  **/
992 992
 function transcoder_page($texte, $headers = '') {
993 993
 
994
-	// Si tout est < 128 pas la peine d'aller plus loin
995
-	if (is_ascii($texte)) {
996
-		#spip_log('charset: ascii');
997
-		return $texte;
998
-	}
999
-
1000
-	// Reconnaitre le BOM utf-8 (0xEFBBBF)
1001
-	if (bom_utf8($texte)) {
1002
-		$charset = 'utf-8';
1003
-		$texte = substr($texte, 3);
1004
-	} // charset precise par le contenu (xml)
1005
-	else {
1006
-		if (preg_match(
1007
-			',<[?]xml[^>]*encoding[^>]*=[^>]*([-_a-z0-9]+?),UimsS', $texte, $regs)) {
1008
-			$charset = trim(strtolower($regs[1]));
1009
-		} // charset precise par le contenu (html)
1010
-		else {
1011
-			if (preg_match(
1012
-					',<(meta|html|body)[^>]*charset[^>]*=[^>]*([-_a-z0-9]+?),UimsS',
1013
-					$texte, $regs)
1014
-				# eviter #CHARSET des squelettes
1015
-				and (($tmp = trim(strtolower($regs[2]))) != 'charset')
1016
-			) {
1017
-				$charset = $tmp;
1018
-			} // charset de la reponse http
1019
-			else {
1020
-				if (preg_match(',charset=([-_a-z0-9]+),i', $headers, $regs)) {
1021
-					$charset = trim(strtolower($regs[1]));
1022
-				} else {
1023
-					$charset = '';
1024
-				}
1025
-			}
1026
-		}
1027
-	}
1028
-	// normaliser les noms du shif-jis japonais
1029
-	if (preg_match(',^(x|shift)[_-]s?jis$,i', $charset)) {
1030
-		$charset = 'shift-jis';
1031
-	}
1032
-
1033
-	if ($charset) {
1034
-		spip_log("charset: $charset");
1035
-	} else {
1036
-		// valeur par defaut
1037
-		if (is_utf8($texte)) {
1038
-			$charset = 'utf-8';
1039
-		} else {
1040
-			$charset = 'iso-8859-1';
1041
-		}
1042
-		spip_log("charset probable: $charset");
1043
-	}
1044
-
1045
-	return importer_charset($texte, $charset);
994
+    // Si tout est < 128 pas la peine d'aller plus loin
995
+    if (is_ascii($texte)) {
996
+        #spip_log('charset: ascii');
997
+        return $texte;
998
+    }
999
+
1000
+    // Reconnaitre le BOM utf-8 (0xEFBBBF)
1001
+    if (bom_utf8($texte)) {
1002
+        $charset = 'utf-8';
1003
+        $texte = substr($texte, 3);
1004
+    } // charset precise par le contenu (xml)
1005
+    else {
1006
+        if (preg_match(
1007
+            ',<[?]xml[^>]*encoding[^>]*=[^>]*([-_a-z0-9]+?),UimsS', $texte, $regs)) {
1008
+            $charset = trim(strtolower($regs[1]));
1009
+        } // charset precise par le contenu (html)
1010
+        else {
1011
+            if (preg_match(
1012
+                    ',<(meta|html|body)[^>]*charset[^>]*=[^>]*([-_a-z0-9]+?),UimsS',
1013
+                    $texte, $regs)
1014
+                # eviter #CHARSET des squelettes
1015
+                and (($tmp = trim(strtolower($regs[2]))) != 'charset')
1016
+            ) {
1017
+                $charset = $tmp;
1018
+            } // charset de la reponse http
1019
+            else {
1020
+                if (preg_match(',charset=([-_a-z0-9]+),i', $headers, $regs)) {
1021
+                    $charset = trim(strtolower($regs[1]));
1022
+                } else {
1023
+                    $charset = '';
1024
+                }
1025
+            }
1026
+        }
1027
+    }
1028
+    // normaliser les noms du shif-jis japonais
1029
+    if (preg_match(',^(x|shift)[_-]s?jis$,i', $charset)) {
1030
+        $charset = 'shift-jis';
1031
+    }
1032
+
1033
+    if ($charset) {
1034
+        spip_log("charset: $charset");
1035
+    } else {
1036
+        // valeur par defaut
1037
+        if (is_utf8($texte)) {
1038
+            $charset = 'utf-8';
1039
+        } else {
1040
+            $charset = 'iso-8859-1';
1041
+        }
1042
+        spip_log("charset probable: $charset");
1043
+    }
1044
+
1045
+    return importer_charset($texte, $charset);
1046 1046
 }
1047 1047
 
1048 1048
 
@@ -1066,26 +1066,26 @@  discard block
 block discarded – undo
1066 1066
  *     Le texte coupé
1067 1067
  **/
1068 1068
 function spip_substr($c, $start = 0, $length = null) {
1069
-	// Si ce n'est pas utf-8, utiliser substr
1070
-	if ($GLOBALS['meta']['charset'] != 'utf-8') {
1071
-		if ($length) {
1072
-			return substr($c, $start, $length);
1073
-		} else {
1074
-			substr($c, $start);
1075
-		}
1076
-	}
1077
-
1078
-	// Si utf-8, voir si on dispose de mb_string
1079
-	if (init_mb_string()) {
1080
-		if ($length) {
1081
-			return mb_substr($c, $start, $length);
1082
-		} else {
1083
-			return mb_substr($c, $start);
1084
-		}
1085
-	}
1086
-
1087
-	// Version manuelle (cf. ci-dessous)
1088
-	return spip_substr_manuelle($c, $start, $length);
1069
+    // Si ce n'est pas utf-8, utiliser substr
1070
+    if ($GLOBALS['meta']['charset'] != 'utf-8') {
1071
+        if ($length) {
1072
+            return substr($c, $start, $length);
1073
+        } else {
1074
+            substr($c, $start);
1075
+        }
1076
+    }
1077
+
1078
+    // Si utf-8, voir si on dispose de mb_string
1079
+    if (init_mb_string()) {
1080
+        if ($length) {
1081
+            return mb_substr($c, $start, $length);
1082
+        } else {
1083
+            return mb_substr($c, $start);
1084
+        }
1085
+    }
1086
+
1087
+    // Version manuelle (cf. ci-dessous)
1088
+    return spip_substr_manuelle($c, $start, $length);
1089 1089
 }
1090 1090
 
1091 1091
 
@@ -1104,40 +1104,40 @@  discard block
 block discarded – undo
1104 1104
  **/
1105 1105
 function spip_substr_manuelle($c, $start, $length = null) {
1106 1106
 
1107
-	// Cas pathologique
1108
-	if ($length === 0) {
1109
-		return '';
1110
-	}
1111
-
1112
-	// S'il y a un demarrage, on se positionne
1113
-	if ($start > 0) {
1114
-		$c = substr($c, strlen(spip_substr_manuelle($c, 0, $start)));
1115
-	} elseif ($start < 0) {
1116
-		return spip_substr_manuelle($c, spip_strlen($c) + $start, $length);
1117
-	}
1118
-
1119
-	if (!$length) {
1120
-		return $c;
1121
-	}
1122
-
1123
-	if ($length > 0) {
1124
-		// on prend n fois la longueur desiree, pour etre surs d'avoir tout
1125
-		// (un caractere utf-8 prenant au maximum n bytes)
1126
-		$n = 0;
1127
-		while (preg_match(',[\x80-\xBF]{' . (++$n) . '},', $c)) {
1128
-			;
1129
-		}
1130
-		$c = substr($c, 0, $n * $length);
1131
-		// puis, tant qu'on est trop long, on coupe...
1132
-		while (($l = spip_strlen($c)) > $length) {
1133
-			$c = substr($c, 0, $length - $l);
1134
-		}
1135
-
1136
-		return $c;
1137
-	}
1138
-
1139
-	// $length < 0
1140
-	return spip_substr_manuelle($c, 0, spip_strlen($c) + $length);
1107
+    // Cas pathologique
1108
+    if ($length === 0) {
1109
+        return '';
1110
+    }
1111
+
1112
+    // S'il y a un demarrage, on se positionne
1113
+    if ($start > 0) {
1114
+        $c = substr($c, strlen(spip_substr_manuelle($c, 0, $start)));
1115
+    } elseif ($start < 0) {
1116
+        return spip_substr_manuelle($c, spip_strlen($c) + $start, $length);
1117
+    }
1118
+
1119
+    if (!$length) {
1120
+        return $c;
1121
+    }
1122
+
1123
+    if ($length > 0) {
1124
+        // on prend n fois la longueur desiree, pour etre surs d'avoir tout
1125
+        // (un caractere utf-8 prenant au maximum n bytes)
1126
+        $n = 0;
1127
+        while (preg_match(',[\x80-\xBF]{' . (++$n) . '},', $c)) {
1128
+            ;
1129
+        }
1130
+        $c = substr($c, 0, $n * $length);
1131
+        // puis, tant qu'on est trop long, on coupe...
1132
+        while (($l = spip_strlen($c)) > $length) {
1133
+            $c = substr($c, 0, $length - $l);
1134
+        }
1135
+
1136
+        return $c;
1137
+    }
1138
+
1139
+    // $length < 0
1140
+    return spip_substr_manuelle($c, 0, spip_strlen($c) + $length);
1141 1141
 }
1142 1142
 
1143 1143
 /**
@@ -1151,14 +1151,14 @@  discard block
 block discarded – undo
1151 1151
  *     La chaîne avec une majuscule sur le premier mot
1152 1152
  */
1153 1153
 function spip_ucfirst($c) {
1154
-	// Si on n'a pas mb_* ou si ce n'est pas utf-8, utiliser ucfirst
1155
-	if (!init_mb_string() or $GLOBALS['meta']['charset'] != 'utf-8') {
1156
-		return ucfirst($c);
1157
-	}
1154
+    // Si on n'a pas mb_* ou si ce n'est pas utf-8, utiliser ucfirst
1155
+    if (!init_mb_string() or $GLOBALS['meta']['charset'] != 'utf-8') {
1156
+        return ucfirst($c);
1157
+    }
1158 1158
 
1159
-	$lettre1 = mb_strtoupper(spip_substr($c, 0, 1));
1159
+    $lettre1 = mb_strtoupper(spip_substr($c, 0, 1));
1160 1160
 
1161
-	return $lettre1 . spip_substr($c, 1);
1161
+    return $lettre1 . spip_substr($c, 1);
1162 1162
 }
1163 1163
 
1164 1164
 /**
@@ -1172,12 +1172,12 @@  discard block
 block discarded – undo
1172 1172
  *     La chaîne en minuscules
1173 1173
  */
1174 1174
 function spip_strtolower($c) {
1175
-	// Si on n'a pas mb_* ou si ce n'est pas utf-8, utiliser strtolower 
1176
-	if (!init_mb_string() or $GLOBALS['meta']['charset'] != 'utf-8') {
1177
-		return strtolower($c);
1178
-	}
1175
+    // Si on n'a pas mb_* ou si ce n'est pas utf-8, utiliser strtolower 
1176
+    if (!init_mb_string() or $GLOBALS['meta']['charset'] != 'utf-8') {
1177
+        return strtolower($c);
1178
+    }
1179 1179
 
1180
-	return mb_strtolower($c);
1180
+    return mb_strtolower($c);
1181 1181
 }
1182 1182
 
1183 1183
 /**
@@ -1191,23 +1191,23 @@  discard block
 block discarded – undo
1191 1191
  *     Longueur de la chaîne
1192 1192
  */
1193 1193
 function spip_strlen($c) {
1194
-	// On transforme les sauts de ligne pour ne pas compter deux caractères
1195
-	$c = str_replace("\r\n", "\n", $c);
1196
-
1197
-	// Si ce n'est pas utf-8, utiliser strlen
1198
-	if ($GLOBALS['meta']['charset'] != 'utf-8') {
1199
-		return strlen($c);
1200
-	}
1201
-
1202
-	// Sinon, utiliser mb_strlen() si disponible
1203
-	if (init_mb_string()) {
1204
-		return mb_strlen($c);
1205
-	}
1206
-
1207
-	// Methode manuelle : on supprime les bytes 10......,
1208
-	// on compte donc les ascii (0.......) et les demarrages
1209
-	// de caracteres utf-8 (11......)
1210
-	return strlen(preg_replace(',[\x80-\xBF],S', '', $c));
1194
+    // On transforme les sauts de ligne pour ne pas compter deux caractères
1195
+    $c = str_replace("\r\n", "\n", $c);
1196
+
1197
+    // Si ce n'est pas utf-8, utiliser strlen
1198
+    if ($GLOBALS['meta']['charset'] != 'utf-8') {
1199
+        return strlen($c);
1200
+    }
1201
+
1202
+    // Sinon, utiliser mb_strlen() si disponible
1203
+    if (init_mb_string()) {
1204
+        return mb_strlen($c);
1205
+    }
1206
+
1207
+    // Methode manuelle : on supprime les bytes 10......,
1208
+    // on compte donc les ascii (0.......) et les demarrages
1209
+    // de caracteres utf-8 (11......)
1210
+    return strlen(preg_replace(',[\x80-\xBF],S', '', $c));
1211 1211
 }
1212 1212
 
1213 1213
 // Initialisation
@@ -1217,14 +1217,14 @@  discard block
 block discarded – undo
1217 1217
 // dans les preg_replace pour ne pas casser certaines lettres accentuees :
1218 1218
 // en utf-8 chr(195).chr(160) = a` alors qu'en iso-latin chr(160) = nbsp
1219 1219
 if (!isset($GLOBALS['meta']['pcre_u'])
1220
-	or (isset($_GET['var_mode']) and !isset($_GET['var_profile']))
1220
+    or (isset($_GET['var_mode']) and !isset($_GET['var_profile']))
1221 1221
 ) {
1222
-	include_spip('inc/meta');
1223
-	ecrire_meta('pcre_u',
1224
-		$u = (lire_config('charset', _DEFAULT_CHARSET) == 'utf-8'
1225
-			and test_pcre_unicode())
1226
-			? 'u' : ''
1227
-	);
1222
+    include_spip('inc/meta');
1223
+    ecrire_meta('pcre_u',
1224
+        $u = (lire_config('charset', _DEFAULT_CHARSET) == 'utf-8'
1225
+            and test_pcre_unicode())
1226
+            ? 'u' : ''
1227
+    );
1228 1228
 }
1229 1229
 
1230 1230
 
@@ -1240,17 +1240,17 @@  discard block
 block discarded – undo
1240 1240
  *     en unicode : &#128169;
1241 1241
  */
1242 1242
 function utf8_noplanes($x) {
1243
-	$regexp_utf8_4bytes = '/(
1243
+    $regexp_utf8_4bytes = '/(
1244 1244
       \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
1245 1245
    | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
1246 1246
    |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
1247 1247
 )/xS';
1248
-	if (preg_match_all($regexp_utf8_4bytes, $x, $z, PREG_PATTERN_ORDER)) {
1249
-		foreach ($z[0] as $k) {
1250
-			$ku = utf_8_to_unicode($k);
1251
-			$x = str_replace($k, $ku, $x);
1252
-		}
1253
-	}
1254
-
1255
-	return $x;
1248
+    if (preg_match_all($regexp_utf8_4bytes, $x, $z, PREG_PATTERN_ORDER)) {
1249
+        foreach ($z[0] as $k) {
1250
+            $ku = utf_8_to_unicode($k);
1251
+            $x = str_replace($k, $ku, $x);
1252
+        }
1253
+    }
1254
+
1255
+    return $x;
1256 1256
 }
Please login to merge, or discard this patch.