31,221 → 31,65 |
return $annuaire; |
} |
|
/**--------Fonctions d'ajout et de modification des annuaires --------*/ |
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formaulaires associés --------*/ |
/** |
* Affiche le formulaire d'ajout d'une metadonnee |
* @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur) |
* @return string la vue contenant le formulaire |
*/ |
public function afficherFormulaireAjoutMappage($id_annuaire, $donnees = array()) { |
|
public function ajouterAnnuaire($valeurs) { |
|
$champs = array( |
"aa_nom" => '', |
"aa_description" => '', |
"aa_bdd" => '', |
"aa_table" => '', |
"aa_code" => '', |
"aa_champ_id" => '', |
"aa_champ_nom" => '', |
"aa_champ_mail" => '', |
"aa_champ_pass" => '' |
); |
|
$donnees = array('erreurs_champs' => array()); |
|
// vérification de la présence de tous les champs |
foreach($champs as $nom_champ => $valeur) { |
if(!isset($valeurs[$nom_champ]) || $valeurs[$nom_champ] == '') { |
$donnees['erreurs_champs'][$nom_champ] = 'Ce champ est obligatoire'; |
} |
} |
|
// si il y a une erreur on réaffiche le formulaire |
if(!empty($donnees['erreurs_champs'])) { |
return $this->afficherFormulaireAjoutAnnuaire($donnees); |
} |
|
$champs_a_verifier = array($valeurs[aa_champ_id],$valeurs[aa_champ_nom],$valeurs[aa_champ_mail],$valeurs[aa_champ_pass]); |
|
$informations_annuaire = array( |
"aa_nom" => $valeurs['aa_nom'], |
"aa_description" => $valeurs['aa_description'], |
"aa_bdd" => $valeurs['aa_bdd'], |
"aa_table" => $valeurs['aa_table'], |
"aa_code" => $valeurs['aa_code'], |
); |
|
$informations_champs = array( |
"aa_champ_id" => $valeurs['aa_champ_id'], |
"aa_champ_nom" => $valeurs['aa_champ_nom'], |
"aa_champ_mail" => $valeurs['aa_champ_mail'], |
"aa_champ_pass" => $valeurs['aa_champ_pass'] |
); |
|
$this->chargerModele('MetadonneeModele'); |
$this->chargerModele('GestionAnnuaireModele'); |
$annuaire_existe = $this->GestionAnnuaireModele->verifierPresenceTable($valeurs['aa_bdd'], $valeurs['aa_table']); |
|
// si l'annuaire existe déjà |
if($annuaire_existe) { |
$champs_existent = $this->GestionAnnuaireModele->verifierPresenceChamps($valeurs['aa_bdd'], $valeurs['aa_table'], $champs_a_verifier); |
// si l'annuaire existe déjà |
if($champs_existent) { |
// on insere un nouvel enregistrement dans la table des annuaire |
$id_annuaire = $this->GestionAnnuaireModele->AjouterAnnuaire($informations_annuaire); |
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
if(!$id_annuaire) { |
$donnees['erreurs_champs'][$nom_champ] = 'Impossible d\'ajouter les infos de la table '.$valeurs['aa_table'].' dans la base de données '.$valeurs['aa_bdd'] ; |
} |
$liste_champs_mappage = array('champ_id' => 'Champ identifiant', |
'champ_pass' => 'Champ mot de passe', |
'champ_nom' => 'Champ nom', |
'champ_prenom' => 'Champ prénom' , |
'champ_mail' => 'Champ mail', |
'champ_pays' => 'Champ pays', |
'champ_code_postal' => 'Champ code postal', |
'champ_adresse' => 'Champ adresse', |
'champ_adresse_comp' => 'Champ adresse complémentaire', |
'champ_adresse_comp' => 'Champ adresse complémentaire'); |
|
// on cree un set de métadonnées minimal |
$this->creerEtMapperChampsMetadonneeMinimaux($id_annuaire, $informations_champs); |
} |
} |
$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire); |
$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire); |
|
return $this->chargerAnnuaire($id_annuaire); |
$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]); |
|
} |
//Debug::printr($champs_mappage[0]); |
//Debug::printr($liste_champs_mappage); |
|
private function creerEtMapperChampsMetadonneeMinimaux($id_annuaire, $informations_champs) { |
//Debug::printr($roles_deja_affectes); |
|
$metadonnee_controleur = new MetadonneeControleur(); |
$this->chargerModele('MappageModele'); |
$this->chargerModele('MetadonneeModele'); |
$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage); |
|
foreach($informations_champs as $type_champ => $nom) { |
$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage); |
|
$role = str_replace('aa_','',$type_champ); |
// on retire les roles déjà affectés dans la liste des roles |
$liste_champs_mappage = array_diff_key($liste_champs_mappage, $roles_deja_affectes); |
|
if($role == 'champ_id') { |
$valeurs_mappage = array( |
'id_annuaire' => $id_annuaire, |
'id_champ_annuaire' => $nom, |
'role' => 'champ_id', |
'id_champ_metadonnee' => '' |
); |
$creation = $this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom, 'champ_id', '0'); |
// on retire les champs de l'annuaire qui sont déjà mappés |
$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire); |
|
} else { |
// on retire les champ de metadonnées qui mappent déjà un champ |
$champs_metadonnees = array_diff_key($champs_metadonnees, array_flip($champs_deja_mappe_metadonnees)); |
|
$valeurs_insertion = $this->renvoyerInformationChampPourType($id_annuaire, $role, $nom); |
$data['champs_mappage'] = $liste_champs_mappage; |
$data['champs_metadonnees'] = $champs_metadonnees; |
$data['champs_annuaire'] = $champs_annuaire; |
|
$metadonnee_controleur->ajouterNouvelleMetadonnee($valeurs_insertion); |
$data['id_annuaire'] = $id_annuaire; |
|
$id_champ_metadonnee = $this->MetadonneeModele->renvoyerIdChampMetadonneeParAbreviation($id_annuaire, $valeurs_insertion['amc_abreviation']); |
$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data); |
|
// on affecte à chaque champ son role |
$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom, $role, $id_champ_metadonnee); |
// et on le rend obligatoire |
$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom, 'champ_obligatoire', $id_champ_metadonnee); |
|
return $mappage_ajout; |
} |
} |
|
return true; |
} |
|
private function renvoyerInformationChampPourType($id_annuaire, $type, $nom) { |
|
$valeurs = array(); |
$this->chargerModele('MetadonneeModele'); |
|
$id_liste_champs = $this->id_liste_champs; |
|
switch($type) { |
case 'champ_nom': |
|
$affichage = $this->MetadonneeModele->renvoyerCorrespondanceIdParAbreviation('text',$id_liste_champs); |
|
$valeurs = array('amc_nom' => $nom, |
'amc_abreviation' => 'nom' , |
'amc_description' => 'Nom', |
'amc_ce_annuaire' => $id_annuaire, |
'amc_ce_type_affichage' => $affichage, |
'amc_ce_ontologie' => '0' |
); |
break; |
|
case 'champ_mail': |
|
$affichage = $this->MetadonneeModele->renvoyerCorrespondanceIdParAbreviation('mail',$id_liste_champs); |
$valeurs = array('amc_nom' => $nom, |
'amc_abreviation' => 'mail', |
'amc_description' => 'Adresse electronique', |
'amc_ce_annuaire' => $id_annuaire, |
'amc_ce_type_affichage' => $affichage, |
'amc_ce_ontologie' => '0' |
); |
break; |
|
case 'champ_pass': |
|
$affichage = $this->MetadonneeModele->renvoyerCorrespondanceIdParAbreviation('password',$id_liste_champs); |
$valeurs = array('amc_nom' => $nom, |
'amc_abreviation' => 'pass', |
'amc_description' => 'Mot de passe', |
'amc_ce_annuaire' => $id_annuaire, |
'amc_ce_type_affichage' => $affichage, |
'amc_ce_ontologie' => '0' |
); |
break; |
} |
|
return $valeurs; |
} |
|
/** |
* Affiche le formulaire d'ajout d'une metadonnee |
* @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur) |
* @return string la vue contenant le formulaire |
*/ |
public function afficherFormulaireAjoutAnnuaire($donnees) { |
|
$champs = array( |
"aa_nom" => '', |
"aa_description" => '', |
"aa_bdd" => '', |
"aa_table" => '', |
"aa_code" => '', |
"aa_champ_id" => '', |
"aa_champ_nom" => '', |
"aa_champ_mail" => '', |
"aa_champ_pass" => '' |
); |
$donnees = $donnees; |
|
$formulaire_ajout_annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire_ajout',$donnees); |
|
return $formulaire_ajout_annuaire; |
} |
|
|
|
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formaulaires associés --------*/ |
/** |
* Affiche le formulaire d'ajout d'une metadonnee |
* @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur) |
* @return string la vue contenant le formulaire |
*/ |
public function afficherFormulaireAjoutMappage($id_annuaire) { |
|
if(!isset($valeurs['amc_nom'])) { |
$valeurs['amc_nom'] = ''; |
} |
|
if(!isset($valeurs['amc_abreviation'])) { |
$valeurs['amc_abreviation'] = ''; |
} |
|
if(!isset($valeurs['amc_description'])) { |
$valeurs['amc_description'] = ''; |
} |
$data['valeur'] = $valeurs; |
|
$this->chargerModele('MetadonneeModele'); |
$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeMappage(); |
$data['listes'] = $this->MetadonneeModele->chargerListeDesListes(); |
$metadonnee_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_ajout',$data); |
|
return $metadonnee_ajout; |
} |
|
/** |
* Affiche le formulaire de modification d'une metadonnee |
* @param Array $valeurs les valeurs à inclure dans le formulaire |
* @return string la vue contenant le formulaire |
275,22 → 119,29 |
} |
|
/** |
* Ajoute un nouveau champ de métadonnée à un annuaire |
* Ajoute un nouveau champ de mappage à un annuaire |
* @param Array $valeurs les valeurs à ajouter |
* @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec |
*/ |
public function ajouterNouveauMappage($valeurs) { |
|
$this->ChargerModele('MappageModele'); |
|
if(isset($valeurs['id_annuaire']) |
&& isset($valeurs['id_champ_annuaire']) |
&& isset($valeurs['role']) |
&& isset($valeurs['id_champ_metadonnee'])) { |
$this->chargerModele('MappageModele'); |
$this->MetadonneeModele->ajouterNouveauMappage($valeurs); |
&& isset($valeurs['at_valeur']) |
&& isset($valeurs['at_ressource']) |
&& isset($valeurs['at_action'])) { |
|
$id_annuaire = $valeurs['id_annuaire']; |
$id_champ_metadonnee = $valeurs['at_valeur']; |
$nom_champ_annuaire = $valeurs['at_ressource']; |
$role = $valeurs['at_action']; |
|
$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee); |
} else { |
return $this->afficherFormulaireAjoutMappage($valeurs); |
} |
return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']); |
return $this->chargerAnnuaire($valeurs['id_annuaire']); |
} |
|
/** |