Completed
Push — master ( 07c08b...00f1f4 )
by cam
04:13
created
ecrire/inc/config.php 1 patch
Indentation   +400 added lines, -400 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
 
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
  * @return void
29 29
  */
30 30
 function inc_config_dist() {
31
-	actualise_metas(liste_metas());
31
+    actualise_metas(liste_metas());
32 32
 }
33 33
 
34 34
 /**
@@ -45,34 +45,34 @@  discard block
 block discarded – undo
45 45
  *     Liste (table, casier, sous_casier)
46 46
  */
47 47
 function expliquer_config($cfg) {
48
-	// par defaut, sur la table des meta
49
-	$table = 'meta';
50
-	$casier = null;
51
-	$sous_casier = array();
52
-	$cfg = explode('/', $cfg);
53
-
54
-	// si le premier argument est vide, c'est une syntaxe /table/ ou un appel vide ''
55
-	if (!reset($cfg) and count($cfg) > 1) {
56
-		array_shift($cfg);
57
-		$table = array_shift($cfg);
58
-		if (!isset($GLOBALS[$table])) {
59
-			lire_metas($table);
60
-		}
61
-	}
62
-
63
-	// si on a demande #CONFIG{/meta,'',0}
64
-	if (count($cfg)) {
65
-		// pas sur un appel vide ''
66
-		if ('' !== ($c = array_shift($cfg))) {
67
-			$casier = $c;
68
-		}
69
-	}
70
-
71
-	if (count($cfg)) {
72
-		$sous_casier = $cfg;
73
-	}
74
-
75
-	return array($table, $casier, $sous_casier);
48
+    // par defaut, sur la table des meta
49
+    $table = 'meta';
50
+    $casier = null;
51
+    $sous_casier = array();
52
+    $cfg = explode('/', $cfg);
53
+
54
+    // si le premier argument est vide, c'est une syntaxe /table/ ou un appel vide ''
55
+    if (!reset($cfg) and count($cfg) > 1) {
56
+        array_shift($cfg);
57
+        $table = array_shift($cfg);
58
+        if (!isset($GLOBALS[$table])) {
59
+            lire_metas($table);
60
+        }
61
+    }
62
+
63
+    // si on a demande #CONFIG{/meta,'',0}
64
+    if (count($cfg)) {
65
+        // pas sur un appel vide ''
66
+        if ('' !== ($c = array_shift($cfg))) {
67
+            $casier = $c;
68
+        }
69
+    }
70
+
71
+    if (count($cfg)) {
72
+        $sous_casier = $cfg;
73
+    }
74
+
75
+    return array($table, $casier, $sous_casier);
76 76
 }
77 77
 
78 78
 /**
@@ -100,65 +100,65 @@  discard block
 block discarded – undo
100 100
  *    Contenu de la configuration obtenue
101 101
  */
