Completed
Push — master ( d593dc...91e0b1 )
by cam
01:24
created
ecrire/inc/precharger_objet.php 1 patch
Indentation   +138 added lines, -138 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('inc/autoriser'); // necessaire si appel de l'espace public
@@ -45,69 +45,69 @@  discard block
 block discarded – undo
45 45
  **/
46 46
 function precharger_objet($type, $id_objet, $id_rubrique = 0, $lier_trad = 0, $champ_titre = 'titre') {
47 47
 
48
-	$table = table_objet_sql($type);
49
-	$_id_objet = id_table_objet($table);
50
-
51
-	// si l'objet existe deja, on retourne simplement ses valeurs
52
-	if (is_numeric($id_objet)) {
53
-		return sql_fetsel('*', $table, "$_id_objet=" . intval($id_objet));
54
-	}
55
-
56
-	// ici, on demande une creation.
57
-	// on prerempli certains elements : les champs si traduction,
58
-	// les id_rubrique et id_secteur si l'objet a ces champs
59
-	$desc = lister_tables_objets_sql($table);
60
-	# il faudrait calculer $champ_titre ici
61
-	$is_rubrique = isset($desc['field']['id_rubrique']);
62
-	$is_secteur = isset($desc['field']['id_secteur']);
63
-
64
-	// si demande de traduction
65
-	// on recupere les valeurs de la traduction
66
-	if ($lier_trad) {
67
-		if ($select = charger_fonction('precharger_traduction_' . $type, 'inc', true)) {
68
-			$row = $select($id_objet, $id_rubrique, $lier_trad);
69
-		} else {
70
-			$row = precharger_traduction_objet($type, $id_objet, $id_rubrique, $lier_trad, $champ_titre);
71
-		}
72
-	} else {
73
-		$row[$champ_titre] = '';
74
-		if ($is_rubrique) {
75
-			$row['id_rubrique'] = $id_rubrique;
76
-		}
77
-	}
78
-
79
-	// calcul de la rubrique
80
-	# note : comment faire pour des traductions sur l'objet rubriques ?
81
-	if ($is_rubrique) {
82
-		// appel du script a la racine, faut choisir
83
-		// admin restreint ==> sa premiere rubrique
84
-		// autre ==> la derniere rubrique cree
85
-		if (!$row['id_rubrique']) {
86
-			if ($GLOBALS['connect_id_rubrique']) {
87
-				$row['id_rubrique'] = $id_rubrique = current($GLOBALS['connect_id_rubrique']);
88
-			} else {
89
-				$row_rub = sql_fetsel('id_rubrique', 'spip_rubriques', '', '', 'id_rubrique DESC', 1);
90
-				$row['id_rubrique'] = $id_rubrique = $row_rub['id_rubrique'];
91
-			}
92
-			if (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique'])) {
93
-				// manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
94
-				$res = sql_select('id_rubrique', 'spip_rubriques', 'id_parent=0');
95
-				while (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique']) && $row_rub = sql_fetch($res)) {
96
-					$row['id_rubrique'] = $row_rub['id_rubrique'];
97
-				}
98
-			}
99
-		}
100
-	}
101
-
102
-	// recuperer le secteur, pour affecter les bons champs extras
103
-	if ($id_rubrique and $is_secteur) {
104
-		if (!$row['id_secteur']) {
105
-			$row_rub = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . sql_quote($id_rubrique));
106
-			$row['id_secteur'] = $row_rub;
107
-		}
108
-	}
109
-
110
-	return $row;
48
+    $table = table_objet_sql($type);
49
+    $_id_objet = id_table_objet($table);
50
+
51
+    // si l'objet existe deja, on retourne simplement ses valeurs
52
+    if (is_numeric($id_objet)) {
53
+        return sql_fetsel('*', $table, "$_id_objet=" . intval($id_objet));
54
+    }
55
+
56
+    // ici, on demande une creation.
57
+    // on prerempli certains elements : les champs si traduction,
58
+    // les id_rubrique et id_secteur si l'objet a ces champs
59
+    $desc = lister_tables_objets_sql($table);
60
+    # il faudrait calculer $champ_titre ici
61
+    $is_rubrique = isset($desc['field']['id_rubrique']);
62
+    $is_secteur = isset($desc['field']['id_secteur']);
63
+
64
+    // si demande de traduction
65
+    // on recupere les valeurs de la traduction
66
+    if ($lier_trad) {
67
+        if ($select = charger_fonction('precharger_traduction_' . $type, 'inc', true)) {
68
+            $row = $select($id_objet, $id_rubrique, $lier_trad);
69
+        } else {
70
+            $row = precharger_traduction_objet($type, $id_objet, $id_rubrique, $lier_trad, $champ_titre);
71
+        }
72
+    } else {
73
+        $row[$champ_titre] = '';
74
+        if ($is_rubrique) {
75
+            $row['id_rubrique'] = $id_rubrique;
76
+        }
77
+    }
78
+
79
+    // calcul de la rubrique
80
+    # note : comment faire pour des traductions sur l'objet rubriques ?
81
+    if ($is_rubrique) {
82
+        // appel du script a la racine, faut choisir
83
+        // admin restreint ==> sa premiere rubrique
84
+        // autre ==> la derniere rubrique cree
85
+        if (!$row['id_rubrique']) {
86
+            if ($GLOBALS['connect_id_rubrique']) {
87
+                $row['id_rubrique'] = $id_rubrique = current($GLOBALS['connect_id_rubrique']);
88
+            } else {
89
+                $row_rub = sql_fetsel('id_rubrique', 'spip_rubriques', '', '', 'id_rubrique DESC', 1);
90
+                $row['id_rubrique'] = $id_rubrique = $row_rub['id_rubrique'];
91
+            }
92
+            if (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique'])) {
93
+                // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
94
+                $res = sql_select('id_rubrique', 'spip_rubriques', 'id_parent=0');
95
+                while (!autoriser('creerarticledans', 'rubrique', $row['id_rubrique']) && $row_rub = sql_fetch($res)) {
96
+                    $row['id_rubrique'] = $row_rub['id_rubrique'];
97
+                }
98
+            }
99
+        }
100
+    }
101
+
102
+    // recuperer le secteur, pour affecter les bons champs extras
103
+    if ($id_rubrique and $is_secteur) {
104
+        if (!$row['id_secteur']) {
105
+            $row_rub = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . sql_quote($id_rubrique));
106
+            $row['id_secteur'] = $row_rub;
107
+        }
108
+    }
109
+
110
+    return $row;
111 111
 }
112 112
 
113 113
 
@@ -129,78 +129,78 @@  discard block
 block discarded – undo
129 129
  *     Couples clés / valeurs des champs du formulaire à charger
130 130
  **/
131 131
 function precharger_traduction_objet($type, $id_objet, $id_rubrique = 0, $lier_trad = 0, $champ_titre = 'titre') {
132
-	$table = table_objet_sql($type);
133
-	$_id_objet = id_table_objet($table);
134
-
135
-	// Recuperer les donnees de l'objet original
136
-	$row = sql_fetsel('*', $table, "$_id_objet=" . intval($lier_trad));
137
-	if ($row) {
138
-		include_spip('inc/filtres');
139
-		$row[$champ_titre] = filtrer_entites(objet_T($type, 'info_nouvelle_traduction')) . ' ' . $row[$champ_titre];
140
-	} else {
141
-		$row = [];
142
-	}
143
-
144
-	// on met l'objet dans une rubrique si l'objet le peut
145
-	$desc = lister_tables_objets_sql($table);
146
-	$is_rubrique = isset($desc['field']['id_rubrique']);
147
-
148
-	if ($is_rubrique) {
149
-		$langues_dispo = explode(',', $GLOBALS['meta']['langues_multilingue']);
150
-		// si le redacteur utilise une autre langue que celle de la source, on suppose que c'est pour traduire dans sa langue
151
-		if (in_array($GLOBALS['spip_lang'], $langues_dispo) and $GLOBALS['spip_lang'] !== $row['lang']) {
152
-			$row['lang'] = $GLOBALS['spip_lang'];
153
-		}
154
-		// sinon si il y a seulement 2 langues dispos, on bascule sur l'"autre"
155
-		elseif (count($langues_dispo) == 2) {
156
-			$autre_langue = array_diff($langues_dispo, [$row['lang']]);
157
-			if (count($autre_langue) == 1) {
158
-				$row['lang'] = reset($autre_langue);
159
-			}
160
-		}
161
-		else {
162
-			$row['lang'] = 'en';
163
-		}
164
-
165
-		if ($id_rubrique) {
166
-			$row['id_rubrique'] = $id_rubrique;
167
-
168
-			return $row;
169
-		}
170
-		$id_rubrique = $row['id_rubrique'];
171
-
172
-
173
-		// Regler la langue, si possible, sur celle du redacteur
174
-		// Cela implique souvent de choisir une rubrique ou un secteur
175
-		if (in_array($GLOBALS['spip_lang'], $langues_dispo)) {
176
-			// Si le menu de langues est autorise sur l'objet,
177
-			// on peut changer la langue quelle que soit la rubrique
178
-			// donc on reste dans la meme rubrique
179
-			if (in_array($table, explode(',', $GLOBALS['meta']['multi_objets']))) {
180
-				$row['id_rubrique'] = $row['id_rubrique']; # explicite :-)
181
-
182
-				// Sinon, chercher la rubrique la plus adaptee pour
183
-				// accueillir l'objet dans la langue du traducteur
184
-			} elseif ($is_rubrique and $GLOBALS['meta']['multi_rubriques'] == 'oui') {
185
-				if ($GLOBALS['meta']['multi_secteurs'] == 'oui') {
186
-					$id_parent = 0;
187
-				} else {
188
-					// on cherche une rubrique soeur dans la bonne langue
189
-					$row_rub = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
190
-					$id_parent = $row_rub['id_parent'];
191
-				}
192
-
193
-				$row_rub = sql_fetsel(
194
-					'id_rubrique',
195
-					'spip_rubriques',
196
-					"lang='" . $GLOBALS['spip_lang'] . "' AND id_parent=" . intval($id_parent)
197
-				);
198
-				if ($row_rub) {
199
-					$row['id_rubrique'] = $row_rub['id_rubrique'];
200
-				}
201
-			}
202
-		}
203
-	}
204
-
205
-	return $row;
132
+    $table = table_objet_sql($type);
133
+    $_id_objet = id_table_objet($table);
134
+
135
+    // Recuperer les donnees de l'objet original
136
+    $row = sql_fetsel('*', $table, "$_id_objet=" . intval($lier_trad));
137
+    if ($row) {
138
+        include_spip('inc/filtres');
139
+        $row[$champ_titre] = filtrer_entites(objet_T($type, 'info_nouvelle_traduction')) . ' ' . $row[$champ_titre];
140
+    } else {
141
+        $row = [];
142
+    }
143
+
144
+    // on met l'objet dans une rubrique si l'objet le peut
145
+    $desc = lister_tables_objets_sql($table);
146
+    $is_rubrique = isset($desc['field']['id_rubrique']);
147
+
148
+    if ($is_rubrique) {
149
+        $langues_dispo = explode(',', $GLOBALS['meta']['langues_multilingue']);
150
+        // si le redacteur utilise une autre langue que celle de la source, on suppose que c'est pour traduire dans sa langue
151
+        if (in_array($GLOBALS['spip_lang'], $langues_dispo) and $GLOBALS['spip_lang'] !== $row['lang']) {
152
+            $row['lang'] = $GLOBALS['spip_lang'];
153
+        }
154
+        // sinon si il y a seulement 2 langues dispos, on bascule sur l'"autre"
155
+        elseif (count($langues_dispo) == 2) {
156
+            $autre_langue = array_diff($langues_dispo, [$row['lang']]);
157
+            if (count($autre_langue) == 1) {
158
+                $row['lang'] = reset($autre_langue);
159
+            }
160
+        }
161
+        else {
162
+            $row['lang'] = 'en';
163
+        }
164
+
165
+        if ($id_rubrique) {
166
+            $row['id_rubrique'] = $id_rubrique;
167
+
168
+            return $row;
169
+        }
170
+        $id_rubrique = $row['id_rubrique'];
171
+
172
+
173
+        // Regler la langue, si possible, sur celle du redacteur
174
+        // Cela implique souvent de choisir une rubrique ou un secteur
175
+        if (in_array($GLOBALS['spip_lang'], $langues_dispo)) {
176
+            // Si le menu de langues est autorise sur l'objet,
177
+            // on peut changer la langue quelle que soit la rubrique
178
+            // donc on reste dans la meme rubrique
179
+            if (in_array($table, explode(',', $GLOBALS['meta']['multi_objets']))) {
180
+                $row['id_rubrique'] = $row['id_rubrique']; # explicite :-)
181
+
182
+                // Sinon, chercher la rubrique la plus adaptee pour
183
+                // accueillir l'objet dans la langue du traducteur
184
+            } elseif ($is_rubrique and $GLOBALS['meta']['multi_rubriques'] == 'oui') {
185
+                if ($GLOBALS['meta']['multi_secteurs'] == 'oui') {
186
+                    $id_parent = 0;
187
+                } else {
188
+                    // on cherche une rubrique soeur dans la bonne langue
189
+                    $row_rub = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
190
+                    $id_parent = $row_rub['id_parent'];
191
+                }
192
+
193
+                $row_rub = sql_fetsel(
194
+                    'id_rubrique',
195
+                    'spip_rubriques',
196
+                    "lang='" . $GLOBALS['spip_lang'] . "' AND id_parent=" . intval($id_parent)
197
+                );
198
+                if ($row_rub) {
199
+                    $row['id_rubrique'] = $row_rub['id_rubrique'];
200
+                }
201
+            }
202
+        }
203
+    }
204
+
205
+    return $row;
206 206
 }
Please login to merge, or discard this patch.
ecrire/inc/chercher_logo.php 1 patch
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Logos
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -37,34 +37,34 @@  discard block
 block discarded – undo
37 37
  **/
38 38
 function inc_chercher_logo_dist($id, $_id_objet, $mode = 'on', $compat_old_logos = true) {
39 39
 
40
-	$mode = preg_replace(',\W,', '', $mode);
41
-	if ($mode) {
42
-		// chercher dans la base
43
-		$mode_document = 'logo' . $mode;
44
-		$objet = objet_type($_id_objet);
45
-		$doc = sql_fetsel('D.*', 'spip_documents AS D JOIN spip_documents_liens AS L ON L.id_document=D.id_document', 'D.mode=' . sql_quote($mode_document) . ' AND L.objet=' . sql_quote($objet) . ' AND id_objet=' . intval($id));
46
-		if ($doc) {
47
-			include_spip('inc/documents');
48
-			$d = get_spip_doc($doc['fichier']);
49
-			return [$d, _DIR_IMG, basename($d), $doc['extension'], @filemtime($d), $doc];
50
-		}
40
+    $mode = preg_replace(',\W,', '', $mode);
41
+    if ($mode) {
42
+        // chercher dans la base
43
+        $mode_document = 'logo' . $mode;
44
+        $objet = objet_type($_id_objet);
45
+        $doc = sql_fetsel('D.*', 'spip_documents AS D JOIN spip_documents_liens AS L ON L.id_document=D.id_document', 'D.mode=' . sql_quote($mode_document) . ' AND L.objet=' . sql_quote($objet) . ' AND id_objet=' . intval($id));
46
+        if ($doc) {
47
+            include_spip('inc/documents');
48
+            $d = get_spip_doc($doc['fichier']);
49
+            return [$d, _DIR_IMG, basename($d), $doc['extension'], @filemtime($d), $doc];
50
+        }
51 51
 
52
-		# deprecated TODO remove
53
-		if ($compat_old_logos) {
54
-			# attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
55
-			$type = type_du_logo($_id_objet);
56
-			$nom = $type . $mode . intval($id);
52
+        # deprecated TODO remove
53
+        if ($compat_old_logos) {
54
+            # attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
55
+            $type = type_du_logo($_id_objet);
56
+            $nom = $type . $mode . intval($id);
57 57
 
58
-			foreach ($GLOBALS['formats_logos'] as $format) {
59
-				if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
60
-					return [$d, _DIR_LOGOS, $nom, $format, @filemtime($d)];
61
-				}
62
-			}
63
-		}
64
-	}
58
+            foreach ($GLOBALS['formats_logos'] as $format) {
59
+                if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
60
+                    return [$d, _DIR_LOGOS, $nom, $format, @filemtime($d)];
61
+                }
62
+            }
63
+        }
64
+    }
65 65
 
