Completed
Push — master ( fb0017...92433c )
by cam
01:14
created
prive/formulaires/configurer_articles.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -11,65 +11,65 @@
 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 formulaires_configurer_articles_charger_dist() {
18
-	$valeurs = [];
19
-	foreach (
20
-		[
21
-			'articles_surtitre',
22
-			'articles_soustitre',
23
-			'articles_descriptif',
24
-			'articles_chapeau',
25
-			'articles_texte',
26
-			'articles_ps',
27
-			'articles_redac',
28
-			'articles_urlref',
29
-			'post_dates',
30
-			'articles_redirection',
31
-		] as $m
32
-	) {
33
-		$valeurs[$m] = $GLOBALS['meta'][$m];
34
-	}
18
+    $valeurs = [];
19
+    foreach (
20
+        [
21
+            'articles_surtitre',
22
+            'articles_soustitre',
23
+            'articles_descriptif',
24
+            'articles_chapeau',
25
+            'articles_texte',
26
+            'articles_ps',
27
+            'articles_redac',
28
+            'articles_urlref',
29
+            'post_dates',
30
+            'articles_redirection',
31
+        ] as $m
32
+    ) {
33
+        $valeurs[$m] = $GLOBALS['meta'][$m];
34
+    }
35 35
 
36
-	return $valeurs;
36
+    return $valeurs;
37 37
 }
38 38
 
39 39
 
