Completed
Push — master ( 6d374a...1dde8c )
by cam
01:19
created
ecrire/inc/auth.php 1 patch
Indentation   +445 added lines, -445 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('base/abstract_sql');
@@ -35,33 +35,33 @@  discard block
 block discarded – undo
35 35
  *  - une chaîne vide si autorisation à pénétrer dans l'espace privé.
36 36
  */
37 37
 function inc_auth_dist() {
38
-	$row = auth_mode();
38
+    $row = auth_mode();
39 39
 
40
-	if ($row) {
41
-		return auth_init_droits($row);
42
-	}
40
+    if ($row) {
41
+        return auth_init_droits($row);
42
+    }
43 43
 
44
-	if (!$GLOBALS['connect_login']) {
45
-		return auth_a_loger();
46
-	}
44
+    if (!$GLOBALS['connect_login']) {
45
+        return auth_a_loger();
46
+    }
47 47
 
48
-	// Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
49
-	// C'est soit parce que la base est inutilisable,
50
-	// soit parce que la table des auteurs a changee (restauration etc)
51
-	// Pas la peine d'insister.
52
-	// Renvoyer le nom fautif et une URL de remise a zero
48
+    // Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
49
+    // C'est soit parce que la base est inutilisable,
50
+    // soit parce que la table des auteurs a changee (restauration etc)
51
+    // Pas la peine d'insister.
52
+    // Renvoyer le nom fautif et une URL de remise a zero
53 53
 
54
-	if (spip_connect()) {
55
-		return array(
56
-			'login' => $GLOBALS['connect_login'],
57
-			'site' => generer_url_public('', 'action=logout&logout=prive')
58
-		);
59
-	}
54
+    if (spip_connect()) {
55
+        return array(
56
+            'login' => $GLOBALS['connect_login'],
57
+            'site' => generer_url_public('', 'action=logout&logout=prive')
58
+        );
59
+    }
60 60
 
61
-	$n = intval(sql_errno());
62
-	spip_log("Erreur base de donnees $n " . sql_error());
61
+    $n = intval(sql_errno());
62
+    spip_log("Erreur base de donnees $n " . sql_error());
63 63
 
64
-	return $n ? $n : 1;
64
+    return $n ? $n : 1;
65 65
 }
66 66
 
67 67
 /**
@@ -73,39 +73,39 @@  discard block
 block discarded – undo
73 73
  * @return array|string
74 74
  */
75 75
 function auth_echec($raison) {
76
-	include_spip('inc/minipres');
77
-	include_spip('inc/headers');
78
-	// pas authentifie. Pourquoi ?
79
-	if (is_string($raison)) {
80
-		// redirection vers une page d'authentification
81
-		// on ne revient pas de cette fonction
82
-		// sauf si pb de header
83
-		$raison = redirige_formulaire($raison);
84
-	} elseif (is_int($raison)) {
85
-		// erreur SQL a afficher
86
-		$raison = minipres(
87
-			_T('info_travaux_titre'),
88
-			_T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
89
-		);
90
-	} elseif (@$raison['statut']) {
91
-		// un simple visiteur n'a pas acces a l'espace prive
92
-		spip_log('connexion refusee a ' . @$raison['id_auteur']);
93
-		$raison = minipres(_T('avis_erreur_connexion'), _T('avis_erreur_visiteur'));
94
-	} else {
95
-		// auteur en fin de droits ...
96
-		$h = $raison['site'];
97
-		$raison = minipres(
98
-			_T('avis_erreur_connexion'),
99
-			'<br /><br /><p>'
100
-			. _T('texte_inc_auth_1', array('auth_login' => $raison['login']))
101
-			. " <a href='$h'>"
102
-			. _T('texte_inc_auth_2')
103
-			. '</a>'
104
-			. _T('texte_inc_auth_3')
105
-		);
106
-	}
107
-
108
-	return $raison;
76
+    include_spip('inc/minipres');
77
+    include_spip('inc/headers');
78
+    // pas authentifie. Pourquoi ?
79
+    if (is_string($raison)) {
80
+        // redirection vers une page d'authentification
81
+        // on ne revient pas de cette fonction
82
+        // sauf si pb de header
83
+        $raison = redirige_formulaire($raison);
84
+    } elseif (is_int($raison)) {
85
+        // erreur SQL a afficher
86
+        $raison = minipres(
87
+            _T('info_travaux_titre'),
88
+            _T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
89
+        );
90
+    } elseif (@$raison['statut']) {
91
+        // un simple visiteur n'a pas acces a l'espace prive
92
+        spip_log('connexion refusee a ' . @$raison['id_auteur']);
93
+        $raison = minipres(_T('avis_erreur_connexion'), _T('avis_erreur_visiteur'));
94
+    } else {
95
+        // auteur en fin de droits ...
96
+        $h = $raison['site'];
97
+        $raison = minipres(
98
+            _T('avis_erreur_connexion'),
99
+            '<br /><br /><p>'
100
+            . _T('texte_inc_auth_1', array('auth_login' => $raison['login']))
101
+            . " <a href='$h'>"
102
+            . _T('texte_inc_auth_2')
103
+            . '</a>'
104
+            . _T('texte_inc_auth_3')
105
+        );
106
+    }
107
+
108
+    return $raison;
109 109
 }
110 110
 
111 111
 /**
@@ -115,80 +115,80 @@  discard block
 block discarded – undo
115 115
  * @return array|bool|string
116 116
  */
117 117
 function auth_mode() {
118
-	//
119
-	// Initialiser variables (eviter hacks par URL)
120
-	//
121
-	$GLOBALS['connect_login'] = '';
122
-	$id_auteur = null;
123
-	$GLOBALS['auth_can_disconnect'] = false;
124
-
125
-	//
126
-	// Recuperer les donnees d'identification
127
-	//
128
-	include_spip('inc/session');
129
-	// Session valide en cours ?
130
-	if (isset($_COOKIE['spip_session'])) {
131
-		$session = charger_fonction('session', 'inc');
132
-		if ($id_auteur = $session()
133
-			or $id_auteur === 0 // reprise sur restauration
134
-		) {
135
-			$GLOBALS['auth_can_disconnect'] = true;
136
-			$GLOBALS['connect_login'] = session_get('login');
137
-		} else {
138
-			unset($_COOKIE['spip_session']);
139
-		}
140
-	}
141
-
142
-	// Essayer auth http si significatif
143
-	// (ignorer les login d'intranet independants de spip)
144
-	if (!$GLOBALS['ignore_auth_http']) {
145
-		if (
146
-			(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])
147
-				and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
148
-			or
149
-			// Si auth http differtente de basic, PHP_AUTH_PW
150
-			// est indisponible mais tentons quand meme pour
151
-			// autocreation via LDAP
152
-			(isset($_SERVER['REMOTE_USER'])
153
-				and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], ''))
154
-		) {
155
-			if (!$id_auteur) {
156
-				$_SERVER['PHP_AUTH_PW'] = '';
157
-				$GLOBALS['auth_can_disconnect'] = true;
158
-				$GLOBALS['visiteur_session'] = $r;
159
-				$GLOBALS['connect_login'] = session_get('login');
160
-				$id_auteur = $r['id_auteur'];
161
-			} else {
162
-				// cas de la session en plus de PHP_AUTH
163
-				/*				  if ($id_auteur != $r['id_auteur']){
118
+    //
119
+    // Initialiser variables (eviter hacks par URL)
120
+    //
121
+    $GLOBALS['connect_login'] = '';
122
+    $id_auteur = null;
123
+    $GLOBALS['auth_can_disconnect'] = false;
124
+
125
+    //
126
+    // Recuperer les donnees d'identification
127
+    //
128
+    include_spip('inc/session');
129
+    // Session valide en cours ?
130
+    if (isset($_COOKIE['spip_session'])) {
131
+        $session = charger_fonction('session', 'inc');
132
+        if ($id_auteur = $session()
133
+            or $id_auteur === 0 // reprise sur restauration
134
+        ) {
135
+            $GLOBALS['auth_can_disconnect'] = true;
136
+            $GLOBALS['connect_login'] = session_get('login');
137
+        } else {
138
+            unset($_COOKIE['spip_session']);
139
+        }
140
+    }
141
+
142
+    // Essayer auth http si significatif
143
+    // (ignorer les login d'intranet independants de spip)
144
+    if (!$GLOBALS['ignore_auth_http']) {
145
+        if (
146
+            (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])
147
+                and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
148
+            or
149
+            // Si auth http differtente de basic, PHP_AUTH_PW
150
+            // est indisponible mais tentons quand meme pour
151
+            // autocreation via LDAP
152
+            (isset($_SERVER['REMOTE_USER'])
153
+                and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], ''))
154
+        ) {
155
+            if (!$id_auteur) {
156
+                $_SERVER['PHP_AUTH_PW'] = '';
157
+                $GLOBALS['auth_can_disconnect'] = true;
158
+                $GLOBALS['visiteur_session'] = $r;
159
+                $GLOBALS['connect_login'] = session_get('login');
160
+                $id_auteur = $r['id_auteur'];
161
+            } else {
162
+                // cas de la session en plus de PHP_AUTH
163
+                /*				  if ($id_auteur != $r['id_auteur']){
164 164
 					spip_log("vol de session $id_auteur" . join(', ', $r));
165 165
 				unset($_COOKIE['spip_session']);
166 166
 				$id_auteur = '';
167 167
 				} */
168
-			}
169
-		} else {
170
-			// Authentification .htaccess old style, car .htaccess semble
171
-			// souvent definir *aussi* PHP_AUTH_USER et PHP_AUTH_PW
172
-			if (isset($_SERVER['REMOTE_USER'])) {
173
-				$GLOBALS['connect_login'] = $_SERVER['REMOTE_USER'];
174
-			}
175
-		}
176
-	}
177
-
178
-	$where = (is_numeric($id_auteur)
179
-		/*AND $id_auteur>0*/ // reprise lors des restaurations
180
-	) ?
181
-		"id_auteur=$id_auteur" :
182
-		(!strlen($GLOBALS['connect_login']) ? '' : 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text'));
183
-
184
-	if (!$where) {
185
-		return '';
186
-	}
187
-
188
-	// Trouver les autres infos dans la table auteurs.
189
-	// le champ 'quand' est utilise par l'agenda
190
-
191
-	return sql_fetsel('*, en_ligne AS quand', 'spip_auteurs', "$where AND statut!='5poubelle'");
168
+            }
169
+        } else {
170
+            // Authentification .htaccess old style, car .htaccess semble
171
+            // souvent definir *aussi* PHP_AUTH_USER et PHP_AUTH_PW
172
+            if (isset($_SERVER['REMOTE_USER'])) {
173
+                $GLOBALS['connect_login'] = $_SERVER['REMOTE_USER'];
174
+            }
175
+        }
176
+    }
177
+
178
+    $where = (is_numeric($id_auteur)
179
+        /*AND $id_auteur>0*/ // reprise lors des restaurations
180
+    ) ?
181
+        "id_auteur=$id_auteur" :
182
+        (!strlen($GLOBALS['connect_login']) ? '' : 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text'));
183
+
184
+    if (!$where) {
185
+        return '';
186
+    }
187
+
188
+    // Trouver les autres infos dans la table auteurs.
189
+    // le champ 'quand' est utilise par l'agenda
190
+
191
+    return sql_fetsel('*, en_ligne AS quand', 'spip_auteurs', "$where AND statut!='5poubelle'");
192 192
 }