66
-	# coherence de type pour servir comme filtre (formulaire_login)
67
-	return [];
66
+    # coherence de type pour servir comme filtre (formulaire_login)
67
+    return [];
68 68
 }
69 69
 
70 70
 /**
@@ -83,15 +83,15 @@  discard block
 block discarded – undo
83 83
  * @deprecated 4.0 MAIS NE PAS SUPPRIMER CAR SERT POUR L'UPGRADE des logos et leur mise en base
84 84
  **/
85 85
 function type_du_logo($_id_objet) {
86
-	return isset($GLOBALS['table_logos'][$_id_objet])
87
-		? $GLOBALS['table_logos'][$_id_objet]
88
-		: objet_type(preg_replace(',^id_,', '', $_id_objet));
86
+    return isset($GLOBALS['table_logos'][$_id_objet])
87
+        ? $GLOBALS['table_logos'][$_id_objet]
88
+        : objet_type(preg_replace(',^id_,', '', $_id_objet));
89 89
 }
90 90
 
91 91
 // Exceptions standards (historique)
92 92
 $GLOBALS['table_logos'] = [
93
-	'id_article' => 'art',
94
-	'id_auteur' => 'aut',
95
-	'id_rubrique' => 'rub',
96
-	'id_groupe' => 'groupe',
93
+    'id_article' => 'art',
94
+    'id_auteur' => 'aut',
95
+    'id_rubrique' => 'rub',
96
+    'id_groupe' => 'groupe',
97 97
 ];
Please login to merge, or discard this patch.
ecrire/inc/completer_traduction.php 1 patch
Indentation   +38 added lines, -38 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
 /**
@@ -29,51 +29,51 @@  discard block
 block discarded – undo
29 29
  * @return string Erreur éventuelle
30 30
  */
31 31
 function inc_completer_traduction_dist($objet, $id_objet, $id_trad) {
32
-	// dupliquer tous les liens sauf les auteurs : le nouvel auteur est celui qui traduit
33
-	// cf API editer_liens
34
-	include_spip('action/editer_liens');
35
-	objet_dupliquer_liens($objet, $id_trad, $id_objet, null, ['auteur']);
36
-	$_id_table = id_table_objet($objet);
32
+    // dupliquer tous les liens sauf les auteurs : le nouvel auteur est celui qui traduit
33
+    // cf API editer_liens
34
+    include_spip('action/editer_liens');
35
+    objet_dupliquer_liens($objet, $id_trad, $id_objet, null, ['auteur']);
36
+    $_id_table = id_table_objet($objet);
37 37
 
38
-	// recuperer le logo
39
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
40
-	include_spip('action/editer_logo');
41
-	foreach (['on', 'off'] as $etat) {
42
-		$logo = $chercher_logo($id_trad, $_id_table, $etat);
43
-		if ($logo and $file = reset($logo)) {
44
-			logo_modifier($objet, $id_objet, $etat, $file);
45
-		}
46
-	}
38
+    // recuperer le logo
39
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
40
+    include_spip('action/editer_logo');
41
+    foreach (['on', 'off'] as $etat) {
42
+        $logo = $chercher_logo($id_trad, $_id_table, $etat);
43
+        if ($logo and $file = reset($logo)) {
44
+            logo_modifier($objet, $id_objet, $etat, $file);
45
+        }
46
+    }
47 47
 
48
-	// dupliquer certains champs
49
-	$trouver_table = charger_fonction('trouver_table', 'base');
50
-	$desc = $trouver_table(table_objet_sql($objet));
51
-	$champs = $set = [];
48
+    // dupliquer certains champs
49
+    $trouver_table = charger_fonction('trouver_table', 'base');
50
+    $desc = $trouver_table(table_objet_sql($objet));
51
+    $champs = $set = [];
52 52
 
53
-	// un éventuel champ 'virtuel' (redirections)
54
-	if (!empty($desc['field']['virtuel'])) {
55
-		$champs[] = 'virtuel';
56
-	}
53
+    // un éventuel champ 'virtuel' (redirections)
54
+    if (!empty($desc['field']['virtuel'])) {
55
+        $champs[] = 'virtuel';
56
+    }
57 57
 
58
-	$data = sql_fetsel('*', $desc['table'], $_id_table . '=' . intval($id_trad));
58
+    $data = sql_fetsel('*', $desc['table'], $_id_table . '=' . intval($id_trad));
59 59
 
60
-	foreach ($champs as $c) {
61
-		$set[$c] = $data[$c];
62
-	}
60
+    foreach ($champs as $c) {
61
+        $set[$c] = $data[$c];
62
+    }
63 63
 
64
-	/*
64
+    /*
65 65
 	 * Le pipeline 'pre_edition' sera appelé avec l'action 'completer_traduction'.
66 66
 	 * Des plugins pourront ainsi compléter les champs d'un objet traduit lors d'une nouvelle traduction.
67 67
 	 */
68
-	$err = objet_modifier_champs(
69
-		$objet,
70
-		$id_objet,
71
-		[
72
-			'data' => $data,
73
-			'action' => 'completer_traduction',
74
-		],
75
-		$set
76
-	);
68
+    $err = objet_modifier_champs(
69
+        $objet,
70
+        $id_objet,
71
+        [
72
+            'data' => $data,
73
+            'action' => 'completer_traduction',
74
+        ],
75
+        $set
76
+    );
77 77
 
78
-	return $err;
78
+    return $err;
79 79
 }
Please login to merge, or discard this patch.
ecrire/inc/log.php 1 patch
Indentation   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -11,107 +11,107 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 function inc_log_dist($message, $logname = null, $logdir = null, $logsuf = null) {
18
-	static $test_repertoire = [];
19
-	static $compteur = [];
20
-	static $debugverb = ''; // pour ne pas le recalculer au reappel
21
-
22
-	if (is_null($logname) or !is_string($logname)) {
23
-		$logname = defined('_FILE_LOG') ? _FILE_LOG : 'spip';
24
-	}
25
-	if (!isset($compteur[$logname])) {
26
-		$compteur[$logname] = 0;
27
-	}
28
-	if (
29
-		$logname != 'maj'
30
-		and defined('_MAX_LOG')
31
-		and (
32
-			$compteur[$logname]++ > _MAX_LOG
33
-			or !$GLOBALS['nombre_de_logs']
34
-			or !$GLOBALS['taille_des_logs']
35
-		)
36
-	) {
37
-		return;
38
-	}
39
-
40
-	$logfile = ($logdir === null ? _DIR_LOG : $logdir)
41
-		. ($logname)
42
-		. ($logsuf === null ? _FILE_LOG_SUFFIX : $logsuf);
43
-
44
-	if (!isset($test_repertoire[$d = dirname($logfile)])) {
45
-		$test_repertoire[$d] = false; // eviter une recursivite en cas d'erreur de sous_repertoire
46
-		$test_repertoire[$d] = (@is_dir($d) ? true : (function_exists('sous_repertoire') ? sous_repertoire(
47
-			$d,
48
-			'',
49
-			false,
50
-			true
51
-		) : false));
52
-	}
53
-
54
-	// si spip_log() dans mes_options, ou repertoire log/ non present, poser dans tmp/
55
-	if (!defined('_DIR_LOG') or !$test_repertoire[$d]) {
56
-		$logfile = _DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES . $logname . '.log';
57
-	}
58
-
59
-	$rotate = 0;
60
-	$pid = '(pid ' . @getmypid() . ')';
61
-
62
-	// accepter spip_log( Array )
63
-	if (!is_string($message)) {
64
-		$message = var_export($message, true);
65
-	}
66
-
67
-	if (!$debugverb and defined('_LOG_FILELINE') and _LOG_FILELINE) {
68
-		$debug = debug_backtrace();
69
-		$l = $debug[1]['line'];
70
-		$fi = $debug[1]['file'];
71
-		if (strncmp($fi, _ROOT_RACINE, strlen(_ROOT_RACINE)) == 0) {
72
-			$fi = substr($fi, strlen(_ROOT_RACINE));
73
-		}
74
-		$fu = isset($debug[2]['function']) ? $debug[2]['function'] : '';
75
-		$debugverb = "$fi:L$l:$fu" . '():';
76
-	}
77
-
78
-	$m = date('Y-m-d H:i:s') . ' ' . (isset($GLOBALS['ip']) ? $GLOBALS['ip'] : '') . ' ' . $pid . ' '
79
-		//distinguer les logs prives et publics dans les grep
80
-		. $debugverb
81
-		. (test_espace_prive() ? ':Pri:' : ':Pub:')
82
-		. preg_replace("/\n*$/", "\n", $message);
83
-
84
-
85
-	if (
86
-		@is_readable($logfile)
87
-		and (!$s = @filesize($logfile) or $s > $GLOBALS['taille_des_logs'] * 1024)
88
-	) {
89
-		$rotate = $GLOBALS['nombre_de_logs'];
90
-		$m .= "[-- rotate --]\n";
91
-	}
92
-
93
-	$f = @fopen($logfile, 'ab');
94
-	if ($f) {
95
-		fputs($f, (defined('_LOG_BRUT') and _LOG_BRUT) ? $m : str_replace('<', '&lt;', $m));
96
-		fclose($f);
97
-	}
98
-
99
-	if (
100
-		$rotate-- > 0
101
-		and function_exists('spip_unlink')
102
-	) {
103
-		spip_unlink($logfile . '.' . $rotate);
104
-		while ($rotate--) {
105
-			@rename($logfile . ($rotate ? '.' . $rotate : ''), $logfile . '.' . ($rotate + 1));
106
-		}
107
-	}
108
-
109
-	// Dupliquer les erreurs specifiques dans le log general
110
-	if (
111
-		$logname !== _FILE_LOG
112
-		and defined('_FILE_LOG')
113
-	) {
114
-		inc_log_dist($logname == 'maj' ? 'cf maj.log' : $message);
115
-	}
116
-	$debugverb = '';
18
+    static $test_repertoire = [];
19
+    static $compteur = [];
20
+    static $debugverb = ''; // pour ne pas le recalculer au reappel
21
+
22
+    if (is_null($logname) or !is_string($logname)) {
23
+        $logname = defined('_FILE_LOG') ? _FILE_LOG : 'spip';
24
+    }
25
+    if (!isset($compteur[$logname])) {
26
+        $compteur[$logname] = 0;
27
+    }
28
+    if (
29
+        $logname != 'maj'
30
+        and defined('_MAX_LOG')
31
+        and (
32
+            $compteur[$logname]++ > _MAX_LOG
33
+            or !$GLOBALS['nombre_de_logs']
34
+            or !$GLOBALS['taille_des_logs']
35
+        )
36
+    ) {
37
+        return;
38
+    }
39
+
40
+    $logfile = ($logdir === null ? _DIR_LOG : $logdir)
41
+        . ($logname)
42
+        . ($logsuf === null ? _FILE_LOG_SUFFIX : $logsuf);
43
+
44
+    if (!isset($test_repertoire[$d = dirname($logfile)])) {
45
+        $test_repertoire[$d] = false; // eviter une recursivite en cas d'erreur de sous_repertoire
46
+        $test_repertoire[$d] = (@is_dir($d) ? true : (function_exists('sous_repertoire') ? sous_repertoire(
47
+            $d,
48
+            '',
49
+            false,
50
+            true
51
+        ) : false));
52
+    }
53
+
54
+    // si spip_log() dans mes_options, ou repertoire log/ non present, poser dans tmp/
55
+    if (!defined('_DIR_LOG') or !$test_repertoire[$d]) {
56
+        $logfile = _DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES . $logname . '.log';
57
+    }
58
+
59
+    $rotate = 0;
60
+    $pid = '(pid ' . @getmypid() . ')';
61
+
62
+    // accepter spip_log( Array )
63
+    if (!is_string($message)) {
64
+        $message = var_export($message, true);
65
+    }
66
+
67
+    if (!$debugverb and defined('_LOG_FILELINE') and _LOG_FILELINE) {
68
+        $debug = debug_backtrace();
69
+        $l = $debug[1]['line'];
70
+        $fi = $debug[1]['file'];
71
+        if (strncmp($fi, _ROOT_RACINE, strlen(_ROOT_RACINE)) == 0) {
72
+            $fi = substr($fi, strlen(_ROOT_RACINE));
73
+        }
74
+        $fu = isset($debug[2]['function']) ? $debug[2]['function'] : '';
75
+        $debugverb = "$fi:L$l:$fu" . '():';
76
+    }
77
+
78
+    $m = date('Y-m-d H:i:s') . ' ' . (isset($GLOBALS['ip']) ? $GLOBALS['ip'] : '') . ' ' . $pid . ' '
79
+        //distinguer les logs prives et publics dans les grep
80
+        . $debugverb
81
+        . (test_espace_prive() ? ':Pri:' : ':Pub:')
82
+        . preg_replace("/\n*$/", "\n", $message);
83
+
84
+
85
+    if (
86
+        @is_readable($logfile)
87
+        and (!$s = @filesize($logfile) or $s > $GLOBALS['taille_des_logs'] * 1024)
88
+    ) {
89
+        $rotate = $GLOBALS['nombre_de_logs'];
90
+        $m .= "[-- rotate --]\n";
91
+    }
92
+
93
+    $f = @fopen($logfile, 'ab');
94
+    if ($f) {
95
+        fputs($f, (defined('_LOG_BRUT') and _LOG_BRUT) ? $m : str_replace('<', '&lt;', $m));
96
+        fclose($f);
97
+    }
98
+
99
+    if (
100
+        $rotate-- > 0
101
+        and function_exists('spip_unlink')
102
+    ) {
103
+        spip_unlink($logfile . '.' . $rotate);
104
+        while ($rotate--) {
105
+            @rename($logfile . ($rotate ? '.' . $rotate : ''), $logfile . '.' . ($rotate + 1));
106
+        }
107
+    }
108
+
109
+    // Dupliquer les erreurs specifiques dans le log general
110
+    if (
111
+        $logname !== _FILE_LOG
112
+        and defined('_FILE_LOG')
113
+    ) {
114
+        inc_log_dist($logname == 'maj' ? 'cf maj.log' : $message);
115
+    }
116
+    $debugverb = '';
117 117
 }
Please login to merge, or discard this patch.
ecrire/inc/autoriser.php 1 patch
Indentation   +650 added lines, -650 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,73 +142,73 @@  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'] : [];
149
-		$qui = array_merge(['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']) : [];
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 (
171
-		(isset($GLOBALS['autoriser_exception'][$faire][$type][$id]) and autoriser_exception($faire, $type, $id, 'verifier'))
172
-		or (isset($GLOBALS['autoriser_exception'][$faire][$type]['*']) and autoriser_exception($faire, $type, '*', 'verifier'))
173
-	) {
174
-		spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
175
-		return true;
176
-	}
177
-
178
-	// Chercher une fonction d'autorisation
179
-	// Dans l'ordre on va chercher autoriser_type_faire[_dist], autoriser_type[_dist],
180
-	// autoriser_faire[_dist], autoriser_defaut[_dist]
181
-	$fonctions = $type
182
-		? [
183
-			'autoriser_' . $type . '_' . $faire,
184
-			'autoriser_' . $type . '_' . $faire . '_dist',
185
-			'autoriser_' . $type,
186
-			'autoriser_' . $type . '_dist',
187
-			'autoriser_' . $faire,
188
-			'autoriser_' . $faire . '_dist',
189
-			'autoriser_defaut',
190
-			'autoriser_defaut_dist'
191
-		]
192
-		: [
193
-			'autoriser_' . $faire,
194
-			'autoriser_' . $faire . '_dist',
195
-			'autoriser_defaut',
196
-			'autoriser_defaut_dist'
197
-		];
198
-
199
-	foreach ($fonctions as $f) {
200
-		if (function_exists($f)) {
201
-			$a = $f($faire, $type, $id, $qui, $opt);
202
-			break;
203
-		}
204
-	}
205
-
206
-	spip_log(
207
-		"$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
208
-		'autoriser' . _LOG_DEBUG
209
-	);
210
-
211
-	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'] : [];
149
+        $qui = array_merge(['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']) : [];
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 (
171
+        (isset($GLOBALS['autoriser_exception'][$faire][$type][$id]) and autoriser_exception($faire, $type, $id, 'verifier'))
172
+        or (isset($GLOBALS['autoriser_exception'][$faire][$type]['*']) and autoriser_exception($faire, $type, '*', 'verifier'))
173
+    ) {
174
+        spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
175
+        return true;
176
+    }
177
+
178
+    // Chercher une fonction d'autorisation
179
+    // Dans l'ordre on va chercher autoriser_type_faire[_dist], autoriser_type[_dist],
180
+    // autoriser_faire[_dist], autoriser_defaut[_dist]
181
+    $fonctions = $type
182
+        ? [
183
+            'autoriser_' . $type . '_' . $faire,
184
+            'autoriser_' . $type . '_' . $faire . '_dist',
185
+            'autoriser_' . $type,
186
+            'autoriser_' . $type . '_dist',
187
+            'autoriser_' . $faire,
188
+            'autoriser_' . $faire . '_dist',
189
+            'autoriser_defaut',
190
+            'autoriser_defaut_dist'
191
+        ]
192
+        : [
193
+            'autoriser_' . $faire,
194
+            'autoriser_' . $faire . '_dist',
195
+            'autoriser_defaut',
196
+            'autoriser_defaut_dist'
197
+        ];
198
+
199
+    foreach ($fonctions as $f) {
200
+        if (function_exists($f)) {
201
+            $a = $f($faire, $type, $id, $qui, $opt);
202
+            break;
203
+        }
204
+    }
205
+
206
+    spip_log(
207
+        "$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
208
+        'autoriser' . _LOG_DEBUG
209
+    );
210
+
211
+    return $a;
212 212
 }
