Completed
Push — master ( 3c3a44...ecc129 )
by cam
02:17
created
ecrire/inc/install.php 1 patch
Indentation   +362 added lines, -362 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 
@@ -43,12 +43,12 @@  discard block
 block discarded – undo
43 43
  * @return void
44 44
  **/
45 45
 function install_fichier_connexion($nom, $texte) {
46
-	$texte = '<' . "?php\n"
47
-		. "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n"
48
-		. $texte
49
-		. '?' . '>';
46
+    $texte = '<' . "?php\n"
47
+        . "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n"
48
+        . $texte
49
+        . '?' . '>';
50 50
 
51
-	ecrire_fichier($nom, $texte);
51
+    ecrire_fichier($nom, $texte);
52 52
 }
53 53
 
54 54
 
@@ -77,20 +77,20 @@  discard block
 block discarded – undo
77 77
  *
78 78
  **/
79 79
 function install_connexion($adr, $port, $login, $pass, $base, $type, $pref, $ldap = '', $charset = '') {
80
-	$adr = addcslashes($adr, "'\\");
81
-	$port = addcslashes($port, "'\\");
82
-	$login = addcslashes($login, "'\\");
83
-	$pass = addcslashes($pass, "'\\");
84
-	$base = addcslashes($base, "'\\");
85
-	$type = addcslashes($type, "'\\");
86
-	$pref = addcslashes($pref, "'\\");
87
-	$ldap = addcslashes($ldap, "'\\");
88
-	$charset = addcslashes($charset, "'\\");
89
-
90
-	return "\$GLOBALS['spip_connect_version'] = 0.8;\n"
91
-	. 'spip_connect_db('
92
-	. "'$adr','$port','$login','$pass','$base'"
93
-	. ",'$type', '$pref','$ldap','$charset');\n";
80
+    $adr = addcslashes($adr, "'\\");
81
+    $port = addcslashes($port, "'\\");
82
+    $login = addcslashes($login, "'\\");
83
+    $pass = addcslashes($pass, "'\\");
84
+    $base = addcslashes($base, "'\\");
85
+    $type = addcslashes($type, "'\\");
86
+    $pref = addcslashes($pref, "'\\");
87
+    $ldap = addcslashes($ldap, "'\\");
88
+    $charset = addcslashes($charset, "'\\");
89
+
90
+    return "\$GLOBALS['spip_connect_version'] = 0.8;\n"
91
+    . 'spip_connect_db('
92
+    . "'$adr','$port','$login','$pass','$base'"
93
+    . ",'$type', '$pref','$ldap','$charset');\n";
94 94
 }
95 95
 
96 96
 
@@ -106,26 +106,26 @@  discard block
 block discarded – undo
106 106
  *     Tableau des informations sur la connexion
107 107
  **/
108 108
 function analyse_fichier_connection($file) {
109
-	$s = @join('', file($file));
110
-	if (preg_match("#mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)#", $s, $regs)) {
111
-		array_shift($regs);
112
-
113
-		return $regs;
114
-	} else {
115
-		$ar = '\s*\'([^\']*)\'';
116
-		$r = '\s*,' . $ar;
117
-		$r = "#spip_connect_db[(]$ar$r$r$r$r(?:$r(?:$r(?:$r(?:$r)?)?)?)?#";
118
-		if (preg_match($r, $s, $regs)) {
119
-			$regs[2] = $regs[1] . (!$regs[2] ? '' : ':' . $regs[2] . ';');
120
-			array_shift($regs);
121
-			array_shift($regs);
122
-
123
-			return $regs;
124
-		}
125
-	}
126
-	spip_log("$file n'est pas un fichier de connexion");
127
-
128
-	return [];
109
+    $s = @join('', file($file));
110
+    if (preg_match("#mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)#", $s, $regs)) {
111
+        array_shift($regs);
112
+
113
+        return $regs;
114
+    } else {
115
+        $ar = '\s*\'([^\']*)\'';
116
+        $r = '\s*,' . $ar;
117
+        $r = "#spip_connect_db[(]$ar$r$r$r$r(?:$r(?:$r(?:$r(?:$r)?)?)?)?#";
118
+        if (preg_match($r, $s, $regs)) {
119
+            $regs[2] = $regs[1] . (!$regs[2] ? '' : ':' . $regs[2] . ';');
120
+            array_shift($regs);
121
+            array_shift($regs);
122
+
123
+            return $regs;
124
+        }
125
+    }
126
+    spip_log("$file n'est pas un fichier de connexion");
127
+
128
+    return [];
129 129
 }
130 130
 
131 131
 /**
@@ -142,75 +142,75 @@  discard block
 block discarded – undo
142 142
  *     Liste des noms de connecteurs
143 143
  **/
