Completed
Push — master ( cd3c15...e1d1bb )
by cam
01:20
created
ecrire/inc/cvt_configurer.php 2 patches
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
 	) {
39 39
 		// Pour tous les formulaires CONFIGURER, ayant une fonction charger ou pas, on teste si autorisé
40 40
 		include_spip('inc/autoriser');
41
-		if (!autoriser('configurer', '_' . substr($form, 11))) {
41
+		if (!autoriser('configurer', '_'.substr($form, 11))) {
42 42
 			return false;
43 43
 		}
44 44
 
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
 		and !charger_fonction('traiter', "formulaires/$form/", true) // sans fonction traiter()
73 73
 	) {
74 74
 		$trace = cvtconf_formulaires_configurer_enregistre($form, $flux['args']['args']);
75
-		$flux['data'] = ['message_ok' => _T('config_info_enregistree') . $trace, 'editable' => true];
75
+		$flux['data'] = ['message_ok' => _T('config_info_enregistree').$trace, 'editable' => true];
76 76
 	}
77 77
 
78 78
 	return $flux;
@@ -146,7 +146,7 @@  discard block
 block discarded – undo
146 146
 		$prefixe = $valeurs['_meta_prefixe'];
147 147
 	}
148 148
 	if (isset($valeurs['_meta_stockage'])) {
149
-		$stockage = $valeurs['_meta_stockage'] . '::';
149
+		$stockage = $valeurs['_meta_stockage'].'::';
150 150
 	}
151 151
 
152 152
 	// si on indique juste une table, il faut vider les autres proprietes
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
 
172 172
 	// sinon cas analyse du squelette
173 173
 	if (
174
-		$f = find_in_path($form . '.' . _EXTENSION_SQUELETTES, 'formulaires/')
174
+		$f = find_in_path($form.'.'._EXTENSION_SQUELETTES, 'formulaires/')
175 175
 		and lire_fichier($f, $contenu)
176 176
 	) {
177 177
 		for ($i = 0; $i < 2; $i++) {
@@ -228,14 +228,14 @@  discard block
 block discarded – undo
228 228
 		lire_metas($table);
229 229
 	}
230 230
 
231
-	$prefixe = ($prefixe ? $prefixe . '_' : '');
231
+	$prefixe = ($prefixe ? $prefixe.'_' : '');
232 232
 	$table = ($table) ? "/$table/" : '';
233
-	$casier = ($casier) ? rtrim($casier, '/') . '/' : ''; // slash final, sinon rien
233
+	$casier = ($casier) ? rtrim($casier, '/').'/' : ''; // slash final, sinon rien
234 234
 
235 235
 	foreach ($store as $k => $v) {
236 236
 		ecrire_config("$stockage$table$prefixe$casier$k", $v);
237 237
 		if (_request('var_mode') == 'configurer' and autoriser('webmestre')) {
238
-			$trace .= "<br />table $table : " . $prefixe . $k . " = $v;";
238
+			$trace .= "<br />table $table : ".$prefixe.$k." = $v;";
239 239
 		}
240 240
 	}
241 241
 
@@ -252,7 +252,7 @@  discard block
 block discarded – undo
252 252
 	[$table, $casier, $prefixe, $stockage] = cvtconf_definir_configurer_conteneur($form, $valeurs);
253 253
 
254 254
 	$table = ($table) ? "/$table/" : '';
255
-	$prefixe = ($prefixe ? $prefixe . '_' : '');
255
+	$prefixe = ($prefixe ? $prefixe.'_' : '');
256 256
 	if ($casier) {
257 257
 		$meta = lire_config("$stockage$table$prefixe$casier");
258 258
 		$prefixe = '';
@@ -263,7 +263,7 @@  discard block
 block discarded – undo
263 263
 
264 264
 	foreach ($valeurs as $k => $v) {
265 265
 		if (substr($k, 0, 1) !== '_') {
266
-			$valeurs[$k] = ($meta[$prefixe . $k] ?? null);
266
+			$valeurs[$k] = ($meta[$prefixe.$k] ?? null);
267 267
 		}
268 268
 	}
269 269
 }
Please login to merge, or discard this patch.
Indentation   +147 added lines, -147 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
  */
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 include_spip('inc/config');
@@ -32,31 +32,31 @@  discard block
 block discarded – undo
32 32
  * @return array|false
33 33
  */
34 34
 function cvtconf_formulaire_charger($flux) {
35
-	if (
36
-		$form = $flux['args']['form']
37
-		and strncmp($form, 'configurer_', 11) == 0 // un #FORMULAIRE_CONFIGURER_XXX
38
-	) {
39
-		// Pour tous les formulaires CONFIGURER, ayant une fonction charger ou pas, on teste si autorisé
40
-		include_spip('inc/autoriser');
41
-		if (!autoriser('configurer', '_' . substr($form, 11))) {
42
-			return false;
43
-		}
35
+    if (
36
+        $form = $flux['args']['form']
37
+        and strncmp($form, 'configurer_', 11) == 0 // un #FORMULAIRE_CONFIGURER_XXX
38
+    ) {
39
+        // Pour tous les formulaires CONFIGURER, ayant une fonction charger ou pas, on teste si autorisé
40
+        include_spip('inc/autoriser');
41
+        if (!autoriser('configurer', '_' . substr($form, 11))) {
42
+            return false;
43
+        }
44 44
 
45
-		// S'il n'y a pas de fonction charger(), on génère un contexte automatiquement
46
-		if (!charger_fonction('charger', "formulaires/$form/", true)) {
47
-			$flux['data'] = cvtconf_formulaires_configurer_recense($form);
48
-			$flux['data']['editable'] = true;
49
-			if (_request('var_mode') == 'configurer' and autoriser('webmestre')) {
50
-				if (!_AJAX) {
51
-					var_dump($flux['data']);
52
-				}
53
-				// reinjecter pour la trace au traitement
54
-				$flux['data']['_hidden'] = "<input type='hidden' name='var_mode' value='configurer' />";
55
-			}
56
-		}
57
-	}
45
+        // S'il n'y a pas de fonction charger(), on génère un contexte automatiquement
46
+        if (!charger_fonction('charger', "formulaires/$form/", true)) {
47
+            $flux['data'] = cvtconf_formulaires_configurer_recense($form);
48
+            $flux['data']['editable'] = true;
49
+            if (_request('var_mode') == 'configurer' and autoriser('webmestre')) {
50
+                if (!_AJAX) {
51
+                    var_dump($flux['data']);
52
+                }
53
+                // reinjecter pour la trace au traitement
54
+                $flux['data']['_hidden'] = "<input type='hidden' name='var_mode' value='configurer' />";
55
+            }
56
+        }
57
+    }
58 58
 
59
-	return $flux;
59
+    return $flux;
60 60
 }
61 61
 
62 62
 /**
@@ -66,16 +66,16 @@  discard block
 block discarded – undo
66 66
  * @return array
67 67
  */
68 68
 function cvtconf_formulaire_traiter($flux) {
69
-	if (
70
-		$form = $flux['args']['form']
71
-		and strncmp($form, 'configurer_', 11) == 0 // un #FORMULAIRE_CONFIGURER_XXX
72
-		and !charger_fonction('traiter', "formulaires/$form/", true) // sans fonction traiter()
73
-	) {
74
-		$trace = cvtconf_formulaires_configurer_enregistre($form, $flux['args']['args']);
75
-		$flux['data'] = ['message_ok' => _T('config_info_enregistree') . $trace, 'editable' => true];
76
-	}
69
+    if (
70
+        $form = $flux['args']['form']
71
+        and strncmp($form, 'configurer_', 11) == 0 // un #FORMULAIRE_CONFIGURER_XXX
72
+        and !charger_fonction('traiter', "formulaires/$form/", true) // sans fonction traiter()
73
+    ) {
74
+        $trace = cvtconf_formulaires_configurer_enregistre($form, $flux['args']['args']);
75
+        $flux['data'] = ['message_ok' => _T('config_info_enregistree') . $trace, 'editable' => true];
76
+    }
77 77
 
78
-	return $flux;
78
+    return $flux;
79 79
 }
80 80
 
81 81
 /**
@@ -91,32 +91,32 @@  discard block
 block discarded – undo
91 91
  * @return string
92 92
  */
93 93
 function cvtconf_formulaires_configurer_enregistre($form, $args) {
94
-	$valeurs = [];
95
-	// charger les valeurs
96
-	// ce qui permet de prendre en charge une fonction charger() existante
97
-	// qui prend alors la main sur l'auto detection
98
-	if ($charger_valeurs = charger_fonction('charger', "formulaires/$form/", true)) {
99
-		$valeurs = call_user_func_array($charger_valeurs, $args);
100
-	}
101
-	$valeurs = pipeline(
102
-		'formulaire_charger',
103
-		[
104
-			'args' => ['form' => $form, 'args' => $args, 'je_suis_poste' => false],
105
-			'data' => $valeurs
106
-		]
107
-	);
108
-	// ne pas stocker editable !
109
-	unset($valeurs['editable']);
94
+    $valeurs = [];
95
+    // charger les valeurs
96
+    // ce qui permet de prendre en charge une fonction charger() existante
97
+    // qui prend alors la main sur l'auto detection
98
+    if ($charger_valeurs = charger_fonction('charger', "formulaires/$form/", true)) {
99
+        $valeurs = call_user_func_array($charger_valeurs, $args);
100
+    }
101
+    $valeurs = pipeline(
102
+        'formulaire_charger',
103
+        [
104
+            'args' => ['form' => $form, 'args' => $args, 'je_suis_poste' => false],
105
+            'data' => $valeurs
106
+        ]
107
+    );
108
+    // ne pas stocker editable !
109
+    unset($valeurs['editable']);
110 110
 
111
-	// recuperer les valeurs postees
112
-	$store = [];
113
-	foreach ($valeurs as $k => $v) {
114
-		if (substr($k, 0, 1) !== '_') {
115
-			$store[$k] = _request($k);
116
-		}
117
-	}
111
+    // recuperer les valeurs postees
112
+    $store = [];
113
+    foreach ($valeurs as $k => $v) {
114
+        if (substr($k, 0, 1) !== '_') {
115
+            $store[$k] = _request($k);
116
+        }
117
+    }
118 118
 
119
-	return cvtconf_configurer_stocker($form, $valeurs, $store);
119
+    return cvtconf_configurer_stocker($form, $valeurs, $store);
120 120
 }
121 121
 
122 122
 /**
@@ -132,31 +132,31 @@  discard block
 block discarded – undo
132 132
  * @return array
133 133
  */
134 134
 function cvtconf_definir_configurer_conteneur($form, $valeurs) {
135
-	// stocker en base
136
-	// par defaut, dans un casier serialize dans spip_meta (idem CFG)
137
-	$casier = substr($form, 11);
138
-	$table = 'meta';
139
-	$prefixe = '';
140
-	$stockage = '';
135
+    // stocker en base
136
+    // par defaut, dans un casier serialize dans spip_meta (idem CFG)
137
+    $casier = substr($form, 11);
138
+    $table = 'meta';
139
+    $prefixe = '';
140
+    $stockage = '';
141 141
 
142
-	if (isset($valeurs['_meta_casier'])) {
143
-		$casier = $valeurs['_meta_casier'];
144
-	}
145
-	if (isset($valeurs['_meta_prefixe'])) {
146
-		$prefixe = $valeurs['_meta_prefixe'];
147
-	}
148
-	if (isset($valeurs['_meta_stockage'])) {
149
-		$stockage = $valeurs['_meta_stockage'] . '::';
150
-	}
142
+    if (isset($valeurs['_meta_casier'])) {
143
+        $casier = $valeurs['_meta_casier'];
144
+    }
145
+    if (isset($valeurs['_meta_prefixe'])) {
146
+        $prefixe = $valeurs['_meta_prefixe'];
147
+    }
148
+    if (isset($valeurs['_meta_stockage'])) {
149
+        $stockage = $valeurs['_meta_stockage'] . '::';
150
+    }
151 151
 
152
-	// si on indique juste une table, il faut vider les autres proprietes
153
-	// car par defaut on utilise ni casier ni prefixe dans ce cas
154
-	if (isset($valeurs['_meta_table'])) {
155
-		$table = $valeurs['_meta_table'];
156
-		$casier = ($valeurs['_meta_casier'] ?? '');
157
-	}
152
+    // si on indique juste une table, il faut vider les autres proprietes
153
+    // car par defaut on utilise ni casier ni prefixe dans ce cas
154
+    if (isset($valeurs['_meta_table'])) {
155
+        $table = $valeurs['_meta_table'];
156
+        $casier = ($valeurs['_meta_casier'] ?? '');
157
+    }
158 158
 
159
-	return [$table, $casier, $prefixe, $stockage];
159
+    return [$table, $casier, $prefixe, $stockage];
160 160
 }
161 161
 
162 162
 /**
@@ -167,48 +167,48 @@  discard block
 block discarded – undo
167 167
  * @return array
168 168
  */
169 169
 function cvtconf_formulaires_configurer_recense($form) {
170
-	$valeurs = ['editable' => ' '];
170
+    $valeurs = ['editable' => ' '];
171 171
 
172
-	// sinon cas analyse du squelette
173
-	if (
174
-		$f = find_in_path($form . '.' . _EXTENSION_SQUELETTES, 'formulaires/')
175
-		and lire_fichier($f, $contenu)
176
-	) {
177
-		for ($i = 0; $i < 2; $i++) {
178
-			// a la seconde iteration, evaluer le fond avec les valeurs deja trouvees
179
-			// permet de trouver aussi les name="#GET{truc}"
180
-			if ($i == 1) {
181
-				$contenu = recuperer_fond("formulaires/$form", $valeurs);
182
-			}
172
+    // sinon cas analyse du squelette
173
+    if (
174
+        $f = find_in_path($form . '.' . _EXTENSION_SQUELETTES, 'formulaires/')
175
+        and lire_fichier($f, $contenu)
176
+    ) {
177
+        for ($i = 0; $i < 2; $i++) {
178
+            // a la seconde iteration, evaluer le fond avec les valeurs deja trouvees
179
+            // permet de trouver aussi les name="#GET{truc}"
180
+            if ($i == 1) {
181
+                $contenu = recuperer_fond("formulaires/$form", $valeurs);
182
+            }
183 183
 
184
-			$balises = array_merge(
185
-				extraire_balises($contenu, 'input'),
186
-				extraire_balises($contenu, 'textarea'),
187
-				extraire_balises($contenu, 'select')
188
-			);
184
+            $balises = array_merge(
185
+                extraire_balises($contenu, 'input'),
186
+                extraire_balises($contenu, 'textarea'),
187
+                extraire_balises($contenu, 'select')
188
+            );
189 189
 
190
-			foreach ($balises as $b) {
191
-				if (
192
-					$n = extraire_attribut($b, 'name')
193
-					and preg_match(',^([\w\-]+)(\[\w*\])?$,', $n, $r)
194
-					and !in_array($n, ['formulaire_action', 'formulaire_action_args', 'formulaire_action_sign'])
195
-					and extraire_attribut($b, 'type') !== 'submit'
196
-				) {
197
-					$valeurs[$r[1]] = '';
198
-					// recuperer les valeurs _meta_xx qui peuvent etre fournies
199
-					// en input hidden dans le squelette
200
-					if (strncmp($r[1], '_meta_', 6) == 0) {
201
-						$valeurs[$r[1]] = extraire_attribut($b, 'value');
202
-					}
203
-				}
204
-			}
205
-		}
206
-	}
190
+            foreach ($balises as $b) {
191
+                if (
192
+                    $n = extraire_attribut($b, 'name')
193
+                    and preg_match(',^([\w\-]+)(\[\w*\])?$,', $n, $r)
194
+                    and !in_array($n, ['formulaire_action', 'formulaire_action_args', 'formulaire_action_sign'])
195
+                    and extraire_attribut($b, 'type') !== 'submit'
196
+                ) {
197
+                    $valeurs[$r[1]] = '';
198
+                    // recuperer les valeurs _meta_xx qui peuvent etre fournies
199
+                    // en input hidden dans le squelette
200
+                    if (strncmp($r[1], '_meta_', 6) == 0) {
201
+                        $valeurs[$r[1]] = extraire_attribut($b, 'value');
202
+                    }
203
+                }
204
+            }
205
+        }
206
+    }
207 207
 
208 208
 
209
-	cvtconf_configurer_lire_meta($form, $valeurs);
209
+    cvtconf_configurer_lire_meta($form, $valeurs);
210 210
 
211
-	return $valeurs;
211
+    return $valeurs;
212 212
 }
213 213
 
214 214
 /**
@@ -220,26 +220,26 @@  discard block
 block discarded – undo
220 220
  * @return string
221 221
  */
222 222
 function cvtconf_configurer_stocker($form, $valeurs, $store) {
223
-	$trace = '';
224
-	[$table, $casier, $prefixe, $stockage] = cvtconf_definir_configurer_conteneur($form, $valeurs);
225
-	// stocker en base
226
-	// par defaut, dans un casier serialize dans spip_meta (idem CFG)
227
-	if (!isset($GLOBALS[$table])) {
228
-		lire_metas($table);
229
-	}
223
+    $trace = '';
224
+    [$table, $casier, $prefixe, $stockage] = cvtconf_definir_configurer_conteneur($form, $valeurs);
225
+    // stocker en base
226
+    // par defaut, dans un casier serialize dans spip_meta (idem CFG)
227
+    if (!isset($GLOBALS[$table])) {
228
+        lire_metas($table);
229
+    }
230 230
 
231
-	$prefixe = ($prefixe ? $prefixe . '_' : '');
232
-	$table = ($table) ? "/$table/" : '';
233
-	$casier = ($casier) ? rtrim($casier, '/') . '/' : ''; // slash final, sinon rien
231
+    $prefixe = ($prefixe ? $prefixe . '_' : '');
232
+    $table = ($table) ? "/$table/" : '';
233
+    $casier = ($casier) ? rtrim($casier, '/') . '/' : ''; // slash final, sinon rien
234 234
 
235
-	foreach ($store as $k => $v) {
236
-		ecrire_config("$stockage$table$prefixe$casier$k", $v);
237
-		if (_request('var_mode') == 'configurer' and autoriser('webmestre')) {
238
-			$trace .= "<br />table $table : " . $prefixe . $k . " = $v;";
239
-		}
240
-	}
235
+    foreach ($store as $k => $v) {
236
+        ecrire_config("$stockage$table$prefixe$casier$k", $v);
237
+        if (_request('var_mode') == 'configurer' and autoriser('webmestre')) {
238
+            $trace .= "<br />table $table : " . $prefixe . $k . " = $v;";
239
+        }
240
+    }
241 241
 
242
-	return $trace;
242
+    return $trace;
243 243
 }
244 244
 
245 245
 /**
@@ -249,21 +249,21 @@  discard block
 block discarded – undo
249 249
  * @param array $valeurs
250 250
  */
251 251
 function cvtconf_configurer_lire_meta($form, &$valeurs) {
252
-	[$table, $casier, $prefixe, $stockage] = cvtconf_definir_configurer_conteneur($form, $valeurs);
252
+    [$table, $casier, $prefixe, $stockage] = cvtconf_definir_configurer_conteneur($form, $valeurs);
253 253
 
254
-	$table = ($table) ? "/$table/" : '';
255
-	$prefixe = ($prefixe ? $prefixe . '_' : '');
256
-	if ($casier) {
257
-		$meta = lire_config("$stockage$table$prefixe$casier");
258
-		$prefixe = '';
259
-	} else {
260
-		$table = rtrim($table, '/');
261
-		$meta = lire_config("$stockage$table");
262
-	}
254
+    $table = ($table) ? "/$table/" : '';
255
+    $prefixe = ($prefixe ? $prefixe . '_' : '');
256
+    if ($casier) {
257
+        $meta = lire_config("$stockage$table$prefixe$casier");
258
+        $prefixe = '';
259
+    } else {
260
+        $table = rtrim($table, '/');
261
+        $meta = lire_config("$stockage$table");
262
+    }
263 263
 
264
-	foreach ($valeurs as $k => $v) {
265
-		if (substr($k, 0, 1) !== '_') {
266
-			$valeurs[$k] = ($meta[$prefixe . $k] ?? null);
267
-		}
268
-	}
264
+    foreach ($valeurs as $k => $v) {
265
+        if (substr($k, 0, 1) !== '_') {
266
+            $valeurs[$k] = ($meta[$prefixe . $k] ?? null);
267
+        }
268
+    }
269 269
 }
Please login to merge, or discard this patch.
ecrire/inc/idna_convert.class.php 1 patch
Spacing   +43 added lines, -46 removed lines patch added patch discarded remove patch
@@ -73,16 +73,16 @@  discard block
 block discarded – undo
73 73
     protected $_lcount = 19;
74 74
     protected $_vcount = 21;
75 75
     protected $_tcount = 28;
76
-    protected $_ncount = 588;   // _vcount * _tcount
76
+    protected $_ncount = 588; // _vcount * _tcount
77 77
     protected $_scount = 11172; // _lcount * _tcount * _vcount
78 78
     protected $_error = false;
79 79
     protected static $_mb_string_overload = null;
80 80
     // See {@link set_paramter()} for details of how to change the following
81 81
     // settings from within your script / application
82
-    protected $_api_encoding = 'utf8';   // Default input charset is UTF-8
83
-    protected $_allow_overlong = false;  // Overlong UTF-8 encodings are forbidden
84
-    protected $_strict_mode = false;     // Behave strict or not
85
-    protected $_idn_version = 2003;      // Can be either 2003 (old, default) or 2008
82
+    protected $_api_encoding = 'utf8'; // Default input charset is UTF-8
83
+    protected $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden
84
+    protected $_strict_mode = false; // Behave strict or not
85
+    protected $_idn_version = 2003; // Can be either 2003 (old, default) or 2008
86 86
 
87 87
     /**
88 88
      * the constructor
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
                             $this->_api_encoding = $v;
141 141
                             break;
142 142
                         default:
143
-                            $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
143
+                            $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k);
144 144
                             return false;
145 145
                     }
146 146
                     break;
@@ -154,7 +154,7 @@  discard block
 block discarded – undo
154 154
                     if (in_array($v, array('2003', '2008'))) {
155 155
                         $this->_idn_version = $v;
156 156
                     } else {
157
-                        $this->_error('Set Parameter: Unknown parameter ' . $v . ' for option ' . $k);
157
+                        $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k);
158 158
                     }
159 159
                     break;
160 160
                 case 'encode_german_sz': // Deprecated
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
                     }
166 166
                     break;
167 167
                 default:
168
-                    $this->_error('Set Parameter: Unknown option ' . $k);
168
+                    $this->_error('Set Parameter: Unknown option '.$k);
169 169
                     return false;
170 170
             }
171 171
         }
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
                 case 'ucs4_array':
189 189
                     break;
190 190
                 default:
191
-                    $this->_error('Unknown encoding ' . $one_time_encoding);
191
+                    $this->_error('Unknown encoding '.$one_time_encoding);
192 192
                     return false;
193 193
             }
194 194
         }
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
             [$email_pref, $input] = explode('@', $input, 2);
207 207
             $arr = explode('.', $input);
208 208
             foreach ($arr as $k => $v) {
209
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
209
+                if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
210 210
                     $conv = $this->_decode($v);
211 211
                     if ($conv) {
212 212
                         $arr[$k] = $conv;
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
             $input = join('.', $arr);
217 217
             $arr = explode('.', $email_pref);
218 218
             foreach ($arr as $k => $v) {
219
-                if (preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $v)) {
219
+                if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
220 220
                     $conv = $this->_decode($v);
221 221
                     if ($conv) {
222 222
                         $arr[$k] = $conv;
@@ -224,7 +224,7 @@  discard block
 block discarded – undo
224 224
                 }
225 225
             }
226 226
             $email_pref = join('.', $arr);
227
-            $return = $email_pref . '@' . $input;
227
+            $return = $email_pref.'@'.$input;
228 228
         } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
229 229
             // No no in strict mode
230 230
             if ($this->_strict_mode) {
@@ -241,13 +241,13 @@  discard block
 block discarded – undo
241 241
                     }
242 242
                 }
243 243
                 $parsed['host'] = join('.', $arr);
244
-                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
-                        (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
244
+                $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
245
+                        (empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@').
246 246
                         $parsed['host'].
247
-                        (empty($parsed['port']) ? '' : ':' . $parsed['port']).
247
+                        (empty($parsed['port']) ? '' : ':'.$parsed['port']).
248 248
                         (empty($parsed['path']) ? '' : $parsed['path']).
249
-                        (empty($parsed['query']) ? '' : '?' . $parsed['query']).
250
-                        (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
249
+                        (empty($parsed['query']) ? '' : '?'.$parsed['query']).
250
+                        (empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']);
251 251
             } else { // parse_url seems to have failed, try without it
252 252
                 $arr = explode('.', $input);
253 253
                 foreach ($arr as $k => $v) {
@@ -265,8 +265,8 @@  discard block
 block discarded – undo
265 265
         // The output is UTF-8 by default, other output formats need conversion here
266 266
         // If one time encoding is given, use this, else the objects property
267 267
         switch ($one_time_encoding ?: $this->_api_encoding) {
268
-            case 'utf8':        return $return; // break;
269
-            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));  // break;
268
+            case 'utf8' : return $return; // break;
269
+            case 'ucs4_string': return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); // break;
270 270
             case 'ucs4_array':  return $this->_utf8_to_ucs4($return); // break;
271 271
             default:            $this->_error('Unsupported output format'); return false;
272 272
         }
@@ -283,15 +283,14 @@  discard block
 block discarded – undo
283 283
         // Forcing conversion of input to UCS4 array
284 284
         // If one time encoding is given, use this, else the objects property
285 285
         switch ($one_time_encoding ?: $this->_api_encoding) {
286
-            case 'utf8':
287
-                $decoded = $this->_utf8_to_ucs4($decoded);
286
+            case 'utf8' : $decoded = $this->_utf8_to_ucs4($decoded);
288 287
                 break;
289 288
             case 'ucs4_string':
290 289
                 $decoded = $this->_ucs4_string_to_ucs4($decoded);
291 290
             case 'ucs4_array':
292 291
                 break;
293 292
             default:
294
-                $this->_error('Unsupported input format: ' . ($one_time_encoding ?: $this->_api_encoding));
293
+                $this->_error('Unsupported input format: '.($one_time_encoding ?: $this->_api_encoding));
295 294
                 return false;
296 295
         }
297 296
 
@@ -380,13 +379,13 @@  discard block
 block discarded – undo
380 379
             }
381 380
         }
382 381
         $parsed['host'] = join('.', $arr);
383
-        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'] . (strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
384
-                (empty($parsed['user']) ? '' : $parsed['user'] . (empty($parsed['pass']) ? '' : ':' . $parsed['pass']) . '@').
382
+        $return = (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')).
383
+                (empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@').
385 384
                 $parsed['host'].
386
-                (empty($parsed['port']) ? '' : ':' . $parsed['port']).
385
+                (empty($parsed['port']) ? '' : ':'.$parsed['port']).
387 386
                 (empty($parsed['path']) ? '' : $parsed['path']).
388
-                (empty($parsed['query']) ? '' : '?' . $parsed['query']).
389
-                (empty($parsed['fragment']) ? '' : '#' . $parsed['fragment']);
387
+                (empty($parsed['query']) ? '' : '?'.$parsed['query']).
388
+                (empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']);
390 389
         return $return;
391 390
     }
392 391
 
@@ -409,11 +408,11 @@  discard block
 block discarded – undo
409 408
     {
410 409
         $decoded = array();
411 410
         // find the Punycode prefix
412
-        if (!preg_match('!^' . preg_quote($this->_punycode_prefix, '!') . '!', $encoded)) {
411
+        if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) {
413 412
             $this->_error('This is not a punycode string');
414 413
             return false;
415 414
         }
416
-        $encode_test = preg_replace('!^' . preg_quote($this->_punycode_prefix, '!') . '!', '', $encoded);
415
+        $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded);
417 416
         // If nothing left after removing the prefix, it is hopeless
418 417
         if (!$encode_test) {
419 418
             $this->_error('The given encoded string was empty');
@@ -439,8 +438,7 @@  discard block
 block discarded – undo
439 438
             for ($old_idx = $idx, $w = 1, $k = $this->_base; 1; $k += $this->_base) {
440 439
                 $digit = $this->_decode_digit($encoded[$enco_idx++]);
441 440
                 $idx += $digit * $w;
442
-                $t = ($k <= $bias) ? $this->_tmin :
443
-                        (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
441
+                $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
444 442
                 if ($digit < $t) {
445 443
                     break;
446 444
                 }
@@ -513,7 +511,7 @@  discard block
 block discarded – undo
513 511
             return $encoded; // All codepoints were basic ones
514 512
         }
515 513
         // Start with the prefix; copy it to output
516
-        $encoded = $this->_punycode_prefix . $encoded;
514
+        $encoded = $this->_punycode_prefix.$encoded;
517 515
         // If we have basic code points in output, add an hyphen to the end
518 516
         if ($codecount) {
519 517
             $encoded .= '-';
@@ -540,8 +538,7 @@  discard block
 block discarded – undo
540 538
                     $delta++;
541 539
                 } elseif ($decoded[$i] == $cur_code) {
542 540
                     for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
543
-                        $t = ($k <= $bias) ? $this->_tmin :
544
-                                (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
541
+                        $t = ($k <= $bias) ? $this->_tmin : (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
545 542
                         if ($q < $t) {
546 543
                             break;
547 544
                         }
@@ -628,12 +625,12 @@  discard block
 block discarded – undo
628 625
             }
629 626
             // Try to find prohibited input
630 627
             if (in_array($v, self::$NP['prohibit']) || in_array($v, self::$NP['general_prohibited'])) {
631
-                $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
628
+                $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
632 629
                 return false;
633 630
             }
634 631
             foreach (self::$NP['prohibit_ranges'] as $range) {
635 632
                 if ($range[0] <= $v && $v <= $range[1]) {
636
-                    $this->_error('NAMEPREP: Prohibited input U+' . sprintf('%08X', $v));
633
+                    $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
637 634
                     return false;
638 635
                 }
639 636
             }
@@ -871,7 +868,7 @@  discard block
 block discarded – undo
871 868
                 $output[$out_len] = $v;
872 869
                 ++$out_len;
873 870
                 if ('add' == $mode) {
874
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
871
+                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
875 872
                     return false;
876 873
                 }
877 874
                 continue;
@@ -896,7 +893,7 @@  discard block
 block discarded – undo
896 893
                     $next_byte = 4;
897 894
                     $v = ($v - 252) << 30;
898 895
                 } else {
899
-                    $this->_error('This might be UTF-8, but I don\'t understand it at byte ' . $k);
896
+                    $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k);
900 897
                     return false;
901 898
                 }
902 899
                 if ('add' == $mode) {
@@ -909,7 +906,7 @@  discard block
 block discarded – undo
909 906
                 if (!$this->_allow_overlong && $test == 'range') {
910 907
                     $test = 'none';
911 908
                     if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
912
-                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte ' . $k);
909
+                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
913 910
                         return false;
914 911
                     }
915 912
                 }
@@ -918,7 +915,7 @@  discard block
 block discarded – undo
918 915
                     $output[($out_len - 1)] += $v;
919 916
                     --$next_byte;
920 917
                 } else {
921
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte ' . $k);
918
+                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
922 919
                     return false;
923 920
                 }
924 921
                 if ($next_byte < 0) {
@@ -942,13 +939,13 @@  discard block
 block discarded – undo
942 939
             if ($v < 128) { // 7bit are transferred literally
943 940
                 $output .= chr($v);
944 941
             } elseif ($v < (1 << 11)) { // 2 bytes
945
-                $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
942
+                $output .= chr(192 + ($v >> 6)).chr(128 + ($v & 63));
946 943
             } elseif ($v < (1 << 16)) { // 3 bytes
947
-                $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
944
+                $output .= chr(224 + ($v >> 12)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
948 945
             } elseif ($v < (1 << 21)) { // 4 bytes
949
-                $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
946
+                $output .= chr(240 + ($v >> 18)).chr(128 + (($v >> 12) & 63)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
950 947
             } else {
951
-                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte ' . $k);
948
+                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
952 949
                 return false;
953 950
             }
954 951
         }
@@ -967,7 +964,7 @@  discard block
 block discarded – undo
967 964
         // Take array values and split output to 4 bytes per value
968 965
         // The bit mask is 255, which reads &11111111
969 966
         foreach ($input as $v) {
970
-            $output .= chr(($v >> 24) & 255) . chr(($v >> 16) & 255) . chr(($v >> 8) & 255) . chr($v & 255);
967
+            $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
971 968
         }
972 969
         return $output;
973 970
     }
@@ -997,7 +994,7 @@  discard block
 block discarded – undo
997 994
                 $out_len++;
998 995
                 $output[$out_len] = 0;
999 996
             }
1000
-            $output[$out_len] += ord($input[$i]) << (8 * (3 - ($i % 4) ) );
997
+            $output[$out_len] += ord($input[$i]) << (8 * (3 - ($i % 4)));
1001 998
         }
1002 999
         return $output;
1003 1000
     }
Please login to merge, or discard this patch.
ecrire/inc/rubriques.php 2 patches
Spacing   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -135,9 +135,9 @@  discard block
 block discarded – undo
135 135
 		sql_updateq(
136 136
 			'spip_rubriques',
137 137
 			['statut' => 'publie', 'date' => date('Y-m-d H:i:s')],
138
-			'id_rubrique=' . intval($id_rubrique)
138
+			'id_rubrique='.intval($id_rubrique)
139 139
 		);
140
-		$id_parent = sql_getfetsel('id_parent', 'spip_rubriques AS R', 'R.id_rubrique=' . intval($id_rubrique));
140
+		$id_parent = sql_getfetsel('id_parent', 'spip_rubriques AS R', 'R.id_rubrique='.intval($id_rubrique));
141 141
 		if (!$id_parent) {
142 142
 			break;
143 143
 		}
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
 			return $id_pred != $id_rubrique;
173 173
 		}
174 174
 		// passer au parent si on a depublie
175
-		$r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_pred));
175
+		$r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique='.intval($id_pred));
176 176
 		$id_pred = $r['id_parent'];
177 177
 	}
178 178
 
@@ -197,14 +197,14 @@  discard block
 block discarded – undo
197 197
 		$date = date('Y-m-d H:i:s');
198 198
 	}
199 199
 	$postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
200
-		' AND date <= ' . sql_quote($date) : '';
200
+		' AND date <= '.sql_quote($date) : '';
201 201
 
202 202
 	if (!$id_rubrique = intval($id_rubrique)) {
203 203
 		return false;
204 204
 	}
205 205
 
206 206
 	// verifier qu'elle existe et est bien publiee
207
-	$r = sql_fetsel('id_rubrique,statut', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
207
+	$r = sql_fetsel('id_rubrique,statut', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique));
208 208
 	if (!$r or $r['statut'] !== 'publie') {
209 209
 		return false;
210 210
 	}
@@ -214,12 +214,12 @@  discard block
 block discarded – undo
214 214
 	$compte = [
215 215
 		'articles' => sql_countsel(
216 216
 			'spip_articles',
217
-			'id_rubrique=' . intval($id_rubrique) . " AND statut='publie'$postdates"
217
+			'id_rubrique='.intval($id_rubrique)." AND statut='publie'$postdates"
218 218
 		),
219
-		'rubriques' => sql_countsel('spip_rubriques', 'id_parent=' . intval($id_rubrique) . " AND statut='publie'"),
219
+		'rubriques' => sql_countsel('spip_rubriques', 'id_parent='.intval($id_rubrique)." AND statut='publie'"),
220 220
 		'documents' => sql_countsel(
221 221
 			'spip_documents AS D JOIN spip_documents_liens AS L ON D.id_document=L.id_document',
222
-			'L.id_objet=' . intval($id_rubrique) . " AND L.objet='rubrique' and D.mode NOT IN('logoon', 'logooff') "
222
+			'L.id_objet='.intval($id_rubrique)." AND L.objet='rubrique' and D.mode NOT IN('logoon', 'logooff') "
223 223
 		)
224 224
 	];
225 225
 
@@ -244,7 +244,7 @@  discard block
 block discarded – undo
244 244
 		}
245 245
 	}
246 246
 
247
-	sql_updateq('spip_rubriques', ['statut' => 'prepa'], 'id_rubrique=' . intval($id_rubrique));
247
+	sql_updateq('spip_rubriques', ['statut' => 'prepa'], 'id_rubrique='.intval($id_rubrique));
248 248
 
249 249
 #		spip_log("depublier_rubrique $id_pred");
250 250
 	return true;
@@ -307,7 +307,7 @@  discard block
 block discarded – undo
307 307
 
308 308
 	// Afficher les articles post-dates ?
309 309
 	$postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
310
-		'AND A.date <= ' . sql_quote(date('Y-m-d H:i:s')) : '';
310
+		'AND A.date <= '.sql_quote(date('Y-m-d H:i:s')) : '';
311 311
 
312 312
 	$r = sql_select(
313 313
 		'R.id_rubrique AS id, max(A.date) AS date_h',
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 		sql_updateq(
320 320
 			'spip_rubriques',
321 321
 			['statut_tmp' => 'publie', 'date_tmp' => $row['date_h']],
322
-			'id_rubrique=' . intval($row['id'])
322
+			'id_rubrique='.intval($row['id'])
323 323
 		);
324 324
 	}
325 325
 
@@ -345,7 +345,7 @@  discard block
 block discarded – undo
345 345
 			sql_updateq(
346 346
 				'spip_rubriques',
347 347
 				['statut_tmp' => 'publie', 'date_tmp' => $row['date_h']],
348
-				'id_rubrique=' . intval($row['id'])
348
+				'id_rubrique='.intval($row['id'])
349 349
 			);
350 350
 			$continuer = true;
351 351
 		}
@@ -398,7 +398,7 @@  discard block
 block discarded – undo
398 398
 			and $rows = sql_allfetsel(
399 399
 				'A.id_rubrique AS id, R.id_secteur AS id_secteur, R.profondeur+1 as profondeur',
400 400
 				'spip_rubriques AS A JOIN spip_rubriques AS R ON A.id_parent = R.id_rubrique',
401
-				'R.profondeur=' . intval($prof) . ' AND (A.id_secteur <> R.id_secteur OR A.profondeur > R.profondeur+1)',
401
+				'R.profondeur='.intval($prof).' AND (A.id_secteur <> R.id_secteur OR A.profondeur > R.profondeur+1)',
402 402
 				'',
403 403
 				'R.id_secteur',
404 404
 				'0,100'
@@ -437,11 +437,11 @@  discard block
 block discarded – undo
437 437
 			and $rows = sql_allfetsel(
438 438
 				'id_rubrique as id',
439 439
 				'spip_rubriques',
440
-				'profondeur=' . intval($prof + 1) . ' AND id_parent NOT IN (' . sql_get_select(
440
+				'profondeur='.intval($prof + 1).' AND id_parent NOT IN ('.sql_get_select(
441 441
 					'zzz.id_rubrique',
442 442
 					'spip_rubriques AS zzz',
443
-					'zzz.profondeur=' . intval($prof)
444
-				) . ')',
443
+					'zzz.profondeur='.intval($prof)
444
+				).')',
445 445
 				'',
446 446
 				'',
447 447
 				'0,100'
@@ -455,7 +455,7 @@  discard block
 block discarded – undo
455 455
 		// si pas de rubrique a profondeur $prof+1 pas la peine de continuer
456 456
 		// si il reste des rubriques non vues, c'est une branche morte ou reference circulaire (base foireuse)
457 457
 		// on arrete les frais
458
-		if (sql_countsel('spip_rubriques', 'profondeur=' . intval($prof + 1))) {
458
+		if (sql_countsel('spip_rubriques', 'profondeur='.intval($prof + 1))) {
459 459
 			$prof++;
460 460
 			$continuer = true;
461 461
 		}
@@ -463,12 +463,12 @@  discard block
 block discarded – undo
463 463
 
464 464
 	// loger si la table des rubriques semble foireuse
465 465
 	// et mettre un id_secteur=0 sur ces rubriques pour eviter toute selection par les boucles
466
-	if (sql_countsel('spip_rubriques', 'profondeur>' . intval($prof + 1))) {
466
+	if (sql_countsel('spip_rubriques', 'profondeur>'.intval($prof + 1))) {
467 467
 		spip_log(
468
-			'Les rubriques de profondeur>' . ($prof + 1) . ' semblent suspectes (branches morte ou reference circulaire dans les parents)',
468
+			'Les rubriques de profondeur>'.($prof + 1).' semblent suspectes (branches morte ou reference circulaire dans les parents)',
469 469
 			_LOG_CRITIQUE
470 470
 		);
471
-		sql_update('spip_rubriques', ['id_secteur' => 0], 'profondeur>' . intval($prof + 1));
471
+		sql_update('spip_rubriques', ['id_secteur' => 0], 'profondeur>'.intval($prof + 1));
472 472
 	}
473 473
 
474 474
 	// reparer les articles
@@ -479,7 +479,7 @@  discard block
 block discarded – undo
479 479
 	);
480 480
 
481 481
 	while ($row = sql_fetch($r)) {
482
-		sql_update('spip_articles', ['id_secteur' => $row['secteur']], 'id_article=' . intval($row['id']));
482
+		sql_update('spip_articles', ['id_secteur' => $row['secteur']], 'id_article='.intval($row['id']));
483 483
 	}
484 484
 
485 485
 	// avertir les plugins qui peuvent faire leur mises a jour egalement
@@ -510,7 +510,7 @@  discard block
 block discarded – undo
510 510
 		$t = sql_updateq(
511 511
 			'spip_rubriques',
512 512
 			['lang' => $row['lang'], 'langue_choisie' => 'non'],
513
-			'id_rubrique=' . intval($id_rubrique)
513
+			'id_rubrique='.intval($id_rubrique)
514 514
 		);
515 515
 	}
516 516
 
@@ -555,7 +555,7 @@  discard block
 block discarded – undo
555 555
 		sql_updateq(
556 556
 			'spip_articles',
557 557
 			['lang' => $row['lang'], 'langue_choisie' => 'non'],
558
-			'id_article=' . intval($id_article)
558
+			'id_article='.intval($id_article)
559 559
 		);
560 560
 	}
561 561
 
@@ -630,11 +630,11 @@  discard block
 block discarded – undo
630 630
 				];
631 631
 				// generer un nom de fonction "anonyme" unique
632 632
 				do {
633
-					$functionname = 'f_calculer_langues_utilisees_' . $boucle->id_table . '_' . time() . '_' . random_int(0, mt_getrandmax());
633
+					$functionname = 'f_calculer_langues_utilisees_'.$boucle->id_table.'_'.time().'_'.random_int(0, mt_getrandmax());
634 634
 				} while (function_exists($functionname));
635 635
 				$code = calculer_boucle('calculer_langues_utilisees', $boucles);
636
-				$code = '$SP=0; $command=array();$command["connect"] = $connect = "' . $serveur . '"; $Pile=array(0=>array());' . "\n" . $code;
637
-				$code = 'function ' . $functionname . '(){' . $code . '};$res = ' . $functionname . '();';
636
+				$code = '$SP=0; $command=array();$command["connect"] = $connect = "'.$serveur.'"; $Pile=array(0=>array());'."\n".$code;
637
+				$code = 'function '.$functionname.'(){'.$code.'};$res = '.$functionname.'();';
638 638
 				$res = '';
639 639
 				eval($code);
640 640
 				$res = explode(',', $res);
@@ -736,11 +736,11 @@  discard block
 block discarded – undo
736 736
 		$maxiter-- and $filles = sql_allfetsel(
737 737
 			'id_rubrique',
738 738
 			'spip_rubriques',
739
-			sql_in('id_parent', $r) . ' AND ' . sql_in('id_rubrique', $r, 'NOT')
739
+			sql_in('id_parent', $r).' AND '.sql_in('id_rubrique', $r, 'NOT')
740 740
 		)
741 741
 	) {
742 742
 		$r = join(',', array_column($filles, 'id_rubrique'));
743
-		$branche .= ',' . $r;
743
+		$branche .= ','.$r;
744 744
 	}
745 745
 
746 746
 	# securite pour ne pas plomber la conso memoire sur les sites prolifiques
@@ -780,7 +780,7 @@  discard block
 block discarded – undo
780 780
 
781 781
 	if (isset($b[$id])) {
782 782
 		// Notre branche commence par la rubrique de depart si $tout=true
783
-		return $tout ? (strlen($b[$id]) ? $b[$id] . ",$id" : $id) : $b[$id];
783
+		return $tout ? (strlen($b[$id]) ? $b[$id].",$id" : $id) : $b[$id];
784 784
 	}
785 785
 
786 786
 	$hier = '';
@@ -793,11 +793,11 @@  discard block
 block discarded – undo
793 793
 		$maxiter-- and $parents = sql_allfetsel(
794 794
 			'id_parent',
795 795
 			'spip_rubriques',
796
-			sql_in('id_rubrique', $ids_nouveaux_parents) . ' AND ' . sql_in('id_parent', $hier, 'NOT')
796
+			sql_in('id_rubrique', $ids_nouveaux_parents).' AND '.sql_in('id_parent', $hier, 'NOT')
797 797
 		)
798 798
 	) {
799 799
 		$ids_nouveaux_parents = join(',', array_column($parents, 'id_parent'));
800
-		$hier = $ids_nouveaux_parents . (strlen($hier) ? ',' . $hier : '');
800
+		$hier = $ids_nouveaux_parents.(strlen($hier) ? ','.$hier : '');
801 801
 	}
802 802
 
803 803
 	# securite pour ne pas plomber la conso memoire sur les sites prolifiques
@@ -829,7 +829,7 @@  discard block
 block discarded – undo
829 829
 	include_spip('base/abstract_sql');
830 830
 	if ($check) {
831 831
 		$postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
832
-			'AND A.date <= ' . sql_quote(date('Y-m-d H:i:s')) : '';
832
+			'AND A.date <= '.sql_quote(date('Y-m-d H:i:s')) : '';
833 833
 
834 834
 		$r = sql_select(
835 835
 			'DISTINCT A.id_rubrique AS id',
@@ -846,7 +846,7 @@  discard block
 block discarded – undo
846 846
 	$t = sql_fetsel(
847 847
 		'date',
848 848
 		'spip_articles',
849
-		"statut='publie' AND date > " . sql_quote(date('Y-m-d H:i:s')),
849
+		"statut='publie' AND date > ".sql_quote(date('Y-m-d H:i:s')),
850 850
 		'',
851 851
 		'date',
852 852
 		'1'
@@ -902,7 +902,7 @@  discard block
 block discarded – undo
902 902
 		$r = sql_getfetsel(
903 903
 			'id_rubrique',
904 904
 			'spip_rubriques',
905
-			'titre = ' . sql_quote($titre) . ' AND id_parent=' . intval($id_parent),
905
+			'titre = '.sql_quote($titre).' AND id_parent='.intval($id_parent),
906 906
 			$groupby = [],
907 907
 			$orderby = [],
908 908
 			$limit = '',
@@ -938,7 +938,7 @@  discard block
 block discarded – undo
938 938
 			sql_updateq(
939 939
 				'spip_rubriques',
940 940
 				['id_secteur' => $id_secteur, 'lang' => $lang],
941
-				'id_rubrique=' . intval($id_rubrique),
941
+				'id_rubrique='.intval($id_rubrique),
942 942
 				$desc = '',
943 943
 				$serveur
944 944
 			);
Please login to merge, or discard this patch.
Indentation   +621 added lines, -621 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
 
@@ -54,65 +54,65 @@  discard block
 block discarded – undo
54 54
  *     true si le statut change effectivement
55 55
  **/
56 56
 function calculer_rubriques_if($id_rubrique, $modifs, $infos = [], $postdate = false) {
57
-	$statuts_publies = null;
58
-	$neuf = false;
59
-
60
-	// Compat avec l'ancienne signature
61
-	if (is_string($infos)) {
62
-		$infos = ['statut_ancien' => $infos];
63
-	}
64
-	if (!isset($infos['statut_ancien'])) {
65
-		$infos['statut_ancien'] = '';
66
-	}
67
-
68
-	// On recherche quels statuts tester
69
-	if (
70
-		isset($infos['objet'])
71
-		and include_spip('inc/filtres')
72
-		and $declaration_statut = objet_info($infos['objet'], 'statut')
73
-		and is_array($declaration_statut)
74
-	) {
75
-		foreach ($declaration_statut as $champ_statut) {
76
-			if ($champ_statut['champ'] == 'statut') {
77
-				$statuts_publies = array_map('trim', explode(',', $champ_statut['publie']));
78
-				break; // stop on a trouvé le bon champ
79
-			}
80
-		}
81
-	} else {
82
-		$statuts_publies = ['publie'];
83
-	}
84
-
85
-	if (in_array($infos['statut_ancien'], $statuts_publies)) {
86
-		if (
87
-			isset($modifs['statut'])
88
-			or isset($modifs['id_rubrique'])
89
-			or ($postdate and strtotime($postdate) > time())
90
-		) {
91
-			$neuf |= depublier_branche_rubrique_if($id_rubrique);
92
-		}
93
-		// ne publier que si c'est pas un postdate, ou si la date n'est pas dans le futur
94
-		if ($postdate) {
95
-			calculer_prochain_postdate(true);
96
-			$neuf |= (strtotime($postdate) <= time()); // par securite
97
-		} elseif (isset($modifs['id_rubrique'])) {
98
-			$neuf |= publier_branche_rubrique($modifs['id_rubrique']);
99
-		}
100
-	} elseif (isset($modifs['statut']) and in_array($modifs['statut'], $statuts_publies)) {
101
-		if ($postdate) {
102
-			calculer_prochain_postdate(true);
103
-			$neuf |= (strtotime($postdate) <= time()); // par securite
104
-		} else {
105
-			$neuf |= publier_branche_rubrique($id_rubrique);
106
-		}
107
-	}
108
-
109
-	if ($neuf) { 
110
-		// Sauver la date de la derniere mise a jour (pour menu_rubriques)
111
-		ecrire_meta('date_calcul_rubriques', date('U'));
112
-	}
113
-
114
-	$langues = calculer_langues_utilisees();
115
-	ecrire_meta('langues_utilisees', $langues);
57
+    $statuts_publies = null;
58
+    $neuf = false;
59
+
60
+    // Compat avec l'ancienne signature
61
+    if (is_string($infos)) {
62
+        $infos = ['statut_ancien' => $infos];
63
+    }
64
+    if (!isset($infos['statut_ancien'])) {
65
+        $infos['statut_ancien'] = '';
66
+    }
67
+
68
+    // On recherche quels statuts tester
69
+    if (
70
+        isset($infos['objet'])
71
+        and include_spip('inc/filtres')
72
+        and $declaration_statut = objet_info($infos['objet'], 'statut')
73
+        and is_array($declaration_statut)
74
+    ) {
75
+        foreach ($declaration_statut as $champ_statut) {
76
+            if ($champ_statut['champ'] == 'statut') {
77
+                $statuts_publies = array_map('trim', explode(',', $champ_statut['publie']));
78
+                break; // stop on a trouvé le bon champ
79
+            }
80
+        }
81
+    } else {
82
+        $statuts_publies = ['publie'];
83
+    }
84
+
85
+    if (in_array($infos['statut_ancien'], $statuts_publies)) {
86
+        if (
87
+            isset($modifs['statut'])
88
+            or isset($modifs['id_rubrique'])
89
+            or ($postdate and strtotime($postdate) > time())
90
+        ) {
91
+            $neuf |= depublier_branche_rubrique_if($id_rubrique);
92
+        }
93
+        // ne publier que si c'est pas un postdate, ou si la date n'est pas dans le futur
94
+        if ($postdate) {
95
+            calculer_prochain_postdate(true);
96
+            $neuf |= (strtotime($postdate) <= time()); // par securite
97
+        } elseif (isset($modifs['id_rubrique'])) {
98
+            $neuf |= publier_branche_rubrique($modifs['id_rubrique']);
99
+        }
100
+    } elseif (isset($modifs['statut']) and in_array($modifs['statut'], $statuts_publies)) {
101
+        if ($postdate) {
102
+            calculer_prochain_postdate(true);
103
+            $neuf |= (strtotime($postdate) <= time()); // par securite
104
+        } else {
105
+            $neuf |= publier_branche_rubrique($id_rubrique);
106
+        }
107
+    }
108
+
109
+    if ($neuf) { 
110
+        // Sauver la date de la derniere mise a jour (pour menu_rubriques)
111
+        ecrire_meta('date_calcul_rubriques', date('U'));
112
+    }
113
+
114
+    $langues = calculer_langues_utilisees();
115
+    ecrire_meta('langues_utilisees', $langues);
116 116
 }
117 117
 
118 118
 
@@ -130,22 +130,22 @@  discard block
 block discarded – undo
130 130
  *     true si le statut change effectivement
131 131
  */
132 132
 function publier_branche_rubrique($id_rubrique) {
133
-	$id_pred = $id_rubrique;
134
-	while (true) {
135
-		sql_updateq(
136
-			'spip_rubriques',
137
-			['statut' => 'publie', 'date' => date('Y-m-d H:i:s')],
138
-			'id_rubrique=' . intval($id_rubrique)
139
-		);
140
-		$id_parent = sql_getfetsel('id_parent', 'spip_rubriques AS R', 'R.id_rubrique=' . intval($id_rubrique));
141
-		if (!$id_parent) {
142
-			break;
143
-		}
144
-		$id_rubrique = $id_parent;
145
-	}
133
+    $id_pred = $id_rubrique;
134
+    while (true) {
135
+        sql_updateq(
136
+            'spip_rubriques',
137
+            ['statut' => 'publie', 'date' => date('Y-m-d H:i:s')],
138
+            'id_rubrique=' . intval($id_rubrique)
139
+        );
140
+        $id_parent = sql_getfetsel('id_parent', 'spip_rubriques AS R', 'R.id_rubrique=' . intval($id_rubrique));
141
+        if (!$id_parent) {
142
+            break;
143
+        }
144
+        $id_rubrique = $id_parent;
145
+    }
146 146
 
147 147
 #	spip_log(" publier_branche_rubrique($id_rubrique $id_pred");
148
-	return $id_pred != $id_rubrique;
148
+    return $id_pred != $id_rubrique;
149 149
 }
150 150
 
151 151
 /**
@@ -163,20 +163,20 @@  discard block
 block discarded – undo
163 163
  *     true si le statut change effectivement
164 164
  */
165 165
 function depublier_branche_rubrique_if($id_rubrique) {
166
-	$date = date('Y-m-d H:i:s'); // figer la date
167
-
168
-	#	spip_log("depublier_branche_rubrique($id_rubrique ?");
169
-	$id_pred = $id_rubrique;
170
-	while ($id_pred) {
171
-		if (!depublier_rubrique_if($id_pred, $date)) {
172
-			return $id_pred != $id_rubrique;
173
-		}
174
-		// passer au parent si on a depublie
175
-		$r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_pred));
176
-		$id_pred = $r['id_parent'];
177
-	}
178
-
179
-	return $id_pred != $id_rubrique;
166
+    $date = date('Y-m-d H:i:s'); // figer la date
167
+
168
+    #	spip_log("depublier_branche_rubrique($id_rubrique ?");
169
+    $id_pred = $id_rubrique;
170
+    while ($id_pred) {
171
+        if (!depublier_rubrique_if($id_pred, $date)) {
172
+            return $id_pred != $id_rubrique;
173
+        }
174
+        // passer au parent si on a depublie
175
+        $r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_pred));
176
+        $id_pred = $r['id_parent'];
177
+    }
178
+
179
+    return $id_pred != $id_rubrique;
180 180
 }
