| Line 39... |
Line 39... |
| 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 |
// On remplace l'identifiant du type d'affichage par son nom
|
| 42 |
$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);
|
| 43 |
$ligne['amc_ce_nom_type_affichage'] = $type_affichage['amo_nom'];
|
43 |
$ligne['amc_ce_nom_type_affichage'] = $type_affichage['amo_nom'];
|
| 44 |
$annuaire[] = $ligne;
|
44 |
$annuaire[$ligne['amc_id_champ']] = $ligne;
|
| 45 |
}
|
45 |
}
|
| Line 46... |
Line 46... |
| 46 |
|
46 |
|
| 47 |
return $annuaire;
|
47 |
return $annuaire;
|
| Line 217... |
Line 217... |
| 217 |
/**
|
217 |
/**
|
| 218 |
* Renvoie le nom du template associé à un champ grâce à son identifiant
|
218 |
* Renvoie le nom du template associé à un champ grâce à son identifiant
|
| 219 |
* @param int $id_ontologie l'identifiant du champ dont on veut le template
|
219 |
* @param int $id_ontologie l'identifiant du champ dont on veut le template
|
| 220 |
* @return string le nom du template (qui est l'abreviation du champ), ou false sinon
|
220 |
* @return string le nom du template (qui est l'abreviation du champ), ou false sinon
|
| 221 |
*/
|
221 |
*/
|
| 222 |
public function renvoyerCorrespondanceNomTemplateChamp($id_champ) {
|
222 |
public function renvoyerTypeAffichageParId($id_champ) {
|
| Line 223... |
Line 223... |
| 223 |
|
223 |
|
| 224 |
$requete = 'SELECT amo_abreviation '.
|
224 |
$requete = 'SELECT amo_abreviation '.
|
| 225 |
'FROM annu_meta_ontologie '.
|
225 |
'FROM annu_meta_ontologie '.
|
| 226 |
'WHERE amo_ce_parent = '.$this->id_liste_champs.' '.
|
226 |
'WHERE amo_ce_parent = '.$this->id_liste_champs.' '.
|
| Line 227... |
Line 227... |
| 227 |
'AND amo_id_ontologie = '.$id_champ;
|
227 |
'AND amo_id_ontologie = '.$id_champ;
|
| Line 228... |
Line 228... |
| 228 |
|
228 |
|
| - |
|
229 |
$resultat = $this->requeteUn($requete);
|
| - |
|
230 |
|
| - |
|
231 |
return $resultat['amo_abreviation'];
|
| - |
|
232 |
|
| - |
|
233 |
}
|
| - |
|
234 |
|
| - |
|
235 |
/**
|
| - |
|
236 |
* Renvoie le nom du template associé à un champ grâce à son identifiant
|
| - |
|
237 |
* @param int $id_ontologie l'identifiant du champ dont on veut le template
|
| - |
|
238 |
* @return string le nom du template (qui est l'abreviation du champ), ou false sinon
|
| - |
|
239 |
*/
|
| - |
|
240 |
public function renvoyerTypeAffichagePourColonne($id_colonne) {
|
| - |
|
241 |
|
| - |
|
242 |
$requete = 'SELECT amo_abreviation '.
|
| - |
|
243 |
'FROM annu_meta_ontologie '.
|
| - |
|
244 |
'WHERE amo_ce_parent = '.$this->id_liste_champs.' '.
|
| - |
|
245 |
'AND amo_id_ontologie =
|
| - |
|
246 |
(SELECT amc_ce_type_affichage '.
|
| - |
|
247 |
'FROM annu_meta_colonne '.
|
| - |
|
248 |
'WHERE amc_id_champ = '.$id_colonne.')';
|
| - |
|
249 |
|
| - |
|
250 |
$resultat = $this->requeteUn($requete);
|
| - |
|
251 |
|
| - |
|
252 |
if($resultat) {
|
| - |
|
253 |
return $resultat['amo_abreviation'];
|
| - |
|
254 |
} else {
|
| - |
|
255 |
return false;
|
| - |
|
256 |
}
|
| - |
|
257 |
}
|
| - |
|
258 |
|
| - |
|
259 |
/**
|
| - |
|
260 |
* Renvoie vrai si un utilisateur possède une valeur de metadonnées pour une colonne donnée
|
| - |
|
261 |
*/
|
| - |
|
262 |
public function valeurExiste($id_champ, $id_enregistrement_lie) {
|
| - |
|
263 |
|
| - |
|
264 |
$requete_existence_valeur = 'SELECT COUNT(amv_valeur) as valeur_existe '.
|
| - |
|
265 |
'FROM annu_meta_valeurs '.
|
| - |
|
266 |
'WHERE amv_ce_colonne = '.$id_champ.' '.
|
| - |
|
267 |
'AND amv_cle_ligne ='.$id_enregistrement_lie;
|
| - |
|
268 |
|
| 229 |
$resultat = $this->requeteUn($requete);
|
269 |
$resultat = $this->requeteUn($requete_existence_valeur);
|
| Line 230... |
Line 270... |
| 230 |
|
270 |
|
| 231 |
return $resultat['amo_abreviation'];
|
271 |
return ($resultat['valeur_existe'] > 1) ;
|
| 232 |
}
|
272 |
}
|
| Line 253... |
Line 293... |
| 253 |
* Modifie une valeur d'un champ de metadonnées pour une ligne dans un annuaire donné
|
293 |
* 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
|
294 |
* @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)
|
295 |
* @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
|
296 |
* @return boolean true ou false suivant le succès de la requête
|
| 257 |
*/
|
297 |
*/
|
| 258 |
public function modifierValeurMetadonnee($id_valeur_metadonnee, $valeur) {
|
298 |
public function modifierValeurMetadonnee($id_champ, $id_enregistrement_lie, $valeur) {
|
| Line 259... |
Line 299... |
| 259 |
|
299 |
|
| 260 |
$requete = 'UPDATE annu_meta_valeurs '.
|
300 |
$requete = 'UPDATE annu_meta_valeurs '.
|
| 261 |
'SET amv_valeur = '.$this->proteger($valeur).' '.
|
301 |
'SET amv_valeur = '.$this->proteger($valeur).' '.
|
| - |
|
302 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' '.
|
| Line 262... |
Line 303... |
| 262 |
'WHERE amv_id_valeur = '.$id_valeur_metadonnee;
|
303 |
'AND amv_ce_colonne = '.$id_champ;
|
| 263 |
|
304 |
|
| Line 264... |
Line 305... |
| 264 |
return $this->requete($requete);
|
305 |
return $this->requete($requete);
|
| Line 280... |
Line 321... |
| 280 |
/**
|
321 |
/**
|
| 281 |
* Supprime les valeurs de metadonnées associés à un identifiant de ligne d'annuaire
|
322 |
* Supprime les valeurs de metadonnées associés à un identifiant de ligne d'annuaire
|
| 282 |
* @param int $id_enregistrement_lie l'identifiant de la ligne à laquelle sont associées les valeurs à supprimer
|
323 |
* @param int $id_enregistrement_lie l'identifiant de la ligne à laquelle sont associées les valeurs à supprimer
|
| 283 |
*/
|
324 |
*/
|
| 284 |
public function supprimerValeursMetadonneesParIdEnregistrementLie($id_enregistrement_lie) {
|
325 |
public function supprimerValeursMetadonneesParIdEnregistrementLie($id_enregistrement_lie) {
|
| - |
|
326 |
|
| 285 |
$requete = 'DELETE FROM annu_meta_valeurs '.
|
327 |
$requete = 'DELETE FROM annu_meta_valeurs '.
|
| 286 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie;
|
328 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie;
|
| Line 287... |
Line 329... |
| 287 |
|
329 |
|
| 288 |
return $this->requete($requete);
|
330 |
return $this->requete($requete);
|
| Line 304... |
Line 346... |
| 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
|
346 |
* @param int $id_utilisateur l'identifiant de la ligne dans l'annuaire pour laquelle on veut récupérer les valeur de metadonnées
|
| 305 |
*/
|
347 |
*/
|
| 306 |
public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) {
|
348 |
public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) {
|
| Line 307... |
Line 349... |
| 307 |
|
349 |
|
| 308 |
// première requete pour obtenir les valeurs des champs de metadonnées liées à la ligne
|
350 |
// première requete pour obtenir les valeurs des champs de metadonnées liées à la ligne
|
| 309 |
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation FROM annu_meta_valeurs '.
|
351 |
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation, amc_ce_type_affichage FROM annu_meta_valeurs '.
|
| 310 |
'LEFT JOIN annu_meta_colonne '.
|
352 |
'LEFT JOIN annu_meta_colonne '.
|
| 311 |
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '.
|
353 |
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '.
|
| Line 312... |
Line 354... |
| 312 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' ';
|
354 |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' ';
|
| Line 321... |
Line 363... |
| 321 |
foreach ($resultat_valeurs_metadonnees as $ligne) {
|
363 |
foreach ($resultat_valeurs_metadonnees as $ligne) {
|
| Line 322... |
Line 364... |
| 322 |
|
364 |
|
| 323 |
// pour toutes les valeurs qui sont des élements d'une liste d'ontologie
|
365 |
// pour toutes les valeurs qui sont des élements d'une liste d'ontologie
|
| Line 324... |
Line 366... |
| 324 |
if($ligne['amc_ce_ontologie'] != 0) {
|
366 |
if($ligne['amc_ce_ontologie'] != 0) {
|
| 325 |
|
367 |
|
| Line 326... |
Line 368... |
| 326 |
// Si c'est un champ qui contient de multiples valeurs, alors il contient le séparateur de métadonnées
|
368 |
// Si c'est un champ qui contient de multiples valeurs, alors il contient potientiellement le séparateur de métadonnées
|
| 327 |
if(strpos($ligne['amv_valeur'],Config::get('separateur_metadonnee'))) {
|
369 |
if(strpos($ligne['amv_valeur'],Config::get('separateur_metadonnee'))) {
|
| Line 328... |
Line -... |
| 328 |
|
- |
|
| 329 |
$id_valeurs_metadonnees = explode(Config::get('separateur_metadonnee'), $ligne['amv_valeur']);
|
370 |
|
| 330 |
$ligne['amv_valeur'] = $id_valeurs_metadonnees;
|
371 |
$id_valeurs_metadonnees = explode(Config::get('separateur_metadonnee'), $ligne['amv_valeur']);
|
| 331 |
|
372 |
$ligne['amv_valeur'] = $id_valeurs_metadonnees;
|
| 332 |
//TODO: faire le foreach
|
373 |
|
| 333 |
foreach ($id_valeurs_metadonnees as $id_valeur) {
|
374 |
foreach ($id_valeurs_metadonnees as $id_valeur) {
|
| 334 |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($id_valeur,$ligne['amc_ce_ontologie']);
|
375 |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($id_valeur,$ligne['amc_ce_ontologie']);
|
| 335 |
$ligne['amo_nom'][] = $resultat_nom_valeur['amo_nom'];
|
376 |
$ligne['amo_nom'][] = $resultat_nom_valeur['amo_nom'];
|
| 336 |
}
|
377 |
}
|
| Line 337... |
Line 378... |
| 337 |
} else {
|
378 |
} else {
|
| 338 |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($ligne['amv_valeur'],$ligne['amc_ce_ontologie']);
|
- |
|
| 339 |
$ligne['amo_nom'] = $resultat_nom_valeur['amo_nom'];
|
- |
|
| 340 |
}
|
379 |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($ligne['amv_valeur'],$ligne['amc_ce_ontologie']);
|
| Line -... |
Line 380... |
| - |
|
380 |
$ligne['amo_nom'] = $resultat_nom_valeur['amo_nom'];
|
| 341 |
|
381 |
}
|
| 342 |
$nom_valeur = $resultat_nom_valeur['amo_nom'];
|
382 |
|
| 343 |
|
383 |
$nom_valeur = $resultat_nom_valeur['amo_nom'];
|
| Line -... |
Line 384... |
| - |
|
384 |
}
|
| - |
|
385 |
|
| 344 |
//print_r($resultat_nom_valeur);
|
386 |
$ligne['amc_ce_type_affichage'] = $this->renvoyerTypeAffichageParId($ligne['amc_ce_type_affichage']);
|
| - |
|
387 |
$liste_metadonnee[$ligne['amc_abreviation']] = $ligne;
|
| - |
|
388 |
}
|
| - |
|
389 |
}
|
| - |
|
390 |
|
| - |
|
391 |
$colonnes_totales = $this->chargerListeMetadonneeAnnuaire($id_annuaire);
|
| - |
|
392 |
|
| - |
|
393 |
foreach ($colonnes_totales as $colonne) {
|
| - |
|
394 |
if(!isset($liste_metadonnee[$colonne['amc_abreviation']])) {
|
| - |
|
395 |
|
| - |
|
396 |
if($colonne['amc_ce_ontologie'] != 0) {
|
| - |
|
397 |
$valeur = array();
|
| - |
|
398 |
} else {
|
| - |
|
399 |
$valeur = '';
|
| - |
|
400 |
}
|
| - |
|
401 |
|
| - |
|
402 |
$liste_metadonnee[$colonne['amc_abreviation']] = array('amv_ce_colonne' => $colonne['amc_id_champ'],
|
| Line 345... |
Line 403... |
| 345 |
}
|
403 |
'amv_valeur' => $valeur,
|
| Line 346... |
Line 404... |
| 346 |
|
404 |
'amo_nom' => '',
|
| - |
|
405 |
'amc_ce_ontologie' => $colonne['amc_ce_ontologie'],
|
| - |
|
406 |
'amc_abreviation' => $colonne['amc_abreviation'],
|
| - |
|
407 |
'amc_ce_type_affichage' => $this->renvoyerTypeAffichageParId($colonne['amc_ce_type_affichage']));
|
| - |
|
408 |
}
|
| - |
|
409 |
}
|
| - |
|
410 |
|
| - |
|
411 |
return $liste_metadonnee;
|
| - |
|
412 |
|
| - |
|
413 |
}
|
| - |
|
414 |
|
| - |
|
415 |
/**
|
| - |
|
416 |
* Recherche les enregistrements correspondants au criètres donnés et renvoie une liste d'identifiants, correspondants
|
| - |
|
417 |
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on recherche
|
| - |
|
418 |
* @valeurs array un talbeau de valeurs à rechercher
|
| - |
|
419 |
* $exclusive boolean indique si la recherche doit se faire avec un ET ou bien un OU sur les critèrex
|
| - |
|
420 |
*/
|
| - |
|
421 |
public function rechercherDansValeurMetadonnees($id_annuaire, $valeurs, $exclusive = true) {
|
| - |
|
422 |
|
| - |
|
423 |
// Définition du séparateur de requête suivant la paramètre
|
| - |
|
424 |
if($exclusive) {
|
| - |
|
425 |
$separateur = ' AND ';
|
| - |
|
426 |
} else {
|
| - |
|
427 |
$separateur = ' OR ';
|
| - |
|
428 |
}
|
| - |
|
429 |
|
| - |
|
430 |
$chaine_recherche = '';
|
| - |
|
431 |
|
| - |
|
432 |
foreach($valeurs as $nom_champ => $valeur) {
|
| - |
|
433 |
|
| - |
|
434 |
if(is_array($valeur)) {
|
| - |
|
435 |
foreach($valeur as $cle => $valeur_multi_meta) {
|
| - |
|
436 |
$chaine_recherche .= '(amv_ce_colonne = '.$this->proteger($nom_champ).' AND amv_valeur LIKE '.$this->proteger('%'.$cle.'%').')'.$separateur;
|
| - |
|
437 |
}
|
| - |
|
438 |
} else {
|
| - |
|
439 |
if(trim($valeur) != '') {
|
| - |
|
440 |
$chaine_recherche .= '(amv_ce_colonne = '.$this->proteger($nom_champ).' AND amv_valeur = '.$this->proteger($valeur).')'.$separateur;
|
| - |
|
441 |
}
|
| - |
|
442 |
}
|
| - |
|
443 |
}
|
| - |
|
444 |
|
| - |
|
445 |
if(trim($chaine_recherche) == '') {
|
| - |
|
446 |
return array();
|
| - |
|
447 |
}
|
| - |
|
448 |
|
| - |
|
449 |
$chaine_recherche = rtrim($chaine_recherche,$separateur);
|
| - |
|
450 |
|
| - |
|
451 |
$requete_recherche = 'SELECT DISTINCT amv_cle_ligne '.
|
| - |
|
452 |
'FROM annu_meta_valeurs '.
|
| - |
|
453 |
'WHERE '.$chaine_recherche ;
|
| - |
|
454 |
|
| - |
|
455 |
$resultat_recherche = $this->requeteTous($requete_recherche);
|
| - |
|
456 |
|
| - |
|
457 |
//echo $requete_recherche;
|
| - |
|
458 |
|
| - |
|
459 |
if($resultat_recherche) {
|
| - |
|
460 |
|
| - |
|
461 |
$tableau_id = array();
|
| 347 |
$liste_metadonnee[$ligne['amc_abreviation']] = $ligne;
|
462 |
foreach($resultat_recherche as $resultat) {
|
| 348 |
}
|
463 |
$tableau_id[] = $resultat['amv_cle_ligne'];
|
| 349 |
}
|
464 |
}
|