Subversion Repositories Applications.annuaire

Rev

Rev 4 | Rev 7 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4 Rev 5
Line 36... Line 36...
36
					'WHERE amc_ce_annuaire = '.$id_annuaire ;
36
					'WHERE amc_ce_annuaire = '.$id_annuaire ;
Line 37... Line 37...
37
 
37
 
38
		$resultat = $this->requeteTous($requete);
38
		$resultat = $this->requeteTous($requete);
39
		$annuaire = array();
39
		$annuaire = array();
-
 
40
		foreach ($resultat as $ligne) {
40
		foreach ($resultat as $ligne) {
41
			// On remplace l'identifiant du type d'affichage par son nom
41
			$type_affichage = $this->renvoyerCorrespondanceNomId($ligne['amc_ce_type_affichage'], $this->id_liste_champs);
42
			$type_affichage = $this->renvoyerCorrespondanceNomId($ligne['amc_ce_type_affichage'], $this->id_liste_champs);
42
			$ligne['amc_ce_nom_type_affichage']  = $type_affichage['amo_nom'];
43
			$ligne['amc_ce_nom_type_affichage']  = $type_affichage['amo_nom'];
43
			$annuaire[] = $ligne;
44
			$annuaire[] = $ligne;
Line 44... Line 45...
44
		}
45
		}
45
 
46
 
Line -... Line 47...
-
 
47
		return $annuaire;
-
 
48
	}
-
 
49
 
-
 
50
	/**
-
 
51
	 * Charge les elements d'une liste d'ontologie donnée
46
		return $annuaire;
52
	 * @param int $id_liste	l'identifiant de la liste dont on veut les élements
47
	}
53
	 * @param Array un tableau contenant les élements de la liste
48
 
54
	 */
49
	public function chargerInfosListe($id_liste) {
55
	public function chargerInfosListe($id_liste) {
50
		$requete = 'SELECT amo_nom, amo_id_ontologie '.
56
		$requete = 'SELECT amo_nom, amo_id_ontologie '.
Line 89... Line 95...
89
	}
95
	}
Line 90... Line 96...
90
 
96
 
91
	/**
97
	/**
92
	 * Charge les informations d'une metadonnee
98
	 * Charge les informations d'une metadonnee
93
	 * @param int l'identifiant de cette metadonnee
99
	 * @param int l'identifiant de cette metadonnee
94
	 * @return array() un tableau contenant les informations sur cette metadonnee
100
	 * @return Array un tableau contenant les informations sur cette metadonnee
95
	 */
101
	 */
