Completed
Push — master ( 0528ed...3f7b24 )
by cam
01:54
created
ecrire/genie/mise_a_jour.php 2 patches
Indentation   +133 added lines, -133 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  */
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -26,15 +26,15 @@  discard block
 block discarded – undo
26 26
  * @return int
27 27
  */
28 28
 function genie_mise_a_jour_dist($t) {
29
-	include_spip('inc/meta');
30
-	$maj = info_maj($GLOBALS['spip_version_branche']);
31
-	ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche'] . "|$maj") : '', 'non');
29
+    include_spip('inc/meta');
30
+    $maj = info_maj($GLOBALS['spip_version_branche']);
31
+    ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche'] . "|$maj") : '', 'non');
32 32
 
33
-	mise_a_jour_ecran_securite();
33
+    mise_a_jour_ecran_securite();
34 34
 
35
-	spip_logger('verifie_maj')->info('Verification version SPIP : ' . ($maj ?: 'version a jour'));
35
+    spip_logger('verifie_maj')->info('Verification version SPIP : ' . ($maj ?: 'version a jour'));
36 36
 
37
-	return 1;
37
+    return 1;
38 38
 }
39 39
 
40 40
 // TODO : fournir une URL sur spip.net pour maitriser la diffusion d'une nouvelle version de l'ecran via l'update auto
@@ -51,46 +51,46 @@  discard block
 block discarded – undo
51 51
  * ou de ne repondre une 304 que si le md5 est bon
52 52
  */
53 53
 function mise_a_jour_ecran_securite() {
54
-	// TODO : url https avec verification du certificat
55
-	return;
56
-
57
-	// si l'ecran n'est pas deja present ou pas updatable, sortir
58
-	if (
59
-		!_URL_ECRAN_SECURITE
60
-		|| !file_exists($filename = _DIR_ETC . 'ecran_securite.php')
61
-		|| !is_writable($filename)
62
-		|| !($last_modified = filemtime($filename))
63
-		|| !($md5 = md5_file($filename))
64
-	) {
65
-		return false;
66
-	}
67
-
68
-	include_spip('inc/distant');
69
-	$tmp_file = _DIR_TMP . 'ecran_securite.php';
70
-	$url = parametre_url(_URL_ECRAN_SECURITE, 'md5', $md5);
71
-	$url = parametre_url($url, 'vspip', $GLOBALS['spip_version_branche']);
72
-	$res = recuperer_url($url, [
73
-		'if_modified_since' => $last_modified,
74
-		'file' => $tmp_file
75
-	]);
76
-
77
-	// si il y a une version plus recente que l'on a recu correctement
78
-	if (
79
-		$res['status'] == 200
80
-		&& $res['length']
81
-		&& ($tmp_file = $res['file'])
82
-	) {
83
-		if ($md5 !== md5_file($tmp_file)) {
84
-			// on essaye de l'inclure pour verifier que ca ne fait pas erreur fatale
85
-			include_once $tmp_file;
86
-			// ok, on le copie a la place de l'ecran existant
87
-			// en backupant l'ecran avant, au cas ou
88
-			@copy($filename, $filename . '-bck-' . date('Y-m-d-His', $last_modified));
89
-			@rename($tmp_file, $filename);
90
-		} else {
91
-			@unlink($tmp_file);
92
-		}
93
-	}
54
+    // TODO : url https avec verification du certificat
55
+    return;
56
+
57
+    // si l'ecran n'est pas deja present ou pas updatable, sortir
58
+    if (
59
+        !_URL_ECRAN_SECURITE
60
+        || !file_exists($filename = _DIR_ETC . 'ecran_securite.php')
61
+        || !is_writable($filename)
62
+        || !($last_modified = filemtime($filename))
63
+        || !($md5 = md5_file($filename))
64
+    ) {
65
+        return false;
66
+    }
67
+
68
+    include_spip('inc/distant');
69
+    $tmp_file = _DIR_TMP . 'ecran_securite.php';
70
+    $url = parametre_url(_URL_ECRAN_SECURITE, 'md5', $md5);
71
+    $url = parametre_url($url, 'vspip', $GLOBALS['spip_version_branche']);
72
+    $res = recuperer_url($url, [
73
+        'if_modified_since' => $last_modified,
74
+        'file' => $tmp_file
75
+    ]);
76
+
77
+    // si il y a une version plus recente que l'on a recu correctement
78
+    if (
79
+        $res['status'] == 200
80
+        && $res['length']
81
+        && ($tmp_file = $res['file'])
82
+    ) {
83
+        if ($md5 !== md5_file($tmp_file)) {
84
+            // on essaye de l'inclure pour verifier que ca ne fait pas erreur fatale
85
+            include_once $tmp_file;
86
+            // ok, on le copie a la place de l'ecran existant
87
+            // en backupant l'ecran avant, au cas ou
88
+            @copy($filename, $filename . '-bck-' . date('Y-m-d-His', $last_modified));
89
+            @rename($tmp_file, $filename);
90
+        } else {
91
+            @unlink($tmp_file);
92
+        }
93
+    }
94 94
 }
95 95
 
96 96
 /**
@@ -106,28 +106,28 @@  discard block
 block discarded – undo
106 106
  * @return string
107 107
  */
108 108
 function info_maj(string $version): string {
109
-	include_spip('inc/plugin');
110
-
111
-	// API V1
112
-	$contenu = info_maj_cache();
113
-	if (!$contenu) {
114
-		return '';
115
-	}
116
-
117
-	$maj = info_maj_versions($version, array_keys($contenu['versions'] ?? []));
118
-	if (!$maj['mineure'] && !$maj['majeure']) {
119
-		return '';
120
-	}
121
-
122
-	$message = [];
123
-	if ($maj['mineure']) {
124
-		$message[] = _T('nouvelle_version_spip', ['version' => $maj['mineure']]);
125
-	}
126
-	if ($maj['majeure']) {
127
-		$message[] = _T('nouvelle_version_spip_majeure', ['version' => $maj['majeure']]);
128
-	}
129
-
130
-	return '<a class="info_maj_spip" href="https://www.spip.net/fr_update" title="' . $maj['mineure'] . '">' . implode(' | ', $message) . '</a>';
109
+    include_spip('inc/plugin');
110
+
111
+    // API V1
112
+    $contenu = info_maj_cache();
113
+    if (!$contenu) {
114
+        return '';
115
+    }
116
+
117
+    $maj = info_maj_versions($version, array_keys($contenu['versions'] ?? []));
118
+    if (!$maj['mineure'] && !$maj['majeure']) {
119
+        return '';
120
+    }
121
+
122
+    $message = [];
123
+    if ($maj['mineure']) {
124
+        $message[] = _T('nouvelle_version_spip', ['version' => $maj['mineure']]);
125
+    }
126
+    if ($maj['majeure']) {
127
+        $message[] = _T('nouvelle_version_spip_majeure', ['version' => $maj['majeure']]);
128
+    }
129
+
130
+    return '<a class="info_maj_spip" href="https://www.spip.net/fr_update" title="' . $maj['mineure'] . '">' . implode(' | ', $message) . '</a>';
131 131
 }
132 132
 
133 133
 /**
@@ -142,34 +142,34 @@  discard block
 block discarded – undo
142 142
  * @return array|null Contenu du fichier de cache de l'info de maj de SPIP.
143 143
  */
144 144
 function info_maj_cache(): ?array {
145
-	$contenu = '';
146
-	$options = [];
147
-	$nom = _DIR_CACHE . _VERSIONS_LISTE;
148
-	if (file_exists($nom)) {
149
-		$contenu = file_get_contents($nom);
150
-		$options['if_modified_since'] = filemtime($nom);
151
-	}
152
-	include_spip('inc/distant');
153
-	$res = recuperer_url_cache(_VERSIONS_SERVEUR, $options);
154
-
155
-	// Si rien de neuf (ou inaccessible), garder l'ancienne
156
-	if ($res && $res['page']) {
157
-		$contenu = $res['page'];
158
-		ecrire_fichier($nom, $contenu);
159
-	}
160
-
161
-	if (!$contenu) {
162
-		return null;
163
-	}
164
-
165
-	try {
166
-		$json = json_decode((string) $contenu, true, 512, JSON_THROW_ON_ERROR);
167
-	} catch (JsonException $e) {
168
-		spip_logger('verifie_maj')->info('Failed to parse Json data : ' . $e->getMessage());
169
-		return null;
170
-	}
171
-
172
-	return $json;
145
+    $contenu = '';
146
+    $options = [];
147
+    $nom = _DIR_CACHE . _VERSIONS_LISTE;
148
+    if (file_exists($nom)) {
149
+        $contenu = file_get_contents($nom);
150
+        $options['if_modified_since'] = filemtime($nom);
151
+    }
152
+    include_spip('inc/distant');
153
+    $res = recuperer_url_cache(_VERSIONS_SERVEUR, $options);
154
+
155
+    // Si rien de neuf (ou inaccessible), garder l'ancienne
156
+    if ($res && $res['page']) {
157
+        $contenu = $res['page'];
158
+        ecrire_fichier($nom, $contenu);
159
+    }
160
+
161
+    if (!$contenu) {
162
+        return null;
163
+    }
164
+
165
+    try {
166
+        $json = json_decode((string) $contenu, true, 512, JSON_THROW_ON_ERROR);
167
+    } catch (JsonException $e) {
168
+        spip_logger('verifie_maj')->info('Failed to parse Json data : ' . $e->getMessage());
169
+        return null;
170
+    }
171
+
172
+    return $json;
173 173
 }
174 174
 
175 175
 /**
@@ -184,40 +184,40 @@  discard block
 block discarded – undo
184 184
  * @return array<string, string> Version mineure supérieure, version majeure supérieure
185 185
  */
186 186
 function info_maj_versions(string $version, array $versions): array {
187
-	$maj = ['mineure' => '', 'majeure' => ''];
188
-	if (!$version) {
189
-		return $maj;
190
-	}
191
-
192
-	// pas de version dev
193
-	$versions = array_diff($versions, ['dev']);
194
-
195
-	// branche en cours d'utilisation
196
-	$branche = implode('.', array_slice(explode('.', $version, 3), 0, 2));
197
-
198
-	foreach ($versions as $v) {
199
-		[$maj2, $min2, $rev2] = explode('.', $v);
200
-		$branche_maj = $maj2 . '.' . $min2;
201
-		$version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
202
-		$is_version_stable = is_numeric($rev2);
203
-		// d'abord les mises à jour de la même branche (version mineure)
204
-		if (
205
-			spip_version_compare($version, $version_maj, '<')
206
-			&& spip_version_compare($maj['mineure'], $version_maj, '<')
207
-			&& spip_version_compare($branche, $branche_maj, '=')
208
-		) {
209
-			$maj['mineure'] = $version_maj;
210
-		}
211
-		// puis les mises à jours majeures
212
-		if (
213
-			$is_version_stable
214
-			&& spip_version_compare($version, $version_maj, '<')
215
-			&& spip_version_compare($maj['majeure'], $version_maj, '<')
216
-			&& spip_version_compare($branche, $branche_maj, '<')
217
-		) {
218
-			$maj['majeure'] = $version_maj;
219
-		}
220
-	}
221
-
222
-	return $maj;
187
+    $maj = ['mineure' => '', 'majeure' => ''];
188
+    if (!$version) {
189
+        return $maj;
190
+    }
191
+
192
+    // pas de version dev
193
+    $versions = array_diff($versions, ['dev']);
194
+
195
+    // branche en cours d'utilisation
196
+    $branche = implode('.', array_slice(explode('.', $version, 3), 0, 2));
197
+
198
+    foreach ($versions as $v) {
199
+        [$maj2, $min2, $rev2] = explode('.', $v);
200
+        $branche_maj = $maj2 . '.' . $min2;
201
+        $version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
202
+        $is_version_stable = is_numeric($rev2);
203
+        // d'abord les mises à jour de la même branche (version mineure)
204
+        if (
205
+            spip_version_compare($version, $version_maj, '<')
206
+            && spip_version_compare($maj['mineure'], $version_maj, '<')
207
+            && spip_version_compare($branche, $branche_maj, '=')
208
+        ) {
209
+            $maj['mineure'] = $version_maj;
210
+        }
211
+        // puis les mises à jours majeures
212
+        if (
213
+            $is_version_stable
214
+            && spip_version_compare($version, $version_maj, '<')
215
+            && spip_version_compare($maj['majeure'], $version_maj, '<')
216
+            && spip_version_compare($branche, $branche_maj, '<')
217
+        ) {
218
+            $maj['majeure'] = $version_maj;
219
+        }
220
+    }
221
+
222
+    return $maj;
223 223
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -28,11 +28,11 @@  discard block
 block discarded – undo
28 28
 function genie_mise_a_jour_dist($t) {
29 29
 	include_spip('inc/meta');
30 30
 	$maj = info_maj($GLOBALS['spip_version_branche']);
31
-	ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche'] . "|$maj") : '', 'non');
31
+	ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche']."|$maj") : '', 'non');
32 32
 
33 33
 	mise_a_jour_ecran_securite();
34 34
 
35
-	spip_logger('verifie_maj')->info('Verification version SPIP : ' . ($maj ?: 'version a jour'));
35
+	spip_logger('verifie_maj')->info('Verification version SPIP : '.($maj ?: 'version a jour'));
36 36
 
37 37
 	return 1;
38 38
 }
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
 	// si l'ecran n'est pas deja present ou pas updatable, sortir
58 58
 	if (
59 59
 		!_URL_ECRAN_SECURITE
60
-		|| !file_exists($filename = _DIR_ETC . 'ecran_securite.php')
60
+		|| !file_exists($filename = _DIR_ETC.'ecran_securite.php')
61 61
 		|| !is_writable($filename)
62 62
 		|| !($last_modified = filemtime($filename))
63 63
 		|| !($md5 = md5_file($filename))
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
 	}
67 67
 
68 68
 	include_spip('inc/distant');
69
-	$tmp_file = _DIR_TMP . 'ecran_securite.php';
69
+	$tmp_file = _DIR_TMP.'ecran_securite.php';
70 70
 	$url = parametre_url(_URL_ECRAN_SECURITE, 'md5', $md5);
71 71
 	$url = parametre_url($url, 'vspip', $GLOBALS['spip_version_branche']);
72 72
 	$res = recuperer_url($url, [
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
 			include_once $tmp_file;
86 86
 			// ok, on le copie a la place de l'ecran existant
87 87
 			// en backupant l'ecran avant, au cas ou
88
-			@copy($filename, $filename . '-bck-' . date('Y-m-d-His', $last_modified));
88
+			@copy($filename, $filename.'-bck-'.date('Y-m-d-His', $last_modified));
89 89
 			@rename($tmp_file, $filename);
90 90
 		} else {
91 91
 			@unlink($tmp_file);
@@ -127,7 +127,7 @@  discard block
 block discarded – undo
127 127
 		$message[] = _T('nouvelle_version_spip_majeure', ['version' => $maj['majeure']]);
128 128
 	}
129 129
 
130
-	return '<a class="info_maj_spip" href="https://www.spip.net/fr_update" title="' . $maj['mineure'] . '">' . implode(' | ', $message) . '</a>';
130
+	return '<a class="info_maj_spip" href="https://www.spip.net/fr_update" title="'.$maj['mineure'].'">'.implode(' | ', $message).'</a>';
131 131
 }
132 132
 
133 133
 /**
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 function info_maj_cache(): ?array {
145 145
 	$contenu = '';
146 146
 	$options = [];
147
-	$nom = _DIR_CACHE . _VERSIONS_LISTE;
147
+	$nom = _DIR_CACHE._VERSIONS_LISTE;
148 148
 	if (file_exists($nom)) {
149 149
 		$contenu = file_get_contents($nom);
150 150
 		$options['if_modified_since'] = filemtime($nom);
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
 	try {
166 166
 		$json = json_decode((string) $contenu, true, 512, JSON_THROW_ON_ERROR);
167 167
 	} catch (JsonException $e) {
168
-		spip_logger('verifie_maj')->info('Failed to parse Json data : ' . $e->getMessage());
168
+		spip_logger('verifie_maj')->info('Failed to parse Json data : '.$e->getMessage());
169 169
 		return null;
170 170
 	}
171 171
 
@@ -197,8 +197,8 @@  discard block
 block discarded – undo
197 197
 
198 198
 	foreach ($versions as $v) {
199 199
 		[$maj2, $min2, $rev2] = explode('.', $v);
200
-		$branche_maj = $maj2 . '.' . $min2;
201
-		$version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
200
+		$branche_maj = $maj2.'.'.$min2;
201
+		$version_maj = $maj2.'.'.$min2.'.'.$rev2;
202 202
 		$is_version_stable = is_numeric($rev2);
203 203
 		// d'abord les mises à jour de la même branche (version mineure)
204 204
 		if (
Please login to merge, or discard this patch.
ecrire/balise/url_.php 2 patches
Indentation   +151 added lines, -151 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
  **/
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 /**
@@ -36,14 +36,14 @@  discard block
 block discarded – undo
36 36
  *     Code compilé
37 37
  **/
38 38
 function generer_generer_url($type, $p) {
39
-	$_id = interprete_argument_balise(1, $p);
39
+    $_id = interprete_argument_balise(1, $p);
40 40
 
41
-	if (!$_id) {
42
-		$primary = id_table_objet($type);
43
-		$_id = champ_sql($primary, $p);
44
-	}
41
+    if (!$_id) {
42
+        $primary = id_table_objet($type);
43
+        $_id = champ_sql($primary, $p);
44
+    }
45 45
 
46
-	return generer_generer_url_arg($type, $p, $_id);
46
+    return generer_generer_url_arg($type, $p, $_id);
47 47
 }
48 48
 
49 49
 /**
@@ -72,28 +72,28 @@  discard block
 block discarded – undo
72 72
  *     Code compilé
73 73
  **/
74 74
 function generer_generer_url_arg($type, $p, $_id) {
75
-	if ($s = trouver_nom_serveur_distant($p)) {
76
-		// si une fonction de generation des url a ete definie pour ce connect l'utiliser
77
-		if (function_exists($f = 'generer_generer_url_' . $s)) {
78
-			return $f($type, $_id, $s);
79
-		}
80
-		if (!$GLOBALS['connexions'][strtolower((string) $s)]['spip_connect_version']) {
81
-			return null;
82
-		}
83
-		$s = _q($s);
84
-		# exception des urls de documents sur un serveur distant...
85
-		if ($type == 'document') {
86
-			return
87
-				"quete_meta('adresse_site', $s) . '/' .\n\t" .
88
-				"quete_meta('dir_img', $s) . \n\t" .
89
-				"quete_fichier($_id,$s)";
90
-		}
91
-		$s = ", '', '', $s, quete_meta('type_urls', $s)";
92
-	} else {
93
-		$s = ", '', '', true";
94
-	}
95
-
96
-	return "urlencode_1738(generer_objet_url($_id, '$type'$s))";
75
+    if ($s = trouver_nom_serveur_distant($p)) {
76
+        // si une fonction de generation des url a ete definie pour ce connect l'utiliser
77
+        if (function_exists($f = 'generer_generer_url_' . $s)) {
78
+            return $f($type, $_id, $s);
79
+        }
80
+        if (!$GLOBALS['connexions'][strtolower((string) $s)]['spip_connect_version']) {
81
+            return null;
82
+        }
83
+        $s = _q($s);
84
+        # exception des urls de documents sur un serveur distant...
85
+        if ($type == 'document') {
86
+            return
87
+                "quete_meta('adresse_site', $s) . '/' .\n\t" .
88
+                "quete_meta('dir_img', $s) . \n\t" .
89
+                "quete_fichier($_id,$s)";
90
+        }
91
+        $s = ", '', '', $s, quete_meta('type_urls', $s)";
92
+    } else {
93
+        $s = ", '', '', true";
94
+    }
95
+
96
+    return "urlencode_1738(generer_objet_url($_id, '$type'$s))";
97 97
 }
98 98
 
99 99
 
@@ -118,27 +118,27 @@  discard block
 block discarded – undo
118 118
  */
119 119
 function balise_URL__dist($p) {
120 120
 
121
-	$nom = $p->nom_champ;
122
-	if ($nom === 'URL_') {
123
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' URL_']];
124
-		erreur_squelette($msg, $p);
125
-		$p->interdire_scripts = false;
126
-
127
-		return $p;
128
-	} elseif ($f = charger_fonction($nom, 'balise', true)) {
129
-		return $f($p);
130
-	} else {
131
-		$nom = strtolower((string) $nom);
132
-		$code = generer_generer_url(substr($nom, 4), $p);
133
-		$code = champ_sql($nom, $p, $code);
134
-		$p->code = $code;
135
-		if (!$p->etoile) {
136
-			$p->code = "vider_url($code)";
137
-		}
138
-		$p->interdire_scripts = false;
139
-
140
-		return $p;
141
-	}
121
+    $nom = $p->nom_champ;
122
+    if ($nom === 'URL_') {
123
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' URL_']];
124
+        erreur_squelette($msg, $p);
125
+        $p->interdire_scripts = false;
126
+
127
+        return $p;
128
+    } elseif ($f = charger_fonction($nom, 'balise', true)) {
129
+        return $f($p);
130
+    } else {
131
+        $nom = strtolower((string) $nom);
132
+        $code = generer_generer_url(substr($nom, 4), $p);
133
+        $code = champ_sql($nom, $p, $code);
134
+        $p->code = $code;
135
+        if (!$p->etoile) {
136
+            $p->code = "vider_url($code)";
137
+        }
138
+        $p->interdire_scripts = false;
139
+
140
+        return $p;
141
+    }
142 142
 }