181 181
 
182 182
 /**
@@ -193,61 +193,61 @@  discard block
 block discarded – undo
193 193
  *    true si la rubrique a été dépubliée
194 194
  */
195 195
 function depublier_rubrique_if($id_rubrique, $date = null) {
196
-	if (is_null($date)) {
197
-		$date = date('Y-m-d H:i:s');
198
-	}
199
-	$postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
200
-		' AND date <= ' . sql_quote($date) : '';
201
-
202
-	if (!$id_rubrique = intval($id_rubrique)) {
203
-		return false;
204
-	}
205
-
206
-	// verifier qu'elle existe et est bien publiee
207
-	$r = sql_fetsel('id_rubrique,statut', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
208
-	if (!$r or $r['statut'] !== 'publie') {
209
-		return false;
210
-	}
211
-
212
-	// On met le nombre de chaque type d'enfants dans un tableau
213
-	// Le type de l'objet est au pluriel
214
-	$compte = [
215
-		'articles' => sql_countsel(
216
-			'spip_articles',
217
-			'id_rubrique=' . intval($id_rubrique) . " AND statut='publie'$postdates"
218
-		),
219
-		'rubriques' => sql_countsel('spip_rubriques', 'id_parent=' . intval($id_rubrique) . " AND statut='publie'"),
220
-		'documents' => sql_countsel(
221
-			'spip_documents AS D JOIN spip_documents_liens AS L ON D.id_document=L.id_document',
222
-			'L.id_objet=' . intval($id_rubrique) . " AND L.objet='rubrique' and D.mode NOT IN('logoon', 'logooff') "
223
-		)
224
-	];
225
-
226
-	// On passe le tableau des comptes dans un pipeline pour que les plugins puissent ajouter (ou retirer) des enfants
227
-	$compte = pipeline(
228
-		'objet_compte_enfants',
229
-		[
230
-			'args' => [
231
-				'objet' => 'rubrique',
232
-				'id_objet' => $id_rubrique,
233
-				'statut' => 'publie',
234
-				'date' => $date
235
-			],
236
-			'data' => $compte
237
-		]
238
-	);
239
-
240
-	// S'il y a au moins un enfant de n'importe quoi, on ne dépublie pas
241
-	foreach ($compte as $objet => $n) {
242
-		if ($n) {
243
-			return false;
244
-		}
245
-	}
246
-
247
-	sql_updateq('spip_rubriques', ['statut' => 'prepa'], 'id_rubrique=' . intval($id_rubrique));
196
+    if (is_null($date)) {
197
+        $date = date('Y-m-d H:i:s');
198
+    }
199
+    $postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
200
+        ' AND date <= ' . sql_quote($date) : '';
201
+
202
+    if (!$id_rubrique = intval($id_rubrique)) {
203
+        return false;
204
+    }
205
+
206
+    // verifier qu'elle existe et est bien publiee
207
+    $r = sql_fetsel('id_rubrique,statut', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
208
+    if (!$r or $r['statut'] !== 'publie') {
209
+        return false;
210
+    }
211
+
212
+    // On met le nombre de chaque type d'enfants dans un tableau
213
+    // Le type de l'objet est au pluriel
214
+    $compte = [
215
+        'articles' => sql_countsel(
216
+            'spip_articles',
217
+            'id_rubrique=' . intval($id_rubrique) . " AND statut='publie'$postdates"
218
+        ),
219
+        'rubriques' => sql_countsel('spip_rubriques', 'id_parent=' . intval($id_rubrique) . " AND statut='publie'"),
220
+        'documents' => sql_countsel(
221
+            'spip_documents AS D JOIN spip_documents_liens AS L ON D.id_document=L.id_document',
222
+            'L.id_objet=' . intval($id_rubrique) . " AND L.objet='rubrique' and D.mode NOT IN('logoon', 'logooff') "
223
+        )
224
+    ];
225
+
226
+    // On passe le tableau des comptes dans un pipeline pour que les plugins puissent ajouter (ou retirer) des enfants
227
+    $compte = pipeline(
228
+        'objet_compte_enfants',
229
+        [
230
+            'args' => [
231
+                'objet' => 'rubrique',
232
+                'id_objet' => $id_rubrique,
233
+                'statut' => 'publie',
234
+                'date' => $date
235
+            ],
236
+            'data' => $compte
237
+        ]
238
+    );
239
+
240
+    // S'il y a au moins un enfant de n'importe quoi, on ne dépublie pas
241
+    foreach ($compte as $objet => $n) {
242
+        if ($n) {
243
+            return false;
244
+        }
245
+    }
246
+
247
+    sql_updateq('spip_rubriques', ['statut' => 'prepa'], 'id_rubrique=' . intval($id_rubrique));
248 248
 
249 249
 #		spip_log("depublier_rubrique $id_pred");
250
-	return true;
250
+    return true;
251 251
 }
252 252
 
253 253
 
@@ -270,18 +270,18 @@  discard block
 block discarded – undo
270 270
  **/
271 271
 function calculer_rubriques() {
272 272
 
273
-	calculer_rubriques_publiees();
273
+    calculer_rubriques_publiees();
274 274
 
275
-	// Apres chaque (de)publication
276
-	// recalculer les langues utilisees sur le site
277
-	$langues = calculer_langues_utilisees();
278
-	ecrire_meta('langues_utilisees', $langues);
275
+    // Apres chaque (de)publication
276
+    // recalculer les langues utilisees sur le site
277
+    $langues = calculer_langues_utilisees();
278
+    ecrire_meta('langues_utilisees', $langues);
279 279
 
280
-	// Sauver la date de la derniere mise a jour (pour menu_rubriques)
281
-	ecrire_meta('date_calcul_rubriques', date('U'));
280
+    // Sauver la date de la derniere mise a jour (pour menu_rubriques)
281
+    ecrire_meta('date_calcul_rubriques', date('U'));
282 282
 
283
-	// on calcule la date du prochain article post-date
284
-	calculer_prochain_postdate();
283
+    // on calcule la date du prochain article post-date
284
+    calculer_prochain_postdate();
285 285
 }
286 286
 
287 287
 
@@ -298,61 +298,61 @@  discard block
 block discarded – undo
298 298
  **/
299 299
 function calculer_rubriques_publiees() {
300 300
 
301
-	// Mettre les compteurs a zero
302
-	sql_updateq('spip_rubriques', ['date_tmp' => '0000-00-00 00:00:00', 'statut_tmp' => 'prepa']);
303
-
304
-	//
305
-	// Publier et dater les rubriques qui ont un article publie
306
-	//
307
-
308
-	// Afficher les articles post-dates ?
309
-	$postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
310
-		'AND A.date <= ' . sql_quote(date('Y-m-d H:i:s')) : '';
311
-
312
-	$r = sql_select(
313
-		'R.id_rubrique AS id, max(A.date) AS date_h',
314
-		'spip_rubriques AS R JOIN spip_articles AS A ON R.id_rubrique = A.id_rubrique',
315
-		"A.date>R.date_tmp AND A.statut='publie' $postdates ",
316
-		'R.id_rubrique'
317
-	);
318
-	while ($row = sql_fetch($r)) {
319
-		sql_updateq(
320
-			'spip_rubriques',
321
-			['statut_tmp' => 'publie', 'date_tmp' => $row['date_h']],
322
-			'id_rubrique=' . intval($row['id'])
323
-		);
324
-	}
325
-
326
-	// point d'entree pour permettre a des plugins de gerer le statut
327
-	// autrement (par ex: toute rubrique est publiee des sa creation)
328
-	// Ce pipeline fait ce qu'il veut, mais s'il touche aux statuts/dates
329
-	// c'est statut_tmp/date_tmp qu'il doit modifier
330
-	// [C'est un trigger... a renommer en trig_calculer_rubriques ?]
331
-	pipeline('calculer_rubriques', null);
332
-
333
-
334
-	// Les rubriques qui ont une rubrique fille plus recente
335
-	// on tourne tant que les donnees remontent vers la racine.
336
-	do {
337
-		$continuer = false;
338
-		$r = sql_select(
339
-			'R.id_rubrique AS id, max(SR.date_tmp) AS date_h',
340
-			'spip_rubriques AS R JOIN spip_rubriques AS SR ON R.id_rubrique = SR.id_parent',
341
-			"(SR.date_tmp>R.date_tmp OR R.statut_tmp<>'publie') AND SR.statut_tmp='publie' ",
342
-			'R.id_rubrique'
343
-		);
344
-		while ($row = sql_fetch($r)) {
345
-			sql_updateq(
346
-				'spip_rubriques',
347
-				['statut_tmp' => 'publie', 'date_tmp' => $row['date_h']],
348
-				'id_rubrique=' . intval($row['id'])
349
-			);
350
-			$continuer = true;
351
-		}
352
-	} while ($continuer);
353
-
354
-	// Enregistrement des modifs
355
-	sql_update('spip_rubriques', ['date' => 'date_tmp', 'statut' => 'statut_tmp']);
301
+    // Mettre les compteurs a zero
302
+    sql_updateq('spip_rubriques', ['date_tmp' => '0000-00-00 00:00:00', 'statut_tmp' => 'prepa']);
303
+
304
+    //
305
+    // Publier et dater les rubriques qui ont un article publie
306
+    //
307
+
308
+    // Afficher les articles post-dates ?
309
+    $postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
310
+        'AND A.date <= ' . sql_quote(date('Y-m-d H:i:s')) : '';
311
+
312
+    $r = sql_select(
313
+        'R.id_rubrique AS id, max(A.date) AS date_h',
314
+        'spip_rubriques AS R JOIN spip_articles AS A ON R.id_rubrique = A.id_rubrique',
315
+        "A.date>R.date_tmp AND A.statut='publie' $postdates ",
316
+        'R.id_rubrique'
317
+    );
318
+    while ($row = sql_fetch($r)) {
319
+        sql_updateq(
320
+            'spip_rubriques',
321
+            ['statut_tmp' => 'publie', 'date_tmp' => $row['date_h']],
322
+            'id_rubrique=' . intval($row['id'])
323
+        );
324
+    }
325
+
326
+    // point d'entree pour permettre a des plugins de gerer le statut
327
+    // autrement (par ex: toute rubrique est publiee des sa creation)
328
+    // Ce pipeline fait ce qu'il veut, mais s'il touche aux statuts/dates
329
+    // c'est statut_tmp/date_tmp qu'il doit modifier
330
+    // [C'est un trigger... a renommer en trig_calculer_rubriques ?]
331
+    pipeline('calculer_rubriques', null);
332
+
333
+
334
+    // Les rubriques qui ont une rubrique fille plus recente
335
+    // on tourne tant que les donnees remontent vers la racine.
336
+    do {
337
+        $continuer = false;
338
+        $r = sql_select(
339
+            'R.id_rubrique AS id, max(SR.date_tmp) AS date_h',
340
+            'spip_rubriques AS R JOIN spip_rubriques AS SR ON R.id_rubrique = SR.id_parent',
341
+            "(SR.date_tmp>R.date_tmp OR R.statut_tmp<>'publie') AND SR.statut_tmp='publie' ",
342
+            'R.id_rubrique'
343
+        );
344
+        while ($row = sql_fetch($r)) {
345
+            sql_updateq(
346
+                'spip_rubriques',
347
+                ['statut_tmp' => 'publie', 'date_tmp' => $row['date_h']],
348
+                'id_rubrique=' . intval($row['id'])
349
+            );
350
+            $continuer = true;
351
+        }
352
+    } while ($continuer);
353
+
354
+    // Enregistrement des modifs
355
+    sql_update('spip_rubriques', ['date' => 'date_tmp', 'statut' => 'statut_tmp']);
356 356
 }
357 357
 
358 358
 /**
@@ -367,123 +367,123 @@  discard block
 block discarded – undo
367 367
  * @return void
368 368
  **/
369 369
 function propager_les_secteurs() {
370
-	// Profondeur 0
371
-	// Toutes les rubriques racines sont de profondeur 0
372
-	// et fixer les id_secteur des rubriques racines
373
-	sql_update('spip_rubriques', ['id_secteur' => 'id_rubrique', 'profondeur' => 0], 'id_parent=0');
374
-	// Toute rubrique non racine est de profondeur >0
375
-	sql_updateq('spip_rubriques', ['profondeur' => 1], 'id_parent<>0 AND profondeur=0');
376
-
377
-	// securite : pas plus d'iteration que de rubriques dans la base
378
-	$maxiter = sql_countsel('spip_rubriques');
379
-
380
-	// reparer les rubriques qui n'ont pas l'id_secteur de leur parent
381
-	// on fait profondeur par profondeur
382
-
383
-	$prof = 0;
384
-	do {
385
-		$continuer = false;
386
-
387
-		// Par recursivite : si toutes les rubriques de profondeur $prof sont bonnes
388
-		// on fixe le profondeur $prof+1
389
-
390
-		// Toutes les rubriques dont le parent est de profondeur $prof ont une profondeur $prof+1
391
-		// on teste A.profondeur > $prof+1 car :
392
-		// - toutes les rubriques de profondeur 0 à $prof sont bonnes
393
-		// - si A.profondeur = $prof+1 c'est bon
394
-		// - cela nous protege de la boucle infinie en cas de reference circulaire dans les rubriques
395
-		$maxiter2 = $maxiter;
396
-		while (
397
-			$maxiter2--
398
-			and $rows = sql_allfetsel(
399
-				'A.id_rubrique AS id, R.id_secteur AS id_secteur, R.profondeur+1 as profondeur',
400
-				'spip_rubriques AS A JOIN spip_rubriques AS R ON A.id_parent = R.id_rubrique',
401
-				'R.profondeur=' . intval($prof) . ' AND (A.id_secteur <> R.id_secteur OR A.profondeur > R.profondeur+1)',
402
-				'',
403
-				'R.id_secteur',
404
-				'0,100'
405
-			)
406
-		) {
407
-			$id_secteur = null;
408
-			$ids = [];
409
-			while ($row = array_shift($rows)) {
410
-				if ($row['id_secteur'] !== $id_secteur) {
411
-					if (count($ids)) {
412
-						sql_updateq(
413
-							'spip_rubriques',
414
-							['id_secteur' => $id_secteur, 'profondeur' => $prof + 1],
415
-							sql_in('id_rubrique', $ids)
416
-						);
417
-					}
418
-					$id_secteur = $row['id_secteur'];
419
-					$ids = [];
420
-				}
421
-				$ids[] = $row['id'];
422
-			}
423
-			if (count($ids)) {
424
-				sql_updateq(
425
-					'spip_rubriques',
426
-					['id_secteur' => $id_secteur, 'profondeur' => $prof + 1],
427
-					sql_in('id_rubrique', $ids)
428
-				);
429
-			}
430
-		}
431
-
432
-
433
-		// Toutes les rubriques de profondeur $prof+1 qui n'ont pas un parent de profondeur $prof sont decalees
434
-		$maxiter2 = $maxiter;
435
-		while (
436
-			$maxiter2--
437
-			and $rows = sql_allfetsel(
438
-				'id_rubrique as id',
439
-				'spip_rubriques',
440
-				'profondeur=' . intval($prof + 1) . ' AND id_parent NOT IN (' . sql_get_select(
441
-					'zzz.id_rubrique',
442
-					'spip_rubriques AS zzz',
443
-					'zzz.profondeur=' . intval($prof)
444
-				) . ')',
445
-				'',
446
-				'',
447
-				'0,100'
448
-			)
449
-		) {
450
-			$rows = array_column($rows, 'id');
451
-			sql_updateq('spip_rubriques', ['profondeur' => $prof + 2], sql_in('id_rubrique', $rows));
452
-		}
453
-
454
-		// ici on a fini de valider $prof+1, toutes les rubriques de prondeur 0 a $prof+1 sont OK
455
-		// si pas de rubrique a profondeur $prof+1 pas la peine de continuer
456
-		// si il reste des rubriques non vues, c'est une branche morte ou reference circulaire (base foireuse)
457
-		// on arrete les frais
458
-		if (sql_countsel('spip_rubriques', 'profondeur=' . intval($prof + 1))) {
459
-			$prof++;
460
-			$continuer = true;
461
-		}
462
-	} while ($continuer and $maxiter--);
463
-
464
-	// loger si la table des rubriques semble foireuse
465
-	// et mettre un id_secteur=0 sur ces rubriques pour eviter toute selection par les boucles
466
-	if (sql_countsel('spip_rubriques', 'profondeur>' . intval($prof + 1))) {
467
-		spip_log(
468
-			'Les rubriques de profondeur>' . ($prof + 1) . ' semblent suspectes (branches morte ou reference circulaire dans les parents)',
469
-			_LOG_CRITIQUE
470
-		);
471
-		sql_update('spip_rubriques', ['id_secteur' => 0], 'profondeur>' . intval($prof + 1));
472
-	}
473
-
474
-	// reparer les articles
475
-	$r = sql_select(
476
-		'A.id_article AS id, R.id_secteur AS secteur',
477
-		'spip_articles AS A, spip_rubriques AS R',
478
-		'A.id_rubrique = R.id_rubrique AND A.id_secteur <> R.id_secteur'
479
-	);
480
-
481
-	while ($row = sql_fetch($r)) {
482
-		sql_update('spip_articles', ['id_secteur' => $row['secteur']], 'id_article=' . intval($row['id']));
483
-	}
484
-
485
-	// avertir les plugins qui peuvent faire leur mises a jour egalement
486
-	pipeline('trig_propager_les_secteurs', '');
370
+    // Profondeur 0
371
+    // Toutes les rubriques racines sont de profondeur 0
372
+    // et fixer les id_secteur des rubriques racines
373
+    sql_update('spip_rubriques', ['id_secteur' => 'id_rubrique', 'profondeur' => 0], 'id_parent=0');
374
+    // Toute rubrique non racine est de profondeur >0
375
+    sql_updateq('spip_rubriques', ['profondeur' => 1], 'id_parent<>0 AND profondeur=0');
376
+
377
+    // securite : pas plus d'iteration que de rubriques dans la base
378
+    $maxiter = sql_countsel('spip_rubriques');
379
+
380
+    // reparer les rubriques qui n'ont pas l'id_secteur de leur parent
381
+    // on fait profondeur par profondeur
382
+
383
+    $prof = 0;
384
+    do {
385
+        $continuer = false;
386
+
387
+        // Par recursivite : si toutes les rubriques de profondeur $prof sont bonnes
388
+        // on fixe le profondeur $prof+1
389
+
390
+        // Toutes les rubriques dont le parent est de profondeur $prof ont une profondeur $prof+1
391
+        // on teste A.profondeur > $prof+1 car :
392
+        // - toutes les rubriques de profondeur 0 à $prof sont bonnes
393
+        // - si A.profondeur = $prof+1 c'est bon
394
+        // - cela nous protege de la boucle infinie en cas de reference circulaire dans les rubriques
395
+        $maxiter2 = $maxiter;
396
+        while (
397
+            $maxiter2--
398
+            and $rows = sql_allfetsel(
399
+                'A.id_rubrique AS id, R.id_secteur AS id_secteur, R.profondeur+1 as profondeur',
400
+                'spip_rubriques AS A JOIN spip_rubriques AS R ON A.id_parent = R.id_rubrique',
401
+                'R.profondeur=' . intval($prof) . ' AND (A.id_secteur <> R.id_secteur OR A.profondeur > R.profondeur+1)',
402
+                '',
403
+                'R.id_secteur',
404
+                '0,100'
405
+            )
406
+        ) {
407
+            $id_secteur = null;
408
+            $ids = [];
409
+            while ($row = array_shift($rows)) {
410
+                if ($row['id_secteur'] !== $id_secteur) {
411
+                    if (count($ids)) {
412
+                        sql_updateq(
413
+                            'spip_rubriques',
414
+                            ['id_secteur' => $id_secteur, 'profondeur' => $prof + 1],
415
+                            sql_in('id_rubrique', $ids)
416
+                        );
417
+                    }
418
+                    $id_secteur = $row['id_secteur'];
419
+                    $ids = [];
420
+                }
421
+                $ids[] = $row['id'];
422
+            }
423
+            if (count($ids)) {
424
+                sql_updateq(
425
+                    'spip_rubriques',
426
+                    ['id_secteur' => $id_secteur, 'profondeur' => $prof + 1],
427
+                    sql_in('id_rubrique', $ids)
428
+                );
429
+            }
430
+        }
431
+
432
+
433
+        // Toutes les rubriques de profondeur $prof+1 qui n'ont pas un parent de profondeur $prof sont decalees
434
+        $maxiter2 = $maxiter;
435
+        while (
436
+            $maxiter2--
437
+            and $rows = sql_allfetsel(
438
+                'id_rubrique as id',
439
+                'spip_rubriques',
440
+                'profondeur=' . intval($prof + 1) . ' AND id_parent NOT IN (' . sql_get_select(
441
+                    'zzz.id_rubrique',
442
+                    'spip_rubriques AS zzz',
443
+                    'zzz.profondeur=' . intval($prof)
444
+                ) . ')',
445
+                '',
446
+                '',
447
+                '0,100'
448
+            )
449
+        ) {
450
+            $rows = array_column($rows, 'id');
451
+            sql_updateq('spip_rubriques', ['profondeur' => $prof + 2], sql_in('id_rubrique', $rows));
452
+        }
453
+
454
+        // ici on a fini de valider $prof+1, toutes les rubriques de prondeur 0 a $prof+1 sont OK
455
+        // si pas de rubrique a profondeur $prof+1 pas la peine de continuer
456
+        // si il reste des rubriques non vues, c'est une branche morte ou reference circulaire (base foireuse)
457
+        // on arrete les frais
458
+        if (sql_countsel('spip_rubriques', 'profondeur=' . intval($prof + 1))) {
459
+            $prof++;
460
+            $continuer = true;
461
+        }
462
+    } while ($continuer and $maxiter--);
463
+
464
+    // loger si la table des rubriques semble foireuse
465
+    // et mettre un id_secteur=0 sur ces rubriques pour eviter toute selection par les boucles
466
+    if (sql_countsel('spip_rubriques', 'profondeur>' . intval($prof + 1))) {
467
+        spip_log(
468
+            'Les rubriques de profondeur>' . ($prof + 1) . ' semblent suspectes (branches morte ou reference circulaire dans les parents)',
469
+            _LOG_CRITIQUE
470
+        );
471
+        sql_update('spip_rubriques', ['id_secteur' => 0], 'profondeur>' . intval($prof + 1));
472
+    }
473
+
474
+    // reparer les articles
475
+    $r = sql_select(
476
+        'A.id_article AS id, R.id_secteur AS secteur',
477
+        'spip_articles AS A, spip_rubriques AS R',
478
+        'A.id_rubrique = R.id_rubrique AND A.id_secteur <> R.id_secteur'
479
+    );
480
+
481
+    while ($row = sql_fetch($r)) {
482
+        sql_update('spip_articles', ['id_secteur' => $row['secteur']], 'id_article=' . intval($row['id']));
483
+    }
484
+
485
+    // avertir les plugins qui peuvent faire leur mises a jour egalement
486
+    pipeline('trig_propager_les_secteurs', '');
487 487
 }
488 488
 
489 489
 
@@ -498,23 +498,23 @@  discard block
 block discarded – undo
498 498
  *     true si un changement a eu lieu
499 499
  **/
500 500
 function calculer_langues_rubriques_etape() {
501
-	$s = sql_select(
502
-		'A.id_rubrique AS id_rubrique, R.lang AS lang',
503
-		'spip_rubriques AS A, spip_rubriques AS R',
504
-		"A.id_parent = R.id_rubrique AND A.langue_choisie != 'oui' AND R.lang<>'' AND R.lang<>A.lang"
505
-	);
506
-
507
-	$t = false;
508
-	while ($row = sql_fetch($s)) {
509
-		$id_rubrique = $row['id_rubrique'];
510
-		$t = sql_updateq(
511
-			'spip_rubriques',
512
-			['lang' => $row['lang'], 'langue_choisie' => 'non'],
513
-			'id_rubrique=' . intval($id_rubrique)
514
-		);
515
-	}
516
-
517
-	return $t;
501
+    $s = sql_select(
502
+        'A.id_rubrique AS id_rubrique, R.lang AS lang',
503
+        'spip_rubriques AS A, spip_rubriques AS R',
504
+        "A.id_parent = R.id_rubrique AND A.langue_choisie != 'oui' AND R.lang<>'' AND R.lang<>A.lang"
505
+    );
506
+
507
+    $t = false;
508
+    while ($row = sql_fetch($s)) {
509
+        $id_rubrique = $row['id_rubrique'];
510
+        $t = sql_updateq(
511
+            'spip_rubriques',
512
+            ['lang' => $row['lang'], 'langue_choisie' => 'non'],
513
+            'id_rubrique=' . intval($id_rubrique)
514
+        );
515
+    }
516
+
517
+    return $t;
518 518
 }
519 519
 
520 520
 /**
@@ -534,38 +534,38 @@  discard block
 block discarded – undo
534 534
  **/
535 535
 function calculer_langues_rubriques() {
536 536
 
537
-	// rubriques (recursivite)
538
-	sql_updateq(
539
-		'spip_rubriques',
540
-		['lang' => $GLOBALS['meta']['langue_site'], 'langue_choisie' => 'non'],
541
-		"id_parent=0 AND langue_choisie != 'oui'"
542
-	);
543
-	while (calculer_langues_rubriques_etape()) {
544
-		;
545
-	}
546
-
547
-	// articles
548
-	$s = sql_select(
549
-		'A.id_article AS id_article, R.lang AS lang',
550
-		'spip_articles AS A, spip_rubriques AS R',
551
-		"A.id_rubrique = R.id_rubrique AND A.langue_choisie != 'oui' AND (length(A.lang)=0 OR length(R.lang)>0) AND R.lang<>A.lang"
552
-	);
553
-	while ($row = sql_fetch($s)) {
554
-		$id_article = $row['id_article'];
555
-		sql_updateq(
556
-			'spip_articles',
557
-			['lang' => $row['lang'], 'langue_choisie' => 'non'],
558
-			'id_article=' . intval($id_article)
559
-		);
560
-	}
561
-
562
-	if ($GLOBALS['meta']['multi_rubriques'] == 'oui') {
563
-		$langues = calculer_langues_utilisees();
564
-		ecrire_meta('langues_utilisees', $langues);
565
-	}
566
-
567
-	// avertir les plugins qui peuvent faire leur mises a jour egalement
568
-	pipeline('trig_calculer_langues_rubriques', '');
537
+    // rubriques (recursivite)
538
+    sql_updateq(
539
+        'spip_rubriques',
540
+        ['lang' => $GLOBALS['meta']['langue_site'], 'langue_choisie' => 'non'],
541
+        "id_parent=0 AND langue_choisie != 'oui'"
542
+    );
543
+    while (calculer_langues_rubriques_etape()) {
544
+        ;
545
+    }
546
+
547
+    // articles
548
+    $s = sql_select(
549
+        'A.id_article AS id_article, R.lang AS lang',
550
+        'spip_articles AS A, spip_rubriques AS R',
551
+        "A.id_rubrique = R.id_rubrique AND A.langue_choisie != 'oui' AND (length(A.lang)=0 OR length(R.lang)>0) AND R.lang<>A.lang"
552
+    );
553
+    while ($row = sql_fetch($s)) {
554
+        $id_article = $row['id_article'];
555
+        sql_updateq(
556
+            'spip_articles',
557
+            ['lang' => $row['lang'], 'langue_choisie' => 'non'],
558
+            'id_article=' . intval($id_article)
559
+        );
560
+    }
561
+
562
+    if ($GLOBALS['meta']['multi_rubriques'] == 'oui') {
563
+        $langues = calculer_langues_utilisees();
564
+        ecrire_meta('langues_utilisees', $langues);
565
+    }
566
+
567
+    // avertir les plugins qui peuvent faire leur mises a jour egalement
568
+    pipeline('trig_calculer_langues_rubriques', '');
569 569
 }
570 570
 
571 571
 
@@ -582,80 +582,80 @@  discard block
 block discarded – undo
582 582
  *    Liste des langues utilisées séparées par des virgules
583 583
  **/
584 584
 function calculer_langues_utilisees($serveur = '') {
585
-	include_spip('public/interfaces');
586
-	include_spip('public/compiler');
587
-	include_spip('public/composer');
588
-	include_spip('public/phraser_html');
589
-	$langues = [];
590
-
591
-	$langues[$GLOBALS['meta']['langue_site']] = 1;
592
-
593
-	include_spip('base/objets');
594
-	$tables = lister_tables_objets_sql();
595
-	$trouver_table = charger_fonction('trouver_table', 'base');
596
-
597
-	foreach (array_keys($tables) as $t) {
598
-		$desc = $trouver_table($t, $serveur);
599
-		// c'est une table avec des langues
600
-		if (
601
-			$desc['exist']
602
-			and isset($desc['field']['lang'])
603
-			and isset($desc['field']['langue_choisie'])
604
-		) {
605
-			$boucle = new Boucle();
606
-			$boucle->show = $desc;
607
-			$boucle->nom = 'calculer_langues_utilisees';
608
-			$boucle->id_boucle = $desc['table_objet'];
609
-			$boucle->id_table = $desc['table_objet'];
610
-			$boucle->primary = $desc['key']['PRIMARY KEY'] ?? '';
611
-			$boucle->sql_serveur = $serveur;
612
-			$boucle->select[] = 'DISTINCT lang';
613
-			$boucle->from[$desc['table_objet']] = $t;
614
-			$boucle->separateur[] = ',';
615
-			$boucle->return = '$Pile[$SP][\'lang\']';
616
-			$boucle->iterateur = 'sql';
617
-
618
-			$boucle->descr['nom'] = 'calculer_langues_utilisees'; // eviter notice php
619
-			$boucle->descr['sourcefile'] = 'internal';
620
-			$boucle->descr['gram'] = 'html';
621
-
622
-			$boucle = pipeline('pre_boucle', $boucle);
623
-
624
-			if (
625
-				isset($desc['statut'])
626
-				and $desc['statut']
627
-			) {
628
-				$boucles = [
629
-					'calculer_langues_utilisees' => $boucle,
630
-				];
631
-				// generer un nom de fonction "anonyme" unique
632
-				do {
633
-					$functionname = 'f_calculer_langues_utilisees_' . $boucle->id_table . '_' . time() . '_' . random_int(0, mt_getrandmax());
634
-				} while (function_exists($functionname));
635
-				$code = calculer_boucle('calculer_langues_utilisees', $boucles);
636
-				$code = '$SP=0; $command=array();$command["connect"] = $connect = "' . $serveur . '"; $Pile=array(0=>array());' . "\n" . $code;
637
-				$code = 'function ' . $functionname . '(){' . $code . '};$res = ' . $functionname . '();';
638
-				$res = '';
639
-				eval($code);
640
-				$res = explode(',', $res);
641
-				foreach ($res as $lang) {
642
-					$langues[$lang] = 1;
643
-				}
644
-			} else {
645
-				$res = sql_select(implode(',', $boucle->select), $boucle->from);
646
-				while ($row = sql_fetch($res)) {
647
-					$langues[$row['lang']] = 1;
648
-				}
649
-			}
650
-		}
651
-	}
652
-
653
-	$langues = array_filter(array_keys($langues));
654
-	sort($langues);
655
-	$langues = join(',', $langues);
656
-	spip_log("langues utilisees: $langues");
657
-
658
-	return $langues;
585
+    include_spip('public/interfaces');
586
+    include_spip('public/compiler');
587
+    include_spip('public/composer');
588
+    include_spip('public/phraser_html');
589
+    $langues = [];
590
+
591
+    $langues[$GLOBALS['meta']['langue_site']] = 1;
592
+
593
+    include_spip('base/objets');
594
+    $tables = lister_tables_objets_sql();
595
+    $trouver_table = charger_fonction('trouver_table', 'base');
596
+
597
+    foreach (array_keys($tables) as $t) {
598
+        $desc = $trouver_table($t, $serveur);
599
+        // c'est une table avec des langues
600
+        if (
601
+            $desc['exist']
602
+            and isset($desc['field']['lang'])
603
+            and isset($desc['field']['langue_choisie'])
604
+        ) {
605
+            $boucle = new Boucle();
606
+            $boucle->show = $desc;
607
+            $boucle->nom = 'calculer_langues_utilisees';
608
+            $boucle->id_boucle = $desc['table_objet'];
609
+            $boucle->id_table = $desc['table_objet'];
610
+            $boucle->primary = $desc['key']['PRIMARY KEY'] ?? '';
611
+            $boucle->sql_serveur = $serveur;
612
+            $boucle->select[] = 'DISTINCT lang';
613
+            $boucle->from[$desc['table_objet']] = $t;
614
+            $boucle->separateur[] = ',';
615
+            $boucle->return = '$Pile[$SP][\'lang\']';
616
+            $boucle->iterateur = 'sql';
617
+
618
+            $boucle->descr['nom'] = 'calculer_langues_utilisees'; // eviter notice php
619
+            $boucle->descr['sourcefile'] = 'internal';
620
+            $boucle->descr['gram'] = 'html';
621
+
622
+            $boucle = pipeline('pre_boucle', $boucle);
623
+
624
+            if (
625
+                isset($desc['statut'])
626
+                and $desc['statut']
627
+            ) {
628
+                $boucles = [
629
+                    'calculer_langues_utilisees' => $boucle,
630
+                ];
631
+                // generer un nom de fonction "anonyme" unique
632
+                do {
633
+                    $functionname = 'f_calculer_langues_utilisees_' . $boucle->id_table . '_' . time() . '_' . random_int(0, mt_getrandmax());
634
+                } while (function_exists($functionname));
635
+                $code = calculer_boucle('calculer_langues_utilisees', $boucles);
636
+                $code = '$SP=0; $command=array();$command["connect"] = $connect = "' . $serveur . '"; $Pile=array(0=>array());' . "\n" . $code;
637
+                $code = 'function ' . $functionname . '(){' . $code . '};$res = ' . $functionname . '();';
638
+                $res = '';
639
+                eval($code);
640
+                $res = explode(',', $res);
641
+                foreach ($res as $lang) {
642
+                    $langues[$lang] = 1;
643
+                }
644
+            } else {
645
+                $res = sql_select(implode(',', $boucle->select), $boucle->from);
646
+                while ($row = sql_fetch($res)) {
647
+                    $langues[$row['lang']] = 1;
648
+                }
649
+            }
650
+        }
651
+    }
652
+
653
+    $langues = array_filter(array_keys($langues));
654
+    sort($langues);
655
+    $langues = join(',', $langues);
656
+    spip_log("langues utilisees: $langues");
657
+
658
+    return $langues;
659 659
 }
660 660
 
661 661
 /**
@@ -672,9 +672,9 @@  discard block
 block discarded – undo
672 672
  *     incluant les rubriques noeuds et toutes leurs descendances
673 673
  */
674 674
 function calcul_branche_in($id) {
675
-	$calcul_branche_in = charger_fonction('calcul_branche_in', 'inc');
675
+    $calcul_branche_in = charger_fonction('calcul_branche_in', 'inc');
676 676
 
677
-	return $calcul_branche_in($id);
677
+    return $calcul_branche_in($id);
678 678
 }
679 679
 
680 680
 /**
@@ -692,9 +692,9 @@  discard block
 block discarded – undo
692 692
  *     incluant les rubriques transmises et toutes leurs parentées
693 693
  */
694 694
 function calcul_hierarchie_in($id, $tout = true) {
695
-	$calcul_hierarchie_in = charger_fonction('calcul_hierarchie_in', 'inc');
695
+    $calcul_hierarchie_in = charger_fonction('calcul_hierarchie_in', 'inc');
696 696
 
697
-	return $calcul_hierarchie_in($id, $tout);
697
+    return $calcul_hierarchie_in($id, $tout);
698 698
 }
699 699
 
700 700
 
@@ -715,40 +715,40 @@  discard block
 block discarded – undo
715 715
  *     incluant les rubriques noeuds et toutes leurs descendances
716 716
  */
717 717
 function inc_calcul_branche_in_dist($id) {
718
-	static $b = [];
719
-
720
-	// normaliser $id qui a pu arriver comme un array, comme un entier, ou comme une chaine NN,NN,NN
721
-	if (!is_array($id)) {
722
-		$id = explode(',', $id);
723
-	}
724
-	$id = join(',', array_map('intval', $id));
725
-	if (isset($b[$id])) {
726
-		return $b[$id];
727
-	}
728
-
729
-	// Notre branche commence par la rubrique de depart
730
-	$branche = $r = $id;
731
-
732
-	// On ajoute une generation (les filles de la generation precedente)
733
-	// jusqu'a epuisement, en se protegeant des references circulaires
734
-	$maxiter = 10000;
735
-	while (
736
-		$maxiter-- and $filles = sql_allfetsel(
737
-			'id_rubrique',
738
-			'spip_rubriques',
739
-			sql_in('id_parent', $r) . ' AND ' . sql_in('id_rubrique', $r, 'NOT')
740
-		)
741
-	) {
742
-		$r = join(',', array_column($filles, 'id_rubrique'));
743
-		$branche .= ',' . $r;
744
-	}
745
-
746
-	# securite pour ne pas plomber la conso memoire sur les sites prolifiques
747
-	if (strlen($branche) < 10000) {
748
-		$b[$id] = $branche;
749
-	}
750
-
751
-	return $branche;
718
+    static $b = [];
719
+
720
+    // normaliser $id qui a pu arriver comme un array, comme un entier, ou comme une chaine NN,NN,NN
721
+    if (!is_array($id)) {
722
+        $id = explode(',', $id);
723
+    }
724
+    $id = join(',', array_map('intval', $id));
725
+    if (isset($b[$id])) {
726
+        return $b[$id];
727
+    }
728
+
729
+    // Notre branche commence par la rubrique de depart
730
+    $branche = $r = $id;
731
+
732
+    // On ajoute une generation (les filles de la generation precedente)
733
+    // jusqu'a epuisement, en se protegeant des references circulaires
734
+    $maxiter = 10000;
735
+    while (
736
+        $maxiter-- and $filles = sql_allfetsel(
737
+            'id_rubrique',
738
+            'spip_rubriques',
739
+            sql_in('id_parent', $r) . ' AND ' . sql_in('id_rubrique', $r, 'NOT')
740
+        )
741
+    ) {
742
+        $r = join(',', array_column($filles, 'id_rubrique'));
743
+        $branche .= ',' . $r;
744
+    }
745
+
746
+    # securite pour ne pas plomber la conso memoire sur les sites prolifiques
747
+    if (strlen($branche) < 10000) {
748
+        $b[$id] = $branche;
749
+    }
750
+
751
+    return $branche;
752 752
 }
753 753
 
754 754
 
@@ -770,45 +770,45 @@  discard block
 block discarded – undo
770 770
  *     incluant les rubriques transmises et toutes leurs parentées
771 771
  */
772 772
 function inc_calcul_hierarchie_in_dist($id, $tout = true) {
773
-	static $b = [];
774
-
775
-	// normaliser $id qui a pu arriver comme un array, comme un entier, ou comme une chaine NN,NN,NN
776
-	if (!is_array($id)) {
777
-		$id = explode(',', $id);
778
-	}
779
-	$id = join(',', array_map('intval', $id));
780
-
781
-	if (isset($b[$id])) {
782
-		// Notre branche commence par la rubrique de depart si $tout=true
783
-		return $tout ? (strlen($b[$id]) ? $b[$id] . ",$id" : $id) : $b[$id];
784
-	}
785
-
786
-	$hier = '';
787
-
788
-	// On ajoute une generation (les filles de la generation precedente)
789
-	// jusqu'a epuisement, en se protegeant des references circulaires
790
-	$ids_nouveaux_parents = $id;
791
-	$maxiter = 10000;
792
-	while (
793
-		$maxiter-- and $parents = sql_allfetsel(
794
-			'id_parent',
795
-			'spip_rubriques',
796
-			sql_in('id_rubrique', $ids_nouveaux_parents) . ' AND ' . sql_in('id_parent', $hier, 'NOT')
797
-		)
798
-	) {
799
-		$ids_nouveaux_parents = join(',', array_column($parents, 'id_parent'));
800
-		$hier = $ids_nouveaux_parents . (strlen($hier) ? ',' . $hier : '');
801
-	}
802
-
803
-	# securite pour ne pas plomber la conso memoire sur les sites prolifiques
804
-	if (strlen($hier) < 10000) {
805
-		$b[$id] = $hier;
806
-	}
807
-
808
-	// Notre branche commence par la rubrique de depart si $tout=true
809
-	$hier = $tout ? (strlen($hier) ? "$hier,$id" : $id) : $hier;
810
-
811
-	return $hier;
773
+    static $b = [];
774
+
775
+    // normaliser $id qui a pu arriver comme un array, comme un entier, ou comme une chaine NN,NN,NN
776
+    if (!is_array($id)) {
777
+        $id = explode(',', $id);
778
+    }
779
+    $id = join(',', array_map('intval', $id));
780
+
781
+    if (isset($b[$id])) {
782
+        // Notre branche commence par la rubrique de depart si $tout=true
783
+        return $tout ? (strlen($b[$id]) ? $b[$id] . ",$id" : $id) : $b[$id];
784
+    }
785
+
786
+    $hier = '';
787
+
788
+    // On ajoute une generation (les filles de la generation precedente)
789
+    // jusqu'a epuisement, en se protegeant des references circulaires
790
+    $ids_nouveaux_parents = $id;
791
+    $maxiter = 10000;
792
+    while (
793
+        $maxiter-- and $parents = sql_allfetsel(
794
+            'id_parent',
795
+            'spip_rubriques',
796
+            sql_in('id_rubrique', $ids_nouveaux_parents) . ' AND ' . sql_in('id_parent', $hier, 'NOT')
797
+        )
798
+    ) {
799
+        $ids_nouveaux_parents = join(',', array_column($parents, 'id_parent'));
800
+        $hier = $ids_nouveaux_parents . (strlen($hier) ? ',' . $hier : '');
801
+    }
802
+
803
+    # securite pour ne pas plomber la conso memoire sur les sites prolifiques
804
+    if (strlen($hier) < 10000) {
805
+        $b[$id] = $hier;
806
+    }
807
+
808
+    // Notre branche commence par la rubrique de depart si $tout=true
809
+    $hier = $tout ? (strlen($hier) ? "$hier,$id" : $id) : $hier;
810
+
811
+    return $hier;
812 812
 }
813 813
 
814 814
 
@@ -826,47 +826,47 @@  discard block
 block discarded – undo
826 826
  * @return void
827 827
  **/
828 828
 function calculer_prochain_postdate($check = false) {
829
-	include_spip('base/abstract_sql');
830
-	if ($check) {
831
-		$postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
832
-			'AND A.date <= ' . sql_quote(date('Y-m-d H:i:s')) : '';
833
-
834
-		$r = sql_select(
835
-			'DISTINCT A.id_rubrique AS id',
836
-			'spip_articles AS A LEFT JOIN spip_rubriques AS R ON A.id_rubrique=R.id_rubrique',
837
-			"R.statut != 'publie' AND A.statut='publie'$postdates"
838
-		);
839
-		while ($row = sql_fetch($r)) {
840
-			publier_branche_rubrique($row['id']);
841
-		}
842
-
843
-		pipeline('trig_calculer_prochain_postdate', '');
844
-	}
845
-
846
-	$t = sql_fetsel(
847
-		'date',
848
-		'spip_articles',
849
-		"statut='publie' AND date > " . sql_quote(date('Y-m-d H:i:s')),
850
-		'',
851
-		'date',
852
-		'1'
853
-	);
854
-
855
-	if ($t) {
856
-		$t = $t['date'];
857
-		if (
858
-			!isset($GLOBALS['meta']['date_prochain_postdate'])
859
-			or $t <> $GLOBALS['meta']['date_prochain_postdate']
860
-		) {
861
-			ecrire_meta('date_prochain_postdate', strtotime($t));
862
-			ecrire_meta('derniere_modif', time());
863
-		}
864
-	} else {
865
-		effacer_meta('date_prochain_postdate');
866
-		ecrire_meta('derniere_modif', time());
867
-	}
868
-
869
-	spip_log("prochain postdate: $t");
829
+    include_spip('base/abstract_sql');
830
+    if ($check) {
831
+        $postdates = ($GLOBALS['meta']['post_dates'] == 'non') ?
832
+            'AND A.date <= ' . sql_quote(date('Y-m-d H:i:s')) : '';
833
+
834
+        $r = sql_select(
835
+            'DISTINCT A.id_rubrique AS id',
836
+            'spip_articles AS A LEFT JOIN spip_rubriques AS R ON A.id_rubrique=R.id_rubrique',
837
+            "R.statut != 'publie' AND A.statut='publie'$postdates"
838
+        );
839
+        while ($row = sql_fetch($r)) {
840
+            publier_branche_rubrique($row['id']);
841
+        }
842
+
843
+        pipeline('trig_calculer_prochain_postdate', '');
844
+    }
845
+
846
+    $t = sql_fetsel(
847
+        'date',
848
+        'spip_articles',
849
+        "statut='publie' AND date > " . sql_quote(date('Y-m-d H:i:s')),
850
+        '',
851
+        'date',
852
+        '1'
853
+    );
854
+
855
+    if ($t) {
856
+        $t = $t['date'];
857
+        if (
858
+            !isset($GLOBALS['meta']['date_prochain_postdate'])
859
+            or $t <> $GLOBALS['meta']['date_prochain_postdate']
860
+        ) {
861
+            ecrire_meta('date_prochain_postdate', strtotime($t));
862
+            ecrire_meta('derniere_modif', time());
863
+        }
864
+    } else {
865
+        effacer_meta('date_prochain_postdate');
866
+        ecrire_meta('derniere_modif', time());
867
+    }
868
+
869
+    spip_log("prochain postdate: $t");
870 870
 }
871 871
 
872 872
 /**
@@ -891,62 +891,62 @@  discard block
 block discarded – undo
891 891
  */
892 892
 function creer_rubrique_nommee($titre, $id_parent = 0, $serveur = '') {
893 893
 
894
-	// eclater l'arborescence demandee
895
-	// echapper les </multi> et autres balises fermantes html
896
-	$titre = preg_replace(',</([a-z][^>]*)>,ims', "<@\\1>", $titre);
897
-	$arbo = explode('/', preg_replace(',^/,', '', $titre));
898
-	include_spip('base/abstract_sql');
899
-	foreach ($arbo as $titre) {
900
-		// retablir les </multi> et autres balises fermantes html
901
-		$titre = preg_replace(',<@([a-z][^>]*)>,ims', "</\\1>", $titre);
902
-		$r = sql_getfetsel(
903
-			'id_rubrique',
904
-			'spip_rubriques',
905
-			'titre = ' . sql_quote($titre) . ' AND id_parent=' . intval($id_parent),
906
-			$groupby = [],
907
-			$orderby = [],
908
-			$limit = '',
909
-			$having = [],
910
-			$serveur
911
-		);
912
-		if ($r !== null) {
913
-			$id_parent = $r;
914
-		} else {
915
-			$id_rubrique = sql_insertq('spip_rubriques', [
916
-					'titre' => $titre,
917
-					'id_parent' => $id_parent,
918
-					'statut' => 'prepa'
919
-				], $desc = [], $serveur);
920
-			if ($id_parent > 0) {
921
-				$data = sql_fetsel(
922
-					'id_secteur,lang',
923
-					'spip_rubriques',
924
-					"id_rubrique=$id_parent",
925
-					$groupby = [],
926
-					$orderby = [],
927
-					$limit = '',
928
-					$having = [],
929
-					$serveur
930
-				);
931
-				$id_secteur = $data['id_secteur'];
932
-				$lang = $data['lang'];
933
-			} else {
934
-				$id_secteur = $id_rubrique;
935
-				$lang = $GLOBALS['meta']['langue_site'];
936
-			}
937
-
938
-			sql_updateq(
939
-				'spip_rubriques',
940
-				['id_secteur' => $id_secteur, 'lang' => $lang],
941
-				'id_rubrique=' . intval($id_rubrique),
942
-				$desc = '',
943
-				$serveur
944
-			);
945
-
946
-			// pour la recursion
947
-			$id_parent = $id_rubrique;
948
-		}
949
-	}
950
-
951
-	return intval($id_parent);
894
+    // eclater l'arborescence demandee
895
+    // echapper les </multi> et autres balises fermantes html
896
+    $titre = preg_replace(',</([a-z][^>]*)>,ims', "<@\\1>", $titre);
897
+    $arbo = explode('/', preg_replace(',^/,', '', $titre));
898
+    include_spip('base/abstract_sql');
899
+    foreach ($arbo as $titre) {
900
+        // retablir les </multi> et autres balises fermantes html
901
+        $titre = preg_replace(',<@([a-z][^>]*)>,ims', "</\\1>", $titre);
902
+        $r = sql_getfetsel(
903
+            'id_rubrique',
904
+            'spip_rubriques',
905
+            'titre = ' . sql_quote($titre) . ' AND id_parent=' . intval($id_parent),
906
+            $groupby = [],
907
+            $orderby = [],
908
+            $limit = '',
909
+            $having = [],
910
+            $serveur
911
+        );
912
+        if ($r !== null) {
913
+            $id_parent = $r;
914
+        } else {
915
+            $id_rubrique = sql_insertq('spip_rubriques', [
916
+                    'titre' => $titre,
917
+                    'id_parent' => $id_parent,
918
+                    'statut' => 'prepa'
919
+                ], $desc = [], $serveur);
920
+            if ($id_parent > 0) {
921
+                $data = sql_fetsel(
922
+                    'id_secteur,lang',
923
+                    'spip_rubriques',
924
+                    "id_rubrique=$id_parent",
925
+                    $groupby = [],
926
+                    $orderby = [],
927
+                    $limit = '',
928
+                    $having = [],
929
+                    $serveur
930
+                );
931
+                $id_secteur = $data['id_secteur'];
932
+                $lang = $data['lang'];
933
+            } else {
934
+                $id_secteur = $id_rubrique;
935
+                $lang = $GLOBALS['meta']['langue_site'];
936
+            }
937
+
938
+            sql_updateq(
939
+                'spip_rubriques',
940
+                ['id_secteur' => $id_secteur, 'lang' => $lang],
941
+                'id_rubrique=' . intval($id_rubrique),
942
+                $desc = '',
943
+                $serveur
944
+            );
945
+
946
+            // pour la recursion
947
+            $id_parent = $id_rubrique;
948
+        }
949
+    }
950
+
951
+    return intval($id_parent);
952 952
 }
Please login to merge, or discard this patch.
ecrire/inc/bandeau.php 2 patches
Indentation   +152 added lines, -152 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/boutons');
@@ -37,33 +37,33 @@  discard block
 block discarded – undo
37 37
  *     Contexte
38 38
  **/
39 39
 function definir_barre_contexte($contexte = null) {
40
-	if (is_null($contexte)) {
41
-		$contexte = $_GET;
42
-	} elseif (is_string($contexte)) {
43
-		$contexte = unserialize($contexte);
44
-	}
45
-	if (!isset($contexte['id_rubrique']) and isset($contexte['exec'])) {
46
-		if (!function_exists('trouver_objet_exec')) {
47
-			include_spip('inc/pipelines_ecrire');
48
-		}
49
-		if ($e = trouver_objet_exec($contexte['exec'])) {
50
-			$_id = $e['id_table_objet'];
51
-			if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52
-				$table = $e['table_objet_sql'];
53
-				$row = sql_fetsel('*', $table, "$_id=" . intval($id));
54
-				if (isset($row['id_rubrique'])) {
55
-					$contexte['id_rubrique'] = $row['id_rubrique'];
56
-					if (isset($row['id_secteur'])) {
57
-						$contexte['id_secteur'] = $row['id_secteur'];
58
-					}
59
-				} elseif (isset($row['id_groupe'])) {
60
-					// TODO supprimer ce bloc quand https://core.spip.net/issues/3844 sera réalisé
61
-					$contexte['id_groupe'] = $row['id_groupe'];
62
-				}
63
-			}
64
-		}
65
-	}
66
-	return $contexte;
40
+    if (is_null($contexte)) {
41
+        $contexte = $_GET;
42
+    } elseif (is_string($contexte)) {
43
+        $contexte = unserialize($contexte);
44
+    }
45
+    if (!isset($contexte['id_rubrique']) and isset($contexte['exec'])) {
46
+        if (!function_exists('trouver_objet_exec')) {
47
+            include_spip('inc/pipelines_ecrire');
48
+        }
49
+        if ($e = trouver_objet_exec($contexte['exec'])) {
50
+            $_id = $e['id_table_objet'];
51
+            if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52
+                $table = $e['table_objet_sql'];
53
+                $row = sql_fetsel('*', $table, "$_id=" . intval($id));
54
+                if (isset($row['id_rubrique'])) {
55
+                    $contexte['id_rubrique'] = $row['id_rubrique'];
56
+                    if (isset($row['id_secteur'])) {
57
+                        $contexte['id_secteur'] = $row['id_secteur'];
58
+                    }
59
+                } elseif (isset($row['id_groupe'])) {
60
+                    // TODO supprimer ce bloc quand https://core.spip.net/issues/3844 sera réalisé
61
+                    $contexte['id_groupe'] = $row['id_groupe'];
62
+                }
63
+            }
64
+        }
65
+    }
66
+    return $contexte;
67 67
 }