40 40
 function formulaires_configurer_articles_traiter_dist() {
41
-	$res = ['editable' => true];
42
-	$purger_skel = false;
43
-	// Purger les squelettes si un changement de meta les affecte
44
-	if ($i = _request('post_dates') and ($i != $GLOBALS['meta']['post_dates'])) {
45
-		$purger_skel = true;
46
-	}
41
+    $res = ['editable' => true];
42
+    $purger_skel = false;
43
+    // Purger les squelettes si un changement de meta les affecte
44
+    if ($i = _request('post_dates') and ($i != $GLOBALS['meta']['post_dates'])) {
45
+        $purger_skel = true;
46
+    }
47 47
 
48
-	foreach (
49
-		[
50
-			'articles_surtitre',
51
-			'articles_soustitre',
52
-			'articles_descriptif',
53
-			'articles_chapeau',
54
-			'articles_texte',
55
-			'articles_ps',
56
-			'articles_redac',
57
-			'articles_urlref',
58
-			'post_dates',
59
-			'articles_redirection',
60
-		] as $m
61
-	) {
62
-		if (!is_null($v = _request($m))) {
63
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
64
-		}
65
-	}
48
+    foreach (
49
+        [
50
+            'articles_surtitre',
51
+            'articles_soustitre',
52
+            'articles_descriptif',
53
+            'articles_chapeau',
54
+            'articles_texte',
55
+            'articles_ps',
56
+            'articles_redac',
57
+            'articles_urlref',
58
+            'post_dates',
59
+            'articles_redirection',
60
+        ] as $m
61
+    ) {
62
+        if (!is_null($v = _request($m))) {
63
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
64
+        }
65
+    }
66 66
 
67
-	if ($purger_skel) {
68
-		include_spip('inc/invalideur');
69
-		purger_repertoire(_DIR_SKELS);
70
-	}
67
+    if ($purger_skel) {
68
+        include_spip('inc/invalideur');
69
+        purger_repertoire(_DIR_SKELS);
70
+    }
71 71
 
72
-	$res['message_ok'] = _T('config_info_enregistree');
72
+    $res['message_ok'] = _T('config_info_enregistree');
73 73
 
74
-	return $res;
74
+    return $res;
75 75
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_avertisseur.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -11,37 +11,37 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 include_spip('inc/presentation');
17 17
 
18 18
 function formulaires_configurer_avertisseur_charger_dist() {
19
-	$valeurs = [];
20
-	foreach (
21
-		[
22
-			'articles_modif',
23
-		] as $m
24
-	) {
25
-		$valeurs[$m] = $GLOBALS['meta'][$m];
26
-	}
27
-
28
-	return $valeurs;
19
+    $valeurs = [];
20
+    foreach (
21
+        [
22
+            'articles_modif',
23
+        ] as $m
24
+    ) {
25
+        $valeurs[$m] = $GLOBALS['meta'][$m];
26
+    }
27
+
28
+    return $valeurs;
29 29
 }
30 30
 
31 31
 
32 32
 function formulaires_configurer_avertisseur_traiter_dist() {
33
-	$res = ['editable' => true];
34
-	foreach (
35
-		[
36
-			'articles_modif',
37
-		] as $m
38
-	) {
39
-		if (!is_null($v = _request($m))) {
40
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
41
-		}
42
-	}
43
-
44
-	$res['message_ok'] = _T('config_info_enregistree');
45
-
46
-	return $res;
33
+    $res = ['editable' => true];
34
+    foreach (
35
+        [
36
+            'articles_modif',
37
+        ] as $m
38
+    ) {
39
+        if (!is_null($v = _request($m))) {
40
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
41
+        }
42
+    }
43
+
44
+    $res['message_ok'] = _T('config_info_enregistree');
45
+
46
+    return $res;
47 47
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_visiteurs.php 1 patch
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -11,51 +11,51 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 include_spip('inc/presentation');
17 17
 
18 18
 function formulaires_configurer_visiteurs_charger_dist() {
19
-	$valeurs = [];
20
-	if (avoir_visiteurs(false, false)) {
21
-		$valeurs['editable'] = false;
22
-	}
23
-
24
-	foreach (
25
-		[
26
-			'accepter_visiteurs'
27
-		] as $m
28
-	) {
29
-		$valeurs[$m] = $GLOBALS['meta'][$m];
30
-	}
31
-
32
-	return $valeurs;
19
+    $valeurs = [];
20
+    if (avoir_visiteurs(false, false)) {
21
+        $valeurs['editable'] = false;
22
+    }
23
+
24
+    foreach (
25
+        [
26
+            'accepter_visiteurs'
27
+        ] as $m
28
+    ) {
29
+        $valeurs[$m] = $GLOBALS['meta'][$m];
30
+    }
31
+
32
+    return $valeurs;
33 33
 }
34 34
 
35 35
 
36 36
 function formulaires_configurer_visiteurs_traiter_dist() {
37
-	$res = ['editable' => true];
38
-	// Modification du reglage accepter_inscriptions => vider le cache
39
-	// (pour repercuter la modif sur le panneau de login)
40
-	if (
41
-		($i = _request('accepter_visiteurs')
42
-		and $i != $GLOBALS['meta']['accepter_visiteurs'])
43
-	) {
44
-		include_spip('inc/invalideur');
45
-		suivre_invalideur('1'); # tout effacer
46
-	}
47
-
48
-	foreach (
49
-		[
50
-			'accepter_visiteurs',
51
-		] as $m
52
-	) {
53
-		if (!is_null($v = _request($m))) {
54
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
55
-		}
56
-	}
57
-
58
-	$res['message_ok'] = _T('config_info_enregistree');
59
-
60
-	return $res;
37
+    $res = ['editable' => true];
38
+    // Modification du reglage accepter_inscriptions => vider le cache
39
+    // (pour repercuter la modif sur le panneau de login)
40
+    if (
41
+        ($i = _request('accepter_visiteurs')
42
+        and $i != $GLOBALS['meta']['accepter_visiteurs'])
43
+    ) {
44
+        include_spip('inc/invalideur');
45
+        suivre_invalideur('1'); # tout effacer
46
+    }
47
+
48
+    foreach (
49
+        [
50
+            'accepter_visiteurs',
51
+        ] as $m
52
+    ) {
53
+        if (!is_null($v = _request($m))) {
54
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
55
+        }
56
+    }
57
+
58
+    $res['message_ok'] = _T('config_info_enregistree');
59
+
60
+    return $res;
61 61
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_rubriques.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -11,38 +11,38 @@
 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 formulaires_configurer_rubriques_charger_dist() {
18
-	$valeurs = [];
19
-	foreach (
20
-		[
21
-			'rubriques_descriptif',
22
-			'rubriques_texte'
23
-		] as $m
24
-	) {
25
-		$valeurs[$m] = $GLOBALS['meta'][$m];
26
-	}
27
-
28
-	return $valeurs;
18
+    $valeurs = [];
19
+    foreach (
20
+        [
21
+            'rubriques_descriptif',
22
+            'rubriques_texte'
23
+        ] as $m
24
+    ) {
25
+        $valeurs[$m] = $GLOBALS['meta'][$m];
26
+    }
27
+
28
+    return $valeurs;
29 29
 }
30 30
 
31 31
 
32 32
 function formulaires_configurer_rubriques_traiter_dist() {
33
-	$res = ['editable' => true];
34
-	foreach (
35
-		[
36
-			'rubriques_descriptif',
37
-			'rubriques_texte'
38
-		] as $m
39
-	) {
40
-		if (!is_null($v = _request($m))) {
41
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
42
-		}
43
-	}
44
-
45
-	$res['message_ok'] = _T('config_info_enregistree');
46
-
47
-	return $res;
33
+    $res = ['editable' => true];
34
+    foreach (
35
+        [
36
+            'rubriques_descriptif',
37
+            'rubriques_texte'
38
+        ] as $m
39
+    ) {
40
+        if (!is_null($v = _request($m))) {
41
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
42
+        }
43
+    }
44
+
45
+    $res['message_ok'] = _T('config_info_enregistree');
46
+
47
+    return $res;
48 48
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_flux.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -11,36 +11,36 @@
 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 formulaires_configurer_flux_charger_dist() {
18
-	$valeurs = [];
19
-	foreach (
20
-		[
21
-			'syndication_integrale'
22
-		] as $m
23
-	) {
24
-		$valeurs[$m] = $GLOBALS['meta'][$m];
25
-	}
26
-
27
-	return $valeurs;
18
+    $valeurs = [];
19
+    foreach (
20
+        [
21
+            'syndication_integrale'
22
+        ] as $m
23
+    ) {
24
+        $valeurs[$m] = $GLOBALS['meta'][$m];
25
+    }
26
+
27
+    return $valeurs;
28 28
 }
29 29
 
30 30
 
31 31
 function formulaires_configurer_flux_traiter_dist() {
32
-	$res = ['editable' => true];
33
-	foreach (
34
-		[
35
-			'syndication_integrale',
36
-		] as $m
37
-	) {
38
-		if (!is_null($v = _request($m))) {
39
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
40
-		}
41
-	}
42
-
43
-	$res['message_ok'] = _T('config_info_enregistree');
44
-
45
-	return $res;
32
+    $res = ['editable' => true];
33
+    foreach (
34
+        [
35
+            'syndication_integrale',
36
+        ] as $m
37
+    ) {
38
+        if (!is_null($v = _request($m))) {
39
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
40
+        }
41
+    }
42
+
43
+    $res['message_ok'] = _T('config_info_enregistree');
44
+
45
+    return $res;
46 46
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_logos.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -11,38 +11,38 @@
 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 formulaires_configurer_logos_charger_dist() {
18
-	$valeurs = [];
19
-	foreach (
20
-		[
21
-			'activer_logos',
22
-			'activer_logos_survol'
23
-		] as $m
24
-	) {
25
-		$valeurs[$m] = $GLOBALS['meta'][$m];
26
-	}
27
-
28
-	return $valeurs;
18
+    $valeurs = [];
19
+    foreach (
20
+        [
21
+            'activer_logos',
22
+            'activer_logos_survol'
23
+        ] as $m
24
+    ) {
25
+        $valeurs[$m] = $GLOBALS['meta'][$m];
26
+    }
27
+
28
+    return $valeurs;
29 29
 }
30 30
 
31 31
 
32 32
 function formulaires_configurer_logos_traiter_dist() {
33
-	$res = ['editable' => true];
34
-	foreach (
35
-		[
36
-			'activer_logos',
37
-			'activer_logos_survol',
38
-		] as $m
39
-	) {
40
-		if (!is_null($v = _request($m))) {
41
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
42
-		}
43
-	}
44
-
45
-	$res['message_ok'] = _T('config_info_enregistree');
46
-
47
-	return $res;
33
+    $res = ['editable' => true];
34
+    foreach (
35
+        [
36
+            'activer_logos',
37
+            'activer_logos_survol',
38
+        ] as $m
39
+    ) {
40
+        if (!is_null($v = _request($m))) {
41
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
42
+        }
43
+    }
44
+
45
+    $res['message_ok'] = _T('config_info_enregistree');
46
+
47
+    return $res;
48 48
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_redacteurs.php 1 patch
Indentation   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -11,46 +11,46 @@
 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 formulaires_configurer_redacteurs_charger_dist() {
18
-	$valeurs = [];
19
-	foreach (
20
-		[
21
-			'accepter_inscriptions',
22
-		] as $m
23
-	) {
24
-		$valeurs[$m] = $GLOBALS['meta'][$m];
25
-	}
26
-
27
-	return $valeurs;
18
+    $valeurs = [];
19
+    foreach (
20
+        [
21
+            'accepter_inscriptions',
22
+        ] as $m
23
+    ) {
24
+        $valeurs[$m] = $GLOBALS['meta'][$m];
25
+    }
26
+
27
+    return $valeurs;
28 28
 }
29 29
 
30 30
 
31 31
 function formulaires_configurer_redacteurs_traiter_dist() {
32
-	$res = ['editable' => true];
33
-	// Modification du reglage accepter_inscriptions => vider le cache
34
-	// (pour repercuter la modif sur le panneau de login)
35
-	if (
36
-		($i = _request('accepter_inscriptions')
37
-		and $i != $GLOBALS['meta']['accepter_inscriptions'])
38
-	) {
39
-		include_spip('inc/invalideur');
40
-		suivre_invalideur('1'); # tout effacer
41
-	}
42
-
43
-	foreach (
44
-		[
45
-			'accepter_inscriptions',
46
-		] as $m
47
-	) {
48
-		if (!is_null($v = _request($m))) {
49
-			ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
50
-		}
51
-	}
52
-
53
-	$res['message_ok'] = _T('config_info_enregistree');
54
-
55
-	return $res;
32
+    $res = ['editable' => true];
33
+    // Modification du reglage accepter_inscriptions => vider le cache
34
+    // (pour repercuter la modif sur le panneau de login)
35
+    if (
36
+        ($i = _request('accepter_inscriptions')
37
+        and $i != $GLOBALS['meta']['accepter_inscriptions'])
38
+    ) {
39
+        include_spip('inc/invalideur');
40
+        suivre_invalideur('1'); # tout effacer
41
+    }
42
+
43
+    foreach (
44
+        [
45
+            'accepter_inscriptions',
46
+        ] as $m
47
+    ) {
48
+        if (!is_null($v = _request($m))) {
49
+            ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
50
+        }
51
+    }
52
+
53
+    $res['message_ok'] = _T('config_info_enregistree');
54
+
55
+    return $res;
56 56
 }
Please login to merge, or discard this patch.
ecrire/public/cacher.php 3 patches
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
 function generer_nom_fichier_cache($contexte, $page) {
30 30
 	$u = md5(var_export([$contexte, $page], true));
31 31
 
32
-	return $u . '.cache';
32
+	return $u.'.cache';
33 33
 }
34 34
 
35 35
 /**
@@ -61,10 +61,10 @@  discard block
 block discarded – undo
61 61
 	}
62 62
 	else {
63 63
 		// en lecture on essaye pas de creer les repertoires, on va au plus vite
64
-		$rep = _DIR_CACHE . "calcul/$d/";
64
+		$rep = _DIR_CACHE."calcul/$d/";
65 65
 	}
66 66
 
67
-	return $rep . $u . '.cache';
67
+	return $rep.$u.'.cache';
68 68
 }
69 69
 
70 70
 /**
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
 		);
116 116
 	}
117 117
 
118
-	return crc32($GLOBALS['meta']['cache_signature'] . $page['texte']);
118
+	return crc32($GLOBALS['meta']['cache_signature'].$page['texte']);
119 119
 }
120 120
 
121 121
 /**
@@ -271,7 +271,7 @@  discard block
 block discarded – undo
271 271
 		// "cache sessionne" ; sa date indique la date de validite
272 272
 		// des caches sessionnes
273 273
 		if (!$tmp = lire_cache($chemin_cache)) {
274
-			spip_log('Creation cache sessionne ' . $chemin_cache);
274
+			spip_log('Creation cache sessionne '.$chemin_cache);
275 275
 			$tmp = [
276 276
 				'invalideurs' => ['session' => ''],
277 277
 				'lastmodified' => $_SERVER['REQUEST_TIME']
@@ -297,8 +297,8 @@  discard block
 block discarded – undo
297 297
 	// l'enregistrer, compresse ou non...
298 298
 	$ok = ecrire_cache($chemin_cache, $pagez);
299 299
 
300
-	spip_log((_IS_BOT ? 'Bot:' : '') . "Creation du cache $chemin_cache pour "
301
-		. $page['entetes']['X-Spip-Cache'] . ' secondes' . ($ok ? '' : ' (erreur!)'), _LOG_INFO);
300
+	spip_log((_IS_BOT ? 'Bot:' : '')."Creation du cache $chemin_cache pour "
301
+		. $page['entetes']['X-Spip-Cache'].' secondes'.($ok ? '' : ' (erreur!)'), _LOG_INFO);
302 302
 
303 303
 	// Inserer ses invalideurs
304 304
 	include_spip('inc/invalideur');
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 function nettoyer_petit_cache($prefix, $duree = 300) {
320 320
 	// determiner le repertoire a purger : 'tmp/CACHE/rech/'
321 321
 	$dircache = sous_repertoire(_DIR_CACHE, $prefix);
322
-	if (spip_touch($dircache . 'purger_' . $prefix, $duree, true)) {
322
+	if (spip_touch($dircache.'purger_'.$prefix, $duree, true)) {
323 323
 		foreach (preg_files($dircache, '[.]txt$') as $f) {
324 324
 			if ($_SERVER['REQUEST_TIME'] - (@file_exists($f) ? @filemtime($f) : 0) > $duree) {
325 325
 				spip_unlink($f);
@@ -414,9 +414,9 @@  discard block
 block discarded – undo
414 414
 		if (spip_connect()) {
415 415
 			include_spip('inc/invalideur');
416 416
 			retire_caches($chemin_cache); # API invalideur inutile
417
-			supprimer_fichier(_DIR_CACHE . $chemin_cache);
417
+			supprimer_fichier(_DIR_CACHE.$chemin_cache);
418 418
 			if (isset($chemin_cache_session) and $chemin_cache_session) {
419
-				supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
419
+				supprimer_fichier(_DIR_CACHE.$chemin_cache_session);
420 420
 			}
421 421
 		}
422 422
 	}
@@ -433,9 +433,9 @@  discard block
 block discarded – undo
433 433
 		$page = ['contexte_implicite' => $contexte_implicite]; // ignorer le cache deja lu
434 434
 		include_spip('inc/invalideur');
435 435
 		retire_caches($chemin_cache); # API invalideur inutile
436
-		supprimer_fichier(_DIR_CACHE . $chemin_cache);
436
+		supprimer_fichier(_DIR_CACHE.$chemin_cache);
437 437
 		if (isset($chemin_cache_session) and $chemin_cache_session) {
438
-			supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
438
+			supprimer_fichier(_DIR_CACHE.$chemin_cache_session);
439 439
 		}
440 440
 	}
441 441
 
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -58,8 +58,7 @@
 block discarded – undo
58 58
 		$rep = sous_repertoire(_DIR_CACHE, '', false, true);
59 59
 		$rep = sous_repertoire($rep, 'calcul/', false, true);
60 60
 		$rep = sous_repertoire($rep, $d, false, true);
61
-	}
62
-	else {
61
+	} else {
63 62
 		// en lecture on essaye pas de creer les repertoires, on va au plus vite
64 63
 		$rep = _DIR_CACHE . "calcul/$d/";
65 64
 	}
Please login to merge, or discard this patch.
Indentation   +321 added lines, -321 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
 /**
@@ -25,9 +25,9 @@  discard block
 block discarded – undo
25 25
  * @return string
26 26
  */
27 27
 function generer_nom_fichier_cache($contexte, $page) {
28
-	$u = md5(var_export([$contexte, $page], true));
28
+    $u = md5(var_export([$contexte, $page], true));
29 29
 
30
-	return $u . '.cache';
30
+    return $u . '.cache';
31 31
 }
32 32
 
33 33
 /**
@@ -43,26 +43,26 @@  discard block
 block discarded – undo
43 43
  * @return string
44 44
  */
45 45
 function cache_chemin_fichier($nom_cache, $ecrire = false) {
46
-	static $l1, $l2;
47
-	if (is_null($l1)) {
48
-		$length = (defined('_CACHE_PROFONDEUR_STOCKAGE') ? min(8, max(_CACHE_PROFONDEUR_STOCKAGE, 2)) : 4);
49
-		$l1 = intval(floor($length / 2));
50
-		$l2 = $length - $l1;
51
-	}
52
-	$d = substr($nom_cache, 0, $l1);
53
-	$u = substr($nom_cache, $l1, $l2);
54
-
55
-	if ($ecrire) {
56
-		$rep = sous_repertoire(_DIR_CACHE, '', false, true);
57
-		$rep = sous_repertoire($rep, 'calcul/', false, true);
58
-		$rep = sous_repertoire($rep, $d, false, true);
59
-	}
60
-	else {
61
-		// en lecture on essaye pas de creer les repertoires, on va au plus vite
62
-		$rep = _DIR_CACHE . "calcul/$d/";
63
-	}
64
-
65
-	return $rep . $u . '.cache';
46
+    static $l1, $l2;
47
+    if (is_null($l1)) {
48
+        $length = (defined('_CACHE_PROFONDEUR_STOCKAGE') ? min(8, max(_CACHE_PROFONDEUR_STOCKAGE, 2)) : 4);
49
+        $l1 = intval(floor($length / 2));
50
+        $l2 = $length - $l1;
51
+    }
52
+    $d = substr($nom_cache, 0, $l1);
53
+    $u = substr($nom_cache, $l1, $l2);
54
+
55
+    if ($ecrire) {
56
+        $rep = sous_repertoire(_DIR_CACHE, '', false, true);
57
+        $rep = sous_repertoire($rep, 'calcul/', false, true);
58
+        $rep = sous_repertoire($rep, $d, false, true);
59
+    }
60
+    else {
61
+        // en lecture on essaye pas de creer les repertoires, on va au plus vite
62
+        $rep = _DIR_CACHE . "calcul/$d/";
63
+    }
64
+
65
+    return $rep . $u . '.cache';
66 66
 }
67 67
 
68 68
 /**
@@ -73,7 +73,7 @@  discard block
 block discarded – undo
73 73
  * @return bool
74 74
  */
75 75
 function ecrire_cache($nom_cache, $valeur) {
76
-	return ecrire_fichier(cache_chemin_fichier($nom_cache, true), serialize(['nom_cache' => $nom_cache, 'valeur' => $valeur]));
76
+    return ecrire_fichier(cache_chemin_fichier($nom_cache, true), serialize(['nom_cache' => $nom_cache, 'valeur' => $valeur]));
77 77
 }
78 78
 
79 79
 /**
@@ -83,38 +83,38 @@  discard block
 block discarded – undo
83 83
  * @return mixed
84 84
  */
85 85
 function lire_cache($nom_cache) {
86
-	$tmp = [];
87
-	if (
88
-		file_exists($f = cache_chemin_fichier($nom_cache))
89
-		and lire_fichier($f, $tmp)
90
-		and $tmp = unserialize($tmp)
91
-		and $tmp['nom_cache'] == $nom_cache
92
-		and isset($tmp['valeur'])
93
-	) {
94
-		return $tmp['valeur'];
95
-	}
96
-
97
-	return false;
86
+    $tmp = [];
87
+    if (
88
+        file_exists($f = cache_chemin_fichier($nom_cache))
89
+        and lire_fichier($f, $tmp)
90
+        and $tmp = unserialize($tmp)
91
+        and $tmp['nom_cache'] == $nom_cache
92
+        and isset($tmp['valeur'])
93
+    ) {
94
+        return $tmp['valeur'];
95
+    }
96
+
97
+    return false;
98 98
 }
99 99
 
100 100
 // Parano : on signe le cache, afin d'interdire un hack d'injection
101 101
 // dans notre memcache
102 102
 function cache_signature(&$page) {
103
-	if (!isset($GLOBALS['meta']['cache_signature'])) {
104
-		include_spip('inc/acces');
105
-		include_spip('auth/sha256.inc');
106
-		ecrire_meta(
107
-			'cache_signature',
108
-			spip_sha256(
109
-				$_SERVER['DOCUMENT_ROOT']
110
-				. ($_SERVER['SERVER_SIGNATURE'] ?? '')
111
-				. creer_uniqid()
112
-			),
113
-			'non'
114
-		);
115
-	}
116
-
117
-	return crc32($GLOBALS['meta']['cache_signature'] . $page['texte']);
103
+    if (!isset($GLOBALS['meta']['cache_signature'])) {
104
+        include_spip('inc/acces');
105
+        include_spip('auth/sha256.inc');
106
+        ecrire_meta(
107
+            'cache_signature',
108
+            spip_sha256(
109
+                $_SERVER['DOCUMENT_ROOT']
110
+                . ($_SERVER['SERVER_SIGNATURE'] ?? '')
111
+                . creer_uniqid()
112
+            ),
113
+            'non'
114
+        );
115
+    }
116
+
117
+    return crc32($GLOBALS['meta']['cache_signature'] . $page['texte']);
118 118
 }
119 119
 
120 120
 /**
@@ -127,14 +127,14 @@  discard block
 block discarded – undo
127 127
  * @return array
128 128
  */
129 129
 function gzip_page($page) {
130
-	if (function_exists('gzcompress') and strlen($page['texte']) > 16 * 1024) {
131
-		$page['gz'] = true;
132
-		$page['texte'] = gzcompress($page['texte']);
133
-	} else {
134
-		$page['gz'] = false;
135
-	}
136
-
137
-	return $page;
130
+    if (function_exists('gzcompress') and strlen($page['texte']) > 16 * 1024) {
131
+        $page['gz'] = true;
132
+        $page['texte'] = gzcompress($page['texte']);
133
+    } else {
134
+        $page['gz'] = false;
135
+    }
136
+
137
+    return $page;
138 138
 }
139 139
 
140 140
 /**
@@ -147,10 +147,10 @@  discard block
 block discarded – undo
147 147
  * @return void
148 148
  */
149 149
 function gunzip_page(&$page) {
150
-	if ($page['gz']) {
151
-		$page['texte'] = gzuncompress($page['texte']);
152
-		$page['gz'] = false; // ne pas gzuncompress deux fois une meme page
153
-	}
150
+    if ($page['gz']) {
151
+        $page['texte'] = gzuncompress($page['texte']);
152
+        $page['gz'] = false; // ne pas gzuncompress deux fois une meme page
153
+    }
154 154
 }
155 155
 
156 156
 /**
@@ -165,72 +165,72 @@  discard block
 block discarded – undo
165 165
  * -1 si il faut calculer sans stocker en cache
166 166
  */
167 167
 function cache_valide(&$page, $date) {
168
-	$now = $_SERVER['REQUEST_TIME'];
169
-
170
-	// Apparition d'un nouvel article post-date ?
171
-	if (
172
-		isset($GLOBALS['meta']['post_dates'])
173
-		and $GLOBALS['meta']['post_dates'] == 'non'
174
-		and isset($GLOBALS['meta']['date_prochain_postdate'])
175
-		and $now > $GLOBALS['meta']['date_prochain_postdate']
176
-	) {
177
-		spip_log('Un article post-date invalide le cache');
178
-		include_spip('inc/rubriques');
179
-		calculer_prochain_postdate(true);
180
-	}
181
-
182
-	if (defined('_VAR_NOCACHE') and _VAR_NOCACHE) {
183
-		return -1;
184
-	}
185
-	if (isset($GLOBALS['meta']['cache_inhib']) and $_SERVER['REQUEST_TIME'] < $GLOBALS['meta']['cache_inhib']) {
186
-		return -1;
187
-	}
188
-	if (defined('_NO_CACHE')) {
189
-		return (_NO_CACHE == 0 and !isset($page['texte'])) ? 1 : _NO_CACHE;
190
-	}
191
-
192
-	// pas de cache ? on le met a jour, sauf pour les bots (on leur calcule la page sans mise en cache)
193
-	if (!$page or !isset($page['texte']) or !isset($page['entetes']['X-Spip-Cache'])) {
194
-		return _IS_BOT ? -1 : 1;
195
-	}
196
-
197
-	// controle de la signature
198
-	if ($page['sig'] !== cache_signature($page)) {
199
-		return _IS_BOT ? -1 : 1;
200
-	}
201
-
202
-	// #CACHE{n,statique} => on n'invalide pas avec derniere_modif
203
-	// cf. ecrire/public/balises.php, balise_CACHE_dist()
204
-	if (!isset($page['entetes']['X-Spip-Statique']) or $page['entetes']['X-Spip-Statique'] !== 'oui') {
205
-		// Cache invalide par la meta 'derniere_modif'
206
-		// sauf pour les bots, qui utilisent toujours le cache
207
-		if (
208
-			!_IS_BOT
209
-			and $GLOBALS['derniere_modif_invalide']
210
-			and isset($GLOBALS['meta']['derniere_modif'])
211
-			and $date < $GLOBALS['meta']['derniere_modif']
212
-		) {
213
-			return 1;
214
-		}
215
-	}
216
-
217
-	// Sinon comparer l'age du fichier a sa duree de cache
218
-	$duree = intval($page['entetes']['X-Spip-Cache']);
219
-	$cache_mark = ($GLOBALS['meta']['cache_mark'] ?? 0);
220
-	if ($duree == 0) {  #CACHE{0}
221
-	return -1;
222
-	} // sauf pour les bots, qui utilisent toujours le cache
223
-	else {
224
-		if (
225
-			(!_IS_BOT and $date + $duree < $now)
226
-			# le cache est anterieur a la derniere purge : l'ignorer, meme pour les bots
227
-			or $date < $cache_mark
228
-		) {
229
-			return _IS_BOT ? -1 : 1;
230
-		} else {
231
-			return 0;
232
-		}
233
-	}
168
+    $now = $_SERVER['REQUEST_TIME'];
169
+
170
+    // Apparition d'un nouvel article post-date ?
171
+    if (
172
+        isset($GLOBALS['meta']['post_dates'])
173
+        and $GLOBALS['meta']['post_dates'] == 'non'
174
+        and isset($GLOBALS['meta']['date_prochain_postdate'])
175
+        and $now > $GLOBALS['meta']['date_prochain_postdate']
176
+    ) {
177
+        spip_log('Un article post-date invalide le cache');
178
+        include_spip('inc/rubriques');
179
+        calculer_prochain_postdate(true);
180
+    }
181
+
182
+    if (defined('_VAR_NOCACHE') and _VAR_NOCACHE) {
183
+        return -1;
184
+    }
185
+    if (isset($GLOBALS['meta']['cache_inhib']) and $_SERVER['REQUEST_TIME'] < $GLOBALS['meta']['cache_inhib']) {
186
+        return -1;
187
+    }
188
+    if (defined('_NO_CACHE')) {
189
+        return (_NO_CACHE == 0 and !isset($page['texte'])) ? 1 : _NO_CACHE;
190
+    }
191
+
192
+    // pas de cache ? on le met a jour, sauf pour les bots (on leur calcule la page sans mise en cache)
193
+    if (!$page or !isset($page['texte']) or !isset($page['entetes']['X-Spip-Cache'])) {
194
+        return _IS_BOT ? -1 : 1;
195
+    }
196
+
197
+    // controle de la signature
198
+    if ($page['sig'] !== cache_signature($page)) {
199
+        return _IS_BOT ? -1 : 1;
200
+    }
201
+
202
+    // #CACHE{n,statique} => on n'invalide pas avec derniere_modif
203
+    // cf. ecrire/public/balises.php, balise_CACHE_dist()
204
+    if (!isset($page['entetes']['X-Spip-Statique']) or $page['entetes']['X-Spip-Statique'] !== 'oui') {
205
+        // Cache invalide par la meta 'derniere_modif'
206
+        // sauf pour les bots, qui utilisent toujours le cache
207
+        if (
208
+            !_IS_BOT
209
+            and $GLOBALS['derniere_modif_invalide']
210
+            and isset($GLOBALS['meta']['derniere_modif'])
211
+            and $date < $GLOBALS['meta']['derniere_modif']
212
+        ) {
213
+            return 1;
214
+        }
215
+    }
216
+
217
+    // Sinon comparer l'age du fichier a sa duree de cache
218
+    $duree = intval($page['entetes']['X-Spip-Cache']);
219
+    $cache_mark = ($GLOBALS['meta']['cache_mark'] ?? 0);
220
+    if ($duree == 0) {  #CACHE{0}
221
+    return -1;
222
+    } // sauf pour les bots, qui utilisent toujours le cache
223
+    else {
224
+        if (
225
+            (!_IS_BOT and $date + $duree < $now)
226
+            # le cache est anterieur a la derniere purge : l'ignorer, meme pour les bots
227
+            or $date < $cache_mark
228
+        ) {
229
+            return _IS_BOT ? -1 : 1;
230
+        } else {
231
+            return 0;
232
+        }
233
+    }
234 234
 }
235 235
 
236 236
 /**
@@ -243,59 +243,59 @@  discard block
 block discarded – undo
243 243
  */
244 244
 function creer_cache(&$page, &$chemin_cache) {
245 245
 
246
-	// Ne rien faire si on est en preview, debug, ou si une erreur
247
-	// grave s'est presentee (compilation du squelette, MySQL, etc)
248
-	// le cas var_nocache ne devrait jamais arriver ici (securite)
249
-	// le cas spip_interdire_cache correspond a une ereur SQL grave non anticipable
250
-	if (
251
-		(defined('_VAR_NOCACHE') and _VAR_NOCACHE)
252
-		or defined('spip_interdire_cache')
253
-	) {
254
-		return;
255
-	}
256
-
257
-	// Si la page c1234 a un invalideur de session 'zz', sauver dans
258
-	// 'tmp/cache/MD5(chemin_cache)_zz'
259
-	if (
260
-		isset($page['invalideurs'])
261
-		and isset($page['invalideurs']['session'])
262
-	) {
263
-		// on verifie que le contenu du chemin cache indique seulement
264
-		// "cache sessionne" ; sa date indique la date de validite
265
-		// des caches sessionnes
266
-		if (!$tmp = lire_cache($chemin_cache)) {
267
-			spip_log('Creation cache sessionne ' . $chemin_cache);
268
-			$tmp = [
269
-				'invalideurs' => ['session' => ''],
270
-				'lastmodified' => $_SERVER['REQUEST_TIME']
271
-			];
272
-			ecrire_cache($chemin_cache, $tmp);
273
-		}
274
-		$chemin_cache = generer_nom_fichier_cache(
275
-			['chemin_cache' => $chemin_cache],
276
-			['session' => $page['invalideurs']['session']]
277
-		);
278
-	}
279
-
280
-	// ajouter la date de production dans le cache lui meme
281
-	// (qui contient deja sa duree de validite)
282
-	$page['lastmodified'] = $_SERVER['REQUEST_TIME'];
283
-
284
-	// compresser le contenu si besoin
285
-	$pagez = gzip_page($page);
286
-
287
-	// signer le contenu
288
-	$pagez['sig'] = cache_signature($pagez);
289
-
290
-	// l'enregistrer, compresse ou non...
291
-	$ok = ecrire_cache($chemin_cache, $pagez);
292
-
293
-	spip_log((_IS_BOT ? 'Bot:' : '') . "Creation du cache $chemin_cache pour "
294
-		. $page['entetes']['X-Spip-Cache'] . ' secondes' . ($ok ? '' : ' (erreur!)'), _LOG_INFO);
295
-
296
-	// Inserer ses invalideurs
297
-	include_spip('inc/invalideur');
298
-	maj_invalideurs($chemin_cache, $page);
246
+    // Ne rien faire si on est en preview, debug, ou si une erreur
247
+    // grave s'est presentee (compilation du squelette, MySQL, etc)
248
+    // le cas var_nocache ne devrait jamais arriver ici (securite)
249
+    // le cas spip_interdire_cache correspond a une ereur SQL grave non anticipable
250
+    if (
251
+        (defined('_VAR_NOCACHE') and _VAR_NOCACHE)
252
+        or defined('spip_interdire_cache')
253
+    ) {
254
+        return;
255
+    }
256
+
257
+    // Si la page c1234 a un invalideur de session 'zz', sauver dans
258
+    // 'tmp/cache/MD5(chemin_cache)_zz'
259
+    if (
260
+        isset($page['invalideurs'])
261
+        and isset($page['invalideurs']['session'])
262
+    ) {
263
+        // on verifie que le contenu du chemin cache indique seulement
264
+        // "cache sessionne" ; sa date indique la date de validite
265
+        // des caches sessionnes
266
+        if (!$tmp = lire_cache($chemin_cache)) {
267
+            spip_log('Creation cache sessionne ' . $chemin_cache);
268
+            $tmp = [
269
+                'invalideurs' => ['session' => ''],
270
+                'lastmodified' => $_SERVER['REQUEST_TIME']
271
+            ];
272
+            ecrire_cache($chemin_cache, $tmp);
273
+        }
274
+        $chemin_cache = generer_nom_fichier_cache(
275
+            ['chemin_cache' => $chemin_cache],
276
+            ['session' => $page['invalideurs']['session']]
277
+        );
278
+    }
279
+
280
+    // ajouter la date de production dans le cache lui meme
281
+    // (qui contient deja sa duree de validite)
282
+    $page['lastmodified'] = $_SERVER['REQUEST_TIME'];
283
+
284
+    // compresser le contenu si besoin
285
+    $pagez = gzip_page($page);
286
+
287
+    // signer le contenu
288
+    $pagez['sig'] = cache_signature($pagez);
289
+
290
+    // l'enregistrer, compresse ou non...
291
+    $ok = ecrire_cache($chemin_cache, $pagez);
292
+
293
+    spip_log((_IS_BOT ? 'Bot:' : '') . "Creation du cache $chemin_cache pour "
294
+        . $page['entetes']['X-Spip-Cache'] . ' secondes' . ($ok ? '' : ' (erreur!)'), _LOG_INFO);
295
+
296
+    // Inserer ses invalideurs
297
+    include_spip('inc/invalideur');
298
+    maj_invalideurs($chemin_cache, $page);
299 299
 }
300 300
 
301 301
 
@@ -308,15 +308,15 @@  discard block
 block discarded – undo
308 308
  * @return void
309 309
  */
310 310
 function nettoyer_petit_cache($prefix, $duree = 300) {
311
-	// determiner le repertoire a purger : 'tmp/CACHE/rech/'
312
-	$dircache = sous_repertoire(_DIR_CACHE, $prefix);
313
-	if (spip_touch($dircache . 'purger_' . $prefix, $duree, true)) {
314
-		foreach (preg_files($dircache, '[.]txt$') as $f) {
315
-			if ($_SERVER['REQUEST_TIME'] - (@file_exists($f) ? @filemtime($f) : 0) > $duree) {
316
-				spip_unlink($f);
317
-			}
318
-		}
319
-	}
311
+    // determiner le repertoire a purger : 'tmp/CACHE/rech/'
312
+    $dircache = sous_repertoire(_DIR_CACHE, $prefix);
313
+    if (spip_touch($dircache . 'purger_' . $prefix, $duree, true)) {
314
+        foreach (preg_files($dircache, '[.]txt$') as $f) {
315
+            if ($_SERVER['REQUEST_TIME'] - (@file_exists($f) ? @filemtime($f) : 0) > $duree) {
316
+                spip_unlink($f);
317
+            }
318
+        }
319
+    }
320 320
 }
321 321
 
322 322
 
@@ -344,134 +344,134 @@  discard block
 block discarded – undo
344 344
  */
345 345
 function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified) {
346 346
 
347
-	# fonction de cache minimale : dire "non on ne met rien en cache"
348
-	# $use_cache = -1; return;
349
-
350
-	// Second appel, destine a l'enregistrement du cache sur le disque
351
-	if (isset($chemin_cache)) {
352
-		creer_cache($page, $chemin_cache);
353
-		return;
354
-	}
355
-
356
-	// Toute la suite correspond au premier appel
357
-	$contexte_implicite = $page['contexte_implicite'];
358
-
359
-	// Cas ignorant le cache car completement dynamique
360
-	if (
361
-		(!empty($_SERVER['REQUEST_METHOD']) and $_SERVER['REQUEST_METHOD'] === 'POST')
362
-		or _request('connect')
363
-	) {
364
-		$use_cache = -1;
365
-		$lastmodified = 0;
366
-		$chemin_cache = '';
367
-		$page = [];
368
-
369
-		return;
370
-	}
371
-
372
-	// Controler l'existence d'un cache nous correspondant
373
-	$chemin_cache = generer_nom_fichier_cache($contexte, $page);
374
-	$lastmodified = 0;
375
-
376
-	// charger le cache s'il existe (et si il a bien le bon hash = anticollision)
377
-	if (!$page = lire_cache($chemin_cache)) {
378
-		$page = [];
379
-	}
380
-
381
-	// s'il est sessionne, charger celui correspondant a notre session
382
-	if (
383
-		isset($page['invalideurs'])
384
-		and isset($page['invalideurs']['session'])
385
-	) {
386
-		$chemin_cache_session = generer_nom_fichier_cache(
387
-			['chemin_cache' => $chemin_cache],
388
-			['session' => spip_session()]
389
-		);
390
-		if (
391
-			$page_session = lire_cache($chemin_cache_session)
392
-			and $page_session['lastmodified'] >= $page['lastmodified']
393
-		) {
394
-			$page = $page_session;
395
-		} else {
396
-			$page = [];
397
-		}
398
-	}
399
-
400
-
401
-	// Faut-il effacer des pages invalidees (en particulier ce cache-ci) ?
402
-	if (isset($GLOBALS['meta']['invalider'])) {
403
-		// ne le faire que si la base est disponible
404
-		if (spip_connect()) {
405
-			include_spip('inc/invalideur');
406
-			retire_caches($chemin_cache); # API invalideur inutile
407
-			supprimer_fichier(_DIR_CACHE . $chemin_cache);
408
-			if (isset($chemin_cache_session) and $chemin_cache_session) {
409
-				supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
410
-			}
411
-		}
412
-	}
413
-
414
-	// Si un calcul, recalcul [ou preview, mais c'est recalcul] est demande,
415
-	// on supprime le cache
416
-	if (
417
-		defined('_VAR_MODE') &&
418
-		_VAR_MODE &&
419
-		(isset($_COOKIE['spip_session']) ||
420
-			isset($_COOKIE['spip_admin']) ||
421
-			@file_exists(_ACCESS_FILE_NAME))
422
-	) {
423
-		$page = ['contexte_implicite' => $contexte_implicite]; // ignorer le cache deja lu
424
-		include_spip('inc/invalideur');
425
-		retire_caches($chemin_cache); # API invalideur inutile
426
-		supprimer_fichier(_DIR_CACHE . $chemin_cache);
427
-		if (isset($chemin_cache_session) and $chemin_cache_session) {
428
-			supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
429
-		}
430
-	}
431
-
432
-	// $delais par defaut
433
-	// pour toutes les pages sans #CACHE{} hors modeles/ et espace privé
434
-	// qui sont a cache nul par defaut
435
-	if (!isset($GLOBALS['delais'])) {
436
-		if (!defined('_DUREE_CACHE_DEFAUT')) {
437
-			define('_DUREE_CACHE_DEFAUT', 24 * 3600);
438
-		}
439
-		$GLOBALS['delais'] = _DUREE_CACHE_DEFAUT;
440
-	}
441
-
442
-	// determiner la validite de la page
443
-	if ($page) {
444
-		$use_cache = cache_valide($page, $page['lastmodified'] ?? 0);
445
-		// le contexte implicite n'est pas stocke dans le cache, mais il y a equivalence
446
-		// par le nom du cache. On le reinjecte donc ici pour utilisation eventuelle au calcul
447
-		$page['contexte_implicite'] = $contexte_implicite;
448
-		if (!$use_cache) {
449
-			// $page est un cache utilisable
450
-			gunzip_page($page);
451
-
452
-			return;
453
-		}
454
-	} else {
455
-		$page = ['contexte_implicite' => $contexte_implicite];
456
-		$use_cache = cache_valide($page, 0); // fichier cache absent : provoque le calcul
457
-	}
458
-
459
-	// Si pas valide mais pas de connexion a la base, le garder quand meme
460
-	if (!spip_connect()) {
461
-		if (isset($page['texte'])) {
462
-			gunzip_page($page);
463
-			$use_cache = 0;
464
-		} else {
465
-			spip_log("Erreur base de donnees, impossible utiliser $chemin_cache");
466
-			include_spip('inc/minipres');
467
-
468
-			return minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), ['status' => 503]);
469
-		}
470
-	}
471
-
472
-	if ($use_cache < 0) {
473
-		$chemin_cache = '';
474
-	}
475
-
476
-	return;
347
+    # fonction de cache minimale : dire "non on ne met rien en cache"
348
+    # $use_cache = -1; return;
349
+
350
+    // Second appel, destine a l'enregistrement du cache sur le disque
351
+    if (isset($chemin_cache)) {
352
+        creer_cache($page, $chemin_cache);
353
+        return;
354
+    }
355
+
356
+    // Toute la suite correspond au premier appel
357
+    $contexte_implicite = $page['contexte_implicite'];
358
+
359
+    // Cas ignorant le cache car completement dynamique
360
+    if (
361
+        (!empty($_SERVER['REQUEST_METHOD']) and $_SERVER['REQUEST_METHOD'] === 'POST')
362
+        or _request('connect')
363
+    ) {
364
+        $use_cache = -1;
365
+        $lastmodified = 0;
366
+        $chemin_cache = '';
367
+        $page = [];
368
+
369
+        return;
370
+    }
371
+
372
+    // Controler l'existence d'un cache nous correspondant
373
+    $chemin_cache = generer_nom_fichier_cache($contexte, $page);
374
+    $lastmodified = 0;
375
+
376
+    // charger le cache s'il existe (et si il a bien le bon hash = anticollision)
377
+    if (!$page = lire_cache($chemin_cache)) {
378
+        $page = [];
379
+    }
380
+
381
+    // s'il est sessionne, charger celui correspondant a notre session
382
+    if (
383
+        isset($page['invalideurs'])
384
+        and isset($page['invalideurs']['session'])
385
+    ) {
386
+        $chemin_cache_session = generer_nom_fichier_cache(
387
+            ['chemin_cache' => $chemin_cache],
388
+            ['session' => spip_session()]
389
+        );
390
+        if (
391
+            $page_session = lire_cache($chemin_cache_session)
392
+            and $page_session['lastmodified'] >= $page['lastmodified']
393
+        ) {
394
+            $page = $page_session;
395
+        } else {
396
+            $page = [];
397
+        }
398
+    }
399
+
400
+
401
+    // Faut-il effacer des pages invalidees (en particulier ce cache-ci) ?
402
+    if (isset($GLOBALS['meta']['invalider'])) {
403
+        // ne le faire que si la base est disponible
404
+        if (spip_connect()) {
405
+            include_spip('inc/invalideur');
406
+            retire_caches($chemin_cache); # API invalideur inutile
407
+            supprimer_fichier(_DIR_CACHE . $chemin_cache);
408
+            if (isset($chemin_cache_session) and $chemin_cache_session) {
409
+                supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
410
+            }
411
+        }
412
+    }
413
+
414
+    // Si un calcul, recalcul [ou preview, mais c'est recalcul] est demande,
415
+    // on supprime le cache
416
+    if (
417
+        defined('_VAR_MODE') &&
418
+        _VAR_MODE &&
419
+        (isset($_COOKIE['spip_session']) ||
420
+            isset($_COOKIE['spip_admin']) ||
421
+            @file_exists(_ACCESS_FILE_NAME))
422
+    ) {
423
+        $page = ['contexte_implicite' => $contexte_implicite]; // ignorer le cache deja lu
424
+        include_spip('inc/invalideur');
425
+        retire_caches($chemin_cache); # API invalideur inutile
426
+        supprimer_fichier(_DIR_CACHE . $chemin_cache);
427
+        if (isset($chemin_cache_session) and $chemin_cache_session) {
428
+            supprimer_fichier(_DIR_CACHE . $chemin_cache_session);
429
+        }
430
+    }
431
+
432
+    // $delais par defaut
433
+    // pour toutes les pages sans #CACHE{} hors modeles/ et espace privé
434
+    // qui sont a cache nul par defaut
435
+    if (!isset($GLOBALS['delais'])) {
436
+        if (!defined('_DUREE_CACHE_DEFAUT')) {
437
+            define('_DUREE_CACHE_DEFAUT', 24 * 3600);
438
+        }
439
+        $GLOBALS['delais'] = _DUREE_CACHE_DEFAUT;
440
+    }
441
+
442
+    // determiner la validite de la page
443
+    if ($page) {
444
+        $use_cache = cache_valide($page, $page['lastmodified'] ?? 0);
445
+        // le contexte implicite n'est pas stocke dans le cache, mais il y a equivalence
446
+        // par le nom du cache. On le reinjecte donc ici pour utilisation eventuelle au calcul
447
+        $page['contexte_implicite'] = $contexte_implicite;
448
+        if (!$use_cache) {
449
+            // $page est un cache utilisable
450
+            gunzip_page($page);
451
+
452
+            return;
453
+        }
454
+    } else {
455
+        $page = ['contexte_implicite' => $contexte_implicite];
456
+        $use_cache = cache_valide($page, 0); // fichier cache absent : provoque le calcul
457
+    }
458
+
459
+    // Si pas valide mais pas de connexion a la base, le garder quand meme
460
+    if (!spip_connect()) {
461
+        if (isset($page['texte'])) {
462
+            gunzip_page($page);
463
+            $use_cache = 0;
464
+        } else {
465
+            spip_log("Erreur base de donnees, impossible utiliser $chemin_cache");
466
+            include_spip('inc/minipres');
467
+
468
+            return minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), ['status' => 503]);
469
+        }
470
+    }
471
+
472
+    if ($use_cache < 0) {
473
+        $chemin_cache = '';
474
+    }
475
+
476
+    return;
477 477
 }
Please login to merge, or discard this patch.
ecrire/balise/formulaire_.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -312,7 +312,7 @@
 block discarded – undo
312 312
 			foreach ($erreurs as $k => $v) {
313 313
 				if (is_string($v) and strlen(trim($v)) and strpos($k, '_') !== 0) {
314 314
 					// on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form
315
-					$valeurs['erreurs'][$k] = "<span role='alert'>" . $erreurs[$k] . '</span>';
315
+					$valeurs['erreurs'][$k] = "<span role='alert'>".$erreurs[$k].'</span>';
316 316
 				}
317 317
 			}
318 318
 		}