213 213
 
214 214
 // une globale pour aller au plus vite dans la fonction generique ci dessus
@@ -226,26 +226,26 @@  discard block
 block discarded – undo
226 226
  * @return bool
227 227
  */
228 228
 function autoriser_exception($faire, $type, $id, $autoriser = true) {
229
-	// une static innaccessible par url pour verifier que la globale est positionnee a bon escient
230
-	static $autorisation;
231
-	if ($autoriser === 'verifier') {
232
-		return isset($autorisation[$faire][$type][$id]);
233
-	}
234
-	if ($autoriser === true) {
235
-		$GLOBALS['autoriser_exception'][$faire][$type][$id] = $autorisation[$faire][$type][$id] = true;
236
-	}
237
-	if ($autoriser === false) {
238
-		if ($id === '*') {
239
-			unset($GLOBALS['autoriser_exception'][$faire][$type]);
240
-			unset($autorisation[$faire][$type]);
241
-		}
242
-		else {
243
-			unset($GLOBALS['autoriser_exception'][$faire][$type][$id]);
244
-			unset($autorisation[$faire][$type][$id]);
245
-		}
246
-	}
247
-
248
-	return false;
229
+    // une static innaccessible par url pour verifier que la globale est positionnee a bon escient
230
+    static $autorisation;
231
+    if ($autoriser === 'verifier') {
232
+        return isset($autorisation[$faire][$type][$id]);
233
+    }
234
+    if ($autoriser === true) {
235
+        $GLOBALS['autoriser_exception'][$faire][$type][$id] = $autorisation[$faire][$type][$id] = true;
236
+    }
237
+    if ($autoriser === false) {
238
+        if ($id === '*') {
239
+            unset($GLOBALS['autoriser_exception'][$faire][$type]);
240
+            unset($autorisation[$faire][$type]);
241
+        }
242
+        else {
243
+            unset($GLOBALS['autoriser_exception'][$faire][$type][$id]);
244
+            unset($autorisation[$faire][$type][$id]);
245
+        }
246
+    }
247
+
248
+    return false;
249 249
 }
250 250
 
251 251
 
@@ -262,9 +262,9 @@  discard block
 block discarded – undo
262 262
  * @return bool          true s'il a le droit, false sinon
263 263
  **/
264 264
 function autoriser_defaut_dist($faire, $type, $id, $qui, $opt) {
265
-	return
266
-		$qui['statut'] == '0minirezo'
267
-		and !$qui['restreint'];
265
+    return
266
+        $qui['statut'] == '0minirezo'
267
+        and !$qui['restreint'];
268 268
 }
269 269
 
270 270
 /**
@@ -280,10 +280,10 @@  discard block
 block discarded – undo
280 280
  * @return bool
281 281
  */
282 282
 function autoriser_loger_dist($faire, $type, $id, $qui, $opt) {
283
-	if ($qui['statut'] == '5poubelle') {
284
-		return false;
285
-	}
286
-	return true;
283
+    if ($qui['statut'] == '5poubelle') {
284
+        return false;
285
+    }
286
+    return true;
287 287
 }
288 288
 
289 289
 /**
@@ -297,7 +297,7 @@  discard block
 block discarded – undo
297 297
  * @return bool          true s'il a le droit, false sinon
298 298
  **/
299 299
 function autoriser_ecrire_dist($faire, $type, $id, $qui, $opt) {
300
-	return isset($qui['statut']) and in_array($qui['statut'], ['0minirezo', '1comite']);
300
+    return isset($qui['statut']) and in_array($qui['statut'], ['0minirezo', '1comite']);
301 301
 }
302 302
 
303 303
 /**
@@ -314,7 +314,7 @@  discard block
 block discarded – undo
314 314
  * @return bool          true s'il a le droit, false sinon
315 315
  **/
316 316
 function autoriser_creer_dist($faire, $type, $id, $qui, $opt) {
317
-	return in_array($qui['statut'], ['0minirezo', '1comite']);
317
+    return in_array($qui['statut'], ['0minirezo', '1comite']);
318 318
 }
319 319
 
320 320
 /**
@@ -332,18 +332,18 @@  discard block
 block discarded – undo
332 332
  **/
333 333
 function autoriser_previsualiser_dist($faire, $type, $id, $qui, $opt) {
334 334
 
335
-	// Le visiteur a-t-il un statut prevu par la config ?
336
-	if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
337
-		return test_previsualiser_objet_champ($type, $id, $qui, $opt);
338
-	}
335
+    // Le visiteur a-t-il un statut prevu par la config ?
336
+    if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
337
+        return test_previsualiser_objet_champ($type, $id, $qui, $opt);
338
+    }
339 339
 
340
-	// A-t-on un token de prévisualisation valable ?
341
-	include_spip('inc/securiser_action');
342
-	if (decrire_token_previsu()) {
343
-		return true;
344
-	}
340
+    // A-t-on un token de prévisualisation valable ?
341
+    include_spip('inc/securiser_action');
342
+    if (decrire_token_previsu()) {
343
+        return true;
344
+    }
345 345
 
346
-	return false;
346
+    return false;
347 347
 }
348 348
 
349 349
 /**
@@ -371,58 +371,58 @@  discard block
 block discarded – undo
371 371
  */
372 372
 function test_previsualiser_objet_champ($type = null, $id = 0, $qui = [], $opt = []) {
373 373
 
374
-	// si pas de type et statut fourni, c'est une autorisation generale => OK
375
-	if (!$type) {
376
-		return true;
377
-	}
378
-
379
-	include_spip('base/objets');
380
-	$infos = lister_tables_objets_sql(table_objet_sql($type));
381
-	if (isset($infos['statut'])) {
382
-		foreach ($infos['statut'] as $c) {
383
-			if (isset($c['publie'])) {
384
-				if (!isset($c['previsu'])) {
385
-					return false;
386
-				} // pas de previsu definie => NIET
387
-				$champ = $c['champ'];
388
-				if (!isset($opt[$champ])) {
389
-					return false;
390
-				} // pas de champ passe a la demande => NIET
391
-				$previsu = explode(',', $c['previsu']);
392
-				// regarder si ce statut est autorise pour l'auteur
393
-				if (in_array($opt[$champ] . '/auteur', $previsu)) {
394
-					// retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
395
-					// sinon l’auteur en session
396
-					include_spip('inc/securiser_action');
397
-					if ($desc = decrire_token_previsu()) {
398
-						$id_auteur = $desc['id_auteur'];
399
-					} elseif (isset($GLOBALS['visiteur_session']['id_auteur'])) {
400
-						$id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
401
-					} else {
402
-						$id_auteur = null;
403
-					}
404
-
405
-					if (!$id_auteur) {
406
-						return false;
407
-					} elseif (autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
408
-						// dans ce cas (admin en general), pas de filtrage sur ce statut
409
-					} elseif (
410
-						!sql_countsel(
411
-							'spip_auteurs_liens',
412
-							'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
413
-						)
414
-					) {
415
-						return false;
416
-					} // pas auteur de cet objet => NIET
417
-				} elseif (!in_array($opt[$champ], $previsu)) {
418
-					// le statut n'est pas dans ceux definis par la previsu => NIET
419
-					return false;
420
-				}
421
-			}
422
-		}
423
-	}
424
-
425
-	return true;
374
+    // si pas de type et statut fourni, c'est une autorisation generale => OK
375
+    if (!$type) {
376
+        return true;
377
+    }
378
+
379
+    include_spip('base/objets');
380
+    $infos = lister_tables_objets_sql(table_objet_sql($type));
381
+    if (isset($infos['statut'])) {
382
+        foreach ($infos['statut'] as $c) {
383
+            if (isset($c['publie'])) {
384
+                if (!isset($c['previsu'])) {
385
+                    return false;
386
+                } // pas de previsu definie => NIET
387
+                $champ = $c['champ'];
388
+                if (!isset($opt[$champ])) {
389
+                    return false;
390
+                } // pas de champ passe a la demande => NIET
391
+                $previsu = explode(',', $c['previsu']);
392
+                // regarder si ce statut est autorise pour l'auteur
393
+                if (in_array($opt[$champ] . '/auteur', $previsu)) {
394
+                    // retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
395
+                    // sinon l’auteur en session
396
+                    include_spip('inc/securiser_action');
397
+                    if ($desc = decrire_token_previsu()) {
398
+                        $id_auteur = $desc['id_auteur'];
399
+                    } elseif (isset($GLOBALS['visiteur_session']['id_auteur'])) {
400
+                        $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
401
+                    } else {
402
+                        $id_auteur = null;
403
+                    }
404
+
405
+                    if (!$id_auteur) {
406
+                        return false;
407
+                    } elseif (autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
408
+                        // dans ce cas (admin en general), pas de filtrage sur ce statut
409
+                    } elseif (
410
+                        !sql_countsel(
411
+                            'spip_auteurs_liens',
412
+                            'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
413
+                        )
414
+                    ) {
415
+                        return false;
416
+                    } // pas auteur de cet objet => NIET
417
+                } elseif (!in_array($opt[$champ], $previsu)) {
418
+                    // le statut n'est pas dans ceux definis par la previsu => NIET
419
+                    return false;
420
+                }
421
+            }
422
+        }
423
+    }
424
+
425
+    return true;
426 426
 }
427 427
 
428 428
 /**
@@ -436,51 +436,51 @@  discard block
 block discarded – undo
436 436
  * @return bool          true s'il a le droit, false sinon
437 437
  **/
438 438
 function autoriser_changerlangue_dist($faire, $type, $id, $qui, $opt) {
439
-	$multi_objets = explode(',', lire_config('multi_objets'));
440
-	$gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
441
-	$table = table_objet_sql($type);
442
-	if (
443
-		in_array($table, $multi_objets)
444
-		or in_array($table, $gerer_trad_objets)
445
-	) { // affichage du formulaire si la configuration l'accepte
446
-		$multi_secteurs = lire_config('multi_secteurs');
447
-		$champs = objet_info($type, 'field');
448
-		if (
449
-			$multi_secteurs == 'oui'
450
-			and array_key_exists('id_rubrique', $champs)
451
-		) {
452
-			// multilinguisme par secteur et objet rattaché à une rubrique
453
-			$primary = id_table_objet($type);
454
-			if ($table != 'spip_rubriques') {
455
-				$id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
456
-			} else {
457
-				$id_rubrique = $id;
458
-			}
459
-			$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
460
-			if (!$id_secteur > 0) {
461
-				$id_secteur = $id_rubrique;
462
-			}
463
-			$langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
464
-			$langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
465
-			if ($langue_secteur != $langue_objet) {
466
-				// configuration incohérente, on laisse l'utilisateur corriger la situation
467
-				return true;
468
-			}
469
-			if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
470
-				return false;
471
-			} else {
472
-				$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
473
-				if ($id_parent != 0) {
474
-					// sous-rubriques : pas de choix de langue
475
-					return false;
476
-				}
477
-			}
478
-		}
479
-	} else {
480
-		return false;
481
-	}
482
-
483
-	return autoriser('modifier', $type, $id, $qui, $opt);
439
+    $multi_objets = explode(',', lire_config('multi_objets'));
440
+    $gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
441
+    $table = table_objet_sql($type);
442
+    if (
443
+        in_array($table, $multi_objets)
444
+        or in_array($table, $gerer_trad_objets)
445
+    ) { // affichage du formulaire si la configuration l'accepte
446
+        $multi_secteurs = lire_config('multi_secteurs');
447
+        $champs = objet_info($type, 'field');
448
+        if (
449
+            $multi_secteurs == 'oui'
450
+            and array_key_exists('id_rubrique', $champs)
451
+        ) {
452
+            // multilinguisme par secteur et objet rattaché à une rubrique
453
+            $primary = id_table_objet($type);
454
+            if ($table != 'spip_rubriques') {
455
+                $id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
456
+            } else {
457
+                $id_rubrique = $id;
458
+            }
459
+            $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
460
+            if (!$id_secteur > 0) {
461
+                $id_secteur = $id_rubrique;
462
+            }
463
+            $langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
464
+            $langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
465
+            if ($langue_secteur != $langue_objet) {
466
+                // configuration incohérente, on laisse l'utilisateur corriger la situation
467
+                return true;
468
+            }
469
+            if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
470
+                return false;
471
+            } else {
472
+                $id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
473
+                if ($id_parent != 0) {
474
+                    // sous-rubriques : pas de choix de langue
475
+                    return false;
476
+                }
477
+            }
478
+        }
479
+    } else {
480
+        return false;
481
+    }
482
+
483
+    return autoriser('modifier', $type, $id, $qui, $opt);
484 484
 }
485 485
 
486 486
 /**
@@ -494,7 +494,7 @@  discard block
 block discarded – undo
494 494
  * @return bool          true s'il a le droit, false sinon
495 495
  **/
496 496
 function autoriser_changertraduction_dist($faire, $type, $id, $qui, $opt) {
497
-	return autoriser('modifier', $type, $id, $qui, $opt);
497
+    return autoriser('modifier', $type, $id, $qui, $opt);
498 498
 }
499 499
 
500 500
 /**
@@ -508,41 +508,41 @@  discard block
 block discarded – undo
508 508
  * @return bool          true s'il a le droit, false sinon
509 509
  **/
510 510
 function autoriser_dater_dist($faire, $type, $id, $qui, $opt) {
511
-	$table = table_objet($type);
512
-	$trouver_table = charger_fonction('trouver_table', 'base');
513
-	$desc = $trouver_table($table);
514
-	if (!$desc) {
515
-		return false;
516
-	}
517
-
518
-	if (!isset($opt['statut'])) {
519
-		if (isset($desc['field']['statut'])) {
520
-			$statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
521
-		} else {
522
-			$statut = 'publie';
523
-		} // pas de statut => publie
524
-	} else {
525
-		$statut = $opt['statut'];
526
-	}
527
-
528
-	// Liste des statuts publiés pour cet objet
529
-	if (isset($desc['statut'][0]['publie'])) {
530
-		$statuts_publies = explode(',', $desc['statut'][0]['publie']);
531
-	}
532
-	// Sinon en dur le statut "publie"
533
-	else {
534
-		$statuts_publies = ['publie'];
535
-	}
536
-
537
-	if (
538
-		in_array($statut, $statuts_publies)
539
-		// Ou cas particulier géré en dur ici pour les articles
540
-		or ($statut == 'prop' and $type == 'article' and $GLOBALS['meta']['post_dates'] == 'non')
541
-	) {
542
-		return autoriser('modifier', $type, $id);
543
-	}
544
-
545
-	return false;
511
+    $table = table_objet($type);
512
+    $trouver_table = charger_fonction('trouver_table', 'base');
513
+    $desc = $trouver_table($table);
514
+    if (!$desc) {
515
+        return false;
516
+    }
517
+
518
+    if (!isset($opt['statut'])) {
519
+        if (isset($desc['field']['statut'])) {
520
+            $statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
521
+        } else {
522
+            $statut = 'publie';
523
+        } // pas de statut => publie
524
+    } else {
525
+        $statut = $opt['statut'];
526
+    }
527
+
528
+    // Liste des statuts publiés pour cet objet
529
+    if (isset($desc['statut'][0]['publie'])) {
530
+        $statuts_publies = explode(',', $desc['statut'][0]['publie']);
531
+    }
532
+    // Sinon en dur le statut "publie"
533
+    else {
534
+        $statuts_publies = ['publie'];
535
+    }
536
+
537
+    if (
538
+        in_array($statut, $statuts_publies)
539
+        // Ou cas particulier géré en dur ici pour les articles
540
+        or ($statut == 'prop' and $type == 'article' and $GLOBALS['meta']['post_dates'] == 'non')
541
+    ) {
542
+        return autoriser('modifier', $type, $id);
543
+    }
544
+
545
+    return false;
546 546
 }