193 193
 
194 194
 /**
@@ -206,86 +206,86 @@  discard block
 block discarded – undo
206 206
  */
207 207
 function auth_init_droits($row) {
208 208
 
209
-	include_spip('inc/autoriser');
210
-	if (!autoriser('loger', '', 0, $row)) {
211
-		return false;
212
-	}
213
-
214
-
215
-	if ($row['statut'] == 'nouveau') {
216
-		include_spip('action/inscrire_auteur');
217
-		$row = confirmer_statut_inscription($row);
218
-	}
219
-
220
-	$GLOBALS['connect_id_auteur'] = $row['id_auteur'];
221
-	$GLOBALS['connect_login'] = $row['login'];
222
-	$GLOBALS['connect_statut'] = $row['statut'];
223
-
224
-	$GLOBALS['visiteur_session'] = array_merge((array)$GLOBALS['visiteur_session'], $row);
225
-
226
-	// au cas ou : ne pas memoriser les champs sensibles
227
-	unset($GLOBALS['visiteur_session']['pass']);
228
-	unset($GLOBALS['visiteur_session']['htpass']);
229
-	unset($GLOBALS['visiteur_session']['alea_actuel']);
230
-	unset($GLOBALS['visiteur_session']['alea_futur']);
231
-	unset($GLOBALS['visiteur_session']['ldap_password']);
232
-
233
-	// creer la session au besoin
234
-	if (!isset($_COOKIE['spip_session'])) {
235
-		$session = charger_fonction('session', 'inc');
236
-		$spip_session = $session($row);
237
-	}
238
-
239
-	// reinjecter les preferences_auteur apres le reset de spip_session
240
-	// car utilisees au retour par auth_loger()
241
-	$r = @unserialize($row['prefs']);
242
-	$GLOBALS['visiteur_session']['prefs'] = ($r ? $r : array());
243
-	// si prefs pas definies, les definir par defaut
244
-	if (!isset($GLOBALS['visiteur_session']['prefs']['couleur'])) {
245
-		$GLOBALS['visiteur_session']['prefs']['couleur'] = 2;
246
-		$GLOBALS['visiteur_session']['prefs']['display'] = 2;
247
-		$GLOBALS['visiteur_session']['prefs']['display_navigation'] = 'navigation_avec_icones';
248
-		$GLOBALS['visiteur_session']['prefs']['display_outils'] = 'oui';
249
-	}
250
-
251
-	$GLOBALS['visiteur_session'] = pipeline(
252
-		'preparer_visiteur_session',
253
-		array('args' => array('row' => $row),
254
-		'data' => $GLOBALS['visiteur_session'])
255
-	);
256
-
257
-	// Etablir les droits selon le codage attendu
258
-	// dans ecrire/index.php ecrire/prive.php
259
-
260
-	// Pas autorise a acceder a ecrire ? renvoyer le tableau
261
-	// A noter : le premier appel a autoriser() a le bon gout
262
-	// d'initialiser $GLOBALS['visiteur_session']['restreint'],
263
-	// qui ne figure pas dans le fichier de session
264
-
265
-	if (!autoriser('ecrire')) {
266
-		return $row;
267
-	}
268
-
269
-	// autoriser('ecrire') ne laisse passer que les Admin et les Redac
270
-
271
-	auth_trace($row);
272
-
273
-	// Administrateurs
274
-	if (in_array($GLOBALS['connect_statut'], explode(',', _STATUT_AUTEUR_RUBRIQUE))) {
275
-		if (
276
-			isset($GLOBALS['visiteur_session']['restreint'])
277
-			and is_array($GLOBALS['visiteur_session']['restreint'])
278
-		) {
279
-			$GLOBALS['connect_id_rubrique'] = $GLOBALS['visiteur_session']['restreint'];
280
-		}
281
-		if ($GLOBALS['connect_statut'] == '0minirezo') {
282
-			$GLOBALS['connect_toutes_rubriques'] = !$GLOBALS['connect_id_rubrique'];
283
-		}
284
-	}
285
-
286
-	// Pour les redacteurs, inc_version a fait l'initialisation minimale
287
-
288
-	return ''; // i.e. pas de pb.
209
+    include_spip('inc/autoriser');
210
+    if (!autoriser('loger', '', 0, $row)) {
211
+        return false;
212
+    }
213
+
214
+
215
+    if ($row['statut'] == 'nouveau') {
216
+        include_spip('action/inscrire_auteur');
217
+        $row = confirmer_statut_inscription($row);
218
+    }
219
+
220
+    $GLOBALS['connect_id_auteur'] = $row['id_auteur'];
221
+    $GLOBALS['connect_login'] = $row['login'];
222
+    $GLOBALS['connect_statut'] = $row['statut'];
223
+
224
+    $GLOBALS['visiteur_session'] = array_merge((array)$GLOBALS['visiteur_session'], $row);
225
+
226
+    // au cas ou : ne pas memoriser les champs sensibles
227
+    unset($GLOBALS['visiteur_session']['pass']);
228
+    unset($GLOBALS['visiteur_session']['htpass']);
229
+    unset($GLOBALS['visiteur_session']['alea_actuel']);
230
+    unset($GLOBALS['visiteur_session']['alea_futur']);
231
+    unset($GLOBALS['visiteur_session']['ldap_password']);
232
+
233
+    // creer la session au besoin
234
+    if (!isset($_COOKIE['spip_session'])) {
235
+        $session = charger_fonction('session', 'inc');
236
+        $spip_session = $session($row);
237
+    }
238
+
239
+    // reinjecter les preferences_auteur apres le reset de spip_session
240
+    // car utilisees au retour par auth_loger()
241
+    $r = @unserialize($row['prefs']);
242
+    $GLOBALS['visiteur_session']['prefs'] = ($r ? $r : array());
243
+    // si prefs pas definies, les definir par defaut
244
+    if (!isset($GLOBALS['visiteur_session']['prefs']['couleur'])) {
245
+        $GLOBALS['visiteur_session']['prefs']['couleur'] = 2;
246
+        $GLOBALS['visiteur_session']['prefs']['display'] = 2;
247
+        $GLOBALS['visiteur_session']['prefs']['display_navigation'] = 'navigation_avec_icones';
248
+        $GLOBALS['visiteur_session']['prefs']['display_outils'] = 'oui';
249
+    }
250
+
251
+    $GLOBALS['visiteur_session'] = pipeline(
252
+        'preparer_visiteur_session',
253
+        array('args' => array('row' => $row),
254
+        'data' => $GLOBALS['visiteur_session'])
255
+    );
256
+
257
+    // Etablir les droits selon le codage attendu
258
+    // dans ecrire/index.php ecrire/prive.php
259
+
260
+    // Pas autorise a acceder a ecrire ? renvoyer le tableau
261
+    // A noter : le premier appel a autoriser() a le bon gout
262
+    // d'initialiser $GLOBALS['visiteur_session']['restreint'],
263
+    // qui ne figure pas dans le fichier de session
264
+
265
+    if (!autoriser('ecrire')) {
266
+        return $row;
267
+    }
268
+
269
+    // autoriser('ecrire') ne laisse passer que les Admin et les Redac
270
+
271
+    auth_trace($row);
272
+
273
+    // Administrateurs
274
+    if (in_array($GLOBALS['connect_statut'], explode(',', _STATUT_AUTEUR_RUBRIQUE))) {
275
+        if (
276
+            isset($GLOBALS['visiteur_session']['restreint'])
277
+            and is_array($GLOBALS['visiteur_session']['restreint'])
278
+        ) {
279
+            $GLOBALS['connect_id_rubrique'] = $GLOBALS['visiteur_session']['restreint'];
280
+        }
281
+        if ($GLOBALS['connect_statut'] == '0minirezo') {
282
+            $GLOBALS['connect_toutes_rubriques'] = !$GLOBALS['connect_id_rubrique'];
283
+        }
284
+    }
285
+
286
+    // Pour les redacteurs, inc_version a fait l'initialisation minimale
287
+
288
+    return ''; // i.e. pas de pb.
289 289
 }
290 290
 
291 291
 /**
@@ -294,23 +294,23 @@  discard block
 block discarded – undo
294 294
  * @return string
295 295
  */
296 296
 function auth_a_loger() {
297
-	$redirect = generer_url_public('login', 'url=' . rawurlencode(self('&', true)), '&');
298
-
299
-	// un echec au "bonjour" (login initial) quand le statut est
300
-	// inconnu signale sans doute un probleme de cookies
301
-	if (isset($_GET['bonjour'])) {
302
-		$redirect = parametre_url(
303
-			$redirect,
304
-			'var_erreur',
305
-			(!isset($GLOBALS['visiteur_session']['statut'])
306
-				? 'cookie'
307
-				: 'statut'
308
-			),
309
-			'&'
310
-		);
311
-	}
312
-
313
-	return $redirect;
297
+    $redirect = generer_url_public('login', 'url=' . rawurlencode(self('&', true)), '&');
298
+
299
+    // un echec au "bonjour" (login initial) quand le statut est
300
+    // inconnu signale sans doute un probleme de cookies
301
+    if (isset($_GET['bonjour'])) {
302
+        $redirect = parametre_url(
303
+            $redirect,
304
+            'var_erreur',
305
+            (!isset($GLOBALS['visiteur_session']['statut'])
306
+                ? 'cookie'
307
+                : 'statut'
308
+            ),
309
+            '&'
310
+        );
311
+    }
312
+
313
+    return $redirect;
314 314
 }
315 315
 
316 316
 /**
@@ -322,21 +322,21 @@  discard block
 block discarded – undo
322 322
  * @param null|string $date
323 323
  */