Please login to merge, or discard this patch.
Indentation   +248 added lines, -248 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
  * @package SPIP\Core\Formulaires
16 16
  **/
17 17
 if (!defined('_ECRIRE_INC_VERSION')) {
18
-	return;
18
+    return;
19 19
 }
20 20
 
21 21
 include_spip('inc/filtres');
@@ -34,19 +34,19 @@  discard block
 block discarded – undo
34 34
  *     Saisie protégée
35 35
  **/
36 36
 function protege_champ($texte) {
37
-	if (is_array($texte)) {
38
-		return array_map('protege_champ', $texte);
39
-	} elseif ($texte === null) {
40
-		return $texte;
41
-	} elseif (is_bool($texte)) {
42
-		return $texte ? '1' : '';
43
-	} elseif (is_string($texte) and $texte) {
44
-		if (strpbrk($texte, "&\"'<>") !== false) {
45
-			return spip_htmlspecialchars($texte, ENT_QUOTES);
46
-		}
47
-	}
48
-
49
-	return $texte;
37
+    if (is_array($texte)) {
38
+        return array_map('protege_champ', $texte);
39
+    } elseif ($texte === null) {
40
+        return $texte;
41
+    } elseif (is_bool($texte)) {
42
+        return $texte ? '1' : '';
43
+    } elseif (is_string($texte) and $texte) {
44
+        if (strpbrk($texte, "&\"'<>") !== false) {
45
+            return spip_htmlspecialchars($texte, ENT_QUOTES);
46
+        }
47
+    }
48
+
49
+    return $texte;
50 50
 }