143 143
 
144 144
 /**
@@ -162,16 +162,16 @@  discard block
 block discarded – undo
162 162
  */
163 163
 function balise_URL_ARTICLE_dist($p) {
164 164
 
165
-	// Cas particulier des boucles (SYNDIC_ARTICLES)
166
-	$code = $p->type_requete == 'syndic_articles' ? champ_sql('url', $p) : generer_generer_url('article', $p);
165
+    // Cas particulier des boucles (SYNDIC_ARTICLES)
166
+    $code = $p->type_requete == 'syndic_articles' ? champ_sql('url', $p) : generer_generer_url('article', $p);
167 167
 
168
-	$p->code = $code;
169
-	if (!$p->etoile) {
170
-		$p->code = "vider_url($code)";
171
-	}
172
-	$p->interdire_scripts = false;
168
+    $p->code = $code;
169
+    if (!$p->etoile) {
170
+        $p->code = "vider_url($code)";
171
+    }
172
+    $p->interdire_scripts = false;
173 173
 
174
-	return $p;
174
+    return $p;
175 175
 }
176 176
 
177 177
 /**
@@ -191,21 +191,21 @@  discard block
 block discarded – undo
191 191
  *     Pile complétée par le code à générer
192 192
  */
193 193
 function balise_URL_SITE_dist($p) {
194
-	$code = champ_sql('url_site', $p, '');
195
-	if (!$code) {
196
-		$code = generer_generer_url('site', $p);
197
-		if ($code === null) {
198
-			return null;
199
-		}
200
-	} else {
201
-		if (!$p->etoile) {
202
-			$code = "calculer_url($code,'','url', \$connect)";
203
-		}
204
-	}
205
-	$p->code = $code;
206
-	$p->interdire_scripts = false;
207
-
208
-	return $p;
194
+    $code = champ_sql('url_site', $p, '');
195
+    if (!$code) {
196
+        $code = generer_generer_url('site', $p);
197
+        if ($code === null) {
198
+            return null;
199
+        }
200
+    } else {
201
+        if (!$p->etoile) {
202
+            $code = "calculer_url($code,'','url', \$connect)";
203
+        }
204
+    }
205
+    $p->code = $code;
206
+    $p->interdire_scripts = false;
207
+
208
+    return $p;
209 209
 }
210 210
 
211 211
 // Autres balises URL_*, qui ne concernent pas une table
@@ -224,11 +224,11 @@  discard block
 block discarded – undo
224 224
  *     Pile complétée par le code à générer
225 225
  */
226 226
 function balise_URL_SITE_SPIP_dist($p) {
227
-	$p->code = "sinon(\$GLOBALS['meta']['adresse_site'],'.')";
228
-	$p->code = 'spip_htmlspecialchars(' . $p->code . ')';
229
-	$p->interdire_scripts = false;
227
+    $p->code = "sinon(\$GLOBALS['meta']['adresse_site'],'.')";
228
+    $p->code = 'spip_htmlspecialchars(' . $p->code . ')';
229
+    $p->interdire_scripts = false;
230 230
 
231
-	return $p;
231
+    return $p;
232 232
 }
233 233
 
234 234
 
@@ -257,42 +257,42 @@  discard block
 block discarded – undo
257 257
  */
258 258
 function balise_URL_PAGE_dist($p) {
259 259
 
260
-	$code = interprete_argument_balise(1, $p);
261
-	$args = interprete_argument_balise(2, $p);
262
-	if ($args == null) {
263
-		$args = "''";
264
-	}
265
-
266
-	if ($s = trouver_nom_serveur_distant($p)) {
267
-		// si une fonction de generation des url a ete definie pour ce connect l'utiliser
268
-		// elle devra aussi traiter le cas derogatoire type=page
269
-		if (function_exists($f = 'generer_generer_url_' . $s)) {
270
-			if ($args && $args !== "''") {
271
-				$code .= ", $args";
272
-			}
273
-			$code = $f('page', $code, $s);
274
-			$p->code = $code;
275
-			return $p;
276
-		}
277
-		$s = 'connect=' . addslashes((string) $s);
278
-		$args = (($args && $args !== "''") ? "$args . '&$s'" : "'$s'");
279
-	}
280
-
281
-	if (!$code) {
282
-		$noentities = $p->etoile ? "'&'" : '';
283
-		$code = "url_de_base() . preg_replace(',^./,', '', self($noentities))";
284
-	} else {
285
-		if (!$args) {
286
-			$args = "''";
287
-		}
288
-		$noentities = $p->etoile ? ', true' : '';
289
-		$code = "generer_url_public($code, $args$noentities)";
290
-	}
291
-	$p->code = $code;
292
-	spip_logger()->info("Calcul url page : connect vaut $s ca donne :" . $p->code . " args $args");
293
-
294
-	#$p->interdire_scripts = true;
295
-	return $p;
260
+    $code = interprete_argument_balise(1, $p);
261
+    $args = interprete_argument_balise(2, $p);
262
+    if ($args == null) {
263
+        $args = "''";
264
+    }
265
+
266
+    if ($s = trouver_nom_serveur_distant($p)) {
267
+        // si une fonction de generation des url a ete definie pour ce connect l'utiliser
268
+        // elle devra aussi traiter le cas derogatoire type=page
269
+        if (function_exists($f = 'generer_generer_url_' . $s)) {
270
+            if ($args && $args !== "''") {
271
+                $code .= ", $args";
272
+            }
273
+            $code = $f('page', $code, $s);
274
+            $p->code = $code;
275
+            return $p;
276
+        }
277
+        $s = 'connect=' . addslashes((string) $s);
278
+        $args = (($args && $args !== "''") ? "$args . '&$s'" : "'$s'");
279
+    }
280
+
281
+    if (!$code) {
282
+        $noentities = $p->etoile ? "'&'" : '';
283
+        $code = "url_de_base() . preg_replace(',^./,', '', self($noentities))";
284
+    } else {
285
+        if (!$args) {
286
+            $args = "''";
287
+        }
288
+        $noentities = $p->etoile ? ', true' : '';
289
+        $code = "generer_url_public($code, $args$noentities)";
290
+    }
291
+    $p->code = $code;
292
+    spip_logger()->info("Calcul url page : connect vaut $s ca donne :" . $p->code . " args $args");
293
+
294
+    #$p->interdire_scripts = true;
295
+    return $p;
296 296
 }
297 297
 
298 298
 
@@ -319,24 +319,24 @@  discard block
 block discarded – undo
319 319
  */
320 320
 function balise_URL_ECRIRE_dist($p) {
321 321
 
322
-	$code = interprete_argument_balise(1, $p);
323
-	if (!$code) {
324
-		$fonc = "''";
325
-	} else {
326
-		$fonc = $code;
327
-		$args = interprete_argument_balise(2, $p);
328
-		if ($args === null) {
329
-			$args = "''";
330
-		}
331
-		$noentities = $p->etoile ? ', true' : '';
332
-		if ($args != "''" || $noentities) {
333
-			$fonc .= ",$args$noentities";
334
-		}
335
-	}
336
-	$p->code = 'generer_url_ecrire(' . $fonc . ')';
337
-	$p->interdire_scripts = false;
338
-
339
-	return $p;
322
+    $code = interprete_argument_balise(1, $p);
323
+    if (!$code) {
324
+        $fonc = "''";
325
+    } else {
326
+        $fonc = $code;
327
+        $args = interprete_argument_balise(2, $p);
328
+        if ($args === null) {
329
+            $args = "''";
330
+        }
331
+        $noentities = $p->etoile ? ', true' : '';
332
+        if ($args != "''" || $noentities) {
333
+            $fonc .= ",$args$noentities";
334
+        }
335
+    }
336
+    $p->code = 'generer_url_ecrire(' . $fonc . ')';
337
+    $p->interdire_scripts = false;
338
+
339
+    return $p;
340 340
 }
341 341
 
342 342
 
@@ -362,24 +362,24 @@  discard block
 block discarded – undo
362 362
  *     Pile complétée par le code à générer
363 363
  */
