Modifications pour la mise en place de l'UTF8.

A faire :
* Approfondir les test d'installation pouvant entrainer des erreurs
* Finir de complet les fichiers de langue afin de ne plus avoir de terme en dur dans les pages. Dans le cas contraire, il y a des problèmes d'affichage de caractère lorsqu'ils sont accentués
This commit is contained in:
cdelambert 2007-05-23 21:10:11 +00:00
parent 03da98e445
commit ac18091256
32 changed files with 646 additions and 58 deletions

11
.project Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>dolibarrAuguria</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -51,7 +51,7 @@ function llxHeader($head = "") {
$menu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas")); $menu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php",$langs->trans("Filehtpasswd")); $menu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php",$langs->trans("Filehtpasswd"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php",$langs->trans("MembersCards")); $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php",$langs->trans("MembersCards"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php","Etiquettes d'adhérents"); $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php",$langs->trans("MembersTickets"));
$langs->load("compta"); $langs->load("compta");
$menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Accountancy")); $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Accountancy"));

View File

@ -54,7 +54,7 @@ function llxHeader($head = "")
$menu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas")); $menu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php",$langs->trans("Filehtpasswd")); $menu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php",$langs->trans("Filehtpasswd"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php",$langs->trans("MembersCards")); $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php",$langs->trans("MembersCards"));
$menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php","Etiquettes d'adhérents"); $menu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php",$langs->trans("MembersTickets"));
$langs->load("compta"); $langs->load("compta");
$menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Accountancy")); $menu->add(DOL_URL_ROOT."/adherents/index.php",$langs->trans("Accountancy"));

View File

@ -195,7 +195,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'edit')
// Message d'accueil' // Message d'accueil'
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageHome").'</td><td>'; print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageLogin").'</td><td>';
if ($conf->fckeditor->enabled) if ($conf->fckeditor->enabled)
{ {
// Editeur wysiwyg // Editeur wysiwyg

View File

@ -743,7 +743,7 @@ class MenuLeft {
if ($conf->export->enabled && $leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export); if ($conf->export->enabled && $leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export);
if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php?leftmenu=export",$langs->trans("Filehtpasswd"),1,$user->rights->adherent->export); if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php?leftmenu=export",$langs->trans("Filehtpasswd"),1,$user->rights->adherent->export);
if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php?leftmenu=export",$langs->trans("MembersCards"),1,$user->rights->adherent->export,'_new'); if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php?leftmenu=export",$langs->trans("MembersCards"),1,$user->rights->adherent->export,'_new');
if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php?leftmenu=export","Etiquettes d'adhérents",1,$user->rights->adherent->export,'_new'); if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php?leftmenu=export",$langs->trans("MembersTickets"),1,$user->rights->adherent->export,'_new');
$newmenu->add(DOL_URL_ROOT."/public/adherents/index.php?leftmenu=member_public",$langs->trans("MemberPublicLinks")); $newmenu->add(DOL_URL_ROOT."/public/adherents/index.php?leftmenu=member_public",$langs->trans("MemberPublicLinks"));
/* /*

View File

@ -748,7 +748,7 @@ class MenuLeft {
if ($conf->export->enabled && $leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export); if ($conf->export->enabled && $leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export);
if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php?leftmenu=export",$langs->trans("Filehtpasswd"),1,$user->rights->adherent->export); if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/htpasswd.php?leftmenu=export",$langs->trans("Filehtpasswd"),1,$user->rights->adherent->export);
if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php?leftmenu=export",$langs->trans("MembersCards"),1,$user->rights->adherent->export,'_new'); if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/carte.php?leftmenu=export",$langs->trans("MembersCards"),1,$user->rights->adherent->export,'_new');
if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php?leftmenu=export","Etiquettes d'adhérents",1,$user->rights->adherent->export,'_new'); if ($leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/adherents/cartes/etiquette.php?leftmenu=export",$langs->trans("MembersTickets"),1,$user->rights->adherent->export,'_new');
$newmenu->add(DOL_URL_ROOT."/public/adherents/index.php?leftmenu=member_public",$langs->trans("MemberPublicLinks")); $newmenu->add(DOL_URL_ROOT."/public/adherents/index.php?leftmenu=member_public",$langs->trans("MemberPublicLinks"));
/* /*

View File

@ -48,7 +48,6 @@ llxHeader();
print_fiche_titre($langs->trans("HomeArea")); print_fiche_titre($langs->trans("HomeArea"));
if (defined("MAIN_MOTD") && strlen(trim(MAIN_MOTD))) if (defined("MAIN_MOTD") && strlen(trim(MAIN_MOTD)))
{ {
print '<table width="100%" class="notopnoleftnoright"><tr><td>'; print '<table width="100%" class="notopnoleftnoright"><tr><td>';

120
htdocs/install/etape0.php Normal file
View File

@ -0,0 +1,120 @@
<?php
/* Copyright (C) 2004-2007 Cyrille de Lambert <cyrille.delambert@auguria.net>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
/**
\file htdocs/install/etape1.php
\brief Pemet d'afficher et de confirmer le charset par rapport aux informations précedntes -> sélection suite à connection'
\version $Revision$
*/
define('DONOTLOADCONF',1); // To avoid loading conf by file inc..php
include_once("./inc.php");
$setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:'auto');
$langs->setDefaultLang($setuplang);
$langs->load("admin");
$langs->load("install");
pHeader($langs->trans("ConfigurationFile"),"etape1");
$error = 0;
/*
* Actions
*/
if ($_POST["action"] == "set")
{
umask(0);
foreach($_POST as $cle=>$valeur)
{
echo '<input type="hidden" name="'.$cle.'" value="'.$valeur.'">';
}
}
/**
* Récuparation 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
$main_dir=isset($_POST["main_dir"])?trim($_POST["main_dir"]):'';
/**
* Si l'utilisateur n'est pas créé déjà créé, on se connecte à l'aide du login root'
*/
require_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php");
if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
{
$databasefortest=$conf->db->name;
if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli')
{
$databasefortest='mysql';
}else{
$databasefortest='postgres';
}
$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest);
}else{
$db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"]);
}
if ($db->error)
{
print $langs->trans("ThisPHPDoesNotSupportTypeBase",$conf->db->type);
$error++;
}
/*
* Si creation database demandée, il est possible de faire un choix
*/
$disabled="";
if (! $error && (isset($_POST["db_create_database"]) && $_POST["db_create_database"] == "on"))
{
$disabled="";
}else{
$disabled="disabled";
}
if ($db->connected){
?>
<table border="0" cellpadding="1" cellspacing="0">
<tr><td valign="top" class="label" colspan="3"><?php echo $langs->trans("CharsetChoice");?></td></tr>
<tr>
<td valign="top" class="label"><?php echo $langs->trans("CharacterSetClient"); ?></td>
<td valign="top" class="label"><select name="character_set_client"/><option>ISO-8859-1</option><option>ISO-8859-15</option><option>UTF-8</option><option>cp866</option><option>cp1251</option><option>cp1252</option><option>KOI8-R</option><option>BIG5</option><option>GB2312</option><option>BIG5-HKSCS</option><option>Shift_JIS</option><option>EUC-JP</option></select></td>
<td class="label"><div class="comment"><?php echo $langs->trans("CharacterSetClientComment"); ?></div></td>
</tr>
<?php
include($_POST["db_type"].'.php');?>
<?php
}else{
if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
{
print 'Vous avez demandé la création du login Dolibarr "<b>'.$dolibarr_main_db_user.'</b>", mais pour cela, ';
print 'Dolibarr doit se connecter sur le serveur "<b>'.$dolibarr_main_db_host.'</b>" via le super utilisateur "<b>'.$userroot.'</b>".<br>';
print 'La connexion ayant échoué, les paramètres du serveur ou du super utilisateur sont peut-etre incorrects.<br>';
print $langs->trans("ErrorGoBackAndCorrectParameters").'<br><br>';
}else{
print 'La connexion ayant échoué, les paramètres de connexion de l\'utilisateur sont peut-etre incorrects.<br>';
print $langs->trans("ErrorGoBackAndCorrectParameters").'<br><br>';
}
}
pFooter($err,$setuplang);
?>