324 324
 function auth_trace($row, $date = null) {
325
-	// Indiquer la connexion. A la minute pres ca suffit.
326
-	if (!is_numeric($connect_quand = isset($row['quand']) ? $row['quand'] : '')) {
327
-		$connect_quand = strtotime($connect_quand);
328
-	}
325
+    // Indiquer la connexion. A la minute pres ca suffit.
326
+    if (!is_numeric($connect_quand = isset($row['quand']) ? $row['quand'] : '')) {
327
+        $connect_quand = strtotime($connect_quand);
328
+    }
329 329
 
330
-	if (is_null($date)) {
331
-		$date = date('Y-m-d H:i:s');
332
-	}
330
+    if (is_null($date)) {
331
+        $date = date('Y-m-d H:i:s');
332
+    }
333 333
 
334
-	if (abs(strtotime($date) - $connect_quand) >= 60) {
335
-		sql_updateq('spip_auteurs', array('en_ligne' => $date), 'id_auteur=' . intval($row['id_auteur']));
336
-		$row['en_ligne'] = $date;
337
-	}
334
+    if (abs(strtotime($date) - $connect_quand) >= 60) {
335
+        sql_updateq('spip_auteurs', array('en_ligne' => $date), 'id_auteur=' . intval($row['id_auteur']));
336
+        $row['en_ligne'] = $date;
337
+    }
338 338
 
339
-	pipeline('trig_auth_trace', array('args' => array('row' => $row, 'date' => $date)));
339
+    pipeline('trig_auth_trace', array('args' => array('row' => $row, 'date' => $date)));
340 340
 }
341 341
 
342 342
 
@@ -362,27 +362,27 @@  discard block
 block discarded – undo
362 362
  * @return mixed
363 363
  */
364 364
 function auth_administrer($fonction, $args, $defaut = false) {
365
-	$auth_methode = array_shift($args);
366
-	$auth_methode = $auth_methode ? $auth_methode : 'spip'; // valeur par defaut au cas ou
367
-	if ($auth = charger_fonction($auth_methode, 'auth', true)
368
-		and function_exists($f = "auth_{$auth_methode}_$fonction")
369
-	) {
370
-		$res = call_user_func_array($f, $args);
371
-	} else {
372
-		$res = $defaut;
373
-	}
374
-	$res = pipeline(
375
-		'auth_administrer',
376
-		array(
377
-			'args' => array(
378
-				'fonction' => $fonction,
379
-				'methode' => $auth_methode,
380
-				'args' => $args
381
-			),
382
-			'data' => $res
383
-		)
384
-	);
385
-	return $res;
365
+    $auth_methode = array_shift($args);
366
+    $auth_methode = $auth_methode ? $auth_methode : 'spip'; // valeur par defaut au cas ou
367
+    if ($auth = charger_fonction($auth_methode, 'auth', true)
368
+        and function_exists($f = "auth_{$auth_methode}_$fonction")
369
+    ) {
370
+        $res = call_user_func_array($f, $args);
371
+    } else {
372
+        $res = $defaut;
373
+    }
374
+    $res = pipeline(
375
+        'auth_administrer',
376
+        array(
377
+            'args' => array(
378
+                'fonction' => $fonction,
379
+                'methode' => $auth_methode,
380
+                'args' => $args
381
+            ),
382
+            'data' => $res
383
+        )
384
+    );
385
+    return $res;
386 386
 }
387 387
 
388 388
 /**
@@ -392,11 +392,11 @@  discard block
 block discarded – undo
392 392
  * @return array
393 393
  */
394 394
 function auth_formulaire_login($flux) {
395
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
396
-		$flux = auth_administrer('formulaire_login', array($methode, $flux), $flux);
397
-	}
395
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
396
+        $flux = auth_administrer('formulaire_login', array($methode, $flux), $flux);
397
+    }
398 398
 
399
-	return $flux;
399
+    return $flux;
400 400
 }
401 401
 
402 402
 
@@ -410,19 +410,19 @@  discard block
 block discarded – undo
410 410
  * @return string/bool
411 411
  */
412 412
 function auth_retrouver_login($login, $serveur = '') {
413
-	if (!spip_connect($serveur)) {
414
-		include_spip('inc/minipres');
415
-		echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
416
-		exit;
417
-	}
418
-
419
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
420
-		if ($auteur = auth_administrer('retrouver_login', array($methode, $login, $serveur))) {
421
-			return $auteur;
422
-		}
423
-	}
424
-
425
-	return false;
413
+    if (!spip_connect($serveur)) {
414
+        include_spip('inc/minipres');
415
+        echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
416
+        exit;
417
+    }
418
+
419
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
420
+        if ($auteur = auth_administrer('retrouver_login', array($methode, $login, $serveur))) {
421
+            return $auteur;
422
+        }
423
+    }
424
+
425
+    return false;
426 426
 }
427 427
 
428 428
 /**
@@ -437,52 +437,52 @@  discard block
 block discarded – undo
437 437
  * @return array
438 438
  */
439 439
 function auth_informer_login($login, $serveur = '') {
440
-	if (!$login
441
-		or !$login_base = auth_retrouver_login($login, $serveur)
442
-		or !$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur)
443
-	) {
444
-
445
-		// generer de fausses infos, mais credibles, pour eviter une attaque
446
-		// https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
447
-		include_spip('inc/securiser_action');
448
-		$fauxalea1 = md5('fauxalea' . secret_du_site() . $login . floor(date('U') / 86400));
449
-		$fauxalea2 = md5('fauxalea' . secret_du_site() . $login . ceil(date('U') / 86400));
450
-
451
-		$row = array(
452
-			'login' => $login,
453
-			'cnx' => '0',
454
-			'logo' => '',
455
-			'alea_actuel' => substr_replace($fauxalea1, '.', 24, 0),
456
-			'alea_futur' => substr_replace($fauxalea2, '.', 24, 0)
457
-		);
458
-
459
-		// permettre d'autoriser l'envoi de password non crypte lorsque
460
-		// l'auteur n'est pas (encore) declare dans SPIP, par exemple pour les cas
461
-		// de premiere authentification via SPIP a une autre application.
462
-		if (defined('_AUTORISER_AUTH_FAIBLE') and _AUTORISER_AUTH_FAIBLE) {
463
-			$row['alea_actuel'] = '';
464
-			$row['alea_futur'] = '';
465
-		}
466
-
467
-		return $row;
468
-	}
469
-
470
-	$prefs = @unserialize($row['prefs']);
471
-	$infos = array(
472
-		'id_auteur' => $row['id_auteur'],
473
-		'login' => $row['login'],
474
-		'cnx' => (isset($prefs['cnx']) and $prefs['cnx'] === 'perma') ? '1' : '0',
475
-		'logo' => recuperer_fond('formulaires/inc-logo_auteur', $row),
476
-	);
477
-
478
-	// desactiver le hash md5 si pas auteur spip ?
479
-	if ($row['source'] !== 'spip') {
480
-		$row['alea_actuel'] = '';
481
-		$row['alea_futur'] = '';
482
-	}
483
-	verifier_visiteur();
484
-
485
-	return auth_administrer('informer_login', array($row['source'], $infos, $row, $serveur), $infos);
440
+    if (!$login
441
+        or !$login_base = auth_retrouver_login($login, $serveur)
442
+        or !$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur)
443
+    ) {
444
+
445
+        // generer de fausses infos, mais credibles, pour eviter une attaque
446
+        // https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
447
+        include_spip('inc/securiser_action');
448
+        $fauxalea1 = md5('fauxalea' . secret_du_site() . $login . floor(date('U') / 86400));
449
+        $fauxalea2 = md5('fauxalea' . secret_du_site() . $login . ceil(date('U') / 86400));
450
+
451
+        $row = array(
452
+            'login' => $login,
453
+            'cnx' => '0',
454
+            'logo' => '',
455
+            'alea_actuel' => substr_replace($fauxalea1, '.', 24, 0),
456
+            'alea_futur' => substr_replace($fauxalea2, '.', 24, 0)
457
+        );
458
+
459
+        // permettre d'autoriser l'envoi de password non crypte lorsque
460
+        // l'auteur n'est pas (encore) declare dans SPIP, par exemple pour les cas
461
+        // de premiere authentification via SPIP a une autre application.
462
+        if (defined('_AUTORISER_AUTH_FAIBLE') and _AUTORISER_AUTH_FAIBLE) {
463
+            $row['alea_actuel'] = '';
464
+            $row['alea_futur'] = '';
465
+        }
466
+
467
+        return $row;
468
+    }
469
+
470
+    $prefs = @unserialize($row['prefs']);
471
+    $infos = array(
472
+        'id_auteur' => $row['id_auteur'],
473
+        'login' => $row['login'],
474
+        'cnx' => (isset($prefs['cnx']) and $prefs['cnx'] === 'perma') ? '1' : '0',
475
+        'logo' => recuperer_fond('formulaires/inc-logo_auteur', $row),
476
+    );
477
+
478
+    // desactiver le hash md5 si pas auteur spip ?
479
+    if ($row['source'] !== 'spip') {
480
+        $row['alea_actuel'] = '';
481
+        $row['alea_futur'] = '';
482
+    }
483
+    verifier_visiteur();
484
+
485
+    return auth_administrer('informer_login', array($row['source'], $infos, $row, $serveur), $infos);
486 486
 }
487 487
 
488 488
 
@@ -496,21 +496,21 @@  discard block
 block discarded – undo
496 496
  * @return mixed
497 497
  */
498 498
 function auth_identifier_login($login, $password, $serveur = '') {
499
-	$erreur = '';
500
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
501
-		if ($auth = charger_fonction($methode, 'auth', true)) {
502
-			$auteur = $auth($login, $password, $serveur);
503
-			if (is_array($auteur) and count($auteur)) {
504
-				spip_log("connexion de $login par methode $methode");
505
-				$auteur['auth'] = $methode;
506
-				return $auteur;
507
-			} elseif (is_string($auteur)) {
508
-				$erreur .= "$auteur ";
509
-			}
510
-		}
511
-	}
512
-
513
-	return $erreur;
499
+    $erreur = '';
500
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
501
+        if ($auth = charger_fonction($methode, 'auth', true)) {
502
+            $auteur = $auth($login, $password, $serveur);
503
+            if (is_array($auteur) and count($auteur)) {
504
+                spip_log("connexion de $login par methode $methode");
505
+                $auteur['auth'] = $methode;
506
+                return $auteur;
507
+            } elseif (is_string($auteur)) {
508
+                $erreur .= "$auteur ";
509
+            }
510
+        }
511
+    }
512
+
513
+    return $erreur;
514 514
 }
515 515
 
516 516
 /**
@@ -524,8 +524,8 @@  discard block
 block discarded – undo
524 524
  * @return string
525 525
  */
526 526
 function auth_url_retour_login($auth_methode, $login, $redirect = '', $serveur = '') {
527
-	$securiser_action = charger_fonction('securiser_action', 'inc');
528
-	return $securiser_action('auth', "$auth_methode/$login", $redirect, true);
527
+    $securiser_action = charger_fonction('securiser_action', 'inc');
528
+    return $securiser_action('auth', "$auth_methode/$login", $redirect, true);
529 529
 }
530 530
 
531 531
 /**
@@ -539,9 +539,9 @@  discard block
 block discarded – undo
539 539
  * @return mixed
540 540
  */