364 364
 function balise_URL_ACTION_AUTEUR_dist($p) {
365
-	$p->descr['session'] = true;
366
-
367
-	$p->code = interprete_argument_balise(1, $p);
368
-
369
-	$args = interprete_argument_balise(2, $p);
370
-	if ($args != "''" && $args !== null) {
371
-		$p->code .= ',' . $args;
372
-	}
373
-	$redirect = interprete_argument_balise(3, $p);
374
-	if ($redirect != "''" && $redirect !== null) {
375
-		if ($args == "''" || $args === null) {
376
-			$p->code .= ",''";
377
-		}
378
-		$p->code .= ',' . $redirect;
379
-	}
380
-
381
-	$p->code = 'generer_action_auteur(' . $p->code . ')';
382
-	$p->interdire_scripts = false;
383
-
384
-	return $p;
365
+    $p->descr['session'] = true;
366
+
367
+    $p->code = interprete_argument_balise(1, $p);
368
+
369
+    $args = interprete_argument_balise(2, $p);
370
+    if ($args != "''" && $args !== null) {
371
+        $p->code .= ',' . $args;
372
+    }
373
+    $redirect = interprete_argument_balise(3, $p);
374
+    if ($redirect != "''" && $redirect !== null) {
375
+        if ($args == "''" || $args === null) {
376
+            $p->code .= ",''";
377
+        }
378
+        $p->code .= ',' . $redirect;
379
+    }
380
+
381
+    $p->code = 'generer_action_auteur(' . $p->code . ')';
382
+    $p->interdire_scripts = false;
383
+
384
+    return $p;
385 385
 }
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
 function generer_generer_url_arg($type, $p, $_id) {
75 75
 	if ($s = trouver_nom_serveur_distant($p)) {
76 76
 		// si une fonction de generation des url a ete definie pour ce connect l'utiliser
77
-		if (function_exists($f = 'generer_generer_url_' . $s)) {
77
+		if (function_exists($f = 'generer_generer_url_'.$s)) {
78 78
 			return $f($type, $_id, $s);
79 79
 		}
80 80
 		if (!$GLOBALS['connexions'][strtolower((string) $s)]['spip_connect_version']) {
@@ -84,8 +84,8 @@  discard block
 block discarded – undo
84 84
 		# exception des urls de documents sur un serveur distant...
85 85
 		if ($type == 'document') {
86 86
 			return
87
-				"quete_meta('adresse_site', $s) . '/' .\n\t" .
88
-				"quete_meta('dir_img', $s) . \n\t" .
87
+				"quete_meta('adresse_site', $s) . '/' .\n\t".
88
+				"quete_meta('dir_img', $s) . \n\t".
89 89
 				"quete_fichier($_id,$s)";
90 90
 		}
91 91
 		$s = ", '', '', $s, quete_meta('type_urls', $s)";
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
  */
226 226
 function balise_URL_SITE_SPIP_dist($p) {
227 227
 	$p->code = "sinon(\$GLOBALS['meta']['adresse_site'],'.')";
228
-	$p->code = 'spip_htmlspecialchars(' . $p->code . ')';
228
+	$p->code = 'spip_htmlspecialchars('.$p->code.')';
229 229
 	$p->interdire_scripts = false;
230 230
 
231 231
 	return $p;
@@ -266,7 +266,7 @@  discard block
 block discarded – undo
266 266
 	if ($s = trouver_nom_serveur_distant($p)) {
267 267
 		// si une fonction de generation des url a ete definie pour ce connect l'utiliser
268 268
 		// elle devra aussi traiter le cas derogatoire type=page
269
-		if (function_exists($f = 'generer_generer_url_' . $s)) {
269
+		if (function_exists($f = 'generer_generer_url_'.$s)) {
270 270
 			if ($args && $args !== "''") {
271 271
 				$code .= ", $args";
272 272
 			}
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
 			$p->code = $code;
275 275
 			return $p;
276 276
 		}
277
-		$s = 'connect=' . addslashes((string) $s);
277
+		$s = 'connect='.addslashes((string) $s);
278 278
 		$args = (($args && $args !== "''") ? "$args . '&$s'" : "'$s'");
279 279
 	}
280 280
 
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
 		$code = "generer_url_public($code, $args$noentities)";
290 290
 	}
291 291
 	$p->code = $code;
292
-	spip_logger()->info("Calcul url page : connect vaut $s ca donne :" . $p->code . " args $args");
292
+	spip_logger()->info("Calcul url page : connect vaut $s ca donne :".$p->code." args $args");
293 293
 
294 294
 	#$p->interdire_scripts = true;
295 295
 	return $p;
@@ -333,7 +333,7 @@  discard block
 block discarded – undo
333 333
 			$fonc .= ",$args$noentities";
334 334
 		}
335 335
 	}
336
-	$p->code = 'generer_url_ecrire(' . $fonc . ')';
336
+	$p->code = 'generer_url_ecrire('.$fonc.')';
337 337
 	$p->interdire_scripts = false;
338 338
 
339 339
 	return $p;
@@ -368,17 +368,17 @@  discard block
 block discarded – undo
368 368
 
369 369
 	$args = interprete_argument_balise(2, $p);
370 370
 	if ($args != "''" && $args !== null) {
371
-		$p->code .= ',' . $args;
371
+		$p->code .= ','.$args;
372 372
 	}
373 373
 	$redirect = interprete_argument_balise(3, $p);
374 374
 	if ($redirect != "''" && $redirect !== null) {
375 375
 		if ($args == "''" || $args === null) {
376 376
 			$p->code .= ",''";
377 377
 		}
378
-		$p->code .= ',' . $redirect;
378
+		$p->code .= ','.$redirect;
379 379
 	}
380 380
 
381
-	$p->code = 'generer_action_auteur(' . $p->code . ')';
381
+	$p->code = 'generer_action_auteur('.$p->code.')';
382 382
 	$p->interdire_scripts = false;
383 383
 
384 384
 	return $p;
Please login to merge, or discard this patch.
ecrire/maj/legacy/v40.php 2 patches
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  * @package SPIP\Core\SQL\Upgrade
20 20
  **/
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	return;
22
+    return;
23 23
 }
24 24
 
25 25
 
@@ -34,48 +34,48 @@  discard block
 block discarded – undo
34 34
  **/
35 35
 function maj_timestamp_mysql($tables = null) {
36 36
 
37
-	include_spip('base/dump');
38
-	if (is_null($tables)) {
39
-		$tables = base_lister_toutes_tables();
40
-	} elseif (is_string($tables)) {
41
-		$tables = [$tables];
42
-	} elseif (!is_array($tables)) {
43
-		return;
44
-	}
37
+    include_spip('base/dump');
38
+    if (is_null($tables)) {
39
+        $tables = base_lister_toutes_tables();
40
+    } elseif (is_string($tables)) {
41
+        $tables = [$tables];
42
+    } elseif (!is_array($tables)) {
43
+        return;
44
+    }
45 45
 
46
-	// rien a faire si base non mysql
47
-	if (!str_starts_with((string) $GLOBALS['connexions'][0]['type'], 'mysql')) {
48
-		return;
49
-	}
46
+    // rien a faire si base non mysql
47
+    if (!str_starts_with((string) $GLOBALS['connexions'][0]['type'], 'mysql')) {
48
+        return;
49
+    }
50 50
 
51
-	$trouver_table = charger_fonction('trouver_table', 'base');
52
-	// forcer le vidage de cache
53
-	$trouver_table('');
51
+    $trouver_table = charger_fonction('trouver_table', 'base');
52
+    // forcer le vidage de cache
53
+    $trouver_table('');
54 54
 
55
-	foreach ($tables as $table) {
56
-		if (time() >= _TIME_OUT) {
57
-			return;
58
-		}
59
-		if ($desc = $trouver_table($table)) {
60
-			$fields_corrected = _mysql_remplacements_definitions_table($desc['field']);
61
-			$d = array_diff($desc['field'], $fields_corrected);
62
-			if ($d) {
63
-				spip_logger('maj')->info("Table $table TIMESTAMP incorrect");
64
-				foreach ($desc['field'] as $field => $type) {
65
-					if ($desc['field'][$field] !== $fields_corrected[$field]) {
66
-						spip_logger('maj')->notice("Adaptation TIMESTAMP table $table");
67
-						sql_alter("table $table change $field $field " . $fields_corrected[$field]);
68
-						$trouver_table('');
69
-						$new_desc = $trouver_table($table);
70
-						spip_logger('maj')->notice(
71
-							"Apres conversion $table : " . var_export($new_desc['field'], true),
72
-						);
73
-					}
74
-				}
75
-			}
76
-		}
77
-	}
55
+    foreach ($tables as $table) {
56
+        if (time() >= _TIME_OUT) {
57
+            return;
58
+        }
59
+        if ($desc = $trouver_table($table)) {
60
+            $fields_corrected = _mysql_remplacements_definitions_table($desc['field']);
61
+            $d = array_diff($desc['field'], $fields_corrected);
62
+            if ($d) {
63
+                spip_logger('maj')->info("Table $table TIMESTAMP incorrect");
64
+                foreach ($desc['field'] as $field => $type) {
65
+                    if ($desc['field'][$field] !== $fields_corrected[$field]) {
66
+                        spip_logger('maj')->notice("Adaptation TIMESTAMP table $table");
67
+                        sql_alter("table $table change $field $field " . $fields_corrected[$field]);
68
+                        $trouver_table('');
69
+                        $new_desc = $trouver_table($table);
70
+                        spip_logger('maj')->notice(
71
+                            "Apres conversion $table : " . var_export($new_desc['field'], true),
72
+                        );
73
+                    }
74
+                }
75
+            }
76
+        }
77
+    }
78 78
 
79
-	// forcer le vidage de cache
80
-	$trouver_table('');
79
+    // forcer le vidage de cache
80
+    $trouver_table('');
81 81
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -64,11 +64,11 @@
 block discarded – undo
64 64
 				foreach ($desc['field'] as $field => $type) {
65 65
 					if ($desc['field'][$field] !== $fields_corrected[$field]) {
66 66
 						spip_logger('maj')->notice("Adaptation TIMESTAMP table $table");
67
-						sql_alter("table $table change $field $field " . $fields_corrected[$field]);
67
+						sql_alter("table $table change $field $field ".$fields_corrected[$field]);
68 68
 						$trouver_table('');
69 69
 						$new_desc = $trouver_table($table);
70 70
 						spip_logger('maj')->notice(
71
-							"Apres conversion $table : " . var_export($new_desc['field'], true),
71
+							"Apres conversion $table : ".var_export($new_desc['field'], true),
72 72
 						);
73 73
 					}
74 74
 				}
Please login to merge, or discard this patch.
ecrire/maj/2021.php 2 patches
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -18,21 +18,21 @@  discard block
 block discarded – undo
18 18
  * @package SPIP\Core\SQL\Upgrade
19 19
  **/
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 $GLOBALS['maj'][2021_02_18_00] = [
25
-	['sql_alter', "TABLE spip_auteurs CHANGE imessage imessage VARCHAR(3) DEFAULT '' NOT NULL" ],
26
-	['sql_updateq', 'spip_auteurs', ['imessage' => 'oui'], "imessage != 'non' OR imessage IS NULL" ],
25
+    ['sql_alter', "TABLE spip_auteurs CHANGE imessage imessage VARCHAR(3) DEFAULT '' NOT NULL" ],
26
+    ['sql_updateq', 'spip_auteurs', ['imessage' => 'oui'], "imessage != 'non' OR imessage IS NULL" ],
27 27
 ];
28 28
 
29 29
 $GLOBALS['maj'][2022_02_23_02] = [
30
-	['sql_alter', "TABLE spip_auteurs ADD backup_cles mediumtext DEFAULT '' NOT NULL" ],
31
-	['sql_delete', 'spip_meta', "nom='secret_du_site'" ],
30
+    ['sql_alter', "TABLE spip_auteurs ADD backup_cles mediumtext DEFAULT '' NOT NULL" ],
31
+    ['sql_delete', 'spip_meta', "nom='secret_du_site'" ],
32 32
 ];
33 33
 
34 34
 $GLOBALS['maj'][2022_02_23_03] = [
35
-	['maj2021_supprimer_toutes_sessions_si_aucun_backup_cles'],
35
+    ['maj2021_supprimer_toutes_sessions_si_aucun_backup_cles'],
36 36
 ];
37 37
 
38 38
 /**
@@ -43,15 +43,15 @@  discard block
 block discarded – undo
43 43
  * - les autres auteurs vont tous regénérer un mot de passe plus sécure au premier login
44 44
  **/
45 45
 function maj2021_supprimer_toutes_sessions_si_aucun_backup_cles() {
46
-	if (!sql_countsel('spip_auteurs', "webmestre='oui' AND backup_cles!=''")) {
47
-		spip_logger('maj')->info('supprimer sessions auteur');
48
-		if ($dir = opendir(_DIR_SESSIONS)) {
49
-			while (($f = readdir($dir)) !== false) {
50
-				spip_unlink(_DIR_SESSIONS . $f);
51
-				if (time() >= _TIME_OUT) {
52
-					return;
53
-				}
54
-			}
55
-		}
56
-	}
46
+    if (!sql_countsel('spip_auteurs', "webmestre='oui' AND backup_cles!=''")) {
47
+        spip_logger('maj')->info('supprimer sessions auteur');
48
+        if ($dir = opendir(_DIR_SESSIONS)) {
49
+            while (($f = readdir($dir)) !== false) {
50
+                spip_unlink(_DIR_SESSIONS . $f);
51
+                if (time() >= _TIME_OUT) {
52
+                    return;
53
+                }
54
+            }
55
+        }
56
+    }
57 57
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -22,13 +22,13 @@  discard block
 block discarded – undo
22 22
 }
23 23
 
24 24
 $GLOBALS['maj'][2021_02_18_00] = [
25
-	['sql_alter', "TABLE spip_auteurs CHANGE imessage imessage VARCHAR(3) DEFAULT '' NOT NULL" ],
26
-	['sql_updateq', 'spip_auteurs', ['imessage' => 'oui'], "imessage != 'non' OR imessage IS NULL" ],
25
+	['sql_alter', "TABLE spip_auteurs CHANGE imessage imessage VARCHAR(3) DEFAULT '' NOT NULL"],
26
+	['sql_updateq', 'spip_auteurs', ['imessage' => 'oui'], "imessage != 'non' OR imessage IS NULL"],
27 27
 ];
28 28
 
29 29
 $GLOBALS['maj'][2022_02_23_02] = [
30
-	['sql_alter', "TABLE spip_auteurs ADD backup_cles mediumtext DEFAULT '' NOT NULL" ],
31
-	['sql_delete', 'spip_meta', "nom='secret_du_site'" ],
30
+	['sql_alter', "TABLE spip_auteurs ADD backup_cles mediumtext DEFAULT '' NOT NULL"],
31
+	['sql_delete', 'spip_meta', "nom='secret_du_site'"],
32 32
 ];
33 33
 
34 34
 $GLOBALS['maj'][2022_02_23_03] = [
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
 		spip_logger('maj')->info('supprimer sessions auteur');
48 48
 		if ($dir = opendir(_DIR_SESSIONS)) {
49 49
 			while (($f = readdir($dir)) !== false) {
50
-				spip_unlink(_DIR_SESSIONS . $f);
50
+				spip_unlink(_DIR_SESSIONS.$f);
51 51
 				if (time() >= _TIME_OUT) {
52 52
 					return;
53 53
 				}
Please login to merge, or discard this patch.
ecrire/auth/spip.php 3 patches
Indentation   +397 added lines, -397 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 use Spip\Chiffrer\SpipCles;
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 /**
@@ -33,167 +33,167 @@  discard block
 block discarded – undo
33 33
  */
34 34
 function auth_spip_dist($login, #[\SensitiveParameter] $pass, $serveur = '', $phpauth = false) {
35 35
 
36
-	$methode = null;
37
-	// retrouver le login
38
-	$login = auth_spip_retrouver_login($login);
39
-	// login inconnu, n'allons pas plus loin
40
-	if (!$login) {
41
-		return [];
42
-	}
43
-
44
-	$md5pass = '';
45
-	$shapass = $shanext = '';
46
-	$auteur_peut_sauver_cles = false;
47
-
48
-	if ($pass) {
49
-		$row = sql_fetsel(
50
-			'*',
51
-			'spip_auteurs',
52
-			'login=' . sql_quote($login, $serveur, 'text') . " AND statut<>'5poubelle'",
53
-			'',
54
-			'',
55
-			'',
56
-			'',
57
-			$serveur
58
-		);
59
-
60
-		// lever un flag si cet auteur peut sauver les cles
61
-		if ($row['statut'] === '0minirezo' && $row['webmestre'] === 'oui' && isset($row['backup_cles'])) {
62
-			$auteur_peut_sauver_cles = true;
63
-		}
64
-	}
65
-
66
-	// login inexistant ou mot de passe vide
67
-	if (!$pass || !$row) {
68
-		return [];
69
-	}
70
-
71
-	$cles = SpipCles::instance();
72
-	$secret = $cles->getSecretAuth();
73
-
74
-	$hash = null;
75
-	switch (strlen((string) $row['pass'])) {
76
-		// legacy = md5 ou sha256
77
-		case 32:
78
-			// tres anciens mots de passe encodes en md5(alea.pass)
79
-			$hash = md5($row['alea_actuel'] . $pass);
80
-			$methode = 'md5';
81
-		case 64:
82
-			if (empty($hash)) {
83
-				// anciens mots de passe encodes en sha256(alea.pass)
84
-				$hash =  hash('sha256', $row['alea_actuel'] . $pass);
85
-				$methode = 'sha256';
86
-			}
87
-			if ($row['pass'] === $hash) {
88
-				spip_logger('auth')->debug("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via $methode");
89
-				// ce n'est pas cense arriver, mais si jamais c'est un backup inutilisable, il faut le nettoyer pour ne pas bloquer la creation d'une nouvelle cle d'auth
90
-				if (!empty($row['backup_cles'])) {
91
-					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
92
-				}
93
-				break;
94
-			}
95
-
96
-		// on teste la methode par defaut, au cas ou ce serait un pass moderne qui a la malchance d'etre en 64char de long
97
-
98
-		case 60:
99
-		case 98:
100
-		default:
101
-			// doit-on restaurer un backup des cles ?
102
-			// si on a le bon pass on peut decoder le backup, retrouver la cle, et du coup valider le pass
103
-			if (
104
-				!$secret
105
-				&& $auteur_peut_sauver_cles
106
-				&& !empty($row['backup_cles'])
107
-			) {
108
-				if ($cles->restore($row['backup_cles'], $pass, $row['pass'], $row['id_auteur'])) {
109
-					spip_logger('auth')->notice('Les cles secretes ont ete restaurées avec le backup du webmestre #' . $row['id_auteur']);
110
-					if ($cles->save()) {
111
-						$secret = $cles->getSecretAuth();
112
-					}
113
-					else {
114
-						spip_logger('auth')->error("Echec restauration des cles : verifier les droits d'ecriture ?");
115
-						// et on echoue car on ne veut pas que la situation reste telle quelle
116
-						raler_fichier(_DIR_ETC . 'cles.php');
117
-					}
118
-				}
119
-				else {
120
-					spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) mais le backup du webmestre #' . $row['id_auteur'] . " n'est pas valide");
121
-					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
122
-				}
123
-			}
124
-
125
-			if (!$secret || !Password::verifier($pass, $row['pass'], $secret)) {
126
-				unset($row);
127
-			}
128
-			else {
129
-				spip_logger('auth')->error("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via Password::verifier");
130
-			}
131
-			break;
132
-	}
133
-
134
-	// Migration depuis ancienne version : si on a pas encore de cle
135
-	// ET si c'est le login d'un auteur qui peut sauver la cle
136
-	// créer la clé (en s'assurant bien que personne n'a de backup d'un precedent fichier cle.php)
137
-	// si c'est un auteur normal, on ne fait rien, il garde son ancien pass hashé en sha256 en attendant le login d'un webmestre
138
-	if (!$secret && $auteur_peut_sauver_cles && auth_spip_initialiser_secret()) {
139
-		$secret = $cles->getSecretAuth();
140
-	}
141
-
142
-	// login/mot de passe incorrect
143
-	if (empty($row)) {
144
-		return [];
145
-	}
146
-
147
-	// fait tourner le codage du pass dans la base
148
-	// sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
149
-	if (!$phpauth && $secret) {
150
-		include_spip('inc/acces'); // pour creer_uniqid et verifier_htaccess
151
-		$pass_hash_next = Password::hacher($pass, $secret);
152
-		if ($pass_hash_next) {
153
-			$set = [
154
-				'alea_actuel' => 'alea_futur', // @deprecated 4.1
155
-				'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text'), // @deprecated 4.1
156
-				'pass' => sql_quote($pass_hash_next, $serveur, 'text'),
157
-			];
158
-
159
-			// regenerer un htpass si on a active/desactive le plugin htpasswd
160
-			// et/ou que l'algo a change - pour etre certain de toujours utiliser le bon algo
161
-			$htpass = generer_htpass($pass);
162
-			if (strlen((string) $htpass) !== strlen((string) $row['htpass'])) {
163
-				$set['htpass'] = sql_quote($htpass, $serveur, 'text');
164
-			}
165
-
166
-			// a chaque login de webmestre : sauvegarde chiffree des clés du site (avec les pass du webmestre)
167
-			if ($auteur_peut_sauver_cles) {
168
-				$set['backup_cles'] = sql_quote($cles->backup($pass), $serveur, 'text');
169
-			}
170
-
171
-			@sql_update(
172
-				'spip_auteurs',
173
-				$set,
174
-				'id_auteur=' . (int) $row['id_auteur'] . ' AND pass=' . sql_quote(
175
-					$row['pass'],
176
-					$serveur,
177
-					'text'
178
-				),
179
-				[],
180
-				$serveur
181
-			);
182
-
183
-			// si on a change le htpass car changement d'algo, regenerer les fichiers htpasswd
184
-			if (isset($set['htpass'])) {
185
-				ecrire_acces();
186
-			}
187
-		}
188
-
189
-		// En profiter pour verifier la securite de tmp/
190
-		// Si elle ne fonctionne pas a l'installation, prevenir
191
-		if (!verifier_htaccess(_DIR_TMP) && defined('_ECRIRE_INSTALL')) {
192
-			return false;
193
-		}
194
-	}
195
-
196
-	return $row;
36
+    $methode = null;
37
+    // retrouver le login
38
+    $login = auth_spip_retrouver_login($login);
39
+    // login inconnu, n'allons pas plus loin
40
+    if (!$login) {
41
+        return [];
42
+    }
43
+
44
+    $md5pass = '';
45
+    $shapass = $shanext = '';
46
+    $auteur_peut_sauver_cles = false;
47
+
48
+    if ($pass) {
49
+        $row = sql_fetsel(
50
+            '*',
51
+            'spip_auteurs',
52
+            'login=' . sql_quote($login, $serveur, 'text') . " AND statut<>'5poubelle'",
53
+            '',
54
+            '',
55
+            '',
56
+            '',
57
+            $serveur
58
+        );
59
+
60
+        // lever un flag si cet auteur peut sauver les cles
61
+        if ($row['statut'] === '0minirezo' && $row['webmestre'] === 'oui' && isset($row['backup_cles'])) {
62
+            $auteur_peut_sauver_cles = true;
63
+        }
64
+    }
65
+
66
+    // login inexistant ou mot de passe vide
67
+    if (!$pass || !$row) {
68
+        return [];
69
+    }
70
+
71
+    $cles = SpipCles::instance();
72
+    $secret = $cles->getSecretAuth();
73
+
74
+    $hash = null;
75
+    switch (strlen((string) $row['pass'])) {
76
+        // legacy = md5 ou sha256
77
+        case 32:
78
+            // tres anciens mots de passe encodes en md5(alea.pass)
79
+            $hash = md5($row['alea_actuel'] . $pass);
80
+            $methode = 'md5';
81
+        case 64:
82
+            if (empty($hash)) {
83
+                // anciens mots de passe encodes en sha256(alea.pass)
84
+                $hash =  hash('sha256', $row['alea_actuel'] . $pass);
85
+                $methode = 'sha256';
86
+            }
87
+            if ($row['pass'] === $hash) {
88
+                spip_logger('auth')->debug("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via $methode");
89
+                // ce n'est pas cense arriver, mais si jamais c'est un backup inutilisable, il faut le nettoyer pour ne pas bloquer la creation d'une nouvelle cle d'auth
90
+                if (!empty($row['backup_cles'])) {
91
+                    sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
92
+                }
93
+                break;
94
+            }
95
+
96
+        // on teste la methode par defaut, au cas ou ce serait un pass moderne qui a la malchance d'etre en 64char de long
97
+
98
+        case 60:
99
+        case 98:
100
+        default:
101
+            // doit-on restaurer un backup des cles ?
102
+            // si on a le bon pass on peut decoder le backup, retrouver la cle, et du coup valider le pass
103
+            if (
104
+                !$secret
105
+                && $auteur_peut_sauver_cles
106
+                && !empty($row['backup_cles'])
107
+            ) {
108
+                if ($cles->restore($row['backup_cles'], $pass, $row['pass'], $row['id_auteur'])) {
109
+                    spip_logger('auth')->notice('Les cles secretes ont ete restaurées avec le backup du webmestre #' . $row['id_auteur']);
110
+                    if ($cles->save()) {
111
+                        $secret = $cles->getSecretAuth();
112
+                    }
113
+                    else {
114
+                        spip_logger('auth')->error("Echec restauration des cles : verifier les droits d'ecriture ?");
115
+                        // et on echoue car on ne veut pas que la situation reste telle quelle
116
+                        raler_fichier(_DIR_ETC . 'cles.php');
117
+                    }
118
+                }
119
+                else {
120
+                    spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) mais le backup du webmestre #' . $row['id_auteur'] . " n'est pas valide");
121
+                    sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
122
+                }
123
+            }
124
+
125
+            if (!$secret || !Password::verifier($pass, $row['pass'], $secret)) {
126
+                unset($row);
127
+            }
128
+            else {
129
+                spip_logger('auth')->error("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via Password::verifier");
130
+            }
131
+            break;
132
+    }
133
+
134
+    // Migration depuis ancienne version : si on a pas encore de cle
135
+    // ET si c'est le login d'un auteur qui peut sauver la cle
136
+    // créer la clé (en s'assurant bien que personne n'a de backup d'un precedent fichier cle.php)
137
+    // si c'est un auteur normal, on ne fait rien, il garde son ancien pass hashé en sha256 en attendant le login d'un webmestre
138
+    if (!$secret && $auteur_peut_sauver_cles && auth_spip_initialiser_secret()) {
139
+        $secret = $cles->getSecretAuth();
140
+    }
141
+
142
+    // login/mot de passe incorrect
143
+    if (empty($row)) {
144
+        return [];
145
+    }
146
+
147
+    // fait tourner le codage du pass dans la base
148
+    // sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
149
+    if (!$phpauth && $secret) {
150
+        include_spip('inc/acces'); // pour creer_uniqid et verifier_htaccess
151
+        $pass_hash_next = Password::hacher($pass, $secret);
152
+        if ($pass_hash_next) {
153
+            $set = [
154
+                'alea_actuel' => 'alea_futur', // @deprecated 4.1
155
+                'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text'), // @deprecated 4.1
156
+                'pass' => sql_quote($pass_hash_next, $serveur, 'text'),
157
+            ];
158
+
159
+            // regenerer un htpass si on a active/desactive le plugin htpasswd
160
+            // et/ou que l'algo a change - pour etre certain de toujours utiliser le bon algo
161
+            $htpass = generer_htpass($pass);
162
+            if (strlen((string) $htpass) !== strlen((string) $row['htpass'])) {
163
+                $set['htpass'] = sql_quote($htpass, $serveur, 'text');
164
+            }
165
+
166
+            // a chaque login de webmestre : sauvegarde chiffree des clés du site (avec les pass du webmestre)
167
+            if ($auteur_peut_sauver_cles) {
168
+                $set['backup_cles'] = sql_quote($cles->backup($pass), $serveur, 'text');
169
+            }
170
+
171
+            @sql_update(
172
+                'spip_auteurs',
173
+                $set,
174
+                'id_auteur=' . (int) $row['id_auteur'] . ' AND pass=' . sql_quote(
175
+                    $row['pass'],
176
+                    $serveur,
177
+                    'text'
178
+                ),
179
+                [],
180
+                $serveur
181
+            );
182
+
183
+            // si on a change le htpass car changement d'algo, regenerer les fichiers htpasswd
184
+            if (isset($set['htpass'])) {
185
+                ecrire_acces();
186
+            }
187
+        }
188
+
189
+        // En profiter pour verifier la securite de tmp/
190
+        // Si elle ne fonctionne pas a l'installation, prevenir
191
+        if (!verifier_htaccess(_DIR_TMP) && defined('_ECRIRE_INSTALL')) {
192
+            return false;
193
+        }
194
+    }
195
+
196
+    return $row;
197 197
 }
198 198
 
199 199
 /**
@@ -208,36 +208,36 @@  discard block
 block discarded – undo
208 208
  * @return bool
209 209
  */
210 210
 function auth_spip_initialiser_secret(bool $force = false): bool {
211
-	$cles = SpipCles::instance();
212
-	$secret = $cles->getSecretAuth();
213
-
214
-	// on ne fait rien si on a un secret dispo
215
-	if ($secret) {
216
-		return false;
217
-	}
218
-
219
-	// si force, on ne verifie pas la presence d'un backup chez un webmestre
220
-	if ($force) {
221
-		spip_logger('auth')->notice('Pas de cle secrete disponible, on regenere une nouvelle cle forcee - tous les mots de passe sont invalides');
222
-		$secret = $cles->getSecretAuth(true);
223
-		return true;
224
-	}
225
-
226
-	$has_backup = sql_allfetsel('id_auteur', 'spip_auteurs', 'statut=' . sql_quote('0minirezo') . ' AND webmestre=' . sql_quote('oui') . " AND backup_cles!=''");
227
-	$has_backup = array_column($has_backup, 'id_auteur');
228
-	if ($has_backup === []) {
229
-		spip_logger('auth')->notice("Pas de cle secrete disponible, et aucun webmestre n'a de backup, on regenere une nouvelle cle - tous les mots de passe sont invalides");
230
-		if ($secret = $cles->getSecretAuth(true)) {
231
-			return true;
232
-		}
233
-		spip_logger('auth')->error("Echec generation d'une nouvelle cle : verifier les droits d'ecriture ?");
234
-		// et on echoue car on ne veut pas que la situation reste telle quelle
235
-		raler_fichier(_DIR_ETC . 'cles.php');
236
-	}
237
-	else {
238
-		spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) un des webmestres #' . implode(', #', $has_backup) . ' doit se connecter pour restaurer son backup des cles');
239
-	}
240
-	return false;
211
+    $cles = SpipCles::instance();
212
+    $secret = $cles->getSecretAuth();
213
+
214
+    // on ne fait rien si on a un secret dispo
215
+    if ($secret) {
216
+        return false;
217
+    }
218
+
219
+    // si force, on ne verifie pas la presence d'un backup chez un webmestre
220
+    if ($force) {
221
+        spip_logger('auth')->notice('Pas de cle secrete disponible, on regenere une nouvelle cle forcee - tous les mots de passe sont invalides');
222
+        $secret = $cles->getSecretAuth(true);
223
+        return true;
224
+    }
225
+
226
+    $has_backup = sql_allfetsel('id_auteur', 'spip_auteurs', 'statut=' . sql_quote('0minirezo') . ' AND webmestre=' . sql_quote('oui') . " AND backup_cles!=''");
227
+    $has_backup = array_column($has_backup, 'id_auteur');
228
+    if ($has_backup === []) {
229
+        spip_logger('auth')->notice("Pas de cle secrete disponible, et aucun webmestre n'a de backup, on regenere une nouvelle cle - tous les mots de passe sont invalides");
230
+        if ($secret = $cles->getSecretAuth(true)) {
231
+            return true;
232
+        }
233
+        spip_logger('auth')->error("Echec generation d'une nouvelle cle : verifier les droits d'ecriture ?");
234
+        // et on echoue car on ne veut pas que la situation reste telle quelle
235
+        raler_fichier(_DIR_ETC . 'cles.php');
236
+    }
237
+    else {
238
+        spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) un des webmestres #' . implode(', #', $has_backup) . ' doit se connecter pour restaurer son backup des cles');
239
+    }
240
+    return false;
241 241
 }
