New file |
0,0 → 1,182 |
<?php |
/** |
* PHP Version 5 |
* |
* @category PHP |
* @package annuaire |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/annuaire/ |
*/ |
|
class MappageControleur extends AppControleur { |
|
private $id_liste_champs = 30768; |
|
/** |
* Charge la vue contenant les informations d'un annuaire géré par l'application |
* @param int $id l'annuaire dont on veut consulter les informations |
* @return string la vue contenant les informations |
*/ |
public function chargerAnnuaire($id) { |
$this->chargerModele('AnnuaireModele'); |
$this->chargerModele('MetadonneeModele'); |
$data['erreurs'] = array(); |
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id,true); |
$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id); |
$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data); |
|
return $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, $donnees = array()) { |
|
$this->chargerModele('MetadonneeModele'); |
$this->chargerModele('GestionAnnuaireModele'); |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$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'); |
|
$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire); |
$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire); |
|
$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]); |
|
//Debug::printr($champs_mappage[0]); |
//Debug::printr($liste_champs_mappage); |
|
$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage); |
|
$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage); |
|
// 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); |
|
// on retire les champs de l'annuaire qui sont déjà mappés |
$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire); |
|
// 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)); |
|
$data['champs_mappage'] = $liste_champs_mappage; |
$data['champs_metadonnees'] = $champs_metadonnees; |
$data['champs_annuaire'] = $champs_annuaire; |
|
$data['id_annuaire'] = $id_annuaire; |
|
$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data); |
|
return $mappage_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 |
*/ |
public function afficherFormulaireModificationMappage($id_mappage) { |
|
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['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']); |
$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps(); |
$data['listes'] = $this->MetadonneeModele->chargerListeDesListes(); |
$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data); |
|
return $metadonnee_modification; |
} |
|
/** |
* 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['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['id_annuaire']); |
} |
|
/** |
* Modifie un champ de mapagge associé à un annuaire |
* @param Array $valeurs les valeurs à modifier |
* @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec |
*/ |
public function modifierMappage($valeurs) { |
|
if(isset($valeurs['amc_id_champ']) |
&& isset($valeurs['amc_nom']) |
&& isset($valeurs['amc_abreviation']) |
&& isset($valeurs['amc_description']) |
&& isset($valeurs['amc_ce_annuaire']) |
&& isset($valeurs['amc_ce_type_affichage'])) { |
$this->chargerModele('MetadonneeModele'); |
$this->MetadonneeModele->modifierMetadonnee($valeurs); |
} else { |
return $this->afficherFormulaireModificationMetadonnee($valeurs); |
} |
return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']); |
} |
|
/** |
* Supprime un champ de métadonnée associé à un annuaire |
* @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec |
*/ |
public function supprimerMappage($id_annuaire, $id_mappage) { |
|
if($id_metadonnee != '') { |
$this->chargerModele('MetadonneeModele'); |
$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee); |
} else { |
return false; |
} |
return $this->chargerAnnuaire($id_annuaire); |
} |
|
} |
?> |