144 144
 function bases_referencees($exclu = '') {
145
-	$tables = [];
146
-	foreach (preg_files(_DIR_CONNECT, '.php$') as $f) {
147
-		if ($f != $exclu and analyse_fichier_connection($f)) {
148
-			$tables[] = basename($f, '.php');
149
-		}
150
-	}
151
-
152
-	return $tables;
145
+    $tables = [];
146
+    foreach (preg_files(_DIR_CONNECT, '.php$') as $f) {
147
+        if ($f != $exclu and analyse_fichier_connection($f)) {
148
+            $tables[] = basename($f, '.php');
149
+        }
150
+    }
151
+
152
+    return $tables;
153 153
 }
154 154
 
155 155
 
156 156
 function install_mode_appel($server_db, $tout = true) {
157
-	return ($server_db != 'mysql') ? ''
158
-		: (($tout ? test_rappel_nom_base_mysql($server_db) : '')
159
-			. test_sql_mode_mysql($server_db));
157
+    return ($server_db != 'mysql') ? ''
158
+        : (($tout ? test_rappel_nom_base_mysql($server_db) : '')
159
+            . test_sql_mode_mysql($server_db));
160 160
 }
161 161
 
162 162
 //
163 163
 // Verifier que l'hebergement est compatible SPIP ... ou l'inverse :-)
164 164
 // (sert a l'etape 1 de l'installation)
165 165
 function tester_compatibilite_hebergement() {
166
-	$err = [];
167
-
168
-	$p = phpversion();
169
-	if (version_compare($p, _PHP_MIN, '<')) {
170
-		$err[] = _T('install_php_version', ['version' => $p, 'minimum' => _PHP_MIN]);
171
-	}
172
-	if (version_compare($p, _PHP_MAX, '>')) {
173
-		$err[] = _T('install_php_version_max', ['version' => $p, 'maximum' => _PHP_MAX]);
174
-	}
175
-
176
-	$diff = array_diff(['sodium', 'xml', 'zip'], get_loaded_extensions());
177
-	if (!empty($diff)) {
178
-		$err[] = _T('install_php_extension', ['extensions' => implode(',', $diff)]);
179
-	}
180
-
181
-	// Si on n'a pas la bonne version de PHP, c'est la fin
182
-	if ($err) {
183
-		die("<div class='error'>"
184
-			. '<h3>' . _T('avis_attention') . '</h3><p>' . _T('install_echec_annonce') . "</p><ul class='spip'>"
185
-			. "<li><strong>{$err[0]}</strong></li>\n</ul></div>");
186
-	}
187
-
188
-	// Il faut une base de donnees tout de meme ...
189
-	$serveurs = install_select_serveur();
190
-	if (!$serveurs) {
191
-		$err[] = _T('install_extension_php_obligatoire')
192
-			. " <a href='http://www.php.net/mysql'>MYSQL</a>"
193
-			. "| <a href='http://www.php.net/pgsql'>PostgreSQL</a>"
194
-			. "| <a href='http://www.php.net/sqlite'>SQLite</a>";
195
-	}
196
-
197
-	// et surtout pas ce mbstring.overload (has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP 8.0.0)
198
-	if ($a = @ini_get('mbstring.func_overload')) {
199
-		$err[] = _T('install_extension_mbstring')
200
-			. "mbstring.func_overload=$a - <a href='http://www.php.net/mb_string'>mb_string</a>.<br /><small>";
201
-	}
202
-
203
-	if ($err) {
204
-		echo "<div class='error'>"
205
-			. '<h3>' . _T('avis_attention') . '</h3><p>' . _T('install_echec_annonce') . "</p><ul class='spip'>";
206
-		foreach ($err as $e) {
207
-			echo "<li><strong>$e</strong></li>\n";
208
-		}
209
-
210
-		# a priori ici on pourrait die(), mais il faut laisser la possibilite
211
-		# de forcer malgre tout (pour tester, ou si bug de detection)
212
-		echo "</ul></div>\n";
213
-	}
166
+    $err = [];
167
+
168
+    $p = phpversion();
169
+    if (version_compare($p, _PHP_MIN, '<')) {
170
+        $err[] = _T('install_php_version', ['version' => $p, 'minimum' => _PHP_MIN]);
171
+    }
172
+    if (version_compare($p, _PHP_MAX, '>')) {
173
+        $err[] = _T('install_php_version_max', ['version' => $p, 'maximum' => _PHP_MAX]);
174
+    }
175
+
176
+    $diff = array_diff(['sodium', 'xml', 'zip'], get_loaded_extensions());
177
+    if (!empty($diff)) {
178
+        $err[] = _T('install_php_extension', ['extensions' => implode(',', $diff)]);
179
+    }
180
+
181
+    // Si on n'a pas la bonne version de PHP, c'est la fin
182
+    if ($err) {
183
+        die("<div class='error'>"
184
+            . '<h3>' . _T('avis_attention') . '</h3><p>' . _T('install_echec_annonce') . "</p><ul class='spip'>"
185
+            . "<li><strong>{$err[0]}</strong></li>\n</ul></div>");
186
+    }
187
+
188
+    // Il faut une base de donnees tout de meme ...
189
+    $serveurs = install_select_serveur();
190
+    if (!$serveurs) {
191
+        $err[] = _T('install_extension_php_obligatoire')
192
+            . " <a href='http://www.php.net/mysql'>MYSQL</a>"
193
+            . "| <a href='http://www.php.net/pgsql'>PostgreSQL</a>"
194
+            . "| <a href='http://www.php.net/sqlite'>SQLite</a>";
195
+    }
196
+
197
+    // et surtout pas ce mbstring.overload (has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP 8.0.0)
198
+    if ($a = @ini_get('mbstring.func_overload')) {
199
+        $err[] = _T('install_extension_mbstring')
200
+            . "mbstring.func_overload=$a - <a href='http://www.php.net/mb_string'>mb_string</a>.<br /><small>";
201
+    }
202
+
203
+    if ($err) {
204
+        echo "<div class='error'>"
205
+            . '<h3>' . _T('avis_attention') . '</h3><p>' . _T('install_echec_annonce') . "</p><ul class='spip'>";
206
+        foreach ($err as $e) {
207
+            echo "<li><strong>$e</strong></li>\n";
208
+        }
209
+
210
+        # a priori ici on pourrait die(), mais il faut laisser la possibilite
211
+        # de forcer malgre tout (pour tester, ou si bug de detection)
212
+        echo "</ul></div>\n";
213
+    }
214 214
 }