242 242
 
243 243
 /**
@@ -247,19 +247,19 @@  discard block
 block discarded – undo
247 247
  * @return array
248 248
  */
249 249
 function auth_spip_formulaire_login($flux) {
250
-	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
251
-	$js = file_get_contents(find_in_path('prive/javascript/login.js'));
252
-	$flux['data'] .=
253
-		  '<script type="text/javascript">/*<![CDATA[*/'
254
-		. "$js\n"
255
-		. "var login_info={'login':'" . $flux['args']['contexte']['var_login'] . "',"
256
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
257
-		. "'informe_auteur_en_cours':false,"
258
-		. "'attente_informe':0};"
259
-		. "jQuery(function(){jQuery('#var_login').change(actualise_auteur);});"
260
-		. '/*]]>*/</script>';
261
-
262
-	return $flux;
250
+    // javascript qui gere la securite du login en evitant de faire circuler le pass en clair
251
+    $js = file_get_contents(find_in_path('prive/javascript/login.js'));
252
+    $flux['data'] .=
253
+            '<script type="text/javascript">/*<![CDATA[*/'
254
+        . "$js\n"
255
+        . "var login_info={'login':'" . $flux['args']['contexte']['var_login'] . "',"
256
+        . "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
257
+        . "'informe_auteur_en_cours':false,"
258
+        . "'attente_informe':0};"
259
+        . "jQuery(function(){jQuery('#var_login').change(actualise_auteur);});"
260
+        . '/*]]>*/</script>';
261
+
262
+    return $flux;
263 263
 }
264 264
 
265 265
 
@@ -271,8 +271,8 @@  discard block
 block discarded – undo
271 271
  *   toujours true pour un auteur cree dans SPIP
272 272
  */
273 273
 function auth_spip_autoriser_modifier_login(string $serveur = ''): bool {
274
-	// les fonctions d'ecriture sur base distante sont encore incompletes
275
-	return !strlen($serveur);
274
+    // les fonctions d'ecriture sur base distante sont encore incompletes
275
+    return !strlen($serveur);
276 276
 }
277 277
 
278 278
 /**
@@ -286,25 +286,25 @@  discard block
 block discarded – undo
286 286
  *  message d'erreur si login non valide, chaine vide sinon
287 287
  */
288 288
 function auth_spip_verifier_login($new_login, $id_auteur = 0, $serveur = '') {
289
-	// login et mot de passe
290
-	if (strlen($new_login)) {
291
-		if (strlen($new_login) < _LOGIN_TROP_COURT) {
292
-			return _T('info_login_trop_court_car_pluriel', ['nb' => _LOGIN_TROP_COURT]);
293
-		} else {
294
-			$n = sql_countsel(
295
-				'spip_auteurs',
296
-				'login=' . sql_quote($new_login) . ' AND id_auteur!=' . (int) $id_auteur . " AND statut!='5poubelle'",
297
-				'',
298
-				'',
299
-				$serveur
300
-			);
301
-			if ($n) {
302
-				return _T('info_login_existant');
303
-			}
304
-		}
305
-	}
306
-
307
-	return '';
289
+    // login et mot de passe
290
+    if (strlen($new_login)) {
291
+        if (strlen($new_login) < _LOGIN_TROP_COURT) {
292
+            return _T('info_login_trop_court_car_pluriel', ['nb' => _LOGIN_TROP_COURT]);
293
+        } else {
294
+            $n = sql_countsel(
295
+                'spip_auteurs',
296
+                'login=' . sql_quote($new_login) . ' AND id_auteur!=' . (int) $id_auteur . " AND statut!='5poubelle'",
297
+                '',
298
+                '',
299
+                $serveur
300
+            );
301
+            if ($n) {
302
+                return _T('info_login_existant');
303
+            }
304
+        }
305
+    }
306
+
307
+    return '';
308 308
 }
309 309
 
310 310
 /**
@@ -316,41 +316,41 @@  discard block
 block discarded – undo
316 316
  * @return bool
317 317
  */
318 318
 function auth_spip_modifier_login($new_login, $id_auteur, $serveur = '') {
319
-	if (is_null($new_login) || auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
320
-		return false;
321
-	}
322
-	if (
323
-		!($id_auteur = (int) $id_auteur)
324
-		|| !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur, '', '', '', '', $serveur)
325
-	) {
326
-		return false;
327
-	}
328
-	if ($new_login == $auteur['login']) {
329
-		return true;
330
-	} // on a rien fait mais c'est bon !
331
-
332
-	include_spip('action/editer_auteur');
333
-
334
-	// vider le login des auteurs a la poubelle qui avaient ce meme login
335
-	if (strlen($new_login)) {
336
-		$anciens = sql_allfetsel(
337
-			'id_auteur',
338
-			'spip_auteurs',
339
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'",
340
-			'',
341
-			'',
342
-			'',
343
-			'',
344
-			$serveur
345
-		);
346
-		while ($row = array_pop($anciens)) {
347
-			auteur_modifier($row['id_auteur'], ['login' => ''], true); // manque la gestion de $serveur
348
-		}
349
-	}
350
-
351
-	auteur_modifier($id_auteur, ['login' => $new_login], true); // manque la gestion de $serveur
352
-
353
-	return true;
319
+    if (is_null($new_login) || auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
320
+        return false;
321
+    }
322
+    if (
323
+        !($id_auteur = (int) $id_auteur)
324
+        || !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur, '', '', '', '', $serveur)
325
+    ) {
326
+        return false;
327
+    }
328
+    if ($new_login == $auteur['login']) {
329
+        return true;
330
+    } // on a rien fait mais c'est bon !
331
+
332
+    include_spip('action/editer_auteur');
333
+
334
+    // vider le login des auteurs a la poubelle qui avaient ce meme login
335
+    if (strlen($new_login)) {
336
+        $anciens = sql_allfetsel(
337
+            'id_auteur',
338
+            'spip_auteurs',
339
+            'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'",
340
+            '',
341
+            '',
342
+            '',
343
+            '',
344
+            $serveur
345
+        );
346
+        while ($row = array_pop($anciens)) {
347
+            auteur_modifier($row['id_auteur'], ['login' => ''], true); // manque la gestion de $serveur
348
+        }
349
+    }
350
+
351
+    auteur_modifier($id_auteur, ['login' => $new_login], true); // manque la gestion de $serveur
352
+
353
+    return true;
354 354
 }
355 355
 
356 356
 /**
@@ -362,44 +362,44 @@  discard block
 block discarded – undo
362 362
  * @return string
363 363
  */
364 364
 function auth_spip_retrouver_login($login, $serveur = '') {
365
-	if (!strlen($login)) {
366
-		return null;
367
-	} // pas la peine de requeter
368
-	$l = sql_quote($login, $serveur, 'text');
369
-	if (
370
-		$r = sql_getfetsel(
371
-			'login',
372
-			'spip_auteurs',
373
-			"statut<>'5poubelle'" .
374
-			' AND (length(pass)>0)' .
375
-			" AND (login=$l)",
376
-			'',
377
-			'',
378
-			'',
379
-			'',
380
-			$serveur
381
-		)
382
-	) {
383
-		return $r;
384
-	}
385
-	// Si pas d'auteur avec ce login
386
-	// regarder s'il a saisi son nom ou son mail.
387
-	// Ne pas fusionner avec la requete precedente
388
-	// car un nom peut etre homonyme d'un autre login
389
-	else {
390
-		return sql_getfetsel(
391
-			'login',
392
-			'spip_auteurs',
393
-			"statut<>'5poubelle'" .
394
-			' AND (length(pass)>0)' .
395
-			" AND (login<>'' AND (nom=$l OR email=$l))",
396
-			'',
397
-			'',
398
-			'',
399
-			'',
400
-			$serveur
401
-		);
402
-	}
365
+    if (!strlen($login)) {
366
+        return null;
367
+    } // pas la peine de requeter
368
+    $l = sql_quote($login, $serveur, 'text');
369
+    if (
370
+        $r = sql_getfetsel(
371
+            'login',
372
+            'spip_auteurs',
373
+            "statut<>'5poubelle'" .
374
+            ' AND (length(pass)>0)' .
375
+            " AND (login=$l)",
376
+            '',
377
+            '',
378
+            '',
379
+            '',
380
+            $serveur
381
+        )
382
+    ) {
383
+        return $r;
384
+    }
385
+    // Si pas d'auteur avec ce login
386
+    // regarder s'il a saisi son nom ou son mail.
387
+    // Ne pas fusionner avec la requete precedente
388
+    // car un nom peut etre homonyme d'un autre login
389
+    else {
390
+        return sql_getfetsel(
391
+            'login',
392
+            'spip_auteurs',
393
+            "statut<>'5poubelle'" .
394
+            ' AND (length(pass)>0)' .
395
+            " AND (login<>'' AND (nom=$l OR email=$l))",
396
+            '',
397
+            '',
398
+            '',
399
+            '',
400
+            $serveur
401
+        );
402
+    }
403 403
 }
404 404
 
405 405
 /**
@@ -410,8 +410,8 @@  discard block
 block discarded – undo
410 410
  *  toujours true pour un auteur cree dans SPIP
411 411
  */
412 412
 function auth_spip_autoriser_modifier_pass(string $serveur = ''): bool {
413
-	// les fonctions d'ecriture sur base distante sont encore incompletes
414
-	return !strlen($serveur);
413
+    // les fonctions d'ecriture sur base distante sont encore incompletes
414
+    return !strlen($serveur);
415 415
 }
416 416
 
417 417
 
@@ -432,12 +432,12 @@  discard block
 block discarded – undo
432 432
  *  message d'erreur si login non valide, chaine vide sinon
433 433
  */
434 434
 function auth_spip_verifier_pass($login, #[\SensitiveParameter] $new_pass, $id_auteur = 0, $serveur = '') {
435
-	// login et mot de passe
436
-	if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
437
-		return _T('info_passe_trop_court_car_pluriel', ['nb' => _PASS_LONGUEUR_MINI]);
438
-	}
435
+    // login et mot de passe
436
+    if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
437
+        return _T('info_passe_trop_court_car_pluriel', ['nb' => _PASS_LONGUEUR_MINI]);
438
+    }
439 439
 
440
-	return '';
440
+    return '';
441 441
 }
442 442
 
443 443
 /**
@@ -451,47 +451,47 @@  discard block
 block discarded – undo
451 451
  * @return bool
452 452
  */