547 547
 
548 548
 /**
@@ -559,7 +559,7 @@  discard block
 block discarded – undo
559 559
  * @return bool          true s'il a le droit, false sinon
560 560
  **/
561 561
 function autoriser_instituer_dist($faire, $type, $id, $qui, $opt) {
562
-	return autoriser('modifier', $type, $id, $qui, $opt);
562
+    return autoriser('modifier', $type, $id, $qui, $opt);
563 563
 }
564 564
 
565 565
 /**
@@ -575,12 +575,12 @@  discard block
 block discarded – undo
575 575
  * @return bool          true s'il a le droit, false sinon
576 576
  **/
577 577
 function autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt) {
578
-	return
579
-		($qui['statut'] == '0minirezo')
580
-		and (
581
-			!$qui['restreint'] or !$id
582
-			or in_array($id, $qui['restreint'])
583
-		);
578
+    return
579
+        ($qui['statut'] == '0minirezo')
580
+        and (
581
+            !$qui['restreint'] or !$id
582
+            or in_array($id, $qui['restreint'])
583
+        );
584 584
 }
585 585
 
586 586
 /**
@@ -596,12 +596,12 @@  discard block
 block discarded – undo
596 596
  * @return bool          true s'il a le droit, false sinon
597 597
  **/
598 598
 function autoriser_rubrique_creer_dist($faire, $type, $id, $qui, $opt) {
599
-	if (!empty($opt['id_parent'])) {
600
-		return autoriser('creerrubriquedans', 'rubrique', $opt['id_parent'], $qui);
601
-	}
602
-	else {
603
-		return autoriser('defaut', null, null, $qui, $opt);
604
-	}
599
+    if (!empty($opt['id_parent'])) {
600
+        return autoriser('creerrubriquedans', 'rubrique', $opt['id_parent'], $qui);
601
+    }
602
+    else {
603
+        return autoriser('defaut', null, null, $qui, $opt);
604
+    }
605 605
 }
606 606
 
607 607
 /**
@@ -617,10 +617,10 @@  discard block
 block discarded – undo
617 617
  * @return bool          true s'il a le droit, false sinon
618 618
  **/
619 619
 function autoriser_rubrique_creerrubriquedans_dist($faire, $type, $id, $qui, $opt) {
620
-	return
621
-		($id or ($qui['statut'] == '0minirezo' and !$qui['restreint']))
622
-		and autoriser('voir', 'rubrique', $id)
623
-		and autoriser('publierdans', 'rubrique', $id);
620
+    return
621
+        ($id or ($qui['statut'] == '0minirezo' and !$qui['restreint']))
622
+        and autoriser('voir', 'rubrique', $id)
623
+        and autoriser('publierdans', 'rubrique', $id);
624 624
 }
625 625
 
626 626
 /**
@@ -636,10 +636,10 @@  discard block
 block discarded – undo
636 636
  * @return bool          true s'il a le droit, false sinon
637 637
  **/
638 638
 function autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt) {
639
-	return
640
-		$id
641
-		and autoriser('voir', 'rubrique', $id)
642
-		and autoriser('creer', 'article');
639
+    return
640
+        $id
641
+        and autoriser('voir', 'rubrique', $id)
642
+        and autoriser('creer', 'article');
643 643
 }
644 644
 
645 645
 
@@ -656,8 +656,8 @@  discard block
 block discarded – undo
656 656
  * @return bool          true s'il a le droit, false sinon
657 657
  **/
658 658
 function autoriser_rubrique_modifier_dist($faire, $type, $id, $qui, $opt) {
659
-	return
660
-		autoriser('publierdans', 'rubrique', $id, $qui, $opt);
659
+    return
660
+        autoriser('publierdans', 'rubrique', $id, $qui, $opt);
661 661
 }
662 662
 
663 663
 /**
@@ -673,29 +673,29 @@  discard block
 block discarded – undo
673 673
  * @return bool          true s'il a le droit, false sinon
674 674
  **/
675 675
 function autoriser_rubrique_supprimer_dist($faire, $type, $id, $qui, $opt) {
676
-	if (!$id = intval($id)) {
677
-		return false;
678
-	}
676
+    if (!$id = intval($id)) {
677
+        return false;
678
+    }
679 679
 
680
-	if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
681
-		return false;
682
-	}
680
+    if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
681
+        return false;
682
+    }
683 683
 
684
-	if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
685
-		return false;
686
-	}
684
+    if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
685
+        return false;
686
+    }
687 687
 
688
-	$compte = pipeline(
689
-		'objet_compte_enfants',
690
-		['args' => ['objet' => 'rubrique', 'id_objet' => $id], 'data' => []]
691
-	);
692
-	foreach ($compte as $objet => $n) {
693
-		if ($n) {
694
-			return false;
695
-		}
696
-	}
688
+    $compte = pipeline(
689
+        'objet_compte_enfants',
690
+        ['args' => ['objet' => 'rubrique', 'id_objet' => $id], 'data' => []]
691
+    );
692
+    foreach ($compte as $objet => $n) {
693
+        if ($n) {
694
+            return false;
695
+        }
696
+    }
697 697
 
698
-	return autoriser('modifier', 'rubrique', $id);
698
+    return autoriser('modifier', 'rubrique', $id);
699 699
 }
700 700
 
701 701
 
@@ -713,20 +713,20 @@  discard block
 block discarded – undo
713 713
  * @return bool          true s'il a le droit, false sinon
714 714
  **/
715 715
 function autoriser_article_modifier_dist($faire, $type, $id, $qui, $opt) {
716
-	$r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
716
+    $r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
717 717
 
718
-	return
719
-		$r
720
-		and
721
-		(
722
-			autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
723
-			or (
724
-				(!isset($opt['statut']) or $opt['statut'] !== 'publie')
725
-				and in_array($qui['statut'], ['0minirezo', '1comite'])
726
-				and in_array($r['statut'], ['prop', 'prepa', 'poubelle'])
727
-				and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
728
-			)
729
-		);
718
+    return
719
+        $r
720
+        and
721
+        (
722
+            autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
723
+            or (
724
+                (!isset($opt['statut']) or $opt['statut'] !== 'publie')
725
+                and in_array($qui['statut'], ['0minirezo', '1comite'])
726
+                and in_array($r['statut'], ['prop', 'prepa', 'poubelle'])
727
+                and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
728
+            )
729
+        );
730 730
 }
731 731
 
732 732
 /**
@@ -742,13 +742,13 @@  discard block
 block discarded – undo
742 742
  * @return bool          true s'il a le droit, false sinon
743 743
  **/
744 744
 function autoriser_article_creer_dist($faire, $type, $id, $qui, $opt) {
745
-	if (!empty($opt['id_parent'])) {
746
-		// creerarticledans rappelle autoriser(creer,article) sans id, donc on verifiera condition du else aussi
747
-		return autoriser('creerarticledans', 'rubrique', $opt['id_parent'], $qui);
748
-	}
749
-	else {
750
-		return (sql_countsel('spip_rubriques') > 0 and in_array($qui['statut'], ['0minirezo', '1comite']));
751
-	}
745
+    if (!empty($opt['id_parent'])) {
746
+        // creerarticledans rappelle autoriser(creer,article) sans id, donc on verifiera condition du else aussi
747
+        return autoriser('creerarticledans', 'rubrique', $opt['id_parent'], $qui);
748
+    }
749
+    else {
750
+        return (sql_countsel('spip_rubriques') > 0 and in_array($qui['statut'], ['0minirezo', '1comite']));
751
+    }
752 752
 }
753 753
 
754 754
 /**
@@ -768,28 +768,28 @@  discard block
 block discarded – undo
768 768
  * @return bool          true s'il a le droit, false sinon
769 769
  */
770 770
 function autoriser_article_voir_dist($faire, $type, $id, $qui, $opt) {
771
-	if ($qui['statut'] == '0minirezo') {
772
-		return true;
773
-	}
774
-	// cas des articles : depend du statut de l'article et de l'auteur
775
-	if (isset($opt['statut'])) {
776
-		$statut = $opt['statut'];
777
-	} else {
778
-		if (!$id) {
779
-			return false;
780
-		}
781
-		$statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
782
-	}
783
-
784
-	return
785
-		// si on est pas auteur de l'article,
786
-		// seuls les propose et publies sont visibles
787
-		in_array($statut, ['prop', 'publie'])
788
-		// sinon si on est auteur, on a le droit de le voir, evidemment !
789
-		or
790
-		($id
791
-			and $qui['id_auteur']
792
-			and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
771
+    if ($qui['statut'] == '0minirezo') {
772
+        return true;
773
+    }
774
+    // cas des articles : depend du statut de l'article et de l'auteur
775
+    if (isset($opt['statut'])) {
776
+        $statut = $opt['statut'];
777
+    } else {
778
+        if (!$id) {
779
+            return false;
780
+        }
781
+        $statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
782
+    }
783
+
784
+    return
785
+        // si on est pas auteur de l'article,
786
+        // seuls les propose et publies sont visibles
787
+        in_array($statut, ['prop', 'publie'])
788
+        // sinon si on est auteur, on a le droit de le voir, evidemment !
789
+        or
790
+        ($id
791
+            and $qui['id_auteur']
792
+            and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
793 793
 }
794 794
 
795 795
 
@@ -806,24 +806,24 @@  discard block
 block discarded – undo
806 806
  * @return bool          true s'il a le droit, false sinon
807 807
  **/
808 808
 function autoriser_voir_dist($faire, $type, $id, $qui, $opt) {
809
-	# securite, mais on aurait pas du arriver ici !
810
-	if (
811
-		function_exists($f = 'autoriser_' . $type . '_voir')
812
-		or function_exists($f = 'autoriser_' . $type . '_voir_dist')
813
-	) {
814
-		return $f($faire, $type, $id, $qui, $opt);
815
-	}
809
+    # securite, mais on aurait pas du arriver ici !
810
+    if (
811
+        function_exists($f = 'autoriser_' . $type . '_voir')
812
+        or function_exists($f = 'autoriser_' . $type . '_voir_dist')
813
+    ) {
814
+        return $f($faire, $type, $id, $qui, $opt);
815
+    }
816 816
 
817
-	if ($qui['statut'] == '0minirezo') {
818
-		return true;
819
-	}
820
-	// admins et redacteurs peuvent voir un auteur
821
-	if ($type == 'auteur') {
822
-		return in_array($qui['statut'], ['0minirezo', '1comite']);
823
-	}
824
-	// sinon par defaut tout est visible
825
-	// sauf cas particuliers traites separemment (ie article)
826
-	return true;
817
+    if ($qui['statut'] == '0minirezo') {
818
+        return true;
819
+    }
820
+    // admins et redacteurs peuvent voir un auteur
821
+    if ($type == 'auteur') {
822
+        return in_array($qui['statut'], ['0minirezo', '1comite']);
823
+    }
824
+    // sinon par defaut tout est visible
825
+    // sauf cas particuliers traites separemment (ie article)
826
+    return true;
827 827
 }
828 828
 
829 829
 
@@ -844,12 +844,12 @@  discard block
 block discarded – undo
844 844
  * @return bool          true s'il a le droit, false sinon
845 845
  **/
846 846
 function autoriser_webmestre_dist($faire, $type, $id, $qui, $opt) {
847
-	return
848
-		(defined('_ID_WEBMESTRES') ?
849
-			in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES))
850
-			: $qui['webmestre'] == 'oui')
851
-		and $qui['statut'] == '0minirezo'
852
-		and !$qui['restreint'];
847
+    return
848
+        (defined('_ID_WEBMESTRES') ?
849
+            in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES))
850
+            : $qui['webmestre'] == 'oui')
851
+        and $qui['statut'] == '0minirezo'
852
+        and !$qui['restreint'];
853 853
 }
854 854
 
855 855
 /**
@@ -865,9 +865,9 @@  discard block
 block discarded – undo
865 865
  * @return bool          true s'il a le droit, false sinon
866 866
  **/
867 867
 function autoriser_configurer_dist($faire, $type, $id, $qui, $opt) {
868
-	return
869
-		$qui['statut'] == '0minirezo'
870
-		and !$qui['restreint'];
868
+    return
869
+        $qui['statut'] == '0minirezo'
870
+        and !$qui['restreint'];
871 871
 }
872 872
 
873 873
 /**
@@ -883,8 +883,8 @@  discard block
 block discarded – undo
883 883
  * @return bool          true s'il a le droit, false sinon
884 884
  **/
885 885
 function autoriser_sauvegarder_dist($faire, $type, $id, $qui, $opt) {
886
-	return
887
-		$qui['statut'] == '0minirezo';
886
+    return
887
+        $qui['statut'] == '0minirezo';
888 888
 }
889 889
 
890 890
 /**
@@ -900,8 +900,8 @@  discard block
 block discarded – undo
900 900
  * @return bool          true s'il a le droit, false sinon
901 901
  **/
902 902
 function autoriser_detruire_dist($faire, $type, $id, $qui, $opt) {
903
-	return
904
-		autoriser('webmestre', null, null, $qui, $opt);
903
+    return
904
+        autoriser('webmestre', null, null, $qui, $opt);
905 905
 }
906 906
 
907 907
 /**
@@ -918,21 +918,21 @@  discard block
 block discarded – undo
918 918
  * @return bool          true s'il a le droit, false sinon
919 919
  **/
920 920
 function autoriser_auteur_previsualiser_dist($faire, $type, $id, $qui, $opt) {
921
-	// les admins peuvent "previsualiser" une page auteur
922
-	if (
923
-		$qui['statut'] == '0minirezo'
924
-		and !$qui['restreint']
925
-	) {
926
-		return true;
927
-	}
928
-	// "Voir en ligne" si l'auteur a un article publie
929
-	$n = sql_fetsel(
930
-		'A.id_article',
931
-		'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
932
-		"A.statut='publie' AND L.id_auteur=" . sql_quote($id)
933
-	);
921
+    // les admins peuvent "previsualiser" une page auteur
922
+    if (
923
+        $qui['statut'] == '0minirezo'
924
+        and !$qui['restreint']
925
+    ) {
926
+        return true;
927
+    }
928
+    // "Voir en ligne" si l'auteur a un article publie
929
+    $n = sql_fetsel(
930
+        'A.id_article',
931
+        'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
932
+        "A.statut='publie' AND L.id_auteur=" . sql_quote($id)
933
+    );
934 934
 
935
-	return $n ? true : false;
935
+    return $n ? true : false;
936 936
 }
937 937
 
938 938
 
@@ -960,7 +960,7 @@  discard block
 block discarded – undo
960 960
  * @return bool          true s'il a le droit, false sinon
961 961
  **/
962 962
 function autoriser_auteur_creer_dist($faire, $type, $id, $qui, $opt) {
963
-	return ($qui['statut'] == '0minirezo');
963
+    return ($qui['statut'] == '0minirezo');
964 964
 }
965 965
 
966 966
 
@@ -980,73 +980,73 @@  discard block
 block discarded – undo
980 980
  **/