68 68
 
69 69
 /**
@@ -79,92 +79,92 @@  discard block
 block discarded – undo
79 79
  * @return array
80 80
  */
81 81
 function definir_barre_boutons($contexte = [], $icones = true, $autorise = true) {
82
-	include_spip('inc/autoriser');
83
-	$boutons_admin = [];
82
+    include_spip('inc/autoriser');
83
+    $boutons_admin = [];
84 84
 
85
-	// les boutons du core, issus de ecrire/paquet.xml
86
-	$liste_boutons = [];
85
+    // les boutons du core, issus de ecrire/paquet.xml
86
+    $liste_boutons = [];
87 87
 
88
-	// ajouter les boutons issus des plugin via paquet.xml
89
-	if (
90
-		function_exists('boutons_plugins')
91
-		and is_array($liste_boutons_plugins = boutons_plugins())
92
-	) {
93
-		$liste_boutons = &$liste_boutons_plugins;
94
-	}
88
+    // ajouter les boutons issus des plugin via paquet.xml
89
+    if (
90
+        function_exists('boutons_plugins')
91
+        and is_array($liste_boutons_plugins = boutons_plugins())
92
+    ) {
93
+        $liste_boutons = &$liste_boutons_plugins;
94
+    }
95 95
 
96
-	foreach ($liste_boutons as $id => $infos) {
97
-		$parent = '';
98
-		// les boutons principaux ne sont pas soumis a autorisation
99
-		if (
100
-			!isset($infos['parent'])
101
-			or !($parent = $infos['parent'])
102
-			or !$autorise
103
-			or autoriser('menu', "_$id", 0, null, ['contexte' => $contexte])
104
-		) {
105
-			if (
106
-				$parent
107
-				and $parent = preg_replace(',^bando_,', 'menu_', $parent)
108
-				and isset($boutons_admin[$parent])
109
-			) {
110
-				if (!is_array($boutons_admin[$parent]->sousmenu)) {
111
-					$boutons_admin[$parent]->sousmenu = [];
112
-				}
113
-				$position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
114
-				if ($position < 0) {
115
-					$position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
116
-				}
117
-				$boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
118
-					+ [
119
-						$id => new Bouton(
120
-							($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
121
-							$infos['titre'],  // titre
122
-							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
123
-							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
124
-						)
125
-					]
126
-					+ array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
127
-			}
128
-			if (
129
-				!$parent
130
-				// provisoire, eviter les vieux boutons
131
-				and (!in_array($id, ['forum', 'statistiques_visites']))
132
-				and (!$autorise or autoriser('menugrandeentree', "_$id", 0, null, ['contexte' => $contexte]))
133
-			) {
134
-				$position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
135
-				$boutons_admin = array_slice($boutons_admin, 0, $position)
136
-					+ [
137
-						$id => new Bouton(
138
-							($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
139
-							$infos['titre'],  // titre
140
-							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
141
-							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
142
-						)
143
-					]
144
-					+ array_slice($boutons_admin, $position, 100);
145
-			}
146
-		}
147
-	}
148
-	$boutons_admin = pipeline('ajouter_menus', $boutons_admin);
96
+    foreach ($liste_boutons as $id => $infos) {
97
+        $parent = '';
98
+        // les boutons principaux ne sont pas soumis a autorisation
99
+        if (
100
+            !isset($infos['parent'])
101
+            or !($parent = $infos['parent'])
102
+            or !$autorise
103
+            or autoriser('menu', "_$id", 0, null, ['contexte' => $contexte])
104
+        ) {
105
+            if (
106
+                $parent
107
+                and $parent = preg_replace(',^bando_,', 'menu_', $parent)
108
+                and isset($boutons_admin[$parent])
109
+            ) {
110
+                if (!is_array($boutons_admin[$parent]->sousmenu)) {
111
+                    $boutons_admin[$parent]->sousmenu = [];
112
+                }
113
+                $position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
114
+                if ($position < 0) {
115
+                    $position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
116
+                }
117
+                $boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
118
+                    + [
119
+                        $id => new Bouton(
120
+                            ($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
121
+                            $infos['titre'],  // titre
122
+                            (isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
123
+                            (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
124
+                        )
125
+                    ]
126
+                    + array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
127
+            }
128
+            if (
129
+                !$parent
130
+                // provisoire, eviter les vieux boutons
131
+                and (!in_array($id, ['forum', 'statistiques_visites']))
132
+                and (!$autorise or autoriser('menugrandeentree', "_$id", 0, null, ['contexte' => $contexte]))
133
+            ) {
134
+                $position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
135
+                $boutons_admin = array_slice($boutons_admin, 0, $position)
136
+                    + [
137
+                        $id => new Bouton(
138
+                            ($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
139
+                            $infos['titre'],  // titre
140
+                            (isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
141
+                            (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
142
+                        )
143
+                    ]
144
+                    + array_slice($boutons_admin, $position, 100);
145
+            }
146
+        }
147
+    }
148
+    $boutons_admin = pipeline('ajouter_menus', $boutons_admin);
149 149
 
150
-	// définir les favoris et positions d’origine
151
-	if ($boutons_admin) {
152
-		$menus_favoris = obtenir_menus_favoris();
153
-		$i = 1;
154
-		foreach ($boutons_admin as $key => $menu) {
155
-			$menu->favori = table_valeur($menus_favoris, $key, false);
156
-			$menu->position = $i++;
157
-			if ($menu->sousmenu) {
158
-				$j = 1;
159
-				foreach ($menu->sousmenu as $key => $bouton) {
160
-					$bouton->favori = table_valeur($menus_favoris, $key, false);
161
-					$bouton->position = $j++;
162
-				}
163
-			}
164
-		}
165
-	}
150
+    // définir les favoris et positions d’origine
151
+    if ($boutons_admin) {
152
+        $menus_favoris = obtenir_menus_favoris();
153
+        $i = 1;
154
+        foreach ($boutons_admin as $key => $menu) {
155
+            $menu->favori = table_valeur($menus_favoris, $key, false);
156
+            $menu->position = $i++;
157
+            if ($menu->sousmenu) {
158
+                $j = 1;
159
+                foreach ($menu->sousmenu as $key => $bouton) {
160
+                    $bouton->favori = table_valeur($menus_favoris, $key, false);
161
+                    $bouton->position = $j++;
162
+                }
163
+            }
164
+        }
165
+    }
166 166
 
167
-	return $boutons_admin;
167
+    return $boutons_admin;
168 168
 }
169 169
 
170 170
 /**
@@ -176,22 +176,22 @@  discard block
 block discarded – undo
176 176
  * @return Bouton[]
177 177
  */
178 178
 function trier_boutons_enfants_par_alpha($menus, $avec_favoris = false) {
179
-	foreach ($menus as $menu) {
180
-		if ($menu->sousmenu) {
181
-			$libelles = $isfavoris = $favoris = [];
182
-			foreach ($menu->sousmenu as $key => $item) {
183
-				$libelles[$key] = strtolower(translitteration(_T($item->libelle)));
184
-				$isfavoris[$key] = (bool)$item->favori;
185
-				$favoris[$key] = $item->favori;
186
-			}
187
-			if ($avec_favoris) {
188
-				array_multisort($isfavoris, SORT_DESC, $favoris, SORT_ASC, $libelles, SORT_ASC, $menu->sousmenu);
189
-			} else {
190
-				array_multisort($libelles, SORT_ASC, $menu->sousmenu);
191
-			}
192
-		}
193
-	}
194
-	return $menus;
179
+    foreach ($menus as $menu) {
180
+        if ($menu->sousmenu) {
181
+            $libelles = $isfavoris = $favoris = [];
182
+            foreach ($menu->sousmenu as $key => $item) {
183
+                $libelles[$key] = strtolower(translitteration(_T($item->libelle)));
184
+                $isfavoris[$key] = (bool)$item->favori;
185
+                $favoris[$key] = $item->favori;
186
+            }
187
+            if ($avec_favoris) {
188
+                array_multisort($isfavoris, SORT_DESC, $favoris, SORT_ASC, $libelles, SORT_ASC, $menu->sousmenu);
189
+            } else {
190
+                array_multisort($libelles, SORT_ASC, $menu->sousmenu);
191
+            }
192
+        }
193
+    }
194
+    return $menus;
195 195
 }
196 196
 
197 197
 /**
@@ -202,7 +202,7 @@  discard block
 block discarded – undo
202 202
  * @return Bouton[]
203 203
  */
204 204
 function trier_boutons_enfants_par_favoris_alpha($menus) {
205
-	return trier_boutons_enfants_par_alpha($menus, true);
205
+    return trier_boutons_enfants_par_alpha($menus, true);
206 206
 }
207 207
 
208 208
 
@@ -215,23 +215,23 @@  discard block
 block discarded – undo
215 215
  * @return string
216 216
  */
217 217
 function bandeau_creer_url($url, $args = '', $contexte = null) {
218
-	if (!preg_match(',[\/\?],', $url)) {
219
-		$url = generer_url_ecrire($url, $args, true);
220
-		// recuperer les parametres du contexte demande par l'url sous la forme
221
-		// &truc=@machin@
222
-		// @machin@ etant remplace par _request('machin')
223
-		$url = str_replace('&amp;', '&', $url);
224
-		while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
225
-			if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
226
-				$contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
227
-			}
228
-			$val = _request($matches[2], $contexte);
229
-			$url = parametre_url($url, $matches[1], $val ?: '', '&');
230
-		}
231
-		$url = str_replace('&', '&amp;', $url);
232
-	}
218
+    if (!preg_match(',[\/\?],', $url)) {
219
+        $url = generer_url_ecrire($url, $args, true);
220
+        // recuperer les parametres du contexte demande par l'url sous la forme
221
+        // &truc=@machin@
222
+        // @machin@ etant remplace par _request('machin')
223
+        $url = str_replace('&amp;', '&', $url);
224
+        while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
225
+            if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
226
+                $contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
227
+            }
228
+            $val = _request($matches[2], $contexte);
229
+            $url = parametre_url($url, $matches[1], $val ?: '', '&');
230
+        }
231
+        $url = str_replace('&', '&amp;', $url);
232
+    }
233 233
 
234
-	return $url;
234
+    return $url;
235 235
 }
236 236
 
237 237
 /**
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
  *     Code HTML du bandeau
242 242
  */
243 243
 function inc_bandeau_dist() {
244
-	return recuperer_fond('prive/squelettes/inclure/barre-nav', $_GET);
244
+    return recuperer_fond('prive/squelettes/inclure/barre-nav', $_GET);
245 245
 }
246 246
 
247 247
 
@@ -250,13 +250,13 @@  discard block
 block discarded – undo
250 250
  * @return array
251 251
  */
252 252
 function obtenir_menus_favoris() {
253
-	if (
254
-		isset($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
255
-		and is_array($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
256
-		and $GLOBALS['visiteur_session']['prefs']['menus_favoris']
257
-	) {
258
-		return $GLOBALS['visiteur_session']['prefs']['menus_favoris'];
259
-	}
260
-	$definir_menus_favoris = charger_fonction('definir_menus_favoris', 'inc');
261
-	return $definir_menus_favoris();
253
+    if (
254
+        isset($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
255
+        and is_array($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
256
+        and $GLOBALS['visiteur_session']['prefs']['menus_favoris']
257
+    ) {
258
+        return $GLOBALS['visiteur_session']['prefs']['menus_favoris'];
259
+    }
260
+    $definir_menus_favoris = charger_fonction('definir_menus_favoris', 'inc');
261
+    return $definir_menus_favoris();
262 262
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -50,7 +50,7 @@  discard block
 block discarded – undo
50 50
 			$_id = $e['id_table_objet'];
51 51
 			if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52 52
 				$table = $e['table_objet_sql'];
53
-				$row = sql_fetsel('*', $table, "$_id=" . intval($id));
53
+				$row = sql_fetsel('*', $table, "$_id=".intval($id));
54 54
 				if (isset($row['id_rubrique'])) {
55 55
 					$contexte['id_rubrique'] = $row['id_rubrique'];
56 56
 					if (isset($row['id_secteur'])) {
@@ -117,8 +117,8 @@  discard block
 block discarded – undo
117 117
 				$boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
118 118
 					+ [
119 119
 						$id => new Bouton(
120
-							($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
121
-							$infos['titre'],  // titre
120
+							($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '', // icone
121
+							$infos['titre'], // titre
122 122
 							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
123 123
 							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
124 124
 						)
@@ -135,8 +135,8 @@  discard block
 block discarded – undo
135 135
 				$boutons_admin = array_slice($boutons_admin, 0, $position)
136 136
 					+ [
137 137
 						$id => new Bouton(
138
-							($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
139
-							$infos['titre'],  // titre
138
+							($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '', // icone
139
+							$infos['titre'], // titre
140 140
 							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
141 141
 							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
142 142
 						)
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
 			$libelles = $isfavoris = $favoris = [];
182 182
 			foreach ($menu->sousmenu as $key => $item) {
183 183
 				$libelles[$key] = strtolower(translitteration(_T($item->libelle)));
184
-				$isfavoris[$key] = (bool)$item->favori;
184
+				$isfavoris[$key] = (bool) $item->favori;
185 185
 				$favoris[$key] = $item->favori;
186 186
 			}
187 187
 			if ($avec_favoris) {
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
 		$url = str_replace('&amp;', '&', $url);
224 224
 		while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
225 225
 			if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
226
-				$contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
226
+				$contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval($contexte['id_rubrique']));
227 227
 			}
228 228
 			$val = _request($matches[2], $contexte);
229 229
 			$url = parametre_url($url, $matches[1], $val ?: '', '&');
Please login to merge, or discard this patch.
ecrire/inc/filtres_images_mini.php 2 patches
Indentation   +316 added lines, -316 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
  */
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 include_spip('inc/filtres_images_lib_mini'); // par precaution
24 24
 
@@ -31,161 +31,161 @@  discard block
 block discarded – undo
31 31
  *    Le code hexadécimal de la couleur (sans le #) ou le code couleur textuel si non trouvé
32 32
  */
33 33
 function couleur_html_to_hex($couleur) {
34
-	$couleurs_html = [
35
-		'aliceblue' => 'F0F8FF',
36
-		'antiquewhite' => 'FAEBD7',
37
-		'aqua' => '00FFFF',
38
-		'aquamarine' => '7FFFD4',
39
-		'azure' => 'F0FFFF',
40
-		'beige' => 'F5F5DC',
41
-		'bisque' => 'FFE4C4',
42
-		'black' => '000000',
43
-		'blanchedalmond' => 'FFEBCD',
44
-		'blue' => '0000FF',
45
-		'blueviolet' => '8A2BE2',
46
-		'brown' => 'A52A2A',
47
-		'burlywood' => 'DEB887',
48
-		'cadetblue' => '5F9EA0',
49
-		'chartreuse' => '7FFF00',
50
-		'chocolate' => 'D2691E',
51
-		'coral' => 'FF7F50',
52
-		'cornflowerblue' => '6495ED',
53
-		'cornsilk' => 'FFF8DC',
54
-		'crimson' => 'DC143C',
55
-		'cyan' => '00FFFF',
56
-		'darkblue' => '00008B',
57
-		'darkcyan' => '008B8B',
58
-		'darkgoldenrod' => 'B8860B',
59
-		'darkgray' => 'A9A9A9',
60
-		'darkgreen' => '006400',
61
-		'darkgrey' => 'A9A9A9',
62
-		'darkkhaki' => 'BDB76B',
63
-		'darkmagenta' => '8B008B',
64
-		'darkolivegreen' => '556B2F',
65
-		'darkorange' => 'FF8C00',
66
-		'darkorchid' => '9932CC',
67
-		'darkred' => '8B0000',
68
-		'darksalmon' => 'E9967A',
69
-		'darkseagreen' => '8FBC8F',
70
-		'darkslateblue' => '483D8B',
71
-		'darkslategray' => '2F4F4F',
72
-		'darkslategrey' => '2F4F4F',
73
-		'darkturquoise' => '00CED1',
74
-		'darkviolet' => '9400D3',
75
-		'deeppink' => 'FF1493',
76
-		'deepskyblue' => '00BFFF',
77
-		'dimgray' => '696969',
78
-		'dimgrey' => '696969',
79
-		'dodgerblue' => '1E90FF',
80
-		'firebrick' => 'B22222',
81
-		'floralwhite' => 'FFFAF0',
82
-		'forestgreen' => '228B22',
83
-		'fuchsia' => 'FF00FF',
84
-		'gainsboro' => 'DCDCDC',
85
-		'ghostwhite' => 'F8F8FF',
86
-		'gold' => 'FFD700',
87
-		'goldenrod' => 'DAA520',
88
-		'gray' => '808080',
89
-		'green' => '008000',
90
-		'greenyellow' => 'ADFF2F',
91
-		'grey' => '808080',
92
-		'honeydew' => 'F0FFF0',
93
-		'hotpink' => 'FF69B4',
94
-		'indianred' => 'CD5C5C',
95
-		'indigo' => '4B0082',
96
-		'ivory' => 'FFFFF0',
97
-		'khaki' => 'F0E68C',
98
-		'lavender' => 'E6E6FA',
99
-		'lavenderblush' => 'FFF0F5',
100
-		'lawngreen' => '7CFC00',
101
-		'lemonchiffon' => 'FFFACD',
102
-		'lightblue' => 'ADD8E6',
103
-		'lightcoral' => 'F08080',
104
-		'lightcyan' => 'E0FFFF',
105
-		'lightgoldenrodyellow' => 'FAFAD2',
106
-		'lightgray' => 'D3D3D3',
107
-		'lightgreen' => '90EE90',
108
-		'lightgrey' => 'D3D3D3',
109
-		'lightpink' => 'FFB6C1',
110
-		'lightsalmon' => 'FFA07A',
111
-		'lightseagreen' => '20B2AA',
112
-		'lightskyblue' => '87CEFA',
113
-		'lightslategray' => '778899',
114
-		'lightslategrey' => '778899',
115
-		'lightsteelblue' => 'B0C4DE',
116
-		'lightyellow' => 'FFFFE0',
117
-		'lime' => '00FF00',
118
-		'limegreen' => '32CD32',
119
-		'linen' => 'FAF0E6',
120
-		'magenta' => 'FF00FF',
121
-		'maroon' => '800000',
122
-		'mediumaquamarine' => '66CDAA',
123
-		'mediumblue' => '0000CD',
124
-		'mediumorchid' => 'BA55D3',
125
-		'mediumpurple' => '9370DB',
126
-		'mediumseagreen' => '3CB371',
127
-		'mediumslateblue' => '7B68EE',
128
-		'mediumspringgreen' => '00FA9A',
129
-		'mediumturquoise' => '48D1CC',
130
-		'mediumvioletred' => 'C71585',
131
-		'midnightblue' => '191970',
132
-		'mintcream' => 'F5FFFA',
133
-		'mistyrose' => 'FFE4E1',
134
-		'moccasin' => 'FFE4B5',
135
-		'navajowhite' => 'FFDEAD',
136
-		'navy' => '000080',
137
-		'oldlace' => 'FDF5E6',
138
-		'olive' => '808000',
139
-		'olivedrab' => '6B8E23',
140
-		'orange' => 'FFA500',
141
-		'orangered' => 'FF4500',
142
-		'orchid' => 'DA70D6',
143
-		'palegoldenrod' => 'EEE8AA',
144
-		'palegreen' => '98FB98',
145
-		'paleturquoise' => 'AFEEEE',
146
-		'palevioletred' => 'DB7093',
147
-		'papayawhip' => 'FFEFD5',
148
-		'peachpuff' => 'FFDAB9',
149
-		'peru' => 'CD853F',
150
-		'pink' => 'FFC0CB',
151
-		'plum' => 'DDA0DD',
152
-		'powderblue' => 'B0E0E6',
153
-		'purple' => '800080',
154
-		'rebeccapurple' => '663399',
155
-		'red' => 'FF0000',
156
-		'rosybrown' => 'BC8F8F',
157
-		'royalblue' => '4169E1',
158
-		'saddlebrown' => '8B4513',
159
-		'salmon' => 'FA8072',
160
-		'sandybrown' => 'F4A460',
161
-		'seagreen' => '2E8B57',
162
-		'seashell' => 'FFF5EE',
163
-		'sienna' => 'A0522D',
164
-		'silver' => 'C0C0C0',
165
-		'skyblue' => '87CEEB',
166
-		'slateblue' => '6A5ACD',
167
-		'slategray' => '708090',
168
-		'slategrey' => '708090',
169
-		'snow' => 'FFFAFA',
170
-		'springgreen' => '00FF7F',
171
-		'steelblue' => '4682B4',
172
-		'tan' => 'D2B48C',
173
-		'teal' => '008080',
174
-		'thistle' => 'D8BFD8',
175
-		'tomato' => 'FF6347',
176
-		'turquoise' => '40E0D0',
177
-		'violet' => 'EE82EE',
178
-		'wheat' => 'F5DEB3',
179
-		'white' => 'FFFFFF',
180
-		'whitesmoke' => 'F5F5F5',
181
-		'yellow' => 'FFFF00',
182
-		'yellowgreen' => '9ACD32',
183
-	];
184
-	if (isset($couleurs_html[$lc = strtolower($couleur)])) {
185
-		return $couleurs_html[$lc];
186
-	}
187
-
188
-	return $couleur;
34
+    $couleurs_html = [
35
+        'aliceblue' => 'F0F8FF',
36
+        'antiquewhite' => 'FAEBD7',
37
+        'aqua' => '00FFFF',
38
+        'aquamarine' => '7FFFD4',
39
+        'azure' => 'F0FFFF',
40
+        'beige' => 'F5F5DC',
41
+        'bisque' => 'FFE4C4',
42
+        'black' => '000000',
43
+        'blanchedalmond' => 'FFEBCD',
44
+        'blue' => '0000FF',
45
+        'blueviolet' => '8A2BE2',
46
+        'brown' => 'A52A2A',
47
+        'burlywood' => 'DEB887',
48
+        'cadetblue' => '5F9EA0',
49
+        'chartreuse' => '7FFF00',
50
+        'chocolate' => 'D2691E',
51
+        'coral' => 'FF7F50',
52
+        'cornflowerblue' => '6495ED',
53
+        'cornsilk' => 'FFF8DC',
54
+        'crimson' => 'DC143C',
55
+        'cyan' => '00FFFF',
56
+        'darkblue' => '00008B',
57
+        'darkcyan' => '008B8B',
58
+        'darkgoldenrod' => 'B8860B',
59
+        'darkgray' => 'A9A9A9',
60
+        'darkgreen' => '006400',
61
+        'darkgrey' => 'A9A9A9',
62
+        'darkkhaki' => 'BDB76B',
63
+        'darkmagenta' => '8B008B',
64
+        'darkolivegreen' => '556B2F',
65
+        'darkorange' => 'FF8C00',
66
+        'darkorchid' => '9932CC',
67
+        'darkred' => '8B0000',
68
+        'darksalmon' => 'E9967A',
69
+        'darkseagreen' => '8FBC8F',
70
+        'darkslateblue' => '483D8B',
71
+        'darkslategray' => '2F4F4F',
72
+        'darkslategrey' => '2F4F4F',
73
+        'darkturquoise' => '00CED1',
74
+        'darkviolet' => '9400D3',
75
+        'deeppink' => 'FF1493',
76
+        'deepskyblue' => '00BFFF',
77
+        'dimgray' => '696969',
78
+        'dimgrey' => '696969',
79
+        'dodgerblue' => '1E90FF',
80
+        'firebrick' => 'B22222',
81
+        'floralwhite' => 'FFFAF0',
82
+        'forestgreen' => '228B22',
83
+        'fuchsia' => 'FF00FF',
84
+        'gainsboro' => 'DCDCDC',
85
+        'ghostwhite' => 'F8F8FF',
86
+        'gold' => 'FFD700',
87
+        'goldenrod' => 'DAA520',
88
+        'gray' => '808080',
89
+        'green' => '008000',
90
+        'greenyellow' => 'ADFF2F',
91
+        'grey' => '808080',
92
+        'honeydew' => 'F0FFF0',
93
+        'hotpink' => 'FF69B4',
94
+        'indianred' => 'CD5C5C',
95
+        'indigo' => '4B0082',
96
+        'ivory' => 'FFFFF0',
97
+        'khaki' => 'F0E68C',
98
+        'lavender' => 'E6E6FA',
99
+        'lavenderblush' => 'FFF0F5',
100
+        'lawngreen' => '7CFC00',
101
+        'lemonchiffon' => 'FFFACD',
102
+        'lightblue' => 'ADD8E6',
103
+        'lightcoral' => 'F08080',
104
+        'lightcyan' => 'E0FFFF',
105
+        'lightgoldenrodyellow' => 'FAFAD2',
106
+        'lightgray' => 'D3D3D3',
107
+        'lightgreen' => '90EE90',
108
+        'lightgrey' => 'D3D3D3',
109
+        'lightpink' => 'FFB6C1',
110
+        'lightsalmon' => 'FFA07A',
111
+        'lightseagreen' => '20B2AA',
112
+        'lightskyblue' => '87CEFA',
113
+        'lightslategray' => '778899',
114
+        'lightslategrey' => '778899',
115
+        'lightsteelblue' => 'B0C4DE',
116
+        'lightyellow' => 'FFFFE0',
117
+        'lime' => '00FF00',
118
+        'limegreen' => '32CD32',
119
+        'linen' => 'FAF0E6',
120
+        'magenta' => 'FF00FF',
121
+        'maroon' => '800000',
122
+        'mediumaquamarine' => '66CDAA',
123
+        'mediumblue' => '0000CD',
124
+        'mediumorchid' => 'BA55D3',
125
+        'mediumpurple' => '9370DB',
126
+        'mediumseagreen' => '3CB371',
127
+        'mediumslateblue' => '7B68EE',
128
+        'mediumspringgreen' => '00FA9A',
129
+        'mediumturquoise' => '48D1CC',
130
+        'mediumvioletred' => 'C71585',
131
+        'midnightblue' => '191970',
132
+        'mintcream' => 'F5FFFA',
133
+        'mistyrose' => 'FFE4E1',
134
+        'moccasin' => 'FFE4B5',
135
+        'navajowhite' => 'FFDEAD',
136
+        'navy' => '000080',
137
+        'oldlace' => 'FDF5E6',
138
+        'olive' => '808000',
139
+        'olivedrab' => '6B8E23',
140
+        'orange' => 'FFA500',
141
+        'orangered' => 'FF4500',
142
+        'orchid' => 'DA70D6',
143
+        'palegoldenrod' => 'EEE8AA',
144
+        'palegreen' => '98FB98',
145
+        'paleturquoise' => 'AFEEEE',
146
+        'palevioletred' => 'DB7093',
147
+        'papayawhip' => 'FFEFD5',
148
+        'peachpuff' => 'FFDAB9',
149
+        'peru' => 'CD853F',
150
+        'pink' => 'FFC0CB',
151
+        'plum' => 'DDA0DD',
152
+        'powderblue' => 'B0E0E6',
153
+        'purple' => '800080',
154
+        'rebeccapurple' => '663399',
155
+        'red' => 'FF0000',
156
+        'rosybrown' => 'BC8F8F',
157
+        'royalblue' => '4169E1',
158
+        'saddlebrown' => '8B4513',
159
+        'salmon' => 'FA8072',
160
+        'sandybrown' => 'F4A460',
161
+        'seagreen' => '2E8B57',
162
+        'seashell' => 'FFF5EE',
163
+        'sienna' => 'A0522D',
164
+        'silver' => 'C0C0C0',
165
+        'skyblue' => '87CEEB',
166
+        'slateblue' => '6A5ACD',
167
+        'slategray' => '708090',
168
+        'slategrey' => '708090',
169
+        'snow' => 'FFFAFA',
170
+        'springgreen' => '00FF7F',
171
+        'steelblue' => '4682B4',
172
+        'tan' => 'D2B48C',
173
+        'teal' => '008080',
174
+        'thistle' => 'D8BFD8',
175
+        'tomato' => 'FF6347',
176
+        'turquoise' => '40E0D0',
177
+        'violet' => 'EE82EE',
178
+        'wheat' => 'F5DEB3',
179
+        'white' => 'FFFFFF',
180
+        'whitesmoke' => 'F5F5F5',
181
+        'yellow' => 'FFFF00',
182
+        'yellowgreen' => '9ACD32',
183
+    ];
184
+    if (isset($couleurs_html[$lc = strtolower($couleur)])) {
185
+        return $couleurs_html[$lc];
186
+    }
187
+
188
+    return $couleur;
189 189
 }
190 190
 
191 191
 /**
@@ -201,16 +201,16 @@  discard block
 block discarded – undo
201 201
  * @return string Couleur tel que "hsl(200, 40%, 34%)" ou valeur formattée
202 202
  */
203 203
 function couleur_hex_to_hsl($couleur, $format = null) {
204
-	$hsl = _couleur_hex_to_hsl($couleur);
205
-	$hsl = [
206
-		'h' => round($hsl['h'] * 360),
207
-		's' => round($hsl['s'] * 100) . '%',
208
-		'l' => round($hsl['l'] * 100) . '%'
209
-	];
210
-	if ($format === null) {
211
-		return "hsl({$hsl['h']}, {$hsl['s']}, {$hsl['l']})";
212
-	}
213
-	return str_replace(array_keys($hsl), $hsl, $format);
204
+    $hsl = _couleur_hex_to_hsl($couleur);
205
+    $hsl = [
206
+        'h' => round($hsl['h'] * 360),
207
+        's' => round($hsl['s'] * 100) . '%',
208
+        'l' => round($hsl['l'] * 100) . '%'
209
+    ];
210
+    if ($format === null) {
211
+        return "hsl({$hsl['h']}, {$hsl['s']}, {$hsl['l']})";
212
+    }
213
+    return str_replace(array_keys($hsl), $hsl, $format);
214 214
 }
215 215
 
216 216
 
@@ -227,16 +227,16 @@  discard block
 block discarded – undo
227 227
  * @return string Couleur tel que "rgb(200, 40, 84)" ou valeur formattée
228 228
  */
229 229
 function couleur_hex_to_rgb($couleur, $format = null) {
230
-	$rgb = _couleur_hex_to_dec($couleur);
231
-	$rgb = [
232
-		'r' => $rgb['red'],
233
-		'g' => $rgb['green'],
234
-		'b' => $rgb['blue'],
235
-	];
236
-	if ($format === null) {
237
-		return "rgb({$rgb['r']}, {$rgb['g']}, {$rgb['b']})";
238
-	}
239
-	return str_replace(array_keys($rgb), $rgb, $format);
230
+    $rgb = _couleur_hex_to_dec($couleur);
231
+    $rgb = [
232
+        'r' => $rgb['red'],
233
+        'g' => $rgb['green'],
234
+        'b' => $rgb['blue'],
235
+    ];
236
+    if ($format === null) {
237
+        return "rgb({$rgb['r']}, {$rgb['g']}, {$rgb['b']})";
238
+    }
239
+    return str_replace(array_keys($rgb), $rgb, $format);
240 240
 }
241 241
 
242 242
 /**
@@ -252,15 +252,15 @@  discard block
 block discarded – undo
252 252
  *    Code hexadécimal de la couleur plus foncée
253 253
  */
254 254
 function couleur_foncer($couleur, $coeff = 0.5) {
255
-	$couleurs = _couleur_hex_to_dec($couleur);
255
+    $couleurs = _couleur_hex_to_dec($couleur);
256 256
 
257
-	$red = $couleurs['red'] - round(($couleurs['red']) * $coeff);
258
-	$green = $couleurs['green'] - round(($couleurs['green']) * $coeff);
259
-	$blue = $couleurs['blue'] - round(($couleurs['blue']) * $coeff);
257
+    $red = $couleurs['red'] - round(($couleurs['red']) * $coeff);
258
+    $green = $couleurs['green'] - round(($couleurs['green']) * $coeff);
259
+    $blue = $couleurs['blue'] - round(($couleurs['blue']) * $coeff);
260 260
 
261
-	$couleur = _couleur_dec_to_hex($red, $green, $blue);
261
+    $couleur = _couleur_dec_to_hex($red, $green, $blue);
262 262
 
263
-	return $couleur;
263
+    return $couleur;
264 264
 }
265 265
 
266 266
 /**
@@ -276,15 +276,15 @@  discard block
 block discarded – undo
276 276
  *    Code hexadécimal de la couleur éclaircie
277 277
  */
278 278
 function couleur_eclaircir($couleur, $coeff = 0.5) {
279
-	$couleurs = _couleur_hex_to_dec($couleur);
279
+    $couleurs = _couleur_hex_to_dec($couleur);
280 280
 
281
-	$red = $couleurs['red'] + round((255 - $couleurs['red']) * $coeff);
282
-	$green = $couleurs['green'] + round((255 - $couleurs['green']) * $coeff);
283
-	$blue = $couleurs['blue'] + round((255 - $couleurs['blue']) * $coeff);
281
+    $red = $couleurs['red'] + round((255 - $couleurs['red']) * $coeff);
282
+    $green = $couleurs['green'] + round((255 - $couleurs['green']) * $coeff);
283
+    $blue = $couleurs['blue'] + round((255 - $couleurs['blue']) * $coeff);
284 284
 
285
-	$couleur = _couleur_dec_to_hex($red, $green, $blue);
285
+    $couleur = _couleur_dec_to_hex($red, $green, $blue);
286 286
 
287
-	return $couleur;
287
+    return $couleur;
288 288
 }
289 289
 
290 290
 /**
@@ -307,28 +307,28 @@  discard block
 block discarded – undo
307 307
  *    Le tag html `<img src=... />` avec une class `filtre_inactif` ou pas
308 308
  */
309 309
 function image_select($img, $width_min = 0, $height_min = 0, $width_max = 10000, $height_max = 1000) {
310
-	if (!$img) {
311
-		return $img;
312
-	}
313
-	[$h, $l] = taille_image($img);
314
-	$select = true;
315
-	if ($l < $width_min or $l > $width_max or $h < $height_min or $h > $height_max) {
316
-		$select = false;
317
-	}
318
-
319
-	$class = extraire_attribut($img, 'class');
320
-	$p = strpos($class, 'filtre_inactif');
321
-	if (($select == false) and ($p === false)) {
322
-		$class .= ' filtre_inactif';
323
-		$img = inserer_attribut($img, 'class', $class);
324
-	}
325
-	if (($select == true) and ($p !== false)) {
326
-		// no_image_filtrer : historique, a virer
327
-		$class = preg_replace(',\s*(filtre_inactif|no_image_filtrer),', '', $class);
328
-		$img = inserer_attribut($img, 'class', $class);
329
-	}
330
-
331
-	return $img;
310
+    if (!$img) {
311
+        return $img;
312
+    }
313
+    [$h, $l] = taille_image($img);
314
+    $select = true;
315
+    if ($l < $width_min or $l > $width_max or $h < $height_min or $h > $height_max) {
316
+        $select = false;
317
+    }
318
+
319
+    $class = extraire_attribut($img, 'class');
320
+    $p = strpos($class, 'filtre_inactif');
321
+    if (($select == false) and ($p === false)) {
322
+        $class .= ' filtre_inactif';
323
+        $img = inserer_attribut($img, 'class', $class);
324
+    }
325
+    if (($select == true) and ($p !== false)) {
326
+        // no_image_filtrer : historique, a virer
327
+        $class = preg_replace(',\s*(filtre_inactif|no_image_filtrer),', '', $class);
328
+        $img = inserer_attribut($img, 'class', $class);
329
+    }
330
+
331
+    return $img;
332 332
 }
333 333
 
334 334
 /**
@@ -376,45 +376,45 @@  discard block
 block discarded – undo
376 376
  *     Code HTML de l'image ou du texte.
377 377
  **/
378 378
 function image_passe_partout(
379
-	$img,
380
-	$taille_x = -1,
381
-	$taille_y = -1,
382
-	$force = false,
383
-	$cherche_image = false,
384
-	$process = 'AUTO'
379
+    $img,
380
+    $taille_x = -1,
381
+    $taille_y = -1,
382
+    $force = false,
383
+    $cherche_image = false,
384
+    $process = 'AUTO'
385 385
 ) {
386
-	// PHP 7+ type hint
387
-	$img = (string)$img;
388
-	$taille_x = (int)$taille_x;
389
-	$taille_y = (int)$taille_y;
390
-	$force = (bool)$force;
391
-	$process = (string)$process;
392
-
393
-	if (!$img) {
394
-		return '';
395
-	}
396
-	[$hauteur, $largeur] = taille_image($img);
397
-	if ($taille_x === -1) {
398
-		$taille_x = $GLOBALS['meta']['taille_preview'] ?? 150;
399
-	}
400
-	if ($taille_y === -1) {
401
-		$taille_y = $taille_x;
402
-	}
403
-
404
-	if ($taille_x === 0 and $taille_y > 0) {
405
-		$taille_x = 1;
406
-	} # {0,300} -> c'est 300 qui compte
407
-	elseif ($taille_x > 0 and $taille_y === 0) {
408
-		$taille_y = 1;
409
-	} # {300,0} -> c'est 300 qui compte
410
-	elseif ($taille_x == 0 and $taille_y === 0) {
411
-		return '';
412
-	}
413
-
414
-	[$destWidth, $destHeight, $ratio] = ratio_passe_partout($largeur ?? 0, $hauteur ?? 0, $taille_x, $taille_y);
415
-	$fonction = ['image_passe_partout', func_get_args()];
416
-
417
-	return process_image_reduire($fonction, $img, $destWidth, $destHeight, $force, $process);
386
+    // PHP 7+ type hint
387
+    $img = (string)$img;
388
+    $taille_x = (int)$taille_x;
389
+    $taille_y = (int)$taille_y;
390
+    $force = (bool)$force;
391
+    $process = (string)$process;
392
+
393
+    if (!$img) {
394
+        return '';
395
+    }
396
+    [$hauteur, $largeur] = taille_image($img);
397
+    if ($taille_x === -1) {
398
+        $taille_x = $GLOBALS['meta']['taille_preview'] ?? 150;
399
+    }
400
+    if ($taille_y === -1) {
401
+        $taille_y = $taille_x;
402
+    }
403
+
404
+    if ($taille_x === 0 and $taille_y > 0) {
405
+        $taille_x = 1;
406
+    } # {0,300} -> c'est 300 qui compte
407
+    elseif ($taille_x > 0 and $taille_y === 0) {
408
+        $taille_y = 1;
409
+    } # {300,0} -> c'est 300 qui compte
410
+    elseif ($taille_x == 0 and $taille_y === 0) {
411
+        return '';
412
+    }
413
+
414
+    [$destWidth, $destHeight, $ratio] = ratio_passe_partout($largeur ?? 0, $hauteur ?? 0, $taille_x, $taille_y);
415
+    $fonction = ['image_passe_partout', func_get_args()];
416
+
417
+    return process_image_reduire($fonction, $img, $destWidth, $destHeight, $force, $process);
418 418
 }
419 419
 
420 420
 /**
@@ -457,44 +457,44 @@  discard block
 block discarded – undo
457 457
  *     Code HTML de l'image ou du texte.
458 458
  **/
459 459
 function image_reduire(
460
-	$img,
461
-	$taille = -1,
462
-	$taille_y = -1,
463
-	$force = false,
464
-	$cherche_image = false,
465
-	$process = 'AUTO'
460
+    $img,
461
+    $taille = -1,
462
+    $taille_y = -1,
463
+    $force = false,
464
+    $cherche_image = false,
465
+    $process = 'AUTO'
466 466
 ) {
467
-	// PHP 7+ type hint
468
-	$img = (string)$img;
469
-	$taille = (int)$taille;
470
-	$taille_y = (int)$taille_y;
471
-	$force = (bool)$force;
472
-	$process = (string)$process;
473
-
474
-	// Determiner la taille x,y maxi
475
-	// prendre le reglage de previsu par defaut
476
-	if ($taille === -1) {
477
-		$taille = (isset($GLOBALS['meta']['taille_preview']) and intval($GLOBALS['meta']['taille_preview']))
478
-			? intval($GLOBALS['meta']['taille_preview'])
479
-			: 150;
480
-	}
481
-	if ($taille_y === -1) {
482
-		$taille_y = $taille;
483
-	}
484
-
485
-	if ($taille === 0 and $taille_y > 0) {
486
-		$taille = 10000;
487
-	} # {0,300} -> c'est 300 qui compte
488
-	elseif ($taille > 0 and $taille_y === 0) {
489
-		$taille_y = 10000;
490
-	} # {300,0} -> c'est 300 qui compte
491
-	elseif ($taille == 0 and $taille_y === 0) {
492
-		return '';
493
-	}
494
-
495
-	$fonction = ['image_reduire', func_get_args()];
496
-
497
-	return process_image_reduire($fonction, $img, $taille, $taille_y, $force, $process);
467
+    // PHP 7+ type hint
468
+    $img = (string)$img;
469
+    $taille = (int)$taille;
470
+    $taille_y = (int)$taille_y;
471
+    $force = (bool)$force;
472
+    $process = (string)$process;
473
+
474
+    // Determiner la taille x,y maxi
475
+    // prendre le reglage de previsu par defaut
476
+    if ($taille === -1) {
477
+        $taille = (isset($GLOBALS['meta']['taille_preview']) and intval($GLOBALS['meta']['taille_preview']))
478
+            ? intval($GLOBALS['meta']['taille_preview'])
479
+            : 150;
480
+    }
481
+    if ($taille_y === -1) {
482
+        $taille_y = $taille;
483
+    }
484
+
485
+    if ($taille === 0 and $taille_y > 0) {
486
+        $taille = 10000;
487
+    } # {0,300} -> c'est 300 qui compte
488
+    elseif ($taille > 0 and $taille_y === 0) {
489
+        $taille_y = 10000;
490
+    } # {300,0} -> c'est 300 qui compte
491
+    elseif ($taille == 0 and $taille_y === 0) {
492
+        return '';
493
+    }
494
+
495
+    $fonction = ['image_reduire', func_get_args()];
496
+
497
+    return process_image_reduire($fonction, $img, $taille, $taille_y, $force, $process);
498 498
 }
499 499
 
500 500
 /**
@@ -505,16 +505,16 @@  discard block
 block discarded – undo
505 505
  *
506 506
  **/
507 507
 function image_recadre_avec_fallback(
508
-	$im,
509
-	$width,
510
-	$height = '-',
511
-	$position = 'focus',
512
-	$background_color = 'white'
508
+    $im,
509
+    $width,
510
+    $height = '-',
511
+    $position = 'focus',
512
+    $background_color = 'white'
513 513
 ) {
514
-	if (function_exists('image_recadre') && ($GLOBALS['meta']['image_process'] ?? '') === 'gd2') {
515
-		return image_reduire(image_recadre($im, $width . ':' . $height, '-', $position, $background_color), $width, $height);
516
-	} else { return image_passe_partout($im, $width, $height);
517
-	}
514
+    if (function_exists('image_recadre') && ($GLOBALS['meta']['image_process'] ?? '') === 'gd2') {
515
+        return image_reduire(image_recadre($im, $width . ':' . $height, '-', $position, $background_color), $width, $height);
516
+    } else { return image_passe_partout($im, $width, $height);
517
+    }
518 518
 }
519 519
 
520 520
 /**
@@ -532,25 +532,25 @@  discard block
 block discarded – undo
532 532
  *     Code HTML de l'image ou du texte.
533 533
  **/
534 534
 function image_reduire_par($img, $val = 1, $force = false) {
535
-	// PHP 7+ type hint
536
-	$img = (string)$img;
537
-	$val = (int)$val;
538
-	$force = (bool)$force;
535
+    // PHP 7+ type hint
536
+    $img = (string)$img;
537
+    $val = (int)$val;
538
+    $force = (bool)$force;
539 539
 
540
-	[$hauteur, $largeur] = taille_image($img);
540
+    [$hauteur, $largeur] = taille_image($img);
541 541
 
542
-	$l = round($largeur / $val);
543
-	$h = round($hauteur / $val);
542
+    $l = round($largeur / $val);
543
+    $h = round($hauteur / $val);
544 544
 
545
-	if ($l > $h) {
546
-		$h = 0;
547
-	} else {
548
-		$l = 0;
549
-	}
545
+    if ($l > $h) {
546
+        $h = 0;
547
+    } else {
548
+        $l = 0;
549
+    }
550 550
 
551
-	$img = image_reduire($img, $l, $h, $force);
551
+    $img = image_reduire($img, $l, $h, $force);
552 552
 
553
-	return $img;
553
+    return $img;
554 554
 }
555 555
 
556 556
 /**
@@ -573,10 +573,10 @@  discard block
 block discarded – undo
573 573
  *      Couleur en écriture hexadécimale.
574 574
 **/
575 575
 function filtre_couleur_saturation_dist($couleur, $val, $strict = false) {
576
-	if (function_exists('couleur_saturation')) {
577
-		return couleur_saturation($couleur, $val, $strict);
578
-	}
579
-	return $couleur;
576
+    if (function_exists('couleur_saturation')) {
577
+        return couleur_saturation($couleur, $val, $strict);
578
+    }
579
+    return $couleur;
580 580
 }
581 581
 
582 582
 /**
@@ -597,8 +597,8 @@  discard block
 block discarded – undo
597 597
  *      Couleur en écriture hexadécimale.
598 598
 **/
599 599
 function filtre_couleur_luminance_dist($couleur, $val) {
600
-	if (function_exists('couleur_luminance')) {
601
-		return couleur_luminance($couleur, $val);
602
-	}
603
-	return $couleur;
600
+    if (function_exists('couleur_luminance')) {
601
+        return couleur_luminance($couleur, $val);
602
+    }
603
+    return $couleur;
604 604
 }
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -204,8 +204,8 @@  discard block
 block discarded – undo
204 204
 	$hsl = _couleur_hex_to_hsl($couleur);
205 205
 	$hsl = [
206 206
 		'h' => round($hsl['h'] * 360),
207
-		's' => round($hsl['s'] * 100) . '%',
208
-		'l' => round($hsl['l'] * 100) . '%'
207
+		's' => round($hsl['s'] * 100).'%',
208
+		'l' => round($hsl['l'] * 100).'%'
209 209
 	];
210 210
 	if ($format === null) {
211 211
 		return "hsl({$hsl['h']}, {$hsl['s']}, {$hsl['l']})";
@@ -384,11 +384,11 @@  discard block
 block discarded – undo
384 384
 	$process = 'AUTO'
385 385
 ) {
386 386
 	// PHP 7+ type hint
387
-	$img = (string)$img;
388
-	$taille_x = (int)$taille_x;
389
-	$taille_y = (int)$taille_y;
390
-	$force = (bool)$force;
391
-	$process = (string)$process;
387
+	$img = (string) $img;
388
+	$taille_x = (int) $taille_x;
389
+	$taille_y = (int) $taille_y;
390
+	$force = (bool) $force;
391
+	$process = (string) $process;
392 392
 
393 393
 	if (!$img) {
394 394
 		return '';
@@ -465,11 +465,11 @@  discard block
 block discarded – undo
465 465
 	$process = 'AUTO'
466 466
 ) {
467 467
 	// PHP 7+ type hint
468
-	$img = (string)$img;
469
-	$taille = (int)$taille;
470
-	$taille_y = (int)$taille_y;
471
-	$force = (bool)$force;
472
-	$process = (string)$process;
468
+	$img = (string) $img;
469
+	$taille = (int) $taille;
470
+	$taille_y = (int) $taille_y;
471
+	$force = (bool) $force;
472
+	$process = (string) $process;
473 473
 
474 474
 	// Determiner la taille x,y maxi
475 475
 	// prendre le reglage de previsu par defaut
@@ -512,7 +512,7 @@  discard block
 block discarded – undo
512 512
 	$background_color = 'white'
513 513
 ) {
514 514
 	if (function_exists('image_recadre') && ($GLOBALS['meta']['image_process'] ?? '') === 'gd2') {
515
-		return image_reduire(image_recadre($im, $width . ':' . $height, '-', $position, $background_color), $width, $height);
515
+		return image_reduire(image_recadre($im, $width.':'.$height, '-', $position, $background_color), $width, $height);
516 516
 	} else { return image_passe_partout($im, $width, $height);
517 517
 	}
518 518
 }
@@ -533,9 +533,9 @@  discard block
 block discarded – undo
533 533
  **/
534 534
 function image_reduire_par($img, $val = 1, $force = false) {
535 535
 	// PHP 7+ type hint
536
-	$img = (string)$img;
537
-	$val = (int)$val;
538
-	$force = (bool)$force;
536
+	$img = (string) $img;
537
+	$val = (int) $val;
538
+	$force = (bool) $force;
539 539
 
540 540
 	[$hauteur, $largeur] = taille_image($img);
541 541
 
Please login to merge, or discard this patch.
ecrire/inc/log.php 2 patches
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 ?? _DIR_LOG)
41
-		. ($logname)
42
-		. ($logsuf ?? _FILE_LOG_SUFFIX);
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 = $debug[2]['function'] ?? '';
75
-		$debugverb = "$fi:L$l:$fu" . '():';
76
-	}
77
-
78
-	$m = date('Y-m-d H:i:s') . ' ' . ($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
-		defined('_FILE_LOG')
112
-		and ($logname !== _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 ?? _DIR_LOG)
41
+        . ($logname)
42
+        . ($logsuf ?? _FILE_LOG_SUFFIX);
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 = $debug[2]['function'] ?? '';
75
+        $debugverb = "$fi:L$l:$fu" . '():';
76
+    }
77
+
78
+    $m = date('Y-m-d H:i:s') . ' ' . ($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
+        defined('_FILE_LOG')
112
+        and ($logname !== _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.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -53,11 +53,11 @@  discard block
 block discarded – undo
53 53
 
54 54
 	// si spip_log() dans mes_options, ou repertoire log/ non present, poser dans tmp/
55 55
 	if (!defined('_DIR_LOG') or !$test_repertoire[$d]) {
56
-		$logfile = _DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES . $logname . '.log';
56
+		$logfile = _DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES.$logname.'.log';
57 57
 	}
58 58
 
59 59
 	$rotate = 0;
60
-	$pid = '(pid ' . @getmypid() . ')';
60
+	$pid = '(pid '.@getmypid().')';
61 61
 
62 62
 	// accepter spip_log( Array )
63 63
 	if (!is_string($message)) {
@@ -72,10 +72,10 @@  discard block
 block discarded – undo
72 72
 			$fi = substr($fi, strlen(_ROOT_RACINE));
73 73
 		}
74 74
 		$fu = $debug[2]['function'] ?? '';
75
-		$debugverb = "$fi:L$l:$fu" . '():';
75
+		$debugverb = "$fi:L$l:$fu".'():';
76 76
 	}
77 77
 
78
-	$m = date('Y-m-d H:i:s') . ' ' . ($GLOBALS['ip'] ?? '') . ' ' . $pid . ' '
78
+	$m = date('Y-m-d H:i:s').' '.($GLOBALS['ip'] ?? '').' '.$pid.' '
79 79
 		//distinguer les logs prives et publics dans les grep
80 80
 		. $debugverb
81 81
 		. (test_espace_prive() ? ':Pri:' : ':Pub:')
@@ -100,9 +100,9 @@  discard block
 block discarded – undo
100 100
 		$rotate-- > 0
101 101
 		and function_exists('spip_unlink')
102 102
 	) {
103
-		spip_unlink($logfile . '.' . $rotate);
103
+		spip_unlink($logfile.'.'.$rotate);
104 104
 		while ($rotate--) {
105
-			@rename($logfile . ($rotate ? '.' . $rotate : ''), $logfile . '.' . ($rotate + 1));
105
+			@rename($logfile.($rotate ? '.'.$rotate : ''), $logfile.'.'.($rotate + 1));
106 106
 		}
107 107
 	}
108 108
 
Please login to merge, or discard this patch.
ecrire/inc/envoyer_mail.php 3 patches
Indentation   +150 added lines, -150 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Mail
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('inc/charsets');
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
  * @return string
33 33
  */
34 34
 function nettoyer_titre_email($titre) {
35
-	return str_replace("\n", ' ', nettoyer_caracteres_mail(textebrut(corriger_typo($titre))));
35
+    return str_replace("\n", ' ', nettoyer_caracteres_mail(textebrut(corriger_typo($titre))));
36 36
 }
37 37
 
38 38
 /**
@@ -48,23 +48,23 @@  discard block
 block discarded – undo
48 48
  */
49 49
 function nettoyer_caracteres_mail($t) {
50 50
 
51
-	$t = filtrer_entites($t);
51
+    $t = filtrer_entites($t);
52 52
 
53
-	if ($GLOBALS['meta']['charset'] <> 'utf-8') {
54
-		$t = str_replace(
55
-			['&#8217;', '&#8220;', '&#8221;'],
56
-			["'", '"', '"'],
57
-			$t
58
-		);
59
-	}
53
+    if ($GLOBALS['meta']['charset'] <> 'utf-8') {
54
+        $t = str_replace(
55
+            ['&#8217;', '&#8220;', '&#8221;'],
56
+            ["'", '"', '"'],
57
+            $t
58
+        );
59
+    }
60 60
 
61
-	$t = str_replace(
62
-		['&mdash;', '&endash;'],
63
-		['--', '-'],
64
-		$t
65
-	);
61
+    $t = str_replace(
62
+        ['&mdash;', '&endash;'],
63
+        ['--', '-'],
64
+        $t
65
+    );
66 66
 
67
-	return $t;
67
+    return $t;
68 68
 }
69 69
 
70 70
 /**
@@ -97,86 +97,86 @@  discard block
 block discarded – undo
97 97
  */
98 98
 function inc_envoyer_mail_dist($destinataire, $sujet, $corps, $from = '', $headers = '') {
99 99
 
100
-	if (!email_valide($destinataire)) {
101
-		return false;
102
-	}
103
-	if ($destinataire == _T('info_mail_fournisseur')) {
104
-		return false;
105
-	} // tres fort
106
-
107
-	// Fournir si possible un Message-Id: conforme au RFC1036,
108
-	// sinon SpamAssassin denoncera un MSGID_FROM_MTA_HEADER
109
-
110
-	$email_envoi = $GLOBALS['meta']['email_envoi'];
111
-	if (!email_valide($email_envoi)) {
112
-		spip_log('Meta email_envoi invalide. Le mail sera probablement vu comme spam.');
113
-		$email_envoi = $destinataire;
114
-	}
115
-
116
-	$parts = '';
117
-	if (is_array($corps)) {
118
-		$texte = $corps['texte'];
119
-		$from = ($corps['from'] ?? $from);
120
-		$headers = ($corps['headers'] ?? $headers);
121
-		if (is_array($headers)) {
122
-			$headers = implode("\n", $headers);
123
-		}
124
-		if (isset($corps['pieces_jointes']) and function_exists('mail_embarquer_pieces_jointes')) {
125
-			$parts = mail_embarquer_pieces_jointes($corps['pieces_jointes']);
126
-		}
127
-	} else {
128
-		$texte = $corps;
129
-	}
130
-
131
-	if (!$from) {
132
-		$from = $email_envoi;
133
-	}
134
-
135
-	// ceci est la RegExp NO_REAL_NAME faisant hurler SpamAssassin
136
-	if (preg_match('/^["\s]*\<?\S+\@\S+\>?\s*$/', $from)) {
137
-		$from .= ' (' . str_replace(')', '', translitteration(str_replace('@', ' at ', $from))) . ')';
138
-	}
139
-
140
-	// nettoyer les &eacute; &#8217, &emdash; etc...
141
-	// les 'cliquer ici' etc sont a eviter;  voir:
142
-	// http://mta.org.ua/spamassassin-2.55/stuff/wiki.CustomRulesets/20050914/rules/french_rules.cf
143
-	$texte = nettoyer_caracteres_mail($texte);
144
-	$sujet = nettoyer_caracteres_mail($sujet);
145
-
146
-	// encoder le sujet si possible selon la RFC
147
-	if (init_mb_string()) {
148
-		# un bug de mb_string casse mb_encode_mimeheader si l'encoding interne
149
-		# est UTF-8 et le charset iso-8859-1 (constate php5-mac ; php4.3-debian)
150
-		$charset = $GLOBALS['meta']['charset'];
151
-		mb_internal_encoding($charset);
152
-		$sujet = mb_encode_mimeheader($sujet, $charset, 'Q', "\n");
153
-		mb_internal_encoding('utf-8');
154
-	}
155
-
156
-	if (function_exists('wordwrap') && (preg_match(',multipart/mixed,', $headers) == 0)) {
157
-		$texte = wordwrap($texte);
158
-	}
159
-
160
-	[$headers, $texte] = mail_normaliser_headers($headers, $from, $destinataire, $texte, $parts);
161
-
162
-	if (_OS_SERVEUR == 'windows') {
163
-		$texte = preg_replace("@\r*\n@", "\r\n", $texte);
164
-		$headers = preg_replace("@\r*\n@", "\r\n", $headers);
165
-		$sujet = preg_replace("@\r*\n@", "\r\n", $sujet);
166
-	}
167
-
168
-	spip_log("mail $destinataire\n$sujet\n$headers", 'mails');
169
-	// mode TEST : forcer l'email
170
-	if (defined('_TEST_EMAIL_DEST')) {
171
-		if (!_TEST_EMAIL_DEST) {
172
-			return false;
173
-		} else {
174
-			$texte = "Dest : $destinataire\r\n" . $texte;
175
-			$destinataire = _TEST_EMAIL_DEST;
176
-		}
177
-	}
178
-
179
-	return @mail($destinataire, $sujet, $texte, $headers);
100
+    if (!email_valide($destinataire)) {
101
+        return false;
102
+    }
103
+    if ($destinataire == _T('info_mail_fournisseur')) {
104
+        return false;
105
+    } // tres fort
106
+
107
+    // Fournir si possible un Message-Id: conforme au RFC1036,
108
+    // sinon SpamAssassin denoncera un MSGID_FROM_MTA_HEADER
109
+
110
+    $email_envoi = $GLOBALS['meta']['email_envoi'];
111
+    if (!email_valide($email_envoi)) {
112
+        spip_log('Meta email_envoi invalide. Le mail sera probablement vu comme spam.');
113
+        $email_envoi = $destinataire;
114
+    }
115
+
116
+    $parts = '';
117
+    if (is_array($corps)) {
118
+        $texte = $corps['texte'];
119
+        $from = ($corps['from'] ?? $from);
120
+        $headers = ($corps['headers'] ?? $headers);
121
+        if (is_array($headers)) {
122
+            $headers = implode("\n", $headers);
123
+        }
124
+        if (isset($corps['pieces_jointes']) and function_exists('mail_embarquer_pieces_jointes')) {
125
+            $parts = mail_embarquer_pieces_jointes($corps['pieces_jointes']);
126
+        }
127
+    } else {
128
+        $texte = $corps;
129
+    }
130
+
131
+    if (!$from) {
132
+        $from = $email_envoi;
133
+    }
134
+
135
+    // ceci est la RegExp NO_REAL_NAME faisant hurler SpamAssassin
136
+    if (preg_match('/^["\s]*\<?\S+\@\S+\>?\s*$/', $from)) {
137
+        $from .= ' (' . str_replace(')', '', translitteration(str_replace('@', ' at ', $from))) . ')';
138
+    }
139
+
140
+    // nettoyer les &eacute; &#8217, &emdash; etc...
141
+    // les 'cliquer ici' etc sont a eviter;  voir:
142
+    // http://mta.org.ua/spamassassin-2.55/stuff/wiki.CustomRulesets/20050914/rules/french_rules.cf
143
+    $texte = nettoyer_caracteres_mail($texte);
144
+    $sujet = nettoyer_caracteres_mail($sujet);
145
+
146
+    // encoder le sujet si possible selon la RFC
147
+    if (init_mb_string()) {
148
+        # un bug de mb_string casse mb_encode_mimeheader si l'encoding interne
149
+        # est UTF-8 et le charset iso-8859-1 (constate php5-mac ; php4.3-debian)
150
+        $charset = $GLOBALS['meta']['charset'];
151
+        mb_internal_encoding($charset);
152
+        $sujet = mb_encode_mimeheader($sujet, $charset, 'Q', "\n");
153
+        mb_internal_encoding('utf-8');
154
+    }
155
+
156
+    if (function_exists('wordwrap') && (preg_match(',multipart/mixed,', $headers) == 0)) {
157
+        $texte = wordwrap($texte);
158
+    }
159
+
160
+    [$headers, $texte] = mail_normaliser_headers($headers, $from, $destinataire, $texte, $parts);
161
+
162
+    if (_OS_SERVEUR == 'windows') {
163
+        $texte = preg_replace("@\r*\n@", "\r\n", $texte);
164
+        $headers = preg_replace("@\r*\n@", "\r\n", $headers);
165
+        $sujet = preg_replace("@\r*\n@", "\r\n", $sujet);
166
+    }
167
+
168
+    spip_log("mail $destinataire\n$sujet\n$headers", 'mails');
169
+    // mode TEST : forcer l'email
170
+    if (defined('_TEST_EMAIL_DEST')) {
171
+        if (!_TEST_EMAIL_DEST) {
172
+            return false;
173
+        } else {
174
+            $texte = "Dest : $destinataire\r\n" . $texte;
175
+            $destinataire = _TEST_EMAIL_DEST;
176
+        }
177
+    }
178
+
179
+    return @mail($destinataire, $sujet, $texte, $headers);
180 180
 }
181 181
 
182 182
 /**
@@ -190,58 +190,58 @@  discard block
 block discarded – undo
190 190
  * @return array
191 191
  */
192 192
 function mail_normaliser_headers($headers, $from, $to, $texte, $parts = '') {
193
-	$charset = $GLOBALS['meta']['charset'];
194
-
195
-	// Ajouter le Content-Type et consort s'il n'y est pas deja
196
-	if (strpos($headers, 'Content-Type: ') === false) {
197
-		$type =
198
-			"Content-Type: text/plain;charset=\"$charset\";\n" .
199
-			"Content-Transfer-Encoding: 8bit\n";
200
-	} else {
201
-		$type = '';
202
-	}
203
-
204
-	// calculer un identifiant unique
205
-	// Marie Toto <[email protected]> => @toto.com
206
-	if (preg_match('/@[^\s>]+/', $from, $domain)) {
207
-		$domain = $domain[0];
208
-	}
209
-	else {
210
-		$domain = '@unknown-' . md5($from) . '.org';
211
-	}
212
-	$uniq = random_int(0, mt_getrandmax()) . '_' . md5($to . $texte) . $domain;
213
-
214
-	// Si multi-part, s'en servir comme borne ...
215
-	if ($parts) {
216
-		$texte = "--$uniq\n$type\n" . $texte . "\n";
217
-		foreach ($parts as $part) {
218
-			$n = strlen($part[1]) . ($part[0] ? "\n" : '');
219
-			$e = join("\n", $part[0]);
220
-			$texte .= "\n--$uniq\nContent-Length: $n$e\n\n" . $part[1];
221
-		}
222
-		$texte .= "\n\n--$uniq--\n";
223
-		// Si boundary n'est pas entre guillemets,
224
-		// elle est comprise mais le charset est ignoree !
225
-		$type = "Content-Type: multipart/mixed; boundary=\"$uniq\"\n";
226
-	}
227
-
228
-	// .. et s'en servir pour plaire a SpamAssassin
229
-
230
-	$mid = 'Message-Id: <' . $uniq . '>';
231
-
232
-	// indispensable pour les sites qui collent d'office From: serveur-http
233
-	// sauf si deja mis par l'envoyeur
234
-	$rep = (strpos($headers, 'Reply-To:') !== false) ? '' : "Reply-To: $from\n";
235
-
236
-	// Nettoyer les en-tetes envoyees
237
-	// Ajouter le \n final
238
-	if (strlen($headers = trim($headers))) {
239
-		$headers .= "\n";
240
-	}
241
-
242
-	// Et mentionner l'indeboulonable nomenclature ratee
243
-
244
-	$headers .= "From: $from\n$type$rep$mid\nMIME-Version: 1.0\n";
245
-
246
-	return [$headers, $texte];
193
+    $charset = $GLOBALS['meta']['charset'];
194
+
195
+    // Ajouter le Content-Type et consort s'il n'y est pas deja
196
+    if (strpos($headers, 'Content-Type: ') === false) {
197
+        $type =
198
+            "Content-Type: text/plain;charset=\"$charset\";\n" .
199
+            "Content-Transfer-Encoding: 8bit\n";
200
+    } else {
201
+        $type = '';
202
+    }
203
+
204
+    // calculer un identifiant unique
205
+    // Marie Toto <[email protected]> => @toto.com
206
+    if (preg_match('/@[^\s>]+/', $from, $domain)) {
207
+        $domain = $domain[0];
208
+    }
209
+    else {
210
+        $domain = '@unknown-' . md5($from) . '.org';
211
+    }
212
+    $uniq = random_int(0, mt_getrandmax()) . '_' . md5($to . $texte) . $domain;
213
+
214
+    // Si multi-part, s'en servir comme borne ...
215
+    if ($parts) {
216
+        $texte = "--$uniq\n$type\n" . $texte . "\n";
217
+        foreach ($parts as $part) {
218
+            $n = strlen($part[1]) . ($part[0] ? "\n" : '');
219
+            $e = join("\n", $part[0]);
220
+            $texte .= "\n--$uniq\nContent-Length: $n$e\n\n" . $part[1];
221
+        }
222
+        $texte .= "\n\n--$uniq--\n";
223
+        // Si boundary n'est pas entre guillemets,
224
+        // elle est comprise mais le charset est ignoree !
225
+        $type = "Content-Type: multipart/mixed; boundary=\"$uniq\"\n";
226
+    }
227
+
228
+    // .. et s'en servir pour plaire a SpamAssassin
229
+
230
+    $mid = 'Message-Id: <' . $uniq . '>';
231
+
232
+    // indispensable pour les sites qui collent d'office From: serveur-http
233
+    // sauf si deja mis par l'envoyeur
234
+    $rep = (strpos($headers, 'Reply-To:') !== false) ? '' : "Reply-To: $from\n";
235
+
236
+    // Nettoyer les en-tetes envoyees
237
+    // Ajouter le \n final
238
+    if (strlen($headers = trim($headers))) {
239
+        $headers .= "\n";
240
+    }
241
+
242
+    // Et mentionner l'indeboulonable nomenclature ratee
243
+
244
+    $headers .= "From: $from\n$type$rep$mid\nMIME-Version: 1.0\n";
245
+
246
+    return [$headers, $texte];
247 247
 }
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
 
135 135
 	// ceci est la RegExp NO_REAL_NAME faisant hurler SpamAssassin
136 136
 	if (preg_match('/^["\s]*\<?\S+\@\S+\>?\s*$/', $from)) {
137
-		$from .= ' (' . str_replace(')', '', translitteration(str_replace('@', ' at ', $from))) . ')';
137
+		$from .= ' ('.str_replace(')', '', translitteration(str_replace('@', ' at ', $from))).')';
138 138
 	}
139 139
 
140 140
 	// nettoyer les &eacute; &#8217, &emdash; etc...
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
 		if (!_TEST_EMAIL_DEST) {
172 172
 			return false;
173 173
 		} else {
174
-			$texte = "Dest : $destinataire\r\n" . $texte;
174
+			$texte = "Dest : $destinataire\r\n".$texte;
175 175
 			$destinataire = _TEST_EMAIL_DEST;
176 176
 		}
177 177
 	}
@@ -195,7 +195,7 @@  discard block
 block discarded – undo
195 195
 	// Ajouter le Content-Type et consort s'il n'y est pas deja
196 196
 	if (strpos($headers, 'Content-Type: ') === false) {
197 197
 		$type =
198
-			"Content-Type: text/plain;charset=\"$charset\";\n" .
198
+			"Content-Type: text/plain;charset=\"$charset\";\n".
199 199
 			"Content-Transfer-Encoding: 8bit\n";
200 200
 	} else {
201 201
 		$type = '';
@@ -207,17 +207,17 @@  discard block
 block discarded – undo
207 207
 		$domain = $domain[0];
208 208
 	}
209 209
 	else {
210
-		$domain = '@unknown-' . md5($from) . '.org';
210
+		$domain = '@unknown-'.md5($from).'.org';
211 211
 	}
212
-	$uniq = random_int(0, mt_getrandmax()) . '_' . md5($to . $texte) . $domain;
212
+	$uniq = random_int(0, mt_getrandmax()).'_'.md5($to.$texte).$domain;
213 213
 
214 214
 	// Si multi-part, s'en servir comme borne ...
215 215
 	if ($parts) {
216
-		$texte = "--$uniq\n$type\n" . $texte . "\n";
216
+		$texte = "--$uniq\n$type\n".$texte."\n";
217 217
 		foreach ($parts as $part) {
218
-			$n = strlen($part[1]) . ($part[0] ? "\n" : '');
218
+			$n = strlen($part[1]).($part[0] ? "\n" : '');
219 219
 			$e = join("\n", $part[0]);
220
-			$texte .= "\n--$uniq\nContent-Length: $n$e\n\n" . $part[1];
220
+			$texte .= "\n--$uniq\nContent-Length: $n$e\n\n".$part[1];
221 221
 		}
222 222
 		$texte .= "\n\n--$uniq--\n";
223 223
 		// Si boundary n'est pas entre guillemets,
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
 
228 228
 	// .. et s'en servir pour plaire a SpamAssassin
229 229
 
230
-	$mid = 'Message-Id: <' . $uniq . '>';
230
+	$mid = 'Message-Id: <'.$uniq.'>';
231 231
 
232 232
 	// indispensable pour les sites qui collent d'office From: serveur-http
233 233
 	// sauf si deja mis par l'envoyeur
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -205,8 +205,7 @@
 block discarded – undo
205 205
 	// Marie Toto <[email protected]> => @toto.com
206 206
 	if (preg_match('/@[^\s>]+/', $from, $domain)) {
207 207
 		$domain = $domain[0];
208
-	}
209
-	else {
208
+	} else {
210 209
 		$domain = '@unknown-' . md5($from) . '.org';
211 210
 	}
212 211
 	$uniq = random_int(0, mt_getrandmax()) . '_' . md5($to . $texte) . $domain;
Please login to merge, or discard this patch.
ecrire/inc/importer_csv.php 1 patch
Indentation   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 include_spip('inc/charsets');
@@ -42,22 +42,22 @@  discard block
 block discarded – undo
42 42
  * @return array
43 43
  */
44 44
 function importer_csv_importcharset($texte, $definir_charset_source = false) {
45
-	// le plus frequent, en particulier avec les trucs de ms@@@
46
-	static $charset_source = 'iso-8859-1';
47
-	if ($definir_charset_source) {
48
-		if ($definir_charset_source === true) {
49
-			$charset_source = 'iso-8859-1';
50
-		} else {
51
-			$charset_source = $definir_charset_source;
52
-		}
53
-	}
54
-	// mais open-office sait faire mieux, donc mefiance !
55
-	if (is_utf8($texte)) {
56
-		$charset = 'utf-8';
57
-	} else {
58
-		$charset = $charset_source;
59
-	}
60
-	return importer_charset($texte, $charset);
45
+    // le plus frequent, en particulier avec les trucs de ms@@@
46
+    static $charset_source = 'iso-8859-1';
47
+    if ($definir_charset_source) {
48
+        if ($definir_charset_source === true) {
49
+            $charset_source = 'iso-8859-1';
50
+        } else {
51
+            $charset_source = $definir_charset_source;
52
+        }
53
+    }
54
+    // mais open-office sait faire mieux, donc mefiance !
55
+    if (is_utf8($texte)) {
56
+        $charset = 'utf-8';
57
+    } else {
58
+        $charset = $charset_source;
59
+    }
60
+    return importer_charset($texte, $charset);
61 61
 }
62 62
 
63 63
 /**
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
  * @return string
69 69
  */
70 70
 function importer_csv_nettoie_key($key) {
71
-	return translitteration($key);
71
+    return translitteration($key);
72 72
 }
73 73
 
74 74
 /**
@@ -87,77 +87,77 @@  discard block
 block discarded – undo
87 87
  */
88 88
 function inc_importer_csv_dist($file, $options = []) {
89 89
 
90
-	// support ancienne syntaxe
91
-	// inc_importer_csv_dist($file, $head = false, $delim = ',', $enclos = '"', $len = 10000, $charset_source = '')
92
-	if (!is_array($options)) {
93
-		$args = func_get_args();
94
-		$options = [];
95
-		foreach ([1 => 'head', 2 => 'delim', 3 => 'enclos', 4 => 'len', 5 => 'charset_source'] as $k => $option) {
96
-			if (!empty($args[$k])) {
97
-				$options[$option] = $args[$k];
98
-			}
99
-		}
100
-	}
90
+    // support ancienne syntaxe
91
+    // inc_importer_csv_dist($file, $head = false, $delim = ',', $enclos = '"', $len = 10000, $charset_source = '')
92
+    if (!is_array($options)) {
93
+        $args = func_get_args();
94
+        $options = [];
95
+        foreach ([1 => 'head', 2 => 'delim', 3 => 'enclos', 4 => 'len', 5 => 'charset_source'] as $k => $option) {
96
+            if (!empty($args[$k])) {
97
+                $options[$option] = $args[$k];
98
+            }
99
+        }
100
+    }
101 101
 
102
-	$default_options = [
103
-		'head' => false,
104
-		'delim' => ',',
105
-		'enclos' => '"',
106
-		'len' => 10000,
107
-		'charset_source' => '',
108
-	];
109
-	$options = array_merge($default_options, $options);
102
+    $default_options = [
103
+        'head' => false,
104
+        'delim' => ',',
105
+        'enclos' => '"',
106
+        'len' => 10000,
107
+        'charset_source' => '',
108
+    ];
109
+    $options = array_merge($default_options, $options);
110 110
 
111 111
 
112
-	$return = false;
113
-	if (
114
-		@file_exists($file)
115
-		and $handle = fopen($file, 'r')
116
-	) {
117
-		if ($options['charset_source']) {
118
-			importer_csv_importcharset('', $options['charset_source']);
119
-		}
120
-		if ($options['head']) {
121
-			$header = fgetcsv($handle, $options['len'], $options['delim'], $options['enclos']);
122
-			if ($header) {
123
-				$header = array_map('importer_csv_importcharset', $header);
124
-				$header = array_map('importer_csv_nettoie_key', $header);
125
-				$header_type = [];
126
-				foreach ($header as $heading) {
127
-					if (!isset($header_type[$heading])) {
128
-						$header_type[$heading] = 'scalar';
129
-					} else {
130
-						$header_type[$heading] = 'array';
131
-					}
132
-				}
133
-			}
134
-		}
112
+    $return = false;
113
+    if (
114
+        @file_exists($file)
115
+        and $handle = fopen($file, 'r')
116
+    ) {
117
+        if ($options['charset_source']) {
118
+            importer_csv_importcharset('', $options['charset_source']);
119
+        }
120
+        if ($options['head']) {
121
+            $header = fgetcsv($handle, $options['len'], $options['delim'], $options['enclos']);
122
+            if ($header) {
123
+                $header = array_map('importer_csv_importcharset', $header);
124
+                $header = array_map('importer_csv_nettoie_key', $header);
125
+                $header_type = [];
126
+                foreach ($header as $heading) {
127
+                    if (!isset($header_type[$heading])) {
128
+                        $header_type[$heading] = 'scalar';
129
+                    } else {
130
+                        $header_type[$heading] = 'array';
131
+                    }
132
+                }
133
+            }
134
+        }
135 135
 
136
-		while (($data = fgetcsv($handle, $options['len'], $options['delim'], $options['enclos'])) !== false) {
137
-			$data = array_map('importer_csv_importcharset', $data);
138
-			if ($options['head'] and isset($header)) {
139
-				$row = [];
140
-				foreach ($header as $key => $heading) {
141
-					if ($header_type[$heading] == 'array') {
142
-						if (!isset($row[$heading])) {
143
-							$row[$heading] = [];
144
-						}
145
-						if (isset($data[$key]) and strlen($data[$key])) {
146
-							$row[$heading][] = $data[$key];
147
-						}
148
-					} else {
149
-						$row[$heading] = $data[$key] ?? '';
150
-					}
151
-				}
152
-				$return[] = $row;
153
-			} else {
154
-				$return[] = $data;
155
-			}
156
-		}
157
-		if ($options['charset_source']) {
158
-			importer_csv_importcharset('', true);
159
-		}
160
-	}
136
+        while (($data = fgetcsv($handle, $options['len'], $options['delim'], $options['enclos'])) !== false) {
137
+            $data = array_map('importer_csv_importcharset', $data);
138
+            if ($options['head'] and isset($header)) {
139
+                $row = [];
140
+                foreach ($header as $key => $heading) {
141
+                    if ($header_type[$heading] == 'array') {
142
+                        if (!isset($row[$heading])) {
143
+                            $row[$heading] = [];
144
+                        }
145
+                        if (isset($data[$key]) and strlen($data[$key])) {
146
+                            $row[$heading][] = $data[$key];
147
+                        }
148
+                    } else {
149
+                        $row[$heading] = $data[$key] ?? '';
150
+                    }
151
+                }
152
+                $return[] = $row;
153
+            } else {
154
+                $return[] = $data;
155
+            }
156
+        }
157
+        if ($options['charset_source']) {
158
+            importer_csv_importcharset('', true);
159
+        }
160
+    }
161 161
 
162
-	return $return;
162
+    return $return;
163 163
 }
Please login to merge, or discard this patch.
ecrire/inc/session.php 2 patches
Indentation   +462 added lines, -462 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  */
20 20
 
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	return;
22
+    return;
23 23
 }
24 24
 
25 25
 
@@ -40,15 +40,15 @@  discard block
 block discarded – undo
40 40
  * @return bool|null|void
41 41
  */
42 42
 function inc_session_dist($auteur = false) {
43
-	if (is_numeric($auteur)) {
44
-		return supprimer_sessions($auteur, $auteur > 0);
45
-	} else {
46
-		if (is_array($auteur)) {
47
-			return ajouter_session($auteur);
48
-		} else {
49
-			return verifier_session($auteur);
50
-		}
51
-	}
43
+    if (is_numeric($auteur)) {
44
+        return supprimer_sessions($auteur, $auteur > 0);
45
+    } else {
46
+        if (is_array($auteur)) {
47
+            return ajouter_session($auteur);
48
+        } else {
49
+            return verifier_session($auteur);
50
+        }
51
+    }
52 52
 }
53 53
 
54 54
 
@@ -77,36 +77,36 @@  discard block
 block discarded – undo
77 77
  */
78 78
 function supprimer_sessions($id_auteur, $toutes = true, $actives = true) {
79 79
 
80
-	$nb_files = 0;
81
-	$nb_max_files = (defined('_MAX_NB_SESSIONS_OUVERTES') ? _MAX_NB_SESSIONS_OUVERTES : 1000);
82
-	spip_log("supprimer sessions auteur $id_auteur", 'session');
83
-	if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
84
-		if ($dir = opendir(_DIR_SESSIONS)) {
85
-			$t = $_SERVER['REQUEST_TIME']  - (4 * _RENOUVELLE_ALEA); // 48h par defaut
86
-			$t_short = $_SERVER['REQUEST_TIME']  - max(_RENOUVELLE_ALEA / 4, 3 * 3600); // 3h par defaut
87
-			$t = time() - (4 * _RENOUVELLE_ALEA);
88
-			while (($f = readdir($dir)) !== false) {
89
-				$nb_files++;
90
-				if (preg_match(',^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,', $f, $regs)) {
91
-					$f = _DIR_SESSIONS . $f;
92
-					if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
93
-						spip_unlink($f);
94
-					}
95
-					// si il y a trop de sessions ouvertes, on purge les sessions anonymes de plus de 3H
96
-					// cf http://core.spip.org/issues/3276
97
-					elseif ($nb_files > $nb_max_files and !intval($regs[1]) and ($t_short > filemtime($f))) {
98
-						spip_unlink($f);
99
-					}
100
-				}
101
-			}
102
-		}
103
-	} else {
104
-		verifier_session();
105
-		spip_unlink(fichier_session('alea_ephemere', true));
106
-	}
107
-
108
-	// forcer le recalcul de la session courante
109
-	spip_session(true);
80
+    $nb_files = 0;
81
+    $nb_max_files = (defined('_MAX_NB_SESSIONS_OUVERTES') ? _MAX_NB_SESSIONS_OUVERTES : 1000);
82
+    spip_log("supprimer sessions auteur $id_auteur", 'session');
83
+    if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
84
+        if ($dir = opendir(_DIR_SESSIONS)) {
85
+            $t = $_SERVER['REQUEST_TIME']  - (4 * _RENOUVELLE_ALEA); // 48h par defaut
86
+            $t_short = $_SERVER['REQUEST_TIME']  - max(_RENOUVELLE_ALEA / 4, 3 * 3600); // 3h par defaut
87
+            $t = time() - (4 * _RENOUVELLE_ALEA);
88
+            while (($f = readdir($dir)) !== false) {
89
+                $nb_files++;
90
+                if (preg_match(',^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,', $f, $regs)) {
91
+                    $f = _DIR_SESSIONS . $f;
92
+                    if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
93
+                        spip_unlink($f);
94
+                    }
95
+                    // si il y a trop de sessions ouvertes, on purge les sessions anonymes de plus de 3H
96
+                    // cf http://core.spip.org/issues/3276
97
+                    elseif ($nb_files > $nb_max_files and !intval($regs[1]) and ($t_short > filemtime($f))) {
98
+                        spip_unlink($f);
99
+                    }
100
+                }
101
+            }
102
+        }
103
+    } else {
104
+        verifier_session();
105
+        spip_unlink(fichier_session('alea_ephemere', true));
106
+    }
107
+
108
+    // forcer le recalcul de la session courante
109
+    spip_session(true);
110 110
 }
111 111
 
112 112
 /**
@@ -124,125 +124,125 @@  discard block
 block discarded – undo
124 124
  * @return bool|string
125 125
  */
126 126
 function ajouter_session($auteur) {
127
-	// Si le client a deja une session valide pour son id_auteur
128
-	// on conserve le meme fichier
129
-
130
-	// Attention un visiteur peut avoir une session et un id=0,
131
-	// => ne pas melanger les sessions des differents visiteurs
132
-	$id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
133
-
134
-	// Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session)
135
-	// on va vérifier s'il y a vraiment des choses à écrire
136
-	if (!$id_auteur) {
137
-		// On supprime les données de base pour voir le contenu réel de la session
138
-		$auteur_verif = $auteur;
139
-		if (isset($auteur_verif['id_auteur'])) {
140
-			unset($auteur_verif['id_auteur']);
141
-		}
142
-		if (isset($auteur_verif['hash_env'])) {
143
-			unset($auteur_verif['hash_env']);
144
-		}
145
-		if (isset($auteur_verif['ip_change'])) {
146
-			unset($auteur_verif['ip_change']);
147
-		}
148
-		if (isset($auteur_verif['date_session'])) {
149
-			unset($auteur_verif['date_session']);
150
-		}
151
-
152
-		// Les variables vraiment nulle ne sont pas à prendre en compte non plus
153
-		foreach ($auteur_verif as $variable => $valeur) {
154
-			if ($valeur === null) {
155
-				unset($auteur_verif[$variable]);
156
-			}
157
-		}
158
-
159
-		// Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là
160
-		if (!$auteur_verif) {
161
-			if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) {
162
-				unset($_SESSION[$_COOKIE['spip_session']]);
163
-			}
164
-			if (isset($_COOKIE['spip_session'])) {
165
-				unset($_COOKIE['spip_session']);
166
-			}
167
-
168
-			return false;
169
-		}
170
-	}
171
-
172
-	if (
173
-		!isset($_COOKIE['spip_session'])
174
-		or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
175
-	) {
176
-		$_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(random_int(0, mt_getrandmax()), true));
177
-	}
178
-
179
-	// Maintenant on sait qu'on a des choses à écrire
180
-	// On s'assure d'avoir au moins ces valeurs
181
-	$auteur['id_auteur'] = $id_auteur;
182
-	if (!isset($auteur['hash_env'])) {
183
-		$auteur['hash_env'] = hash_env();
184
-	}
185
-	if (!isset($auteur['ip_change'])) {
186
-		$auteur['ip_change'] = false;
187
-	}
188
-
189
-	if (!isset($auteur['date_session'])) {
190
-		$auteur['date_session'] = time();
191
-	}
192
-	if (
193
-		isset($auteur['prefs'])
194
-		and is_string($auteur['prefs'])
195
-		and $prefs = @unserialize($auteur['prefs'])
196
-	) {
197
-		$auteur['prefs'] = $prefs;
198
-	}
199
-
200
-	$fichier_session = '';
201
-
202
-	// les sessions anonymes sont stockees dans $_SESSION
203
-	if (!$id_auteur) {
204
-		spip_php_session_start();
205
-		$_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur);
206
-	} else {
207
-		$fichier_session = fichier_session('alea_ephemere');
208
-		if (!ecrire_fichier_session($fichier_session, $auteur)) {
209
-			spip_log('Echec ecriture fichier session ' . $fichier_session, 'session' . _LOG_HS);
210
-			include_spip('inc/minipres');
211
-			echo minipres();
212
-			exit;
213
-		}
214
-		// verifier et limiter le nombre maxi de sessions
215
-		// https://core.spip.net/issues/3807
216
-		lister_sessions_auteur($id_auteur);
217
-	}
218
-
219
-	// poser le cookie de session SPIP
220
-	include_spip('inc/cookie');
221
-	$duree = definir_duree_cookie_session($auteur);
222
-	spip_setcookie('spip_session', $_COOKIE['spip_session'], [
223
-		'expires' => time() + $duree
224
-	]);
225
-	spip_log("ajoute session $fichier_session cookie $duree", 'session');
226
-
227
-	// Si on est admin, poser le cookie de correspondance
228
-	if (!function_exists('autoriser')) {
229
-		include_spip('inc/autoriser');
230
-	}
231
-	if (autoriser('ecrire', '', '', $auteur) and _DUREE_COOKIE_ADMIN) {
232
-		spip_setcookie('spip_admin', '@' . ($auteur['email'] ?: $auteur['login']), [
233
-			'expires' => time() + max(_DUREE_COOKIE_ADMIN, $duree)
234
-		]);
235
-	} // sinon le supprimer ...
236
-	else {
237
-		spip_setcookie('spip_admin', '', [
238
-			'expires' => 1
239
-		]);
240
-	}
241
-
242
-	# on en profite pour purger les vieilles sessions anonymes abandonnees
243
-	# supprimer_sessions(0, true, false);
244
-
245
-	return $_COOKIE['spip_session'];
127
+    // Si le client a deja une session valide pour son id_auteur
128
+    // on conserve le meme fichier
129
+
130
+    // Attention un visiteur peut avoir une session et un id=0,
131
+    // => ne pas melanger les sessions des differents visiteurs
132
+    $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
133
+
134
+    // Si ce n'est pas un inscrit (les inscrits ont toujours des choses en session)
135
+    // on va vérifier s'il y a vraiment des choses à écrire
136
+    if (!$id_auteur) {
137
+        // On supprime les données de base pour voir le contenu réel de la session
138
+        $auteur_verif = $auteur;
139
+        if (isset($auteur_verif['id_auteur'])) {
140
+            unset($auteur_verif['id_auteur']);
141
+        }
142
+        if (isset($auteur_verif['hash_env'])) {
143
+            unset($auteur_verif['hash_env']);
144
+        }
145
+        if (isset($auteur_verif['ip_change'])) {
146
+            unset($auteur_verif['ip_change']);
147
+        }
148
+        if (isset($auteur_verif['date_session'])) {
149
+            unset($auteur_verif['date_session']);
150
+        }
151
+
152
+        // Les variables vraiment nulle ne sont pas à prendre en compte non plus
153
+        foreach ($auteur_verif as $variable => $valeur) {
154
+            if ($valeur === null) {
155
+                unset($auteur_verif[$variable]);
156
+            }
157
+        }
158
+
159
+        // Si après ça la session est vide alors on supprime l'éventuel fichier et on arrête là
160
+        if (!$auteur_verif) {
161
+            if (isset($_COOKIE['spip_session']) and isset($_SESSION[$_COOKIE['spip_session']])) {
162
+                unset($_SESSION[$_COOKIE['spip_session']]);
163
+            }
164
+            if (isset($_COOKIE['spip_session'])) {
165
+                unset($_COOKIE['spip_session']);
166
+            }
167
+
168
+            return false;
169
+        }
170
+    }
171
+
172
+    if (
173
+        !isset($_COOKIE['spip_session'])
174
+        or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
175
+    ) {
176
+        $_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(random_int(0, mt_getrandmax()), true));
177
+    }
178
+
179
+    // Maintenant on sait qu'on a des choses à écrire
180
+    // On s'assure d'avoir au moins ces valeurs
181
+    $auteur['id_auteur'] = $id_auteur;
182
+    if (!isset($auteur['hash_env'])) {
183
+        $auteur['hash_env'] = hash_env();
184
+    }
185
+    if (!isset($auteur['ip_change'])) {
186
+        $auteur['ip_change'] = false;
187
+    }
188
+
189
+    if (!isset($auteur['date_session'])) {
190
+        $auteur['date_session'] = time();
191
+    }
192
+    if (
193
+        isset($auteur['prefs'])
194
+        and is_string($auteur['prefs'])
195
+        and $prefs = @unserialize($auteur['prefs'])
196
+    ) {
197
+        $auteur['prefs'] = $prefs;
198
+    }
199
+
200
+    $fichier_session = '';
201
+
202
+    // les sessions anonymes sont stockees dans $_SESSION
203
+    if (!$id_auteur) {
204
+        spip_php_session_start();
205
+        $_SESSION[$_COOKIE['spip_session']] = preparer_ecriture_session($auteur);
206
+    } else {
207
+        $fichier_session = fichier_session('alea_ephemere');
208
+        if (!ecrire_fichier_session($fichier_session, $auteur)) {
209
+            spip_log('Echec ecriture fichier session ' . $fichier_session, 'session' . _LOG_HS);
210
+            include_spip('inc/minipres');
211
+            echo minipres();
212
+            exit;
213
+        }
214
+        // verifier et limiter le nombre maxi de sessions
215
+        // https://core.spip.net/issues/3807
216
+        lister_sessions_auteur($id_auteur);
217
+    }
218
+
219
+    // poser le cookie de session SPIP
220
+    include_spip('inc/cookie');
221
+    $duree = definir_duree_cookie_session($auteur);
222
+    spip_setcookie('spip_session', $_COOKIE['spip_session'], [
223
+        'expires' => time() + $duree
224
+    ]);
225
+    spip_log("ajoute session $fichier_session cookie $duree", 'session');
226
+
227
+    // Si on est admin, poser le cookie de correspondance
228
+    if (!function_exists('autoriser')) {
229
+        include_spip('inc/autoriser');
230
+    }
231
+    if (autoriser('ecrire', '', '', $auteur) and _DUREE_COOKIE_ADMIN) {
232
+        spip_setcookie('spip_admin', '@' . ($auteur['email'] ?: $auteur['login']), [
233
+            'expires' => time() + max(_DUREE_COOKIE_ADMIN, $duree)
234
+        ]);
235
+    } // sinon le supprimer ...
236
+    else {
237
+        spip_setcookie('spip_admin', '', [
238
+            'expires' => 1
239
+        ]);
240
+    }
241
+
242
+    # on en profite pour purger les vieilles sessions anonymes abandonnees
243
+    # supprimer_sessions(0, true, false);
244
+
245
+    return $_COOKIE['spip_session'];
246 246
 }
247 247
 
248 248
 /**
@@ -262,15 +262,15 @@  discard block
 block discarded – undo
262 262
  *     Durée en secondes
263 263
 **/
264 264
 function definir_duree_cookie_session($auteur) {
265
-	$coef = 2;
266
-	if (isset($auteur['cookie'])) {
267
-		if (is_numeric($auteur['cookie'])) {
268
-			$coef = $auteur['cookie'];
269
-		} else {
270
-			$coef = 20;
271
-		}
272
-	}
273
-	return (int)(_RENOUVELLE_ALEA * $coef);
265
+    $coef = 2;
266
+    if (isset($auteur['cookie'])) {
267
+        if (is_numeric($auteur['cookie'])) {
268
+            $coef = $auteur['cookie'];
269
+        } else {
270
+            $coef = 20;
271
+        }
272
+    }
273
+    return (int)(_RENOUVELLE_ALEA * $coef);
274 274
 }
275 275
 
276 276
 /**
@@ -290,91 +290,91 @@  discard block
 block discarded – undo
290 290
  * @return bool|int|null
291 291
  */
292 292
 function verifier_session($change = false) {
293
-	// si pas de cookie, c'est fichu
294
-	if (!isset($_COOKIE['spip_session'])) {
295
-		return false;
296
-	}
297
-
298
-	$fichier_session = '';
299
-
300
-	// est-ce une session anonyme ?
301
-	if (!intval($_COOKIE['spip_session'])) {
302
-		spip_php_session_start();
303
-		if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) {
304
-			return false;
305
-		}
306
-		$GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']];
307
-	} else {
308
-		// Tester avec alea courant
309
-		$fichier_session = fichier_session('alea_ephemere', true);
310
-		if ($fichier_session and @file_exists($fichier_session)) {
311
-			include($fichier_session);
312
-		} else {
313
-			// Sinon, tester avec alea precedent
314
-			$fichier_session = fichier_session('alea_ephemere_ancien', true);
315
-			if (!$fichier_session or !@file_exists($fichier_session)) {
316
-				return false;
317
-			}
318
-
319
-			// Renouveler la session avec l'alea courant
320
-			include($fichier_session);
321
-			spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], 'session');
322
-			spip_unlink($fichier_session);
323
-			ajouter_session($GLOBALS['visiteur_session']);
324
-		}
325
-	}
326
-
327
-	// Compatibilite ascendante : auteur_session est visiteur_session si
328
-	// c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut
329
-	// n'etre qu'identifie, sans aucune authentification).
330
-
331
-	if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
332
-		$GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
333
-	}
334
-
335
-
336
-	// Si l'adresse IP change, inc/presentation mettra une balise image
337
-	// avec un URL de rappel demandant a changer le nom de la session.
338
-	// Seul celui qui a l'IP d'origine est rejoue
339
-	// ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
340
-	// sa victime, mais se ferait deconnecter par elle.
341
-	if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) {
342
-		if (!$GLOBALS['visiteur_session']['ip_change']) {
343
-			define('_SESSION_REJOUER', true);
344
-			$GLOBALS['visiteur_session']['ip_change'] = true;
345
-			ajouter_session($GLOBALS['visiteur_session']);
346
-		} else {
347
-			if ($change) {
348
-				spip_log('session non rejouee, vol de cookie ?', 'session');
349
-			}
350
-		}
351
-	} else {
352
-		if ($change) {
353
-			spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], 'session');
354
-			if ($fichier_session) {
355
-				spip_unlink($fichier_session);
356
-			}
357
-			$GLOBALS['visiteur_session']['ip_change'] = false;
358
-			unset($_COOKIE['spip_session']);
359
-			ajouter_session($GLOBALS['visiteur_session']);
360
-		}
361
-	}
362
-
363
-	// Si la session a ete initiee il y a trop longtemps, elle est annulee
364
-	if (
365
-		isset($GLOBALS['visiteur_session'])
366
-		and defined('_AGE_SESSION_MAX')
367
-		and _AGE_SESSION_MAX > 0
368
-		and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX
369
-	) {
370
-		unset($GLOBALS['visiteur_session']);
371
-
372
-		return false;
373
-	}
374
-
375
-	return is_numeric($GLOBALS['visiteur_session']['id_auteur'])
376
-		? $GLOBALS['visiteur_session']['id_auteur']
377
-		: null;
293
+    // si pas de cookie, c'est fichu
294
+    if (!isset($_COOKIE['spip_session'])) {
295
+        return false;
296
+    }
297
+
298
+    $fichier_session = '';
299
+
300
+    // est-ce une session anonyme ?
301
+    if (!intval($_COOKIE['spip_session'])) {
302
+        spip_php_session_start();
303
+        if (!isset($_SESSION[$_COOKIE['spip_session']]) or !is_array($_SESSION[$_COOKIE['spip_session']])) {
304
+            return false;
305
+        }
306
+        $GLOBALS['visiteur_session'] = $_SESSION[$_COOKIE['spip_session']];
307
+    } else {
308
+        // Tester avec alea courant
309
+        $fichier_session = fichier_session('alea_ephemere', true);
310
+        if ($fichier_session and @file_exists($fichier_session)) {
311
+            include($fichier_session);
312
+        } else {
313
+            // Sinon, tester avec alea precedent
314
+            $fichier_session = fichier_session('alea_ephemere_ancien', true);
315
+            if (!$fichier_session or !@file_exists($fichier_session)) {
316
+                return false;
317
+            }
318
+
319
+            // Renouveler la session avec l'alea courant
320
+            include($fichier_session);
321
+            spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], 'session');
322
+            spip_unlink($fichier_session);
323
+            ajouter_session($GLOBALS['visiteur_session']);
324
+        }
325
+    }
326
+
327
+    // Compatibilite ascendante : auteur_session est visiteur_session si
328
+    // c'est un auteur SPIP authentifie (tandis qu'un visiteur_session peut
329
+    // n'etre qu'identifie, sans aucune authentification).
330
+
331
+    if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
332
+        $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
333
+    }
334
+
335
+
336
+    // Si l'adresse IP change, inc/presentation mettra une balise image
337
+    // avec un URL de rappel demandant a changer le nom de la session.
338
+    // Seul celui qui a l'IP d'origine est rejoue
339
+    // ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
340
+    // sa victime, mais se ferait deconnecter par elle.
341
+    if (hash_env() != $GLOBALS['visiteur_session']['hash_env']) {
342
+        if (!$GLOBALS['visiteur_session']['ip_change']) {
343
+            define('_SESSION_REJOUER', true);
344
+            $GLOBALS['visiteur_session']['ip_change'] = true;
345
+            ajouter_session($GLOBALS['visiteur_session']);
346
+        } else {
347
+            if ($change) {
348
+                spip_log('session non rejouee, vol de cookie ?', 'session');
349
+            }
350
+        }
351
+    } else {
352
+        if ($change) {
353
+            spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], 'session');
354
+            if ($fichier_session) {
355
+                spip_unlink($fichier_session);
356
+            }
357
+            $GLOBALS['visiteur_session']['ip_change'] = false;
358
+            unset($_COOKIE['spip_session']);
359
+            ajouter_session($GLOBALS['visiteur_session']);
360
+        }
361
+    }
362
+
363
+    // Si la session a ete initiee il y a trop longtemps, elle est annulee
364
+    if (
365
+        isset($GLOBALS['visiteur_session'])
366
+        and defined('_AGE_SESSION_MAX')
367
+        and _AGE_SESSION_MAX > 0
368
+        and time() - @$GLOBALS['visiteur_session']['date_session'] > _AGE_SESSION_MAX
369
+    ) {
370
+        unset($GLOBALS['visiteur_session']);
371
+
372
+        return false;
373
+    }
374
+
375
+    return is_numeric($GLOBALS['visiteur_session']['id_auteur'])
376
+        ? $GLOBALS['visiteur_session']['id_auteur']
377
+        : null;
378 378
 }