541 541
 function auth_terminer_identifier_login($auth_methode, $login, $serveur = '') {
542
-	$args = func_get_args();
543
-	$auteur = auth_administrer('terminer_identifier_login', $args);
544
-	return $auteur;
542
+    $args = func_get_args();
543
+    $auteur = auth_administrer('terminer_identifier_login', $args);
544
+    return $auteur;
545 545
 }
546 546
 
547 547
 /**
@@ -551,29 +551,29 @@  discard block
 block discarded – undo
551 551
  * @return bool
552 552
  */
553 553
 function auth_loger($auteur) {
554
-	if (!is_array($auteur) or !count($auteur)) {
555
-		return false;
556
-	}
557
-
558
-	// initialiser et poser le cookie de session
559
-	unset($_COOKIE['spip_session']);
560
-	if (auth_init_droits($auteur) === false) {
561
-		return false;
562
-	}
563
-
564
-	// initialiser les prefs
565
-	$p = $GLOBALS['visiteur_session']['prefs'];
566
-	$p['cnx'] = (isset($auteur['cookie']) and $auteur['cookie'] == 'oui') ? 'perma' : '';
567
-
568
-	sql_updateq(
569
-		'spip_auteurs',
570
-		array('prefs' => serialize($p)),
571
-		'id_auteur=' . intval($auteur['id_auteur'])
572
-	);
573
-
574
-	//  bloquer ici le visiteur qui tente d'abuser de ses droits
575
-	verifier_visiteur();
576
-	return true;
554
+    if (!is_array($auteur) or !count($auteur)) {
555
+        return false;
556
+    }
557
+
558
+    // initialiser et poser le cookie de session
559
+    unset($_COOKIE['spip_session']);
560
+    if (auth_init_droits($auteur) === false) {
561
+        return false;
562
+    }
563
+
564
+    // initialiser les prefs
565
+    $p = $GLOBALS['visiteur_session']['prefs'];
566
+    $p['cnx'] = (isset($auteur['cookie']) and $auteur['cookie'] == 'oui') ? 'perma' : '';
567
+
568
+    sql_updateq(
569
+        'spip_auteurs',
570
+        array('prefs' => serialize($p)),
571
+        'id_auteur=' . intval($auteur['id_auteur'])
572
+    );
573
+
574
+    //  bloquer ici le visiteur qui tente d'abuser de ses droits
575
+    verifier_visiteur();
576
+    return true;
577 577
 }
578 578
 
579 579
 /**
@@ -583,8 +583,8 @@  discard block
 block discarded – undo
583 583
  * return void
584 584
  **/
585 585
 function auth_deloger() {
586
-	$logout = charger_fonction('logout', 'action');
587
-	$logout();
586
+    $logout = charger_fonction('logout', 'action');
587
+    $logout();
588 588
 }
589 589
 
590 590
 /**
@@ -598,8 +598,8 @@  discard block
 block discarded – undo
598 598
  * @return bool
599 599
  */
600 600
 function auth_autoriser_modifier_login($auth_methode, $serveur = '') {
601
-	$args = func_get_args();
602
-	return auth_administrer('autoriser_modifier_login', $args);
601
+    $args = func_get_args();
602
+    return auth_administrer('autoriser_modifier_login', $args);
603 603
 }
604 604
 
605 605
 /**
@@ -614,8 +614,8 @@  discard block
 block discarded – undo
614 614
  *  message d'erreur ou chaine vide si pas d'erreur
615 615
  */
616 616
 function auth_verifier_login($auth_methode, $new_login, $id_auteur = 0, $serveur = '') {
617
-	$args = func_get_args();
618
-	return auth_administrer('verifier_login', $args, '');
617
+    $args = func_get_args();
618
+    return auth_administrer('verifier_login', $args, '');
619 619
 }
620 620
 
621 621
 /**
@@ -628,8 +628,8 @@  discard block
 block discarded – undo
628 628
  * @return bool
629 629
  */
630 630
 function auth_modifier_login($auth_methode, $new_login, $id_auteur, $serveur = '') {
631
-	$args = func_get_args();
632
-	return auth_administrer('modifier_login', $args);
631
+    $args = func_get_args();
632
+    return auth_administrer('modifier_login', $args);
633 633
 }
634 634
 
635 635
 /**
@@ -644,8 +644,8 @@  discard block
 block discarded – undo
644 644
  *  succès ou échec
645 645
  */
646 646
 function auth_autoriser_modifier_pass($auth_methode, $serveur = '') {
647
-	$args = func_get_args();
648
-	return auth_administrer('autoriser_modifier_pass', $args);
647
+    $args = func_get_args();
648
+    return auth_administrer('autoriser_modifier_pass', $args);
649 649
 }
650 650
 
651 651
 /**
@@ -661,8 +661,8 @@  discard block
 block discarded – undo
661 661
  *  message d'erreur ou chaine vide si pas d'erreur
662 662
  */
663 663
 function auth_verifier_pass($auth_methode, $login, $new_pass, $id_auteur = 0, $serveur = '') {
664
-	$args = func_get_args();
665
-	return auth_administrer('verifier_pass', $args, '');
664
+    $args = func_get_args();
665
+    return auth_administrer('verifier_pass', $args, '');
666 666
 }
667 667
 
668 668
 /**
@@ -678,8 +678,8 @@  discard block
 block discarded – undo
678 678
  *  succes ou echec
679 679
  */
680 680
 function auth_modifier_pass($auth_methode, $login, $new_pass, $id_auteur, $serveur = '') {
681
-	$args = func_get_args();
682
-	return auth_administrer('modifier_pass', $args);
681
+    $args = func_get_args();
682
+    return auth_administrer('modifier_pass', $args);
683 683
 }
684 684
 
685 685
 /**
@@ -695,24 +695,24 @@  discard block
 block discarded – undo
695 695
  * @return void
696 696
  */
697 697
 function auth_synchroniser_distant(
698
-	$auth_methode = true,
699
-	$id_auteur = 0,
700
-	$champs = array(),
701
-	$options = array(),
702
-	$serveur = ''
698
+    $auth_methode = true,
699
+    $id_auteur = 0,
700
+    $champs = array(),
701
+    $options = array(),
702
+    $serveur = ''
703 703
 ) {
704
-	$args = func_get_args();
705
-	if ($auth_methode === true or (isset($options['all']) and $options['all'] == true)) {
706
-		$options['all'] = true; // ajouter une option all=>true pour chaque auth
707
-		$args = array(true, $id_auteur, $champs, $options, $serveur);
708
-		foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
709
-			array_shift($args);
710
-			array_unshift($args, $methode);
711
-			auth_administrer('synchroniser_distant', $args);
712
-		}
713
-	} else {
714
-		auth_administrer('synchroniser_distant', $args);
715
-	}
704
+    $args = func_get_args();
705
+    if ($auth_methode === true or (isset($options['all']) and $options['all'] == true)) {
706
+        $options['all'] = true; // ajouter une option all=>true pour chaque auth
707
+        $args = array(true, $id_auteur, $champs, $options, $serveur);
708
+        foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
709
+            array_shift($args);
710
+            array_unshift($args, $methode);
711
+            auth_administrer('synchroniser_distant', $args);
712
+        }
713
+    } else {
714
+        auth_administrer('synchroniser_distant', $args);
715
+    }
716 716
 }
717 717
 
718 718
 
@@ -725,42 +725,42 @@  discard block
 block discarded – undo
725 725
  * @return array|bool
726 726
  */
727 727
 function lire_php_auth($login, $pw, $serveur = '') {
728
-	if (
729
-		!$login
730
-		or !$login = auth_retrouver_login($login, $serveur)
731
-	) {
732
-		return false;
733
-	}
734
-
735
-	$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login, $serveur, 'text'), '', '', '', '', $serveur);
736
-
737
-	if (!$row) {
738
-		if (spip_connect_ldap($serveur)
739
-			and $auth_ldap = charger_fonction('ldap', 'auth', true)
740
-		) {
741
-			return $auth_ldap($login, $pw, $serveur, true);
742
-		}
743
-
744
-		return false;
745
-	}
746
-	// su pas de source definie
747
-	// ou auth/xxx introuvable, utiliser 'spip'
748
-	if (!$auth_methode = $row['source']
749
-		or !$auth = charger_fonction($auth_methode, 'auth', true)
750
-	) {
751
-		$auth = charger_fonction('spip', 'auth', true);
752
-	}
753
-
754
-	$auteur = '';
755
-	if ($auth) {
756
-		$auteur = $auth($login, $pw, $serveur, true);
757
-	}
758
-	// verifier que ce n'est pas un message d'erreur
759
-	if (is_array($auteur) and count($auteur)) {
760
-		return $auteur;
761
-	}
762
-
763
-	return false;
728
+    if (
729
+        !$login
730
+        or !$login = auth_retrouver_login($login, $serveur)
731
+    ) {
732
+        return false;
733
+    }
734
+
735
+    $row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login, $serveur, 'text'), '', '', '', '', $serveur);
736
+
737
+    if (!$row) {
738
+        if (spip_connect_ldap($serveur)
739
+            and $auth_ldap = charger_fonction('ldap', 'auth', true)
740
+        ) {
741
+            return $auth_ldap($login, $pw, $serveur, true);
742
+        }
743
+
744
+        return false;
745
+    }
746
+    // su pas de source definie
747
+    // ou auth/xxx introuvable, utiliser 'spip'
748
+    if (!$auth_methode = $row['source']
749
+        or !$auth = charger_fonction($auth_methode, 'auth', true)
750
+    ) {
751
+        $auth = charger_fonction('spip', 'auth', true);
752
+    }
753
+
754
+    $auteur = '';
755
+    if ($auth) {
756
+        $auteur = $auth($login, $pw, $serveur, true);
757
+    }
758
+    // verifier que ce n'est pas un message d'erreur
759
+    if (is_array($auteur) and count($auteur)) {
760
+        return $auteur;
761
+    }
762
+
763
+    return false;
764 764
 }
765 765
 
766 766
 /**
@@ -776,21 +776,21 @@  discard block
 block discarded – undo
776 776
  * @param string $lien
777 777
  */
778 778
 function ask_php_auth($pb, $raison, $retour = '', $url = '', $re = '', $lien = '') {
779
-	@Header('WWW-Authenticate: Basic realm="espace prive"');
780
-	@Header('HTTP/1.0 401 Unauthorized');
781
-	$corps = '';
782
-	$public = generer_url_public();
783
-	$ecrire = generer_url_ecrire();
784
-	$retour = $retour ? $retour : _T('icone_retour');
785
-	$corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
786
-	if ($url) {
787
-		$corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
788
-	}
789
-
790
-	if ($lien) {
791
-		$corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
792
-	}
793
-	include_spip('inc/minipres');
794
-	echo minipres($pb, $corps);
795
-	exit;
779
+    @Header('WWW-Authenticate: Basic realm="espace prive"');
780
+    @Header('HTTP/1.0 401 Unauthorized');
781
+    $corps = '';
782
+    $public = generer_url_public();
783
+    $ecrire = generer_url_ecrire();
784
+    $retour = $retour ? $retour : _T('icone_retour');
785
+    $corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
786
+    if ($url) {
787
+        $corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
788
+    }
789
+
790
+    if ($lien) {
791
+        $corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
792
+    }
793
+    include_spip('inc/minipres');
794
+    echo minipres($pb, $corps);
795
+    exit;
796 796
 }