981 981
 function autoriser_auteur_modifier_dist($faire, $type, $id, $qui, $opt) {
982 982
 
983
-	// Si pas admin : seulement le droit de modifier ses donnees perso, mais pas statut ni login
984
-	// la modif de l'email doit etre verifiee ou notifiee si possible, mais c'est a l'interface de gerer ca
985
-	if (!in_array($qui['statut'], ['0minirezo'])) {
986
-		if (
987
-			$id == $qui['id_auteur']
988
-			&& empty($opt['statut'])
989
-			&& empty($opt['webmestre'])
990
-			&& empty($opt['restreintes'])
991
-			&& empty($opt['login'])
992
-		) {
993
-			return true;
994
-		}
995
-		return false;
996
-	}
997
-
998
-	// Un admin restreint peut modifier/creer un auteur non-admin mais il
999
-	// n'a le droit ni de le promouvoir admin, ni de changer les rubriques
1000
-	if ($qui['restreint']) {
1001
-		if (isset($opt['webmestre']) and $opt['webmestre']) {
1002
-			return false;
1003
-		} elseif (
1004
-			(isset($opt['statut']) and ($opt['statut'] == '0minirezo'))
1005
-			or (isset($opt['restreintes']) and $opt['restreintes'])
1006
-		) {
1007
-			return false;
1008
-		} else {
1009
-			if ($id == $qui['id_auteur']) {
1010
-				if (isset($opt['statut']) and $opt['statut']) {
1011
-					return false;
1012
-				} else {
1013
-					return true;
1014
-				}
1015
-			} else {
1016
-				if ($id_auteur = intval($id)) {
1017
-					$t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur");
1018
-					if ($t and $t['statut'] != '0minirezo') {
1019
-						return true;
1020
-					} else {
1021
-						return false;
1022
-					}
1023
-				} // id = 0 => creation
1024
-				else {
1025
-					return true;
1026
-				}
1027
-			}
1028
-		}
1029
-	}
1030
-
1031
-	// Un admin complet fait ce qu'il veut
1032
-	// sauf se degrader
1033
-	if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
1034
-		return false;
1035
-	} elseif (
1036
-		isset($opt['webmestre'])
1037
-				and $opt['webmestre']
1038
-				and (defined('_ID_WEBMESTRES')
1039
-				or !autoriser('webmestre'))
1040
-	) {
1041
-		// et toucher au statut webmestre si il ne l'est pas lui meme
1042
-		// ou si les webmestres sont fixes par constante (securite)
1043
-		return false;
1044
-	} // et modifier un webmestre si il ne l'est pas lui meme
1045
-	elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
1046
-		return false;
1047
-	} else {
1048
-		return true;
1049
-	}
983
+    // Si pas admin : seulement le droit de modifier ses donnees perso, mais pas statut ni login
984
+    // la modif de l'email doit etre verifiee ou notifiee si possible, mais c'est a l'interface de gerer ca
985
+    if (!in_array($qui['statut'], ['0minirezo'])) {
986
+        if (
987
+            $id == $qui['id_auteur']
988
+            && empty($opt['statut'])
989
+            && empty($opt['webmestre'])
990
+            && empty($opt['restreintes'])
991
+            && empty($opt['login'])
992
+        ) {
993
+            return true;
994
+        }
995
+        return false;
996
+    }
997
+
998
+    // Un admin restreint peut modifier/creer un auteur non-admin mais il
999
+    // n'a le droit ni de le promouvoir admin, ni de changer les rubriques
1000
+    if ($qui['restreint']) {
1001
+        if (isset($opt['webmestre']) and $opt['webmestre']) {
1002
+            return false;
1003
+        } elseif (
1004
+            (isset($opt['statut']) and ($opt['statut'] == '0minirezo'))
1005
+            or (isset($opt['restreintes']) and $opt['restreintes'])
1006
+        ) {
1007
+            return false;
1008
+        } else {
1009
+            if ($id == $qui['id_auteur']) {
1010
+                if (isset($opt['statut']) and $opt['statut']) {
1011
+                    return false;
1012
+                } else {
1013
+                    return true;
1014
+                }
1015
+            } else {
1016
+                if ($id_auteur = intval($id)) {
1017
+                    $t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur");
1018
+                    if ($t and $t['statut'] != '0minirezo') {
1019
+                        return true;
1020
+                    } else {
1021
+                        return false;
1022
+                    }
1023
+                } // id = 0 => creation
1024
+                else {
1025
+                    return true;
1026
+                }
1027
+            }
1028
+        }
1029
+    }
1030
+
1031
+    // Un admin complet fait ce qu'il veut
1032
+    // sauf se degrader
1033
+    if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
1034
+        return false;
1035
+    } elseif (
1036
+        isset($opt['webmestre'])
1037
+                and $opt['webmestre']
1038
+                and (defined('_ID_WEBMESTRES')
1039
+                or !autoriser('webmestre'))
1040
+    ) {
1041
+        // et toucher au statut webmestre si il ne l'est pas lui meme
1042
+        // ou si les webmestres sont fixes par constante (securite)
1043
+        return false;
1044
+    } // et modifier un webmestre si il ne l'est pas lui meme
1045
+    elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
1046
+        return false;
1047
+    } else {
1048
+        return true;
1049
+    }
1050 1050
 }
1051 1051
 
1052 1052
 
@@ -1063,7 +1063,7 @@  discard block
 block discarded – undo
1063 1063
  * @return bool          true s'il a le droit, false sinon
1064 1064
  **/
1065 1065
 function autoriser_associerauteurs_dist($faire, $type, $id, $qui, $opt) {
1066
-	return autoriser('modifier', $type, $id, $qui, $opt);
1066
+    return autoriser('modifier', $type, $id, $qui, $opt);
1067 1067
 }
1068 1068
 
1069 1069
 
@@ -1080,7 +1080,7 @@  discard block
 block discarded – undo
1080 1080
  * @return bool          true s'il a le droit, false sinon
1081 1081
  **/
1082 1082
 function autoriser_chargerftp_dist($faire, $type, $id, $qui, $opt) {
1083
-	return $qui['statut'] == '0minirezo';
1083
+    return $qui['statut'] == '0minirezo';
1084 1084
 }
1085 1085
 
1086 1086
 /**
@@ -1096,7 +1096,7 @@  discard block
 block discarded – undo
1096 1096
  * @return bool          true s'il a le droit, false sinon
1097 1097
  **/
1098 1098
 function autoriser_debug_dist($faire, $type, $id, $qui, $opt) {
1099
-	return $qui['statut'] == '0minirezo';
1099
+    return $qui['statut'] == '0minirezo';
1100 1100
 }
1101 1101
 
1102 1102
 /**
@@ -1113,54 +1113,54 @@  discard block
 block discarded – undo
1113 1113
  * @return array          Liste des rubriques
1114 1114
  **/
1115 1115
 function liste_rubriques_auteur($id_auteur, $raz = false) {
1116
-	static $restreint = [];
1117
-
1118
-	if (!$id_auteur = intval($id_auteur)) {
1119
-		return [];
1120
-	}
1121
-	if ($raz) {
1122
-		unset($restreint[$id_auteur]);
1123
-	} elseif (isset($restreint[$id_auteur])) {
1124
-		return $restreint[$id_auteur];
1125
-	}
1126
-
1127
-	$rubriques = [];
1128
-	if (
1129
-		(!isset($GLOBALS['meta']['version_installee'])
1130
-		or $GLOBALS['meta']['version_installee'] > 16428)
1131
-		and $r = sql_allfetsel(
1132
-			'id_objet',
1133
-			'spip_auteurs_liens',
1134
-			'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1135
-		)
1136
-		and count($r)
1137
-	) {
1138
-		$r = array_column($r, 'id_objet');
1139
-
1140
-		// recuperer toute la branche, au format chaine enumeration
1141
-		include_spip('inc/rubriques');
1142
-		$r = calcul_branche_in($r);
1143
-		$r = explode(',', $r);
1144
-
1145
-		// passer les rubriques en index, elimine les doublons
1146
-		$r = array_flip($r);
1147
-		// recuperer les index seuls
1148
-		$r = array_keys($r);
1149
-		// combiner pour avoir un tableau id_rubrique=>id_rubrique
1150
-		// est-ce vraiment utile ? (on preserve la forme donnee par le code precedent)
1151
-		$rubriques = array_combine($r, $r);
1152
-	}
1153
-
1154
-	// Affecter l'auteur session le cas echeant
1155
-	if (
1156
-		isset($GLOBALS['visiteur_session']['id_auteur'])
1157
-		and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
1158
-	) {
1159
-		$GLOBALS['visiteur_session']['restreint'] = $rubriques;
1160
-	}
1161
-
1162
-
1163
-	return $restreint[$id_auteur] = $rubriques;
1116
+    static $restreint = [];
1117
+
1118
+    if (!$id_auteur = intval($id_auteur)) {
1119
+        return [];
1120
+    }
1121
+    if ($raz) {
1122
+        unset($restreint[$id_auteur]);
1123
+    } elseif (isset($restreint[$id_auteur])) {
1124
+        return $restreint[$id_auteur];
1125
+    }
1126
+
1127
+    $rubriques = [];
1128
+    if (
1129
+        (!isset($GLOBALS['meta']['version_installee'])
1130
+        or $GLOBALS['meta']['version_installee'] > 16428)
1131
+        and $r = sql_allfetsel(
1132
+            'id_objet',
1133
+            'spip_auteurs_liens',
1134
+            'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1135
+        )
1136
+        and count($r)
1137
+    ) {
1138
+        $r = array_column($r, 'id_objet');
1139
+
1140
+        // recuperer toute la branche, au format chaine enumeration
1141
+        include_spip('inc/rubriques');
1142
+        $r = calcul_branche_in($r);
1143
+        $r = explode(',', $r);
1144
+
1145
+        // passer les rubriques en index, elimine les doublons
1146
+        $r = array_flip($r);
1147
+        // recuperer les index seuls
1148
+        $r = array_keys($r);
1149
+        // combiner pour avoir un tableau id_rubrique=>id_rubrique
1150
+        // est-ce vraiment utile ? (on preserve la forme donnee par le code precedent)
1151
+        $rubriques = array_combine($r, $r);
1152
+    }
1153
+
1154
+    // Affecter l'auteur session le cas echeant
1155
+    if (
1156
+        isset($GLOBALS['visiteur_session']['id_auteur'])
1157
+        and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
1158
+    ) {
1159
+        $GLOBALS['visiteur_session']['restreint'] = $rubriques;
1160
+    }
1161
+
1162
+
1163
+    return $restreint[$id_auteur] = $rubriques;
1164 1164
 }
1165 1165
 
1166 1166
 /**
@@ -1176,7 +1176,7 @@  discard block
 block discarded – undo
1176 1176
  * @return bool          true s'il a le droit, false sinon
1177 1177
  **/
1178 1178
 function autoriser_rubrique_previsualiser_dist($faire, $type, $id, $qui, $opt) {
1179
-	return autoriser('previsualiser');
1179
+    return autoriser('previsualiser');
1180 1180
 }
1181 1181
 
1182 1182
 /**
@@ -1192,7 +1192,7 @@  discard block
 block discarded – undo
1192 1192
  * @return bool          true s'il a le droit, false sinon
1193 1193
  **/
1194 1194
 function autoriser_rubrique_iconifier_dist($faire, $type, $id, $qui, $opt) {
1195
-	return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
1195
+    return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
1196 1196
 }
1197 1197
 
1198 1198
 /**
@@ -1208,8 +1208,8 @@  discard block
 block discarded – undo
1208 1208
  * @return bool          true s'il a le droit, false sinon
1209 1209
  **/
1210 1210
 function autoriser_auteur_iconifier_dist($faire, $type, $id, $qui, $opt) {
1211
-	return (($id == $qui['id_auteur']) or
1212
-		(($qui['statut'] == '0minirezo') and !$qui['restreint']));
1211
+    return (($id == $qui['id_auteur']) or
1212
+        (($qui['statut'] == '0minirezo') and !$qui['restreint']));
1213 1213
 }
1214 1214
 
1215 1215
 /**
@@ -1225,8 +1225,8 @@  discard block
 block discarded – undo
1225 1225
  * @return bool          true s'il a le droit, false sinon
1226 1226
  **/
1227 1227
 function autoriser_iconifier_dist($faire, $type, $id, $qui, $opt) {
1228
-	// par defaut, on a le droit d'iconifier si on a le droit de modifier
1229
-	return autoriser('modifier', $type, $id, $qui, $opt);
1228
+    // par defaut, on a le droit d'iconifier si on a le droit de modifier
1229
+    return autoriser('modifier', $type, $id, $qui, $opt);
1230 1230
 }
1231 1231
 
1232 1232
 
@@ -1244,7 +1244,7 @@  discard block
 block discarded – undo
1244 1244
  * @return bool          true
1245 1245
  **/
1246 1246
 function autoriser_ok_dist($faire, $type, $id, $qui, $opt) {
1247
-	return true;
1247
+    return true;
1248 1248
 }
1249 1249
 
1250 1250
 /**
@@ -1261,7 +1261,7 @@  discard block
 block discarded – undo
1261 1261
  * @return bool          false
1262 1262
  **/
1263 1263
 function autoriser_niet_dist($faire, $type, $id, $qui, $opt) {
1264
-	return false;
1264
+    return false;
1265 1265
 }
1266 1266
 
1267 1267
 /**
@@ -1277,11 +1277,11 @@  discard block
 block discarded – undo
1277 1277
  * @return bool          false
1278 1278
  **/
1279 1279
 function autoriser_base_reparer_dist($faire, $type, $id, $qui, $opt) {
1280
-	if (!autoriser('detruire') or _request('reinstall')) {
1281
-		return false;
1282
-	}
1280
+    if (!autoriser('detruire') or _request('reinstall')) {
1281
+        return false;
1282
+    }
1283 1283
 
1284
-	return true;
1284
+    return true;
1285 1285
 }
1286 1286
 
1287 1287
 /**
@@ -1297,7 +1297,7 @@  discard block
 block discarded – undo
1297 1297
  * @return bool          true s'il a le droit, false sinon
1298 1298
  **/
1299 1299
 function autoriser_infosperso_dist($faire, $type, $id, $qui, $opt) {
1300
-	return true;
1300
+    return true;
1301 1301
 }
1302 1302
 
1303 1303
 /**
@@ -1313,7 +1313,7 @@  discard block
 block discarded – undo
1313 1313
  * @return bool          true s'il a le droit, false sinon
1314 1314
  **/
1315 1315
 function autoriser_langage_configurer_dist($faire, $type, $id, $qui, $opt) {
1316
-	return true;
1316
+    return true;
1317 1317
 }
1318 1318
 
1319 1319
 /**
@@ -1329,7 +1329,7 @@  discard block
 block discarded – undo
1329 1329
  * @return bool          true s'il a le droit, false sinon
1330 1330
  **/
1331 1331
 function autoriser_configurerlangage_dist($faire, $type, $id, $qui, $opt) {
1332
-	return autoriser('configurer', '_langage', $id, $qui, $opt);
1332
+    return autoriser('configurer', '_langage', $id, $qui, $opt);
1333 1333
 }
1334 1334
 
1335 1335
 /**
@@ -1345,7 +1345,7 @@  discard block
 block discarded – undo
1345 1345
  * @return bool          true s'il a le droit, false sinon
1346 1346
  **/
1347 1347
 function autoriser_preferences_configurer_dist($faire, $type, $id, $qui, $opt) {
1348
-	return true;
1348
+    return true;
1349 1349
 }
1350 1350
 
1351 1351
 /**
@@ -1361,7 +1361,7 @@  discard block
 block discarded – undo
1361 1361
  * @return bool          true s'il a le droit, false sinon
1362 1362
  **/
1363 1363
 function autoriser_configurerpreferences_dist($faire, $type, $id, $qui, $opt) {
1364
-	return autoriser('configurer', '_preferences', $id, $qui, $opt);
1364
+    return autoriser('configurer', '_preferences', $id, $qui, $opt);
1365 1365
 }
1366 1366
 
1367 1367
 /**
@@ -1377,8 +1377,8 @@  discard block
 block discarded – undo
1377 1377
  * @return bool          true s'il a le droit, false sinon
1378 1378
  **/
1379 1379
 function autoriser_menudeveloppement_menugrandeentree_dist($faire, $type, $id, $qui, $opt) {
1380
-	return (isset($GLOBALS['visiteur_session']['prefs']['activer_menudev'])
1381
-		and $GLOBALS['visiteur_session']['prefs']['activer_menudev'] == 'oui');
1380
+    return (isset($GLOBALS['visiteur_session']['prefs']['activer_menudev'])
1381
+        and $GLOBALS['visiteur_session']['prefs']['activer_menudev'] == 'oui');
1382 1382
 }
1383 1383
 
1384 1384
 /**
@@ -1395,7 +1395,7 @@  discard block
 block discarded – undo
1395 1395
  * @return bool          true s'il a le droit, false sinon
1396 1396
  **/
1397 1397
 function autoriser_menugrandeentree_dist($faire, $type, $id, $qui, $opt) {
1398
-	return true;
1398
+    return true;
1399 1399
 }
1400 1400
 
1401 1401
 /**
@@ -1411,7 +1411,7 @@  discard block
 block discarded – undo
1411 1411
  * @return bool          true s'il a le droit, false sinon
1412 1412
  **/
1413 1413
 function autoriser_auteurs_voir_dist($faire, $type, $id, $qui, $opt) {
1414
-	return true;
1414
+    return true;
1415 1415
 }
1416 1416
 
1417 1417
 /**
@@ -1427,7 +1427,7 @@  discard block
 block discarded – undo
1427 1427
  * @return bool          true s'il a le droit, false sinon
1428 1428
  **/