51 51
 
52 52
 /**
@@ -60,17 +60,17 @@  discard block
 block discarded – undo
60 60
  *     - false : pas de squelette trouvé
61 61
  **/
62 62
 function existe_formulaire($form) {
63
-	if (substr($form, 0, 11) == 'FORMULAIRE_') {
64
-		$form = strtolower(substr($form, 11));
65
-	} else {
66
-		$form = strtolower($form);
67
-	}
63
+    if (substr($form, 0, 11) == 'FORMULAIRE_') {
64
+        $form = strtolower(substr($form, 11));
65
+    } else {
66
+        $form = strtolower($form);
67
+    }
68 68
 
69
-	if (!$form) {
70
-		return '';
71
-	} // on ne sait pas, le nom du formulaire n'est pas fourni ici
69
+    if (!$form) {
70
+        return '';
71
+    } // on ne sait pas, le nom du formulaire n'est pas fourni ici
72 72
 
73
-	return trouver_fond($form, 'formulaires/') ? $form : false;
73
+    return trouver_fond($form, 'formulaires/') ? $form : false;
74 74
 }
75 75
 
76 76
 /**
@@ -79,31 +79,31 @@  discard block
 block discarded – undo
79 79
  * @return false|array
80 80
  */
81 81
 function test_formulaire_inclus_par_modele() {
82
-	$trace = debug_backtrace(0, 20);
83
-	$trace_fonctions = array_column($trace, 'function');
84
-	$trace_fonctions = array_map('strtolower', $trace_fonctions);
85
-
86
-	// regarder si un flag a ete leve juste avant l'appel de balise_FORMULAIRE_dyn
87
-	if (
88
-		function_exists('arguments_balise_dyn_depuis_modele')
89
-		and $form = arguments_balise_dyn_depuis_modele(null, 'read')
90
-	) {
91
-		if (in_array('balise_formulaire__dyn', $trace_fonctions)) {
92
-			$k = array_search('balise_formulaire__dyn', $trace_fonctions);
93
-			if ($trace[$k]['args'][0] === $form) {
94
-				return $trace[$k]['args'];
95
-			}
96
-		}
97
-	}
98
-
99
-	// fallback qui ne repose pas sur le flag lie a l'analyse de contexte_compil,
100
-	// mais ne marche pas si executer_balise_dynamique est appelee via du php dans le squelette
101
-	if (in_array('eval', $trace_fonctions) and in_array('inclure_modele', $trace_fonctions)) {
102
-		$k = array_search('inclure_modele', $trace_fonctions);
103
-		// les arguments de recuperer_fond() passes par inclure_modele()
104
-		return $trace[$k - 1]['args'][1]['args'];
105
-	}
106
-	return false;
82
+    $trace = debug_backtrace(0, 20);
83
+    $trace_fonctions = array_column($trace, 'function');
84
+    $trace_fonctions = array_map('strtolower', $trace_fonctions);
85
+
86
+    // regarder si un flag a ete leve juste avant l'appel de balise_FORMULAIRE_dyn
87
+    if (
88
+        function_exists('arguments_balise_dyn_depuis_modele')
89
+        and $form = arguments_balise_dyn_depuis_modele(null, 'read')
90
+    ) {
91
+        if (in_array('balise_formulaire__dyn', $trace_fonctions)) {
92
+            $k = array_search('balise_formulaire__dyn', $trace_fonctions);
93
+            if ($trace[$k]['args'][0] === $form) {
94
+                return $trace[$k]['args'];
95
+            }
96
+        }
97
+    }
98
+
99
+    // fallback qui ne repose pas sur le flag lie a l'analyse de contexte_compil,
100
+    // mais ne marche pas si executer_balise_dynamique est appelee via du php dans le squelette
101
+    if (in_array('eval', $trace_fonctions) and in_array('inclure_modele', $trace_fonctions)) {
102
+        $k = array_search('inclure_modele', $trace_fonctions);
103
+        // les arguments de recuperer_fond() passes par inclure_modele()
104
+        return $trace[$k - 1]['args'][1]['args'];
105
+    }
106
+    return false;
107 107
 }