102 102
 function lire_config($cfg = '', $def = null, $unserialize = true) {
103
-	// lire le stockage sous la forme /table/valeur
104
-	// ou valeur qui est en fait implicitement /meta/valeur
105
-	// ou casier/valeur qui est en fait implicitement /meta/casier/valeur
106
-
107
-	// traiter en priorite le cas simple et frequent
108
-	// de lecture direct $GLOBALS['meta']['truc'], si $cfg ne contient ni / ni :
109
-	if ($cfg and strpbrk($cfg, '/:') === false) {
110
-		$r = isset($GLOBALS['meta'][$cfg]) ?
111
-			((!$unserialize
112
-				// ne pas essayer de deserialiser autre chose qu'une chaine
113
-				or !is_string($GLOBALS['meta'][$cfg])
114
-				// ne pas essayer de deserialiser si ce n'est visiblement pas une chaine serializee
115
-				or strpos($GLOBALS['meta'][$cfg], ':') === false
116
-				or ($t = @unserialize($GLOBALS['meta'][$cfg])) === false) ? $GLOBALS['meta'][$cfg] : $t)
117
-			: $def;
118
-
119
-		return $r;
120
-	}
121
-
122
-	// Brancher sur methodes externes si besoin
123
-	if ($cfg and $p = strpos($cfg, '::')) {
124
-		$methode = substr($cfg, 0, $p);
125
-		$lire_config = charger_fonction($methode, 'lire_config');
126
-
127
-		return $lire_config(substr($cfg, $p + 2), $def, $unserialize);
128
-	}
129
-
130
-	list($table, $casier, $sous_casier) = expliquer_config($cfg);
131
-
132
-	if (!isset($GLOBALS[$table])) {
133
-		return $def;
134
-	}
135
-
136
-	$r = $GLOBALS[$table];
137
-
138
-	// si on a demande #CONFIG{/meta,'',0}
139
-	if (!$casier) {
140
-		return $unserialize ? $r : serialize($r);
141
-	}
142
-
143
-	// casier principal :
144
-	// le deserializer si demande
145
-	// ou si on a besoin
146
-	// d'un sous casier
147
-	$r = isset($r[$casier]) ? $r[$casier] : null;
148
-	if (($unserialize or count($sous_casier)) and $r and is_string($r)) {
149
-		$r = (($t = @unserialize($r)) === false ? $r : $t);
150
-	}
151
-
152
-	// aller chercher le sous_casier
153
-	while (!is_null($r) and $casier = array_shift($sous_casier)) {
154
-		$r = isset($r[$casier]) ? $r[$casier] : null;
155
-	}
156
-
157
-	if (is_null($r)) {
158
-		return $def;
159
-	}
160
-
161
-	return $r;
103
+    // lire le stockage sous la forme /table/valeur
104
+    // ou valeur qui est en fait implicitement /meta/valeur
105
+    // ou casier/valeur qui est en fait implicitement /meta/casier/valeur
106
+
107
+    // traiter en priorite le cas simple et frequent
108
+    // de lecture direct $GLOBALS['meta']['truc'], si $cfg ne contient ni / ni :
109
+    if ($cfg and strpbrk($cfg, '/:') === false) {
110
+        $r = isset($GLOBALS['meta'][$cfg]) ?
111
+            ((!$unserialize
112
+                // ne pas essayer de deserialiser autre chose qu'une chaine
113
+                or !is_string($GLOBALS['meta'][$cfg])
114
+                // ne pas essayer de deserialiser si ce n'est visiblement pas une chaine serializee
115
+                or strpos($GLOBALS['meta'][$cfg], ':') === false
116
+                or ($t = @unserialize($GLOBALS['meta'][$cfg])) === false) ? $GLOBALS['meta'][$cfg] : $t)
117
+            : $def;
118
+
119
+        return $r;
120
+    }
121
+
122
+    // Brancher sur methodes externes si besoin
123
+    if ($cfg and $p = strpos($cfg, '::')) {
124
+        $methode = substr($cfg, 0, $p);
125
+        $lire_config = charger_fonction($methode, 'lire_config');
126
+
127
+        return $lire_config(substr($cfg, $p + 2), $def, $unserialize);
128
+    }
129
+
130
+    list($table, $casier, $sous_casier) = expliquer_config($cfg);
131
+
132
+    if (!isset($GLOBALS[$table])) {
133
+        return $def;
134
+    }
135
+
136
+    $r = $GLOBALS[$table];
137
+
138
+    // si on a demande #CONFIG{/meta,'',0}
139
+    if (!$casier) {
140
+        return $unserialize ? $r : serialize($r);
141
+    }
142
+
143
+    // casier principal :
144
+    // le deserializer si demande
145
+    // ou si on a besoin
146
+    // d'un sous casier
147
+    $r = isset($r[$casier]) ? $r[$casier] : null;
148
+    if (($unserialize or count($sous_casier)) and $r and is_string($r)) {
149
+        $r = (($t = @unserialize($r)) === false ? $r : $t);
150
+    }
151
+
152
+    // aller chercher le sous_casier
153
+    while (!is_null($r) and $casier = array_shift($sous_casier)) {
154
+        $r = isset($r[$casier]) ? $r[$casier] : null;
155
+    }
156
+
157
+    if (is_null($r)) {
158
+        return $def;
159
+    }
160
+
161
+    return $r;
162 162
 }
163 163
 
164 164
 /**
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
  * @return mixed
173 173
  */
174 174
 function lire_config_metapack_dist($cfg = '', $def = null, $unserialize = true) {
175
-	return lire_config($cfg, $def, $unserialize);
175
+    return lire_config($cfg, $def, $unserialize);
176 176
 }
177 177
 
178 178
 
@@ -184,98 +184,98 @@  discard block
 block discarded – undo
184 184
  * @return bool
185 185
  */