View File

@ -135,6 +135,16 @@ if ($_POST["action"] == "set")
fputs($fp, '$dolibarr_main_db_type="'.$_POST["db_type"].'";'); fputs($fp, '$dolibarr_main_db_type="'.$_POST["db_type"].'";');
fputs($fp,"\n"); fputs($fp,"\n");
/* Choix des charsets*/
fputs($fp, '$character_set_client="'.$_POST["character_set_client"].'";');
fputs($fp,"\n");
fputs($fp, '$character_set_database="'.$_POST["character_set_database"].'";');
fputs($fp,"\n");
fputs($fp, '$collation_connection="'.$_POST["collation_connection"].'";');
fputs($fp,"\n");
/* Preparation integration SMARTY */ /* Preparation integration SMARTY */
fputs($fp, '$dolibarr_smarty_libs_dir="";'); fputs($fp, '$dolibarr_smarty_libs_dir="";');
fputs($fp,"\n"); fputs($fp,"\n");
@ -260,9 +270,12 @@ if ($_POST["action"] == "set")
if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli')
{ {
$databasefortest='mysql'; $databasefortest='mysql';
}else{
$databasefortest='postgres';
} }
// Creation handler de base, verification du support et connexion // Creation handler de base, verification du support et connexion
$db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest); $db = new DoliDb($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest);
if ($db->error) if ($db->error)
{ {

View File

@ -239,6 +239,10 @@ if ($_POST["action"] == "set")
{ {
//print "<tr><td>Création des clés et index de la table $name: '$buffer'</td>"; //print "<tr><td>Création des clés et index de la table $name: '$buffer'</td>";
$requestnb++; $requestnb++;
if ($character_set_client=="UTF-8"){
$buffer=utf8_encode ($buffer);
}
if ($db->query(trim($buffer))) if ($db->query(trim($buffer)))
{ {
//print "<td>OK requete ==== $buffer</td></tr>"; //print "<td>OK requete ==== $buffer</td></tr>";

View File

@ -40,7 +40,7 @@ $langs->setDefaultLang($setuplang);
$langs->load("install"); $langs->load("install");
pHeader($langs->trans("ConfigurationFile"),"etape1"); pHeader($langs->trans("ConfigurationFile"),"etape0");
print '<table border="0" cellpadding="1" cellspacing="0">'; print '<table border="0" cellpadding="1" cellspacing="0">';
@ -76,7 +76,7 @@ if(! isset($dolibarr_main_url_root) || strlen($dolibarr_main_url_root) == 0)
$dolibarr_main_document_root = ereg_replace('[\\\/]+$','',$dolibarr_main_document_root); $dolibarr_main_document_root = ereg_replace('[\\\/]+$','',$dolibarr_main_document_root);
} }
} }
echo $PMA_MYSQL_INT_VERSION;
?> ?>
<td class="label" valign="top"><input type="text" size="60" value="<?php print $dolibarr_main_document_root; ?>" name="main_dir"> <td class="label" valign="top"><input type="text" size="60" value="<?php print $dolibarr_main_document_root; ?>" name="main_dir">
</td><td class="comment"> </td><td class="comment">

View File

@ -39,9 +39,11 @@ if (isset($_SERVER["DOCUMENT_URI"]) && $_SERVER["DOCUMENT_URI"])
$conffile = "../conf/conf.php"; $conffile = "../conf/conf.php";
$charset="ISO-8859-1";
if (file_exists($conffile)) if (file_exists($conffile))
{ {
include_once($conffile); include_once($conffile);
$charset=$character_set_client;
if ($dolibarr_main_document_root) if ($dolibarr_main_document_root)
{ {
require_once($dolibarr_main_document_root . "/conf/conf.class.php"); require_once($dolibarr_main_document_root . "/conf/conf.class.php");
@ -95,18 +97,20 @@ $bc[true]=' class="bg2"';
function pHeader($soutitre,$next,$action='set') function pHeader($soutitre,$next,$action='set')
{ {
global $charset;
global $langs; global $langs;
$langs->load("main"); $langs->load("main");
$langs->load("admin"); $langs->load("admin");
// On force contenu en ISO-8859-1 // On force contenu en ISO-8859-1
header("Content-type: text/html; charset=iso-8859-1"); header("Content-type: text/html; charset=".$charset);
//header("Content-type: text/html; charset=UTF-8"); //header("Content-type: text/html; charset=UTF-8");
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'."\n"; print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'."\n";
print '<html>'; print '<html>';
print '<head>'; print '<head>';
print '<meta http-equiv="content-type" content="text/html; charset='.$langs->trans("charset").'">'; print '<meta http-equiv="content-type" content="text/html; charset='.$charset.'">';
print '<link rel="stylesheet" type="text/css" href="./default.css">'; print '<link rel="stylesheet" type="text/css" href="./default.css">';
print '<title>'.$langs->trans("DolibarrSetup").'</title>'; print '<title>'.$langs->trans("DolibarrSetup").'</title>';
print '</head>'; print '</head>';

79
htdocs/install/mysql.php Normal file
View File

@ -0,0 +1,79 @@
<?php
/* Copyright (C) 2004-2007 Cyrille de Lambert <cyrille.delambert@auguria.net>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
$listOfCharacterSet=$db->getListOfCharacterSet();
$listOfCollation=$db->getListOfCollation();
?>
<tr>
<td valign="top" class="label"><?php echo $langs->trans("CharacterSetDatabase"); ?></td>
<td valign="top" class="label">
<?php
$listOfCharacterSet=$db->getListOfCharacterSet();
?>
<select name="character_set_database" <?php echo $disabled ?>>
<?php
$selected="";
foreach ($listOfCharacterSet as $characterSet) {
if ($db->getDefaultCharacterSetDatabase() ==$characterSet['charset'] ){
$selected="selected";
}else{
$selected="";
}
?>
<option value="<?php echo $characterSet['charset'];?>" <?php echo $selected;?>> <?php echo $characterSet['charset'];?> (<?php echo $characterSet['description'];?>)</option>
<?php
}
?>
</select>
</td>
<td class="label"><div class="comment"><?php echo $langs->trans("CharacterSetDatabaseComment"); ?></div></td>
</tr>
<tr>
<td valign="top" class="label"><?php echo $langs->trans("CollationConnection"); ?></td>
<td valign="top" class="label">
<?php
$listOfCollation=$db->getListOfCollation();
?>
<select name="collation_connection" <?php echo $disabled ?>>
<?php
$selected="";
foreach ($listOfCollation as $collation) {
if ($db->getDefaultCollationConnection() ==$collation['collation'] ){
$selected="selected";
}else{
$selected="";
}
?>
<option value="<?php echo $collation['collation'];?>" <?php echo $selected;?>> <?php echo $collation['collation'];?></option>
<?php
}
?>
</select>
<?if ($disabled && $disabled=="disabled"){
?>
<input type="hidden" name="character_set_database" value="<?php echo $collation['charset'] ?>">
<input type="hidden" name="collation_connection" value="<?php echo $collation['collation'] ?>">
<?
}
?>
</td>
<td class="label"><div class="comment"><?php echo $langs->trans("CollationConnectionComment"); ?></div></td>
</tr>

79
htdocs/install/mysqli.php Normal file
View File

@ -0,0 +1,79 @@
<?php
/* Copyright (C) 2004-2007 Cyrille de Lambert <cyrille.delambert@auguria.net>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
$listOfCharacterSet=$db->getListOfCharacterSet();
$listOfCollation=$db->getListOfCollation();
?>
<tr>
<td valign="top" class="label"><?php echo $langs->trans("CharacterSetDatabase"); ?></td>
<td valign="top" class="label">
<?php
$listOfCharacterSet=$db->getListOfCharacterSet();
?>
<select name="character_set_database" <?php echo $disabled ?>>
<?php
$selected="";
foreach ($listOfCharacterSet as $characterSet) {
if ($db->getDefaultCharacterSetDatabase() ==$characterSet['charset'] ){
$selected="selected";
}else{
$selected="";
}
?>
<option value="<?php echo $characterSet['charset'];?>" <?php echo $selected;?>> <?php echo $characterSet['charset'];?> (<?php echo $characterSet['description'];?>)</option>
<?php
}
?>
</select>
</td>
<td class="label"><div class="comment"><?php echo $langs->trans("CharacterSetDatabaseComment"); ?></div></td>
</tr>
<tr>
<td valign="top" class="label"><?php echo $langs->trans("CollationConnection"); ?></td>
<td valign="top" class="label">
<?php
$listOfCollation=$db->getListOfCollation();
?>
<select name="collation_connection" <?php echo $disabled ?>>
<?php
$selected="";
foreach ($listOfCollation as $collation) {
if ($db->getDefaultCollationConnection() ==$collation['collation'] ){
$selected="selected";
}else{
$selected="";
}
?>
<option value="<?php echo $collation['collation'];?>" <?php echo $selected;?>> <?php echo $collation['collation'];?></option>
<?php
}
?>
</select>
<?if ($disabled && $disabled=="disabled"){
?>
<input type="hidden" name="character_set_database" value="<?php echo $db->getDefaultCharacterSetDatabase() ?>">
<input type="hidden" name="collation_connection" value="<?php echo $db->getDefaultCollationConnection() ?>">
<?
}
?>
</td>
<td class="label"><div class="comment"><?php echo $langs->trans("CollationConnectionComment"); ?></div></td>
</tr>

28
htdocs/install/pgsql.php Normal file
View File

@ -0,0 +1,28 @@
<?php
/* Copyright (C) 2004-2007 Cyrille de Lambert <cyrille.delambert@auguria.net>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
?>
<tr>
<td valign="top" class="label"><?php echo $langs->trans("CharacterSetDatabase"); ?></td>
<td valign="top" class="label">
<input name="character_set_database" <?php echo $disabled ?> value="<?php echo $db->getDefaultCharacterSetDatabase()?>">
</td>
<td class="label"><div class="comment"><?php echo $langs->trans("CharacterSetDatabaseComment"); ?></div></td>
</tr>

View File

@ -30,6 +30,7 @@ NoMaxSizeByPHPLimit=Note: No limit are built in your PHP
MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
ComptaSetup=Accounting module setup ComptaSetup=Accounting module setup
UserSetup=Users' management setup UserSetup=Users' management setup
MenuSetup=Menus management setup
Setup=Setup Setup=Setup
Activation=Activation Activation=Activation
SetupShort=Setup SetupShort=Setup
@ -198,6 +199,8 @@ Module1200Name=Mantis
Module1200Desc=Mantis integration Module1200Desc=Mantis integration
Module1780Name=Categories Module1780Name=Categories
Module1780Desc=Categories' management Module1780Desc=Categories' management
Module2300Name=Menus
Module2300Desc=Menus' management
Permission11=Read invoices Permission11=Read invoices
Permission12=Create invoices Permission12=Create invoices
Permission13=Modify invoices Permission13=Modify invoices

View File

@ -4,6 +4,7 @@ PublicMembersArea=Public members area
MemberCard=Member card MemberCard=Member card
Member=Member Member=Member
Members=Members Members=Members
MembersTickets=Members Tickets
FundationMembers=Fundation members FundationMembers=Fundation members
Attributs=Attributes Attributs=Attributes
Person=Person Person=Person

View File

@ -24,6 +24,7 @@ UsePopupCalendar=Utiliser des popup pour l'introduction de dates
NextValue=Valeur suivante NextValue=Valeur suivante
ComptaSetup=Configuration du module Comptabilité ComptaSetup=Configuration du module Comptabilité
UserSetup=Configuration de la gestion des utilisateurs UserSetup=Configuration de la gestion des utilisateurs
MenuSetup=Administration des menus par base de données
Setup=Configuration Setup=Configuration
Activation=Activation Activation=Activation
SetupShort=Config SetupShort=Config
@ -112,6 +113,8 @@ Module40Name=Fournisseurs
Module40Desc=Gestion fournisseurs Module40Desc=Gestion fournisseurs
Module42Name=Logs système Module42Name=Logs système
Module42Desc=Installations de logging (logs système) Module42Desc=Installations de logging (logs système)
Module49Name=Éditeurs
Module49Desc=Gestion des éditeurs
Module50Name=Produits Module50Name=Produits
Module50Desc=Gestion des produits Module50Desc=Gestion des produits
Module52Name=Stocks Module52Name=Stocks
@ -144,6 +147,8 @@ Module200Name=LDAP
Module200Desc=Synchronisation d'annuaire LDAP Module200Desc=Synchronisation d'annuaire LDAP
Module210Name=PostNuke Module210Name=PostNuke
Module210Desc=Intégration de PostNuke Module210Desc=Intégration de PostNuke
Module240Name=Exports utilisateurs
Module240Desc= Permet exports par les utilisateurs, via un assistant, de lot de données personalisées
Module310Name=Membres Module310Name=Membres
Module310Desc=Gestion des membres de la fondation Module310Desc=Gestion des membres de la fondation
Module320Name=Flux RSS Module320Name=Flux RSS
@ -166,6 +171,10 @@ Module900Name=OSCommerce 2
Module900Desc=Interface d'affichage d'un magasin OS Commerce via les Web Services.\nCe module nécessite l'installations de composants de /oscommerce_ws/ws_server dans votre serveur OSCommerce. Lisez le fichier README dans /oscommerce_ws/ws_server. Module900Desc=Interface d'affichage d'un magasin OS Commerce via les Web Services.\nCe module nécessite l'installations de composants de /oscommerce_ws/ws_server dans votre serveur OSCommerce. Lisez le fichier README dans /oscommerce_ws/ws_server.
Module1780Name=Catégories Module1780Name=Catégories
Module1780Desc=Gestion des catégories Module1780Desc=Gestion des catégories
Module2200Name=Droit de prêts
Module2200Desc=Gestion du droit de prêts
Module2300Name=Menus
Module2300Desc=Administration des menus par base de données
Permission11=Voir les factures Permission11=Voir les factures
Permission12=Créer des factures Permission12=Créer des factures
Permission13=Modifier des factures Permission13=Modifier des factures

View File

@ -88,11 +88,12 @@ Start=D
InstallNotAllowed=Configuration non autorisée par les permissions de <b>conf.php</b> InstallNotAllowed=Configuration non autorisée par les permissions de <b>conf.php</b>
NotAvailable=Non disponible NotAvailable=Non disponible
YouMustCreateWithPermission=Vous devez créer le fichier %s et donner les permissions d'écrire dans ce fichier à votre serveur web pendant le processus d'installation. YouMustCreateWithPermission=Vous devez créer le fichier %s et donner les permissions d'écrire dans ce fichier à votre serveur web pendant le processus d'installation.
CharacterSetDatabase
CorrectProblemAndReloadPage=Corrigez le problème et <a href="%s">rechargez la page</a> (Pressez la touche F5). CorrectProblemAndReloadPage=Corrigez le problème et <a href="%s">rechargez la page</a> (Pressez la touche F5).
AlreadyDone=Déjà migré AlreadyDone=Déjà migré
DatabaseVersion=Version de la base de données DatabaseVersion=Version de la base de données
ServerVersion=Version du serveur de bases de données ServerVersion=Version du serveur de bases de données
=
#########= #########=
# upgrade= # upgrade=
MigrationOrder=Migration des données de commandes clients MigrationOrder=Migration des données de commandes clients

View File

@ -4,6 +4,7 @@ PublicMembersArea=Section membres publique
MemberCard=Fiche membres MemberCard=Fiche membres
Member=Membre Member=Membre
Members=Membres Members=Membres
MembersTickets=Etiquettes d'adhérents
FundationMembers= FundationMembers=
Attributs=Attributs Attributs=Attributs
Person=Personne Person=Personne

View File

@ -30,6 +30,7 @@ NoMaxSizeByPHPLimit=Aucune limite interne
MaxSizeForUploadedFiles=Taille maximum des documents uploadés (0 pour interdire l'upload) MaxSizeForUploadedFiles=Taille maximum des documents uploadés (0 pour interdire l'upload)
ComptaSetup=Configuration du module Comptabilité ComptaSetup=Configuration du module Comptabilité
UserSetup=Configuration gestion des utilisateurs UserSetup=Configuration gestion des utilisateurs
MenuSetup=Administration des menus par base de données
Setup=Configuration Setup=Configuration
Activation=Activation Activation=Activation
SetupShort=Config SetupShort=Config
@ -143,6 +144,8 @@ Module40Name=Fournisseurs
Module40Desc=Gestion des fournisseurs Module40Desc=Gestion des fournisseurs
Module42Name=Syslog Module42Name=Syslog
Module42Desc=Utilisation de logs (syslog) Module42Desc=Utilisation de logs (syslog)
Module49Name=Éditeurs
Module49Desc=Gestion des éditeurs
Module50Name=Produits Module50Name=Produits
Module50Desc=Gestion des produits Module50Desc=Gestion des produits
Module52Name=Stocks de produits Module52Name=Stocks de produits
@ -175,6 +178,8 @@ Module200Name=LDAP
Module200Desc=Synchronisation avec un annuaire LDAP Module200Desc=Synchronisation avec un annuaire LDAP
Module210Name=PostNuke Module210Name=PostNuke
Module210Desc=Intégration avec PostNuke Module210Desc=Intégration avec PostNuke
Module240Name=Exports utilisateurs
Module240Desc= Permet exports par les utilisateurs, via un assistant, de lot de données personalisées
Module310Name=Adhérents Module310Name=Adhérents
Module310Desc=Gestion des adhérents d'une association Module310Desc=Gestion des adhérents d'une association
Module320Name=Fils RSS Module320Name=Fils RSS
@ -199,6 +204,10 @@ Module1200Name=Mantis
Module1200Desc=Interface avec le bug tracking Mantis Module1200Desc=Interface avec le bug tracking Mantis
Module1780Name=Catégories Module1780Name=Catégories
Module1780Desc=Gestion des catégories Module1780Desc=Gestion des catégories
Module2200Name=Droit de prêts
Module2200Desc=Gestion du droit de prêts
Module2300Name=Menus
Module2300Desc=Administration des menus par base de données
Permission11=Consulter les factures Permission11=Consulter les factures
Permission12=Créer les factures Permission12=Créer les factures
Permission13=Modifier les factures Permission13=Modifier les factures

View File

@ -100,6 +100,13 @@ AlreadyDone=D
DatabaseVersion=Version de la base DatabaseVersion=Version de la base
ServerVersion=Version du serveur de base de donnée ServerVersion=Version du serveur de base de donnée
YouMustCreateItAndAllowServerToWrite=Vous devez créer ce dossier et permettre au serveur web d'écrire dans celui-ci. YouMustCreateItAndAllowServerToWrite=Vous devez créer ce dossier et permettre au serveur web d'écrire dans celui-ci.
CharsetChoice=Choix du codage des caractères
CharacterSetClient=Codage utilisé pour l'affichage des pages
CharacterSetClientComment=Veuillez choisir le codage que vous souhaitez pour l'affichage des pages.<br/> Le codage par défaut est celui définie sur la base mysql par défaut
CollationConnection=Collation utilisée pour la base de données
CollationConnectionComment=Veuillez choisir la collation que vous désirez choisir pour la création de la base de données.<br/> Ce paramètre n'est pas sélectionnable si votre base est déjà créée.
CharacterSetDatabase=Codage utilisé pour la base de données
CharacterSetDatabaseComment=Veuillez choisir le codage que vous désirez choisir pour la création de la base de données.<br/> Ce paramètre n'est pas sélectionnable si votre base est déjà créée.
######### #########
# upgrade # upgrade

View File

@ -4,6 +4,7 @@ PublicMembersArea=Espace public des adh
MemberCard=Fiche adhérent MemberCard=Fiche adhérent
Member=Adhérent Member=Adhérent
Members=Adhérents Members=Adhérents
MembersTickets=Etiquettes d'adhérents
FundationMembers=Membres de l'association FundationMembers=Membres de l'association
Attributs=Attributs Attributs=Attributs
Person=Personne Person=Personne

View File

@ -266,7 +266,7 @@ class CMailFile
if ($this->msgishtml) if ($this->msgishtml)
{ {
$out.= "Content-Type: text/html; charset=iso-8859-1".$this->eol; $out.= "Content-Type: text/html; charset=".$_SESSION['charset'].$this->eol;
$out.= "Content-Transfer-Encoding: 8bit".$this->eol; $out.= "Content-Transfer-Encoding: 8bit".$this->eol;
} }
else else

View File

@ -46,6 +46,8 @@ class DoliDb
var $type='mysql'; var $type='mysql';
//! Charset //! Charset
var $forcecharset='latin1'; var $forcecharset='latin1';
//! Charset client
var $forcecharsetclient='iso-8859-1';
//! Collate //! Collate
var $forcecollate='latin1_swedish_ci'; var $forcecollate='latin1_swedish_ci';
//! Version min database //! Version min database
@ -58,6 +60,8 @@ class DoliDb
var $database_selected; var $database_selected;
//! Nom base sélectionnée //! Nom base sélectionnée
var $database_name; var $database_name;
//! Nom user base
var $database_user;
//! 1 si une transaction est en cours, 0 sinon //! 1 si une transaction est en cours, 0 sinon
var $transaction_opened; var $transaction_opened;
//! Derniere requete exécutée //! Derniere requete exécutée
@ -115,6 +119,13 @@ class DoliDb
function DoliDb($type='mysql', $host, $user, $pass, $name='', $newlink=0) function DoliDb($type='mysql', $host, $user, $pass, $name='', $newlink=0)
{ {
global $conf,$langs; global $conf,$langs;
$conffile = "../conf/conf.php";
if (file_exists($conffile)) {
include($conffile);
$this->forcecharset=$character_set_database;
$this->forcecollate=$collation_connection;
$this->db_user=$dolibarr_main_db_user;
}
$this->transaction_opened=0; $this->transaction_opened=0;
if (! function_exists("mysql_connect")) if (! function_exists("mysql_connect"))
@ -224,6 +235,23 @@ class DoliDb
return mysql_get_server_info($this->db); return mysql_get_server_info($this->db);
} }
/**
\brief Renvoie la version du serveur sous forme de nombre
\return string Chaine version
*/
function getIntVersion()
{
$version= $this->getVersion();
$vlist=split('[.-]',$version);
if (strlen($vlist[1])==1){
$vlist[1]="0".$vlist[1];
}
if (strlen($vlist[2])==1){
$vlist[2]="0".$vlist[2];
}
return $vlist[0].$vlist[1].$vlist[2];
}
/** /**
\brief Renvoie la version du serveur dans un tableau \brief Renvoie la version du serveur dans un tableau
@ -635,11 +663,10 @@ class DoliDb
$ret=$this->query($sql); $ret=$this->query($sql);
if (! $ret) if (! $ret)
{ {
// On réessaie pour compatibilité avec Mysql < 5.0 // On réessaie pour compatibilité avec Mysql < 4.1.1
$sql = 'CREATE DATABASE '.$database; $sql = 'CREATE DATABASE '.$database;
$ret=$this->query($sql); $ret=$this->query($sql);
} }
return $ret; return $ret;
} }
@ -821,6 +848,67 @@ class DoliDb
return 1; return 1;
} }
function getDefaultCharacterSetDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'character_set_database\'');
if (!$resql)
{
// version Mysql < 4.1.1
return $this->forcecharset;
}
$liste=$this->fetch_array($resql);
return $liste['Value'];
}
function getListOfCharacterSet(){
$resql=$this->query('SHOW CHARSET');
$liste = array();
if ($resql)
{
$i = 0;
while ($obj = $this->fetch_object($resql) )
{
$liste[$i]['charset'] = $obj->Charset;
$liste[$i]['description'] = $obj->Description;
$i++;
}
$this->free($resql);
} else {
// version Mysql < 4.1.1
return null;
}
return $liste;
}
function getDefaultCollationConnection(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_connection\'');
if (!$resql)
{
// version Mysql < 4.1.1
return $this->forcecollate;
}
$liste=$this->fetch_array($resql);
return $liste['Value'];
}
function getListOfCollation(){
$resql=$this->query('SHOW COLLATION');
$liste = array();
if ($resql)
{
$i = 0;
while ($obj = $this->fetch_object($resql) )
{
$liste[$i]['collation'] = $obj->Collation;
$i++;
}
$this->free($resql);
} else {
// version Mysql < 4.1.1
return null;
}
return $liste;
}
} }
?> ?>

View File

@ -46,6 +46,8 @@ class DoliDb
var $type='mysqli'; var $type='mysqli';
//! Charset //! Charset
var $forcecharset='latin1'; var $forcecharset='latin1';
//! Charset client
var $forcecharsetclient='iso-8859-1';
//! Collate //! Collate
var $forcecollate='latin1_swedish_ci'; var $forcecollate='latin1_swedish_ci';
//! Version min database //! Version min database
@ -58,6 +60,8 @@ class DoliDb
var $database_selected; var $database_selected;
//! Nom base sélectionnée //! Nom base sélectionnée
var $database_name; var $database_name;
//! Nom user base
var $database_user;
//! 1 si une transaction est en cours, 0 sinon //! 1 si une transaction est en cours, 0 sinon
var $transaction_opened; var $transaction_opened;
//! Derniere requete exécutée //! Derniere requete exécutée
@ -114,6 +118,14 @@ class DoliDb
function DoliDb($type='mysqli', $host, $user, $pass, $name='', $newlink=0) function DoliDb($type='mysqli', $host, $user, $pass, $name='', $newlink=0)
{ {
global $conf,$langs; global $conf,$langs;
$conffile = "../../conf/conf.php";
if (file_exists($conffile)) {
include($conffile);
$this->forcecharset=$character_set_database;
$this->forcecollate=$collation_connection;
$this->db_user=$dolibarr_main_db_user;
}
$this->transaction_opened=0; $this->transaction_opened=0;
//print "Name DB: $host,$user,$pass,$name<br>"; //print "Name DB: $host,$user,$pass,$name<br>";
@ -230,6 +242,22 @@ class DoliDb
return mysqli_get_server_info($this->db); return mysqli_get_server_info($this->db);
} }
/**
\brief Renvoie la version du serveur sous forme de nombre
\return string Chaine version
*/
function getIntVersion()
{
$version= $this->getVersion();
$vlist=split('[.-]',$version);
if (strlen($vlist[1])==1){
$vlist[1]="0".$vlist[1];
}
if (strlen($vlist[2])==1){
$vlist[2]="0".$vlist[2];
}
return $vlist[0].$vlist[1].$vlist[2];
}
/** /**
\brief Renvoie la version du serveur dans un tableau \brief Renvoie la version du serveur dans un tableau
@ -633,21 +661,19 @@ class DoliDb
*/ */
function DDLCreateDb($database) function DDLCreateDb($database)
{ {
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database; $sql = 'CREATE DATABASE '.$database;
$sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate; $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
$ret=$this->query($sql); $ret=$this->query($sql);
if (! $ret) if (! $ret)
{ {
// On réessaie pour compatibilité avec Mysql < 5.0 // On réessaie pour compatibilité avec Mysql < 4.1.1
$sql = 'CREATE DATABASE '.$database; $sql = 'CREATE DATABASE '.$database;
$ret=$this->query($sql); $ret=$this->query($sql);
} }
//print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysqli_error($this->db);
return $ret; return $ret;
} }
/** /**
\brief Liste des tables dans une database. \brief Liste des tables dans une database.
\param database Nom de la database \param database Nom de la database
@ -825,6 +851,67 @@ class DoliDb
return 1; return 1;
} }
function getDefaultCharacterSetDatabase(){
$resql=$this->query('SHOW VARIABLES LIKE \'character_set_database\'');
if (!$resql)
{
// version Mysql < 4.1.1
return $this->forcecharset;
}
$liste=$this->fetch_array($resql);
return $liste['Value'];
}
function getListOfCharacterSet(){
$resql=$this->query('SHOW CHARSET');
$liste = array();
if ($resql)
{
$i = 0;
while ($obj = $this->fetch_object($resql) )
{
$liste[$i]['charset'] = $obj->Charset;
$liste[$i]['description'] = $obj->Description;
$i++;
}
$this->free($resql);
} else {
// version Mysql < 4.1.1
return null;
}
return $liste;
}
function getDefaultCollationConnection(){
$resql=$this->query('SHOW VARIABLES LIKE \'collation_connection\'');
if (!$resql)
{
// version Mysql < 4.1.1
return $this->forcecollate;
}
$liste=$this->fetch_array($resql);
return $liste['Value'];
}
function getListOfCollation(){
$resql=$this->query('SHOW COLLATION');
$liste = array();
if ($resql)
{
$i = 0;
while ($obj = $this->fetch_object($resql) )
{
$liste[$i]['collation'] = $obj->Collation;
$i++;
}
$this->free($resql);
} else {
// version Mysql < 4.1.1
return null;
}
return $liste;
}
} }
?> ?>

View File

@ -44,6 +44,8 @@ class DoliDb
{ {
var $db; // Handler de base var $db; // Handler de base
var $type='pgsql'; // Nom du gestionnaire var $type='pgsql'; // Nom du gestionnaire
//! Charset
var $forcecharset='latin1';
var $versionmin=array(8,1,0); // Version min database var $versionmin=array(8,1,0); // Version min database
var $results; // Resultset de la dernière requete var $results; // Resultset de la dernière requete
@ -51,6 +53,7 @@ class DoliDb
var $connected; // 1 si connecté, 0 sinon var $connected; // 1 si connecté, 0 sinon
var $database_selected; // 1 si base sélectionné, 0 sinon var $database_selected; // 1 si base sélectionné, 0 sinon
var $database_name; // Nom base sélectionnée var $database_name; // Nom base sélectionnée
var $database_user; //! Nom user base
var $transaction_opened; // 1 si une transaction est en cours, 0 sinon var $transaction_opened; // 1 si une transaction est en cours, 0 sinon
var $lastquery; var $lastquery;
var $lastqueryerror; // Ajout d'une variable en cas d'erreur var $lastqueryerror; // Ajout d'une variable en cas d'erreur
@ -59,6 +62,7 @@ class DoliDb
var $error; var $error;
/** /**
\brief Ouverture d'une connection vers le serveur et une database. \brief Ouverture d'une connection vers le serveur et une database.
\param type type de base de données (mysql ou pgsql) \param type type de base de données (mysql ou pgsql)
@ -71,6 +75,12 @@ class DoliDb
function DoliDb($type='pgsql', $host, $user, $pass, $name='') function DoliDb($type='pgsql', $host, $user, $pass, $name='')
{ {
global $conf,$langs; global $conf,$langs;
$conffile = "../conf/conf.php";
if (file_exists($conffile)) {
include($conffile);
$this->forcecharset=$character_set_database;
$this->db_user=$dolibarr_main_db_user;
}
$this->transaction_opened=0; $this->transaction_opened=0;
//print "Name DB: $host,$user,$pass,$name<br>"; //print "Name DB: $host,$user,$pass,$name<br>";
@ -161,7 +171,10 @@ class DoliDb
*/ */
function connect($host, $login, $passwd, $name) function connect($host, $login, $passwd, $name)
{ {
$con_string = "host=$host dbname=$name user=$login password=--hidden--"; if (!$name){
$name="postgres";
}
$con_string = "host=$host dbname=$name user=$login password=$passwd";
$this->db = pg_connect($con_string); $this->db = pg_connect($con_string);
if ($this->db) if ($this->db)
{ {
@ -177,9 +190,27 @@ class DoliDb
*/ */
function getVersion() function getVersion()
{ {
return '?'; $resql=$this->query('SHOW server_version');
$liste=$this->fetch_array($resql);
return $liste['server_version'];
} }
/**
\brief Renvoie la version du serveur sous forme de nombre
\return string Chaine version
*/
function getIntVersion()
{
$version= $this->getVersion();
$vlist=split('[.-]',$version);
if (strlen($vlist[1])==1){
$vlist[1]="0".$vlist[1];
}
if (strlen($vlist[2])==1){
$vlist[2]="0".$vlist[2];
}
return $vlist[0].$vlist[1].$vlist[2];
}
/** /**
\brief Renvoie la version du serveur dans un tableau \brief Renvoie la version du serveur dans un tableau
@ -266,8 +297,11 @@ class DoliDb
function query($query) function query($query)
{ {
$query = trim($query); $query = trim($query);
$ret = pg_query($this->db, $query);
if ($this->forcecharset=="UTF-8"){
$buffer=utf8_encode ($buffer);
}
$ret = pg_query($this->db, $query);
if (! eregi("^COMMIT",$query) && ! eregi("^ROLLBACK",$query)) if (! eregi("^COMMIT",$query) && ! eregi("^ROLLBACK",$query))
{ {
// Si requete utilisateur, on la sauvegarde ainsi que son resultset // Si requete utilisateur, on la sauvegarde ainsi que son resultset
@ -528,7 +562,7 @@ class DoliDb
$nbre = pg_num_rows($result); $nbre = pg_num_rows($result);
$row = pg_fetch_result($result,0,0); $row = pg_fetch_result($result,0,0);
return $row; return $row;
}
// Next function are not required. Only minor features use them. // Next function are not required. Only minor features use them.
//-------------------------------------------------------------- //--------------------------------------------------------------
@ -593,10 +627,9 @@ class DoliDb
*/ */
function DDLCreateDb($database) function DDLCreateDb($database)
{ {
$ret=$this->query('CREATE DATABASE '.$database.';'); $ret=$this->query('CREATE DATABASE '.$database.' OWNER '.$this->db_user.' ENCODING \''.$this->forcecharset.'\' ;');
return $ret; return $ret;
} }
}
/** /**
\brief Liste des tables dans une database. \brief Liste des tables dans une database.
@ -630,6 +663,11 @@ class DoliDb
return 1; return 1;
} }
}
function getDefaultCharacterSetDatabase(){
$resql=$this->query('SHOW SERVER_ENCODING');
$liste=$this->fetch_array($resql);
return $liste['server_encoding'];
}
}
?> ?>

View File

@ -536,7 +536,7 @@ function top_htmlhead($head, $title="", $target="")
if (! $conf->css) $conf->css ='/theme/eldy/eldy.css.php'; if (! $conf->css) $conf->css ='/theme/eldy/eldy.css.php';
//header("Content-type: text/html; charset=UTF-8"); //header("Content-type: text/html; charset=UTF-8");
header("Content-type: text/html; charset=iso-8859-1"); header("Content-type: text/html; charset=".$_SESSION['charset']);
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'; print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
// print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd>'; // print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd>';

View File

@ -130,6 +130,13 @@ require_once(DOL_DOCUMENT_ROOT ."/menu.class.php");
require_once(DOL_DOCUMENT_ROOT ."/html.form.class.php"); require_once(DOL_DOCUMENT_ROOT ."/html.form.class.php");
require_once(DOL_DOCUMENT_ROOT ."/lib/databases/".$conf->db->type.".lib.php"); require_once(DOL_DOCUMENT_ROOT ."/lib/databases/".$conf->db->type.".lib.php");
require_once(DOL_DOCUMENT_ROOT ."/conf/conf.class.php");
if ($character_set_client ){
$_SESSION['charset'] = $character_set_client;
}else{
$_SESSION['charset'] =$langs->trans("charset");
}
/* /*
* Creation objet $db * Creation objet $db
*/ */

View File

@ -32,7 +32,7 @@ $langs->load("products");
$langs->load("main"); $langs->load("main");
//header("Content-type: text/html; charset=UTF-8"); //header("Content-type: text/html; charset=UTF-8");
header("Content-type: text/html; charset=iso-8859-1"); header("Content-type: text/html; charset=$character_set_client");
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'; print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
print "\n<html>"; print "\n<html>";
print "\n<body>"; print "\n<body>";

View File

@ -49,6 +49,7 @@ class Translate {
*/ */
function Translate($dir = "") function Translate($dir = "")
{ {
$this->charset=$_SESSION['charset'];
$this->dir=$dir; $this->dir=$dir;
} }
@ -236,7 +237,9 @@ class Translate {
$newstr=ereg_replace('"','__quot__',$newstr); $newstr=ereg_replace('"','__quot__',$newstr);
// Cryptage en html de la chaine // Cryptage en html de la chaine
$newstr=htmlentities($newstr,ENT_QUOTES,$this->charset); $this->load("main");
$charset=sprintf($this->tab_translate["charset"]);
$newstr=htmlentities($newstr,ENT_QUOTES,$charset);
// On restaure les tags HTML // On restaure les tags HTML
$newstr=ereg_replace('__lt__','<',$newstr); $newstr=ereg_replace('__lt__','<',$newstr);
@ -311,12 +314,8 @@ class Translate {
function lang_header() function lang_header()
{ {
$this->load("main");
$charset=$this->trans("charset");
if (! $charset) $charset="iso-8859-1";
//header("Content-Type: text/html; charset=$charset"); //header("Content-Type: text/html; charset=$charset");
$texte = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=$charset\">\n"; $texte = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=$this->charset\">\n";
return $texte; return $texte;
} }

View File

@ -28,7 +28,7 @@
create table llx_paiementfourn_facturefourn create table llx_paiementfourn_facturefourn
( (
rowid SERIAL PRIMARY KEY, rowid SERIAL PRIMARY KEY,
"fk_paiementfourn" INT(11) DEFAULT NULL, "fk_paiementfourn" integer DEFAULT NULL,
"fk_facturefourn" INT(11) DEFAULT NULL, "fk_facturefourn" integer DEFAULT NULL,
"amount" real DEFAULT '0' "amount" real DEFAULT '0'
); );