Subversion Repositories eFlore/Applications.cel

Rev

Rev 1738 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1738 Rev 1765
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
		}