108 108
 
109 109
 /**
@@ -118,19 +118,19 @@  discard block
 block discarded – undo
118 118
  **/
119 119
 function balise_FORMULAIRE__dist($p) {
120 120
 
121
-	// Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide.
122
-	// mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer
123
-	if (existe_formulaire($p->nom_champ) === false) {
124
-		$p->code = "''";
125
-		$p->interdire_scripts = false;
121
+    // Cas d'un #FORMULAIRE_TOTO inexistant : renvoyer la chaine vide.
122
+    // mais si #FORMULAIRE_{toto} on ne peut pas savoir a la compilation, continuer
123
+    if (existe_formulaire($p->nom_champ) === false) {
124
+        $p->code = "''";
125
+        $p->interdire_scripts = false;
126 126
 
127
-		return $p;
128
-	}
127
+        return $p;
128
+    }
129 129
 
130
-	// sinon renvoyer un code php dynamique
131
-	$p = calculer_balise_dynamique($p, $p->nom_champ, []);
130
+    // sinon renvoyer un code php dynamique
131
+    $p = calculer_balise_dynamique($p, $p->nom_champ, []);
132 132
 
133
-	return $p;
133
+    return $p;
134 134
 }
135 135
 
136 136
 /**
@@ -150,17 +150,17 @@  discard block
 block discarded – undo
150 150
  *     - string : texte à afficher directement
151 151
  */