1429 1429
 function autoriser_auteurs_menu_dist($faire, $type, $id, $qui, $opt) {
1430
-	return autoriser('voir', '_auteurs', $id, $qui, $opt);
1430
+    return autoriser('voir', '_auteurs', $id, $qui, $opt);
1431 1431
 }
1432 1432
 
1433 1433
 /**
@@ -1443,7 +1443,7 @@  discard block
 block discarded – undo
1443 1443
  * @return bool          true s'il a le droit, false sinon
1444 1444
  **/
1445 1445
 function autoriser_articles_voir_dist($faire, $type, $id, $qui, $opt) {
1446
-	return true;
1446
+    return true;
1447 1447
 }
1448 1448
 
1449 1449
 /**
@@ -1459,7 +1459,7 @@  discard block
 block discarded – undo
1459 1459
  * @return bool          true s'il a le droit, false sinon
1460 1460
  **/
1461 1461
 function autoriser_articles_menu_dist($faire, $type, $id, $qui, $opt) {
1462
-	return autoriser('voir', '_articles', $id, $qui, $opt);
1462
+    return autoriser('voir', '_articles', $id, $qui, $opt);
1463 1463
 }
1464 1464
 
1465 1465
 /**
@@ -1475,7 +1475,7 @@  discard block
 block discarded – undo
1475 1475
  * @return bool          true s'il a le droit, false sinon
1476 1476
  **/
1477 1477
 function autoriser_rubriques_voir_dist($faire, $type, $id, $qui, $opt) {
1478
-	return true;
1478
+    return true;
1479 1479
 }
1480 1480
 
1481 1481
 /**
@@ -1491,7 +1491,7 @@  discard block
 block discarded – undo
1491 1491
  * @return bool          true s'il a le droit, false sinon
1492 1492
  **/
1493 1493
 function autoriser_rubriques_menu_dist($faire, $type, $id, $qui, $opt) {
1494
-	return autoriser('voir', '_rubriques', $id, $qui, $opt);
1494
+    return autoriser('voir', '_rubriques', $id, $qui, $opt);
1495 1495
 }
1496 1496
 
1497 1497
 /**
@@ -1507,7 +1507,7 @@  discard block
 block discarded – undo
1507 1507
  * @return bool          true s'il a le droit, false sinon
1508 1508
  **/
1509 1509
 function autoriser_articlecreer_menu_dist($faire, $type, $id, $qui, $opt) {
1510
-	return verifier_table_non_vide();
1510
+    return verifier_table_non_vide();
1511 1511
 }
1512 1512
 
1513 1513
 
@@ -1526,7 +1526,7 @@  discard block
 block discarded – undo
1526 1526
  * @return bool          true s'il a le droit, false sinon
1527 1527
  **/
1528 1528
 function autoriser_auteurcreer_menu_dist($faire, $type, $id, $qui, $opt) {
1529
-	return autoriser('creer', 'auteur', $id, $qui, $opt);
1529
+    return autoriser('creer', 'auteur', $id, $qui, $opt);
1530 1530
 }
1531 1531
 
1532 1532
 /**
@@ -1542,13 +1542,13 @@  discard block
 block discarded – undo
1542 1542
  * @return bool          true s'il a le droit, false sinon
1543 1543
  **/
1544 1544
 function autoriser_visiteurs_menu_dist($faire, $type, $id, $qui, $opt) {
1545
-	include_spip('base/abstract_sql');
1546
-	return
1547
-		$qui['statut'] == '0minirezo' and !$qui['restreint']
1548
-		and (
1549
-			$GLOBALS['meta']['accepter_visiteurs'] != 'non'
1550
-			or sql_countsel('spip_auteurs', 'statut in ("6forum", "nouveau")') > 0
1551
-		);
1545
+    include_spip('base/abstract_sql');
1546
+    return
1547
+        $qui['statut'] == '0minirezo' and !$qui['restreint']
1548
+        and (
1549
+            $GLOBALS['meta']['accepter_visiteurs'] != 'non'
1550
+            or sql_countsel('spip_auteurs', 'statut in ("6forum", "nouveau")') > 0
1551
+        );
1552 1552
 }
1553 1553
 
1554 1554
 /**
@@ -1564,7 +1564,7 @@  discard block
 block discarded – undo
1564 1564
  * @return bool          true s'il a le droit, false sinon
1565 1565
  **/
1566 1566
 function autoriser_suiviedito_menu_dist($faire, $type, $id, $qui, $opt) {
1567
-	return $qui['statut'] == '0minirezo';
1567
+    return $qui['statut'] == '0minirezo';
1568 1568
 }
1569 1569
 
1570 1570
 /**
@@ -1580,7 +1580,7 @@  discard block
 block discarded – undo
1580 1580
  * @return bool          true s'il a le droit, false sinon
1581 1581
  **/
1582 1582
 function autoriser_synchro_menu_dist($faire, $type, $id, $qui, $opt) {
1583
-	return $qui['statut'] == '0minirezo';
1583
+    return $qui['statut'] == '0minirezo';
1584 1584
 }
1585 1585
 
1586 1586
 /**
@@ -1596,7 +1596,7 @@  discard block
 block discarded – undo
1596 1596
  * @return bool          true s'il a le droit, false sinon
1597 1597
  **/
1598 1598
 function autoriser_configurerinteractions_menu_dist($faire, $type, $id, $qui, $opt) {
1599
-	return autoriser('configurer', '_interactions', $id, $qui, $opt);
1599
+    return autoriser('configurer', '_interactions', $id, $qui, $opt);
1600 1600
 }
1601 1601
 
1602 1602
 /**
@@ -1612,7 +1612,7 @@  discard block
 block discarded – undo
1612 1612
  * @return bool          true s'il a le droit, false sinon
1613 1613
  **/
1614 1614
 function autoriser_configurerlangue_menu_dist($faire, $type, $id, $qui, $opt) {
1615
-	return autoriser('configurer', '_langue', $id, $qui, $opt);
1615
+    return autoriser('configurer', '_langue', $id, $qui, $opt);
1616 1616
 }
1617 1617
 
1618 1618
 /**
@@ -1628,7 +1628,7 @@  discard block
 block discarded – undo
1628 1628
  * @return bool          true s'il a le droit, false sinon
1629 1629
  **/
1630 1630
 function autoriser_configurermultilinguisme_menu_dist($faire, $type, $id, $qui, $opt) {
1631
-	return autoriser('configurer', '_multilinguisme', $id, $qui, $opt);
1631
+    return autoriser('configurer', '_multilinguisme', $id, $qui, $opt);
1632 1632
 }
1633 1633
 
1634 1634
 /**
@@ -1644,7 +1644,7 @@  discard block
 block discarded – undo
1644 1644
  * @return bool          true s'il a le droit, false sinon
1645 1645
  **/
1646 1646
 function autoriser_configurercontenu_menu_dist($faire, $type, $id, $qui, $opt) {
1647
-	return autoriser('configurer', '_contenu', $id, $qui, $opt);
1647
+    return autoriser('configurer', '_contenu', $id, $qui, $opt);
1648 1648
 }
1649 1649
 
1650 1650
 /**
@@ -1660,7 +1660,7 @@  discard block
 block discarded – undo
1660 1660
  * @return bool          true s'il a le droit, false sinon
1661 1661
  **/
1662 1662
 function autoriser_configureravancees_menu_dist($faire, $type, $id, $qui, $opt) {
1663
-	return autoriser('configurer', '_avancees', $id, $qui, $opt);
1663
+    return autoriser('configurer', '_avancees', $id, $qui, $opt);
1664 1664
 }
1665 1665
 
1666 1666
 /**
@@ -1676,7 +1676,7 @@  discard block
 block discarded – undo
1676 1676
  * @return bool          true s'il a le droit, false sinon
1677 1677
  **/
1678 1678
 function autoriser_adminplugin_menu_dist($faire, $type, $id, $qui, $opt) {
1679
-	return autoriser('configurer', '_plugins', $id, $qui, $opt);
1679
+    return autoriser('configurer', '_plugins', $id, $qui, $opt);
1680 1680
 }
1681 1681
 
1682 1682
 /**
@@ -1692,7 +1692,7 @@  discard block
 block discarded – undo
1692 1692
  * @return bool          true s'il a le droit, false sinon
1693 1693
  **/
1694 1694
 function autoriser_admintech_menu_dist($faire, $type, $id, $qui, $opt) {
1695
-	return autoriser('detruire', $type, $id, $qui, $opt);
1695
+    return autoriser('detruire', $type, $id, $qui, $opt);
1696 1696
 }
1697 1697
 
1698 1698
 /**
@@ -1708,7 +1708,7 @@  discard block
 block discarded – undo
1708 1708
  * @return bool          true s'il a le droit, false sinon
1709 1709
  **/
1710 1710
 function autoriser_queue_purger_dist($faire, $type, $id, $qui, $opt) {
1711
-	return autoriser('webmestre');
1711
+    return autoriser('webmestre');
1712 1712
 }
1713 1713
 
1714 1714
 
@@ -1726,11 +1726,11 @@  discard block
 block discarded – undo
1726 1726
  * @return bool          true s'il a le droit, false sinon
1727 1727
  **/
1728 1728
 function autoriser_echafauder_dist($faire, $type, $id, $qui, $opt) {
1729
-	if (test_espace_prive()) {
1730
-		return intval($qui['id_auteur']) ? true : false;
1731
-	} else {
1732
-		return autoriser('webmestre', '', $id, $qui, $opt);
1733
-	}
1729
+    if (test_espace_prive()) {
1730
+        return intval($qui['id_auteur']) ? true : false;
1731
+    } else {
1732
+        return autoriser('webmestre', '', $id, $qui, $opt);
1733
+    }
1734 1734
 }
1735 1735
 
1736 1736
 
@@ -1745,27 +1745,27 @@  discard block
 block discarded – undo
1745 1745
  *     Identifiants d'auteurs
1746 1746
  */
1747 1747
 function auteurs_objet($objet, $id_objet, $cond = '') {
1748
-	$objet = objet_type($objet);
1749
-	$where = [
1750
-		'objet=' . sql_quote($objet),
1751
-		'id_objet=' . intval($id_objet)
1752
-	];
1753
-	if (!empty($cond)) {
1754
-		if (is_array($cond)) {
1755
-			$where = array_merge($where, $cond);
1756
-		} else {
1757
-			$where[] = $cond;
1758
-		}
1759
-	}
1760
-	$auteurs = sql_allfetsel(
1761
-		'id_auteur',
1762
-		'spip_auteurs_liens',
1763
-		$where
1764
-	);
1765
-	if (is_array($auteurs)) {
1766
-		return array_column($auteurs, 'id_auteur');
1767
-	}
1768
-	return [];
1748
+    $objet = objet_type($objet);
1749
+    $where = [
1750
+        'objet=' . sql_quote($objet),
1751
+        'id_objet=' . intval($id_objet)
1752
+    ];
1753
+    if (!empty($cond)) {
1754
+        if (is_array($cond)) {
1755
+            $where = array_merge($where, $cond);
1756
+        } else {
1757
+            $where[] = $cond;
1758
+        }
1759
+    }
1760
+    $auteurs = sql_allfetsel(
1761
+        'id_auteur',
1762
+        'spip_auteurs_liens',
1763
+        $where
1764
+    );
1765
+    if (is_array($auteurs)) {
1766
+        return array_column($auteurs, 'id_auteur');
1767
+    }
1768
+    return [];
1769 1769
 }
1770 1770
 
1771 1771
 /**
@@ -1780,11 +1780,11 @@  discard block
 block discarded – undo
1780 1780
  *     - false : serveur SQL indisponible
1781 1781
  */
1782 1782
 function auteurs_article($id_article, $cond = '') {
1783
-	return sql_allfetsel(
1784
-		'id_auteur',
1785
-		'spip_auteurs_liens',
1786
-		"objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1787
-	);
1783
+    return sql_allfetsel(
1784
+        'id_auteur',
1785
+        'spip_auteurs_liens',
1786
+        "objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1787
+    );
1788 1788
 }
1789 1789
 
1790 1790
 
@@ -1798,7 +1798,7 @@  discard block
 block discarded – undo
1798 1798
  */
1799 1799
 function acces_restreint_rubrique($id_rubrique) {
1800 1800
 
1801
-	return (isset($GLOBALS['connect_id_rubrique'][$id_rubrique]));
1801
+    return (isset($GLOBALS['connect_id_rubrique'][$id_rubrique]));
1802 1802
 }
1803 1803
 
1804 1804
 
@@ -1811,12 +1811,12 @@  discard block
 block discarded – undo
1811 1811
  * @return bool             true si un parent existe
1812 1812
  */
1813 1813
 function verifier_table_non_vide($table = 'spip_rubriques') {
1814
-	static $done = [];
1815
-	if (!isset($done[$table])) {
1816
-		$done[$table] = sql_countsel($table) > 0;
1817
-	}
1814
+    static $done = [];
1815
+    if (!isset($done[$table])) {
1816
+        $done[$table] = sql_countsel($table) > 0;
1817
+    }
1818 1818
 
1819
-	return $done[$table];
1819
+    return $done[$table];
1820 1820
 }
1821 1821
 
1822 1822
 /**
@@ -1841,15 +1841,15 @@  discard block
 block discarded – undo
1841 1841
  */
1842 1842
 function autoriser_inscrireauteur_dist($faire, $quoi, $id, $qui, $opt) {
1843 1843
 
1844
-	$s = array_search($quoi, $GLOBALS['liste_des_statuts']);
1845
-	switch ($s) {
1846
-		case 'info_redacteurs':
1847
-			return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
1848
-		case 'info_visiteurs':
1849
-			return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' or $GLOBALS['meta']['forums_publics'] == 'abo');
1850
-	}
1844
+    $s = array_search($quoi, $GLOBALS['liste_des_statuts']);
1845
+    switch ($s) {
1846
+        case 'info_redacteurs':
1847
+            return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
1848
+        case 'info_visiteurs':
1849
+            return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' or $GLOBALS['meta']['forums_publics'] == 'abo');
1850
+    }
1851 1851
 
1852
-	return false;
1852
+    return false;
1853 1853
 }
1854 1854
 
1855 1855
 /**
@@ -1865,7 +1865,7 @@  discard block
 block discarded – undo
1865 1865
  * @return bool          false
1866 1866
  **/
1867 1867
 function autoriser_inscription_relancer_dist($faire, $type, $id, $qui, $opt) {
1868
-	return $qui['statut'] == '0minirezo' and !$qui['restreint'];
1868
+    return $qui['statut'] == '0minirezo' and !$qui['restreint'];
1869 1869
 }
1870 1870
 
1871 1871
 /**
@@ -1881,5 +1881,5 @@  discard block
 block discarded – undo
1881 1881
  * @return bool          true s'il a le droit, false sinon
1882 1882
  **/
1883 1883
 function autoriser_phpinfos_dist($faire, $type, $id, $qui, $opt) {
1884
-	return autoriser('webmestre');
1884
+    return autoriser('webmestre');
1885 1885
 }
Please login to merge, or discard this patch.
ecrire/inc/cvt_autosave.php 1 patch
Indentation   +73 added lines, -73 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
 /**
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
  * @return string
28 28
  */
29 29
 function autosave_clean_value($val) {
30
-	return stripslashes(urldecode($val));
30
+    return stripslashes(urldecode($val));
31 31
 }
32 32
 
33 33
 /**
@@ -38,58 +38,58 @@  discard block
 block discarded – undo
38 38
  * @return array
39 39
  */
