diff --git a/htdocs/install/etape0.php b/htdocs/install/etape0.php index 44867a7f99f..7486be2841a 100644 --- a/htdocs/install/etape0.php +++ b/htdocs/install/etape0.php @@ -1,6 +1,6 @@ - * Copyright (C) 2007 Laurent Destailleur +/* Copyright (C) 2007 Cyrille de Lambert + * Copyright (C) 2007-2009 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ /** * \file htdocs/install/etape0.php * \ingroup install - * \brief Permet d'afficher et de confirmer le charset par rapport aux informations précédentes -> sélection suite à connexion' + * \brief Show and ask charset for database * \version $Id$ */ @@ -28,6 +28,10 @@ define('DONOTLOADCONF',1); // To avoid loading conf by file inc.php include_once("./inc.php"); +//print ">> ".$conf->db->character_set; +//print ">> ".$conf->db->dolibarr_main_db_collation; + + $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto'); $langs->setDefaultLang($setuplang); @@ -37,10 +41,10 @@ $langs->load("errors"); $error = 0; -// Récuparation des information de connexion +// Recuparation des information de connexion $userroot=isset($_POST["db_user_root"])?$_POST["db_user_root"]:""; $passroot=isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:""; -// Répertoire des pages dolibarr +// Repertoire des pages dolibarr $main_dir=isset($_POST["main_dir"])?trim($_POST["main_dir"]):''; // Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard. @@ -55,7 +59,7 @@ dolibarr_install_syslog("etape0: Entering etape0.php page"); pHeader($langs->trans("ConfigurationFile"),"etape1"); -// On reporte champ formulaire précédent pour propagation +// On reporte champ formulaire pr�c�dent pour propagation if ($_POST["action"] == "set") { umask(0); @@ -187,7 +191,7 @@ else } /* - * Si creation database demandée, il est possible de faire un choix + * Si creation database demandee, il est possible de faire un choix */ $disabled=""; if (! $error && ! empty($_POST["db_create_database"])) @@ -224,8 +228,17 @@ if (! $error && $db->connected) getDefaultCharacterSetDatabase(); - $defaultCollationConnection=$db->getDefaultCollationDatabase(); + if (! empty($_POST["db_create_database"])) // If we create database, we force default value + { + $defaultCharacterSet=$db->forcecharset; + $defaultCollationConnection=$db->forcecollate; + } + else // If already created, we take current value + { + $defaultCharacterSet=$db->getDefaultCharacterSetDatabase(); + $defaultCollationConnection=$db->getDefaultCollationDatabase(); + } + $listOfCharacterSet=$db->getListOfCharacterSet(); $listOfCollation=$db->getListOfCollation(); diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php index 567979878d1..b6bc5f61e8f 100644 --- a/htdocs/install/etape1.php +++ b/htdocs/install/etape1.php @@ -22,7 +22,7 @@ /** \file htdocs/install/etape1.php \ingroup install - \brief Génère le fichier conf.php avec les informations issues de l'étape précédente + \brief Build conf file \version $Id$ */ @@ -49,7 +49,7 @@ pHeader($langs->trans("ConfigurationFile"),"etape2"); $error = 0; -// Répertoire des pages dolibarr +// R�pertoire des pages dolibarr $main_dir=isset($_POST["main_dir"])?trim($_POST["main_dir"]):''; // On supprime / de fin dans main_dir @@ -64,7 +64,7 @@ if (substr($_POST["main_url"], strlen($_POST["main_url"]) -1) == "/") $_POST["main_url"] = substr($_POST["main_url"], 0, strlen($_POST["main_url"])-1); } -// Répertoire des documents générés (factures, etc...) +// R�pertoire des documents g�n�r�s (factures, etc...) $main_data_dir=isset($_POST["main_data_dir"])?$_POST["main_data_dir"]:''; if (! $main_data_dir) { $main_data_dir="$main_dir/documents"; } @@ -120,7 +120,7 @@ if ($_POST["action"] == "set") // Create subdirectory main_data_dir if (! $error) { - // Répertoire des documents + // R�pertoire des documents if (! is_dir($main_data_dir)) { create_exdir($main_data_dir); @@ -138,7 +138,7 @@ if ($_POST["action"] == "set") } else { - // Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre téléchargés en passant outre l'authentification + // Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre t�l�charg�s en passant outre l'authentification $dir[0] = "$main_data_dir/facture"; $dir[1] = "$main_data_dir/users"; $dir[2] = "$main_data_dir/propale"; @@ -149,7 +149,7 @@ if ($_POST["action"] == "set") $dir[7] = "$main_data_dir/rss"; $dir[8] = "$main_data_dir/logo"; - // Boucle sur chaque répertoire de dir[] pour les créer s'ils nexistent pas + // Boucle sur chaque r�pertoire de dir[] pour les cr�er s'ils nexistent pas for ($i = 0 ; $i < sizeof($dir) ; $i++) { if (is_dir($dir[$i])) @@ -203,7 +203,7 @@ if ($_POST["action"] == "set") /** - * Si creation utilisateur admin demandée, on le crée + * Si creation utilisateur admin demand�e, on le cr�e */ if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on") { @@ -362,7 +362,7 @@ if ($_POST["action"] == "set") /* - * On test maintenant l'accès par le user admin dolibarr + * On test maintenant l'acc�s par le user admin dolibarr */ if (! $error) { @@ -373,7 +373,7 @@ if ($_POST["action"] == "set") if ($db->connected == 1) { - // si accès serveur ok et accès base ok, tout est ok, on ne va pas plus loin, on a même pas utilisé le compte root. + // si acc�s serveur ok et acc�s base ok, tout est ok, on ne va pas plus loin, on a m�me pas utilis� le compte root. if ($db->database_selected == 1) { dolibarr_install_syslog("etape1: connexion to server by user ".$conf->db->user." is ok", LOG_DEBUG); @@ -413,8 +413,8 @@ if ($_POST["action"] == "set") print ""; // Affiche aide diagnostique - print '
Vérifier que le nom de base "'.$dolibarr_main_db_name.'" est correct.
'; - print 'Si ce nom est correct et que cette base n\'existe pas déjà, vous devez cocher l\'option "Créer la base de donnée".
'; + print '
V�rifier que le nom de base "'.$dolibarr_main_db_name.'" est correct.
'; + print 'Si ce nom est correct et que cette base n\'existe pas d�j�, vous devez cocher l\'option "Cr�er la base de donn�e".
'; print $langs->trans("ErrorGoBackAndCorrectParameters").'