152 152
 function balise_FORMULAIRE__dyn($form, ...$args) {
153
-	$form = existe_formulaire($form);
154
-	if (!$form) {
155
-		return '';
156
-	}
153
+    $form = existe_formulaire($form);
154
+    if (!$form) {
155
+        return '';
156
+    }
157 157
 
158
-	$contexte = balise_FORMULAIRE__contexte($form, $args);
159
-	if (!is_array($contexte)) {
160
-		return $contexte;
161
-	}
158
+    $contexte = balise_FORMULAIRE__contexte($form, $args);
159
+    if (!is_array($contexte)) {
160
+        return $contexte;
161
+    }
162 162
 
163
-	return ["formulaires/$form", 3600, $contexte];
163
+    return ["formulaires/$form", 3600, $contexte];
164 164
 }
165 165
 
166 166
 /**
@@ -175,85 +175,85 @@  discard block
 block discarded – undo
175 175
  *     string: Formulaire non applicable (message d’explication)
176 176
  **/
177 177
 function balise_FORMULAIRE__contexte($form, $args) {
178
-	// tester si ce formulaire vient d'etre poste (memes arguments)
179
-	// pour ne pas confondre 2 #FORMULAIRES_XX identiques sur une meme page
180
-	// si poste, on recupere les erreurs
181
-
182
-	$je_suis_poste = false;
183
-	if (
184
-		$post_form = _request('formulaire_action')
185
-		and $post_form == $form
186
-		and $p = _request('formulaire_action_args')
187
-		and is_array($p = decoder_contexte_ajax($p, $post_form))
188
-	) {
189
-		// enlever le faux attribut de langue masque
190
-		array_shift($p);
191
-		if (formulaire__identifier($form, $args, $p)) {
192
-			$je_suis_poste = true;
193
-		}
194
-	}
195
-
196
-	$editable = true;
197
-	$erreurs = $post = [];
198
-	if ($je_suis_poste) {
199
-		$post = traiter_formulaires_dynamiques(true);
200
-		$e = "erreurs_$form";
201
-		$erreurs = $post[$e] ?? [];
202
-		$editable = "editable_$form";
203
-		$editable = (!isset($post[$e]))
204
-			|| (is_countable($erreurs) ? count($erreurs) : 0)
205
-			|| (isset($post[$editable]) && $post[$editable]);
206
-	}
207
-
208
-	$valeurs = formulaire__charger($form, $args, $je_suis_poste);
209
-
210
-	// si $valeurs n'est pas un tableau, le formulaire n'est pas applicable
211
-	// C'est plus fort qu'editable qui est gere par le squelette
212
-	// Idealement $valeur doit etre alors un message explicatif.
213
-	if (!is_array($valeurs)) {
214
-		return is_string($valeurs) ? $valeurs : '';
215
-	}
216
-
217
-	// charger peut passer une action si le formulaire ne tourne pas sur self()
218
-	// ou une action vide si elle ne sert pas
219
-	$action = $valeurs['action'] ?? self('&amp;', true);
220
-	// bug IEx : si action finit par /
221
-	// IE croit que le <form ... action=../ > est autoferme
222
-	if (substr($action, -1) == '/') {
223
-		// on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un /
224
-		$action .= '#';
225
-	}
226
-
227
-	// recuperer la saisie en cours si erreurs
228
-	// seulement si c'est ce formulaire qui est poste
229
-	// ou si on le demande explicitement par le parametre _forcer_request = true
230
-	$dispo = ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request']));
231
-	foreach (array_keys($valeurs) as $champ) {
232
-		if ($champ[0] !== '_' and !in_array($champ, ['message_ok', 'message_erreur', 'editable'])) {
233
-			if ($dispo and (($v = _request($champ)) !== null)) {
234
-				$valeurs[$champ] = $v;
235
-			}
236
-			// nettoyer l'url des champs qui vont etre saisis
237
-			if ($action) {
238
-				$action = parametre_url($action, $champ, '');
239
-			}
240
-			// proteger les ' et les " dans les champs que l'on va injecter
241
-			$valeurs[$champ] = protege_champ($valeurs[$champ]);
242
-		}
243
-	}
244
-
245
-	if ($action) {
246
-		// nettoyer l'url
247
-		$action = parametre_url($action, 'formulaire_action', '');
248
-		$action = parametre_url($action, 'formulaire_action_args', '');
249
-		$action = parametre_url($action, 'formulaire_action_sign', '');
250
-	}
251
-
252
-	/**
253
-	 * @deprecated 4.0
254
-	 * servait pour poster sur les actions de type editer_xxx() qui ne prenaient pas d'argument autrement que par _request('arg') et pour lesquelles il fallait donc passer un hash valide
255
-	 */
256
-	/*
178
+    // tester si ce formulaire vient d'etre poste (memes arguments)
179
+    // pour ne pas confondre 2 #FORMULAIRES_XX identiques sur une meme page
180
+    // si poste, on recupere les erreurs
181
+
182
+    $je_suis_poste = false;
183
+    if (
184
+        $post_form = _request('formulaire_action')
185
+        and $post_form == $form
186
+        and $p = _request('formulaire_action_args')
187
+        and is_array($p = decoder_contexte_ajax($p, $post_form))
188
+    ) {
189
+        // enlever le faux attribut de langue masque
190
+        array_shift($p);
191
+        if (formulaire__identifier($form, $args, $p)) {
192
+            $je_suis_poste = true;
193
+        }
194
+    }
195
+
196
+    $editable = true;
197
+    $erreurs = $post = [];
198
+    if ($je_suis_poste) {
199
+        $post = traiter_formulaires_dynamiques(true);
200
+        $e = "erreurs_$form";
201
+        $erreurs = $post[$e] ?? [];
202
+        $editable = "editable_$form";
203
+        $editable = (!isset($post[$e]))
204
+            || (is_countable($erreurs) ? count($erreurs) : 0)
205
+            || (isset($post[$editable]) && $post[$editable]);
206
+    }
207
+
208
+    $valeurs = formulaire__charger($form, $args, $je_suis_poste);
209
+
210
+    // si $valeurs n'est pas un tableau, le formulaire n'est pas applicable
211
+    // C'est plus fort qu'editable qui est gere par le squelette
212
+    // Idealement $valeur doit etre alors un message explicatif.
213
+    if (!is_array($valeurs)) {
214
+        return is_string($valeurs) ? $valeurs : '';
215
+    }
216
+
217
+    // charger peut passer une action si le formulaire ne tourne pas sur self()
218
+    // ou une action vide si elle ne sert pas
219
+    $action = $valeurs['action'] ?? self('&amp;', true);
220
+    // bug IEx : si action finit par /
221
+    // IE croit que le <form ... action=../ > est autoferme
222
+    if (substr($action, -1) == '/') {
223
+        // on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un /
224
+        $action .= '#';
225
+    }
226
+
227
+    // recuperer la saisie en cours si erreurs
228
+    // seulement si c'est ce formulaire qui est poste
229
+    // ou si on le demande explicitement par le parametre _forcer_request = true
230
+    $dispo = ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request']));
231
+    foreach (array_keys($valeurs) as $champ) {
232
+        if ($champ[0] !== '_' and !in_array($champ, ['message_ok', 'message_erreur', 'editable'])) {
233
+            if ($dispo and (($v = _request($champ)) !== null)) {
234
+                $valeurs[$champ] = $v;
235
+            }
236
+            // nettoyer l'url des champs qui vont etre saisis
237
+            if ($action) {
238
+                $action = parametre_url($action, $champ, '');
239
+            }
240
+            // proteger les ' et les " dans les champs que l'on va injecter
241
+            $valeurs[$champ] = protege_champ($valeurs[$champ]);
242
+        }
243
+    }
244
+
245
+    if ($action) {
246
+        // nettoyer l'url
247
+        $action = parametre_url($action, 'formulaire_action', '');
248
+        $action = parametre_url($action, 'formulaire_action_args', '');
249
+        $action = parametre_url($action, 'formulaire_action_sign', '');
250
+    }
251
+
252
+    /**
253
+     * @deprecated 4.0
254
+     * servait pour poster sur les actions de type editer_xxx() qui ne prenaient pas d'argument autrement que par _request('arg') et pour lesquelles il fallait donc passer un hash valide
255
+     */
256
+    /*
257 257
 	if (isset($valeurs['_action'])) {
258 258
 		$securiser_action = charger_fonction('securiser_action', 'inc');
259 259
 		$secu = $securiser_action(reset($valeurs['_action']), end($valeurs['_action']), '', -1);
@@ -263,59 +263,59 @@  discard block
 block discarded – undo
263 263
 	}
264 264
 	*/
265 265
 
266
-	// empiler la lang en tant que premier argument implicite du CVT
267
-	// pour permettre de la restaurer au moment du Verifier et du Traiter
268
-	array_unshift($args, $GLOBALS['spip_lang']);
269
-
270
-	$valeurs['formulaire_args'] = encoder_contexte_ajax($args, $form);
271
-	$valeurs['erreurs'] = $erreurs;
272
-	$valeurs['action'] = $action;
273
-	$valeurs['form'] = $form;
274
-
275
-	$valeurs['formulaire_sign'] = '';
276
-	if (!empty($GLOBALS['visiteur_session']['id_auteur'])) {
277
-		$securiser_action = charger_fonction('securiser_action', 'inc');
278
-		$secu = $securiser_action($valeurs['form'], $valeurs['formulaire_args'], '', -1);
279
-		$valeurs['formulaire_sign'] = $secu['hash'];
280
-	}
281
-
282
-	if (!isset($valeurs['id'])) {
283
-		$valeurs['id'] = 'new';
284
-	}
285
-	// editable peut venir de charger() ou de traiter() sinon
286
-	if (!isset($valeurs['editable'])) {
287
-		$valeurs['editable'] = $editable;
288
-	}
289
-	// dans tous les cas, renvoyer un espace ou vide (et pas un booleen)
290
-	$valeurs['editable'] = ($valeurs['editable'] ? ' ' : '');
291
-
292
-	if ($je_suis_poste) {
293
-		$valeurs['message_erreur'] = '';
294
-		if (isset($erreurs['message_erreur'])) {
295
-			$valeurs['message_erreur'] = $erreurs['message_erreur'];
296
-		}
297
-
298
-		$valeurs['message_ok'] = '';
299
-		if (isset($post["message_ok_$form"])) {
300
-			$valeurs['message_ok'] = $post["message_ok_$form"];
301
-		} elseif (isset($erreurs['message_ok'])) {
302
-			$valeurs['message_ok'] = $erreurs['message_ok'];
303
-		}
304
-
305
-		// accessibilite : encapsuler toutes les erreurs dans un role='alert'
306
-		// uniquement si c'est une string et au premier niveau (on ne touche pas au tableaux)
307
-		// et si $k ne commence pas par un _ (c'est bien une vrai erreur sur un vrai champ)
308
-		if (html5_permis()) {
309
-			foreach ($erreurs as $k => $v) {
310
-				if (is_string($v) and strlen(trim($v)) and strpos($k, '_') !== 0) {
311
-					// on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form
312
-					$valeurs['erreurs'][$k] = "<span role='alert'>" . $erreurs[$k] . '</span>';
313
-				}
314
-			}
315
-		}
316
-	}
317
-
318
-	return $valeurs;
266
+    // empiler la lang en tant que premier argument implicite du CVT
267
+    // pour permettre de la restaurer au moment du Verifier et du Traiter
268
+    array_unshift($args, $GLOBALS['spip_lang']);
269
+
270
+    $valeurs['formulaire_args'] = encoder_contexte_ajax($args, $form);
271
+    $valeurs['erreurs'] = $erreurs;
272
+    $valeurs['action'] = $action;
273
+    $valeurs['form'] = $form;
274
+
275
+    $valeurs['formulaire_sign'] = '';
276
+    if (!empty($GLOBALS['visiteur_session']['id_auteur'])) {
277
+        $securiser_action = charger_fonction('securiser_action', 'inc');
278
+        $secu = $securiser_action($valeurs['form'], $valeurs['formulaire_args'], '', -1);
279
+        $valeurs['formulaire_sign'] = $secu['hash'];
280
+    }
281
+
282
+    if (!isset($valeurs['id'])) {
283
+        $valeurs['id'] = 'new';
284
+    }
285
+    // editable peut venir de charger() ou de traiter() sinon
286
+    if (!isset($valeurs['editable'])) {
287
+        $valeurs['editable'] = $editable;
288
+    }
289
+    // dans tous les cas, renvoyer un espace ou vide (et pas un booleen)
290
+    $valeurs['editable'] = ($valeurs['editable'] ? ' ' : '');
291
+
292
+    if ($je_suis_poste) {
293
+        $valeurs['message_erreur'] = '';
294
+        if (isset($erreurs['message_erreur'])) {
295
+            $valeurs['message_erreur'] = $erreurs['message_erreur'];
296
+        }
297
+
298
+        $valeurs['message_ok'] = '';
299
+        if (isset($post["message_ok_$form"])) {
300
+            $valeurs['message_ok'] = $post["message_ok_$form"];
301
+        } elseif (isset($erreurs['message_ok'])) {
302
+            $valeurs['message_ok'] = $erreurs['message_ok'];
303
+        }
304
+
305
+        // accessibilite : encapsuler toutes les erreurs dans un role='alert'
306
+        // uniquement si c'est une string et au premier niveau (on ne touche pas au tableaux)
307
+        // et si $k ne commence pas par un _ (c'est bien une vrai erreur sur un vrai champ)
308
+        if (html5_permis()) {
309
+            foreach ($erreurs as $k => $v) {
310
+                if (is_string($v) and strlen(trim($v)) and strpos($k, '_') !== 0) {
311
+                    // on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form
312
+                    $valeurs['erreurs'][$k] = "<span role='alert'>" . $erreurs[$k] . '</span>';
313
+                }
314
+            }
315
+        }
316
+    }
317
+
318
+    return $valeurs;
319 319
 }