Please login to merge, or discard this patch.
ecrire/inc/filtres_ecrire.php 1 patch
Indentation   +341 added lines, -341 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Filtres
17 17
  */
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('inc/filtres_boites');
@@ -41,27 +41,27 @@  discard block
 block discarded – undo
41 41
  */
42 42
 function parametres_css_prive() {
43 43
 
44
-	$args = array();
45
-	$args['v'] = $GLOBALS['spip_version_code'];
46
-	$args['p'] = substr(md5($GLOBALS['meta']['plugin']), 0, 4);
47
-	$args['themes'] = implode(',', lister_themes_prives());
48
-	$args['ltr'] = $GLOBALS['spip_lang_left'];
49
-	// un md5 des menus : si un menu change il faut maj la css
50
-	$args['md5b'] = (function_exists('md5_boutons_plugins') ? md5_boutons_plugins() : '');
44
+    $args = array();
45
+    $args['v'] = $GLOBALS['spip_version_code'];
46
+    $args['p'] = substr(md5($GLOBALS['meta']['plugin']), 0, 4);
47
+    $args['themes'] = implode(',', lister_themes_prives());
48
+    $args['ltr'] = $GLOBALS['spip_lang_left'];
49
+    // un md5 des menus : si un menu change il faut maj la css
50
+    $args['md5b'] = (function_exists('md5_boutons_plugins') ? md5_boutons_plugins() : '');
51 51
 
52
-	$c = isset($GLOBALS['visiteur_session']['prefs']['couleur'])
53
-		? $GLOBALS['visiteur_session']['prefs']['couleur']
54
-		: 2;
52
+    $c = isset($GLOBALS['visiteur_session']['prefs']['couleur'])
53
+        ? $GLOBALS['visiteur_session']['prefs']['couleur']
54
+        : 2;
55 55
 
56
-	$couleurs = charger_fonction('couleurs', 'inc');
57
-	parse_str($couleurs($c), $c);
58
-	$args = array_merge($args, $c);
56
+    $couleurs = charger_fonction('couleurs', 'inc');
57
+    parse_str($couleurs($c), $c);
58
+    $args = array_merge($args, $c);
59 59
 
60
-	if (_request('var_mode') == 'recalcul' or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul')) {
61
-		$args['var_mode'] = 'recalcul';
62
-	}
60
+    if (_request('var_mode') == 'recalcul' or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul')) {
61
+        $args['var_mode'] = 'recalcul';
62
+    }
63 63
 
64
-	return http_build_query($args);
64
+    return http_build_query($args);
65 65
 }
66 66
 
67 67
 
@@ -84,79 +84,79 @@  discard block
 block discarded – undo
84 84
  * @return string
85 85
  */
86 86
 function chercher_rubrique(
87
-	$titre,
88
-	$id_objet,
89
-	$id_parent,
90
-	$objet,
91
-	$id_secteur,
92
-	$restreint,
93
-	$actionable = false,
94
-	$retour_sans_cadre = false
87
+    $titre,
88
+    $id_objet,
89
+    $id_parent,
90
+    $objet,
91
+    $id_secteur,
92
+    $restreint,
93
+    $actionable = false,
94
+    $retour_sans_cadre = false
95 95
 ) {
96 96
 
97
-	include_spip('inc/autoriser');
98
-	if (intval($id_objet) && !autoriser('modifier', $objet, $id_objet)) {
99
-		return "";
100
-	}
101
-	if (!sql_countsel('spip_rubriques')) {
102
-		return "";
103
-	}
104
-	$chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
105
-	$form = $chercher_rubrique($id_parent, $objet, $restreint, ($objet == 'rubrique') ? $id_objet : 0);
106
-
107
-	if ($id_parent == 0) {
108
-		$logo = "racine-24.png";
109
-	} elseif ($id_secteur == $id_parent) {
110
-		$logo = "secteur-24.png";
111
-	} else {
112
-		$logo = "rubrique-24.png";
113
-	}
114
-
115
-	$confirm = "";
116
-	if ($objet == 'rubrique') {
117
-		// si c'est une rubrique-secteur contenant des breves, demander la
118
-		// confirmation du deplacement
119
-		$contient_breves = sql_countsel('spip_breves', "id_rubrique=" . intval($id_objet));
120
-
121
-		if ($contient_breves > 0) {
122
-			$scb = ($contient_breves > 1 ? 's' : '');
123
-			$scb = _T('avis_deplacement_rubrique',
124
-				array(
125
-					'contient_breves' => $contient_breves,
126
-					'scb' => $scb
127
-				));
128
-			$confirm .= "\n<div class='confirmer_deplacement verdana2'>"
129
-				. "<div class='choix'><input type='checkbox' name='confirme_deplace' value='oui' id='confirme-deplace' /><label for='confirme-deplace'>"
130
-				. $scb .
131
-				"</label></div></div>\n";
132
-		} else {
133
-			$confirm .= "<input type='hidden' name='confirme_deplace' value='oui' />\n";
134
-		}
135
-	}
136
-	$form .= $confirm;
137
-	if ($actionable) {
138
-		if (strpos($form, '<select') !== false) {
139
-			$form .= "<div style='text-align: " . $GLOBALS['spip_lang_right'] . ";'>"
140
-				. '<input class="fondo submit btn" type="submit" value="' . _T('bouton_choisir') . '"/>'
141
-				. "</div>";
142
-		}
143
-		$form = "<input type='hidden' name='editer_$objet' value='oui' />\n" . $form;
144
-		if ($action = charger_fonction("editer_$objet", "action", true)) {
145
-			$form = generer_action_auteur("editer_$objet", $id_objet, self(), $form,
146
-				" method='post' class='submit_plongeur'");
147
-		} else {
148
-			$form = generer_action_auteur("editer_objet", "$objet/$id_objet", self(), $form,
149
-				" method='post' class='submit_plongeur'");
150
-		}
151
-	}
152
-
153
-	if ($retour_sans_cadre) {
154
-		return $form;
155
-	}
156
-
157
-	include_spip('inc/presentation');
158
-
159
-	return debut_cadre_couleur($logo, true, "", $titre) . $form . fin_cadre_couleur(true);
97
+    include_spip('inc/autoriser');
98
+    if (intval($id_objet) && !autoriser('modifier', $objet, $id_objet)) {
99
+        return "";
100
+    }
101
+    if (!sql_countsel('spip_rubriques')) {
102
+        return "";
103
+    }
104
+    $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
105
+    $form = $chercher_rubrique($id_parent, $objet, $restreint, ($objet == 'rubrique') ? $id_objet : 0);
106
+
107
+    if ($id_parent == 0) {
108
+        $logo = "racine-24.png";
109
+    } elseif ($id_secteur == $id_parent) {
110
+        $logo = "secteur-24.png";
111
+    } else {
112
+        $logo = "rubrique-24.png";
113
+    }
114
+
115
+    $confirm = "";
116
+    if ($objet == 'rubrique') {
117
+        // si c'est une rubrique-secteur contenant des breves, demander la
118
+        // confirmation du deplacement
119
+        $contient_breves = sql_countsel('spip_breves', "id_rubrique=" . intval($id_objet));
120
+
121
+        if ($contient_breves > 0) {
122
+            $scb = ($contient_breves > 1 ? 's' : '');
123
+            $scb = _T('avis_deplacement_rubrique',
124
+                array(
125
+                    'contient_breves' => $contient_breves,
126
+                    'scb' => $scb
127
+                ));
128
+            $confirm .= "\n<div class='confirmer_deplacement verdana2'>"
129
+                . "<div class='choix'><input type='checkbox' name='confirme_deplace' value='oui' id='confirme-deplace' /><label for='confirme-deplace'>"
130
+                . $scb .
131
+                "</label></div></div>\n";
132
+        } else {
133
+            $confirm .= "<input type='hidden' name='confirme_deplace' value='oui' />\n";
134
+        }
135
+    }
136
+    $form .= $confirm;
137
+    if ($actionable) {
138
+        if (strpos($form, '<select') !== false) {
139
+            $form .= "<div style='text-align: " . $GLOBALS['spip_lang_right'] . ";'>"
140
+                . '<input class="fondo submit btn" type="submit" value="' . _T('bouton_choisir') . '"/>'
141
+                . "</div>";
142
+        }
143
+        $form = "<input type='hidden' name='editer_$objet' value='oui' />\n" . $form;
144
+        if ($action = charger_fonction("editer_$objet", "action", true)) {
145
+            $form = generer_action_auteur("editer_$objet", $id_objet, self(), $form,
146
+                " method='post' class='submit_plongeur'");
147
+        } else {
148
+            $form = generer_action_auteur("editer_objet", "$objet/$id_objet", self(), $form,
149
+                " method='post' class='submit_plongeur'");
150
+        }
151
+    }
152
+
153
+    if ($retour_sans_cadre) {
154
+        return $form;
155
+    }
156
+
157
+    include_spip('inc/presentation');
158
+
159
+    return debut_cadre_couleur($logo, true, "", $titre) . $form . fin_cadre_couleur(true);
160 160
 
161 161
 }
162 162
 
@@ -171,21 +171,21 @@  discard block
 block discarded – undo
171 171
  * @return bool
172 172
  */