186 186
 function ecrire_config($cfg, $store) {
187
-	// Brancher sur methodes externes si besoin
188
-	if ($cfg and $p = strpos($cfg, '::')) {
189
-		$methode = substr($cfg, 0, $p);
190
-		$ecrire_config = charger_fonction($methode, 'ecrire_config');
191
-
192
-		return $ecrire_config(substr($cfg, $p + 2), $store);
193
-	}
194
-
195
-	list($table, $casier, $sous_casier) = expliquer_config($cfg);
196
-	// il faut au moins un casier pour ecrire
197
-	if (!$casier) {
198
-		return false;
199
-	}
200
-
201
-	// trouvons ou creons le pointeur sur le casier
202
-	$st = isset($GLOBALS[$table][$casier]) ? $GLOBALS[$table][$casier] : null;
203
-	if (!is_array($st) and ($sous_casier or is_array($store))) {
204
-		$st = unserialize($st);
205
-		if ($st === false) {
206
-			// ne rien creer si c'est une demande d'effacement
207
-			if (is_null($store)) {
208
-				return false;
209
-			}
210
-			$st = array();
211
-		}
212
-	}
213
-
214
-	// si on a affaire a un sous caiser
215
-	// il faut ecrire au bon endroit sans perdre les autres sous casier freres
216
-	if ($c = $sous_casier) {
217
-		$sc = &$st;
218
-		$pointeurs = array();
219
-		while (count($c) and $cc = array_shift($c)) {
220
-			// creer l'entree si elle n'existe pas
221
-			if (!isset($sc[$cc])) {
222
-				// si on essaye d'effacer une config qui n'existe pas
223
-				// ne rien creer mais sortir
224
-				if (is_null($store)) {
225
-					return false;
226
-				}
227
-				$sc[$cc] = array();
228
-			}
229
-			$pointeurs[$cc] = &$sc;
230
-			$sc = &$sc[$cc];
231
-		}
232
-
233
-		// si c'est une demande d'effacement
234
-		if (is_null($store)) {
235
-			$c = $sous_casier;
236
-			$sous = array_pop($c);
237
-			// effacer, et remonter pour effacer les parents vides
238
-			do {
239
-				unset($pointeurs[$sous][$sous]);
240
-			} while ($sous = array_pop($c) and !count($pointeurs[$sous][$sous]));
241
-
242
-			// si on a vide tous les sous casiers,
243
-			// et que le casier est vide
244
-			// vider aussi la meta
245
-			if (!$sous and !count($st)) {
246
-				$st = null;
247
-			}
248
-		} // dans tous les autres cas, on ecrase
249
-		else {
250
-			$sc = $store;
251
-		}
252
-
253
-		// Maintenant que $st est modifiee
254
-		// reprenons la comme valeur a stocker dans le casier principal
255
-		$store = $st;
256
-	}
257
-
258
-	if (is_null($store)) {
259
-		if (is_null($st) and !$sous_casier) {
260
-			return false;
261
-		} // la config n'existait deja pas !
262
-		effacer_meta($casier, $table);
263
-		supprimer_table_meta($table); // supprimons la table (si elle est bien vide)
264
-	} // les meta ne peuvent etre que des chaines : il faut serializer le reste
265
-	else {
266
-		if (!isset($GLOBALS[$table])) {
267
-			installer_table_meta($table);
268
-		}
269
-		// si ce n'est pas une chaine
270
-		// il faut serializer
271
-		if (!is_string($store)) {
272
-			$store = serialize($store);
273
-		}
274
-		ecrire_meta($casier, $store, null, $table);
275
-	}
276
-
277
-	// verifier que lire_config($cfg)==$store ?
278
-	return true;
187
+    // Brancher sur methodes externes si besoin
188
+    if ($cfg and $p = strpos($cfg, '::')) {
189
+        $methode = substr($cfg, 0, $p);
190
+        $ecrire_config = charger_fonction($methode, 'ecrire_config');
191
+
192
+        return $ecrire_config(substr($cfg, $p + 2), $store);
193
+    }
194
+
195
+    list($table, $casier, $sous_casier) = expliquer_config($cfg);
196
+    // il faut au moins un casier pour ecrire
197
+    if (!$casier) {
198
+        return false;
199
+    }
200
+
201
+    // trouvons ou creons le pointeur sur le casier
202
+    $st = isset($GLOBALS[$table][$casier]) ? $GLOBALS[$table][$casier] : null;
203
+    if (!is_array($st) and ($sous_casier or is_array($store))) {
204
+        $st = unserialize($st);
205
+        if ($st === false) {
206
+            // ne rien creer si c'est une demande d'effacement
207
+            if (is_null($store)) {
208
+                return false;
209
+            }
210
+            $st = array();
211
+        }
212
+    }
213
+
214
+    // si on a affaire a un sous caiser
215
+    // il faut ecrire au bon endroit sans perdre les autres sous casier freres
216
+    if ($c = $sous_casier) {
217
+        $sc = &$st;
218
+        $pointeurs = array();
219
+        while (count($c) and $cc = array_shift($c)) {
220
+            // creer l'entree si elle n'existe pas
221
+            if (!isset($sc[$cc])) {
222
+                // si on essaye d'effacer une config qui n'existe pas
223
+                // ne rien creer mais sortir
224
+                if (is_null($store)) {
225
+                    return false;
226
+                }
227
+                $sc[$cc] = array();
228
+            }
229
+            $pointeurs[$cc] = &$sc;
230
+            $sc = &$sc[$cc];
231
+        }
232
+
233
+        // si c'est une demande d'effacement
234
+        if (is_null($store)) {
235
+            $c = $sous_casier;
236
+            $sous = array_pop($c);
237
+            // effacer, et remonter pour effacer les parents vides
238
+            do {
239
+                unset($pointeurs[$sous][$sous]);
240
+            } while ($sous = array_pop($c) and !count($pointeurs[$sous][$sous]));
241
+
242
+            // si on a vide tous les sous casiers,
243
+            // et que le casier est vide
244
+            // vider aussi la meta
245
+            if (!$sous and !count($st)) {
246
+                $st = null;
247
+            }
248
+        } // dans tous les autres cas, on ecrase
249
+        else {
250
+            $sc = $store;
251
+        }
252
+
253
+        // Maintenant que $st est modifiee
254
+        // reprenons la comme valeur a stocker dans le casier principal
255
+        $store = $st;
256
+    }
257
+
258
+    if (is_null($store)) {
259
+        if (is_null($st) and !$sous_casier) {
260
+            return false;
261
+        } // la config n'existait deja pas !
262
+        effacer_meta($casier, $table);
263
+        supprimer_table_meta($table); // supprimons la table (si elle est bien vide)
264
+    } // les meta ne peuvent etre que des chaines : il faut serializer le reste
265
+    else {
266
+        if (!isset($GLOBALS[$table])) {
267
+            installer_table_meta($table);
268
+        }
269
+        // si ce n'est pas une chaine
270
+        // il faut serializer
271
+        if (!is_string($store)) {
272
+            $store = serialize($store);
273
+        }
274
+        ecrire_meta($casier, $store, null, $table);
275
+    }
276
+
277
+    // verifier que lire_config($cfg)==$store ?
278
+    return true;
279 279
 }