320 320
 
321 321
 /**
@@ -327,51 +327,51 @@  discard block
 block discarded – undo
327 327
  * @return array
328 328
  */
329 329
 function formulaire__charger($form, $args, $poste) {
330
-	if ($charger_valeurs = charger_fonction('charger', "formulaires/$form", true)) {
331
-		$valeurs = $charger_valeurs(...$args);
332
-	} else {
333
-		$valeurs = [];
334
-	}
335
-
336
-	$valeurs = pipeline(
337
-		'formulaire_charger',
338
-		[
339
-			'args' => ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste],
340
-			'data' => $valeurs
341
-		]
342
-	);
343
-
344
-	// prise en charge CVT multi etape
345
-	if (is_array($valeurs) and isset($valeurs['_etapes'])) {
346
-		include_spip('inc/cvt_multietapes');
347
-		$valeurs = cvtmulti_formulaire_charger_etapes(
348
-			['form' => $form, 'args' => $args, 'je_suis_poste' => $poste],
349
-			$valeurs
350
-		);
351
-	}
352
-
353
-	// si $valeurs et false ou une chaine, pas de formulaire, donc pas de pipeline !
354
-	if (is_array($valeurs)) {
355
-		if (!isset($valeurs['_pipelines'])) {
356
-			$valeurs['_pipelines'] = [];
357
-		}
358
-		// l'ancien argument _pipeline devient maintenant _pipelines
359
-		// reinjectons le vieux _pipeline au debut de _pipelines
360
-		if (isset($valeurs['_pipeline'])) {
361
-			$pipe = is_array($valeurs['_pipeline']) ? reset($valeurs['_pipeline']) : $valeurs['_pipeline'];
362
-			$args = is_array($valeurs['_pipeline']) ? end($valeurs['_pipeline']) : [];
363
-
364
-			$pipelines = [$pipe => $args];
365
-			$valeurs['_pipelines'] = array_merge($pipelines, $valeurs['_pipelines']);
366
-		}
367
-
368
-		// et enfin, ajoutons systematiquement un pipeline sur le squelette du formulaire
369
-		// qui constitue le cas le plus courant d'utilisation du pipeline recuperer_fond
370
-		// (performance, cela evite de s'injecter dans recuperer_fond utilise pour *tous* les squelettes)
371
-		$valeurs['_pipelines']['formulaire_fond'] = ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste];
372
-	}
373
-
374
-	return $valeurs;
330
+    if ($charger_valeurs = charger_fonction('charger', "formulaires/$form", true)) {
331
+        $valeurs = $charger_valeurs(...$args);
332
+    } else {
333
+        $valeurs = [];
334
+    }
335
+
336
+    $valeurs = pipeline(
337
+        'formulaire_charger',
338
+        [
339
+            'args' => ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste],
340
+            'data' => $valeurs
341
+        ]
342
+    );
343
+
344
+    // prise en charge CVT multi etape
345
+    if (is_array($valeurs) and isset($valeurs['_etapes'])) {
346
+        include_spip('inc/cvt_multietapes');
347
+        $valeurs = cvtmulti_formulaire_charger_etapes(
348
+            ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste],
349
+            $valeurs
350
+        );
351
+    }
352
+
353
+    // si $valeurs et false ou une chaine, pas de formulaire, donc pas de pipeline !
354
+    if (is_array($valeurs)) {
355
+        if (!isset($valeurs['_pipelines'])) {
356
+            $valeurs['_pipelines'] = [];
357
+        }
358
+        // l'ancien argument _pipeline devient maintenant _pipelines
359
+        // reinjectons le vieux _pipeline au debut de _pipelines
360
+        if (isset($valeurs['_pipeline'])) {
361
+            $pipe = is_array($valeurs['_pipeline']) ? reset($valeurs['_pipeline']) : $valeurs['_pipeline'];
362
+            $args = is_array($valeurs['_pipeline']) ? end($valeurs['_pipeline']) : [];
363
+
364
+            $pipelines = [$pipe => $args];
365
+            $valeurs['_pipelines'] = array_merge($pipelines, $valeurs['_pipelines']);
366
+        }
367
+
368
+        // et enfin, ajoutons systematiquement un pipeline sur le squelette du formulaire
369
+        // qui constitue le cas le plus courant d'utilisation du pipeline recuperer_fond
370
+        // (performance, cela evite de s'injecter dans recuperer_fond utilise pour *tous* les squelettes)
371
+        $valeurs['_pipelines']['formulaire_fond'] = ['form' => $form, 'args' => $args, 'je_suis_poste' => $poste];
372
+    }
373
+
374
+    return $valeurs;
375 375
 }
376 376
 
377 377
 /**
@@ -390,9 +390,9 @@  discard block
 block discarded – undo
390 390
  * @return bool
391 391
  */
392 392
 function formulaire__identifier($form, $args, $p) {
393
-	if ($identifier_args = charger_fonction('identifier', "formulaires/$form", true)) {
394
-		return $identifier_args(...$args) === $identifier_args(...$p);
395
-	}
393
+    if ($identifier_args = charger_fonction('identifier', "formulaires/$form", true)) {
394
+        return $identifier_args(...$args) === $identifier_args(...$p);
395
+    }
396 396
 
397
-	return $args === $p;
397
+    return $args === $p;
398 398
 }
Please login to merge, or discard this patch.