From 37afda5515651fc9ea3e55e350b777d49a8b25fb Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Thu, 20 Dec 2007 00:04:45 +0000
Subject: [PATCH] =?UTF-8?q?-=20Ne=20pas=20afficher=20le=20formulaire=20de?=
 =?UTF-8?q?=20selection=20d'un=20serveur=20de=20base=20de=20donn=C3=A9e=20?=
 =?UTF-8?q?si=20l'on=20a=20renseign=C3=A9=20=5FINSTALL=5FSERVER=5FDB=20-?=
 =?UTF-8?q?=20Cacher=20les=20param=C3=A8tres=20de=20connexion=20(adresse,?=
 =?UTF-8?q?=20user,=20pass)=20au=20serveur=20si=20SQLite=20est=20pr=C3=A9d?=
 =?UTF-8?q?=C3=A9fini=20dans=20=5FINSTALL=5FSERVEUR=5FDB=20-=20Utiliser=20?=
 =?UTF-8?q?la=20constante=20=5FECRIRE=5FINSTALL=20dans=20sqlite=20plutot?=
 =?UTF-8?q?=20que=20=5Frequest('exec')=3D=3D'install'=20afin=20de=20pouvoi?=
 =?UTF-8?q?r=20faire=20des=20installations=20automatiques=20avec=20le=20pl?=
 =?UTF-8?q?ugin=20'mutualisation'.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/install.php          | 37 ++++++++++++++++-----------------
 ecrire/req/sqlite_generique.php | 12 +++++------
 2 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/ecrire/inc/install.php b/ecrire/inc/install.php
index 34ab70ff39..3af4aa8b6b 100644
--- a/ecrire/inc/install.php
+++ b/ecrire/inc/install.php
@@ -215,24 +215,15 @@ function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape)
 	$sqlite2 = in_array(2, $versions);
 	$sqlite3 = in_array(3, $versions);
 
+	// cacher le formlaire s'il n' a qu'un serveur 
+	// ou si l'installation est predefinie avec un serveur particulier
 	if (($pg + $mysql + $sqlite2 + $sqlite3) == 1){
 		if ($mysql) 	$server_db = 'mysql';
 		if ($pg) 		$server_db = 'pg';
 		if ($sqlite2) 	$server_db = 'sqlite2';
 		if ($sqlite3) 	$server_db = 'sqlite3';
-	}
-
-	else if ($predef[0]) {
-		if (!is_string($predef[0])) {
-			$server_db = _INSTALL_SERVER_DB;
-			$m = $p = '';
-		} else {
-			$server_db ='';
-			$m = strcasecmp($predef[0], 'mysql') ? '' : " selected='selected'";
-			$p = strcasecmp($predef[0], 'pg') ? '' : " selected='selected'";
-	  		$s2 = strcasecmp($predef[0], 'sqlite2') ? '' : " selected='selected'";
-	  		$s3 = strcasecmp($predef[0], 'sqlite3') ? '' : " selected='selected'";
-		}
+	} elseif ($predef[0]) {
+		$server_db = _INSTALL_SERVER_DB;
 	}
 
 	return generer_form_ecrire('install', (
@@ -244,8 +235,13 @@ function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape)
 			:"")
 			
 	. '<script language="javascript" src=' . find_in_path('javascript/jquery.js') . '></script>'
-	. '<script language="javascript">
+	. '<script language="javascript"><!--
 		$(document).ready(function() {
+			if ($("input[@type=hidden][@name=server_db]").attr("value").match("sqlite*")){
+				$("#install_adresse_base_hebergeur").hide();
+				$("#install_login_base_hebergeur").hide();
+				$("#install_pass_base_hebergeur").hide();
+			}			
 			$("#sql_serveur_db").change(function(){
 				if ($(this).find("option:selected").attr("value").match("sqlite*")){
 					$("#install_adresse_base_hebergeur").hide();
@@ -258,24 +254,27 @@ function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape)
 				}
 			});
 		});
-		</script>'
+		// --></script>'
 	
 	. ($server_db
 		? '<input type="hidden" name="server_db" value="'.$server_db.'" />'
+			. (($predef[0])
+				?_L('<b>Serveur de base de donn&eacute;es attribu&eacute; par l\'h&eacute;bergeur</b>')
+				:'')
 		: ('<fieldset><legend>'
 		._L('Indiquer le type de base de donn&eacute;es :')
 		. "\n<select name='server_db' id='sql_serveur_db' >"
 		. ($mysql
-			? "\n<option value='mysql'$m>"._L('MySQL')."</option>"
+			? "\n<option value='mysql'>"._L('MySQL')."</option>"
 			: '')
 		. ($pg
-			? "\n<option value='pg'$p>"._L('PostGreSQL')."</option>"
+			? "\n<option value='pg'>"._L('PostGreSQL')."</option>"
 			: '')
 		. (($sqlite2)
-			? "\n<option value='sqlite2'$s2>"._L('SQLite 2')."</option>"
+			? "\n<option value='sqlite2'>"._L('SQLite 2')."</option>"
 			: '')
 		. (($sqlite3)
-			? "\n<option value='sqlite3'$s3>"._L('SQLite 3')."</option>"
+			? "\n<option value='sqlite3'>"._L('SQLite 3')."</option>"
 			: '')
 		   . "\n</select></legend></fieldset>")
 	)
diff --git a/ecrire/req/sqlite_generique.php b/ecrire/req/sqlite_generique.php
index f60830e97b..0ee92e08fd 100644
--- a/ecrire/req/sqlite_generique.php
+++ b/ecrire/req/sqlite_generique.php
@@ -51,17 +51,17 @@ function req_sqlite_dist($addr, $port, $login, $pass, $db='', $prefixe='', $ldap
 	if (!_sqlite_charger_version($sqlite_version)) {
 		spip_log("Impossible de trouver/charger le module SQLite ($sqlite_version)!");
 		return false;	
-	} 
-	
+	}
+
 	// chargement des constantes
 	// il ne faut pas definir les constantes avant d'avoir charge les modules sqlite
 	$define = "spip_sqlite".$sqlite_version."_constantes";
 	$define();
-		
+	
 	$ok = false;
 	if (!$db){
 		// si installation -> base temporaire tant qu'on ne connait pas son vrai nom
-		if (_request('exec') == 'install'){
+		if (defined('_ECRIRE_INSTALL') && _ECRIRE_INSTALL){
 			// creation d'une base temporaire pour le debut d'install
 			$tmp = _DIR_DB . "_sqlite".$sqlite_version."_install.sqlite";
 			if ($sqlite_version == 3)
@@ -602,7 +602,7 @@ function spip_sqlite_selectdb($db, $serveur='') {
 	// interdire la creation d'une nouvelle base, 
 	// sauf si on est dans l'installation
 	if (!is_file($f = _DIR_DB . $db . '.sqlite')
-		&& _request('exec')!='install')
+		&& (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL))
 		return false;
 
 	// se connecter a la base indiquee
@@ -1185,7 +1185,7 @@ class sqlite_traiter_requete{
 		$this->query = $query;
 		$this->serveur = $serveur;
 		
-		if (!($this->link = _sqlite_link($this->serveur)) && (_request('exec')!='install')){
+		if (!($this->link = _sqlite_link($this->serveur)) && (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)){
 			spip_log("Aucune connexion sqlite (link)");
 			return false;	
 		}
-- 
GitLab