10 require_once NOALYSS_INCLUDE.
'/lib/ac_common.php';
11 require_once NOALYSS_INCLUDE.
"/database/attr_def_sql.class.php";
19 parent::__construct($p_cn,
$p_id);
24 return $this->
getp($p_string);
29 $this->
setp($p_string, $p_value);
36 if (strlen(trim($this->ad_text))==0)
37 throw new Exception(
'La description ne peut pas être vide', 1);
38 if (strlen(trim($this->ad_type))==0)
39 throw new Exception(
'Le type ne peut pas être vide', 1);
40 $this->ad_type=strtolower($this->ad_type);
41 if (in_array($this->ad_type, array(
'date',
'text',
'numeric',
'zone',
'poste',
'card',
'select',
'check'))==
false)
42 throw new Exception(
'Le type doit être text, numeric,poste, card, select ou date', 1);
43 if (trim($this->ad_size)==
''||
isNumber($this->ad_size)==0||$this->ad_size>22)
45 switch ($this->ad_type)
64 if ($this->ad_type==
'numeric')
66 $this->ad_extra=(trim($this->ad_extra)==
'')?
'2':$this->ad_extra;
68 throw new Exception(
"La précision doit être un chiffre");
70 if ($this->ad_type==
'select')
72 if (trim($this->ad_extra)==
"")
73 throw new Exception(
"La requête SQL est vide ");
74 if (preg_match(
'/^\h*select/i', $this->ad_extra)==0)
75 throw new Exception(
"La requête SQL doit commencer par SELECT ");
79 $this->
cn->exec_sql($this->ad_extra);
84 throw new Exception(
"La requête SQL ".
h($this->ad_extra).
" est invalide ");
95 if ($this->ad_id<9000)
107 public function delete()
109 if ($this->ad_id<9000)
111 $sql=$this->
cn->exec_sql(
"delete from fiche_detail where ad_id=$1 ", array($this->ad_id));
113 $sql=
"delete from jnt_fic_attr where ad_id=$1";
114 $res=$this->
cn->exec_sql(
$sql, array($this->ad_id));
116 $sql=
"delete from attr_def where ad_id=$1";
117 $res=$this->
cn->exec_sql(
$sql, array($this->ad_id));
126 if ($o1->ad_id>$o2->ad_id)
128 if ($o1->ad_id==$o2->ad_id)
137 if ($this->ad_id < 1)
152 $array[$nkey]=$this->$value;
157 tracedebug(
"card_attribute.log",
$array);