379 379
 
380 380
 /**
@@ -389,7 +389,7 @@  discard block
 block discarded – undo
389 389
  *     Valeur, si trouvée, `null` sinon.
390 390
  */
391 391
 function session_get($nom) {
392
-	return $GLOBALS['visiteur_session'][$nom] ?? null;
392
+    return $GLOBALS['visiteur_session'][$nom] ?? null;
393 393
 }
394 394
 
395 395
 
@@ -405,32 +405,32 @@  discard block
 block discarded – undo
405 405
  * @return void|array
406 406
  */
407 407
 function session_set($nom, $val = null) {
408
-	static $remove = [];
409
-	static $actualiser_sessions = false;
410
-	if ($nom === false) {
411
-		return $remove;
412
-	}
413
-	if (is_null($val)) {
414
-		// rien a faire
415
-		if (!isset($GLOBALS['visiteur_session'][$nom])) {
416
-			return;
417
-		}
418
-		unset($GLOBALS['visiteur_session'][$nom]);
419
-		$remove[] = $nom;
420
-	} else {
421
-		// On ajoute la valeur dans la globale
422
-		$GLOBALS['visiteur_session'][$nom] = $val;
423
-		if ($remove) {
424
-			$remove = array_diff($remove, [$nom]);
425
-		}
426
-	}
427
-	if (!$actualiser_sessions) {
428
-		// il faut creer la session si on en a pas, la premiere fois
429
-		ajouter_session($GLOBALS['visiteur_session']);
430
-		// in register la fonction qui mettra a jour toutes les sessions en fin de hit
431
-		register_shutdown_function('terminer_actualiser_sessions');
432
-		$actualiser_sessions = true;
433
-	}
408
+    static $remove = [];
409
+    static $actualiser_sessions = false;
410
+    if ($nom === false) {
411
+        return $remove;
412
+    }
413
+    if (is_null($val)) {
414
+        // rien a faire
415
+        if (!isset($GLOBALS['visiteur_session'][$nom])) {
416
+            return;
417
+        }
418
+        unset($GLOBALS['visiteur_session'][$nom]);
419
+        $remove[] = $nom;
420
+    } else {
421
+        // On ajoute la valeur dans la globale
422
+        $GLOBALS['visiteur_session'][$nom] = $val;
423
+        if ($remove) {
424
+            $remove = array_diff($remove, [$nom]);
425
+        }
426
+    }
427
+    if (!$actualiser_sessions) {
428
+        // il faut creer la session si on en a pas, la premiere fois
429
+        ajouter_session($GLOBALS['visiteur_session']);
430
+        // in register la fonction qui mettra a jour toutes les sessions en fin de hit
431
+        register_shutdown_function('terminer_actualiser_sessions');
432
+        $actualiser_sessions = true;
433
+    }
434 434
 }
