Fix: PostgreSQL compatibility

This commit is contained in:
Regis Houssin 2011-02-12 06:48:02 +00:00
parent cc39ca7287
commit af97652c9b

View File

@ -3,8 +3,8 @@
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -55,8 +55,8 @@ class DolibarrModules
/** /**
* \brief Constructeur * Constructor
* \param DB handler d'acces base * @param DB Database access handler
*/ */
function DolibarrModules($DB) function DolibarrModules($DB)
{ {
@ -66,10 +66,10 @@ class DolibarrModules
/** /**
* \brief Fonction d'activation. Insere en base les constantes et boites du module * Fonction d'activation. Insere en base les constantes et boites du module
* \param array_sql Tableau de requete sql a executer a l'activation * @param array_sql Tableau de requete sql a executer a l'activation
* \param options Options when enabling module ('', 'noboxes') * @param options Options when enabling module ('', 'noboxes')
* \return int 1 if OK, 0 if KO * @return int 1 if OK, 0 if KO
*/ */
function _init($array_sql, $options='') function _init($array_sql, $options='')
{ {
@ -96,7 +96,7 @@ class DolibarrModules
// Insert activation login method // Insert activation login method
if (! $err) $err+=$this->insert_login_method(); if (! $err) $err+=$this->insert_login_method();
// Insere les constantes associees au module dans llx_const // Insert constant defined by modules, into llx_const
if (! $err) $err+=$this->insert_const(); if (! $err) $err+=$this->insert_const();
// Insere les boites dans llx_boxes_def // Insere les boites dans llx_boxes_def
@ -164,10 +164,10 @@ class DolibarrModules
} }
/** /**
* \brief Fonction de desactivation. Supprime de la base les constantes et boites du module * Fonction de desactivation. Supprime de la base les constantes et boites du module
* \param array_sql tableau de requete sql a executer a la desactivation * @param array_sql tableau de requete sql a executer a la desactivation
* \param options Options when disabling module ('', 'noboxes') * @param options Options when disabling module ('', 'noboxes')
* \return int 1 if OK, 0 if KO * @return int 1 if OK, 0 if KO
*/ */
function _remove($array_sql, $options='') function _remove($array_sql, $options='')
{ {
@ -418,8 +418,8 @@ class DolibarrModules
/** /**
* \brief Insert constant to activate module * Insert constant to activate module
* \return int Nb of errors (0 if OK) * @return int Nb of errors (0 if OK)
*/ */
function _active() function _active()
{ {
@ -453,8 +453,8 @@ class DolibarrModules
/** /**
* \brief Remove activation line * Remove activation line
* \return int Nb of errors (0 if OK) * @return int Nb of errors (0 if OK)
**/ **/
function _unactive() function _unactive()
{ {
@ -577,7 +577,7 @@ class DolibarrModules
$sql.= " WHERE file = '".$file."'"; $sql.= " WHERE file = '".$file."'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
if ($note) $sql.=" AND note ='".addslashes($note)."'"; if ($note) $sql.=" AND note ='".$this->db->escape($note)."'";
$result=$this->db->query($sql); $result=$this->db->query($sql);
if ($result) if ($result)
@ -586,9 +586,9 @@ class DolibarrModules
if ($row[0] == 0) if ($row[0] == 0)
{ {
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file,entity,note)"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file,entity,note)";
$sql.= " VALUES ('".addslashes($file)."',"; $sql.= " VALUES ('".$this->db->escape($file)."',";
$sql.= $conf->entity.","; $sql.= $conf->entity.",";
$sql.= $note?"'".addslashes($note)."'":"null"; $sql.= $note?"'".$this->db->escape($note)."'":"null";
$sql.= ")"; $sql.= ")";
dol_syslog("DolibarrModules::insert_boxes sql=".$sql); dol_syslog("DolibarrModules::insert_boxes sql=".$sql);
@ -632,7 +632,7 @@ class DolibarrModules
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
$sql.= " USING ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def"; $sql.= " USING ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def";
$sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid"; $sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid";
$sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".addslashes($file)."'"; $sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".$this->db->escape($file)."'";
$sql.= " AND ".MAIN_DB_PREFIX."boxes_def.entity = ".$conf->entity; $sql.= " AND ".MAIN_DB_PREFIX."boxes_def.entity = ".$conf->entity;
dol_syslog("DolibarrModules::delete_boxes sql=".$sql); dol_syslog("DolibarrModules::delete_boxes sql=".$sql);
@ -645,7 +645,7 @@ class DolibarrModules
} }
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
$sql.= " WHERE file = '".addslashes($file)."'"; $sql.= " WHERE file = '".$this->db->escape($file)."'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
dol_syslog("DolibarrModules::delete_boxes sql=".$sql); dol_syslog("DolibarrModules::delete_boxes sql=".$sql);
@ -807,8 +807,8 @@ class DolibarrModules
} }
/** /**
* \brief Insert constants defined into $this->const array into table llx_const * Insert constants defined into $this->const array into table llx_const
* \return int Number of errors (0 if OK) * @return int Number of errors (0 if OK)
*/ */
function insert_const() function insert_const()
{ {
@ -846,7 +846,7 @@ class DolibarrModules
$sql.= $this->db->encrypt($name,1); $sql.= $this->db->encrypt($name,1);
$sql.= ",'".$type."'"; $sql.= ",'".$type."'";
$sql.= ",".($val?$this->db->encrypt($val,1):"''"); $sql.= ",".($val?$this->db->encrypt($val,1):"''");
$sql.= ",".($note?"'".addslashes($note)."'":"null"); $sql.= ",".($note?"'".$this->db->escape($note)."'":"null");
$sql.= ",'".$visible."'"; $sql.= ",'".$visible."'";
$sql.= ",".$entity; $sql.= ",".$entity;
$sql.= ")"; $sql.= ")";
@ -919,14 +919,14 @@ class DolibarrModules
$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def";
$sql.= " (id, entity, libelle, module, type, bydefault, perms, subperms)"; $sql.= " (id, entity, libelle, module, type, bydefault, perms, subperms)";
$sql.= " VALUES "; $sql.= " VALUES ";
$sql.= "(".$r_id.",".$conf->entity.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."','".$r_subperms."')"; $sql.= "(".$r_id.",".$conf->entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."','".$r_subperms."')";
} }
else else
{ {
$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def";
$sql.= " (id, entity, libelle, module, type, bydefault, perms)"; $sql.= " (id, entity, libelle, module, type, bydefault, perms)";
$sql.= " VALUES "; $sql.= " VALUES ";
$sql.= "(".$r_id.",".$conf->entity.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."')"; $sql.= "(".$r_id.",".$conf->entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."')";
} }
} }
else else
@ -934,7 +934,7 @@ class DolibarrModules
$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def "; $sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def ";
$sql .= " (id, entity, libelle, module, type, bydefault)"; $sql .= " (id, entity, libelle, module, type, bydefault)";
$sql .= " VALUES "; $sql .= " VALUES ";
$sql .= "(".$r_id.",".$conf->entity.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.")"; $sql .= "(".$r_id.",".$conf->entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.")";
} }
dol_syslog("DolibarrModules::insert_permissions sql=".$sql, LOG_DEBUG); dol_syslog("DolibarrModules::insert_permissions sql=".$sql, LOG_DEBUG);
@ -975,8 +975,8 @@ class DolibarrModules
/** /**
\brief Supprime les permissions * \brief Supprime les permissions
\return int Nombre d'erreurs (0 si ok) * \return int Nombre d'erreurs (0 si ok)
*/ */
function delete_permissions() function delete_permissions()
{ {
@ -991,7 +991,7 @@ class DolibarrModules
if (! $this->db->query($sql)) if (! $this->db->query($sql))
{ {
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
dol_syslog("DolibarrModules::delete_dirs ".$this->error, LOG_ERR); dol_syslog("DolibarrModules::delete_permissions ".$this->error, LOG_ERR);
$err++; $err++;
} }
@ -1000,8 +1000,8 @@ class DolibarrModules
/** /**
* \brief Insere les menus dans llx_menu* * \brief Insert menus entries into llx_menu*
* \return int Nombre d'erreurs (0 si ok) * \return int Nb of errors (0 if OK)
*/ */
function insert_menus() function insert_menus()
{ {
@ -1095,7 +1095,7 @@ class DolibarrModules
$err=0; $err=0;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
$sql.= " WHERE module = '".addslashes($this->rights_class)."'"; $sql.= " WHERE module = '".$this->db->escape($this->rights_class)."'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
dol_syslog("DolibarrModules::delete_menus sql=".$sql); dol_syslog("DolibarrModules::delete_menus sql=".$sql);
@ -1299,8 +1299,8 @@ class DolibarrModules
} }
/** /**
* \brief Insert activation login method from modules in llx_const * Insert activation login method from modules in llx_const
* \return int Number of errors (0 if ok) * @return int Number of errors (0 if ok)
*/ */
function insert_login_method() function insert_login_method()
{ {
@ -1339,8 +1339,8 @@ class DolibarrModules
} }
/** /**
* \brief Remove activation login method from modules in llx_const * Remove activation login method from modules in llx_const
* \return int Nombre d'erreurs (0 si ok) * @return int Nombre d'erreurs (0 si ok)
*/ */
function delete_login_method() function delete_login_method()
{ {