280 280
 
281 281
 
@@ -289,14 +289,14 @@  discard block
 block discarded – undo
289 289
  * @return bool
290 290
  */
291 291
 function ecrire_config_metapack_dist($cfg, $store) {
292
-	// cas particulier en metapack::
293
-	// si on ecrit une chaine deja serializee, il faut la reserializer pour la rendre
294
-	// intacte en sortie ...
295
-	if (is_string($store) and strpos($store, ':') and unserialize($store)) {
296
-		$store = serialize($store);
297
-	}
298
-
299
-	return ecrire_config($cfg, $store);
292
+    // cas particulier en metapack::
293
+    // si on ecrit une chaine deja serializee, il faut la reserializer pour la rendre
294
+    // intacte en sortie ...
295
+    if (is_string($store) and strpos($store, ':') and unserialize($store)) {
296
+        $store = serialize($store);
297
+    }
298
+
299
+    return ecrire_config($cfg, $store);
300 300
 }
301 301
 
302 302
 /**
@@ -306,9 +306,9 @@  discard block
 block discarded – undo
306 306
  * @return bool
307 307
  */
308 308
 function effacer_config($cfg) {
309
-	ecrire_config($cfg, null);
309
+    ecrire_config($cfg, null);
310 310
 
311
-	return true;
311
+    return true;
312 312
 }
313 313
 
314 314
 /**
@@ -325,71 +325,71 @@  discard block
 block discarded – undo
325 325
  * @return array
326 326
  */