173 173
 function avoir_visiteurs($past = false, $accepter = true) {
174
-	if ($GLOBALS['meta']["forums_publics"] == 'abo') {
175
-		return true;
176
-	}
177
-	if ($accepter and $GLOBALS['meta']["accepter_visiteurs"] <> 'non') {
178
-		return true;
179
-	}
180
-	if (sql_countsel('spip_articles', "accepter_forum='abo'")) {
181
-		return true;
182
-	}
183
-	if (!$past) {
184
-		return false;
185
-	}
186
-
187
-	return sql_countsel('spip_auteurs',
188
-		"statut NOT IN ('0minirezo','1comite', '5poubelle')
174
+    if ($GLOBALS['meta']["forums_publics"] == 'abo') {
175
+        return true;
176
+    }
177
+    if ($accepter and $GLOBALS['meta']["accepter_visiteurs"] <> 'non') {
178
+        return true;
179
+    }
180
+    if (sql_countsel('spip_articles', "accepter_forum='abo'")) {
181
+        return true;
182
+    }
183
+    if (!$past) {
184
+        return false;
185
+    }
186
+
187
+    return sql_countsel('spip_auteurs',
188
+        "statut NOT IN ('0minirezo','1comite', '5poubelle')
189 189
 	                    AND (statut<>'nouveau' OR prefs NOT IN ('0minirezo','1comite', '5poubelle'))");
190 190
 }
191 191
 
@@ -202,18 +202,18 @@  discard block
 block discarded – undo
202 202
  * @return array
203 203
  */
204 204
 function statuts_articles_visibles($statut_auteur) {
205
-	static $auth = array();
206
-	if (!isset($auth[$statut_auteur])) {
207
-		$auth[$statut_auteur] = array();
208
-		$statuts = array_column(sql_allfetsel('distinct statut', 'spip_articles'), 'statut');
209
-		foreach ($statuts as $s) {
210
-			if (autoriser('voir', 'article', 0, array('statut' => $statut_auteur), array('statut' => $s))) {
211
-				$auth[$statut_auteur][] = $s;
212
-			}
213
-		}
214
-	}
215
-
216
-	return $auth[$statut_auteur];
205
+    static $auth = array();
206
+    if (!isset($auth[$statut_auteur])) {
207
+        $auth[$statut_auteur] = array();
208
+        $statuts = array_column(sql_allfetsel('distinct statut', 'spip_articles'), 'statut');
209
+        foreach ($statuts as $s) {
210
+            if (autoriser('voir', 'article', 0, array('statut' => $statut_auteur), array('statut' => $s))) {
211
+                $auth[$statut_auteur][] = $s;
212
+            }
213
+        }
214
+    }
215
+
216
+    return $auth[$statut_auteur];
217 217
 }
218 218
 
219 219
 /**
@@ -227,38 +227,38 @@  discard block
 block discarded – undo
227 227
  * @return string
228 228
  */
229 229
 function traduire_statut_auteur($statut, $attente = "") {
230
-	$plus = "";
231
-	if ($statut == 'nouveau') {
232
-		if ($attente) {
233
-			$statut = $attente;
234
-			$plus = " (" . _T('info_statut_auteur_a_confirmer') . ")";
235
-		} else {
236
-			return _T('info_statut_auteur_a_confirmer');
237
-		}
238
-	}
239
-
240
-	$recom = array(
241
-		"info_administrateurs" => _T('item_administrateur_2'),
242
-		"info_redacteurs" => _T('intem_redacteur'),
243
-		"info_visiteurs" => _T('item_visiteur'),
244
-		'5poubelle' => _T('texte_statut_poubelle'), // bouh
245
-	);
246
-	if (isset($recom[$statut])) {
247
-		return $recom[$statut] . $plus;
248
-	}
249
-
250
-	// retrouver directement par le statut sinon
251
-	if ($t = array_search($statut, $GLOBALS['liste_des_statuts'])) {
252
-		if (isset($recom[$t])) {
253
-			return $recom[$t] . $plus;
254
-		}
255
-
256
-		return _T($t) . $plus;
257
-	}
258
-
259
-	// si on a pas reussi a le traduire, retournons la chaine telle quelle
260
-	// c'est toujours plus informatif que rien du tout
261
-	return $statut;
230
+    $plus = "";
231
+    if ($statut == 'nouveau') {
232
+        if ($attente) {
233
+            $statut = $attente;
234
+            $plus = " (" . _T('info_statut_auteur_a_confirmer') . ")";
235
+        } else {
236
+            return _T('info_statut_auteur_a_confirmer');
237
+        }
238
+    }
239
+
240
+    $recom = array(
241
+        "info_administrateurs" => _T('item_administrateur_2'),
242
+        "info_redacteurs" => _T('intem_redacteur'),
243
+        "info_visiteurs" => _T('item_visiteur'),
244
+        '5poubelle' => _T('texte_statut_poubelle'), // bouh
245
+    );
246
+    if (isset($recom[$statut])) {
247
+        return $recom[$statut] . $plus;
248
+    }
249
+
250
+    // retrouver directement par le statut sinon
251
+    if ($t = array_search($statut, $GLOBALS['liste_des_statuts'])) {
252
+        if (isset($recom[$t])) {
253
+            return $recom[$t] . $plus;
254
+        }
255
+
256
+        return _T($t) . $plus;
257
+    }
258
+
259
+    // si on a pas reussi a le traduire, retournons la chaine telle quelle
260
+    // c'est toujours plus informatif que rien du tout
261
+    return $statut;
262 262
 }
263 263
 
264 264
 /**
@@ -269,28 +269,28 @@  discard block
 block discarded – undo
269 269
  * @return string
270 270
  */
271 271
 function afficher_qui_edite($id_objet, $objet) {
272
-	static $qui = array();
273
-	if (isset($qui[$objet][$id_objet])) {
274
-		return $qui[$objet][$id_objet];
275
-	}
276
-
277
-	if ($GLOBALS['meta']['articles_modif'] == 'non') {
278
-		return $qui[$objet][$id_objet] = '';
279
-	}
280
-
281
-	include_spip('inc/drapeau_edition');
282
-	$modif = mention_qui_edite($id_objet, $objet);
283
-	if (!$modif) {
284
-		return $qui[$objet][$id_objet] = '';
285
-	}
286
-
287
-	include_spip('base/objets');
288
-	$infos = lister_tables_objets_sql(table_objet_sql($objet));
289
-	if (isset($infos['texte_signale_edition'])) {
290
-		return $qui[$objet][$id_objet] = _T($infos['texte_signale_edition'], $modif);
291
-	}
292
-
293
-	return $qui[$objet][$id_objet] = _T('info_qui_edite', $modif);
272
+    static $qui = array();
273
+    if (isset($qui[$objet][$id_objet])) {
274
+        return $qui[$objet][$id_objet];
275
+    }
276
+
277
+    if ($GLOBALS['meta']['articles_modif'] == 'non') {
278
+        return $qui[$objet][$id_objet] = '';
279
+    }
280
+
281
+    include_spip('inc/drapeau_edition');
282
+    $modif = mention_qui_edite($id_objet, $objet);
283
+    if (!$modif) {
284
+        return $qui[$objet][$id_objet] = '';
285
+    }
286
+
287
+    include_spip('base/objets');
288
+    $infos = lister_tables_objets_sql(table_objet_sql($objet));
289
+    if (isset($infos['texte_signale_edition'])) {
290
+        return $qui[$objet][$id_objet] = _T($infos['texte_signale_edition'], $modif);
291
+    }
292
+
293
+    return $qui[$objet][$id_objet] = _T('info_qui_edite', $modif);
294 294
 }
295 295
 
296 296
 /**
@@ -308,57 +308,57 @@  discard block
 block discarded – undo
308 308
  * @return array
309 309
  */
310 310
 function auteurs_lister_statuts($quoi = 'tous', $en_base = true) {
311
-	if (!defined('AUTEURS_MIN_REDAC')) {
312
-		define('AUTEURS_MIN_REDAC', "0minirezo,1comite,5poubelle");
313
-	}
314
-
315
-	switch ($quoi) {
316
-		case "redacteurs":
317
-			$statut = AUTEURS_MIN_REDAC;
318
-			$statut = explode(',', $statut);
319
-			if ($en_base) {
320
-				$check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
321
-				$retire = array_diff($statut, $check);
322
-				$statut = array_diff($statut, $retire);
323
-			}
324
-
325
-			return array_unique($statut);
326
-			break;
327
-		case "visiteurs":
328
-			$statut = array();
329
-			$exclus = AUTEURS_MIN_REDAC;
330
-			$exclus = explode(',', $exclus);
331
-			if (!$en_base) {
332
-				// prendre aussi les statuts de la table des status qui ne sont pas dans le define
333
-				$statut = array_diff(array_values($GLOBALS['liste_des_statuts']), $exclus);
334
-			}
335
-			$s_complement = array_column(
336
-				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $exclus, 'NOT')),
337
-				'statut'
338
-			);
339
-
340
-			return array_unique(array_merge($statut, $s_complement));
341
-			break;
342
-		default:
343
-		case "tous":
344
-			$statut = array_values($GLOBALS['liste_des_statuts']);
345
-			$s_complement = array_column(
346
-				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut, 'NOT')),
347
-				'statut'
348
-			);
349
-			$statut = array_merge($statut, $s_complement);
350
-			if ($en_base) {
351
-				$check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
352
-				$retire = array_diff($statut, $check);
353
-				$statut = array_diff($statut, $retire);
354
-			}
355
-
356
-			return array_unique($statut);
357
-			break;
358
-	}
359
-
360
-	// on arrive jamais ici
361
-	return array_values($GLOBALS['liste_des_statuts']);
311
+    if (!defined('AUTEURS_MIN_REDAC')) {
312
+        define('AUTEURS_MIN_REDAC', "0minirezo,1comite,5poubelle");
313
+    }
314
+
315
+    switch ($quoi) {
316
+        case "redacteurs":
317
+            $statut = AUTEURS_MIN_REDAC;
318
+            $statut = explode(',', $statut);
319
+            if ($en_base) {
320
+                $check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
321
+                $retire = array_diff($statut, $check);
322
+                $statut = array_diff($statut, $retire);
323
+            }
324
+
325
+            return array_unique($statut);
326
+            break;
327
+        case "visiteurs":
328
+            $statut = array();
329
+            $exclus = AUTEURS_MIN_REDAC;
330
+            $exclus = explode(',', $exclus);
331
+            if (!$en_base) {
332
+                // prendre aussi les statuts de la table des status qui ne sont pas dans le define
333
+                $statut = array_diff(array_values($GLOBALS['liste_des_statuts']), $exclus);
334
+            }
335
+            $s_complement = array_column(
336
+                sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $exclus, 'NOT')),
337
+                'statut'
338
+            );
339
+
340
+            return array_unique(array_merge($statut, $s_complement));
341
+            break;
342
+        default:
343
+        case "tous":
344
+            $statut = array_values($GLOBALS['liste_des_statuts']);
345
+            $s_complement = array_column(
346
+                sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut, 'NOT')),
347
+                'statut'
348
+            );
349
+            $statut = array_merge($statut, $s_complement);
350
+            if ($en_base) {
351
+                $check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
352
+                $retire = array_diff($statut, $check);
353
+                $statut = array_diff($statut, $retire);
354
+            }
355
+
356
+            return array_unique($statut);
357
+            break;
358
+    }
359
+
360
+    // on arrive jamais ici
361
+    return array_values($GLOBALS['liste_des_statuts']);
362 362
 }
363 363
 
364 364
 /**
@@ -374,28 +374,28 @@  discard block
 block discarded – undo
374 374
  */