435 435
 
436 436
 /**
@@ -439,12 +439,12 @@  discard block
 block discarded – undo
439 439
  * @uses actualiser_sessions()
440 440
  */
441 441
 function terminer_actualiser_sessions() {
442
-	// se remettre dans le dossier de travail au cas ou Apache a change
443
-	chdir(_ROOT_CWD);
444
-	// recuperer les variables a effacer
445
-	$remove = session_set(false);
446
-	// mettre a jour toutes les sessions
447
-	actualiser_sessions($GLOBALS['visiteur_session'], $remove);
442
+    // se remettre dans le dossier de travail au cas ou Apache a change
443
+    chdir(_ROOT_CWD);
444
+    // recuperer les variables a effacer
445
+    $remove = session_set(false);
446
+    // mettre a jour toutes les sessions
447
+    actualiser_sessions($GLOBALS['visiteur_session'], $remove);
448 448
 }
449 449
 
450 450
 
@@ -469,83 +469,83 @@  discard block
 block discarded – undo
469 469
  */
470 470
 function actualiser_sessions($auteur, $supprimer_cles = []) {
471 471
 
472
-	$id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
473
-	$id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0;
474
-
475
-	// si l'auteur est celui de la session courante, verifier/creer la session si besoin
476
-	$fichier_session_courante = '';
477
-	if ($id_auteur == $id_auteur_courant) {
478
-		$auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
479
-		ajouter_session($auteur);
480
-		if ($id_auteur) {
481
-			$fichier_session_courante = fichier_session('alea_ephemere');
482
-		}
483
-	}
484
-
485
-	// si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees
486
-	if (!$id_auteur) {
487
-		return;
488
-	}
489
-
490
-	// les préférences sont désérialisées, toujours.
491
-	// [fixme] Le champ 'prefs' sert aussi à l’inscription
492
-	if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
493
-		$auteur['prefs'] = @unserialize($auteur['prefs']);
494
-		if (!is_array($auteur['prefs'])) {
495
-			$auteur['prefs'] = [];
496
-		}
497
-	}
498
-
499
-	// memoriser l'auteur courant (celui qui modifie la fiche)
500
-	$sauve = $GLOBALS['visiteur_session'];
501
-
502
-	// .. mettre a jour les sessions de l'auteur cible
503
-	// attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire
504
-	// cree par une ecriture concurente d'une session (fichier atomique temporaire)
505
-	$sessions = lister_sessions_auteur($id_auteur);
506
-
507
-	// 1ere passe : lire et fusionner les sessions
508
-	foreach ($sessions as $session) {
509
-		$GLOBALS['visiteur_session'] = [];
510
-		// a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
511
-		if (
512
-			$session !== $fichier_session_courante
513
-			and @file_exists($session)
514
-		) {
515
-			include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
516
-
517
-			$auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
518
-		}
519
-	}
520
-
521
-	// supprimer les eventuelles cles dont on ne veut plus
522
-	foreach ($supprimer_cles as $cle) {
523
-		unset($auteur[$cle]);
524
-	}
525
-
526
-	$auteur_session = preparer_ecriture_session($auteur);
527
-
528
-	// seconde passe : ecrire les sessions qui ne sont pas a jour
529
-	foreach ($sessions as $session) {
530
-		$GLOBALS['visiteur_session'] = [];
531
-		// a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
532
-		if (@file_exists($session)) {
533
-			include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
534
-
535
-			// est-ce que cette session est a mettre a jour ?
536
-			if ($auteur_session != $GLOBALS['visiteur_session']) {
537
-				ecrire_fichier_session($session, $auteur);
538
-			}
539
-		}
540
-	}
541
-
542
-	if ($id_auteur == $id_auteur_courant) {
543
-		$GLOBALS['visiteur_session'] = $auteur;
544
-		$GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
545
-	} else {
546
-		// restaurer l'auteur courant
547
-		$GLOBALS['visiteur_session'] = $sauve;
548
-	}
472
+    $id_auteur = isset($auteur['id_auteur']) ? intval($auteur['id_auteur']) : 0;
473
+    $id_auteur_courant = isset($GLOBALS['visiteur_session']['id_auteur']) ? intval($GLOBALS['visiteur_session']['id_auteur']) : 0;
474
+
475
+    // si l'auteur est celui de la session courante, verifier/creer la session si besoin
476
+    $fichier_session_courante = '';
477
+    if ($id_auteur == $id_auteur_courant) {
478
+        $auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
479
+        ajouter_session($auteur);
480
+        if ($id_auteur) {
481
+            $fichier_session_courante = fichier_session('alea_ephemere');
482
+        }
483
+    }
484
+
485
+    // si session anonyme on ne fait rien d'autre ici : les sessions anonymes sont non partagees
486
+    if (!$id_auteur) {
487
+        return;
488
+    }
489
+
490
+    // les préférences sont désérialisées, toujours.
491
+    // [fixme] Le champ 'prefs' sert aussi à l’inscription
492
+    if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
493
+        $auteur['prefs'] = @unserialize($auteur['prefs']);
494
+        if (!is_array($auteur['prefs'])) {
495
+            $auteur['prefs'] = [];
496
+        }
497
+    }
498
+
499
+    // memoriser l'auteur courant (celui qui modifie la fiche)
500
+    $sauve = $GLOBALS['visiteur_session'];
501
+
502
+    // .. mettre a jour les sessions de l'auteur cible
503
+    // attention au $ final pour ne pas risquer d'embarquer un .php.jeton temporaire
504
+    // cree par une ecriture concurente d'une session (fichier atomique temporaire)
505
+    $sessions = lister_sessions_auteur($id_auteur);
506
+
507
+    // 1ere passe : lire et fusionner les sessions
508
+    foreach ($sessions as $session) {
509
+        $GLOBALS['visiteur_session'] = [];
510
+        // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
511
+        if (
512
+            $session !== $fichier_session_courante
513
+            and @file_exists($session)
514
+        ) {
515
+            include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
516
+
517
+            $auteur = array_merge($GLOBALS['visiteur_session'], $auteur);
518
+        }
519
+    }
520
+
521
+    // supprimer les eventuelles cles dont on ne veut plus
522
+    foreach ($supprimer_cles as $cle) {
523
+        unset($auteur[$cle]);
524
+    }
525
+
526
+    $auteur_session = preparer_ecriture_session($auteur);
527
+
528
+    // seconde passe : ecrire les sessions qui ne sont pas a jour
529
+    foreach ($sessions as $session) {
530
+        $GLOBALS['visiteur_session'] = [];
531
+        // a pu etre supprime entre le preg initial et le moment ou l'on arrive la (concurrence)
532
+        if (@file_exists($session)) {
533
+            include $session; # $GLOBALS['visiteur_session'] est alors l'auteur cible
534
+
535
+            // est-ce que cette session est a mettre a jour ?
536
+            if ($auteur_session != $GLOBALS['visiteur_session']) {
537
+                ecrire_fichier_session($session, $auteur);
538
+            }
539
+        }
540
+    }
541
+
542
+    if ($id_auteur == $id_auteur_courant) {
543
+        $GLOBALS['visiteur_session'] = $auteur;
544
+        $GLOBALS['auteur_session'] = &$GLOBALS['visiteur_session'];
545
+    } else {
546
+        // restaurer l'auteur courant
547
+        $GLOBALS['visiteur_session'] = $sauve;
548
+    }
549 549
 }