453 453
 function auth_spip_modifier_pass($login, #[\SensitiveParameter] $new_pass, $id_auteur, $serveur = '') {
454
-	if (is_null($new_pass) || auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
455
-		return false;
456
-	}
457
-
458
-	if (
459
-		!($id_auteur = (int) $id_auteur)
460
-		|| !($auteur = sql_fetsel('login, statut, webmestre', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur, '', '', '', '', $serveur))
461
-	) {
462
-		return false;
463
-	}
464
-
465
-	$cles = SpipCles::instance();
466
-	$secret = $cles->getSecretAuth();
467
-	if (!$secret) {
468
-		if (auth_spip_initialiser_secret()) {
469
-			$secret = $cles->getSecretAuth();
470
-		}
471
-		else {
472
-			return false;
473
-		}
474
-	}
475
-
476
-
477
-	include_spip('inc/acces');
478
-	$set = [
479
-		'pass' => Password::hacher($new_pass, $secret),
480
-		'htpass' => generer_htpass($new_pass),
481
-		'alea_actuel' => creer_uniqid(), // @deprecated 4.1
482
-		'alea_futur' => creer_uniqid(), // @deprecated 4.1
483
-		'low_sec' => '',
484
-	];
485
-
486
-	// si c'est un webmestre, on met a jour son backup des cles
487
-	if ($auteur['statut'] === '0minirezo' && $auteur['webmestre'] === 'oui') {
488
-		$set['backup_cles'] = $cles->backup($new_pass);
489
-	}
490
-
491
-	include_spip('action/editer_auteur');
492
-	auteur_modifier($id_auteur, $set, true); // manque la gestion de $serveur
493
-
494
-	return true; // on a bien modifie le pass
454
+    if (is_null($new_pass) || auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
455
+        return false;
456
+    }
457
+
458
+    if (
459
+        !($id_auteur = (int) $id_auteur)
460
+        || !($auteur = sql_fetsel('login, statut, webmestre', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur, '', '', '', '', $serveur))
461
+    ) {
462
+        return false;
463
+    }
464
+
465
+    $cles = SpipCles::instance();
466
+    $secret = $cles->getSecretAuth();
467
+    if (!$secret) {
468
+        if (auth_spip_initialiser_secret()) {
469
+            $secret = $cles->getSecretAuth();
470
+        }
471
+        else {
472
+            return false;
473
+        }
474
+    }
475
+
476
+
477
+    include_spip('inc/acces');
478
+    $set = [
479
+        'pass' => Password::hacher($new_pass, $secret),
480
+        'htpass' => generer_htpass($new_pass),
481
+        'alea_actuel' => creer_uniqid(), // @deprecated 4.1
482
+        'alea_futur' => creer_uniqid(), // @deprecated 4.1
483
+        'low_sec' => '',
484
+    ];
485
+
486
+    // si c'est un webmestre, on met a jour son backup des cles
487
+    if ($auteur['statut'] === '0minirezo' && $auteur['webmestre'] === 'oui') {
488
+        $set['backup_cles'] = $cles->backup($new_pass);
489
+    }
490
+
491
+    include_spip('action/editer_auteur');
492
+    auteur_modifier($id_auteur, $set, true); // manque la gestion de $serveur
493
+
494
+    return true; // on a bien modifie le pass
495 495
 }
496 496
 
497 497
 /**
@@ -505,54 +505,54 @@  discard block
 block discarded – undo
505 505
  * @return void
506 506
  */
507 507
 function auth_spip_synchroniser_distant($id_auteur, $champs, $options = [], string $serveur = ''): void {
508
-	// ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
509
-	if (strlen($serveur)) {
510
-		return;
511
-	}
512
-	// si un login, pass ou statut a ete modifie
513
-	// regenerer les fichier htpass
514
-	if (
515
-		isset($champs['login']) || isset($champs['pass']) || isset($champs['statut']) || isset($options['all']) && $options['all']
516
-	) {
517
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
518
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
519
-
520
-		// Cette variable de configuration peut etre posee par un plugin
521
-		// par exemple acces_restreint ;
522
-		// si .htaccess existe, outrepasser spip_meta
523
-		if (
524
-			(!isset($GLOBALS['meta']['creer_htpasswd']) || $GLOBALS['meta']['creer_htpasswd'] != 'oui') && !@file_exists($htaccess)
525
-		) {
526
-			spip_unlink($htpasswd);
527
-			spip_unlink($htpasswd . '-admin');
528
-
529
-			return;
530
-		}
531
-
532
-		# remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
533
-		# de devenir redacteur le cas echeant (auth http)... a nettoyer
534
-		// attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
535
-
536
-		$p1 = ''; // login:htpass pour tous
537
-		$p2 = ''; // login:htpass pour les admins
538
-		$s = sql_select(
539
-			'login, htpass, statut',
540
-			'spip_auteurs',
541
-			sql_in('statut', ['1comite', '0minirezo', 'nouveau'])
542
-		);
543
-		while ($t = sql_fetch($s)) {
544
-			if (strlen((string) $t['login']) && strlen((string) $t['htpass'])) {
545
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
546
-				if ($t['statut'] == '0minirezo') {
547
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
548
-				}
549
-			}
550
-		}
551
-		sql_free($s);
552
-		if ($p1) {
553
-			ecrire_fichier($htpasswd, $p1);
554
-			ecrire_fichier($htpasswd . '-admin', $p2);
555
-			spip_logger()->info("Ecriture de $htpasswd et $htpasswd-admin");
556
-		}
557
-	}
508
+    // ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
509
+    if (strlen($serveur)) {
510
+        return;
511
+    }
512
+    // si un login, pass ou statut a ete modifie
513
+    // regenerer les fichier htpass
514
+    if (
515
+        isset($champs['login']) || isset($champs['pass']) || isset($champs['statut']) || isset($options['all']) && $options['all']
516
+    ) {
517
+        $htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
518
+        $htpasswd = _DIR_TMP . _AUTH_USER_FILE;
519
+
520
+        // Cette variable de configuration peut etre posee par un plugin
521
+        // par exemple acces_restreint ;
522
+        // si .htaccess existe, outrepasser spip_meta
523
+        if (
524
+            (!isset($GLOBALS['meta']['creer_htpasswd']) || $GLOBALS['meta']['creer_htpasswd'] != 'oui') && !@file_exists($htaccess)
525
+        ) {
526
+            spip_unlink($htpasswd);
527
+            spip_unlink($htpasswd . '-admin');
528
+
529
+            return;
530
+        }
531
+
532
+        # remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
533
+        # de devenir redacteur le cas echeant (auth http)... a nettoyer
534
+        // attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
535
+
536
+        $p1 = ''; // login:htpass pour tous
537
+        $p2 = ''; // login:htpass pour les admins
538
+        $s = sql_select(
539
+            'login, htpass, statut',
540
+            'spip_auteurs',
541
+            sql_in('statut', ['1comite', '0minirezo', 'nouveau'])
542
+        );
543
+        while ($t = sql_fetch($s)) {
544
+            if (strlen((string) $t['login']) && strlen((string) $t['htpass'])) {
545
+                $p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
546
+                if ($t['statut'] == '0minirezo') {
547
+                    $p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
548
+                }
549
+            }
550
+        }
551
+        sql_free($s);
552
+        if ($p1) {
553
+            ecrire_fichier($htpasswd, $p1);
554
+            ecrire_fichier($htpasswd . '-admin', $p2);
555
+            spip_logger()->info("Ecriture de $htpasswd et $htpasswd-admin");
556
+        }
557
+    }
558 558
 }
Please login to merge, or discard this patch.
Spacing   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -49,7 +49,7 @@  discard block
 block discarded – undo
49 49
 		$row = sql_fetsel(
50 50
 			'*',
51 51
 			'spip_auteurs',
52
-			'login=' . sql_quote($login, $serveur, 'text') . " AND statut<>'5poubelle'",
52
+			'login='.sql_quote($login, $serveur, 'text')." AND statut<>'5poubelle'",
53 53
 			'',
54 54
 			'',
55 55
 			'',
@@ -76,19 +76,19 @@  discard block
 block discarded – undo
76 76
 		// legacy = md5 ou sha256
77 77
 		case 32:
78 78
 			// tres anciens mots de passe encodes en md5(alea.pass)
79
-			$hash = md5($row['alea_actuel'] . $pass);
79
+			$hash = md5($row['alea_actuel'].$pass);
80 80
 			$methode = 'md5';
81 81
 		case 64:
82 82
 			if (empty($hash)) {
83 83
 				// anciens mots de passe encodes en sha256(alea.pass)
84
-				$hash =  hash('sha256', $row['alea_actuel'] . $pass);
84
+				$hash = hash('sha256', $row['alea_actuel'].$pass);
85 85
 				$methode = 'sha256';
86 86
 			}
87 87
 			if ($row['pass'] === $hash) {
88
-				spip_logger('auth')->debug("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via $methode");
88
+				spip_logger('auth')->debug("validation du mot de passe pour l'auteur #".$row['id_auteur']." $login via $methode");
89 89
 				// ce n'est pas cense arriver, mais si jamais c'est un backup inutilisable, il faut le nettoyer pour ne pas bloquer la creation d'une nouvelle cle d'auth
90 90
 				if (!empty($row['backup_cles'])) {
91
-					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
91
+					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur='.(int) $row['id_auteur']);
92 92
 				}
93 93
 				break;
94 94
 			}
@@ -106,19 +106,19 @@  discard block
 block discarded – undo
106 106
 				&& !empty($row['backup_cles'])
107 107
 			) {
108 108
 				if ($cles->restore($row['backup_cles'], $pass, $row['pass'], $row['id_auteur'])) {
109
-					spip_logger('auth')->notice('Les cles secretes ont ete restaurées avec le backup du webmestre #' . $row['id_auteur']);
109
+					spip_logger('auth')->notice('Les cles secretes ont ete restaurées avec le backup du webmestre #'.$row['id_auteur']);
110 110
 					if ($cles->save()) {
111 111
 						$secret = $cles->getSecretAuth();
112 112
 					}
113 113
 					else {
114 114
 						spip_logger('auth')->error("Echec restauration des cles : verifier les droits d'ecriture ?");
115 115
 						// et on echoue car on ne veut pas que la situation reste telle quelle
116
-						raler_fichier(_DIR_ETC . 'cles.php');
116
+						raler_fichier(_DIR_ETC.'cles.php');
117 117
 					}
118 118
 				}
119 119
 				else {
120
-					spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) mais le backup du webmestre #' . $row['id_auteur'] . " n'est pas valide");
121
-					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
120
+					spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) mais le backup du webmestre #'.$row['id_auteur']." n'est pas valide");
121
+					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur='.(int) $row['id_auteur']);
122 122
 				}
123 123
 			}
124 124
 
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
 				unset($row);
127 127
 			}
128 128
 			else {
129
-				spip_logger('auth')->error("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via Password::verifier");
129
+				spip_logger('auth')->error("validation du mot de passe pour l'auteur #".$row['id_auteur']." $login via Password::verifier");
130 130
 			}
131 131
 			break;
132 132
 	}
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
 			@sql_update(
172 172
 				'spip_auteurs',
173 173
 				$set,
174
-				'id_auteur=' . (int) $row['id_auteur'] . ' AND pass=' . sql_quote(
174
+				'id_auteur='.(int) $row['id_auteur'].' AND pass='.sql_quote(
175 175
 					$row['pass'],
176 176
 					$serveur,
177 177
 					'text'
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
 		return true;
224 224
 	}
225 225
 
226
-	$has_backup = sql_allfetsel('id_auteur', 'spip_auteurs', 'statut=' . sql_quote('0minirezo') . ' AND webmestre=' . sql_quote('oui') . " AND backup_cles!=''");
226
+	$has_backup = sql_allfetsel('id_auteur', 'spip_auteurs', 'statut='.sql_quote('0minirezo').' AND webmestre='.sql_quote('oui')." AND backup_cles!=''");
227 227
 	$has_backup = array_column($has_backup, 'id_auteur');
228 228
 	if ($has_backup === []) {
229 229
 		spip_logger('auth')->notice("Pas de cle secrete disponible, et aucun webmestre n'a de backup, on regenere une nouvelle cle - tous les mots de passe sont invalides");
@@ -232,10 +232,10 @@  discard block
 block discarded – undo
232 232
 		}
233 233
 		spip_logger('auth')->error("Echec generation d'une nouvelle cle : verifier les droits d'ecriture ?");
234 234
 		// et on echoue car on ne veut pas que la situation reste telle quelle
235
-		raler_fichier(_DIR_ETC . 'cles.php');
235
+		raler_fichier(_DIR_ETC.'cles.php');
236 236
 	}
237 237
 	else {
238
-		spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) un des webmestres #' . implode(', #', $has_backup) . ' doit se connecter pour restaurer son backup des cles');
238
+		spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) un des webmestres #'.implode(', #', $has_backup).' doit se connecter pour restaurer son backup des cles');
239 239
 	}
240 240
 	return false;
241 241
 }
@@ -252,8 +252,8 @@  discard block
 block discarded – undo
252 252
 	$flux['data'] .=
253 253
 		  '<script type="text/javascript">/*<![CDATA[*/'
254 254
 		. "$js\n"
255
-		. "var login_info={'login':'" . $flux['args']['contexte']['var_login'] . "',"
256
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
255
+		. "var login_info={'login':'".$flux['args']['contexte']['var_login']."',"
256
+		. "'page_auteur': '".generer_url_public('informer_auteur')."',"
257 257
 		. "'informe_auteur_en_cours':false,"
258 258
 		. "'attente_informe':0};"
259 259
 		. "jQuery(function(){jQuery('#var_login').change(actualise_auteur);});"
@@ -293,7 +293,7 @@  discard block
 block discarded – undo
293 293
 		} else {
294 294
 			$n = sql_countsel(
295 295
 				'spip_auteurs',
296
-				'login=' . sql_quote($new_login) . ' AND id_auteur!=' . (int) $id_auteur . " AND statut!='5poubelle'",
296
+				'login='.sql_quote($new_login).' AND id_auteur!='.(int) $id_auteur." AND statut!='5poubelle'",
297 297
 				'',
298 298
 				'',
299 299
 				$serveur
@@ -321,7 +321,7 @@  discard block
 block discarded – undo
321 321
 	}
322 322
 	if (
323 323
 		!($id_auteur = (int) $id_auteur)
324
-		|| !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur, '', '', '', '', $serveur)
324
+		|| !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur='.(int) $id_auteur, '', '', '', '', $serveur)
325 325
 	) {
326 326
 		return false;
327 327
 	}
@@ -336,7 +336,7 @@  discard block
 block discarded – undo
336 336
 		$anciens = sql_allfetsel(
337 337
 			'id_auteur',
338 338
 			'spip_auteurs',
339
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'",
339
+			'login='.sql_quote($new_login, $serveur, 'text')." AND statut='5poubelle'",
340 340
 			'',
341 341
 			'',
342 342
 			'',
@@ -370,8 +370,8 @@  discard block
 block discarded – undo
370 370
 		$r = sql_getfetsel(
371 371
 			'login',
372 372
 			'spip_auteurs',
373
-			"statut<>'5poubelle'" .
374
-			' AND (length(pass)>0)' .
373
+			"statut<>'5poubelle'".
374
+			' AND (length(pass)>0)'.
375 375
 			" AND (login=$l)",
376 376
 			'',
377 377
 			'',
@@ -390,8 +390,8 @@  discard block
 block discarded – undo
390 390
 		return sql_getfetsel(
391 391
 			'login',
392 392
 			'spip_auteurs',
393
-			"statut<>'5poubelle'" .
394
-			' AND (length(pass)>0)' .
393
+			"statut<>'5poubelle'".
394
+			' AND (length(pass)>0)'.
395 395
 			" AND (login<>'' AND (nom=$l OR email=$l))",
396 396
 			'',
397 397
 			'',
@@ -457,7 +457,7 @@  discard block
 block discarded – undo
457 457
 
458 458
 	if (
459 459
 		!($id_auteur = (int) $id_auteur)
460
-		|| !($auteur = sql_fetsel('login, statut, webmestre', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur, '', '', '', '', $serveur))
460
+		|| !($auteur = sql_fetsel('login, statut, webmestre', 'spip_auteurs', 'id_auteur='.(int) $id_auteur, '', '', '', '', $serveur))
461 461
 	) {
462 462
 		return false;
463 463
 	}
@@ -514,8 +514,8 @@  discard block
 block discarded – undo
514 514
 	if (
515 515
 		isset($champs['login']) || isset($champs['pass']) || isset($champs['statut']) || isset($options['all']) && $options['all']
516 516
 	) {
517
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
518
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
517
+		$htaccess = _DIR_RESTREINT._ACCESS_FILE_NAME;
518
+		$htpasswd = _DIR_TMP._AUTH_USER_FILE;
519 519
 
520 520
 		// Cette variable de configuration peut etre posee par un plugin
521 521
 		// par exemple acces_restreint ;
@@ -524,7 +524,7 @@  discard block
 block discarded – undo
524 524
 			(!isset($GLOBALS['meta']['creer_htpasswd']) || $GLOBALS['meta']['creer_htpasswd'] != 'oui') && !@file_exists($htaccess)
525 525
 		) {
526 526
 			spip_unlink($htpasswd);
527
-			spip_unlink($htpasswd . '-admin');
527
+			spip_unlink($htpasswd.'-admin');
528 528
 
529 529
 			return;
530 530
 		}
@@ -542,16 +542,16 @@  discard block
 block discarded – undo
542 542
 		);
543 543
 		while ($t = sql_fetch($s)) {
544 544
 			if (strlen((string) $t['login']) && strlen((string) $t['htpass'])) {
545
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
545
+				$p1 .= $t['login'].':'.$t['htpass']."\n";
546 546
 				if ($t['statut'] == '0minirezo') {
547
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
547
+					$p2 .= $t['login'].':'.$t['htpass']."\n";
548 548
 				}
549 549
 			}
550 550
 		}
551 551
 		sql_free($s);
552 552
 		if ($p1) {
553 553
 			ecrire_fichier($htpasswd, $p1);
554
-			ecrire_fichier($htpasswd . '-admin', $p2);
554
+			ecrire_fichier($htpasswd.'-admin', $p2);
555 555
 			spip_logger()->info("Ecriture de $htpasswd et $htpasswd-admin");
556 556
 		}
557 557
 	}
Please login to merge, or discard this patch.
Braces   +5 added lines, -10 removed lines patch added patch discarded remove patch
@@ -109,14 +109,12 @@  discard block
 block discarded – undo
109 109
 					spip_logger('auth')->notice('Les cles secretes ont ete restaurées avec le backup du webmestre #' . $row['id_auteur']);
110 110
 					if ($cles->save()) {
111 111
 						$secret = $cles->getSecretAuth();
112
-					}
113
-					else {
112
+					} else {
114 113
 						spip_logger('auth')->error("Echec restauration des cles : verifier les droits d'ecriture ?");
115 114
 						// et on echoue car on ne veut pas que la situation reste telle quelle
116 115
 						raler_fichier(_DIR_ETC . 'cles.php');
117 116
 					}
118
-				}
119
-				else {
117
+				} else {
120 118
 					spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) mais le backup du webmestre #' . $row['id_auteur'] . " n'est pas valide");