375 375
 function trouver_rubrique_creer_objet($id_rubrique, $objet) {
376 376
 
377
-	if (!$id_rubrique and defined('_CHOIX_RUBRIQUE_PAR_DEFAUT') and _CHOIX_RUBRIQUE_PAR_DEFAUT) {
378
-		$in = !count($GLOBALS['connect_id_rubrique'])
379
-			? ''
380
-			: (" AND " . sql_in('id_rubrique', $GLOBALS['connect_id_rubrique']));
381
-
382
-		// on tente d'abord l'ecriture a la racine dans le cas des rubriques uniquement
383
-		if ($objet == 'rubrique') {
384
-			$id_rubrique = 0;
385
-		} else {
386
-			$id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', "id_parent=0$in", '', "id_rubrique DESC", 1);
387
-		}
388
-
389
-		if (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique)) {
390
-			// manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
391
-			$res = sql_select("id_rubrique", "spip_rubriques", "id_parent=0");
392
-			while (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique) && $row_rub = sql_fetch($res)) {
393
-				$id_rubrique = $row_rub['id_rubrique'];
394
-			}
395
-		}
396
-	}
397
-
398
-	return $id_rubrique;
377
+    if (!$id_rubrique and defined('_CHOIX_RUBRIQUE_PAR_DEFAUT') and _CHOIX_RUBRIQUE_PAR_DEFAUT) {
378
+        $in = !count($GLOBALS['connect_id_rubrique'])
379
+            ? ''
380
+            : (" AND " . sql_in('id_rubrique', $GLOBALS['connect_id_rubrique']));
381
+
382
+        // on tente d'abord l'ecriture a la racine dans le cas des rubriques uniquement
383
+        if ($objet == 'rubrique') {
384
+            $id_rubrique = 0;
385
+        } else {
386
+            $id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', "id_parent=0$in", '', "id_rubrique DESC", 1);
387
+        }
388
+
389
+        if (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique)) {
390
+            // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
391
+            $res = sql_select("id_rubrique", "spip_rubriques", "id_parent=0");
392
+            while (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique) && $row_rub = sql_fetch($res)) {
393
+                $id_rubrique = $row_rub['id_rubrique'];
394
+            }
395
+        }
396
+    }
397
+
398
+    return $id_rubrique;
399 399
 }
400 400
 
401 401
 /**
@@ -406,12 +406,12 @@  discard block
 block discarded – undo
406 406
  * @return string
407 407
  */
408 408
 function lien_article_virtuel($virtuel) {
409
-	include_spip('inc/lien');
410
-	if (!$virtuel = virtuel_redirige($virtuel)) {
411
-		return '';
412
-	}
409
+    include_spip('inc/lien');
410
+    if (!$virtuel = virtuel_redirige($virtuel)) {
411
+        return '';
412
+    }
413 413
 
414
-	return propre("[->" . $virtuel . "]");
414
+    return propre("[->" . $virtuel . "]");
415 415
 }
416 416
 
417 417
 
@@ -434,12 +434,12 @@  discard block
 block discarded – undo
434 434
  *     Code HTML du lien
435 435
  */
436 436
 function bouton_spip_rss($op, $args = array(), $lang = '', $title = 'RSS') {
437
-	include_spip('inc/acces');
438
-	$clic = http_img_pack('rss-16.png', 'RSS', '', $title);
439
-	$args = param_low_sec($op, $args, $lang, 'rss');
440
-	$url = generer_url_public('rss', $args);
437
+    include_spip('inc/acces');
438
+    $clic = http_img_pack('rss-16.png', 'RSS', '', $title);
439
+    $args = param_low_sec($op, $args, $lang, 'rss');
440
+    $url = generer_url_public('rss', $args);
441 441
 
442
-	return "<a style='float: " . $GLOBALS['spip_lang_right'] . ";' href='$url'>$clic</a>";
442
+    return "<a style='float: " . $GLOBALS['spip_lang_right'] . ";' href='$url'>$clic</a>";
443 443
 }
444 444
 
445 445
 
@@ -451,70 +451,70 @@  discard block
 block discarded – undo
451 451
  */
452 452
 function alertes_auteur($id_auteur) {
453 453
 
454
-	$alertes = array();
455
-
456
-	if (isset($GLOBALS['meta']['message_crash_tables'])
457
-		and autoriser('detruire', null, null, $id_auteur)
458
-	) {
459
-		include_spip('genie/maintenance');
460
-		if ($msg = message_crash_tables()) {
461
-			$alertes[] = $msg;
462
-		}
463
-	}
464
-
465
-	if (isset($GLOBALS['meta']['message_crash_plugins'])
466
-		and $GLOBALS['meta']['message_crash_plugins']
467
-		and autoriser('configurer', '_plugins', null, $id_auteur)
468
-		and is_array($msg = unserialize($GLOBALS['meta']['message_crash_plugins']))
469
-	) {
470
-		$msg = implode(', ', array_map('joli_repertoire', array_keys($msg)));
471
-		$alertes[] = _T('plugins_erreur', array('plugins' => $msg));
472
-	}
473
-
474
-	$a = isset($GLOBALS['meta']['message_alertes_auteurs']) ? $GLOBALS['meta']['message_alertes_auteurs'] : '';
475
-	if ($a
476
-		and is_array($a = unserialize($a))
477
-		and count($a)
478
-	) {
479
-		$update = false;
480
-		if (isset($a[$GLOBALS['visiteur_session']['statut']])) {
481
-			$alertes = array_merge($alertes, $a[$GLOBALS['visiteur_session']['statut']]);
482
-			unset($a[$GLOBALS['visiteur_session']['statut']]);
483
-			$update = true;
484
-		}
485
-		if (isset($a[''])) {
486
-			$alertes = array_merge($alertes, $a['']);
487
-			unset($a['']);
488
-			$update = true;
489
-		}
490
-		if ($update) {
491
-			ecrire_meta("message_alertes_auteurs", serialize($a));
492
-		}
493
-	}
494
-
495
-	if (isset($GLOBALS['meta']['plugin_erreur_activation'])
496
-		and autoriser('configurer', '_plugins', null, $id_auteur)
497
-	) {
498
-		include_spip('inc/plugin');
499
-		$alertes[] = plugin_donne_erreurs();
500
-	}
501
-
502
-	$alertes = pipeline(
503
-		'alertes_auteur',
504
-		array(
505
-			'args' => array(
506
-				'id_auteur' => $id_auteur,
507
-				'exec' => _request('exec'),
508
-			),
509
-			'data' => $alertes
510
-		)
511
-	);
512
-
513
-	if ($alertes = array_filter($alertes)) {
514
-		return "<div class='wrap-messages-alertes'><div class='messages-alertes'>" .
515
-		join(' | ', $alertes)
516
-		. "</div></div>";
517
-	}
454
+    $alertes = array();
455
+
456
+    if (isset($GLOBALS['meta']['message_crash_tables'])
457
+        and autoriser('detruire', null, null, $id_auteur)
458
+    ) {
459
+        include_spip('genie/maintenance');
460
+        if ($msg = message_crash_tables()) {
461
+            $alertes[] = $msg;
462
+        }
463
+    }
464
+
465
+    if (isset($GLOBALS['meta']['message_crash_plugins'])
466
+        and $GLOBALS['meta']['message_crash_plugins']
467
+        and autoriser('configurer', '_plugins', null, $id_auteur)
468
+        and is_array($msg = unserialize($GLOBALS['meta']['message_crash_plugins']))
469
+    ) {
470
+        $msg = implode(', ', array_map('joli_repertoire', array_keys($msg)));
471
+        $alertes[] = _T('plugins_erreur', array('plugins' => $msg));
472
+    }
473
+
474
+    $a = isset($GLOBALS['meta']['message_alertes_auteurs']) ? $GLOBALS['meta']['message_alertes_auteurs'] : '';
475
+    if ($a
476
+        and is_array($a = unserialize($a))
477
+        and count($a)
478
+    ) {
479
+        $update = false;
480
+        if (isset($a[$GLOBALS['visiteur_session']['statut']])) {
481
+            $alertes = array_merge($alertes, $a[$GLOBALS['visiteur_session']['statut']]);
482
+            unset($a[$GLOBALS['visiteur_session']['statut']]);
483
+            $update = true;
484
+        }
485
+        if (isset($a[''])) {
486
+            $alertes = array_merge($alertes, $a['']);
487
+            unset($a['']);
488
+            $update = true;
489
+        }
490
+        if ($update) {
491
+            ecrire_meta("message_alertes_auteurs", serialize($a));
492
+        }
493
+    }
494
+
495
+    if (isset($GLOBALS['meta']['plugin_erreur_activation'])
496
+        and autoriser('configurer', '_plugins', null, $id_auteur)
497
+    ) {
498
+        include_spip('inc/plugin');
499
+        $alertes[] = plugin_donne_erreurs();
500
+    }
501
+
502
+    $alertes = pipeline(
503
+        'alertes_auteur',
504
+        array(
505
+            'args' => array(
506
+                'id_auteur' => $id_auteur,
507
+                'exec' => _request('exec'),
508
+            ),
509
+            'data' => $alertes
510
+        )
511
+    );
512
+
513
+    if ($alertes = array_filter($alertes)) {
514
+        return "<div class='wrap-messages-alertes'><div class='messages-alertes'>" .
515
+        join(' | ', $alertes)
516
+        . "</div></div>";
517
+    }
518 518
 }
519 519
 
520 520
 /**
@@ -524,9 +524,9 @@  discard block
 block discarded – undo
524 524
  * @return string
525 525
  */
526 526
 function filtre_afficher_enfant_rub_dist($id_rubrique) {
527
-	include_spip('inc/presenter_enfants');
527
+    include_spip('inc/presenter_enfants');
528 528
 
529
-	return afficher_enfant_rub(intval($id_rubrique));
529
+    return afficher_enfant_rub(intval($id_rubrique));
530 530
 }
531 531
 
532 532
 /**
@@ -544,15 +544,15 @@  discard block
 block discarded – undo
544 544
  * @return string
545 545
  */
546 546
 function afficher_plus_info($lien, $titre = "+", $titre_lien = "") {
547
-	$titre = attribut_html($titre);
548
-	$icone = "\n<a href='$lien' title='$titre' class='plus_info'>" .
549
-		http_img_pack("information-16.png", $titre) . "</a>";
550
-
551
-	if (!$titre_lien) {
552
-		return $icone;
553
-	} else {
554
-		return $icone . "\n<a href='$lien'>$titre_lien</a>";
555
-	}
547
+    $titre = attribut_html($titre);
548
+    $icone = "\n<a href='$lien' title='$titre' class='plus_info'>" .
549
+        http_img_pack("information-16.png", $titre) . "</a>";
550
+
551
+    if (!$titre_lien) {
552
+        return $icone;
553
+    } else {
554
+        return $icone . "\n<a href='$lien'>$titre_lien</a>";
555
+    }
556 556
 }