40 40
 function cvtautosave_formulaire_charger($flux) {
41
-	if (
42
-		is_array($flux['data'])
43
-		and isset($flux['data']['_autosave_id'])
44
-		and $cle_autosave = $flux['data']['_autosave_id']
45
-	) {
46
-		$form = $flux['args']['form'];
47
-		$je_suis_poste = $flux['args']['je_suis_poste'];
41
+    if (
42
+        is_array($flux['data'])
43
+        and isset($flux['data']['_autosave_id'])
44
+        and $cle_autosave = $flux['data']['_autosave_id']
45
+    ) {
46
+        $form = $flux['args']['form'];
47
+        $je_suis_poste = $flux['args']['je_suis_poste'];
48 48
 
49
-		$cle_autosave = serialize($cle_autosave);
50
-		$cle_autosave = $form . '_' . md5($cle_autosave);
49
+        $cle_autosave = serialize($cle_autosave);
50
+        $cle_autosave = $form . '_' . md5($cle_autosave);
51 51
 
52
-		// si on a un backup en session et qu'on est au premier chargement, non poste
53
-		// on restitue les donnees
54
-		if (
55
-			isset($GLOBALS['visiteur_session']['session_autosave_' . $cle_autosave])
56
-			and !$je_suis_poste
57
-		) {
58
-			parse_str($GLOBALS['visiteur_session']['session_autosave_' . $cle_autosave], $vars);
59
-			foreach ($vars as $key => $val) {
60
-				if (isset($flux['data'][$key])) {
61
-					$flux['data'][$key] = (is_string($val) ? autosave_clean_value($val) : array_map(
62
-						'autosave_clean_value',
63
-						$val
64
-					));
65
-				}
66
-			}
67
-		}
52
+        // si on a un backup en session et qu'on est au premier chargement, non poste
53
+        // on restitue les donnees
54
+        if (
55
+            isset($GLOBALS['visiteur_session']['session_autosave_' . $cle_autosave])
56
+            and !$je_suis_poste
57
+        ) {
58
+            parse_str($GLOBALS['visiteur_session']['session_autosave_' . $cle_autosave], $vars);
59
+            foreach ($vars as $key => $val) {
60
+                if (isset($flux['data'][$key])) {
61
+                    $flux['data'][$key] = (is_string($val) ? autosave_clean_value($val) : array_map(
62
+                        'autosave_clean_value',
63
+                        $val
64
+                    ));
65
+                }
66
+            }
67
+        }
68 68
 
69
-		// si on est dans le charger() qui suit le traiter(), l'autosave a normalement ete vide
70
-		// mais si il y a plusieurs sessions il peut y avoir concurrence et un retour de l'autosave
71
-		if ($je_suis_poste and _request('autosave') === $cle_autosave and function_exists('terminer_actualiser_sessions')) {
72
-			terminer_actualiser_sessions();
73
-			// et verifions si jamais l'autosave a fait un come back, dans ce cas on le revide
74
-			if (isset($GLOBALS['visiteur_session']['session_autosave_' . $cle_autosave])) {
75
-				session_set('session_autosave_' . $cle_autosave, null);
76
-				// en court sleep pour etre certain que la concurrence est finie
77
-				sleep(1);
78
-				terminer_actualiser_sessions();
79
-			}
80
-		}
69
+        // si on est dans le charger() qui suit le traiter(), l'autosave a normalement ete vide
70
+        // mais si il y a plusieurs sessions il peut y avoir concurrence et un retour de l'autosave
71
+        if ($je_suis_poste and _request('autosave') === $cle_autosave and function_exists('terminer_actualiser_sessions')) {
72
+            terminer_actualiser_sessions();
73
+            // et verifions si jamais l'autosave a fait un come back, dans ce cas on le revide
74
+            if (isset($GLOBALS['visiteur_session']['session_autosave_' . $cle_autosave])) {
75
+                session_set('session_autosave_' . $cle_autosave, null);
76
+                // en court sleep pour etre certain que la concurrence est finie
77
+                sleep(1);
78
+                terminer_actualiser_sessions();
79
+            }
80
+        }
81 81
 
82 82
 
83
-		/**
84
-		 * Envoyer le input hidden et le bout de js qui l'utilisera
85
-		 */
86
-		$flux['data']['_hidden'] .= "<input type='hidden' name='autosave' class='autosaveactive' value='$cle_autosave' />"
87
-			. '<script type="text/javascript">/*<![CDATA[*/if (window.jQuery) jQuery(function(){
83
+        /**
84
+         * Envoyer le input hidden et le bout de js qui l'utilisera
85
+         */
86
+        $flux['data']['_hidden'] .= "<input type='hidden' name='autosave' class='autosaveactive' value='$cle_autosave' />"
87
+            . '<script type="text/javascript">/*<![CDATA[*/if (window.jQuery) jQuery(function(){
88 88
 		  $("input.autosaveactive").closest("form:not(.autosaveon)").autosave({url:"' . $GLOBALS['meta']['adresse_site'] . '/"}).addClass("autosaveon");
89 89
 			});/*]]>*/</script>';
90
-	}
90
+    }
91 91
 
92
-	return $flux;
92
+    return $flux;
93 93
 }
94 94
 
95 95
 /**
@@ -103,33 +103,33 @@  discard block
 block discarded – undo
103 103
  * @return array
104 104
  */
105 105
 function cvtautosave_formulaire_traiter($flux) {
106
-	// si on poste 'autosave' c'est qu'on n'a plus besoin de sauvegarder :
107
-	// on elimine les donnees de la session
108
-	if ($cle_autosave = _request('autosave')) {
109
-		include_spip('inc/session');
110
-		session_set('session_autosave_' . $cle_autosave, null);
111
-	}
106
+    // si on poste 'autosave' c'est qu'on n'a plus besoin de sauvegarder :
107
+    // on elimine les donnees de la session
108
+    if ($cle_autosave = _request('autosave')) {
109
+        include_spip('inc/session');
110
+        session_set('session_autosave_' . $cle_autosave, null);
111
+    }
112 112
 
113
-	if (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']) {
114
-		// delai par defaut avant purge d'un backup de form : 72H
115
-		if (!defined('_AUTOSAVE_GB_DELAY')) {
116
-			define('_AUTOSAVE_GB_DELAY', 72 * 3600);
117
-		}
118
-		$time_too_old = time() - _AUTOSAVE_GB_DELAY;
119
-		// purger aussi toutes les vieilles autosave
120
-		$session = $GLOBALS['visiteur_session'];
121
-		foreach ($session as $k => $v) {
122
-			if (strncmp($k, 'session_autosave_', 17) == 0) {
123
-				$timestamp = 0;
124
-				if (preg_match(',&__timestamp=(\d+)$,', $v, $m)) {
125
-					$timestamp = intval($m[1]);
126
-				}
127
-				if ($timestamp < $time_too_old) {
128
-					session_set($k, null);
129
-				}
130
-			}
131
-		}
132
-	}
113
+    if (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']) {
114
+        // delai par defaut avant purge d'un backup de form : 72H
115
+        if (!defined('_AUTOSAVE_GB_DELAY')) {
116
+            define('_AUTOSAVE_GB_DELAY', 72 * 3600);
117
+        }
118
+        $time_too_old = time() - _AUTOSAVE_GB_DELAY;
119
+        // purger aussi toutes les vieilles autosave
120
+        $session = $GLOBALS['visiteur_session'];
121
+        foreach ($session as $k => $v) {
122
+            if (strncmp($k, 'session_autosave_', 17) == 0) {
123
+                $timestamp = 0;
124
+                if (preg_match(',&__timestamp=(\d+)$,', $v, $m)) {
125
+                    $timestamp = intval($m[1]);
126
+                }
127
+                if ($timestamp < $time_too_old) {
128
+                    session_set($k, null);
129
+                }
130
+            }
131
+        }
132
+    }
133 133
 
134
-	return $flux;
134
+    return $flux;
135 135
 }
Please login to merge, or discard this patch.
ecrire/inc/roles.php 1 patch
Indentation   +185 added lines, -185 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
  */
29 29
 
30 30
 if (!defined('_ECRIRE_INC_VERSION')) {
31
-	return;
31
+    return;
32 32
 }
33 33
 
34 34
 
@@ -48,55 +48,55 @@  discard block
 block discarded – undo
48 48
  *     array : description des roles applicables dans 3 index : colonne, titres, roles
49 49
  **/
50 50
 function roles_presents($objet, $objet_destination = '') {
51
-	$desc = lister_tables_objets_sql(table_objet_sql($objet));
52
-
53
-	// pas de liste de roles, on sort
54
-	if (!isset($desc['roles_titres']) or !($titres = $desc['roles_titres'])) {
55
-		return false;
56
-	}
57
-
58
-	// on vérifie que la table de liaison existe
59
-	include_spip('action/editer_liens');
60
-	if (!$lien = objet_associable($objet)) {
61
-		return false;
62
-	}
63
-
64
-	// on cherche ensuite si la colonne existe bien dans la table de liaison (par défaut 'role')
65
-	$colonne = isset($desc['roles_colonne']) ? $desc['roles_colonne'] : 'role';
66
-	$trouver_table = charger_fonction('trouver_table', 'base');
67
-	list(, $table_lien) = $lien;
68
-	$desc_lien = $trouver_table($table_lien);
69
-	if (!isset($desc_lien['field'][$colonne])) {
70
-		return false;
71
-	}
72
-
73
-	// sur quoi peuvent s'appliquer nos rôles
74
-	if (!$application = $desc['roles_objets']) {
75
-		return false;
76
-	}
77
-
78
-	// destination presente, on restreint si possible
79
-	if ($objet_destination) {
80
-		$objet_destination = table_objet($objet_destination);
81
-
82
-		// pour l'objet
83
-		if (isset($application[$objet_destination])) {
84
-			$application = $application[$objet_destination];
85
-			// sinon pour tous les objets
86
-		} elseif (isset($application['*'])) {
87
-			$application = $application['*'];
88
-		} // sinon tant pis
89
-		else {
90
-			return false;
91
-		}
92
-	}
93
-
94
-	// tout est ok
95
-	return [
96
-		'titres' => $titres,
97
-		'roles' => $application,
98
-		'colonne' => $colonne
99
-	];
51
+    $desc = lister_tables_objets_sql(table_objet_sql($objet));
52
+
53
+    // pas de liste de roles, on sort
54
+    if (!isset($desc['roles_titres']) or !($titres = $desc['roles_titres'])) {
55
+        return false;
56
+    }
57
+
58
+    // on vérifie que la table de liaison existe
59
+    include_spip('action/editer_liens');
60
+    if (!$lien = objet_associable($objet)) {
61
+        return false;
62
+    }
63
+
64
+    // on cherche ensuite si la colonne existe bien dans la table de liaison (par défaut 'role')
65
+    $colonne = isset($desc['roles_colonne']) ? $desc['roles_colonne'] : 'role';
66
+    $trouver_table = charger_fonction('trouver_table', 'base');
67
+    list(, $table_lien) = $lien;
68
+    $desc_lien = $trouver_table($table_lien);
69
+    if (!isset($desc_lien['field'][$colonne])) {
70
+        return false;
71
+    }
72
+
73
+    // sur quoi peuvent s'appliquer nos rôles
74
+    if (!$application = $desc['roles_objets']) {
75
+        return false;
76
+    }
77
+
78
+    // destination presente, on restreint si possible
79
+    if ($objet_destination) {
80
+        $objet_destination = table_objet($objet_destination);
81
+
82
+        // pour l'objet
83
+        if (isset($application[$objet_destination])) {
84
+            $application = $application[$objet_destination];
85
+            // sinon pour tous les objets
86
+        } elseif (isset($application['*'])) {
87
+            $application = $application['*'];
88
+        } // sinon tant pis
89
+        else {
90
+            return false;
91
+        }
92
+    }
93
+
94
+    // tout est ok
95
+    return [
96
+        'titres' => $titres,
97
+        'roles' => $application,
98
+        'colonne' => $colonne
99
+    ];
100 100
 }
101 101
 
102 102
 /**
@@ -110,11 +110,11 @@  discard block
 block discarded – undo
110 110
  *     Nom de la colonne, sinon vide
111 111
  **/
112 112
 function roles_colonne($objet, $objet_destination) {
113
-	if ($roles = roles_presents($objet, $objet_destination)) {
114
-		return $roles['colonne'];
115
-	}
113
+    if ($roles = roles_presents($objet, $objet_destination)) {
114
+        return $roles['colonne'];
115
+    }
116 116
 
117
-	return '';
117
+    return '';
118 118
 }
119 119
 
120 120
 
@@ -136,24 +136,24 @@  discard block
 block discarded – undo
136 136
  *     Liste ('', '', array()) sinon.
137 137
  **/
138 138
 function roles_trouver_dans_qualif($objet, $objet_destination, $qualif = []) {
139
-	// si des rôles sont possibles, on les utilise
140
-	$role = $colonne_role = ''; # role défini
141
-	// condition du where par defaut
142
-	$cond = [];
143
-	if ($roles = roles_presents($objet, $objet_destination)) {
144
-		$colonne_role = $roles['colonne'];
145
-		// qu'il n'est pas défini
146
-		if (
147
-			!isset($qualif[$colonne_role])
148
-			or !($role = $qualif[$colonne_role])
149
-		) {
150
-			$role = $roles['roles']['defaut'];
151
-		}
152
-		// where
153
-		$cond = ["$colonne_role=" . sql_quote($role)];
154
-	}
155
-
156
-	return [$role, $colonne_role, $cond];
139
+    // si des rôles sont possibles, on les utilise
140
+    $role = $colonne_role = ''; # role défini
141
+    // condition du where par defaut
142
+    $cond = [];
143
+    if ($roles = roles_presents($objet, $objet_destination)) {
144
+        $colonne_role = $roles['colonne'];
145
+        // qu'il n'est pas défini
146
+        if (
147
+            !isset($qualif[$colonne_role])
148
+            or !($role = $qualif[$colonne_role])
149
+        ) {
150
+            $role = $roles['roles']['defaut'];
151
+        }
152
+        // where
153
+        $cond = ["$colonne_role=" . sql_quote($role)];
154
+    }
155
+
156
+    return [$role, $colonne_role, $cond];
157 157
 }
158 158
 
159 159
 /**
@@ -175,21 +175,21 @@  discard block
 block discarded – undo
175 175
  *     Liste (Tableau de conditions where complété du role, Colonne du role, role utilisé)
176 176
  **/
177 177
 function roles_creer_condition_role($objet_source, $objet, $cond, $tous_si_absent = false) {
178
-	// role par défaut, colonne
179
-	list($role_defaut, $colonne_role) = roles_trouver_dans_qualif($objet_source, $objet);
178
+    // role par défaut, colonne
179
+    list($role_defaut, $colonne_role) = roles_trouver_dans_qualif($objet_source, $objet);
180 180
 
181
-	// chercher d'eventuels rôles transmis
182
-	$role = (isset($cond['role']) ? $cond['role'] : ($tous_si_absent ? '*' : $role_defaut));
183
-	unset($cond['role']); // cette condition est particuliere...
181
+    // chercher d'eventuels rôles transmis
182
+    $role = (isset($cond['role']) ? $cond['role'] : ($tous_si_absent ? '*' : $role_defaut));
183
+    unset($cond['role']); // cette condition est particuliere...
184 184
 
185
-	if ($colonne_role) {
186
-		// on ajoute la condition du role aux autres conditions.
187
-		if ($role != '*') {
188
-			$cond[] = "$colonne_role=" . sql_quote($role);
189
-		}
190
-	}
185
+    if ($colonne_role) {
186
+        // on ajoute la condition du role aux autres conditions.
187
+        if ($role != '*') {
188
+            $cond[] = "$colonne_role=" . sql_quote($role);
189
+        }
190
+    }
191 191
 
192
-	return [$cond, $colonne_role, $role];
192
+    return [$cond, $colonne_role, $role];
193 193
 }
194 194
 
195 195
 /**
@@ -211,28 +211,28 @@  discard block
 block discarded – undo
211 211
  */
212 212
 function roles_complets($objet_source, $objet, $id_objet, $objet_lien) {
213 213
 
214
-	$presents = roles_presents_liaisons($objet_source, $objet, $id_objet, $objet_lien);
215
-	// pas de roles sur ces objets => la liste par defaut, comme sans role
216
-	if ($presents === false) {
217
-		return lister_objets_lies($objet_source, $objet, $id_objet, $objet_lien);
218
-	}
219
-
220
-	// types de roles possibles
221
-	$roles_possibles = $presents['roles']['roles']['choix'];
222
-	// couples id / roles
223
-	$ids = $presents['ids'];
224
-
225
-	// pour chaque groupe, on fait le diff entre tous les roles possibles
226
-	// et les roles attribués à l'élément : s'il en reste, c'est que l'élément
227
-	// n'est pas complet
228
-	$complets = [];
229
-	foreach ($ids as $id => $roles_presents) {
230
-		if (!array_diff($roles_possibles, $roles_presents)) {
231
-			$complets[] = $id;
232
-		}
233
-	}
234
-
235
-	return $complets;
214
+    $presents = roles_presents_liaisons($objet_source, $objet, $id_objet, $objet_lien);
215
+    // pas de roles sur ces objets => la liste par defaut, comme sans role
216
+    if ($presents === false) {
217
+        return lister_objets_lies($objet_source, $objet, $id_objet, $objet_lien);
218
+    }
219
+
220
+    // types de roles possibles
221
+    $roles_possibles = $presents['roles']['roles']['choix'];
222
+    // couples id / roles
223
+    $ids = $presents['ids'];
224
+
225
+    // pour chaque groupe, on fait le diff entre tous les roles possibles
226
+    // et les roles attribués à l'élément : s'il en reste, c'est que l'élément
227
+    // n'est pas complet
228
+    $complets = [];
229
+    foreach ($ids as $id => $roles_presents) {
230
+        if (!array_diff($roles_possibles, $roles_presents)) {
231
+            $complets[] = $id;
232
+        }
233
+    }
234
+
235
+    return $complets;
236 236
 }