121 119
 					sql_updateq('spip_auteurs', ['backup_cles' => ''], 'id_auteur=' . (int) $row['id_auteur']);
122 120
 				}
@@ -124,8 +122,7 @@  discard block
 block discarded – undo
124 122
 
125 123
 			if (!$secret || !Password::verifier($pass, $row['pass'], $secret)) {
126 124
 				unset($row);
127
-			}
128
-			else {
125
+			} else {
129 126
 				spip_logger('auth')->error("validation du mot de passe pour l'auteur #" . $row['id_auteur'] . " $login via Password::verifier");
130 127
 			}
131 128
 			break;
@@ -233,8 +230,7 @@  discard block
 block discarded – undo
233 230
 		spip_logger('auth')->error("Echec generation d'une nouvelle cle : verifier les droits d'ecriture ?");
234 231
 		// et on echoue car on ne veut pas que la situation reste telle quelle
235 232
 		raler_fichier(_DIR_ETC . 'cles.php');
236
-	}
237
-	else {
233
+	} else {
238 234
 		spip_logger('auth')->error('Pas de cle secrete disponible (fichier config/cle.php absent ?) un des webmestres #' . implode(', #', $has_backup) . ' doit se connecter pour restaurer son backup des cles');
239 235
 	}
240 236
 	return false;
@@ -467,8 +463,7 @@  discard block
 block discarded – undo
467 463
 	if (!$secret) {
468 464
 		if (auth_spip_initialiser_secret()) {
469 465
 			$secret = $cles->getSecretAuth();
470
-		}
471
-		else {
466
+		} else {
472 467
 			return false;
473 468
 		}
474 469
 	}
Please login to merge, or discard this patch.
ecrire/iterateur/data.php 2 patches
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -18,11 +18,11 @@  discard block
 block discarded – undo
18 18
  **/
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 if (!defined('_DATA_SOURCE_MAX_SIZE')) {
25
-	define('_DATA_SOURCE_MAX_SIZE', 2 * 1_048_576);
25
+    define('_DATA_SOURCE_MAX_SIZE', 2 * 1_048_576);
26 26
 }
27 27
 
28 28
 
@@ -43,17 +43,17 @@  discard block
 block discarded – undo
43 43
  *     Description de la boucle complétée des champs
44 44
  */
45 45
 function iterateur_DATA_dist($b) {
46
-	$b->iterateur = 'DATA'; # designe la classe d'iterateur
47
-	$b->show = [
48
-		'field' => [
49
-			'cle' => 'STRING',
50
-			'valeur' => 'STRING',
51
-			'*' => 'ALL' // Champ joker *
52
-		]
53
-	];
54
-	$b->select[] = '.valeur';
55
-
56
-	return $b;
46
+    $b->iterateur = 'DATA'; # designe la classe d'iterateur
47
+    $b->show = [
48
+        'field' => [
49
+            'cle' => 'STRING',
50
+            'valeur' => 'STRING',
51
+            '*' => 'ALL' // Champ joker *
52
+        ]
53
+    ];
54
+    $b->select[] = '.valeur';
55
+
56
+    return $b;
57 57
 }
58 58
 
59 59
 
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
  * @return array
69 69
  */
70 70
 function inc_file_to_array_dist($data) {
71
-	return preg_split('/\r?\n/', $data);
71
+    return preg_split('/\r?\n/', $data);
72 72
 }
73 73
 
74 74
 /**
@@ -77,9 +77,9 @@  discard block
 block discarded – undo
77 77
  * @return array
78 78
  */
79 79
 function inc_plugins_to_array_dist() {
80
-	include_spip('inc/plugin');
80
+    include_spip('inc/plugin');
81 81
 
82
-	return liste_chemin_plugin_actifs();
82
+    return liste_chemin_plugin_actifs();
83 83
 }
84 84
 
85 85
 /**
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
  * @return array
90 90
  */
91 91
 function inc_xml_to_array_dist($data) {
92
-	return @XMLObjectToArray(new SimpleXmlIterator($data));
92
+    return @XMLObjectToArray(new SimpleXmlIterator($data));
93 93
 }
94 94
 
95 95
 /**
@@ -101,14 +101,14 @@  discard block
 block discarded – undo
101 101
  *
102 102
  */
103 103
 function inc_object_to_array($object) {
104
-	if (!is_object($object) && !is_array($object)) {
105
-		return $object;
106
-	}
107
-	if (is_object($object)) {
108
-		$object = get_object_vars($object);
109
-	}
110
-
111
-	return array_map('inc_object_to_array', $object);
104
+    if (!is_object($object) && !is_array($object)) {
105
+        return $object;
106
+    }
107
+    if (is_object($object)) {
108
+        $object = get_object_vars($object);
109
+    }
110
+
111
+    return array_map('inc_object_to_array', $object);
112 112
 }
113 113
 
114 114
 /**
@@ -118,20 +118,20 @@  discard block
 block discarded – undo
118 118
  * @return array|bool
119 119
  */
120 120
 function inc_sql_to_array_dist($data) {
121
-	# sortir le connecteur de $data
122
-	preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v);
123
-	$serveur = (string)$v[1];
124
-	$req = trim($v[2]);
125
-	if ($s = sql_query($req, $serveur)) {
126
-		$r = [];
127
-		while ($t = sql_fetch($s)) {
128
-			$r[] = $t;
129
-		}
130
-
131
-		return $r;
132
-	}
133
-
134
-	return false;
121
+    # sortir le connecteur de $data
122
+    preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v);
123
+    $serveur = (string)$v[1];
124
+    $req = trim($v[2]);
125
+    if ($s = sql_query($req, $serveur)) {
126
+        $r = [];
127
+        while ($t = sql_fetch($s)) {
128
+            $r[] = $t;
129
+        }
130
+
131
+        return $r;
132
+    }
133
+
134
+    return false;
135 135
 }
136 136
 
137 137
 /**
@@ -141,13 +141,13 @@  discard block
 block discarded – undo
141 141
  * @return array|bool
142 142
  */
143 143
 function inc_json_to_array_dist($data) {
144
-	try {
145
-		$json = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
146
-	} catch (JsonException $e) {
147
-		$json = null;
148
-		spip_logger()->info('Failed to parse Json data : ' . $e->getMessage());
149
-	}
150
-	return is_array($json) ? (array) $json : [];
144
+    try {
145
+        $json = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
146
+    } catch (JsonException $e) {
147
+        $json = null;
148
+        spip_logger()->info('Failed to parse Json data : ' . $e->getMessage());
149
+    }
150
+    return is_array($json) ? (array) $json : [];
151 151
 }
152 152
 
153 153
 /**
@@ -157,30 +157,30 @@  discard block
 block discarded – undo
157 157
  * @return array|bool
158 158
  */
159 159
 function inc_csv_to_array_dist($data) {
160
-	include_spip('inc/csv');
161
-	[$entete, $csv] = analyse_csv($data);
162
-	array_unshift($csv, $entete);
163
-
164
-	include_spip('inc/charsets');
165
-	$i = 1;
166
-	foreach ($entete as $k => $v) {
167
-		if (trim((string) $v) == '') {
168
-			$v = 'col' . $i;
169
-		} // reperer des eventuelles cases vides
170
-		if (is_numeric($v) && $v < 0) {
171
-			$v = '__' . $v;
172
-		} // ne pas risquer d'ecraser une cle numerique
173
-		if (is_numeric($v)) {
174
-			$v = '_' . $v;
175
-		} // ne pas risquer d'ecraser une cle numerique
176
-		$v = strtolower(preg_replace(',\W+,', '_', (string) translitteration($v)));
177
-		foreach ($csv as &$item) {
178
-			$item[$v] = &$item[$k];
179
-		}
180
-		$i++;
181
-	}
182
-
183
-	return $csv;
160
+    include_spip('inc/csv');
161
+    [$entete, $csv] = analyse_csv($data);
162
+    array_unshift($csv, $entete);
163
+
164
+    include_spip('inc/charsets');
165
+    $i = 1;
166
+    foreach ($entete as $k => $v) {
167
+        if (trim((string) $v) == '') {
168
+            $v = 'col' . $i;
169
+        } // reperer des eventuelles cases vides
170
+        if (is_numeric($v) && $v < 0) {
171
+            $v = '__' . $v;
172
+        } // ne pas risquer d'ecraser une cle numerique
173
+        if (is_numeric($v)) {
174
+            $v = '_' . $v;
175
+        } // ne pas risquer d'ecraser une cle numerique
176
+        $v = strtolower(preg_replace(',\W+,', '_', (string) translitteration($v)));
177
+        foreach ($csv as &$item) {
178
+            $item[$v] = &$item[$k];
179
+        }
180
+        $i++;
181
+    }
182
+
183
+    return $csv;
184 184
 }
185 185
 
186 186
 /**
@@ -190,13 +190,13 @@  discard block
 block discarded – undo
190 190
  * @return array|bool
191 191
  */
192 192
 function inc_rss_to_array_dist($data) {
193
-	$tableau = null;
194
-	include_spip('inc/syndic');
195
-	if (is_array($rss = analyser_backend($data))) {
196
-		$tableau = $rss;
197
-	}
193
+    $tableau = null;
194
+    include_spip('inc/syndic');
195
+    if (is_array($rss = analyser_backend($data))) {
196
+        $tableau = $rss;
197
+    }
198 198
 
199
-	return $tableau;
199
+    return $tableau;
200 200
 }
201 201
 
202 202
 /**
@@ -206,9 +206,9 @@  discard block
 block discarded – undo
206 206
  * @return array|bool
207 207
  */
208 208
 function inc_atom_to_array_dist($data) {
209
-	$rss_to_array = charger_fonction('rss_to_array', 'inc');
209
+    $rss_to_array = charger_fonction('rss_to_array', 'inc');
210 210
 
211
-	return $rss_to_array($data);
211
+    return $rss_to_array($data);
212 212
 }
213 213
 
214 214
 /**
@@ -219,12 +219,12 @@  discard block
 block discarded – undo
219 219
  * @return array|bool
220 220
  */
221 221
 function inc_glob_to_array_dist($data) {
222
-	$a = glob(
223
-		$data,
224
-		GLOB_MARK | GLOB_NOSORT | GLOB_BRACE
225
-	);
222
+    $a = glob(
223
+        $data,
224
+        GLOB_MARK | GLOB_NOSORT | GLOB_BRACE
225
+    );
226 226
 
227
-	return $a ?: [];
227
+    return $a ?: [];
228 228
 }
229 229
 
230 230
 /**
@@ -235,14 +235,14 @@  discard block
 block discarded – undo
235 235
  * @throws Exception
236 236
  */
237 237
 function inc_yaml_to_array_dist($data) {
238
-	include_spip('inc/yaml-mini');
239
-	if (!function_exists('yaml_decode')) {
240
-		throw new Exception('YAML: impossible de trouver la fonction yaml_decode');
238
+    include_spip('inc/yaml-mini');
239
+    if (!function_exists('yaml_decode')) {
240
+        throw new Exception('YAML: impossible de trouver la fonction yaml_decode');
241 241
 
242
-		return false;
243
-	}
242
+        return false;
243
+    }
244 244
 
245
-	return yaml_decode($data);
245
+    return yaml_decode($data);
246 246
 }
247 247
 
248 248
 
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
  * @return array|bool
258 258
  */
259 259
 function inc_pregfiles_to_array_dist($dir, $regexp = -1, $limit = 10000) {
260
-	return (array)preg_files($dir, $regexp, $limit);
260
+    return (array)preg_files($dir, $regexp, $limit);
261 261
 }
262 262
 
263 263
 /**
@@ -269,23 +269,23 @@  discard block
 block discarded – undo
269 269
  * @return array|bool
270 270
  */
271 271
 function inc_ls_to_array_dist($data) {
272
-	$glob_to_array = charger_fonction('glob_to_array', 'inc');
273
-	$a = $glob_to_array($data);
274
-	foreach ($a as &$v) {
275
-		$b = (array)@stat($v);
276
-		foreach (array_keys($b) as $k) {
277
-			if (is_numeric($k)) {
278
-				unset($b[$k]);
279
-			}
280
-		}
281
-		$b['file'] = preg_replace('`/$`', '', (string) $v) ;
282
-		$v = array_merge(
283
-			pathinfo((string) $v),
284
-			$b
285
-		);
286
-	}
287
-
288
-	return $a;
272
+    $glob_to_array = charger_fonction('glob_to_array', 'inc');
273
+    $a = $glob_to_array($data);
274
+    foreach ($a as &$v) {
275
+        $b = (array)@stat($v);
276
+        foreach (array_keys($b) as $k) {
277
+            if (is_numeric($k)) {
278
+                unset($b[$k]);
279
+            }
280
+        }
281
+        $b['file'] = preg_replace('`/$`', '', (string) $v) ;
282
+        $v = array_merge(
283
+            pathinfo((string) $v),
284
+            $b
285
+        );
286
+    }
287
+
288
+    return $a;
289 289
 }
290 290
 
291 291
 /**
@@ -295,21 +295,21 @@  discard block
 block discarded – undo
295 295
  * @return array|bool
296 296
  */
297 297
 function XMLObjectToArray($object) {
298
-	$xml_array = [];
299
-	for ($object->rewind(); $object->valid(); $object->next()) {
300
-		if (array_key_exists($key = $object->key(), $xml_array)) {
301
-			$key .= '-' . uniqid();
302
-		}
303
-		$vars = get_object_vars($object->current());
304
-		if (isset($vars['@attributes'])) {
305
-			foreach ($vars['@attributes'] as $k => $v) {
306
-				$xml_array[$key][$k] = $v;
307
-			}
308
-		}
309
-		$xml_array[$key][] = $object->hasChildren()
310
-			? XMLObjectToArray($object->current())
311
-			: (string) $object->current();
312
-	}
313
-
314
-	return $xml_array;
298
+    $xml_array = [];
299
+    for ($object->rewind(); $object->valid(); $object->next()) {
300
+        if (array_key_exists($key = $object->key(), $xml_array)) {
301
+            $key .= '-' . uniqid();
302
+        }
303
+        $vars = get_object_vars($object->current());
304
+        if (isset($vars['@attributes'])) {
305
+            foreach ($vars['@attributes'] as $k => $v) {
306
+                $xml_array[$key][$k] = $v;
307
+            }
308
+        }
309
+        $xml_array[$key][] = $object->hasChildren()
310
+            ? XMLObjectToArray($object->current())
311
+            : (string) $object->current();
312
+    }
313
+
314
+    return $xml_array;
315 315
 }
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 function inc_sql_to_array_dist($data) {
121 121
 	# sortir le connecteur de $data
122 122
 	preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v);
123
-	$serveur = (string)$v[1];
123
+	$serveur = (string) $v[1];
124 124
 	$req = trim($v[2]);
125 125
 	if ($s = sql_query($req, $serveur)) {
126 126
 		$r = [];
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
 		$json = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
146 146
 	} catch (JsonException $e) {
147 147
 		$json = null;
148
-		spip_logger()->info('Failed to parse Json data : ' . $e->getMessage());
148
+		spip_logger()->info('Failed to parse Json data : '.$e->getMessage());
149 149
 	}
150 150
 	return is_array($json) ? (array) $json : [];
151 151
 }
@@ -165,13 +165,13 @@  discard block
 block discarded – undo
165 165
 	$i = 1;