215 215
 
216 216
 
@@ -220,23 +220,23 @@  discard block
 block discarded – undo
220 220
  * @note superflu ??
221 221
  */
222 222
 function login_hebergeur() {
223
-	$base_hebergeur = 'localhost'; # par defaut
223
+    $base_hebergeur = 'localhost'; # par defaut
224 224
 
225
-	// Free
226
-	if (preg_match(',(.*)\.free\.fr$,', $_SERVER['SERVER_NAME'], $regs)) {
227
-		$base_hebergeur = 'sql.free.fr';
228
-		$login_hebergeur = $regs[1];
229
-	} else {
230
-		$login_hebergeur = '';
231
-	}
225
+    // Free
226
+    if (preg_match(',(.*)\.free\.fr$,', $_SERVER['SERVER_NAME'], $regs)) {
227
+        $base_hebergeur = 'sql.free.fr';
228
+        $login_hebergeur = $regs[1];
229
+    } else {
230
+        $login_hebergeur = '';
231
+    }
232 232
 
233
-	return [$base_hebergeur, $login_hebergeur];
233
+    return [$base_hebergeur, $login_hebergeur];
234 234
 }
235 235
 
236 236
 
237 237
 function info_etape($titre, $complement = '') {
238
-	return '<h2>' . $titre . "</h2>\n" .
239
-	($complement ? '' . $complement . "\n" : '');
238
+    return '<h2>' . $titre . "</h2>\n" .
239
+    ($complement ? '' . $complement . "\n" : '');
240 240
 }
241 241
 
242 242
 /**
@@ -246,154 +246,154 @@  discard block
 block discarded – undo
246 246
  * @return string Code HTML du bouton
247 247
  **/
248 248
 function bouton_suivant($code = '') {
249
-	if ($code == '') {
250
-		$code = _T('bouton_suivant');
251
-	}
252
-	static $suivant = 0;
253
-	$id = 'suivant' . (($suivant > 0) ? strval($suivant) : '');
254
-	$suivant += 1;
255
-
256
-	return "\n<p class='boutons suivant'><input id='" . $id . "' type='submit'\nvalue=\"" .
257
-	$code .
258
-	" >>\" /></p>\n";
249
+    if ($code == '') {
250
+        $code = _T('bouton_suivant');
251
+    }
252
+    static $suivant = 0;
253
+    $id = 'suivant' . (($suivant > 0) ? strval($suivant) : '');
254
+    $suivant += 1;
255
+
256
+    return "\n<p class='boutons suivant'><input id='" . $id . "' type='submit'\nvalue=\"" .
257
+    $code .
258
+    " >>\" /></p>\n";
259 259
 }
260 260
 