'; print ''; diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index 6d935684aca..cfe5c9fb75d 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -64,6 +64,7 @@ else $includeconferror=''; $conffile = "../conf/conf.php"; + if (! defined('DONOTLOADCONF') && file_exists($conffile)) { $result=include_once($conffile); // Load conf file @@ -115,10 +116,11 @@ 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 (empty($conf->file->character_set_client)) $conf->file->character_set_client="UTF-8"; -if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='latin1_swedish_ci'; -if (empty($conf->db->dolibarr_main_db_encryption)) $conf->db->dolibarr_main_db_encryption=0; -if (empty($conf->db->dolibarr_main_db_cryptkey)) $conf->db->dolibarr_main_db_cryptkey=''; +if (empty($conf->file->character_set_client)) $conf->file->character_set_client="UTF-8"; +if (empty($conf->db->character_set)) $conf->db->character_set='utf8'; +if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_general_ci'; +if (empty($conf->db->dolibarr_main_db_encryption)) $conf->db->dolibarr_main_db_encryption=0; +if (empty($conf->db->dolibarr_main_db_cryptkey)) $conf->db->dolibarr_main_db_cryptkey=''; if (empty($conf->db->user)) $conf->db->user=''; @@ -214,9 +216,9 @@ function conf($dolibarr_main_document_root) if (empty($character_set_client)) $character_set_client="UTF-8"; $conf->file->character_set_client=strtoupper($character_set_client); - if (empty($dolibarr_main_db_charset)) $dolibarr_main_db_charset='latin1'; - $conf->db->character_set=$dolibarr_main_db_charset; - if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation='latin1_swedish_ci'; + if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set='latin1'; // Old installation + $conf->db->character_set=$dolibarr_main_db_character_set; + if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation='latin1_swedish_ci'; // Old installation $conf->db->dolibarr_main_db_collation=$dolibarr_main_db_collation; if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0; $conf->db->dolibarr_main_db_encryption = $dolibarr_main_db_encryption; diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php index de9a673b1b2..7e4c314e61e 100644 --- a/htdocs/lib/databases/mysql.lib.php +++ b/htdocs/lib/databases/mysql.lib.php @@ -41,9 +41,9 @@ class DoliDb //! Database type var $type='mysql'; //! Charset used to force charset when creating database - var $forcecharset='latin1'; + var $forcecharset='utf8'; // latin1, utf8 //! Collate used to force collate when creating database - var $forcecollate='latin1_swedish_ci'; + var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci //! Version min database var $versionmin=array(3,1,0); //! Resultset of last request diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php index 27201e0eb45..b99f00e484e 100644 --- a/htdocs/lib/databases/mysqli.lib.php +++ b/htdocs/lib/databases/mysqli.lib.php @@ -1,7 +1,7 @@ * Copyright (C) 2002-2005 Rodolphe Quiedeville - * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2004-2009 Laurent Destailleur * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2005-2009 Regis Houssin * @@ -42,9 +42,9 @@ class DoliDb //! Database type var $type='mysqli'; //! Charset used to force charset when creating database - var $forcecharset='latin1'; + var $forcecharset='utf8'; // latin1, utf8 //! Collate used to force collate when creating database - var $forcecollate='latin1_swedish_ci'; + var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci //! Version min database var $versionmin=array(4,1,0); //! Resultset of last request diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index feb2d1b6cb3..1bd684d2436 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -132,11 +132,11 @@ $conf->db->user = $dolibarr_main_db_user; $conf->db->pass = $dolibarr_main_db_pass; if (empty($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; -if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set='latin1'; -$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($dolibarr_main_db_collation)) $dolibarr_main_db_collation='latin1_swedish_ci'; +if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set='latin1'; // Old installation +$conf->db->character_set=$dolibarr_main_db_character_set; +if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation='latin1_swedish_ci'; // Old installation $conf->db->dolibarr_main_db_collation=$dolibarr_main_db_collation; if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0; $conf->db->dolibarr_main_db_encryption = $dolibarr_main_db_encryption;