166 166
 	foreach ($entete as $k => $v) {
167 167
 		if (trim((string) $v) == '') {
168
-			$v = 'col' . $i;
168
+			$v = 'col'.$i;
169 169
 		} // reperer des eventuelles cases vides
170 170
 		if (is_numeric($v) && $v < 0) {
171
-			$v = '__' . $v;
171
+			$v = '__'.$v;
172 172
 		} // ne pas risquer d'ecraser une cle numerique
173 173
 		if (is_numeric($v)) {
174
-			$v = '_' . $v;
174
+			$v = '_'.$v;
175 175
 		} // ne pas risquer d'ecraser une cle numerique
176 176
 		$v = strtolower(preg_replace(',\W+,', '_', (string) translitteration($v)));
177 177
 		foreach ($csv as &$item) {
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
  * @return array|bool
258 258
  */
259 259
 function inc_pregfiles_to_array_dist($dir, $regexp = -1, $limit = 10000) {
260
-	return (array)preg_files($dir, $regexp, $limit);
260
+	return (array) preg_files($dir, $regexp, $limit);
261 261
 }
262 262
 
263 263
 /**
@@ -272,13 +272,13 @@  discard block
 block discarded – undo
272 272
 	$glob_to_array = charger_fonction('glob_to_array', 'inc');
273 273
 	$a = $glob_to_array($data);
274 274
 	foreach ($a as &$v) {
275
-		$b = (array)@stat($v);
275
+		$b = (array) @stat($v);
276 276
 		foreach (array_keys($b) as $k) {
277 277
 			if (is_numeric($k)) {
278 278
 				unset($b[$k]);
279 279
 			}
280 280
 		}
281
-		$b['file'] = preg_replace('`/$`', '', (string) $v) ;
281
+		$b['file'] = preg_replace('`/$`', '', (string) $v);
282 282
 		$v = array_merge(
283 283
 			pathinfo((string) $v),
284 284
 			$b
@@ -298,7 +298,7 @@  discard block
 block discarded – undo
298 298
 	$xml_array = [];
299 299
 	for ($object->rewind(); $object->valid(); $object->next()) {
300 300
 		if (array_key_exists($key = $object->key(), $xml_array)) {
301
-			$key .= '-' . uniqid();
301
+			$key .= '-'.uniqid();
302 302
 		}
303 303
 		$vars = get_object_vars($object->current());
304 304
 		if (isset($vars['@attributes'])) {
Please login to merge, or discard this patch.
ecrire/inc/headers.php 2 patches
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  **/
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 
@@ -37,133 +37,133 @@  discard block
 block discarded – undo
37 37
  * @param int $status Code de redirection (301 ou 302)
38 38
  **/
39 39
 function redirige_par_entete($url, $equiv = '', $status = 302) {
40
-	if (!in_array($status, [301, 302])) {
41
-		$status = 302;
42
-	}
43
-
44
-	$url = trim(strtr($url, "\n\r", '  '));
45
-	# si l'url de redirection est relative, on la passe en absolue
46
-	if (!preg_match(',^(\w+:)?//,', $url)) {
47
-		include_spip('inc/filtres_mini');
48
-		$url = url_absolue($url);
49
-	}
50
-
51
-	if (defined('_AJAX') && _AJAX) {
52
-		$url = parametre_url($url, 'var_ajax_redir', 1, '&');
53
-	}
54
-
55
-	// ne pas laisser passer n'importe quoi dans l'url
56
-	$url = str_replace(['<', '"'], ['&lt;', '&quot;'], (string) $url);
57
-	$url = str_replace(["\r", "\n", ' '], ['%0D', '%0A', '%20'], $url);
58
-	while (str_contains($url, '%0A')) {
59
-		$url = str_replace('%0A', '', $url);
60
-	}
61
-	// interdire les url inline avec des pseudo-protocoles :
62
-	if (
63
-		preg_match(',data:,i', $url) && preg_match('/base64\s*,/i', $url) || preg_match(',(javascript|mailto):,i', $url)
64
-	) {
65
-		$url = './';
66
-	}
67
-
68
-	// Il n'y a que sous Apache que setcookie puis redirection fonctionne
69
-	include_spip('inc/cookie');
70
-	if (!defined('_SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE')) {
71
-		define('_SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE', '^(Apache|Cherokee|nginx)');
72
-	}
73
-	if (!defined('_SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE')) {
74
-		define('_SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE', 'Apache|Cherokee|nginx');
75
-	}
76
-	if (
77
-		!$equiv && !spip_cookie_envoye()
78
-		|| (
79
-			!empty($_SERVER['SERVER_SOFTWARE'])
80
-				&& _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE
81
-				&& preg_match('/' . _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE . '/i', (string) $_SERVER['SERVER_SOFTWARE'])
82
-			|| !empty($_SERVER['SERVER_SIGNATURE'])
83
-				&& _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE
84
-				&& preg_match('/' . _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE . '/i', (string) $_SERVER['SERVER_SIGNATURE'])
85
-			|| function_exists('apache_getenv')
86
-			|| defined('_SERVER_APACHE')
87
-		)
88
-	) {
89
-		@header('Location: ' . $url);
90
-		$equiv = '';
91
-	} else {
92
-		@header('Refresh: 0; url=' . $url);
93
-		if (isset($GLOBALS['meta']['charset'])) {
94
-			@header('Content-Type: text/html; charset=' . $GLOBALS['meta']['charset']);
95
-		}
96
-		$equiv = "<meta http-equiv='Refresh' content='0; url=$url'>";
97
-	}
98
-	include_spip('inc/lang');
99
-	if ($status != 302) {
100
-		http_response_code($status);
101
-	}
102
-	echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">', "\n",
103
-	html_lang_attributes(), '
40
+    if (!in_array($status, [301, 302])) {
41
+        $status = 302;
42
+    }
43
+
44
+    $url = trim(strtr($url, "\n\r", '  '));
45
+    # si l'url de redirection est relative, on la passe en absolue
46
+    if (!preg_match(',^(\w+:)?//,', $url)) {
47
+        include_spip('inc/filtres_mini');
48
+        $url = url_absolue($url);
49
+    }
50
+
51
+    if (defined('_AJAX') && _AJAX) {
52
+        $url = parametre_url($url, 'var_ajax_redir', 1, '&');
53
+    }
54
+
55
+    // ne pas laisser passer n'importe quoi dans l'url
56
+    $url = str_replace(['<', '"'], ['&lt;', '&quot;'], (string) $url);
57
+    $url = str_replace(["\r", "\n", ' '], ['%0D', '%0A', '%20'], $url);
58
+    while (str_contains($url, '%0A')) {
59
+        $url = str_replace('%0A', '', $url);
60
+    }
61
+    // interdire les url inline avec des pseudo-protocoles :
62
+    if (
63
+        preg_match(',data:,i', $url) && preg_match('/base64\s*,/i', $url) || preg_match(',(javascript|mailto):,i', $url)
64
+    ) {
65
+        $url = './';
66
+    }
67
+
68
+    // Il n'y a que sous Apache que setcookie puis redirection fonctionne
69
+    include_spip('inc/cookie');
70
+    if (!defined('_SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE')) {
71
+        define('_SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE', '^(Apache|Cherokee|nginx)');
72
+    }
73
+    if (!defined('_SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE')) {
74
+        define('_SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE', 'Apache|Cherokee|nginx');
75
+    }
76
+    if (
77
+        !$equiv && !spip_cookie_envoye()
78
+        || (
79
+            !empty($_SERVER['SERVER_SOFTWARE'])
80
+                && _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE
81
+                && preg_match('/' . _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE . '/i', (string) $_SERVER['SERVER_SOFTWARE'])
82
+            || !empty($_SERVER['SERVER_SIGNATURE'])
83
+                && _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE
84
+                && preg_match('/' . _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE . '/i', (string) $_SERVER['SERVER_SIGNATURE'])
85
+            || function_exists('apache_getenv')
86
+            || defined('_SERVER_APACHE')
87
+        )
88
+    ) {
89
+        @header('Location: ' . $url);
90
+        $equiv = '';
91
+    } else {
92
+        @header('Refresh: 0; url=' . $url);
93
+        if (isset($GLOBALS['meta']['charset'])) {
94
+            @header('Content-Type: text/html; charset=' . $GLOBALS['meta']['charset']);
95
+        }
96
+        $equiv = "<meta http-equiv='Refresh' content='0; url=$url'>";
97
+    }
98
+    include_spip('inc/lang');
99
+    if ($status != 302) {
100
+        http_response_code($status);
101
+    }
102
+    echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">', "\n",
103
+    html_lang_attributes(), '
104 104
 <head>',
105
-	$equiv, '
105
+    $equiv, '
106 106
 <title>HTTP ' . $status . '</title>
107 107
 ' . ((isset($GLOBALS['meta']['charset'])) ? '<meta http-equiv="Content-Type" content="text/html;charset=' . $GLOBALS['meta']['charset'] . '">' : '') . '
108 108
 </head>
109 109
 <body>
110 110
 <h1>HTTP ' . $status . '</h1>
111 111
 <a href="',
112
-	quote_amp($url),
113
-	'">',
114
-	_T('navigateur_pas_redirige'),
115
-	'</a></body></html>';
112
+    quote_amp($url),
113
+    '">',
114
+    _T('navigateur_pas_redirige'),
115
+    '</a></body></html>';
116 116
 
117
-	spip_logger()->info("redirige $status: $url");
117
+    spip_logger()->info("redirige $status: $url");
118 118
 
119
-	exit;
119
+    exit;
120 120
 }
121 121
 
122 122
 function redirige_formulaire($url, $equiv = '', $format = 'message') {
123
-	if (
124
-		!_AJAX
125
-		&& !headers_sent()
126
-		&& !_request('var_ajax')
127
-	) {
128
-		redirige_par_entete(str_replace('&amp;', '&', (string) $url), $equiv);
129
-	} // si c'est une ancre, fixer simplement le window.location.hash
130
-	elseif ($format == 'ajaxform' && preg_match(',^#[0-9a-z\-_]+$,i', (string) $url)) {
131
-		return [
132
-			// on renvoie un lien masque qui sera traite par ajaxCallback.js
133
-			"<a href='$url' name='ajax_ancre' style='display:none;'>anchor</a>",
134
-			// et rien dans le message ok
135
-			''
136
-		];
137
-	} else {
138
-		// ne pas laisser passer n'importe quoi dans l'url
139
-		$url = str_replace(['<', '"'], ['&lt;', '&quot;'], (string) $url);
140
-
141
-		$url = strtr($url, "\n\r", '  ');
142
-		# en theorie on devrait faire ca tout le temps, mais quand la chaine
143
-		# commence par ? c'est imperatif, sinon l'url finale n'est pas la bonne
144
-		if ($url[0] == '?') {
145
-			$url = url_de_base() . $url;
146
-		}
147
-		$url = str_replace('&amp;', '&', (string) $url);
148
-		spip_logger()->info("redirige formulaire ajax: $url");
149
-		include_spip('inc/filtres');
150
-		if ($format == 'ajaxform') {
151
-			return [
152
-				// on renvoie un lien masque qui sera traite par ajaxCallback.js
153
-				'<a href="' . quote_amp($url) . '" name="ajax_redirect"  style="display:none;">' . _T('navigateur_pas_redirige') . '</a>',
154
-				// et un message au cas ou
155
-				'<br /><a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>'
156
-			];
157
-		} else // format message texte, tout en js inline
158
-		{
159
-			return
160
-				// ie poste les formulaires dans une iframe, il faut donc rediriger son parent
161
-				"<script type='text/javascript'>if (parent.window){parent.window.document.location.replace(\"$url\");} else {document.location.replace(\"$url\");}</script>"
162
-				. http_img_pack('loader.svg', '', " class='loader'")
163
-				. '<br />'
164
-				. '<a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>';
165
-		}
166
-	}
123
+    if (
124
+        !_AJAX
125
+        && !headers_sent()
126
+        && !_request('var_ajax')
127
+    ) {
128
+        redirige_par_entete(str_replace('&amp;', '&', (string) $url), $equiv);
129
+    } // si c'est une ancre, fixer simplement le window.location.hash
130
+    elseif ($format == 'ajaxform' && preg_match(',^#[0-9a-z\-_]+$,i', (string) $url)) {
131
+        return [
132
+            // on renvoie un lien masque qui sera traite par ajaxCallback.js
133
+            "<a href='$url' name='ajax_ancre' style='display:none;'>anchor</a>",
134
+            // et rien dans le message ok
135
+            ''
136
+        ];
137
+    } else {
138
+        // ne pas laisser passer n'importe quoi dans l'url
139
+        $url = str_replace(['<', '"'], ['&lt;', '&quot;'], (string) $url);
140
+
141
+        $url = strtr($url, "\n\r", '  ');
142
+        # en theorie on devrait faire ca tout le temps, mais quand la chaine
143
+        # commence par ? c'est imperatif, sinon l'url finale n'est pas la bonne
144
+        if ($url[0] == '?') {
145
+            $url = url_de_base() . $url;
146
+        }
147
+        $url = str_replace('&amp;', '&', (string) $url);
148
+        spip_logger()->info("redirige formulaire ajax: $url");
149
+        include_spip('inc/filtres');
150
+        if ($format == 'ajaxform') {
151
+            return [
152
+                // on renvoie un lien masque qui sera traite par ajaxCallback.js
153
+                '<a href="' . quote_amp($url) . '" name="ajax_redirect"  style="display:none;">' . _T('navigateur_pas_redirige') . '</a>',
154
+                // et un message au cas ou
155
+                '<br /><a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>'
156
+            ];
157
+        } else // format message texte, tout en js inline
158
+        {
159
+            return
160
+                // ie poste les formulaires dans une iframe, il faut donc rediriger son parent
161
+                "<script type='text/javascript'>if (parent.window){parent.window.document.location.replace(\"$url\");} else {document.location.replace(\"$url\");}</script>"
162
+                . http_img_pack('loader.svg', '', " class='loader'")
163
+                . '<br />'
164
+                . '<a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>';
165
+        }
166
+    }
167 167
 }
168 168
 
169 169
 /**
@@ -184,27 +184,27 @@  discard block
 block discarded – undo
184 184
  * @return void
185 185
  **/
186 186
 function redirige_url_ecrire($script = '', $args = '', $equiv = '') {
187
-	return redirige_par_entete(generer_url_ecrire($script, $args, true), $equiv);
187
+    return redirige_par_entete(generer_url_ecrire($script, $args, true), $equiv);
188 188
 }
189 189
 
190 190
 // Retourne ce qui va bien pour que le navigateur ne mette pas la page en cache
191 191
 function http_no_cache() {
192
-	if (headers_sent()) {
193
-		spip_logger()->info('http_no_cache arrive trop tard');
194
-
195
-		return;
196
-	}
197
-	$charset = empty($GLOBALS['meta']['charset']) ? 'utf-8' : $GLOBALS['meta']['charset'];
198
-
199
-	// selon http://developer.apple.com/internet/safari/faq.html#anchor5
200
-	// il faudrait aussi pour Safari
201
-	// header("Cache-Control: post-check=0, pre-check=0", false)
202
-	// mais ca ne respecte pas
203
-	// http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
204
-
205
-	header("Content-Type: text/html; charset=$charset");
206
-	header('Expires: 0');
207
-	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
208
-	header('Cache-Control: no-cache, must-revalidate');
209
-	header('Pragma: no-cache');
192
+    if (headers_sent()) {
193
+        spip_logger()->info('http_no_cache arrive trop tard');
194
+
195
+        return;
196
+    }
197
+    $charset = empty($GLOBALS['meta']['charset']) ? 'utf-8' : $GLOBALS['meta']['charset'];
198
+
199
+    // selon http://developer.apple.com/internet/safari/faq.html#anchor5
200
+    // il faudrait aussi pour Safari
201
+    // header("Cache-Control: post-check=0, pre-check=0", false)
202
+    // mais ca ne respecte pas
203
+    // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
204
+
205
+    header("Content-Type: text/html; charset=$charset");
206
+    header('Expires: 0');
207
+    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
208
+    header('Cache-Control: no-cache, must-revalidate');
209
+    header('Pragma: no-cache');
210 210
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -78,20 +78,20 @@  discard block
 block discarded – undo
78 78
 		|| (
79 79
 			!empty($_SERVER['SERVER_SOFTWARE'])
80 80
 				&& _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE
81
-				&& preg_match('/' . _SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE . '/i', (string) $_SERVER['SERVER_SOFTWARE'])
81
+				&& preg_match('/'._SERVEUR_SOFTWARE_ACCEPTE_LOCATION_APRES_COOKIE.'/i', (string) $_SERVER['SERVER_SOFTWARE'])
82 82
 			|| !empty($_SERVER['SERVER_SIGNATURE'])
83 83
 				&& _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE
84
-				&& preg_match('/' . _SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE . '/i', (string) $_SERVER['SERVER_SIGNATURE'])
84
+				&& preg_match('/'._SERVEUR_SIGNATURE_ACCEPTE_LOCATION_APRES_COOKIE.'/i', (string) $_SERVER['SERVER_SIGNATURE'])
85 85
 			|| function_exists('apache_getenv')
86 86
 			|| defined('_SERVER_APACHE')
87 87
 		)
88 88
 	) {
89
-		@header('Location: ' . $url);
89
+		@header('Location: '.$url);
90 90
 		$equiv = '';
91 91
 	} else {
92
-		@header('Refresh: 0; url=' . $url);
92
+		@header('Refresh: 0; url='.$url);
93 93
 		if (isset($GLOBALS['meta']['charset'])) {
94
-			@header('Content-Type: text/html; charset=' . $GLOBALS['meta']['charset']);
94
+			@header('Content-Type: text/html; charset='.$GLOBALS['meta']['charset']);
95 95
 		}
96 96
 		$equiv = "<meta http-equiv='Refresh' content='0; url=$url'>";
97 97
 	}
@@ -103,11 +103,11 @@  discard block
 block discarded – undo
103 103
 	html_lang_attributes(), '
104 104
 <head>',
105 105
 	$equiv, '
106
-<title>HTTP ' . $status . '</title>
107
-' . ((isset($GLOBALS['meta']['charset'])) ? '<meta http-equiv="Content-Type" content="text/html;charset=' . $GLOBALS['meta']['charset'] . '">' : '') . '
106
+<title>HTTP ' . $status.'</title>
107
+' . ((isset($GLOBALS['meta']['charset'])) ? '<meta http-equiv="Content-Type" content="text/html;charset='.$GLOBALS['meta']['charset'].'">' : '').'
108 108
 </head>
109 109
 <body>
110
-<h1>HTTP ' . $status . '</h1>
110
+<h1>HTTP ' . $status.'</h1>
111 111
 <a href="',
112 112
 	quote_amp($url),
113 113
 	'">',
@@ -142,7 +142,7 @@  discard block
 block discarded – undo
142 142
 		# en theorie on devrait faire ca tout le temps, mais quand la chaine
143 143
 		# commence par ? c'est imperatif, sinon l'url finale n'est pas la bonne
144 144
 		if ($url[0] == '?') {
145
-			$url = url_de_base() . $url;
145
+			$url = url_de_base().$url;
146 146
 		}
147 147
 		$url = str_replace('&amp;', '&', (string) $url);
148 148
 		spip_logger()->info("redirige formulaire ajax: $url");
@@ -150,9 +150,9 @@  discard block
 block discarded – undo
150 150
 		if ($format == 'ajaxform') {
151 151
 			return [
152 152
 				// on renvoie un lien masque qui sera traite par ajaxCallback.js
153
-				'<a href="' . quote_amp($url) . '" name="ajax_redirect"  style="display:none;">' . _T('navigateur_pas_redirige') . '</a>',
153
+				'<a href="'.quote_amp($url).'" name="ajax_redirect"  style="display:none;">'._T('navigateur_pas_redirige').'</a>',
154 154
 				// et un message au cas ou
155
-				'<br /><a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>'
155
+				'<br /><a href="'.quote_amp($url).'">'._T('navigateur_pas_redirige').'</a>'
156 156
 			];
157 157
 		} else // format message texte, tout en js inline
158 158
 		{
@@ -161,7 +161,7 @@  discard block
 block discarded – undo
161 161
 				"<script type='text/javascript'>if (parent.window){parent.window.document.location.replace(\"$url\");} else {document.location.replace(\"$url\");}</script>"
162 162
 				. http_img_pack('loader.svg', '', " class='loader'")
163 163
 				. '<br />'
164
-				. '<a href="' . quote_amp($url) . '">' . _T('navigateur_pas_redirige') . '</a>';
164
+				. '<a href="'.quote_amp($url).'">'._T('navigateur_pas_redirige').'</a>';
165 165
 		}
166 166
 	}
167 167
 }
@@ -204,7 +204,7 @@  discard block
 block discarded – undo
204 204
 
205 205
 	header("Content-Type: text/html; charset=$charset");
206 206
 	header('Expires: 0');
207
-	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
207
+	header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
208 208
 	header('Cache-Control: no-cache, must-revalidate');
209 209
 	header('Pragma: no-cache');
210 210
 }
Please login to merge, or discard this patch.
ecrire/inc/genie.php 1 patch
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
 \***************************************************************************/
11 11
 
12 12
 if (!defined('_ECRIRE_INC_VERSION')) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 /**
@@ -74,28 +74,28 @@  discard block
 block discarded – undo
74 74
  * @return
75 75
  **/
