Prise en compte du charset pour la création de la base de données - Fin

This commit is contained in:
cdelambert 2007-07-14 20:36:31 +00:00
parent 2dfc9e6177
commit 637b74516c
8 changed files with 36 additions and 17 deletions

View File

@ -137,7 +137,6 @@ if ($db->connected)
$listOfCharacterSet=$db->getListOfCharacterSet(); $listOfCharacterSet=$db->getListOfCharacterSet();
$listOfCollation=$db->getListOfCollation(); $listOfCollation=$db->getListOfCollation();
if ($defaultCharacterSet)
{ {
?> ?>
<tr> <tr>
@ -161,10 +160,13 @@ if ($db->connected)
print '<option value="'.$characterSet['charset'].'" '.$selected.'>'.$characterSet['charset'].' ('.$characterSet['description'].')</option>'; print '<option value="'.$characterSet['charset'].'" '.$selected.'>'.$characterSet['charset'].' ('.$characterSet['description'].')</option>';
} }
print '</select>'; print '</select>';
if ($disabled=="disabled"){
print '<input type="hidden" name="character_set_database" value="'.$defaultCharacterSet.'">';
}
} }
else else
{ {
print '<input name="character_set_database" '.$disabled.' value="'.$defaultCharacterSet.'">'; print '<input type="text" name="character_set_database" value="'.$defaultCharacterSet.'">';
} }
?> ?>
</td> </td>
@ -197,10 +199,13 @@ if ($db->connected)
print '<option value="'.$collation['collation'].'" '.$selected.'>'.$collation['collation'].'</option>'; print '<option value="'.$collation['collation'].'" '.$selected.'>'.$collation['collation'].'</option>';
} }
print '</select>'; print '</select>';
if ($disabled=="disabled"){
print '<input type="hidden" name="collation_connection" value="'.$defaultCollationConnection.'">';
}
} }
else else
{ {
print '<input type="hidden" name="collation_connection" value="'.$collation['collation'].'">'; print '<input type="text" name="collation_connection" value="'.$defaultCollationConnection.'">';
} }
?> ?>
</td> </td>

View File

