New: Member module use generic extrafields feature.
This commit is contained in:
parent
fba524fe5a
commit
6ceea92eea
@ -30,9 +30,9 @@ require_once(DOL_DOCUMENT_ROOT."/lib/member.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_options.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/cotisation.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/compta/bank/class/account.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||
|
||||
$langs->load("companies");
|
||||
$langs->load("bills");
|
||||
@ -45,7 +45,7 @@ $langs->load("mails");
|
||||
if (! $user->rights->adherent->cotisation->lire) accessforbidden();
|
||||
|
||||
$adh = new Adherent($db);
|
||||
$adho = new AdherentOptions($db);
|
||||
$adho = new ExtraFields($db);
|
||||
$adht = new AdherentType($db);
|
||||
$errmsg='';
|
||||
|
||||
|
||||
@ -279,7 +279,7 @@ class Adherent extends CommonObject
|
||||
$sql.= ", ".$conf->entity;
|
||||
$sql.= ")";
|
||||
|
||||
dol_syslog("Adherent::create sql=".$sql);
|
||||
dol_syslog(get_class($this)."::create sql=".$sql);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -303,7 +303,7 @@ class Adherent extends CommonObject
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user SET";
|
||||
$sql.= " fk_member = '".$this->id."'";
|
||||
$sql.= " WHERE rowid = ".$this->user_id;
|
||||
dol_syslog("Adherent::create sql=".$sql);
|
||||
dol_syslog(get_class($this)."::create sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql)
|
||||
{
|
||||
@ -327,7 +327,7 @@ class Adherent extends CommonObject
|
||||
|
||||
if (sizeof($this->errors))
|
||||
{
|
||||
dol_syslog("Adherent::create ".join(',',$this->errors), LOG_ERR);
|
||||
dol_syslog(get_class($this)."::create ".join(',',$this->errors), LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -3;
|
||||
}
|
||||
@ -340,7 +340,7 @@ class Adherent extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error='Failed to get last insert id';
|
||||
dol_syslog("Adherent::create ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -2;
|
||||
}
|
||||
@ -348,7 +348,7 @@ class Adherent extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
dol_syslog("Adherent::create ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
@ -370,7 +370,7 @@ class Adherent extends CommonObject
|
||||
$nbrowsaffected=0;
|
||||
$error=0;
|
||||
|
||||
dol_syslog("Adherent::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser.", nosyncuserpass=".$nosyncuserpass.", email=".$this->email);
|
||||
dol_syslog(get_class($this)."::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser.", nosyncuserpass=".$nosyncuserpass.", email=".$this->email);
|
||||
|
||||
// Clean parameters
|
||||
if (! empty($conf->global->MAIN_FIRST_TO_UPPER)) $this->nom=ucwords(trim($this->nom));
|
||||
@ -414,7 +414,7 @@ class Adherent extends CommonObject
|
||||
$sql.= ", fk_user_mod=".($user->id>0?$user->id:'null'); // Can be null because member can be create by a guest
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
dol_syslog("Adherent::update update member sql=".$sql);
|
||||
dol_syslog(get_class($this)."::update update member sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -423,7 +423,7 @@ class Adherent extends CommonObject
|
||||
if (sizeof($this->array_options) > 0)
|
||||
{
|
||||
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."adherent_extrafields WHERE fk_member = ".$this->id;
|
||||
dol_syslog("Adherent::update sql=".$sql_del);
|
||||
dol_syslog(get_class($this)."::update sql=".$sql_del);
|
||||
$this->db->query($sql_del);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."adherent_extrafields (fk_member";
|
||||
@ -447,7 +447,7 @@ class Adherent extends CommonObject
|
||||
}
|
||||
$sql.=")";
|
||||
|
||||
dol_syslog("Adherent::update update option sql=".$sql);
|
||||
dol_syslog(get_class($this)."::update update option sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -456,7 +456,7 @@ class Adherent extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
dol_syslog("Adherent::update ".$this->error,LOG_ERR);
|
||||
dol_syslog(get_class($this)."::update ".$this->error,LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -2;
|
||||
}
|
||||
@ -465,7 +465,7 @@ class Adherent extends CommonObject
|
||||
// Update password
|
||||
if ($this->pass)
|
||||
{
|
||||
dol_syslog("Adherent::update update password");
|
||||
dol_syslog(get_class($this)."::update update password");
|
||||
if ($this->pass != $this->pass_indatabase && $this->pass != $this->pass_indatabase_crypted)
|
||||
{
|
||||
// Si mot de passe saisi et different de celui en base
|
||||
@ -475,16 +475,16 @@ class Adherent extends CommonObject
|
||||
}
|
||||
|
||||
// Remove link to user
|
||||
dol_syslog("Adherent::update update link to user");
|
||||
dol_syslog(get_class($this)."::update update link to user");
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user SET fk_member = NULL WHERE fk_member = ".$this->id;
|
||||
dol_syslog("Adherent::update sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql) { $this->error=$this->db->error(); $this->db->rollback(); return -5; }
|
||||
// If there is a user linked to this member
|
||||
if ($this->user_id > 0)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user SET fk_member = ".$this->id." WHERE rowid = ".$this->user_id;
|
||||
dol_syslog("Adherent::update sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql) { $this->error=$this->db->error(); $this->db->rollback(); return -5; }
|
||||
}
|
||||
@ -495,7 +495,7 @@ class Adherent extends CommonObject
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT."/user/class/user.class.php");
|
||||
|
||||
dol_syslog("Adherent::update update linked user");
|
||||
dol_syslog(get_class($this)."::update update linked user");
|
||||
|
||||
// This member is linked with a user, so we also update users informations
|
||||
// if this is an update.
|
||||
@ -523,7 +523,7 @@ class Adherent extends CommonObject
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->error=$luser->error;
|
||||
dol_syslog("Adherent::update ".$this->error,LOG_ERR);
|
||||
dol_syslog(get_class($this)."::update ".$this->error,LOG_ERR);
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
@ -563,7 +563,7 @@ class Adherent extends CommonObject
|
||||
$this->db->rollback();
|
||||
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog("Adherent::update ".$this->error,LOG_ERR);
|
||||
dol_syslog(get_class($this)."::update ".$this->error,LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -589,7 +589,7 @@ class Adherent extends CommonObject
|
||||
$sql.= " WHERE fk_adherent='".$this->id."'";
|
||||
$sql.= " ORDER by dateadh DESC"; // Sort by start subscription date
|
||||
|
||||
dol_syslog("Adherent::update_end_date sql=".$sql);
|
||||
dol_syslog(get_class($this)."::update_end_date sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -602,7 +602,7 @@ class Adherent extends CommonObject
|
||||
$sql.= " datefin=".($datefin != '' ? "'".$this->db->idate($datefin)."'" : "null");
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
dol_syslog("Adherent::update_end_date sql=".$sql);
|
||||
dol_syslog(get_class($this)."::update_end_date sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -622,7 +622,7 @@ class Adherent extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog("Adherent::update_end_date ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::update_end_date ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
@ -644,17 +644,17 @@ class Adherent extends CommonObject
|
||||
// Suppression options
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."adherent_extrafields WHERE fk_member = ".$rowid;
|
||||
|
||||
dol_syslog("Adherent::delete sql=".$sql);
|
||||
dol_syslog(get_class($this)."::delete sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."cotisation WHERE fk_adherent = ".$rowid;
|
||||
dol_syslog("Adherent::delete sql=".$sql);
|
||||
dol_syslog(get_class($this)."::delete sql=".$sql);
|
||||
$resql=$this->db->query( $sql);
|
||||
if ($resql)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."adherent WHERE rowid = ".$rowid;
|
||||
dol_syslog("Adherent::delete sql=".$sql);
|
||||
dol_syslog(get_class($this)."::delete sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -720,7 +720,7 @@ class Adherent extends CommonObject
|
||||
|
||||
$error=0;
|
||||
|
||||
dol_syslog("Adherent::Password user=".$user->id." password=".preg_replace('/./i','*',$password)." isencrypted=".$isencrypted);
|
||||
dol_syslog(get_class($this)."::setPassword user=".$user->id." password=".preg_replace('/./i','*',$password)." isencrypted=".$isencrypted);
|
||||
|
||||
// If new password not provided, we generate one
|
||||
if (! $password)
|
||||
@ -746,7 +746,7 @@ class Adherent extends CommonObject
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
//dol_syslog("Adherent::Password sql=hidden");
|
||||
dol_syslog("Adherent::Password sql=".$sql);
|
||||
dol_syslog(get_class($this)."::setPassword sql=".$sql);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -772,7 +772,7 @@ class Adherent extends CommonObject
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->error=$luser->error;
|
||||
dol_syslog("Adherent::password ".$this->error,LOG_ERR);
|
||||
dol_syslog(get_class($this)."::setPassword ".$this->error,LOG_ERR);
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
@ -821,7 +821,7 @@ class Adherent extends CommonObject
|
||||
|
||||
// If user is linked to this member, remove old link to this member
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user SET fk_member = NULL WHERE fk_member = ".$this->id;
|
||||
dol_syslog("Adherent::setUserId sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::setUserId sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql) { $this->error=$this->db->error(); $this->db->rollback(); return -1; }
|
||||
|
||||
@ -830,7 +830,7 @@ class Adherent extends CommonObject
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user SET fk_member = ".$this->id;
|
||||
$sql.= " WHERE rowid = ".$userid;
|
||||
dol_syslog("Adherent::setUserId sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::setUserId sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql) { $this->error=$this->db->error(); $this->db->rollback(); return -2; }
|
||||
}
|
||||
@ -858,7 +858,7 @@ class Adherent extends CommonObject
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET fk_soc = null";
|
||||
$sql.= " WHERE fk_soc = '".$thirdpartyid."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
dol_syslog("Adherent::setThirdPartyId sql=".$sql);
|
||||
dol_syslog(get_class($this)."::setThirdPartyId sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
}
|
||||
|
||||
@ -866,7 +866,7 @@ class Adherent extends CommonObject
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET fk_soc = ".($thirdpartyid>0 ? $thirdpartyid : 'null');
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
dol_syslog("Adherent::setThirdPartyId sql=".$sql);
|
||||
dol_syslog(get_class($this)."::setThirdPartyId sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -876,7 +876,7 @@ class Adherent extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
dol_syslog("Adherent::setThirdPartyId ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::setThirdPartyId ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
@ -947,7 +947,7 @@ class Adherent extends CommonObject
|
||||
elseif ($fk_soc) $sql.= " AND d.fk_soc='".$fk_soc."'";
|
||||
else $sql.= " AND d.rowid=".$rowid;
|
||||
|
||||
dol_syslog("Adherent::fetch sql=".$sql);
|
||||
dol_syslog(get_class($this)."::fetch sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -1022,7 +1022,7 @@ class Adherent extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog("Adherent::fetch ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -1048,7 +1048,7 @@ class Adherent extends CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."cotisation as c";
|
||||
$sql.= " WHERE c.fk_adherent = ".$this->id;
|
||||
$sql.= " ORDER BY c.dateadh";
|
||||
dol_syslog("Adherent::fetch_subscriptions sql=".$sql);
|
||||
dol_syslog(get_class($this)."::fetch_subscriptions sql=".$sql);
|
||||
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -1092,27 +1092,28 @@ class Adherent extends CommonObject
|
||||
|
||||
|
||||
/**
|
||||
* Fonction qui recupere les donnees optionelles de l'adherent
|
||||
* Function to get extra fields of a member into $this->array_options
|
||||
* @param rowid
|
||||
* TODO Move this function into ExtraField class
|
||||
* TODO rename field fk_member into fk_element
|
||||
*/
|
||||
function fetch_optionals($rowid)
|
||||
{
|
||||
$options = new AdherentOptions($this->db);
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||
$options = new ExtraFields($this->db);
|
||||
$optionsArray = $options->fetch_name_optionals_label();
|
||||
|
||||
$tab=array();
|
||||
|
||||
$sql = "SELECT rowid";
|
||||
|
||||
foreach ($optionsArray as $name => $label)
|
||||
{
|
||||
$sql.= ", ".$name;
|
||||
}
|
||||
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_extrafields";
|
||||
$sql.= " WHERE fk_member=".$rowid;
|
||||
|
||||
dol_syslog("Adherent::fetch_optionals sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::fetch_optionals sql=".$sql, LOG_DEBUG);
|
||||
$result=$this->db->query( $sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -1236,7 +1237,7 @@ class Adherent extends CommonObject
|
||||
|
||||
if ($this->statut == 1)
|
||||
{
|
||||
dol_syslog("Adherent::validate statut of member does not allow this", LOG_WARNING);
|
||||
dol_syslog(get_class($this)."::validate statut of member does not allow this", LOG_WARNING);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1248,7 +1249,7 @@ class Adherent extends CommonObject
|
||||
$sql.= ", fk_user_valid=".$user->id;
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
dol_syslog("Adherent::validate sql=".$sql);
|
||||
dol_syslog(get_class($this)."::validate sql=".$sql);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
@ -1286,7 +1287,7 @@ class Adherent extends CommonObject
|
||||
|
||||
if ($this->statut == 0)
|
||||
{
|
||||
dol_syslog("Adherent::resiliate statut of member does not allow this", LOG_WARNING);
|
||||
dol_syslog(get_class($this)."::resiliate statut of member does not allow this", LOG_WARNING);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1405,7 +1406,7 @@ class Adherent extends CommonObject
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT.'/lib/security.lib.php');
|
||||
|
||||
dol_syslog("Adherent::add_to_spip");
|
||||
dol_syslog(get_class($this)."::add_to_spip");
|
||||
|
||||
if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
|
||||
defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
|
||||
@ -1517,7 +1518,7 @@ class Adherent extends CommonObject
|
||||
{
|
||||
global $conf,$langs;
|
||||
|
||||
dol_syslog("Adherent::add_to_mailman");
|
||||
dol_syslog(get_class($this)."::add_to_mailman");
|
||||
|
||||
if (! function_exists("curl_init"))
|
||||
{
|
||||
@ -2059,7 +2060,7 @@ class Adherent extends CommonObject
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'adherent as a';
|
||||
$sql.= ' WHERE a.rowid = '.$id;
|
||||
|
||||
dol_syslog("Adherent::info sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::info sql=".$sql, LOG_DEBUG);
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
|
||||
@ -33,7 +33,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/images.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_options.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/cotisation.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/compta/bank/class/account.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/html.formcompany.class.php");
|
||||
@ -47,7 +47,7 @@ $langs->load("users");
|
||||
if (! $user->rights->adherent->lire) accessforbidden();
|
||||
|
||||
$adh = new Adherent($db);
|
||||
$adho = new AdherentOptions($db);
|
||||
$adho = new ExtraFields($db);
|
||||
$errmsg='';
|
||||
|
||||
$action=GETPOST("action");
|
||||
@ -796,7 +796,7 @@ if ($action == 'edit')
|
||||
*
|
||||
********************************************/
|
||||
|
||||
$adho = new AdherentOptions($db);
|
||||
$adho = new ExtraFields($db);
|
||||
$adh = new Adherent($db);
|
||||
$adh->id = $rowid;
|
||||
$adh->fetch($rowid);
|
||||
|
||||
@ -26,11 +26,11 @@
|
||||
*/
|
||||
|
||||
require("../main.inc.php");
|
||||
require(DOL_DOCUMENT_ROOT."/adherents/class/adherent_options.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||
|
||||
$langs->load("members");
|
||||
|
||||
$adho = new AdherentOptions($db);
|
||||
$adho = new ExtraFields($db);
|
||||
$form = new Form($db);
|
||||
|
||||
/*
|
||||
|
||||
135
htdocs/adherents/class/adherent_options.class.php → htdocs/core/class/extrafields.class.php
Normal file → Executable file
135
htdocs/adherents/class/adherent_options.class.php → htdocs/core/class/extrafields.class.php
Normal file → Executable file
@ -3,7 +3,7 @@
|
||||
* Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||
* Copyright (C) 2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2009-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2009 Regis Houssin <regis@dolibarr.fr>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -22,19 +22,18 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/adherents/class/adherent_options.class.php
|
||||
* \ingroup member
|
||||
* \brief File of class to manage optionnal fields
|
||||
* \file htdocs/core/class/extrafields.class.php
|
||||
* \ingroup core
|
||||
* \brief File of class to manage extra fields
|
||||
* \version $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* \class AdherentOptions
|
||||
* \brief Class to manage table of optionnal fields
|
||||
* \class ExtraFields
|
||||
* \brief Class to manage standard extra fields
|
||||
*/
|
||||
class AdherentOptions
|
||||
class ExtraFields
|
||||
{
|
||||
var $id;
|
||||
var $db;
|
||||
// Tableau contenant le nom des champs en clef et la definition de ces champs
|
||||
var $attribute_type;
|
||||
@ -44,24 +43,20 @@ class AdherentOptions
|
||||
var $attribute_size;
|
||||
|
||||
var $error;
|
||||
/*
|
||||
* Constructor
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* \brief AdherentOptions
|
||||
* \param DB base de donnees
|
||||
* \param id id de l'adherent
|
||||
* Constructor
|
||||
* @param DB base de donnees
|
||||
*/
|
||||
function AdherentOptions($DB, $id='')
|
||||
function ExtraFields($DB)
|
||||
{
|
||||
$this->db = $DB ;
|
||||
$this->id = $id;
|
||||
$this->error = array();
|
||||
$this->attribute_type = array();
|
||||
$this->attribute_label = array();
|
||||
$this->attribute_size = array();
|
||||
$this->attribute_elementtype = array();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,13 +64,26 @@ class AdherentOptions
|
||||
* @param attrname code of attribute
|
||||
* @param type Type of attribute ('int', 'text', 'varchar', 'date', 'datehour')
|
||||
* @param length Size/length of attribute
|
||||
* @param elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
function create($attrname,$type='varchar',$length=255) {
|
||||
function create($attrname,$type='varchar',$length=255,$elementtype='member')
|
||||
{
|
||||
$table='';
|
||||
if ($elementtype == 'member') $table='adherent_extrafields';
|
||||
if ($elementtype == 'company') $table='societe_extrafields';
|
||||
if ($elementtype == 'contact') $table='socpeople_extrafields';
|
||||
if ($elementtype == 'product') $table='product_extrafields';
|
||||
if (empty($table))
|
||||
{
|
||||
print 'ErrorBarValueForParameters';
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
$field_desc = array('type'=>$type, 'value'=>$length);
|
||||
$result=$this->db->DDLAddField(MAIN_DB_PREFIX.'adherent_extrafields', $attrname, $field_desc);
|
||||
$result=$this->db->DDLAddField(MAIN_DB_PREFIX.$table, $attrname, $field_desc);
|
||||
if ($result > 0)
|
||||
{
|
||||
return 1;
|
||||
@ -99,7 +107,7 @@ class AdherentOptions
|
||||
* @param type Type of attribute ('int', 'text', 'varchar', 'date', 'datehour')
|
||||
* @param pos Position of attribute
|
||||
* @param size Size/length of attribute
|
||||
* @param elementtype Element type ('member', 'product', ...)
|
||||
* @param elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
function create_label($attrname,$label='',$type='',$pos=0,$size=0, $elementtype='member')
|
||||
@ -118,11 +126,11 @@ class AdherentOptions
|
||||
$sql.= " '".$type."',";
|
||||
$sql.= " '".$pos."',";
|
||||
$sql.= " '".$size."',";
|
||||
$sql.= " ".$conf->entity;
|
||||
$sql.= ", '".$elementtype."'";
|
||||
$sql.= " ".$conf->entity.",";
|
||||
$sql.= " '".$elementtype."'";
|
||||
$sql.=')';
|
||||
|
||||
dol_syslog("AdherentOptions::create_label sql=".$sql);
|
||||
dol_syslog(get_class($this)."::create_label sql=".$sql);
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
return 1;
|
||||
@ -137,18 +145,30 @@ class AdherentOptions
|
||||
|
||||
/**
|
||||
* Delete an optionnal attribute
|
||||
* @param attrname Code of attribute to delete
|
||||
* TODO This does not work with multicompany module
|
||||
* @param attrname Code of attribute to delete
|
||||
* @param elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @return int < 0 if KO, 0 if nothing is done, 1 if OK
|
||||
*/
|
||||
function delete($attrname)
|
||||
function delete($attrname,$elementtype='member')
|
||||
{
|
||||
$table='';
|
||||
if ($elementtype == 'member') $table='adherent_extrafields';
|
||||
if ($elementtype == 'company') $table='societe_extrafields';
|
||||
if ($elementtype == 'contact') $table='socpeople_extrafields';
|
||||
if ($elementtype == 'product') $table='product_extrafields';
|
||||
if (empty($table))
|
||||
{
|
||||
print 'ErrorBarValueForParameters';
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
$result=$this->db->DDLDropField(MAIN_DB_PREFIX."adherent_extrafields",$attrname);
|
||||
$result=$this->db->DDLDropField(MAIN_DB_PREFIX.$table,$attrname);
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog("AdherentOption::delete ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
|
||||
}
|
||||
|
||||
$result=$this->delete_label($attrname);
|
||||
@ -165,18 +185,21 @@ class AdherentOptions
|
||||
/**
|
||||
* Delete description of an optionnal attribute
|
||||
* @param attrname Code of attribute to delete
|
||||
* @param elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @return int < 0 if KO, 0 if nothing is done, 1 if OK
|
||||
*/
|
||||
function delete_label($attrname)
|
||||
function delete_label($attrname,$elementtype='member')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."extrafields";
|
||||
$sql.= " WHERE name = '$attrname'";
|
||||
$sql.= " WHERE name = '".$attrname."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND elementtype = '".$elementtype."'";
|
||||
|
||||
dol_syslog("AdherentOptions::delete_label sql=".$sql);
|
||||
dol_syslog(get_class($this)."::delete_label sql=".$sql);
|
||||
if ( $this->db->query( $sql) )
|
||||
{
|
||||
return 1;
|
||||
@ -184,7 +207,7 @@ class AdherentOptions
|
||||
else
|
||||
{
|
||||
print dol_print_error($this->db);
|
||||
return 0;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -199,15 +222,26 @@ class AdherentOptions
|
||||
* @param attrname name of attribute
|
||||
* @param type type of attribute
|
||||
* @param length length of attribute
|
||||
* @param elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @return int >0 if OK, <=0 if KO
|
||||
* TODO This does not works with mutlicompany module
|
||||
*/
|
||||
function update($attrname,$type='varchar',$length=255)
|
||||
function update($attrname,$type='varchar',$length=255,$elementtype='member')
|
||||
{
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
$table='';
|
||||
if ($elementtype == 'member') $table='adherent_extrafields';
|
||||
if ($elementtype == 'company') $table='societe_extrafields';
|
||||
if ($elementtype == 'contact') $table='socpeople_extrafields';
|
||||
if ($elementtype == 'product') $table='product_extrafields';
|
||||
if (empty($table))
|
||||
{
|
||||
print 'ErrorBarValueForParameters';
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
$field_desc = array('type'=>$type, 'value'=>$length);
|
||||
$result=$this->db->DDLUpdateField(MAIN_DB_PREFIX.'extrafields', $attrname, $field_desc);
|
||||
$result=$this->db->DDLUpdateField(MAIN_DB_PREFIX.$table, $attrname, $field_desc);
|
||||
if ($result > 0)
|
||||
{
|
||||
return 1;
|
||||
@ -226,17 +260,17 @@ class AdherentOptions
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify description of an optionnal attribute
|
||||
* @param attrname nom de l'atribut
|
||||
* @param label nom du label
|
||||
* @param type type
|
||||
* @param size size
|
||||
* @param elementtype Element type ('member', 'product', ...)
|
||||
*/
|
||||
* Modify description of personalized attribute
|
||||
* @param attrname name of attribute
|
||||
* @param label label of attribute
|
||||
* @param type type of attribute
|
||||
* @param length length of attribute
|
||||
* @param elementtype Element type ('member', 'product', 'company', ...)
|
||||
*/
|
||||
function update_label($attrname,$label,$type,$size,$elementtype='member')
|
||||
{
|
||||
global $conf;
|
||||
dol_syslog("AdherentOptions::update_label $attrname,$label,$type,$size");
|
||||
dol_syslog(get_class($this)."::update_label $attrname,$label,$type,$size");
|
||||
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
@ -246,7 +280,7 @@ class AdherentOptions
|
||||
$sql_del.= " WHERE name = '".$attrname."'";
|
||||
$sql_del.= " AND entity = ".$conf->entity;
|
||||
$sql_del.= " AND elementtype = '".$elementtype."'";
|
||||
dol_syslog("AdherentOptions::update_label sql=".$sql_del);
|
||||
dol_syslog(get_class($this)."::update_label sql=".$sql_del);
|
||||
$resql1=$this->db->query($sql_del);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(";
|
||||
@ -254,7 +288,8 @@ class AdherentOptions
|
||||
$sql.= " entity,";
|
||||
$sql.= " label,";
|
||||
$sql.= " type,";
|
||||
$sql.= " size";
|
||||
$sql.= " size,";
|
||||
$sql.= " elementtype";
|
||||
$sql.= ") VALUES (";
|
||||
$sql.= "'".$attrname."',";
|
||||
$sql.= " ".$conf->entity.",";
|
||||
@ -263,7 +298,7 @@ class AdherentOptions
|
||||
$sql.= " '".$size."',";
|
||||
$sql.= " '".$elementtype."'";
|
||||
$sql.= ")";
|
||||
dol_syslog("AdherentOptions::update_label sql=".$sql);
|
||||
dol_syslog(get_class($this)."::update_label sql=".$sql);
|
||||
$resql2=$this->db->query($sql);
|
||||
|
||||
if ($resql1 && $resql2)
|
||||
@ -287,7 +322,7 @@ class AdherentOptions
|
||||
|
||||
|
||||
/**
|
||||
* \brief fonction qui modifie un label
|
||||
* Load array of labels
|
||||
*/
|
||||
function fetch_optionals()
|
||||
{
|
||||
@ -296,7 +331,7 @@ class AdherentOptions
|
||||
|
||||
|
||||
/**
|
||||
* \brief Load array this->attribute_label
|
||||
* Load array this->attribute_label
|
||||
*/
|
||||
function fetch_name_optionals_label($elementtype='member')
|
||||
{
|
||||
@ -310,7 +345,7 @@ class AdherentOptions
|
||||
if ($elementtype) $sql.= " AND elementtype = '".$elementtype."'";
|
||||
$sql.= " ORDER BY pos";
|
||||
|
||||
dol_syslog("Adherent_options::fetch_name_optionals_label sql=".$sql);
|
||||
dol_syslog(get_class($this)."::fetch_name_optionals_label sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -239,7 +239,7 @@ if (! empty($conf->file->main_force_https))
|
||||
|
||||
// Chargement des includes complementaires de presentation
|
||||
if (! defined('NOREQUIREMENU')) require_once(DOL_DOCUMENT_ROOT ."/core/class/menu.class.php"); // Need 10ko memory (11ko in 2.2)
|
||||
if (! defined('NOREQUIREHTML')) require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php"); // Need 660ko memory (800ko in 2.2)
|
||||
if (! defined('NOREQUIREHTML')) require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php"); // Need 660ko memory (800ko in 2.2)
|
||||
if (! defined('NOREQUIREAJAX') && $conf->use_javascript_ajax) require_once(DOL_DOCUMENT_ROOT.'/lib/ajax.lib.php'); // Need 22ko memory
|
||||
//dol_stopwithmem();
|
||||
|
||||
|
||||
@ -31,8 +31,7 @@ define("NOCSRFCHECK",1); // We accept to go on this page from external web site.
|
||||
require("../../main.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_options.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/html.form.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||
|
||||
// Security check
|
||||
if (empty($conf->adherent->enabled)) accessforbidden('',1,1,1);
|
||||
@ -217,7 +216,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'added')
|
||||
$html = new Form($db);
|
||||
|
||||
$adht = new AdherentType($db);
|
||||
$adho = new AdherentOptions($db);
|
||||
$adho = new ExtraFields($db);
|
||||
|
||||
llxHeaderVierge($langs->trans("NewSubscription"));
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||
* Copyright (C) 2007-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2007-2011 Laurent Destailleur <eldy@users.sourceforge.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
|
||||
@ -31,7 +31,7 @@ define("NOCSRFCHECK",1); // We accept to go on this page from external web site.
|
||||
require("../../main.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_options.class.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php");
|
||||
|
||||
// Security check
|
||||
if (empty($conf->adherent->enabled)) accessforbidden('',1,1,1);
|
||||
@ -42,9 +42,15 @@ $langs->load("members");
|
||||
$langs->load("companies");
|
||||
$langs->load("other");
|
||||
|
||||
|
||||
$rowid=$_GET["id"];
|
||||
$adho = new AdherentOptions($db);
|
||||
$adho = new ExtraFields($db);
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
// None
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user