557 557
 
558 558
 
@@ -571,18 +571,18 @@  discard block
 block discarded – undo
571 571
  * @return array
572 572
  */
573 573
 function lister_objets_lies($objet_source, $objet, $id_objet, $objet_lien) {
574
-	$res = lister_objets_liens($objet_source, $objet, $id_objet, $objet_lien);
575
-	if (!count($res)) {
576
-		return [];
577
-	}
578
-	$r = reset($res);
579
-	if (isset($r['rang_lien'])) {
580
-		$l = array_column($res, 'rang_lien', $objet_source);
581
-		asort($l);
582
-		$l = array_keys($l);
583
-	} else {
584
-		$l = array_column($res, $objet_source);
585
-	}
586
-	return $l;
574
+    $res = lister_objets_liens($objet_source, $objet, $id_objet, $objet_lien);
575
+    if (!count($res)) {
576
+        return [];
577
+    }
578
+    $r = reset($res);
579
+    if (isset($r['rang_lien'])) {
580
+        $l = array_column($res, 'rang_lien', $objet_source);
581
+        asort($l);
582
+        $l = array_keys($l);
583
+    } else {
584
+        $l = array_column($res, $objet_source);
585
+    }
586
+    return $l;
587 587
 }
588 588
 
Please login to merge, or discard this patch.
ecrire/inc/commencer_page.php 2 patches
Indentation   +64 added lines, -64 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,25 +43,25 @@  discard block
 block discarded – undo
43 43
  * @return string Code HTML
44 44
  **/
45 45
 function inc_commencer_page_dist(
46
-	$titre = "",
47
-	$rubrique = "accueil",
48
-	$sous_rubrique = "accueil",
49
-	$id_rubrique = "",
50
-	$menu = true,
51
-	$minipres = false,
52
-	$alertes = true
46
+    $titre = "",
47
+    $rubrique = "accueil",
48
+    $sous_rubrique = "accueil",
49
+    $id_rubrique = "",
50
+    $menu = true,
51
+    $minipres = false,
52
+    $alertes = true
53 53
 ) {
54 54
 
55
-	include_spip('inc/headers');
55
+    include_spip('inc/headers');
56 56
 
57
-	http_no_cache();
57
+    http_no_cache();
58 58
 
59
-	return init_entete($titre, $id_rubrique, $minipres)
60
-	. init_body($rubrique, $sous_rubrique, $id_rubrique, $menu)
61
-	. "<div id='page'>"
62
-	. auteurs_recemment_connectes($GLOBALS['connect_id_auteur'])
63
-	. ($alertes ? alertes_auteur($GLOBALS['connect_id_auteur']) : '')
64
-	. '<div class="largeur">';
59
+    return init_entete($titre, $id_rubrique, $minipres)
60
+    . init_body($rubrique, $sous_rubrique, $id_rubrique, $menu)
61
+    . "<div id='page'>"
62
+    . auteurs_recemment_connectes($GLOBALS['connect_id_auteur'])
63
+    . ($alertes ? alertes_auteur($GLOBALS['connect_id_auteur']) : '')
64
+    . '<div class="largeur">';
65 65
 }
66 66
 
67 67
 /**
@@ -82,21 +82,21 @@  discard block
 block discarded – undo
82 82
  *     Entête du fichier HTML avec le DOCTYPE
83 83
  */
84 84
 function init_entete($titre = '', $dummy = 0, $minipres = false) {
85
-	include_spip('inc/texte');
86
-	if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']["nom_site"]))) {
87
-		$nom_site_spip = _T('info_mon_site_spip');
88
-	}
89
-
90
-	$titre = "["
91
-		. $nom_site_spip
92
-		. "]"
93
-		. ($titre ? " " . textebrut(typo($titre)) : "");
94
-
95
-	return _DOCTYPE_ECRIRE
96
-	. html_lang_attributes()
97
-	. "<head>\n"
98
-	. init_head($titre, $dummy, $minipres)
99
-	. "</head>\n";
85
+    include_spip('inc/texte');
86
+    if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']["nom_site"]))) {
87
+        $nom_site_spip = _T('info_mon_site_spip');
88
+    }
89
+
90
+    $titre = "["
91
+        . $nom_site_spip
92
+        . "]"
93
+        . ($titre ? " " . textebrut(typo($titre)) : "");
94
+
95
+    return _DOCTYPE_ECRIRE
96
+    . html_lang_attributes()
97
+    . "<head>\n"
98
+    . init_head($titre, $dummy, $minipres)
99
+    . "</head>\n";
100 100
 }
101 101
 
102 102
 /**
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
  * @return string
111 111
  */
112 112
 function init_head($titre = '', $dummy = 0, $minipres = false) {
113
-	return recuperer_fond("prive/squelettes/head/dist", array('titre' => $titre, 'minipres' => $minipres ? ' ' : ''));
113
+    return recuperer_fond("prive/squelettes/head/dist", array('titre' => $titre, 'minipres' => $minipres ? ' ' : ''));
114 114
 }
115 115
 
116 116
 /**
@@ -132,20 +132,20 @@  discard block
 block discarded – undo
132 132
  */
133 133
 function init_body($rubrique = 'accueil', $sous_rubrique = 'accueil', $id_rubrique = '', $menu = true) {
134 134
 
135
-	$res = pipeline('body_prive', "<body class='"
136
-		. init_body_class() . " " . _request('exec') . "'"
137
-		. ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : "")
138
-		. '>');
135
+    $res = pipeline('body_prive', "<body class='"
136
+        . init_body_class() . " " . _request('exec') . "'"
137
+        . ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : "")
138
+        . '>');
139 139
 
140
-	if (!$menu) {
141
-		return $res;
142
-	}
140
+    if (!$menu) {
141
+        return $res;
142
+    }
143 143
 
144 144
 
145
-	$bandeau = charger_fonction('bandeau', 'inc');
145
+    $bandeau = charger_fonction('bandeau', 'inc');
146 146
 
147
-	return $res
148
-	. $bandeau();
147
+    return $res
148
+    . $bandeau();
149 149
 }
150 150
 
151 151
 /**
@@ -157,27 +157,27 @@  discard block
 block discarded – undo
157 157
  * @return string Classes CSS (séparées par des espaces)
158 158
  */
159 159
 function init_body_class() {
160
-	$prefs = isset($GLOBALS['visiteur_session']['prefs']) ? $GLOBALS['visiteur_session']['prefs'] : array();
161
-
162
-	$GLOBALS['spip_display'] = isset($prefs['display']) ? (int) $prefs['display'] : 2;
163
-	$spip_display_navigation = isset($prefs['display_navigation']) ? spip_sanitize_classname($prefs['display_navigation']) : 'navigation_avec_icones';
164
-	$spip_display_outils = isset($prefs['display_outils'])
165
-		? ($prefs['display_outils'] ? 'navigation_avec_outils' : 'navigation_sans_outils')
166
-		: 'navigation_avec_outils';
167
-	$GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ? spip_sanitize_classname($_COOKIE['spip_ecran']) : "etroit";
168
-
169
-	$display_class = array(
170
-		0 => 'icones_img_texte'
171
-		/*init*/,
172
-		1 => 'icones_texte',
173
-		2 => 'icones_img_texte',
174
-		3 => 'icones_img'
175
-	);
176
-
177
-	$couleur = isset($prefs['couleur']) ? (int) $prefs['couleur'] : 2;
178
-
179
-	$classes = $GLOBALS['spip_ecran'] . " spip-theme-colors-$couleur $spip_display_navigation $spip_display_outils " . $display_class[$GLOBALS['spip_display']];
180
-	return spip_sanitize_classname($classes);
160
+    $prefs = isset($GLOBALS['visiteur_session']['prefs']) ? $GLOBALS['visiteur_session']['prefs'] : array();
161
+
162
+    $GLOBALS['spip_display'] = isset($prefs['display']) ? (int) $prefs['display'] : 2;
163
+    $spip_display_navigation = isset($prefs['display_navigation']) ? spip_sanitize_classname($prefs['display_navigation']) : 'navigation_avec_icones';
164
+    $spip_display_outils = isset($prefs['display_outils'])
165
+        ? ($prefs['display_outils'] ? 'navigation_avec_outils' : 'navigation_sans_outils')
166
+        : 'navigation_avec_outils';
167
+    $GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ? spip_sanitize_classname($_COOKIE['spip_ecran']) : "etroit";
168
+
169
+    $display_class = array(
170
+        0 => 'icones_img_texte'
171
+        /*init*/,
172
+        1 => 'icones_texte',
173
+        2 => 'icones_img_texte',
174
+        3 => 'icones_img'
175
+    );
176
+
177
+    $couleur = isset($prefs['couleur']) ? (int) $prefs['couleur'] : 2;
178
+
179
+    $classes = $GLOBALS['spip_ecran'] . " spip-theme-colors-$couleur $spip_display_navigation $spip_display_outils " . $display_class[$GLOBALS['spip_display']];
180
+    return spip_sanitize_classname($classes);
181 181
 }
182 182
 
183 183
 
@@ -188,5 +188,5 @@  discard block
 block discarded – undo
188 188
  * @return string
189 189
  */
190 190
 function auteurs_recemment_connectes($id_auteur) {
191
-	return recuperer_fond('prive/objets/liste/auteurs_enligne');
191
+    return recuperer_fond('prive/objets/liste/auteurs_enligne');
192 192
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 	$titre = "["
91 91
 		. $nom_site_spip
92 92
 		. "]"
93
-		. ($titre ? " " . textebrut(typo($titre)) : "");
93
+		. ($titre ? " ".textebrut(typo($titre)) : "");
94 94
 
95 95
 	return _DOCTYPE_ECRIRE
96 96
 	. html_lang_attributes()
@@ -133,7 +133,7 @@  discard block
 block discarded – undo
133 133
 function init_body($rubrique = 'accueil', $sous_rubrique = 'accueil', $id_rubrique = '', $menu = true) {
134 134
 
135 135
 	$res = pipeline('body_prive', "<body class='"
136
-		. init_body_class() . " " . _request('exec') . "'"
136
+		. init_body_class()." "._request('exec')."'"
137 137
 		. ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : "")
138 138
 		. '>');
139 139
 
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
 
177 177
 	$couleur = isset($prefs['couleur']) ? (int) $prefs['couleur'] : 2;
178 178
 
179
-	$classes = $GLOBALS['spip_ecran'] . " spip-theme-colors-$couleur $spip_display_navigation $spip_display_outils " . $display_class[$GLOBALS['spip_display']];
179
+	$classes = $GLOBALS['spip_ecran']." spip-theme-colors-$couleur $spip_display_navigation $spip_display_outils ".$display_class[$GLOBALS['spip_display']];
180 180
 	return spip_sanitize_classname($classes);
181 181
 }
182 182
 
Please login to merge, or discard this patch.