76 76
 function inc_genie_dist($taches = []) {
77
-	include_spip('inc/queue');
78
-
79
-	if (_request('exec') == 'job_queue') {
80
-		return false;
81
-	}
82
-
83
-	$force_jobs = [];
84
-	// l'ancienne facon de lancer une tache cron immediatement
85
-	// etait de la passer en parametre a ing_genie_dist
86
-	// on reroute en ajoutant simplement le job a la queue, ASAP
87
-	foreach ($taches as $function => $period) {
88
-		$force_jobs[] = queue_add_job(
89
-			$function,
90
-			_T('tache_cron_asap', ['function' => $function]),
91
-			[time() - abs($period)],
92
-			'genie/'
93
-		);
94
-	}
95
-
96
-	// et on passe la main a la gestion de la queue !
97
-	// en forcant eventuellement les jobs ajoute a l'instant
98
-	return queue_schedule(count($force_jobs) ? $force_jobs : null);
77
+    include_spip('inc/queue');
78
+
79
+    if (_request('exec') == 'job_queue') {
80
+        return false;
81
+    }
82
+
83
+    $force_jobs = [];
84
+    // l'ancienne facon de lancer une tache cron immediatement
85
+    // etait de la passer en parametre a ing_genie_dist
86
+    // on reroute en ajoutant simplement le job a la queue, ASAP
87
+    foreach ($taches as $function => $period) {
88
+        $force_jobs[] = queue_add_job(
89
+            $function,
90
+            _T('tache_cron_asap', ['function' => $function]),
91
+            [time() - abs($period)],
92
+            'genie/'
93
+        );
94
+    }
95
+
96
+    // et on passe la main a la gestion de la queue !
97
+    // en forcant eventuellement les jobs ajoute a l'instant
98
+    return queue_schedule(count($force_jobs) ? $force_jobs : null);
99 99
 }
100 100
 
101 101
 //
@@ -108,34 +108,34 @@  discard block
 block discarded – undo
108 108
 //
109 109
 function taches_generales($taches_generales = []) {
110 110
 
111
-	// verifier que toutes les taches cron sont planifiees
112
-	// c'est une tache cron !
113
-	$taches_generales['queue_watch'] = 3600 * 24;
111
+    // verifier que toutes les taches cron sont planifiees
112
+    // c'est une tache cron !
113
+    $taches_generales['queue_watch'] = 3600 * 24;
114 114
 
115
-	// MAJ des rubriques publiques (cas de la publication post-datee)
116
-	// est fait au coup par coup a present
117
-	//	$taches_generales['rubriques'] = 3600;
115
+    // MAJ des rubriques publiques (cas de la publication post-datee)
116
+    // est fait au coup par coup a present
117
+    //	$taches_generales['rubriques'] = 3600;
118 118
 
119
-	// Optimisation de la base
120
-	$taches_generales['optimiser'] = 3600 * 48;
119
+    // Optimisation de la base
120
+    $taches_generales['optimiser'] = 3600 * 48;
121 121
 
122
-	// nouveautes
123
-	if (
124
-		isset($GLOBALS['meta']['adresse_neuf'])
125
-		&& $GLOBALS['meta']['adresse_neuf']
126
-		&& $GLOBALS['meta']['jours_neuf']
127
-		&& $GLOBALS['meta']['quoi_de_neuf'] == 'oui'
128
-	) {
129
-		$taches_generales['mail'] = 3600 * 24 * $GLOBALS['meta']['jours_neuf'];
130
-	}
122
+    // nouveautes
123
+    if (
124
+        isset($GLOBALS['meta']['adresse_neuf'])
125
+        && $GLOBALS['meta']['adresse_neuf']
126
+        && $GLOBALS['meta']['jours_neuf']
127
+        && $GLOBALS['meta']['quoi_de_neuf'] == 'oui'
128
+    ) {
129
+        $taches_generales['mail'] = 3600 * 24 * $GLOBALS['meta']['jours_neuf'];
130
+    }
131 131
 
132
-	// maintenance (ajax, verifications diverses)
133
-	$taches_generales['maintenance'] = 3600 * 2;
132
+    // maintenance (ajax, verifications diverses)
133
+    $taches_generales['maintenance'] = 3600 * 2;
134 134
 
135
-	// verifier si une mise a jour de spip est disponible (2 fois par semaine suffit largement)
136
-	$taches_generales['mise_a_jour'] = 3 * 24 * 3600;
135
+    // verifier si une mise a jour de spip est disponible (2 fois par semaine suffit largement)
136
+    $taches_generales['mise_a_jour'] = 3 * 24 * 3600;
137 137
 
138
-	return pipeline('taches_generales_cron', $taches_generales);
138
+    return pipeline('taches_generales_cron', $taches_generales);
139 139
 }
140 140
 
141 141
 /**
@@ -151,22 +151,22 @@  discard block
 block discarded – undo
151 151
  * @return int
152 152
  */
153 153
 function genie_queue_watch_dist() {
154
-	static $deja_la = false;
155
-	if ($deja_la) {
156
-		return;
157
-	} // re-entrance si l'insertion des jobs echoue (pas de table spip_jobs a l'upgrade par exemple)
158
-	$deja_la = true;
159
-	$taches = taches_generales();
160
-	$programmees = sql_allfetsel('fonction', 'spip_jobs', sql_in('fonction', array_keys($taches)));
161
-	$programmees = array_column($programmees, 'fonction');
162
-	foreach ($taches as $tache => $periode) {
163
-		if (!in_array($tache, $programmees)) {
164
-			queue_genie_replan_job($tache, $periode, time() - round(random_int(1, $periode)), 0);
165
-		}
166
-	}
167
-	$deja_la = false;
168
-
169
-	return 1;
154
+    static $deja_la = false;
155
+    if ($deja_la) {
156
+        return;
157
+    } // re-entrance si l'insertion des jobs echoue (pas de table spip_jobs a l'upgrade par exemple)
158
+    $deja_la = true;
159
+    $taches = taches_generales();
160
+    $programmees = sql_allfetsel('fonction', 'spip_jobs', sql_in('fonction', array_keys($taches)));
161
+    $programmees = array_column($programmees, 'fonction');
162
+    foreach ($taches as $tache => $periode) {
163
+        if (!in_array($tache, $programmees)) {
164
+            queue_genie_replan_job($tache, $periode, time() - round(random_int(1, $periode)), 0);
165
+        }
166
+    }
167
+    $deja_la = false;
168
+
169
+    return 1;
170 170
 }
171 171
 
172 172
 /**
@@ -187,32 +187,32 @@  discard block
 block discarded – undo
187 187
  * @return void
188 188
  */
189 189
 function queue_genie_replan_job($function, $period, $last = 0, $time = null, $priority = 0) {
190
-	static $done = [];
191
-	if (isset($done[$function])) {
192
-		return;
193
-	}
194
-	$done[$function] = true;
195
-	if (is_null($time)) {
196
-		$time = time();
197
-		if ($last) {
198
-			$time = max($last + $period, $time);
199
-		}
200
-	}
201
-	if (!$last) {
202
-		$last = $time - $period;
203
-	}
204
-	spip_logger('queue')->info("replan_job $function $period $last $time $priority");
205
-	include_spip('inc/queue');
206
-	// on replanifie un job cron
207
-	// uniquement si il n'y en a pas deja un avec le meme nom
208
-	// independament de l'argument
209
-	queue_add_job(
210
-		$function,
211
-		_T('tache_cron_secondes', ['function' => $function, 'nb' => $period]),
212
-		[$last],
213
-		'genie/',
214
-		'function_only',
215
-		$time,
216
-		$priority
217
-	);
190
+    static $done = [];
191
+    if (isset($done[$function])) {
192
+        return;
193
+    }
194
+    $done[$function] = true;
195
+    if (is_null($time)) {
196
+        $time = time();
197
+        if ($last) {
198
+            $time = max($last + $period, $time);
199
+        }
200
+    }
201
+    if (!$last) {
202
+        $last = $time - $period;
203
+    }
204
+    spip_logger('queue')->info("replan_job $function $period $last $time $priority");
205
+    include_spip('inc/queue');
206
+    // on replanifie un job cron
207
+    // uniquement si il n'y en a pas deja un avec le meme nom
208
+    // independament de l'argument
209
+    queue_add_job(
210
+        $function,
211
+        _T('tache_cron_secondes', ['function' => $function, 'nb' => $period]),
212
+        [$last],
213
+        'genie/',
214
+        'function_only',
215
+        $time,
216
+        $priority
217
+    );
218 218
 }
Please login to merge, or discard this patch.
ecrire/inc/math.php 2 patches
Indentation   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
 
14 14
 //
15 15
 if (!defined('_ECRIRE_INC_VERSION')) {
16
-	return;
16
+    return;
17 17
 }
18 18
 
19 19
 //
@@ -22,52 +22,52 @@  discard block
 block discarded – undo
22 22
 
23 23
 function produire_image_math($tex) {
24 24
 
25
-	switch ($GLOBALS['traiter_math']) {
26
-		// Attention: mathml desactiv'e pour l'instant
27
-		case 'mathml':
28
-			$ext = '.xhtml';
29
-			$server = $GLOBALS['mathml_server'];
30
-			break;
31
-		case 'tex':
32
-			$ext = '.png';
33
-			$server = $GLOBALS['tex_server'];
34
-			break;
35
-		default:
36
-			return $tex;
37
-	}
38
-
39
-	// Regarder dans le repertoire local des images TeX et blocs MathML
40
-	if (!@is_dir($dir_tex = _DIR_VAR . 'cache-TeX/')) {
41
-		@mkdir($dir_tex, _SPIP_CHMOD);
42
-	}
43
-	$fichier = $dir_tex . md5(trim((string) $tex)) . $ext;
44
-
45
-
46
-	// Aller chercher l'image sur le serveur
47
-	if (!@file_exists($fichier) && $server) {
48
-		spip_logger()->info($url = $server . '?' . rawurlencode((string) $tex));
49
-		include_spip('inc/distant');
50
-		recuperer_url($url, ['file' => $fichier]);
51
-	}
52
-
53
-
54
-	// Composer la reponse selon presence ou non de l'image
55
-	$tex = entites_html($tex);
56
-	if (@file_exists($fichier)) {
57
-		// MathML
58
-		if ($GLOBALS['traiter_math'] == 'mathml') {
59
-			return implode('', file($fichier));
60
-		} // TeX
61
-		else {
62
-			[, , , $size] = @spip_getimagesize($fichier);
63
-			$alt = "alt=\"$tex\" title=\"$tex\"";
64
-
65
-			return "<img src=\"$fichier\" style=\"vertical-align:middle;\" $size $alt />";
66
-		}
67
-	} else // pas de fichier
68
-	{
69
-		return "<tt><span class='spip_code' dir='ltr'>$tex</span></tt>";
70
-	}
25
+    switch ($GLOBALS['traiter_math']) {
26
+        // Attention: mathml desactiv'e pour l'instant
27
+        case 'mathml':
28
+            $ext = '.xhtml';
29
+            $server = $GLOBALS['mathml_server'];
30
+            break;
31
+        case 'tex':
32
+            $ext = '.png';
33
+            $server = $GLOBALS['tex_server'];
34
+            break;
35
+        default:
36
+            return $tex;
37
+    }
38
+
39
+    // Regarder dans le repertoire local des images TeX et blocs MathML
40
+    if (!@is_dir($dir_tex = _DIR_VAR . 'cache-TeX/')) {
41
+        @mkdir($dir_tex, _SPIP_CHMOD);
42
+    }
43
+    $fichier = $dir_tex . md5(trim((string) $tex)) . $ext;
44
+
45
+
46
+    // Aller chercher l'image sur le serveur
47
+    if (!@file_exists($fichier) && $server) {
48
+        spip_logger()->info($url = $server . '?' . rawurlencode((string) $tex));
49
+        include_spip('inc/distant');
50
+        recuperer_url($url, ['file' => $fichier]);
51
+    }
52
+
53
+
54
+    // Composer la reponse selon presence ou non de l'image
55
+    $tex = entites_html($tex);
56
+    if (@file_exists($fichier)) {
57
+        // MathML
58
+        if ($GLOBALS['traiter_math'] == 'mathml') {
59
+            return implode('', file($fichier));
60
+        } // TeX
61
+        else {
62
+            [, , , $size] = @spip_getimagesize($fichier);
63
+            $alt = "alt=\"$tex\" title=\"$tex\"";
64
+
65
+            return "<img src=\"$fichier\" style=\"vertical-align:middle;\" $size $alt />";
66
+        }
67
+    } else // pas de fichier
68
+    {
69
+        return "<tt><span class='spip_code' dir='ltr'>$tex</span></tt>";
70
+    }
71 71
 }
72 72
 
73 73
 
@@ -102,39 +102,39 @@  discard block
 block discarded – undo
102 102
  */
103 103
 function traiter_math($letexte, $source = '', $defaire_amp = false) {
104 104
 
105
-	$collecteurMath = new CollecteurHtmlTag('math', '@<math>(.*)(</math>|$)@iUsS', '');
106
-	$collection = $collecteurMath->collecter($letexte);
107
-	$collection = array_reverse($collection);
108
-
109
-	foreach ($collection as $c) {
110
-		$texte_milieu = $c['match'][1];
111
-
112
-		$traitements = [
113
-			// Les doubles $$x^2$$ en mode 'div'
114
-			['str' => '$$', 'preg' => ',[$][$]([^$]+)[$][$],', 'pre' => "\n<p class=\"spip\" style=\"text-align: center;\">", 'post' => "</p>\n"],
115
-			// Les simples $x^2$ en mode 'span'
116
-			['str' => '$', 'preg' => ',[$]([^$]+)[$],'],
117
-		];
118
-		foreach ($traitements as $t) {
119
-			while (
120
-				str_contains($texte_milieu, $t['str'])
121
-				&& preg_match($t['preg'], $texte_milieu, $regs)
122
-			) {
123
-				$expression = $regs[1];
124
-				if ($defaire_amp) {
125
-					$expression = str_replace('&amp;', '&', $expression);
126
-				}
127
-				$echap = produire_image_math($expression);
128
-				$echap = ($t['pre'] ?? '') . $echap . ($t['post'] ?? '');
129
-				$echap = CollecteurHtmlTag::echappementHtmlBase64($echap, $source);
130
-
131
-				$pos = strpos($texte_milieu, (string) $regs[0]);
132
-				$texte_milieu = substr_replace($texte_milieu, $echap, $pos, strlen($regs[0]));
133
-			}
134
-		}
135
-
136
-		$letexte = substr_replace($letexte, $texte_milieu, $c['pos'], $c['length']);
137
-	}
138
-
139
-	return $letexte;
105
+    $collecteurMath = new CollecteurHtmlTag('math', '@<math>(.*)(</math>|$)@iUsS', '');
106
+    $collection = $collecteurMath->collecter($letexte);
107
+    $collection = array_reverse($collection);
108
+
109
+    foreach ($collection as $c) {
110
+        $texte_milieu = $c['match'][1];
111
+
112
+        $traitements = [
113
+            // Les doubles $$x^2$$ en mode 'div'
114
+            ['str' => '$$', 'preg' => ',[$][$]([^$]+)[$][$],', 'pre' => "\n<p class=\"spip\" style=\"text-align: center;\">", 'post' => "</p>\n"],
115
+            // Les simples $x^2$ en mode 'span'
116
+            ['str' => '$', 'preg' => ',[$]([^$]+)[$],'],
117
+        ];
118
+        foreach ($traitements as $t) {
119
+            while (
120
+                str_contains($texte_milieu, $t['str'])
121
+                && preg_match($t['preg'], $texte_milieu, $regs)
122
+            ) {
123
+                $expression = $regs[1];
124
+                if ($defaire_amp) {
125
+                    $expression = str_replace('&amp;', '&', $expression);
126
+                }
127
+                $echap = produire_image_math($expression);
128
+                $echap = ($t['pre'] ?? '') . $echap . ($t['post'] ?? '');
129
+                $echap = CollecteurHtmlTag::echappementHtmlBase64($echap, $source);
130
+
131
+                $pos = strpos($texte_milieu, (string) $regs[0]);
132
+                $texte_milieu = substr_replace($texte_milieu, $echap, $pos, strlen($regs[0]));
133
+            }
134
+        }
135
+
136
+        $letexte = substr_replace($letexte, $texte_milieu, $c['pos'], $c['length']);
137
+    }
138
+
139
+    return $letexte;
140 140
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -37,15 +37,15 @@  discard block
 block discarded – undo
37 37
 	}
38 38
 
39 39
 	// Regarder dans le repertoire local des images TeX et blocs MathML
40
-	if (!@is_dir($dir_tex = _DIR_VAR . 'cache-TeX/')) {
40
+	if (!@is_dir($dir_tex = _DIR_VAR.'cache-TeX/')) {
41 41
 		@mkdir($dir_tex, _SPIP_CHMOD);
42 42
 	}
43
-	$fichier = $dir_tex . md5(trim((string) $tex)) . $ext;
43
+	$fichier = $dir_tex.md5(trim((string) $tex)).$ext;
44 44
 
45 45
 
46 46
 	// Aller chercher l'image sur le serveur
47 47
 	if (!@file_exists($fichier) && $server) {
48
-		spip_logger()->info($url = $server . '?' . rawurlencode((string) $tex));
48
+		spip_logger()->info($url = $server.'?'.rawurlencode((string) $tex));
49 49
 		include_spip('inc/distant');
50 50
 		recuperer_url($url, ['file' => $fichier]);
51 51
 	}
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 			return implode('', file($fichier));
60 60
 		} // TeX
61 61
 		else {
62
-			[, , , $size] = @spip_getimagesize($fichier);
62
+			[,,, $size] = @spip_getimagesize($fichier);
63 63
 			$alt = "alt=\"$tex\" title=\"$tex\"";
64 64
 
65 65
 			return "<img src=\"$fichier\" style=\"vertical-align:middle;\" $size $alt />";
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
 					$expression = str_replace('&amp;', '&', $expression);
126 126
 				}
127 127
 				$echap = produire_image_math($expression);
128
-				$echap = ($t['pre'] ?? '') . $echap . ($t['post'] ?? '');
128
+				$echap = ($t['pre'] ?? '').$echap.($t['post'] ?? '');
129 129
 				$echap = CollecteurHtmlTag::echappementHtmlBase64($echap, $source);
130 130
 
131 131
 				$pos = strpos($texte_milieu, (string) $regs[0]);
Please login to merge, or discard this patch.