@ -31,7 +31,6 @@
define('DONOTLOADCONF',1); // To avoid loading conf by file inc..php define('DONOTLOADCONF',1); // To avoid loading conf by file inc..php
include_once("./inc.php"); include_once("./inc.php");
$setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto'); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto');
$langs->setDefaultLang($setuplang); $langs->setDefaultLang($setuplang);
@ -67,6 +66,9 @@ if (! $main_data_dir) { $main_data_dir="$main_dir/documents"; }
/* /*
* Actions * Actions
*/ */
if ($_POST["action"] == "set") if ($_POST["action"] == "set")
{ {
umask(0); umask(0);
@ -166,7 +168,6 @@ if ($_POST["action"] == "set")
if (file_exists("$conffile")) if (file_exists("$conffile"))
{ {
include("$conffile"); // On force rechargement. Ne pas mettre include_once ! include("$conffile"); // On force rechargement. Ne pas mettre include_once !
print "<tr><td>".$langs->trans("ConfigurationSaving")."</td><td>".$langs->trans("OK")."</td>";
} }
else else
{ {
@ -249,14 +250,19 @@ if ($_POST["action"] == "set")
*/ */
if (! $error) if (! $error)
{ {
include_once($dolibarr_main_document_root . "/conf/conf.class.php");
$conf = new Conf(); $conf = new Conf();
$conf->db->type = trim($dolibarr_main_db_type); $conf->db->type = trim($dolibarr_main_db_type);
$conf->db->host = trim($dolibarr_main_db_host); $conf->db->host = trim($dolibarr_main_db_host);
$conf->db->name = trim($dolibarr_main_db_name); $conf->db->name = trim($dolibarr_main_db_name);
$conf->db->user = trim($dolibarr_main_db_user); $conf->db->user = trim($dolibarr_main_db_user);
$conf->db->pass = trim($dolibarr_main_db_pass); $conf->db->pass = trim($dolibarr_main_db_pass);
if (! isset($character_set_client) || ! $character_set_client) $character_set_client='ISO-8859-1';
$conf->character_set_client=trim($character_set_client);
if (! isset($dolibarr_main_db_charset) && ! $dolibarr_main_db_charset) $dolibarr_main_db_charset='latin1';
$conf->db->character_set=trim($dolibarr_main_db_charset);
if (! isset($collation_connection) || ! $collation_connection) $collation_connection='latin1_swedish_ci';
$conf->db->collation_connection=trim($collation_connection);
$userroot=isset($_POST["db_user_root"])?$_POST["db_user_root"]:""; $userroot=isset($_POST["db_user_root"])?$_POST["db_user_root"]:"";
$passroot=isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:""; $passroot=isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:"";
@ -360,6 +366,7 @@ if ($_POST["action"] == "set")
if ($db->connected) if ($db->connected)
{ {
if ($db->DDLCreateDb($dolibarr_main_db_name)) if ($db->DDLCreateDb($dolibarr_main_db_name))
{ {
print '<tr><td>'; print '<tr><td>';

View File

@ -27,7 +27,6 @@
*/ */
include_once("./inc.php"); include_once("./inc.php");
if (file_exists($conffile)) include_once($conffile);
if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_'; if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_';
define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix); define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix);
require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php"); require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");

View File

@ -30,7 +30,6 @@
include_once("./inc.php"); include_once("./inc.php");
if (file_exists($conffile)) include_once($conffile);
if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_'; if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_';
define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix); define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix);
require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php"); require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");

View File

@ -54,8 +54,18 @@ if (file_exists($conffile))
{ {
require_once($dolibarr_main_document_root . "/conf/conf.class.php"); require_once($dolibarr_main_document_root . "/conf/conf.class.php");
$conf=new Conf(); $conf=new Conf();
$conf = new Conf();
$conf->db->type = trim($dolibarr_main_db_type);
$conf->db->host = trim($dolibarr_main_db_host);
$conf->db->name = trim($dolibarr_main_db_name);
$conf->db->user = trim($dolibarr_main_db_user);
$conf->db->pass = trim($dolibarr_main_db_pass);
if (! isset($character_set_client) || ! $character_set_client) $character_set_client='ISO-8859-1'; if (! isset($character_set_client) || ! $character_set_client) $character_set_client='ISO-8859-1';
$conf->character_set_client=$character_set_client; $conf->character_set_client=$character_set_client;
if (! isset($dolibarr_main_db_charset) && ! $dolibarr_main_db_charset) $dolibarr_main_db_charset='latin1';
$conf->db->character_set=$dolibarr_main_db_charset;
if (! isset($collation_connection) || ! $collation_connection) $collation_connection='latin1_swedish_ci';
$conf->db->collation_connection=$collation_connection;
} }
if ($dolibarr_main_document_root && $dolibarr_main_db_type && ! defined('DONOTLOADCONF')) if ($dolibarr_main_document_root && $dolibarr_main_db_type && ! defined('DONOTLOADCONF'))
{ {
@ -135,7 +145,6 @@ function pHeader($soutitre,$next,$action='set')
print '<table class="main" width="100%"><tr><td>'; print '<table class="main" width="100%"><tr><td>';
print '<table class="main-inside" width="100%"><tr><td>'; print '<table class="main-inside" width="100%"><tr><td>';
} }
function pFooter($nonext=0,$setuplang='') function pFooter($nonext=0,$setuplang='')

View File

@ -902,7 +902,7 @@ class DoliDb
} }
function getDefaultCollationConnection(){ function getDefaultCollationConnection(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_connection\''); $resql=$this->query('SHOW VARIABLES LIKE \'collation_database\'');
if (!$resql) if (!$resql)
{ {
// version Mysql < 4.1.1 // version Mysql < 4.1.1

View File

@ -131,8 +131,8 @@ class DoliDb
$this->db_user=$dolibarr_main_db_user; $this->db_user=$dolibarr_main_db_user;
} }
*/ */
$this->forcecharset=$conf->character_set_client; $this->forcecharset=$conf->db->character_set;
$this->forcecollate=$conf->collation_connection; $this->forcecollate=$conf->db->collation_connection;
$this->db_user=$conf->db->user; $this->db_user=$conf->db->user;
$this->transaction_opened=0; $this->transaction_opened=0;
@ -905,7 +905,7 @@ class DoliDb
} }
function getDefaultCollationConnection(){ function getDefaultCollationConnection(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_connection\''); $resql=$this->query('SHOW VARIABLES LIKE \'collation_database\'');
if (!$resql) if (!$resql)
{ {
// version Mysql < 4.1.1 // version Mysql < 4.1.1

View File

@ -112,15 +112,15 @@ $conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass; $conf->db->pass = $dolibarr_main_db_pass;
if (! isset($dolibarr_main_db_type) && ! $dolibarr_main_db_type) $dolibarr_main_db_type='mysql'; // Pour compatibilite avec anciennes configs, si non defini, on prend 'mysql' if (! isset($dolibarr_main_db_type) && ! $dolibarr_main_db_type) $dolibarr_main_db_type='mysql'; // Pour compatibilite avec anciennes configs, si non defini, on prend 'mysql'
$conf->db->type = $dolibarr_main_db_type; $conf->db->type = $dolibarr_main_db_type;
if (! isset($dolibarr_main_db_charset) && ! $dolibarr_main_db_charset) $dolibarr_main_db_charset='ISO-8859-1'; // Pour compatibilite avec anciennes configs, si non defini, on prend 'mysql' if (! isset($dolibarr_main_db_charset) && ! $dolibarr_main_db_charset) $dolibarr_main_db_charset='latin1';
$conf->db->character_set=$dolibarr_main_db_charset; $conf->db->character_set=$dolibarr_main_db_charset;
if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_'; if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_';
$conf->db->prefix = $dolibarr_main_db_prefix; $conf->db->prefix = $dolibarr_main_db_prefix;
// Identifiant propre au client // Identifiant propre au client
if (! isset($character_set_client) || ! $character_set_client) $character_set_client='ISO-8859-1'; if (! isset($character_set_client) || ! $character_set_client) $character_set_client='ISO-8859-1';
$conf->character_set_client=$character_set_client; $conf->db->character_set_client=$character_set_client;
if (! isset($collation_connection) || ! $collation_connection) $collation_connection='latin1_swedish_ci'; if (! isset($collation_connection) || ! $collation_connection) $collation_connection='latin1_swedish_ci';
$conf->collation_connection=$collation_connection; $conf->db->collation_connection=$collation_connection;
// Identifiant autres // Identifiant autres
$conf->main_authentication = $dolibarr_main_authentication; $conf->main_authentication = $dolibarr_main_authentication;