Fix: On fait bien la distinction entre le charset et collation du fichier de config avec le charset et collation de la base.

This commit is contained in:
Laurent Destailleur 2007-12-21 19:14:11 +00:00
parent 3f7ad505ad
commit 76f034ded6
10 changed files with 51 additions and 22 deletions

View File

@ -131,6 +131,7 @@ $configfilelib=array(
$langs->trans("URLRoot"),
$langs->trans("DocumentRootServer"),
$langs->trans("DataRootServer"),
'separator',
$langs->trans("DatabaseServer"),
$langs->trans("DatabaseName"),
$langs->trans("DriverType"),

View File

@ -96,10 +96,22 @@ $dolibarr_main_db_type="";
# dolibarr_main_db_character_set
# Database character set used to store data.
# Default value: depends on database driver
# Examples:
# dolibarr_main_db_character_set="latin1";
#
$dolibarr_main_db_character_set="latin1";
# dolibarr_main_db_collation
# Database character set used to sort data.
# Default value: depends on database driver
# Examples:
# dolibarr_main_db_collation="latin1_swedish_ci";
#
$dolibarr_main_db_collation="latin1_swedish_ci";
# character_set_client
# Page code for HTML outputs.
# Default value: ISO-8859-1

View File

@ -166,7 +166,7 @@ if (! $error && $db->connected)
<?php
$defaultCharacterSet=$db->getDefaultCharacterSetDatabase();
$defaultCollationConnection=$db->getDefaultCollationConnection();
$defaultCollationConnection=$db->getDefaultCollationDatabase();
$listOfCharacterSet=$db->getListOfCharacterSet();
$listOfCollation=$db->getListOfCollation();
@ -217,7 +217,7 @@ if (! $error && $db->connected)
<?php
if (sizeof($listOfCollation))
{
print '<select name="collation_connection" '.$disabled.'>';
print '<select name="dolibarr_main_db_collation" '.$disabled.'>';
$selected="";
foreach ($listOfCollation as $collation)
{
@ -233,12 +233,12 @@ if (! $error && $db->connected)
}
print '</select>';
if ($disabled=="disabled"){
print '<input type="hidden" name="collation_connection" value="'.$defaultCollationConnection.'">';
print '<input type="hidden" name="dolibarr_main_db_collation" value="'.$defaultCollationConnection.'">';
}
}
else
{
print '<input type="text" name="collation_connection" value="'.$defaultCollationConnection.'">';
print '<input type="text" name="dolibarr_main_db_collation" value="'.$defaultCollationConnection.'">';
}
?>
</td>

View File

@ -142,7 +142,7 @@ if ($_POST["action"] == "set")
fputs($fp, '$character_set_client="'.$_POST["character_set_client"].'";');
fputs($fp,"\n");
fputs($fp, '$collation_connection="'.$_POST["collation_connection"].'";');
fputs($fp, '$dolibarr_main_db_collation="'.$_POST["dolibarr_main_db_collation"].'";');
fputs($fp,"\n");
/* Authentication */

View File

@ -106,7 +106,7 @@ if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_m
define('MAIN_DB_PREFIX',(isset($dolibarr_main_db_prefix)?$dolibarr_main_db_prefix:''));
define('DOL_DATA_ROOT',(isset($dolibarr_main_data_root)?$dolibarr_main_data_root:''));
if (! isset($conf->character_set_client)) $conf->character_set_client='iso-8859-1';
if (! isset($conf->db->collation_connection)) $conf->db->collation_connection='latin1_swedish_ci';
if (! isset($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='latin1_swedish_ci';
if (! isset($conf->db->user)) $conf->db->user='';
// Forcage constante LOG
@ -175,8 +175,8 @@ function conf($dolibarr_main_document_root)
$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 (! isset($dolibarr_main_db_collation) || ! $dolibarr_main_db_collation) $dolibarr_main_db_collation='latin1_swedish_ci';
$conf->db->dolibarr_main_db_collation=$dolibarr_main_db_collation;
return 1;
}

View File

@ -856,7 +856,7 @@ class DoliDb
return ''; // attente débuggage
}
function getDefaultCollationConnection(){
function getDefaultCollationDatabase(){
$resql=$this->query("SELECT SERVERPROPERTY('collation')");
if (!$resql)
{

View File

@ -122,15 +122,15 @@ class DoliDb
if (file_exists($conffile)) {
include($conffile);
$this->forcecharset=$character_set_database;
$this->forcecollate=$collation_connection;
$this->forcecollate=$dolibarr_main_db_collation;
$this->db_user=$dolibarr_main_db_user;
}
*/
if (isset($conf->db->character_set) && $conf->db->character_set) {
$this->forcecharset=$conf->db->character_set;
}
if (isset($conf->db->collation_connection) && $conf->db->collation_connection) {
$this->forcecollate=$conf->db->collation_connection;
if (isset($conf->db->dolibarr_main_db_collation) && $conf->db->dolibarr_main_db_collation) {
$this->forcecollate=$conf->db->dolibarr_main_db_collation;
}
$this->db_user=$conf->db->user;
@ -879,6 +879,10 @@ class DoliDb
return 1;
}
/**
* \brief Return charset used to store data in database
* \return string Charset
*/
function getDefaultCharacterSetDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'character_set_database\'');
if (!$resql)
@ -910,7 +914,11 @@ class DoliDb
return $liste;
}
function getDefaultCollationConnection(){
/**
* \brief Return collation used in database
* \return string Collation value
*/
function getDefaultCollationDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_database\'');
if (!$resql)
{

View File

@ -121,15 +121,15 @@ class DoliDb
if (file_exists($conffile)) {
include($conffile);
$this->forcecharset=$character_set_database;
$this->forcecollate=$collation_connection;
$this->forcecollate=$dolibarr_main_db_collation;
$this->db_user=$dolibarr_main_db_user;
}
*/
if (isset($conf->db->character_set) && $conf->db->character_set) {
$this->forcecharset=$conf->db->character_set;
}
if (isset($conf->db->collation_connection) && $conf->db->collation_connection) {
$this->forcecollate=$conf->db->collation_connection;
if (isset($conf->db->dolibarr_main_db_collation) && $conf->db->dolibarr_main_db_collation) {
$this->forcecollate=$conf->db->dolibarr_main_db_collation;
}
$this->db_user=$conf->db->user;
@ -892,6 +892,10 @@ class DoliDb
return 1;
}
/**
* \brief Return charset used to store data in database
* \return string Charset
*/
function getDefaultCharacterSetDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'character_set_database\'');
if (!$resql)
@ -923,7 +927,11 @@ class DoliDb
return $liste;
}
function getDefaultCollationConnection(){
/**
* \brief Return collation used in database
* \return string Collation value
*/
function getDefaultCollationDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_database\'');
if (!$resql)
{

View File

@ -78,12 +78,12 @@ class DoliDb
if (file_exists($conffile)) {
include($conffile);
$this->forcecharset=$character_set_database;
$this->forcecollate=$collation_connection;
$this->forcecollate=$dolibarr_main_db_collation;
$this->db_user=$dolibarr_main_db_user;
}
*/
$this->forcecharset=$conf->character_set_client;
$this->forcecollate=$conf->db->collation_connection;
$this->forcecollate=$conf->db->dolibarr_main_db_collation;
$this->db_user=$conf->db->user;
$this->transaction_opened=0;
@ -706,7 +706,7 @@ class DoliDb
return $liste;
}
function getDefaultCollationConnection(){
function getDefaultCollationDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_database\'');
if (!$resql)
{

View File

@ -127,8 +127,8 @@ if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set='lat
$conf->db->character_set=$dolibarr_main_db_character_set;
if (empty($dolibarr_main_db_prefix)) $dolibarr_main_db_prefix='llx_';
$conf->db->prefix = $dolibarr_main_db_prefix;
if (empty($collation_connection)) $collation_connection='latin1_swedish_ci';
$conf->db->collation_connection=$collation_connection;
if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation='latin1_swedish_ci';
$conf->db->dolibarr_main_db_collation=$dolibarr_main_db_collation;
// Identifiant autres
$conf->main_authentication = $dolibarr_main_authentication;
// Identifiant propre au client