550 550
 
551 551
 /**
@@ -559,48 +559,48 @@  discard block
 block discarded – undo
559 559
  */
560 560
 function lister_sessions_auteur($id_auteur, $nb_max = null) {
561 561
 
562
-	if (is_null($nb_max)) {
563
-		if (!defined('_NB_SESSIONS_MAX')) {
564
-			define('_NB_SESSIONS_MAX', 100);
565
-		}
566
-		$nb_max = _NB_SESSIONS_MAX;
567
-	}
568
-
569
-	// liste des sessions
570
-	$sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
571
-
572
-	// si on en a plus que la limite, supprimer les plus vieilles
573
-	// si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
574
-	if (
575
-		$id_auteur
576
-		and count($sessions) > $nb_max
577
-	) {
578
-		// limiter le nombre de sessions ouvertes par un auteur
579
-		// filemtime sur les sessions
580
-		$sessions = array_flip($sessions);
581
-
582
-		// 1ere passe : lire les filemtime
583
-		foreach ($sessions as $session => $z) {
584
-			if (
585
-				$d = @filemtime($session)
586
-			) {
587
-				$sessions[$session] = $d;
588
-			} else {
589
-				$sessions[$session] = 0;
590
-			}
591
-		}
592
-
593
-		// les plus anciennes en premier
594
-		asort($sessions);
595
-
596
-		$sessions = array_keys($sessions);
597
-		while (count($sessions) > $nb_max) {
598
-			$session = array_shift($sessions);
599
-			@unlink($session);
600
-		}
601
-	}
602
-
603
-	return $sessions;
562
+    if (is_null($nb_max)) {
563
+        if (!defined('_NB_SESSIONS_MAX')) {
564
+            define('_NB_SESSIONS_MAX', 100);
565
+        }
566
+        $nb_max = _NB_SESSIONS_MAX;
567
+    }
568
+
569
+    // liste des sessions
570
+    $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
571
+
572
+    // si on en a plus que la limite, supprimer les plus vieilles
573
+    // si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
574
+    if (
575
+        $id_auteur
576
+        and count($sessions) > $nb_max
577
+    ) {
578
+        // limiter le nombre de sessions ouvertes par un auteur
579
+        // filemtime sur les sessions
580
+        $sessions = array_flip($sessions);
581
+
582
+        // 1ere passe : lire les filemtime
583
+        foreach ($sessions as $session => $z) {
584
+            if (
585
+                $d = @filemtime($session)
586
+            ) {
587
+                $sessions[$session] = $d;
588
+            } else {
589
+                $sessions[$session] = 0;
590
+            }
591
+        }
592
+
593
+        // les plus anciennes en premier
594
+        asort($sessions);
595
+
596
+        $sessions = array_keys($sessions);
597
+        while (count($sessions) > $nb_max) {
598
+            $session = array_shift($sessions);
599
+            @unlink($session);
600
+        }
601
+    }
602
+
603
+    return $sessions;
604 604
 }
