169,10 → 169,10 |
* @param int $id_metadonnee l'identifiant de l'enregistrement à supprimer |
*/ |
public function supprimerMetadonneeParId($id_metadonnee) { |
$requete = 'DELETE FROM annu_meta_colonne '. |
$requete_suppression_metadonnee = 'DELETE FROM annu_meta_colonne '. |
'WHERE amc_id_champ = '.$id_metadonnee; |
|
return $this->requete($requete); |
return $this->requete($requete_suppression_metadonnee); |
} |
|
/** |
207,8 → 207,8 |
private function renvoyerCorrespondanceNomId($id_ontologie,$id_parent) { |
$requete = 'SELECT amo_nom '. |
'FROM annu_meta_ontologie '. |
'WHERE amo_ce_parent = '.$id_parent.' '. |
'AND amo_id_ontologie = '.$id_ontologie; |
'WHERE amo_ce_parent = '.$this->proteger($id_parent).' '. |
'AND amo_id_ontologie = '.$this->proteger($id_ontologie); |
|
return $this->requeteUn($requete); |
} |
288,6 → 288,16 |
return $this->requete($requete); |
} |
|
/** Supprime les valeurs de metadonnées associés à un identifiant de colonne |
* @param int $id_colonne_liee l'identifiant de la colonne à laquelle sont associées les valeurs à supprimer |
*/ |
public function supprimerValeursMetadonneesParIdColonneLiee($id_colonne_liee) { |
$requete = 'DELETE FROM annu_meta_valeurs '. |
'WHERE amv_ce_colonne = '.$id_colonne_liee; |
|
return $this->requete($requete); |
} |
|
/** |
* Charge les valeurs de metadonnées pour un identifiant de ligne donné |
* @param int $id_annuaire l'identifiant de l'annuaire sur lequel on travaille |
295,30 → 305,51 |
*/ |
public function chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_enregistrement_lie) { |
|
// TODO: la jointure est elle la plus efficace pour ce type de requete ? |
// voir si des index bien placés peuvent résoudre le problème |
// et faire plein de tests |
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation, amo_nom FROM annu_meta_valeurs '. |
// première requete pour obtenir les valeurs des champs de metadonnées liées à la ligne |
$requete_valeurs_metadonnees = 'SELECT amv_ce_colonne, amv_valeur, amc_ce_ontologie, amc_abreviation FROM annu_meta_valeurs '. |
'LEFT JOIN annu_meta_colonne '. |
'ON annu_meta_colonne.amc_id_champ = annu_meta_valeurs.amv_ce_colonne '. |
'LEFT JOIN annu_meta_ontologie '. |
'ON annu_meta_ontologie.amo_ce_parent = annu_meta_colonne.amc_ce_ontologie AND '. |
'annu_meta_valeurs.amv_valeur = annu_meta_ontologie.amo_id_ontologie '. |
'WHERE amv_cle_ligne = '.$id_enregistrement_lie.' '; |
|
$resultat_valeurs_metadonnees = $this->requeteTous($requete_valeurs_metadonnees); |
|
if(!$resultat_valeurs_metadonnees) { |
return false; |
} |
|
$liste_metadonnee = array(); |
|
} else { |
foreach ($resultat_valeurs_metadonnees as $ligne) { |
|
// pour toutes les valeurs qui sont des élements d'une liste d'ontologie |
if($ligne['amc_ce_ontologie'] != 0) { |
|
// Si c'est un champ qui contient de multiples valeurs, alors il contient le séparateur de métadonnées |
if(strpos($ligne['amv_valeur'],Config::get('separateur_metadonnee'))) { |
|
$id_valeurs_metadonnees = explode(Config::get('separateur_metadonnee'), $ligne['amv_valeur']); |
$ligne['amv_valeur'] = $id_valeurs_metadonnees; |
|
//TODO: faire le foreach |
foreach ($id_valeurs_metadonnees as $id_valeur) { |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($id_valeur,$ligne['amc_ce_ontologie']); |
$ligne['amo_nom'][] = $resultat_nom_valeur['amo_nom']; |
} |
} else { |
$resultat_nom_valeur = $this->renvoyerCorrespondanceNomId($ligne['amv_valeur'],$ligne['amc_ce_ontologie']); |
$ligne['amo_nom'] = $resultat_nom_valeur['amo_nom']; |
} |
|
$nom_valeur = $resultat_nom_valeur['amo_nom']; |
|
//print_r($resultat_nom_valeur); |
} |
|
$liste_metadonnee[$ligne['amc_abreviation']] = $ligne; |
} |
} |
|
//Debug::printr($liste_metadonnee); |
|
return $liste_metadonnee; |
|
} |