| Line 167... |
Line 167... |
| 167 |
/**
|
167 |
/**
|
| 168 |
* Supprime une metadonnée
|
168 |
* Supprime une metadonnée
|
| 169 |
* @param int $id_metadonnee l'identifiant de l'enregistrement à supprimer
|
169 |
* @param int $id_metadonnee l'identifiant de l'enregistrement à supprimer
|
| 170 |
*/
|
170 |
*/
|
| 171 |
public function supprimerMetadonneeParId($id_metadonnee) {
|
171 |
public function supprimerMetadonneeParId($id_metadonnee) {
|
| 172 |
$requete = 'DELETE FROM annu_meta_colonne '.
|
172 |
$requete_suppression_metadonnee = 'DELETE FROM annu_meta_colonne '.
|
| 173 |
'WHERE amc_id_champ = '.$id_metadonnee;
|
173 |
'WHERE amc_id_champ = '.$id_metadonnee;
|
| Line 174... |
Line 174... |
| 174 |
|
174 |
|
| 175 |
return $this->requete($requete);
|
175 |
return $this->requete($requete_suppression_metadonnee);
|
| Line 176... |
Line 176... |
| 176 |
}
|
176 |
}
|
| 177 |
|
177 |
|
| 178 |
/**
|
178 |
/**
|
| Line 205... |
Line 205... |
| 205 |
* @return string le nom du champ, ou false sinon
|
205 |
* @return string le nom du champ, ou false sinon
|
| 206 |
*/
|
206 |
*/
|
| 207 |
private function renvoyerCorrespondanceNomId($id_ontologie,$id_parent) {
|
207 |
private function renvoyerCorrespondanceNomId($id_ontologie,$id_parent) {
|
| 208 |
$requete = 'SELECT amo_nom '.
|
208 |
$requete = 'SELECT amo_nom '.
|
| 209 |
'FROM annu_meta_ontologie '.
|
209 |
'FROM annu_meta_ontologie '.
|
| 210 |
'WHERE amo_ce_parent = '.$id_parent.' '.
|
210 |
'WHERE amo_ce_parent = '.$this->proteger($id_parent).' '.
|
| 211 |
'AND amo_id_ontologie = '.$id_ontologie;
|
211 |
'AND amo_id_ontologie = '.$this->proteger($id_ontologie);
|
| Line 212... |
Line 212... |
| 212 |
|
212 |
|
| 213 |
return $this->requeteUn($requete);
|
213 |
return $this->requeteUn($requete);
|
| Line 286... |
Line 286... |
| 286 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie;
|
286 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie;
|
| Line 287... |
Line 287... |
| 287 |
|
287 |
|
| 288 |
return $this->requete($requete);
|
288 |
return $this->requete($requete);
|
| Line -... |
Line 289... |
| - |
|
289 |
}
|
| - |
|
290 |
|
| - |
|
291 |
/** Supprime les valeurs de metadonnées associés à un identifiant de colonne
|
| - |
|
292 |
* @param int $id_colonne_liee l'identifiant de la colonne à laquelle sont associées les valeurs à supprimer
|
| - |
|
293 |
*/
|
| - |
|
294 |
public function supprimerValeursMetadonneesParIdColonneLiee($id_colonne_liee) {
|
| - |
|
295 |
$requete = 'DELETE FROM annu_meta_valeurs '.
|
| - |
|
296 |
'WHERE amv_ce_colonne = '.$id_colonne_liee;
|
| - |
|
297 |
|
| - |
|
298 |
return $this->requete($requete);
|
| 289 |
}
|
299 |
}
|
| 290 |
|
300 |
|
| 291 |
/**
|
301 |
/**
|
| 292 |
* Charge les valeurs de metadonnées pour un identifiant de ligne donné
|
302 |
* Charge les valeurs de metadonnées pour un identifiant de ligne donné
|
| 293 |
* @param int $id_annuaire l'identifiant de l'annuaire sur lequel on travaille
|
303 |
* @param int $id_annuaire l'identifiant de l'annuaire sur lequel on travaille
|
| 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
|
304 |
* @param int $id_utilisateur l'identifiant de la ligne dans l'annuaire pour laquelle on veut récupérer les valeur de metadonnées
|
| Line 295... |
Line 305... |
| 295 |
*/
|
305 |
*/
|
| 296 |
public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) {
|
- |
|
| 297 |
|
- |
|
| 298 |
// TODO: la jointure est elle la plus efficace pour ce type de requete ?
|
306 |
public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) {
|
| 299 |
// voir si des index bien placés peuvent résoudre le problème
|
307 |
|
| 300 |
// et faire plein de tests
|
308 |
// première requete pour obtenir les valeurs des champs de metadonnées liées à la ligne
|
| 301 |
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation, amo_nom FROM annu_meta_valeurs '.
|
- |
|
| 302 |
'LEFT JOIN annu_meta_colonne '.
|
- |
|
| 303 |
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '.
|
- |
|
| 304 |
'LEFT JOIN annu_meta_ontologie '.
|
309 |
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation FROM annu_meta_valeurs '.
|
| Line 305... |
Line 310... |
| 305 |
'ON annu_meta_ontologie.amo_ce_parent = annu_meta_colonne.amc_ce_ontologie AND '.
|
310 |
'LEFT JOIN annu_meta_colonne '.
|
| Line 306... |
Line 311... |
| 306 |
'annu_meta_valeurs.amv_valeur = annu_meta_ontologie.amo_id_ontologie '.
|
311 |
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '.
|
| 307 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' ';
|
- |
|
| 308 |
|
- |
|
| Line 309... |
Line 312... |
| 309 |
$resultat_valeurs_metadonnees = $this->requeteTous($requete_valeurs_metadonnees);
|
312 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' ';
|
| Line -... |
Line 313... |
| - |
|
313 |
|
| 310 |
|
314 |
$resultat_valeurs_metadonnees = $this->requeteTous($requete_valeurs_metadonnees);
|
| Line -... |
Line 315... |
| - |
|
315 |
|
| - |
|
316 |
if(!$resultat_valeurs_metadonnees) {
|
| - |
|
317 |
|
| - |
|
318 |
$liste_metadonnee = array();
|
| - |
|
319 |
|
| - |
|
320 |
} else {
|
| - |
|
321 |
foreach ($resultat_valeurs_metadonnees as $ligne) {
|
| - |
|
322 |
|
| - |
|
323 |
// pour toutes les valeurs qui sont des élements d'une liste d'ontologie
|
| - |
|
324 |
if($ligne['amc_ce_ontologie'] != 0) {
|
| - |
|
325 |
|
| - |
|
326 |
// Si c'est un champ qui contient de multiples valeurs, alors il contient le séparateur de métadonnées
|
| - |
|
327 |
if(strpos($ligne['amv_valeur'],Config::get('separateur_metadonnee'))) {
|
| - |
|
328 |
|
| - |
|
329 |
$id_valeurs_metadonnees = explode(Config::get('separateur_metadonnee'), $ligne['amv_valeur']);
|
| - |
|
330 |
$ligne['amv_valeur'] = $id_valeurs_metadonnees;
|
| - |
|
331 |
|
| - |
|
332 |
//TODO: faire le foreach
|
| - |
|
333 |
foreach ($id_valeurs_metadonnees as $id_valeur) {
|
| - |
|
334 |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($id_valeur,$ligne['amc_ce_ontologie']);
|
| - |
|
335 |
$ligne['amo_nom'][] = $resultat_nom_valeur['amo_nom'];
|
| - |
|
336 |
}
|
| - |
|
337 |
} else {
|
| - |
|
338 |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($ligne['amv_valeur'],$ligne['amc_ce_ontologie']);
|
| 311 |
if(!$resultat_valeurs_metadonnees) {
|
339 |
$ligne['amo_nom'] = $resultat_nom_valeur['amo_nom'];
|
| - |
|
340 |
}
|
| 312 |
return false;
|
341 |
|
| Line -... |
Line 342... |
| - |
|
342 |
$nom_valeur = $resultat_nom_valeur['amo_nom'];
|
| - |
|
343 |
|
| 313 |
}
|
344 |
//print_r($resultat_nom_valeur);
|
| Line 314... |
Line 345... |
| 314 |
|
345 |
}
|
| 315 |
$liste_metadonnee = array();
|
346 |
|
| 316 |
|
347 |
$liste_metadonnee[$ligne['amc_abreviation']] = $ligne;
|
| 317 |
foreach ($resultat_valeurs_metadonnees as $ligne) {
|
348 |
}
|