237 237
 
238 238
 
@@ -249,17 +249,17 @@  discard block
 block discarded – undo
249 249
  */
250 250
 function roles_presents_sur_id($id_objet_source, $objet_source, $objet, $id_objet, $objet_lien) {
251 251
 
252
-	$presents = roles_presents_liaisons($objet_source, $objet, $id_objet, $objet_lien);
253
-	// pas de roles sur ces objets => la liste par defaut, comme sans role
254
-	if ($presents === false) {
255
-		return [];
256
-	}
252
+    $presents = roles_presents_liaisons($objet_source, $objet, $id_objet, $objet_lien);
253
+    // pas de roles sur ces objets => la liste par defaut, comme sans role
254
+    if ($presents === false) {
255
+        return [];
256
+    }
257 257
 
258
-	if (!isset($presents['ids'][$id_objet_source])) {
259
-		return [];
260
-	}
258
+    if (!isset($presents['ids'][$id_objet_source])) {
259
+        return [];
260
+    }
261 261
 
262
-	return $presents['ids'][$id_objet_source];
262
+    return $presents['ids'][$id_objet_source];
263 263
 }
264 264
 
265 265
 
@@ -287,47 +287,47 @@  discard block
 block discarded – undo
287 287
  *     - False si pas de role déclarés
288 288
  */
289 289
 function roles_presents_liaisons($objet_source, $objet, $id_objet, $objet_lien) {
290
-	static $done = [];
291
-
292
-	// stocker le résultat
293
-	$hash = "$objet_source-$objet-$id_objet-$objet_lien";
294
-	if (isset($done[$hash])) {
295
-		return $done[$hash];
296
-	}
297
-
298
-	// pas de roles sur ces objets, on sort
299
-	$roles = roles_presents($objet_lien, ($objet_lien == $objet) ? $objet_source : $objet);
300
-	if (!$roles) {
301
-		return $done[$hash] = false;
302
-	}
303
-
304
-	// inspiré de lister_objets_lies()
305
-	if ($objet_lien == $objet) {
306
-		$res = objet_trouver_liens([$objet => $id_objet], [$objet_source => '*']);
307
-	} else {
308
-		$res = objet_trouver_liens([$objet_source => '*'], [$objet => $id_objet]);
309
-	}
310
-
311
-	// types de roles possibles
312
-	$roles_possibles = $roles['roles']['choix'];
313
-	// colonne du role
314
-	$colonne = $roles['colonne'];
315
-
316
-	// on recupere par id, et role existant
317
-	$ids = [];
318
-	while ($row = array_shift($res)) {
319
-		$id = $row[$objet_source];
320
-		if (!isset($ids[$id])) {
321
-			$ids[$id] = [];
322
-		}
323
-		// tableau des roles présents
324
-		$ids[$id][] = $row[$colonne];
325
-	}
326
-
327
-	return $done[$hash] = [
328
-		'roles' => $roles,
329
-		'ids' => $ids
330
-	];
290
+    static $done = [];
291
+
292
+    // stocker le résultat
293
+    $hash = "$objet_source-$objet-$id_objet-$objet_lien";
294
+    if (isset($done[$hash])) {
295
+        return $done[$hash];
296
+    }
297
+
298
+    // pas de roles sur ces objets, on sort
299
+    $roles = roles_presents($objet_lien, ($objet_lien == $objet) ? $objet_source : $objet);
300
+    if (!$roles) {
301
+        return $done[$hash] = false;
302
+    }
303
+
304
+    // inspiré de lister_objets_lies()
305
+    if ($objet_lien == $objet) {
306
+        $res = objet_trouver_liens([$objet => $id_objet], [$objet_source => '*']);
307
+    } else {
308
+        $res = objet_trouver_liens([$objet_source => '*'], [$objet => $id_objet]);
309
+    }
310
+
311
+    // types de roles possibles
312
+    $roles_possibles = $roles['roles']['choix'];
313
+    // colonne du role
314
+    $colonne = $roles['colonne'];
315
+
316
+    // on recupere par id, et role existant
317
+    $ids = [];
318
+    while ($row = array_shift($res)) {
319
+        $id = $row[$objet_source];
320
+        if (!isset($ids[$id])) {
321
+            $ids[$id] = [];
322
+        }
323
+        // tableau des roles présents
324
+        $ids[$id][] = $row[$colonne];
325
+    }
326
+
327
+    return $done[$hash] = [
328
+        'roles' => $roles,
329
+        'ids' => $ids
330
+    ];
331 331
 }
332 332
 
333 333
 
@@ -345,33 +345,33 @@  discard block
 block discarded – undo
345 345
  *     - false si pas de role déclarés
346 346
  */
347 347
 function roles_connus_en_base($objet_source, $objet, $objet_lien) {
348
-	static $done = [];
349
-
350
-	// stocker le résultat
351
-	$hash = "$objet_source-$objet-$objet_lien";
352
-	if (isset($done[$hash])) {
353
-		return $done[$hash];
354
-	}
355
-
356
-	if (!$lien = objet_associable($objet_lien)) {
357
-		return $done[$hash] = false;
358
-	}
359
-
360
-	// pas de roles sur ces objets, on sort
361
-	$roles = roles_presents($objet_lien, ($objet_lien == $objet) ? $objet_source : $objet);
362
-	if (!$roles) {
363
-		return $done[$hash] = false;
364
-	}
365
-
366
-	list($primary, $l) = $lien;
367
-	$colone_role = $roles['colonne'];
368
-
369
-	$all = sql_allfetsel(
370
-		"DISTINCT $colone_role",
371
-		$l,
372
-		'objet=' . sql_quote(($objet_source == $objet_lien) ? $objet : $objet_source)
373
-	);
374
-	$done[$hash] = array_map('reset', $all);
375
-
376
-	return $done[$hash];
348
+    static $done = [];
349
+
350
+    // stocker le résultat
351
+    $hash = "$objet_source-$objet-$objet_lien";
352
+    if (isset($done[$hash])) {
353
+        return $done[$hash];
354
+    }
355
+
356
+    if (!$lien = objet_associable($objet_lien)) {
357
+        return $done[$hash] = false;
358
+    }
359
+
360
+    // pas de roles sur ces objets, on sort
361
+    $roles = roles_presents($objet_lien, ($objet_lien == $objet) ? $objet_source : $objet);
362
+    if (!$roles) {
363
+        return $done[$hash] = false;
364
+    }
365
+
366
+    list($primary, $l) = $lien;
367
+    $colone_role = $roles['colonne'];
368
+
369
+    $all = sql_allfetsel(
370
+        "DISTINCT $colone_role",
371
+        $l,
372
+        'objet=' . sql_quote(($objet_source == $objet_lien) ? $objet : $objet_source)
373
+    );
374
+    $done[$hash] = array_map('reset', $all);
375
+
376
+    return $done[$hash];
377 377
 }
Please login to merge, or discard this patch.
ecrire/inc/commencer_page.php 1 patch
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', ['titre' => $titre, 'minipres' => $minipres ? ' ' : '']);
113
+    return recuperer_fond('prive/squelettes/head/dist', ['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'] : [];
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 = [
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'] : [];
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 = [
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.
ecrire/inc/csv.php 1 patch
Indentation   +108 added lines, -108 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
 /**
@@ -33,118 +33,118 @@  discard block
 block discarded – undo
33 33
  **/
34 34
 function analyse_csv($t) {
35 35
 
36
-	// Quel est le séparateur ?
37
-	$virg = substr_count($t, ',');
38
-	$pvirg = substr_count($t, ';');
39
-	$tab = substr_count($t, "\t");
40
-	if ($virg > $pvirg) {
41
-		$sep = ',';
42
-		$hs = '&#44;';
43
-	} else {
44
-		$sep = ';';
45
-		$hs = '&#59;';
46
-		$virg = $pvirg;
47
-	}
48
-	// un certain nombre de tab => le séparateur est tab
49
-	if ($tab > $virg / 10) {
50
-		$sep = "\t";
51
-		$hs = "\t";
52
-	}
36
+    // Quel est le séparateur ?
37
+    $virg = substr_count($t, ',');
38
+    $pvirg = substr_count($t, ';');
39
+    $tab = substr_count($t, "\t");
40
+    if ($virg > $pvirg) {
41
+        $sep = ',';
42
+        $hs = '&#44;';
43
+    } else {
44
+        $sep = ';';
45
+        $hs = '&#59;';
46
+        $virg = $pvirg;
47
+    }
48
+    // un certain nombre de tab => le séparateur est tab
49
+    if ($tab > $virg / 10) {
50
+        $sep = "\t";
51
+        $hs = "\t";
52
+    }
53 53
 
54
-	// un separateur suivi de 3 guillemets attention !
55
-	// attention au ; ou , suceptible d'etre confondu avec un separateur
56
-	// on substitue un # et on remplacera a la fin
57
-	$t = preg_replace("/([\n$sep])\"\"\"/", '\\1"&#34#', $t);
58
-	$t = str_replace('""', '&#34#', $t);
59
-	preg_match_all('/"[^"]*"/', $t, $r);
60
-	foreach ($r[0] as $cell) {
61
-		$t = str_replace(
62
-			$cell,
63
-			str_replace(
64
-				$sep,
65
-				$hs,
66
-				str_replace(
67
-					"\n",
68
-					'``**``', // échapper les saut de lignes, on les remettra après.
69
-					substr($cell, 1, -1)
70
-				)
71
-			),
72
-			$t
73
-		);
74
-	}
54
+    // un separateur suivi de 3 guillemets attention !
55
+    // attention au ; ou , suceptible d'etre confondu avec un separateur
56
+    // on substitue un # et on remplacera a la fin
57
+    $t = preg_replace("/([\n$sep])\"\"\"/", '\\1"&#34#', $t);
58
+    $t = str_replace('""', '&#34#', $t);
59
+    preg_match_all('/"[^"]*"/', $t, $r);
60
+    foreach ($r[0] as $cell) {
61
+        $t = str_replace(
62
+            $cell,
63
+            str_replace(
64
+                $sep,
65
+                $hs,
66
+                str_replace(
67
+                    "\n",
68
+                    '``**``', // échapper les saut de lignes, on les remettra après.
69
+                    substr($cell, 1, -1)
70
+                )
71
+            ),
72
+            $t
73
+        );
74
+    }
75 75
 
76
-	$t = preg_replace(
77
-		'/\r?\n/',
78
-		"\n",
79
-		preg_replace('/[\r\n]+/', "\n", $t)
80
-	);
76
+    $t = preg_replace(
77
+        '/\r?\n/',
78
+        "\n",
79
+        preg_replace('/[\r\n]+/', "\n", $t)
80
+    );
81 81
 
82
-	list($entete, $corps) = explode("\n", $t, 2);
83
-	$caption = '';
84
-	// sauter la ligne de tete formee seulement de separateurs
85
-	if (substr_count($entete, $sep) == strlen($entete)) {
86
-		list($entete, $corps) = explode("\n", $corps, 2);
87
-	}
88
-	// si une seule colonne, en faire le titre
89
-	if (preg_match("/^([^$sep]+)$sep+\$/", $entete, $l)) {
90
-		$caption = "\n||" . $l[1] . '|';
91
-		list($entete, $corps) = explode("\n", $corps, 2);
92
-	}
93
-	// si premiere colonne vide, le raccourci doit quand meme produire <th...
94
-	if ($entete[0] == $sep) {
95
-		$entete = ' ' . $entete;
96
-	}
82
+    list($entete, $corps) = explode("\n", $t, 2);
83
+    $caption = '';
84
+    // sauter la ligne de tete formee seulement de separateurs
85
+    if (substr_count($entete, $sep) == strlen($entete)) {
86
+        list($entete, $corps) = explode("\n", $corps, 2);
87
+    }
88
+    // si une seule colonne, en faire le titre
89
+    if (preg_match("/^([^$sep]+)$sep+\$/", $entete, $l)) {
90
+        $caption = "\n||" . $l[1] . '|';
91
+        list($entete, $corps) = explode("\n", $corps, 2);
92
+    }
93
+    // si premiere colonne vide, le raccourci doit quand meme produire <th...
94
+    if ($entete[0] == $sep) {
95
+        $entete = ' ' . $entete;
96
+    }
97 97
 
98
-	$lignes = explode("\n", $corps);
98
+    $lignes = explode("\n", $corps);
99 99
 
100
-	// retrait des lignes vides finales
101
-	while (
102
-		count($lignes) > 0
103
-		and preg_match("/^$sep*$/", $lignes[count($lignes) - 1])
104
-	) {
105
-		unset($lignes[count($lignes) - 1]);
106
-	}
107
-	//  calcul du  nombre de colonne a chaque ligne
108
-	$nbcols = [];
109
-	$max = $mil = substr_count($entete, $sep);
110
-	foreach ($lignes as $k => $v) {
111
-		if ($max <> ($nbcols[$k] = substr_count($v, $sep))) {
112
-			if ($max > $nbcols[$k]) {
113
-				$mil = $nbcols[$k];
114
-			} else {
115
-				$mil = $max;
116
-				$max = $nbcols[$k];
117
-			}
118
-		}
119
-	}
120
-	// Si pas le meme nombre, cadrer au nombre max
121
-	if ($mil <> $max) {
122
-		foreach ($nbcols as $k => $v) {
123
-			if ($v < $max) {
124
-				$lignes[$k] .= str_repeat($sep, $max - $v);
125
-			}
126
-		}
127
-	}
128
-	// et retirer les colonnes integralement vides
129
-	while (true) {
130
-		$nbcols = ($entete[strlen($entete) - 1] === $sep);
131
-		foreach ($lignes as $v) {
132
-			$nbcols &= ($v[strlen($v) - 1] === $sep);
133
-		}
134
-		if (!$nbcols) {
135
-			break;
136
-		}
137
-		$entete = substr($entete, 0, -1);
138
-		foreach ($lignes as $k => $v) {
139
-			$lignes[$k] = substr($v, 0, -1);
140
-		}
141
-	}
100
+    // retrait des lignes vides finales
101
+    while (
102
+        count($lignes) > 0
103
+        and preg_match("/^$sep*$/", $lignes[count($lignes) - 1])
104
+    ) {
105
+        unset($lignes[count($lignes) - 1]);
106
+    }
107
+    //  calcul du  nombre de colonne a chaque ligne
108
+    $nbcols = [];
109
+    $max = $mil = substr_count($entete, $sep);
110
+    foreach ($lignes as $k => $v) {
111
+        if ($max <> ($nbcols[$k] = substr_count($v, $sep))) {
112
+            if ($max > $nbcols[$k]) {
113
+                $mil = $nbcols[$k];
114
+            } else {
115
+                $mil = $max;
116
+                $max = $nbcols[$k];
117
+            }
118
+        }
119
+    }
120
+    // Si pas le meme nombre, cadrer au nombre max
121
+    if ($mil <> $max) {
122
+        foreach ($nbcols as $k => $v) {
123
+            if ($v < $max) {
124
+                $lignes[$k] .= str_repeat($sep, $max - $v);
125
+            }
126
+        }
127
+    }
128
+    // et retirer les colonnes integralement vides
129
+    while (true) {
130
+        $nbcols = ($entete[strlen($entete) - 1] === $sep);
131
+        foreach ($lignes as $v) {
132
+            $nbcols &= ($v[strlen($v) - 1] === $sep);
133
+        }
134
+        if (!$nbcols) {
135
+            break;
136
+        }
137
+        $entete = substr($entete, 0, -1);
138
+        foreach ($lignes as $k => $v) {
139
+            $lignes[$k] = substr($v, 0, -1);
140
+        }
141
+    }
142 142
 
143
-	foreach ($lignes as &$l) {
144
-		$l = str_replace('&#34#', '"', $l);
145
-		$l = str_replace('``**``', "\n", $l);
146
-		$l = explode($sep, $l);
147
-	}
143
+    foreach ($lignes as &$l) {
144
+        $l = str_replace('&#34#', '"', $l);
145
+        $l = str_replace('``**``', "\n", $l);
146
+        $l = explode($sep, $l);
147
+    }
148 148
 
149
-	return [explode($sep, $entete), $lignes, $caption];
149
+    return [explode($sep, $entete), $lignes, $caption];
150 150
 }
Please login to merge, or discard this patch.