96
	 public function chargerInformationsMetaDonnee($id) {
102
	 public function chargerInformationsMetaDonnee($id) {
97
	 	$requete = 'SELECT * '.
103
	 	$requete = 'SELECT * '.
98
	 				'FROM annu_meta_colonne '.
104
	 				'FROM annu_meta_colonne '.
Line 99... Line 105...
99
	 				'WHERE amc_id_champ = '.$id;
105
	 				'WHERE amc_id_champ = '.$id;
100
 
106
 
Line -... Line 107...
-
 
107
	 	return $this->requeteUn($requete);
-
 
108
	 }
-
 
109
 
-
 
110
	/**
-
 
111
	 * Ajoute une nouvelle méta colonne à un annuaire donné
101
	 	return $this->requeteUn($requete);
112
	 * @param Array $valeurs les valeurs à ajouter dans la base
Line 102... Line 113...
102
	 }
113
	 * @return boolean true si la requete a réussi, false sinon
103
 
114
	 */
104
	public function ajouterNouvelleMetadonnee($valeurs) {
115
	public function ajouterNouvelleMetadonnee($valeurs) {
105
 
116
 
106
		$ontologie_liee = $this->proteger($valeurs['amc_ce_ontologie']);
117
		$ontologie_liee = $this->proteger($valeurs['amc_ce_ontologie']);
107
		$annuaire_lie = $this->proteger($valeurs['amc_ce_annuaire']);
118
		$annuaire_lie = $this->proteger($valeurs['amc_ce_annuaire']);
108
		$type_sql = $this->renvoyerTypeSQLPourChamp($valeurs['amc_ce_type_affichage']);
119
		$type_sql = $this->renvoyerTypeSQLPourChamp($valeurs['amc_ce_type_affichage']);
109
		$longueur = 255;
120
		$longueur = $this->renvoyerLongueurPourChamp($valeurs['amc_ce_type_affichage']);
Line 124... Line 135...
124
							$type_affichage.')';
135
							$type_affichage.')';
Line 125... Line 136...
125
 
136
 
126
		return $this->requete($requete);
137
		return $this->requete($requete);
Line -... Line 138...
-
 
138
	}
-
 
139
 
-
 
140
	/**
-
 
141
	 * Modifie une meta colonne liée à un annuaire, grâce aux valeurs passées en paramètre
-
 
142
	 * @param Array $valeurs les valeurs à modifier
127
	}
143
	 * @return boolean true si la requete a réussi, false sinon
Line 128... Line 144...
128
 
144
	 */
129
	public function modifierMetadonnee($valeurs) {
145
	public function modifierMetadonnee($valeurs) {
130
 
146
 
131
		$type_sql = $this->renvoyerTypeSQLPourChamp($valeurs['amc_ce_type_affichage']);
147
		$type_sql = $this->renvoyerTypeSQLPourChamp($valeurs['amc_ce_type_affichage']);
132
		$longueur = 255;
148
		$longueur = $this->renvoyerLongueurPourChamp($valeurs['amc_ce_type_affichage']);
133
		$nom = $this->proteger($valeurs['amc_nom']);
149
		$nom = $this->proteger($valeurs['amc_nom']);
Line 146... Line 162...
146
					'WHERE amc_id_champ = '.$valeurs['amc_id_champ'];
162
					'WHERE amc_id_champ = '.$valeurs['amc_id_champ'];
Line 147... Line 163...
147
 
163
 
148
		return $this->requete($requete);
164
		return $this->requete($requete);
Line -... Line 165...
-
 
165
	}
-
 
166
 
-
 
167
	/**
-
 
168
	 * Supprime une metadonnée
149
	}
169
	 * @param int $id_metadonnee l'identifiant de l'enregistrement à supprimer
150
 
170
	 */
151
	public function supprimerMetadonnee($valeurs) {
171
	public function supprimerMetadonneeParId($id_metadonnee) {
Line 152... Line 172...
152
		$requete = 'DELETE FROM annu_meta_colonne '.
172
		$requete = 'DELETE FROM annu_meta_colonne '.
153
					'WHERE amc_id_champ = '.$valeurs['amc_id_champ'];
173
					'WHERE amc_id_champ = '.$id_metadonnee;
Line -... Line 174...
-
 
174
 
-
 
175
		return $this->requete($requete);
-
 
176
	}
-
 
177
 
-
 
178
	/**
-
 
179
	 * Renvoie l'identifiant du type sql associé à un identifiant de type de champ
154
 
180
	 * exemple champ texte => VARCHAR, champ texte long => TEXT
-
 
181
	 * @param int $id_type_champ l'identifiant du type de champ
155
		return $this->requete($requete);
182
	 * @return int l'identifiant du type sql correspondant
156
	}
183
	 */
Line -... Line 184...
-
 
184
	private function renvoyerTypeSQLPourChamp($id_type_champ) {
-
 
185
		// TODO: faire une vraie fonction
-
 
186
		return 1002 ;
-
 
187
	}
-
 
188
 
-
 
189
	/**
-
 
190
	 * Renvoie la longueur associée à un identifiant de type de champ
-
 
191
	 * exemple champ texte => 50, champ texte long => 1000
-
 
192
	 * @param int $id_type_champ l'identifiant du type de champ
-
 
193
	 * @return int la longueur du champ correspondante
-
 
194
	 * @return int la longueur associée au champ
-
 
195
	 */
-
 
196
	private function renvoyerLongueurPourChamp($id_type_champ) {
-
 
197
		// TODO: faire une vraie fonction
-
 
198
		return 255 ;
-
 
199
	}
-
 
200
 
-
 
201
	/**
157
 
202
	 * Renvoie le nom d'une valeur de liste d'ontologie grâce à son identifiant
158
	private function renvoyerTypeSQLPourChamp($id_type_champ) {
203
	 * @param int $id_ontologie l'identifiant de la valeur dont on veut le nom
159
		return 1002 ;
204
	 * @param int $id_parent l'identifiant de la liste parente
160
	}
205
	 * @return string le nom du champ, ou false sinon
161
 
206
	 */
Line 162... Line 207...
162
	private function renvoyerCorrespondanceNomId($id_ontologie,$id_parent) {
207
	private function renvoyerCorrespondanceNomId($id_ontologie,$id_parent) {
163
		$requete = 'SELECT amo_nom '.
208
		$requete = 'SELECT amo_nom '.
Line -... Line 209...
-
 
209
					'FROM annu_meta_ontologie '.
-
 
210
					'WHERE amo_ce_parent = '.$id_parent.' '.
-
 
211
					'AND amo_id_ontologie = '.$id_ontologie;
-
 
212
 
-
 
213
		return $this->requeteUn($requete);
-
 
214
	}
164
					'FROM annu_meta_ontologie '.
215
 
Line 165... Line 216...
165
					'WHERE amo_ce_parent = '.$id_parent.' '.
216
 
166
					'AND amo_id_ontologie = '.$id_ontologie;
217
	/**
167
 
218
	 * Renvoie le nom du template associé à un champ grâce à son identifiant
Line 178... Line 229...
178
		$resultat = $this->requeteUn($requete);
229
		$resultat = $this->requeteUn($requete);
Line 179... Line 230...
179
 
230
 
180
		return $resultat['amo_abreviation'];
231
		return $resultat['amo_abreviation'];
Line -... Line 232...
-
 
232
	}
-
 
233
 
-
 
234
	/**
-
 
235
	 * Ajoute une nouvelle valeur à un champ de metadonnées pour une ligne dans un annuaire donné
-
 
236
	 * @param int $id_champ l'identifiant du champ auquel on ajoute cette valeur
-
 
237
	 * @param int $id_enregistrement_lie l'identifiant de l'enregistrement lié dans l'annuairé mappé
-
 
238
	 * @param mixed $valeur la valeur à associer au champ (peut-être une valeur brute ou bien un identifiant de liste d'ontologie)
181
	}
239
	 * @return true ou false suivant le succès de la requête
Line 182... Line 240...
182
 
240
	 */
Line 183... Line 241...
183
	public function ajouterNouvelleValeurMetadonnee($id_champ, $id_enregistrement_lie, $valeur) {
241
	public function ajouterNouvelleValeurMetadonnee($id_champ, $id_enregistrement_lie, $valeur) {
Line 189... Line 247...
189
		'VALUES ('.$id_champ.','.$id_enregistrement_lie.','.$valeur.')';
247
		'VALUES ('.$id_champ.','.$id_enregistrement_lie.','.$valeur.')';
Line 190... Line 248...
190
 
248
 
191
		return $this->requete($requete);
249
		return $this->requete($requete);
Line -... Line 250...
-
 
250
	}
-
 
251
 
-
 
252
	/**
-
 
253
	 * Modifie une valeur d'un champ de metadonnées pour une ligne dans un annuaire donné
-
 
254
	 * @param int $id_champ l'identifiant du champ dont on modifie la valeur
-
 
255
	 * @param mixed $valeur la nouvelle valeur à associer au champ (peut-être une valeur brute ou bien un identifiant de liste d'ontologie)
-
 
256
	 * @return boolean true ou false suivant le succès de la requête
-
 
257
	 */
-
 
258
	public function modifierValeurMetadonnee($id_valeur_metadonnee, $valeur) {
-
 
259
 
192
	}
260
		$requete = 'UPDATE annu_meta_valeurs '.
-
 
261
		'SET amv_valeur = '.$this->proteger($valeur).' '.
-
 
262
		'WHERE amv_id_valeur = '.$id_valeur_metadonnee;
-
 
263
 
Line -... Line 264...
-
 
264
		return $this->requete($requete);
-
 
265
	}
-
 
266
 
-
 
267
	/**
-
 
268
	 * Supprime une valeur de metadonnée par son identifiant
193
 
269
	 * @param int $id_valeur_metadonnee l'identifiant de valeur à supprimer
Line 194... Line 270...
194
	//TODO: faire une fonction de modification
270
	 * @return true ou false suivant le succès de la requete
195
 
271
	 */
Line 196... Line 272...
196
	public function supprimerValeurMetadonnee($id_valeur_metadonnee) {
272
	public function supprimerValeurMetadonnee($id_valeur_metadonnee) {
197
 
273
 
Line -... Line 274...
-
 
274
		$requete = 'DELETE FROM annu_meta_valeurs '.
-
 
275
		'WHERE amv_id_valeur = '.$id_valeur_metadonnee;
-
 
276
 
-
 
277
		return $this->requete($requete);
198
		$requete = 'DELETE FROM annu_meta_valeurs '.
278
	}
199
		'WHERE amv_id_valeur = '.$id_valeur_metadonnee;
279
 
200
 
280
	/**
Line 201... Line 281...
201
		return $this->requete($requete);
281
	 * Supprime les valeurs de metadonnées associés à un identifiant de ligne d'annuaire
202
	}
282
	 * @param int $id_enregistrement_lie l'identifiant de la ligne à laquelle sont associées les valeurs à supprimer
Line 203... Line 283...
203
 
283
	 */
204
	public function supprimerValeursMetadonneesParIdEnregistrementLie($id_enregistrement_lie) {
284
	public function supprimerValeursMetadonneesParIdEnregistrementLie($id_enregistrement_lie) {
-
 
285
		$requete = 'DELETE FROM annu_meta_valeurs '.
-
 
286
		'WHERE amv_cle_ligne = '.$id_enregistrement_lie;
205
		$requete = 'DELETE FROM annu_meta_valeurs '.
287
 
206
		'WHERE amv_cle_ligne = '.$id_enregistrement_lie;
288
		return $this->requete($requete);
Line -... Line 289...
-
 
289
	}
-
 
290
 
-
 
291
	/**
207
 
292
	 * Charge les valeurs de metadonnées pour un identifiant de ligne donné
208
		return $this->requete($requete);
293
	 * @param int $id_annuaire l'identifiant de l'annuaire sur lequel on travaille
209
	}
294
	 * @param int $id_utilisateur l'identifiant de la ligne dans l'annuaire pour laquelle on veut récupérer les valeur de metadonnées
210
 
295
	 */
211
	/**
296
	 public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) {
212
	 * Charge les valeurs de metadonnées pour un identifiant de ligne donné
297
 
213
	 */
298
		// TODO: la jointure est elle la plus efficace pour ce type de requete ?
Line 214... Line 299...
214
	 public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur) {
299
		// voir si des index bien placés peuvent résoudre le problème
Line 215... Line 300...
215
 
300
		// et faire plein de tests
216
	 	$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation, amo_nom FROM annu_meta_valeurs '.
301
	 	$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation, amo_nom FROM annu_meta_valeurs '.