261 261
 function info_progression_etape($en_cours, $phase, $dir, $erreur = false) {
262
-	$intitule_etat = [];
263
-	//$en_cours = _request('etape')?_request('etape'):"";
264
-	$liste = find_all_in_path($dir, $phase . '(([0-9])+|fin)[.]php$');
265
-	$debut = 1;
266
-	$etat = 'ok';
267
-	$last = count($liste);
262
+    $intitule_etat = [];
263
+    //$en_cours = _request('etape')?_request('etape'):"";
264
+    $liste = find_all_in_path($dir, $phase . '(([0-9])+|fin)[.]php$');
265
+    $debut = 1;
266
+    $etat = 'ok';
267
+    $last = count($liste);
268 268
 //	$texte_etat = array('ok'=>'OK','encours'=>_T('en_cours'),'todo'=>_T('todo'));
269 269
 
270
-	$intitule_etat['etape_'][1] = typo(_T('info_connexion_base_donnee'));
271
-	$intitule_etat['etape_'][2] = typo(_T('menu_aide_installation_choix_base'));
272
-	$intitule_etat['etape_'][3] = typo(_T('info_informations_personnelles'));
273
-	$intitule_etat['etape_'][4] = typo(_T('info_derniere_etape'));
270
+    $intitule_etat['etape_'][1] = typo(_T('info_connexion_base_donnee'));
271
+    $intitule_etat['etape_'][2] = typo(_T('menu_aide_installation_choix_base'));
272
+    $intitule_etat['etape_'][3] = typo(_T('info_informations_personnelles'));
273
+    $intitule_etat['etape_'][4] = typo(_T('info_derniere_etape'));
274 274
 
275
-	$intitule_etat['etape_ldap'][1] = typo(_T('titre_connexion_ldap'));
276
-	$intitule_etat['etape_ldap'][2] = typo(_T('titre_connexion_ldap'));
277
-	$intitule_etat['etape_ldap'][3] = typo(_T('info_chemin_acces_1'));
278
-	$intitule_etat['etape_ldap'][4] = typo(_T('info_reglage_ldap'));
279
-	$intitule_etat['etape_ldap'][5] = typo(_T('info_ldap_ok'));
275
+    $intitule_etat['etape_ldap'][1] = typo(_T('titre_connexion_ldap'));
276
+    $intitule_etat['etape_ldap'][2] = typo(_T('titre_connexion_ldap'));
277
+    $intitule_etat['etape_ldap'][3] = typo(_T('info_chemin_acces_1'));
278
+    $intitule_etat['etape_ldap'][4] = typo(_T('info_reglage_ldap'));
279
+    $intitule_etat['etape_ldap'][5] = typo(_T('info_ldap_ok'));
280 280
 
281 281
 //	$aff_etapes = "<span id='etapes'>";
282 282
 
283
-	$aff_etapes = "<ul id='infos_etapes' class='infos_$phase$en_cours'>";
284
-
285
-	foreach ($liste as $etape => $fichier) {
286
-		if ($debut < $last) {
287
-			if ($debut == $en_cours && $erreur) {
288
-				$class = 'on erreur';
289
-			} else {
290
-				if ($debut == $en_cours) {
291
-					$class = 'on';
292
-				} else {
293
-					if ($debut > $en_cours) {
294
-						$class = 'prochains';
295
-					} else {
296
-						$class = 'valides';
297
-					}
298
-				}
299
-			}
300
-
301
-			$aff_etapes .= "<li class='$class'><div class='fond'>";
302
-			$aff_etapes .= ($debut == $en_cours) ? '<strong>' : '';
303
-			$aff_etapes .= '<em>' . _T('etape') . " </em><span class='numero_etape'>$debut</span><em>&nbsp;: </em>";
304
-			$aff_etapes .= $intitule_etat["$phase"][$debut];
305
-			$aff_etapes .= ($debut == $en_cours) ? '</strong>' : '';
306
-			$aff_etapes .= '</div></li>';
307
-		}
308
-		$debut++;
309
-	}
310
-	$aff_etapes .= '</ul>';
311
-	$aff_etapes .= "<br class='nettoyeur' />\n";
312
-
313
-	return $aff_etapes;
283
+    $aff_etapes = "<ul id='infos_etapes' class='infos_$phase$en_cours'>";
284
+
285
+    foreach ($liste as $etape => $fichier) {
286
+        if ($debut < $last) {
287
+            if ($debut == $en_cours && $erreur) {
288
+                $class = 'on erreur';
289
+            } else {
290
+                if ($debut == $en_cours) {
291
+                    $class = 'on';
292
+                } else {
293
+                    if ($debut > $en_cours) {
294
+                        $class = 'prochains';
295
+                    } else {
296
+                        $class = 'valides';
297
+                    }
298
+                }
299
+            }
300
+
301
+            $aff_etapes .= "<li class='$class'><div class='fond'>";
302
+            $aff_etapes .= ($debut == $en_cours) ? '<strong>' : '';
303
+            $aff_etapes .= '<em>' . _T('etape') . " </em><span class='numero_etape'>$debut</span><em>&nbsp;: </em>";
304
+            $aff_etapes .= $intitule_etat["$phase"][$debut];
305
+            $aff_etapes .= ($debut == $en_cours) ? '</strong>' : '';
306
+            $aff_etapes .= '</div></li>';
307
+        }
308
+        $debut++;
309
+    }
310
+    $aff_etapes .= '</ul>';
311
+    $aff_etapes .= "<br class='nettoyeur' />\n";
312
+
313
+    return $aff_etapes;
314 314
 }
