| Line 47... |
Line 47... |
| 47 |
* @param string $cle
|
47 |
* @param string $cle
|
| 48 |
* @param string $valeur
|
48 |
* @param string $valeur
|
| 49 |
* @return bool
|
49 |
* @return bool
|
| 50 |
*/
|
50 |
*/
|
| 51 |
public function existe($id_element_lie, $cle) {
|
51 |
public function existe($id_element_lie, $cle) {
|
| 52 |
$id = $this->proteger($id_element_lie);
|
52 |
$id = Cel::db()->proteger($id_element_lie);
|
| 53 |
$cle = $this->proteger($cle);
|
53 |
$cle = Cel::db()->proteger($cle);
|
| 54 |
$requete = 'SELECT COUNT(*) >= 1 AS existe '.
|
54 |
$requete = 'SELECT COUNT(*) >= 1 AS existe '.
|
| 55 |
"FROM {$this->table_champs_etendus} ".
|
55 |
"FROM {$this->table_champs_etendus} ".
|
| 56 |
"WHERE {$this->champ_id} = $id ".
|
56 |
"WHERE {$this->champ_id} = $id ".
|
| 57 |
" AND cle = $cle ";
|
57 |
" AND cle = $cle ";
|
| Line 58... |
Line 58... |
| 58 |
|
58 |
|
| 59 |
$resultat = $this->executerRequete($requete);
|
59 |
$resultat = Cel::db()->executerRequete($requete);
|
| 60 |
return ($resultat[0]['existe'] == '1');
|
60 |
return ($resultat[0]['existe'] == '1');
|
| Line 61... |
Line 61... |
| 61 |
}
|
61 |
}
|
| 62 |
|
62 |
|
| 63 |
/**
|
63 |
/**
|
| 64 |
* Renvoie tous les champs étendus associé à l'élément passé en paramètre
|
64 |
* Renvoie tous les champs étendus associé à l'élément passé en paramètre
|
| 65 |
*
|
65 |
*
|
| 66 |
* @param int $id_element_lie
|
66 |
* @param int $id_element_lie
|
| 67 |
* @return array tableau associatif des champs de la table etendu
|
67 |
* @return array tableau associatif des champs de la table etendu
|
| 68 |
*/
|
68 |
*/
|
| 69 |
public function consulter($id_element_lie) {
|
69 |
public function consulter($id_element_lie) {
|
| 70 |
$id = $this->proteger($id_element_lie);
|
70 |
$id = Cel::db()->proteger($id_element_lie);
|
| 71 |
$requete = "SELECT * FROM {$this->table_champs_etendus} WHERE {$this->champ_id} = $id ";
|
71 |
$requete = "SELECT * FROM {$this->table_champs_etendus} WHERE {$this->champ_id} = $id ";
|
| 72 |
$resultat = $this->executerRequete($requete);
|
72 |
$resultat = Cel::db()->executerRequete($requete);
|
| Line 73... |
Line 73... |
| 73 |
return $resultat;
|
73 |
return $resultat;
|
| 74 |
}
|
74 |
}
|
| Line 82... |
Line 82... |
| 82 |
* @return array tableau associatif de tableau d'objets ChampEtendu.
|
82 |
* @return array tableau associatif de tableau d'objets ChampEtendu.
|
| 83 |
*/
|
83 |
*/
|
| 84 |
public function consulterParLots(Array $ids_element_lies) {
|
84 |
public function consulterParLots(Array $ids_element_lies) {
|
| 85 |
$champs_etendus_par_element = array();
|
85 |
$champs_etendus_par_element = array();
|
| 86 |
if (!empty($ids_element_lies)) {
|
86 |
if (!empty($ids_element_lies)) {
|
| 87 |
$ids_element_lies = array_map(array($this, 'proteger'),$ids_element_lies);
|
87 |
$ids_element_lies = array_map(array(Cel::db(), 'proteger'),$ids_element_lies);
|
| 88 |
$ids = implode(',', $ids_element_lies);
|
88 |
$ids = implode(',', $ids_element_lies);
|
| Line 89... |
Line 89... |
| 89 |
|
89 |
|
| 90 |
$requete = "SELECT * FROM {$this->table_champs_etendus} WHERE {$this->champ_id} IN ($ids) ";
|
90 |
$requete = "SELECT * FROM {$this->table_champs_etendus} WHERE {$this->champ_id} IN ($ids) ";
|
| Line 91... |
Line 91... |
| 91 |
$resultats = $this->executerRequete($requete);
|
91 |
$resultats = Cel::db()->executerRequete($requete);
|
| 92 |
|
92 |
|
| 93 |
foreach ($resultats as &$ligne) {
|
93 |
foreach ($resultats as &$ligne) {
|
| 94 |
$id_element = $ligne[$this->champ_id];
|
94 |
$id_element = $ligne[$this->champ_id];
|
| Line 113... |
Line 113... |
| 113 |
*
|
113 |
*
|
| 114 |
* @param ChampEtendu $champ_etendu
|
114 |
* @param ChampEtendu $champ_etendu
|
| 115 |
* @return bool true si l'ajout a eu lieu
|
115 |
* @return bool true si l'ajout a eu lieu
|
| 116 |
*/
|
116 |
*/
|
| 117 |
public function ajouter(ChampEtendu $champ_etendu) {
|
117 |
public function ajouter(ChampEtendu $champ_etendu) {
|
| 118 |
$id = $this->proteger($champ_etendu->id);
|
118 |
$id = Cel::db()->proteger($champ_etendu->id);
|
| 119 |
$cle = $this->proteger($champ_etendu->cle);
|
119 |
$cle = Cel::db()->proteger($champ_etendu->cle);
|
| 120 |
$label = $this->proteger($champ_etendu->label);
|
120 |
$label = Cel::db()->proteger($champ_etendu->label);
|
| 121 |
$valeur = $this->proteger($champ_etendu->valeur);
|
121 |
$valeur = Cel::db()->proteger($champ_etendu->valeur);
|
| Line 122... |
Line 122... |
| 122 |
|
122 |
|
| 123 |
$requete = "INSERT INTO {$this->table_champs_etendus} ".
|
123 |
$requete = "INSERT INTO {$this->table_champs_etendus} ".
|
| 124 |
"( {$this->champ_id}, cle, label, valeur) ".
|
124 |
"( {$this->champ_id}, cle, label, valeur) ".
|
| 125 |
"VALUES ($id, $cle, $label, $valeur) ".
|
125 |
"VALUES ($id, $cle, $label, $valeur) ".
|
| Line 126... |
Line 126... |
| 126 |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)";
|
126 |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)";
|
| 127 |
|
127 |
|
| 128 |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
|
128 |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
|
| 129 |
// où l'on change de sgbd
|
129 |
// où l'on change de sgbd
|
| 130 |
$ajout = $this->executerRequeteSimple($requete);
|
130 |
$ajout = Cel::db()->executerRequeteSimple($requete);
|
| Line 131... |
Line 131... |
| 131 |
return ($ajout !== false);
|
131 |
return ($ajout !== false);
|
| 132 |
}
|
132 |
}
|
| Line 139... |
Line 139... |
| 139 |
* @return bool true si l'ajout a eu lieu
|
139 |
* @return bool true si l'ajout a eu lieu
|
| 140 |
*/
|
140 |
*/
|
| 141 |
public function ajouterParLots(Array $champs_etendus) {
|
141 |
public function ajouterParLots(Array $champs_etendus) {
|
| 142 |
$lignes = array();
|
142 |
$lignes = array();
|
| 143 |
foreach ($champs_etendus as $champ_etendu) {
|
143 |
foreach ($champs_etendus as $champ_etendu) {
|
| 144 |
$id = $this->proteger($champ_etendu->id);
|
144 |
$id = Cel::db()->proteger($champ_etendu->id);
|
| 145 |
$cle = $this->proteger($champ_etendu->cle);
|
145 |
$cle = Cel::db()->proteger($champ_etendu->cle);
|
| 146 |
$label = $this->proteger($champ_etendu->label);
|
146 |
$label = Cel::db()->proteger($champ_etendu->label);
|
| 147 |
$valeur = $this->proteger($champ_etendu->valeur);
|
147 |
$valeur = Cel::db()->proteger($champ_etendu->valeur);
|
| Line 148... |
Line 148... |
| 148 |
|
148 |
|
| 149 |
$lignes[] = "($id, $cle, $label, $valeur)";
|
149 |
$lignes[] = "($id, $cle, $label, $valeur)";
|
| 150 |
}
|
150 |
}
|
| Line 155... |
Line 155... |
| 155 |
"VALUES $values ".
|
155 |
"VALUES $values ".
|
| 156 |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)";
|
156 |
"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)";
|
| Line 157... |
Line 157... |
| 157 |
|
157 |
|
| 158 |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
|
158 |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
|
| 159 |
// où l'on change de sgbd
|
159 |
// où l'on change de sgbd
|
| 160 |
$ajout = $this->executerRequeteSimple($requete);
|
160 |
$ajout = Cel::db()->executerRequeteSimple($requete);
|
| 161 |
return ($ajout !== false);
|
161 |
return ($ajout !== false);
|
| Line 162... |
Line 162... |
| 162 |
}
|
162 |
}
|
| 163 |
|
163 |
|
| 164 |
/**
|
164 |
/**
|
| 165 |
* Modifie un champ étendu associé à l'élément passé en paramètre
|
165 |
* Modifie un champ étendu associé à l'élément passé en paramètre
|
| 166 |
*
|
166 |
*
|
| 167 |
* @param ChampEtendu $champ_etendu
|
167 |
* @param ChampEtendu $champ_etendu
|
| 168 |
* @return bool true si la modification a eu lieu
|
168 |
* @return bool true si la modification a eu lieu
|
| 169 |
*/
|
169 |
*/
|
| 170 |
public function modifier(ChampEtendu $champ_etendu) {
|
170 |
public function modifier(ChampEtendu $champ_etendu) {
|
| 171 |
$id = $this->proteger($champ_etendu->id);
|
171 |
$id = Cel::db()->proteger($champ_etendu->id);
|
| 172 |
$cle = $this->proteger($champ_etendu->cle);
|
172 |
$cle = Cel::db()->proteger($champ_etendu->cle);
|
| Line 173... |
Line 173... |
| 173 |
$label = $this->proteger($champ_etendu->label);
|
173 |
$label = Cel::db()->proteger($champ_etendu->label);
|
| 174 |
$valeur = $this->proteger($champ_etendu->valeur);
|
174 |
$valeur = Cel::db()->proteger($champ_etendu->valeur);
|
| 175 |
|
175 |
|
| 176 |
$requete = "UPDATE {$this->table_champs_etendus} ".
|
176 |
$requete = "UPDATE {$this->table_champs_etendus} ".
|
| Line 177... |
Line 177... |
| 177 |
"SET label = $label, valeur = $valeur ".
|
177 |
"SET label = $label, valeur = $valeur ".
|
| 178 |
"WHERE cle = $cle".
|
178 |
"WHERE cle = $cle".
|
| 179 |
" AND {$this->champ_id} = $id ";
|
179 |
" AND {$this->champ_id} = $id ";
|
| Line 180... |
Line 180... |
| 180 |
|
180 |
|
| 181 |
$modif = $this->executerRequeteSimple($requete);
|
181 |
$modif = Cel::db()->executerRequeteSimple($requete);
|
| Line 188... |
Line 188... |
| 188 |
* @param int $id_element_lie
|
188 |
* @param int $id_element_lie
|
| 189 |
* @param string $cle
|
189 |
* @param string $cle
|
| 190 |
* @return bool
|
190 |
* @return bool
|
| 191 |
*/
|
191 |
*/
|
| 192 |
public function supprimer($id_element_lie, $cle) {
|
192 |
public function supprimer($id_element_lie, $cle) {
|
| 193 |
$id = $this->proteger($id_element_lie);
|
193 |
$id = Cel::db()->proteger($id_element_lie);
|
| 194 |
$cle = $this->proteger($cle);
|
194 |
$cle = Cel::db()->proteger($cle);
|
| 195 |
$requete = "DELETE FROM {$this->table_champs_etendus} WHERE cle = $cle AND {$this->champ_id} = $id ";
|
195 |
$requete = "DELETE FROM {$this->table_champs_etendus} WHERE cle = $cle AND {$this->champ_id} = $id ";
|
| 196 |
$suppr = $this->executerRequeteSimple($requete);
|
196 |
$suppr = Cel::db()->executerRequeteSimple($requete);
|
| 197 |
return ($suppr !== false);
|
197 |
return ($suppr !== false);
|
| 198 |
}
|
198 |
}
|
| Line 199... |
Line 199... |
| 199 |
|
199 |
|
| 200 |
/**
|
200 |
/**
|
| 201 |
* Supprime tous les champs champ étendu associés à l'élément passés en paramètre
|
201 |
* Supprime tous les champs champ étendu associés à l'élément passés en paramètre
|
| 202 |
*
|
202 |
*
|
| 203 |
* @param int $id_element_lie
|
203 |
* @param int $id_element_lie
|
| 204 |
* @return bool
|
204 |
* @return bool
|
| 205 |
*/
|
205 |
*/
|
| 206 |
public function vider($id_element_lie) {
|
206 |
public function vider($id_element_lie) {
|
| 207 |
$id = $this->proteger($id_element_lie);
|
207 |
$id = Cel::db()->proteger($id_element_lie);
|
| 208 |
$requete = "DELETE FROM {$this->table_champs_etendus} WHERE {$this->champ_id} = $id ";
|
208 |
$requete = "DELETE FROM {$this->table_champs_etendus} WHERE {$this->champ_id} = $id ";
|
| 209 |
$suppr = $this->executerRequeteSimple($requete);
|
209 |
$suppr = Cel::db()->executerRequeteSimple($requete);
|
| 210 |
return ($suppr !== false);
|
210 |
return ($suppr !== false);
|
| Line 211... |
Line 211... |
| 211 |
}
|
211 |
}
|
| 212 |
|
212 |
|
| Line 217... |
Line 217... |
| 217 |
* @return bool
|
217 |
* @return bool
|
| 218 |
*/
|
218 |
*/
|
| 219 |
public function viderParLots($ids_elements_lies) {
|
219 |
public function viderParLots($ids_elements_lies) {
|
| 220 |
$ids = $this->protegerTableau($ids_elements_lies);
|
220 |
$ids = $this->protegerTableau($ids_elements_lies);
|
| 221 |
$requete = "DELETE FROM {$this->table_champs_etendus} WHERE {$this->champ_id} IN (".implode(',',$ids).") ";
|
221 |
$requete = "DELETE FROM {$this->table_champs_etendus} WHERE {$this->champ_id} IN (".implode(',',$ids).") ";
|
| 222 |
$suppr = $this->executerRequeteSimple($requete);
|
222 |
$suppr = Cel::db()->executerRequeteSimple($requete);
|
| 223 |
return ($suppr !== false);
|
223 |
return ($suppr !== false);
|
| 224 |
}
|
224 |
}
|
| Line 225... |
Line 225... |
| 225 |
|
225 |
|
| 226 |
/**
|
226 |
/**
|
| Line 232... |
Line 232... |
| 232 |
public function consulterClesParLots($ids_elements_lies) {
|
232 |
public function consulterClesParLots($ids_elements_lies) {
|
| 233 |
$cles_fmt = array();
|
233 |
$cles_fmt = array();
|
| 234 |
if(!empty($ids_elements_lies)) {
|
234 |
if(!empty($ids_elements_lies)) {
|
| 235 |
$ids = $this->protegerTableau($ids_elements_lies);
|
235 |
$ids = $this->protegerTableau($ids_elements_lies);
|
| 236 |
$requete = "SELECT cle FROM {$this->table_champs_etendus} WHERE {$this->champ_id} IN (".implode(',',$ids).") ";
|
236 |
$requete = "SELECT cle FROM {$this->table_champs_etendus} WHERE {$this->champ_id} IN (".implode(',',$ids).") ";
|
| 237 |
$cles = $this->executerRequete($requete);
|
237 |
$cles = Cel::db()->executerRequete($requete);
|
| 238 |
$i = 0;
|
238 |
$i = 0;
|
| 239 |
foreach($cles as &$cle) {
|
239 |
foreach($cles as &$cle) {
|
| 240 |
$cles_fmt[$cle['cle']] = $i++;
|
240 |
$cles_fmt[$cle['cle']] = $i++;
|
| 241 |
}
|
241 |
}
|
| 242 |
}
|
242 |
}
|