605 605
 
606 606
 
@@ -614,26 +614,26 @@  discard block
 block discarded – undo
614 614
  * @return array
615 615
  */
616 616
 function preparer_ecriture_session($auteur) {
617
-	$row = $auteur;
618
-
619
-	// ne pas enregistrer ces elements de securite
620
-	// dans le fichier de session
621
-	unset($auteur['pass']);
622
-	unset($auteur['htpass']);
623
-	unset($auteur['low_sec']);
624
-	unset($auteur['alea_actuel']);
625
-	unset($auteur['alea_futur']);
626
-
627
-	$auteur = pipeline('preparer_fichier_session', ['args' => ['row' => $row], 'data' => $auteur]);
628
-
629
-	// ne pas enregistrer les valeurs vraiment nulle dans le fichier
630
-	foreach ($auteur as $variable => $valeur) {
631
-		if ($valeur === null) {
632
-			unset($auteur[$variable]);
633
-		}
634
-	}
635
-
636
-	return $auteur;
617
+    $row = $auteur;
618
+
619
+    // ne pas enregistrer ces elements de securite
620
+    // dans le fichier de session
621
+    unset($auteur['pass']);
622
+    unset($auteur['htpass']);
623
+    unset($auteur['low_sec']);
624
+    unset($auteur['alea_actuel']);
625
+    unset($auteur['alea_futur']);
626
+
627
+    $auteur = pipeline('preparer_fichier_session', ['args' => ['row' => $row], 'data' => $auteur]);
628
+
629
+    // ne pas enregistrer les valeurs vraiment nulle dans le fichier
630
+    foreach ($auteur as $variable => $valeur) {
631
+        if ($valeur === null) {
632
+            unset($auteur[$variable]);
633
+        }
634
+    }
635
+
636
+    return $auteur;
637 637
 }
