diff --git a/ecrire/inc/install.php b/ecrire/inc/install.php index 34ab70ff39eb065bb0cbfa8ac8f1b439a7ab4e40..3af4aa8b6b20f74321c4a08b8a5de27c6887a4e2 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ées attribué par l\'hébergeur</b>') + :'') : ('<fieldset><legend>' ._L('Indiquer le type de base de donné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 f60830e97bc315a12af7c730cefb313d9d49c207..0ee92e08fd66a043a549247f824589890bf1f7ac 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; }