327 327
 function lister_configurer($exclure = array()) {
328
-	return array();
329
-
330
-	// lister les pages de config deja dans les menus
331
-	$deja = array();
332
-	foreach ($exclure as $id => $b) {
333
-		$url = ($b['url'] ? $b['url'] : $id);
334
-		if (!$b['url'] or !isset($exclure[$url])) {
335
-			if (strncmp($url, 'configurer_', 11) == 0) {
336
-				$deja[$url] = $b;
337
-			} elseif ($b['url'] == 'configurer' and preg_match(',cfg=([a-z0-9_]+),i', $b['args'], $match)) {
338
-				$deja["configurer_" . $match[1]] = $b;
339
-			}
340
-		}
341
-
342
-	}
343
-	$exclure = $exclure + $deja;
344
-
345
-	$icone_defaut = "images/configuration-16.png";
346
-	$liste = array();
347
-	$skels = array();
348
-	$forms = array();
349
-
350
-	// trouver toutes les pages configurer_xxx de l'espace prive
351
-	// et construire un tableau des entrees qui ne sont pas dans $deja
352
-	$pages = find_all_in_path("prive/squelettes/contenu/", "configurer_.*[.]" . _EXTENSION_SQUELETTES . '$');
353
-
354
-	foreach ($pages as $page) {
355
-		$configurer = basename($page, "." . _EXTENSION_SQUELETTES);
356
-		if (!isset($exclure[$configurer])) {
357
-			$liste[$configurer] = array(
358
-				'parent' => 'bando_configuration',
359
-				'url' => $configurer,
360
-				'titre' => _T("configurer:{$configurer}_titre"),
361
-				'icone' => find_in_theme($i = "images/{$configurer}-16.png") ? $i : $icone_defaut,
362
-			);
363
-		}
364
-		$skels[$configurer] = $page;
365
-	}
366
-
367
-	// analyser la liste des $skels pour voir les #FORMULAIRE_CONFIGURER_ inclus
368
-	foreach ($skels as $file) {
369
-		$forms = array_merge($forms, lister_formulaires_configurer($file));
370
-	}
371
-	$forms = array_flip($forms);
372
-
373
-	// trouver tous les formulaires/configurer_
374
-	// et construire un tableau des entrees
375
-	$pages = find_all_in_path("formulaires/", "configurer_.*[.]" . _EXTENSION_SQUELETTES . '$');
376
-	foreach ($pages as $page) {
377
-		$configurer = basename($page, "." . _EXTENSION_SQUELETTES);
378
-		if (!isset($forms[$configurer])
379
-			and !isset($liste[$configurer])
380
-			and !isset($exclure[$configurer])
381
-		) {
382
-			$liste[$configurer] = array(
383
-				'parent' => 'bando_configuration',
384
-				'url' => 'configurer',
385
-				'args' => 'cfg=' . substr($configurer, 11),
386
-				'titre' => _T("configurer:{$configurer}_titre"),
387
-				'icone' => find_in_theme($i = "images/{$configurer}-16.png") ? $i : $icone_defaut,
388
-			);
389
-		}
390
-	}
391
-
392
-	return $liste;
328
+    return array();
329
+
330
+    // lister les pages de config deja dans les menus
331
+    $deja = array();
332
+    foreach ($exclure as $id => $b) {
333
+        $url = ($b['url'] ? $b['url'] : $id);
334
+        if (!$b['url'] or !isset($exclure[$url])) {
335
+            if (strncmp($url, 'configurer_', 11) == 0) {
336
+                $deja[$url] = $b;
337
+            } elseif ($b['url'] == 'configurer' and preg_match(',cfg=([a-z0-9_]+),i', $b['args'], $match)) {
338
+                $deja["configurer_" . $match[1]] = $b;
339
+            }
340
+        }
341
+
342
+    }
343
+    $exclure = $exclure + $deja;
344
+
345
+    $icone_defaut = "images/configuration-16.png";
346
+    $liste = array();
347
+    $skels = array();
348
+    $forms = array();
349
+
350
+    // trouver toutes les pages configurer_xxx de l'espace prive
351
+    // et construire un tableau des entrees qui ne sont pas dans $deja
352
+    $pages = find_all_in_path("prive/squelettes/contenu/", "configurer_.*[.]" . _EXTENSION_SQUELETTES . '$');
353
+
354
+    foreach ($pages as $page) {
355
+        $configurer = basename($page, "." . _EXTENSION_SQUELETTES);
356
+        if (!isset($exclure[$configurer])) {
357
+            $liste[$configurer] = array(
358
+                'parent' => 'bando_configuration',
359
+                'url' => $configurer,
360
+                'titre' => _T("configurer:{$configurer}_titre"),
361
+                'icone' => find_in_theme($i = "images/{$configurer}-16.png") ? $i : $icone_defaut,
362
+            );
363
+        }
364
+        $skels[$configurer] = $page;
365
+    }
366
+
367
+    // analyser la liste des $skels pour voir les #FORMULAIRE_CONFIGURER_ inclus
368
+    foreach ($skels as $file) {
369
+        $forms = array_merge($forms, lister_formulaires_configurer($file));
370
+    }
371
+    $forms = array_flip($forms);
372
+
373
+    // trouver tous les formulaires/configurer_
374
+    // et construire un tableau des entrees
375
+    $pages = find_all_in_path("formulaires/", "configurer_.*[.]" . _EXTENSION_SQUELETTES . '$');
376
+    foreach ($pages as $page) {
377
+        $configurer = basename($page, "." . _EXTENSION_SQUELETTES);
378
+        if (!isset($forms[$configurer])
379
+            and !isset($liste[$configurer])
380
+            and !isset($exclure[$configurer])
381
+        ) {
382
+            $liste[$configurer] = array(
383
+                'parent' => 'bando_configuration',
384
+                'url' => 'configurer',
385
+                'args' => 'cfg=' . substr($configurer, 11),
386
+                'titre' => _T("configurer:{$configurer}_titre"),
387
+                'icone' => find_in_theme($i = "images/{$configurer}-16.png") ? $i : $icone_defaut,
388
+            );
389
+        }
390
+    }
391
+
392
+    return $liste;
393 393
 }