638 638
 
639 639
 /**
@@ -645,17 +645,17 @@  discard block
 block discarded – undo
645 645
  */
646 646
 function ecrire_fichier_session($fichier, $auteur) {
647 647
 
648
-	$auteur = preparer_ecriture_session($auteur);
648
+    $auteur = preparer_ecriture_session($auteur);
649 649
 
650
-	// enregistrer les autres donnees du visiteur
651
-	$texte = '<' . "?php\n";
652
-	foreach ($auteur as $var => $val) {
653
-		$texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
654
-			. var_export($val, true) . ";\n";
655
-	}
656
-	$texte .= '?' . ">\n";
650
+    // enregistrer les autres donnees du visiteur
651
+    $texte = '<' . "?php\n";
652
+    foreach ($auteur as $var => $val) {
653
+        $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
654
+            . var_export($val, true) . ";\n";
655
+    }
656
+    $texte .= '?' . ">\n";
657 657
 
658
-	return ecrire_fichier($fichier, $texte);
658
+    return ecrire_fichier($fichier, $texte);
659 659
 }
660 660
 
661 661
 
@@ -668,23 +668,23 @@  discard block
 block discarded – undo
668 668
  */
669 669
 function fichier_session($alea, $tantpis = false) {
670 670
 
671
-	include_spip('inc/acces');
672
-	charger_aleas();
671
+    include_spip('inc/acces');
672
+    charger_aleas();
673 673
 
674
-	if (empty($GLOBALS['meta'][$alea])) {
675
-		if (!$tantpis) {
676
-			spip_log("fichier session ($tantpis): $alea indisponible", 'session');
677
-			include_spip('inc/minipres');
678
-			echo minipres();
679
-		}
674
+    if (empty($GLOBALS['meta'][$alea])) {
675
+        if (!$tantpis) {
676
+            spip_log("fichier session ($tantpis): $alea indisponible", 'session');
677
+            include_spip('inc/minipres');
678
+            echo minipres();
679
+        }
680 680
 
681
-		return ''; // echec mais $tanpis
682
-	} else {
683
-		$repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
684
-		$c = $_COOKIE['spip_session'];
681
+        return ''; // echec mais $tanpis
682
+    } else {
683
+        $repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
684
+        $c = $_COOKIE['spip_session'];
685 685
 
686
-		return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
687
-	}
686
+        return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
687
+    }
688 688
 }
689 689
 
690 690
 
@@ -701,7 +701,7 @@  discard block
 block discarded – undo
701 701
  * @return string
702 702
  */
703 703
 function rejouer_session() {
704
-	return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
704
+    return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
705 705
 }
706 706
 
707 707
 
@@ -711,12 +711,12 @@  discard block
 block discarded – undo
711 711
  * @return string
712 712
  */
713 713
 function hash_env() {
714
-	static $res = '';
715
-	if ($res) {
716
-		return $res;
717
-	}
714
+    static $res = '';
715
+    if ($res) {
716
+        return $res;
717
+    }
718 718
 
719
-	return $res = md5($GLOBALS['ip'] . ($_SERVER['HTTP_USER_AGENT'] ?? ''));
719
+    return $res = md5($GLOBALS['ip'] . ($_SERVER['HTTP_USER_AGENT'] ?? ''));
720 720
 }
721 721
 
722 722
 
@@ -728,11 +728,11 @@  discard block
 block discarded – undo
728 728
  * @return bool True si une session PHP est ouverte.
729 729
  **/
730 730
 function spip_php_session_start() {
731
-	if (!is_php_session_started()) {
732
-		return session_start();
733
-	}
731
+    if (!is_php_session_started()) {
732
+        return session_start();
733
+    }
734 734
 
735
-	return true;
735
+    return true;
736 736
 }
737 737
 
738 738
 /**
@@ -742,9 +742,9 @@  discard block
 block discarded – undo
742 742
  * @return bool true si une session PHP est active
743 743
  **/
744 744
 function is_php_session_started() {
745
-	if (php_sapi_name() !== 'cli') {
746
-		return session_status() === PHP_SESSION_ACTIVE ? true : false;
747
-	}
745
+    if (php_sapi_name() !== 'cli') {
746
+        return session_status() === PHP_SESSION_ACTIVE ? true : false;
747
+    }
748 748
 
749
-	return false;
749
+    return false;
750 750
 }
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -82,13 +82,13 @@  discard block
 block discarded – undo
82 82
 	spip_log("supprimer sessions auteur $id_auteur", 'session');
83 83
 	if ($toutes or $id_auteur !== $GLOBALS['visiteur_session']['id_auteur']) {
84 84
 		if ($dir = opendir(_DIR_SESSIONS)) {
85
-			$t = $_SERVER['REQUEST_TIME']  - (4 * _RENOUVELLE_ALEA); // 48h par defaut
86
-			$t_short = $_SERVER['REQUEST_TIME']  - max(_RENOUVELLE_ALEA / 4, 3 * 3600); // 3h par defaut
85
+			$t = $_SERVER['REQUEST_TIME'] - (4 * _RENOUVELLE_ALEA); // 48h par defaut
86
+			$t_short = $_SERVER['REQUEST_TIME'] - max(_RENOUVELLE_ALEA / 4, 3 * 3600); // 3h par defaut
87 87
 			$t = time() - (4 * _RENOUVELLE_ALEA);
88 88
 			while (($f = readdir($dir)) !== false) {
89 89
 				$nb_files++;
90 90
 				if (preg_match(',^[^\d-]*(-?\d+)_\w{32}\.php[3]?$,', $f, $regs)) {
91
-					$f = _DIR_SESSIONS . $f;
91
+					$f = _DIR_SESSIONS.$f;
92 92
 					if (($actives and $regs[1] == $id_auteur) or ($t > filemtime($f))) {
93 93
 						spip_unlink($f);
94 94
 					}
@@ -171,9 +171,9 @@  discard block
 block discarded – undo
171 171
 
172 172
 	if (
173 173
 		!isset($_COOKIE['spip_session'])
174
-		or !preg_match(',^' . $id_auteur . '_,', $_COOKIE['spip_session'])
174
+		or !preg_match(',^'.$id_auteur.'_,', $_COOKIE['spip_session'])
175 175
 	) {
176
-		$_COOKIE['spip_session'] = $id_auteur . '_' . md5(uniqid(random_int(0, mt_getrandmax()), true));
176
+		$_COOKIE['spip_session'] = $id_auteur.'_'.md5(uniqid(random_int(0, mt_getrandmax()), true));
177 177
 	}
178 178
 
179 179
 	// Maintenant on sait qu'on a des choses à écrire
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
 	} else {
207 207
 		$fichier_session = fichier_session('alea_ephemere');
208 208
 		if (!ecrire_fichier_session($fichier_session, $auteur)) {
209
-			spip_log('Echec ecriture fichier session ' . $fichier_session, 'session' . _LOG_HS);
209
+			spip_log('Echec ecriture fichier session '.$fichier_session, 'session'._LOG_HS);
210 210
 			include_spip('inc/minipres');
211 211
 			echo minipres();
212 212
 			exit;
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
 		include_spip('inc/autoriser');
230 230
 	}
231 231
 	if (autoriser('ecrire', '', '', $auteur) and _DUREE_COOKIE_ADMIN) {
232
-		spip_setcookie('spip_admin', '@' . ($auteur['email'] ?: $auteur['login']), [
232
+		spip_setcookie('spip_admin', '@'.($auteur['email'] ?: $auteur['login']), [
233 233
 			'expires' => time() + max(_DUREE_COOKIE_ADMIN, $duree)
234 234
 		]);
235 235
 	} // sinon le supprimer ...
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
 			$coef = 20;
271 271
 		}
272 272
 	}
273
-	return (int)(_RENOUVELLE_ALEA * $coef);
273
+	return (int) (_RENOUVELLE_ALEA * $coef);
274 274
 }
275 275
 
276 276
 /**
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
 
319 319
 			// Renouveler la session avec l'alea courant
320 320
 			include($fichier_session);
321
-			spip_log('renouvelle session ' . $GLOBALS['visiteur_session']['id_auteur'], 'session');
321
+			spip_log('renouvelle session '.$GLOBALS['visiteur_session']['id_auteur'], 'session');
322 322
 			spip_unlink($fichier_session);
323 323
 			ajouter_session($GLOBALS['visiteur_session']);
324 324
 		}
@@ -350,7 +350,7 @@  discard block
 block discarded – undo
350 350
 		}
351 351
 	} else {
352 352
 		if ($change) {
353
-			spip_log("rejoue session $fichier_session " . $_COOKIE['spip_session'], 'session');
353
+			spip_log("rejoue session $fichier_session ".$_COOKIE['spip_session'], 'session');
354 354
 			if ($fichier_session) {
355 355
 				spip_unlink($fichier_session);
356 356
 			}
@@ -567,7 +567,7 @@  discard block
 block discarded – undo
567 567
 	}
568 568
 
569 569
 	// liste des sessions
570
-	$sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$');
570
+	$sessions = preg_files(_DIR_SESSIONS, '/'.$id_auteur.'_.*\.php$');
571 571
 
572 572
 	// si on en a plus que la limite, supprimer les plus vieilles
573 573
 	// si ce ne sont pas des sessions anonymes car elles sont alors chacune differentes
@@ -648,12 +648,12 @@  discard block
 block discarded – undo
648 648
 	$auteur = preparer_ecriture_session($auteur);
649 649
 
650 650
 	// enregistrer les autres donnees du visiteur
651
-	$texte = '<' . "?php\n";
651
+	$texte = '<'."?php\n";
652 652
 	foreach ($auteur as $var => $val) {
653
-		$texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
654
-			. var_export($val, true) . ";\n";
653
+		$texte .= '$GLOBALS[\'visiteur_session\']['.var_export($var, true).'] = '
654
+			. var_export($val, true).";\n";
655 655
 	}
656
-	$texte .= '?' . ">\n";
656
+	$texte .= '?'.">\n";
657 657
 
658 658
 	return ecrire_fichier($fichier, $texte);
659 659
 }
@@ -683,7 +683,7 @@  discard block
 block discarded – undo
683 683
 		$repertoire = sous_repertoire(_DIR_SESSIONS, '', false, $tantpis);
684 684
 		$c = $_COOKIE['spip_session'];
685 685
 
686
-		return $repertoire . intval($c) . '_' . md5($c . ' ' . $GLOBALS['meta'][$alea]) . '.php';
686
+		return $repertoire.intval($c).'_'.md5($c.' '.$GLOBALS['meta'][$alea]).'.php';
687 687
 	}
688 688
 }
689 689
 
@@ -701,7 +701,7 @@  discard block
 block discarded – undo
701 701
  * @return string
702 702
  */
703 703
 function rejouer_session() {
704
-	return '<img src="' . generer_url_action('cookie', 'change_session=oui', true) . '" width="0" height="0" alt="" />';
704
+	return '<img src="'.generer_url_action('cookie', 'change_session=oui', true).'" width="0" height="0" alt="" />';
705 705
 }
706 706
 
707 707
 
@@ -716,7 +716,7 @@  discard block
 block discarded – undo
716 716
 		return $res;
717 717
 	}
718 718
 
719
-	return $res = md5($GLOBALS['ip'] . ($_SERVER['HTTP_USER_AGENT'] ?? ''));
719
+	return $res = md5($GLOBALS['ip'].($_SERVER['HTTP_USER_AGENT'] ?? ''));
720 720
 }
721 721
 
722 722
 
Please login to merge, or discard this patch.