315 315
 
316 316
 
317 317
 function fieldset($legend, $champs = [], $apres = '', $avant = '') {
318
-	return "<fieldset>\n" .
319
-	$avant .
320
-	($legend ? '<legend>' . $legend . "</legend>\n" : '') .
321
-	fieldset_champs($champs) .
322
-	$apres .
323
-	"</fieldset>\n";
318
+    return "<fieldset>\n" .
319
+    $avant .
320
+    ($legend ? '<legend>' . $legend . "</legend>\n" : '') .
321
+    fieldset_champs($champs) .
322
+    $apres .
323
+    "</fieldset>\n";
324 324
 }
325 325
 
326 326
 function fieldset_champs($champs = []) {
327
-	$fieldset = '';
328
-	foreach ($champs as $nom => $contenu) {
329
-		$type = isset($contenu['hidden']) ? 'hidden' : (preg_match(',^pass,', $nom) ? 'password' : 'text');
330
-		$class = isset($contenu['hidden']) ? '' : "class='formo' size='40' ";
331
-		if (isset($contenu['alternatives'])) {
332
-			$fieldset .= $contenu['label'] . "\n";
333
-			foreach ($contenu['alternatives'] as $valeur => $label) {
334
-				$fieldset .= "<input type='radio' name='" . $nom .
335
-					"' id='$nom-$valeur' value='$valeur'"
336
-					. (($valeur == $contenu['valeur']) ? "\nchecked='checked'" : '')
337
-					. "/>\n";
338
-				$fieldset .= "<label for='$nom-$valeur'>" . $label . "</label>\n";
339
-			}
340
-			$fieldset .= "<br />\n";
341
-		} else {
342
-			$fieldset .= "<label for='" . $nom . "'>" . $contenu['label'] . "</label>\n";
343
-			$fieldset .= '<input ' . $class . "type='" . $type . "' id='" . $nom . "' name='" . $nom . "'\nvalue='" . $contenu['valeur'] . "'"
344
-				. (preg_match(',^(pass|login),', $nom) ? " autocomplete='off'" : '')
345
-				. ((isset($contenu['required']) and $contenu['required']) ? " required='required'" : '')
346
-				. " />\n";
347
-		}
348
-	}
349
-
350
-	return $fieldset;
327
+    $fieldset = '';
328
+    foreach ($champs as $nom => $contenu) {
329
+        $type = isset($contenu['hidden']) ? 'hidden' : (preg_match(',^pass,', $nom) ? 'password' : 'text');
330
+        $class = isset($contenu['hidden']) ? '' : "class='formo' size='40' ";
331
+        if (isset($contenu['alternatives'])) {
332
+            $fieldset .= $contenu['label'] . "\n";
333
+            foreach ($contenu['alternatives'] as $valeur => $label) {
334
+                $fieldset .= "<input type='radio' name='" . $nom .
335
+                    "' id='$nom-$valeur' value='$valeur'"
336
+                    . (($valeur == $contenu['valeur']) ? "\nchecked='checked'" : '')
337
+                    . "/>\n";
338
+                $fieldset .= "<label for='$nom-$valeur'>" . $label . "</label>\n";
339
+            }
340
+            $fieldset .= "<br />\n";
341
+        } else {
342
+            $fieldset .= "<label for='" . $nom . "'>" . $contenu['label'] . "</label>\n";
343
+            $fieldset .= '<input ' . $class . "type='" . $type . "' id='" . $nom . "' name='" . $nom . "'\nvalue='" . $contenu['valeur'] . "'"
344
+                . (preg_match(',^(pass|login),', $nom) ? " autocomplete='off'" : '')
345
+                . ((isset($contenu['required']) and $contenu['required']) ? " required='required'" : '')
346
+                . " />\n";
347
+        }
348
+    }
349
+
350
+    return $fieldset;
351 351
 }
352 352
 