394 394
 
395 395
 
@@ -403,35 +403,35 @@  discard block
 block discarded – undo
403 403
  *    Liste des formulaires trouvés
404 404
  **/
405 405
 function lister_formulaires_configurer($file) {
406
-	$forms = array();
407
-
408
-	lire_fichier($file, $skel);
409
-	if (preg_match_all(",#FORMULAIRE_(CONFIGURER_[A-Z0-9_]*),", $skel, $matches, PREG_SET_ORDER)) {
410
-		$matches = array_map('end', $matches);
411
-		$matches = array_map('strtolower', $matches);
412
-		$forms = array_merge($forms, $matches);
413
-	}
414
-
415
-	// evaluer le fond en lui passant un exec coherent pour que les pipelines le reconnaissent
416
-	// et reperer les formulaires CVT configurer_xx insereres par les plugins via pipeline
417
-	$config = basename(substr($file, 0, -strlen("." . _EXTENSION_SQUELETTES)));
418
-	spip_log('Calcul de ' . "prive/squelettes/contenu/$config");
419
-	$fond = recuperer_fond("prive/squelettes/contenu/$config", array("exec" => $config));
420
-
421
-	// passer dans le pipeline affiche_milieu pour que les plugins puissent ajouter leur formulaires...
422
-	// et donc que l'on puisse les referencer aussi !
423
-	$fond = pipeline('affiche_milieu', array('args' => array("exec" => $config), 'data' => $fond));
424
-
425
-	// recuperer les noms des formulaires presents.
426
-	if (is_array($inputs = extraire_balises($fond, "input"))) {
427
-		foreach ($inputs as $i) {
428
-			if (extraire_attribut($i, 'name') == 'formulaire_action') {
429
-				$forms[] = ($c = extraire_attribut($i, 'value'));
430
-			}
431
-		}
432
-	}
433
-
434
-	return $forms;
406
+    $forms = array();
407
+
408
+    lire_fichier($file, $skel);
409
+    if (preg_match_all(",#FORMULAIRE_(CONFIGURER_[A-Z0-9_]*),", $skel, $matches, PREG_SET_ORDER)) {
410
+        $matches = array_map('end', $matches);
411
+        $matches = array_map('strtolower', $matches);
412
+        $forms = array_merge($forms, $matches);
413
+    }
414
+
415
+    // evaluer le fond en lui passant un exec coherent pour que les pipelines le reconnaissent
416
+    // et reperer les formulaires CVT configurer_xx insereres par les plugins via pipeline
417
+    $config = basename(substr($file, 0, -strlen("." . _EXTENSION_SQUELETTES)));
418
+    spip_log('Calcul de ' . "prive/squelettes/contenu/$config");
419
+    $fond = recuperer_fond("prive/squelettes/contenu/$config", array("exec" => $config));
420
+
421
+    // passer dans le pipeline affiche_milieu pour que les plugins puissent ajouter leur formulaires...
422
+    // et donc que l'on puisse les referencer aussi !
423
+    $fond = pipeline('affiche_milieu', array('args' => array("exec" => $config), 'data' => $fond));
424
+
425
+    // recuperer les noms des formulaires presents.
426
+    if (is_array($inputs = extraire_balises($fond, "input"))) {
427
+        foreach ($inputs as $i) {
428
+            if (extraire_attribut($i, 'name') == 'formulaire_action') {
429
+                $forms[] = ($c = extraire_attribut($i, 'value'));
430
+            }
431
+        }
432
+    }
433
+
434
+    return $forms;
435 435
 }
436 436
 
437 437
 
@@ -449,58 +449,58 @@  discard block
 block discarded – undo
449 449
  *    Couples nom de la `meta` => valeur par défaut
450 450
  */
451 451
 function liste_metas() {
452
-	return pipeline('configurer_liste_metas', array(
453
-		'nom_site' => _T('info_mon_site_spip'),
454
-		'slogan_site' => '',
455
-		'adresse_site' => preg_replace(",/$,", "", url_de_base()),
456
-		'descriptif_site' => '',
457
-		'activer_logos' => 'oui',
458
-		'activer_logos_survol' => 'non',
459
-		'articles_surtitre' => 'non',
460
-		'articles_soustitre' => 'non',
461
-		'articles_descriptif' => 'non',
462
-		'articles_chapeau' => 'non',
463
-		'articles_texte' => 'oui',
464
-		'articles_ps' => 'non',
465
-		'articles_redac' => 'non',
466
-		'post_dates' => 'non',
467
-		'articles_urlref' => 'non',
468
-		'articles_redirection' => 'non',
469
-		'creer_preview' => 'non',
470
-		'taille_preview' => 150,
471
-		'articles_modif' => 'non',
472
-
473
-		'rubriques_descriptif' => 'non',
474
-		'rubriques_texte' => 'oui',
475
-
476
-		'accepter_inscriptions' => 'non',
477
-		'accepter_visiteurs' => 'non',
478
-		'prevenir_auteurs' => 'non',
479
-		'suivi_edito' => 'non',
480
-		'adresse_suivi' => '',
481
-		'adresse_suivi_inscription' => '',
482
-		'adresse_neuf' => '',
483
-		'jours_neuf' => '',
484
-		'quoi_de_neuf' => 'non',
485
-		'preview' => ',0minirezo,1comite,',
486
-
487
-		'syndication_integrale' => 'oui',
488
-		'charset' => _DEFAULT_CHARSET,
489
-		'dir_img' => substr(_DIR_IMG, strlen(_DIR_RACINE)),
490
-
491
-		'multi_rubriques' => 'non',
492
-		'multi_secteurs' => 'non',
493
-		'gerer_trad' => 'non',
494
-		'langues_multilingue' => '',
495
-
496
-		'version_html_max' => 'html4',
497
-
498
-		'type_urls' => 'page',
499
-
500
-		'email_envoi' => '',
501
-		'email_webmaster' => '',
502
-		'auto_compress_http' => 'non',
503
-	));
452
+    return pipeline('configurer_liste_metas', array(
453
+        'nom_site' => _T('info_mon_site_spip'),
454
+        'slogan_site' => '',
455
+        'adresse_site' => preg_replace(",/$,", "", url_de_base()),
456
+        'descriptif_site' => '',
457
+        'activer_logos' => 'oui',
458
+        'activer_logos_survol' => 'non',
459
+        'articles_surtitre' => 'non',
460
+        'articles_soustitre' => 'non',
461
+        'articles_descriptif' => 'non',
462
+        'articles_chapeau' => 'non',
463
+        'articles_texte' => 'oui',
464
+        'articles_ps' => 'non',
465
+        'articles_redac' => 'non',
466
+        'post_dates' => 'non',
467
+        'articles_urlref' => 'non',
468
+        'articles_redirection' => 'non',
469
+        'creer_preview' => 'non',
470
+        'taille_preview' => 150,
471
+        'articles_modif' => 'non',
472
+
473
+        'rubriques_descriptif' => 'non',
474
+        'rubriques_texte' => 'oui',
475
+
476
+        'accepter_inscriptions' => 'non',
477
+        'accepter_visiteurs' => 'non',
478
+        'prevenir_auteurs' => 'non',
479
+        'suivi_edito' => 'non',
480
+        'adresse_suivi' => '',
481
+        'adresse_suivi_inscription' => '',
482
+        'adresse_neuf' => '',
483
+        'jours_neuf' => '',
484
+        'quoi_de_neuf' => 'non',
485
+        'preview' => ',0minirezo,1comite,',
486
+
487
+        'syndication_integrale' => 'oui',
488
+        'charset' => _DEFAULT_CHARSET,
489
+        'dir_img' => substr(_DIR_IMG, strlen(_DIR_RACINE)),
490
+
491
+        'multi_rubriques' => 'non',
492
+        'multi_secteurs' => 'non',
493
+        'gerer_trad' => 'non',
494
+        'langues_multilingue' => '',
495
+
496
+        'version_html_max' => 'html4',
497
+
498
+        'type_urls' => 'page',
499
+
500
+        'email_envoi' => '',
501
+        'email_webmaster' => '',
502
+        'auto_compress_http' => 'non',
503
+    ));
504 504
 }
505 505
 
506 506
 /**
@@ -511,43 +511,43 @@  discard block
 block discarded – undo
511 511
  * @return void
512 512
  */