353 353
 function install_select_serveur() {
354
-	$options = [];
355
-	$dir = _DIR_RESTREINT . 'req/';
356
-	$d = opendir($dir);
357
-	if (!$d) {
358
-		return [];
359
-	}
360
-	while (($f = readdir($d)) !== false) {
361
-		if (
362
-			(preg_match('/^(.*)[.]php$/', $f, $s))
363
-			and is_readable($f = $dir . $f)
364
-		) {
365
-			require_once($f);
366
-			$s = $s[1];
367
-			$v = 'spip_versions_' . $s;
368
-			if (function_exists($v) and $v()) {
369
-				$titre = _T("install_select_type_$s");
370
-				// proposer mysql par defaut si dispo
371
-				$checked = ($s == 'mysql' ? " checked='checked'" : '');
372
-				$options[$s] = "<li><input type='radio' id='$s' value='$s' name='server_db'$checked>"
373
-					. "<label for='$s'>" . ($titre ?: $s) . '</label></li>';
374
-			} else {
375
-				spip_log("$s: portage indisponible");
376
-			}
377
-		}
378
-	}
379
-	sort($options);
380
-
381
-	return $options;
354
+    $options = [];
355
+    $dir = _DIR_RESTREINT . 'req/';
356
+    $d = opendir($dir);
357
+    if (!$d) {
358
+        return [];
359
+    }
360
+    while (($f = readdir($d)) !== false) {
361
+        if (
362
+            (preg_match('/^(.*)[.]php$/', $f, $s))
363
+            and is_readable($f = $dir . $f)
364
+        ) {
365
+            require_once($f);
366
+            $s = $s[1];
367
+            $v = 'spip_versions_' . $s;
368
+            if (function_exists($v) and $v()) {
369
+                $titre = _T("install_select_type_$s");
370
+                // proposer mysql par defaut si dispo
371
+                $checked = ($s == 'mysql' ? " checked='checked'" : '');
372
+                $options[$s] = "<li><input type='radio' id='$s' value='$s' name='server_db'$checked>"
373
+                    . "<label for='$s'>" . ($titre ?: $s) . '</label></li>';
374
+            } else {
375
+                spip_log("$s: portage indisponible");
376
+            }
377
+        }
378
+    }
379
+    sort($options);
380
+
381
+    return $options;
382 382
 }
383 383
 