513 513
 function actualise_metas($liste_meta) {
514
-	$meta_serveur =
515
-		array(
516
-			'version_installee',
517
-			'adresse_site',
518
-			'alea_ephemere_ancien',
519
-			'alea_ephemere',
520
-			'alea_ephemere_date',
521
-			'langue_site',
522
-			'langues_proposees',
523
-			'date_calcul_rubriques',
524
-			'derniere_modif',
525
-			'optimiser_table',
526
-			'drapeau_edition',
527
-			'creer_preview',
528
-			'taille_preview',
529
-			'creer_htpasswd',
530
-			'creer_htaccess',
531
-			'gd_formats_read',
532
-			'gd_formats',
533
-			'netpbm_formats',
534
-			'formats_graphiques',
535
-			'image_process',
536
-			'plugin_header',
537
-			'plugin'
538
-		);
539
-	// verifier le impt=non
540
-	sql_updateq('spip_meta', array('impt' => 'non'), sql_in('nom', $meta_serveur));
541
-
542
-	foreach ($liste_meta as $nom => $valeur) {
543
-		if (empty($GLOBALS['meta'][$nom])) {
544
-			ecrire_meta($nom, $valeur);
545
-		}
546
-	}
547
-
548
-	include_spip('inc/rubriques');
549
-	$langues = calculer_langues_utilisees();
550
-	ecrire_meta('langues_utilisees', $langues);
514
+    $meta_serveur =
515
+        array(
516
+            'version_installee',
517
+            'adresse_site',
518
+            'alea_ephemere_ancien',
519
+            'alea_ephemere',
520
+            'alea_ephemere_date',
521
+            'langue_site',
522
+            'langues_proposees',
523
+            'date_calcul_rubriques',
524
+            'derniere_modif',
525
+            'optimiser_table',
526
+            'drapeau_edition',
527
+            'creer_preview',
528
+            'taille_preview',
529
+            'creer_htpasswd',
530
+            'creer_htaccess',
531
+            'gd_formats_read',
532
+            'gd_formats',
533
+            'netpbm_formats',
534
+            'formats_graphiques',
535
+            'image_process',
536
+            'plugin_header',
537
+            'plugin'
538
+        );
539
+    // verifier le impt=non
540
+    sql_updateq('spip_meta', array('impt' => 'non'), sql_in('nom', $meta_serveur));
541
+
542
+    foreach ($liste_meta as $nom => $valeur) {
543
+        if (empty($GLOBALS['meta'][$nom])) {
544
+            ecrire_meta($nom, $valeur);
545
+        }
546
+    }
547
+
548
+    include_spip('inc/rubriques');
549
+    $langues = calculer_langues_utilisees();
550
+    ecrire_meta('langues_utilisees', $langues);
551 551
 }
552 552
 
553 553
 
@@ -569,18 +569,18 @@  discard block
 block discarded – undo
569 569
  */
570 570
 function appliquer_modifs_config($purger_skel = false) {
571 571
 
572
-	foreach (liste_metas() as $i => $v) {
573
-		if (($x = _request($i)) !== null) {
574
-			ecrire_meta($i, $x);
575
-		} elseif (!isset($GLOBALS['meta'][$i])) {
576
-			ecrire_meta($i, $v);
577
-		}
578
-	}
579
-
580
-	if ($purger_skel) {
581
-		include_spip('inc/invalideur');
582
-		purger_repertoire(_DIR_SKELS);
583
-	}
572
+    foreach (liste_metas() as $i => $v) {
573
+        if (($x = _request($i)) !== null) {
574
+            ecrire_meta($i, $x);
575
+        } elseif (!isset($GLOBALS['meta'][$i])) {
576
+            ecrire_meta($i, $v);
577
+        }
578
+    }
579
+
580
+    if ($purger_skel) {
581
+        include_spip('inc/invalideur');
582
+        purger_repertoire(_DIR_SKELS);
583
+    }
584 584
 }
585 585
 
586 586
 /**
@@ -591,21 +591,21 @@  discard block
 block discarded – undo
591 591
  * @return string
592 592
  */
593 593
 function appliquer_adresse_site($adresse_site) {
594
-	if ($adresse_site !== null) {
595
-		if (!strlen($adresse_site)) {
596
-			$GLOBALS['profondeur_url'] = _DIR_RESTREINT ? 0 : 1;
597
-			$adresse_site = url_de_base();
598
-		}
599
-		$adresse_site = preg_replace(",/?\s*$,", "", $adresse_site);
594
+    if ($adresse_site !== null) {
595
+        if (!strlen($adresse_site)) {
596
+            $GLOBALS['profondeur_url'] = _DIR_RESTREINT ? 0 : 1;
597
+            $adresse_site = url_de_base();
598
+        }
599
+        $adresse_site = preg_replace(",/?\s*$,", "", $adresse_site);
600 600
 
601
-		if (!tester_url_absolue($adresse_site)) {
602
-			$adresse_site = "http://$adresse_site";
603
-		}
601
+        if (!tester_url_absolue($adresse_site)) {
602
+            $adresse_site = "http://$adresse_site";
603
+        }
604 604
 
605
-		$adresse_site = entites_html($adresse_site);
605
+        $adresse_site = entites_html($adresse_site);
606 606
 
607
-		ecrire_meta('adresse_site', $adresse_site);
608
-	}
607
+        ecrire_meta('adresse_site', $adresse_site);
608
+    }
609 609
 
610
-	return $adresse_site;
610
+    return $adresse_site;
611 611
 }
Please login to merge, or discard this patch.