384 384
 function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape, $jquery = true) {
385
-	$server_db = (is_string($predef[0])) ? $predef[0] : '';
386
-
387
-	return generer_form_ecrire('install', (
388
-		"\n<input type='hidden' name='etape' value='$etape' />"
389
-		. $hidden
390
-		. (_request('echec') ?
391
-			('<p><b>' . _T('avis_connexion_echec_1') .
392
-				'</b></p><p>' . _T('avis_connexion_echec_2') . "</p><p style='font-size: small;'>" . _T('avis_connexion_echec_3') . '</p>')
393
-			: '')
394
-
395
-		. ($jquery ? http_script('', 'jquery.js') : '')
396
-		. http_script('
385
+    $server_db = (is_string($predef[0])) ? $predef[0] : '';
386
+
387
+    return generer_form_ecrire('install', (
388
+        "\n<input type='hidden' name='etape' value='$etape' />"
389
+        . $hidden
390
+        . (_request('echec') ?
391
+            ('<p><b>' . _T('avis_connexion_echec_1') .
392
+                '</b></p><p>' . _T('avis_connexion_echec_2') . "</p><p style='font-size: small;'>" . _T('avis_connexion_echec_3') . '</p>')
393
+            : '')
394
+
395
+        . ($jquery ? http_script('', 'jquery.js') : '')
396
+        . http_script('
397 397
 		jQuery(function($) {
398 398
 			$details_db = $("#install_adresse_base_hebergeur,#install_login_base_hebergeur,#install_pass_base_hebergeur");
399 399
 			$("input[type=hidden][name=server_db]").each(function(){
@@ -426,145 +426,145 @@  discard block
 block discarded – undo
426 426
 			});
427 427
 		});')
428 428
 
429
-		. ($server_db
430
-			? '<input type="hidden" name="server_db" value="' . $server_db . '" />'
431
-			. (($predef[0])
432
-				? ('<h3>' . _T('install_serveur_hebergeur') . '</h3>')
433
-				: '')
434
-			: ('<fieldset><legend>'
435
-				. _T('install_select_type_db')
436
-				. '</legend>'
437
-				. '<p class="explication">'
438
-				. _T('install_types_db_connus')
439
-				// Passer l'avertissement SQLIte en  commentaire, on pourra facilement le supprimer par la suite sans changer les traductions.
440
-				// . "<br /><small>(". _T('install_types_db_connus_avertissement') .')</small>'
441
-				. '</p>'
442
-				. "\n<div class='p'>\n<ul>\n"
443
-				. join("\n", install_select_serveur())
444
-				. "\n</ul>\n</div></fieldset>")
445
-		)
446
-		. '<div id="install_adresse_base_hebergeur">'
447
-		. '<p>' . _T('texte_connexion_mysql') . '</p>'
448
-		. ($predef[1]
449
-			? '<h3>' . _T('install_adresse_base_hebergeur') . '</h3>'
450
-			: fieldset(
451
-				_T('entree_base_donnee_1'),
452
-				[
453
-					'adresse_db' => [
454
-						'label' => $db[1],
455
-						'valeur' => $db[0]
456
-					],
457
-				]
458
-			)
459
-		)
460
-		. '</div>'
461
-
462
-		. '<div id="install_login_base_hebergeur">'
463
-		. ($predef[2]
464
-			? '<h3>' . _T('install_login_base_hebergeur') . '</h3>'
465
-			: fieldset(
466
-				_T('entree_login_connexion_1'),
467
-				[
468
-					'login_db' => [
469
-						'label' => $login[1],
470
-						'valeur' => $login[0]
471
-					],
472
-				]
473
-			)
474
-		)
475
-		. '</div>'
476
-
477
-		. '<div id="install_pass_base_hebergeur">'
478
-		. ($predef[3]
479
-			? '<h3>' . _T('install_pass_base_hebergeur') . '</h3>'
480
-			: fieldset(
481
-				_T('entree_mot_passe_1'),
482
-				[
483
-					'pass_db' => [
484
-						'label' => $pass[1],
485
-						'valeur' => $pass[0]
486
-					],
487
-				]
488
-			)
489
-		)
490
-		. '</div>'
491
-
492
-		. bouton_suivant()));
429
+        . ($server_db
430
+            ? '<input type="hidden" name="server_db" value="' . $server_db . '" />'
431
+            . (($predef[0])
432
+                ? ('<h3>' . _T('install_serveur_hebergeur') . '</h3>')
433
+                : '')
434
+            : ('<fieldset><legend>'
435
+                . _T('install_select_type_db')
436
+                . '</legend>'
437
+                . '<p class="explication">'
438
+                . _T('install_types_db_connus')
439
+                // Passer l'avertissement SQLIte en  commentaire, on pourra facilement le supprimer par la suite sans changer les traductions.
440
+                // . "<br /><small>(". _T('install_types_db_connus_avertissement') .')</small>'
441
+                . '</p>'
442
+                . "\n<div class='p'>\n<ul>\n"
443
+                . join("\n", install_select_serveur())
444
+                . "\n</ul>\n</div></fieldset>")
445
+        )
446
+        . '<div id="install_adresse_base_hebergeur">'
447
+        . '<p>' . _T('texte_connexion_mysql') . '</p>'
448
+        . ($predef[1]
449
+            ? '<h3>' . _T('install_adresse_base_hebergeur') . '</h3>'
450
+            : fieldset(
451
+                _T('entree_base_donnee_1'),
452
+                [
453
+                    'adresse_db' => [
454
+                        'label' => $db[1],
455
+                        'valeur' => $db[0]
456
+                    ],
457
+                ]
458
+            )
459
+        )
460
+        . '</div>'
461
+
462
+        . '<div id="install_login_base_hebergeur">'
463
+        . ($predef[2]
464
+            ? '<h3>' . _T('install_login_base_hebergeur') . '</h3>'
465
+            : fieldset(
466
+                _T('entree_login_connexion_1'),
467
+                [
468
+                    'login_db' => [
469
+                        'label' => $login[1],
470
+                        'valeur' => $login[0]
471
+                    ],
472
+                ]
473
+            )
474
+        )
475
+        . '</div>'
476
+
477
+        . '<div id="install_pass_base_hebergeur">'
478
+        . ($predef[3]
479
+            ? '<h3>' . _T('install_pass_base_hebergeur') . '</h3>'
480
+            : fieldset(
481
+                _T('entree_mot_passe_1'),
482
+                [
483
+                    'pass_db' => [
484
+                        'label' => $pass[1],
485
+                        'valeur' => $pass[0]
486
+                    ],
487
+                ]
488
+            )
489
+        )
490
+        . '</div>'
491
+
492
+        . bouton_suivant()));
493 493
 }
494 494
 
495 495
 // 4 valeurs qu'on reconduit d'un script a l'autre
496 496
 // sauf s'ils sont predefinis.
497 497
 
498 498
 function predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) {
499
-	return ((defined('_INSTALL_HOST_DB'))
500
-		? ''
501
-		: "\n<input type='hidden' name='adresse_db'  value=\"" . spip_htmlspecialchars($adresse_db) . '" />'
502
-	)
503
-	. ((defined('_INSTALL_USER_DB'))
504
-		? ''
505
-		: "\n<input type='hidden' name='login_db' value=\"" . spip_htmlspecialchars($login_db) . '" />'
506
-	)
507
-	. ((defined('_INSTALL_PASS_DB'))
508
-		? ''
509
-		: "\n<input type='hidden' name='pass_db' value=\"" . spip_htmlspecialchars($pass_db) . '" />'
510
-	)
511
-
512
-	. ((defined('_INSTALL_SERVER_DB'))
513
-		? ''
514
-		: "\n<input type='hidden' name='server_db' value=\"" . spip_htmlspecialchars($server_db) . '" />'
515
-	);
499
+    return ((defined('_INSTALL_HOST_DB'))
500
+        ? ''
501
+        : "\n<input type='hidden' name='adresse_db'  value=\"" . spip_htmlspecialchars($adresse_db) . '" />'
502
+    )
503
+    . ((defined('_INSTALL_USER_DB'))
504
+        ? ''
505
+        : "\n<input type='hidden' name='login_db' value=\"" . spip_htmlspecialchars($login_db) . '" />'
506
+    )
507
+    . ((defined('_INSTALL_PASS_DB'))
508
+        ? ''
509
+        : "\n<input type='hidden' name='pass_db' value=\"" . spip_htmlspecialchars($pass_db) . '" />'
510
+    )
511
+
512
+    . ((defined('_INSTALL_SERVER_DB'))
513
+        ? ''
514
+        : "\n<input type='hidden' name='server_db' value=\"" . spip_htmlspecialchars($server_db) . '" />'
515
+    );
516 516
 }
517 517
 
518 518
 // presentation des bases existantes
519 519
 
520 520
 function install_etape_liste_bases($server_db, $login_db, $disabled = []) {
521
-	$bases = $checked = [];
522
-	$noms = sql_listdbs($server_db);
523
-	if (!$noms) {
524
-		return '';
525
-	}
526
-
527
-	foreach ($noms as $nom) {
528
-		$id = spip_htmlspecialchars($nom);
529
-		$dis = in_array($nom, $disabled) ? " disabled='disabled'" : '';
530
-		$base = ' name="choix_db" value="'
531
-			. $nom
532
-			. '"'
533
-			. $dis
534
-			. " type='radio' id='$id'";
535
-		$label = "<label for='$id'>"
536
-			. ($dis ? "<i>$nom</i>" : $nom)
537
-			. '</label>';
538
-
539
-		if (
540
-			!$checked and !$dis and
541
-			(($nom == $login_db) or
542
-				($GLOBALS['table_prefix'] == $nom))
543
-		) {
544
-			$checked = "<input$base checked='checked' />\n$label";
545
-		} else {
546
-			$bases[] = "<input$base />\n$label";
547
-		}
548
-	}
549
-
550
-	if (!$bases && !$checked) {
551
-		return false;
552
-	}
553
-
554
-	if ($checked) {
555
-		array_unshift($bases, $checked);
556
-		$checked = true;
557
-	}
558
-
559
-	return [$checked, $bases];
521
+    $bases = $checked = [];
522
+    $noms = sql_listdbs($server_db);
523
+    if (!$noms) {
524
+        return '';
525
+    }
526
+
527
+    foreach ($noms as $nom) {
528
+        $id = spip_htmlspecialchars($nom);
529
+        $dis = in_array($nom, $disabled) ? " disabled='disabled'" : '';
530
+        $base = ' name="choix_db" value="'
531
+            . $nom
532
+            . '"'
533
+            . $dis
534
+            . " type='radio' id='$id'";
535
+        $label = "<label for='$id'>"
536
+            . ($dis ? "<i>$nom</i>" : $nom)
537
+            . '</label>';
538
+
539
+        if (
540
+            !$checked and !$dis and
541
+            (($nom == $login_db) or
542
+                ($GLOBALS['table_prefix'] == $nom))
543
+        ) {
544
+            $checked = "<input$base checked='checked' />\n$label";
545
+        } else {
546
+            $bases[] = "<input$base />\n$label";
547
+        }
548
+    }
549
+
550
+    if (!$bases && !$checked) {
551
+        return false;
552
+    }
553
+
554
+    if ($checked) {
555
+        array_unshift($bases, $checked);
556
+        $checked = true;
557
+    }
558
+
559
+    return [$checked, $bases];
560 560
 }
561 561
 
562 562
 function install_propager($hidden) {
563
-	$res = '';
564
-	foreach ($hidden as $k) {
565
-		$v = spip_htmlentities(_request($k));
566
-		$res .= "<input type='hidden' name='$k' value='$v' />";
567
-	}
563
+    $res = '';
564
+    foreach ($hidden as $k) {
565
+        $v = spip_htmlentities(_request($k));
566
+        $res .= "<input type='hidden' name='$k' value='$v' />";
567
+    }
568 568
 
569
-	return $res;
569
+    return $res;
570 570
 }
Please login to merge, or discard this patch.