| 4 | aurelien | 1 | <?php
 | 
        
           |  |  | 2 | /**
 | 
        
           |  |  | 3 | * PHP Version 5
 | 
        
           |  |  | 4 | *
 | 
        
           |  |  | 5 | * @category  PHP
 | 
        
           |  |  | 6 | * @package   annuaire
 | 
        
           |  |  | 7 | * @author    aurelien <aurelien@tela-botanica.org>
 | 
        
           |  |  | 8 | * @copyright 2010 Tela-Botanica
 | 
        
           |  |  | 9 | * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 | 
        
           |  |  | 10 | * @version   SVN: <svn_id>
 | 
        
           |  |  | 11 | * @link      /doc/annuaire/
 | 
        
           |  |  | 12 | */
 | 
        
           |  |  | 13 |   | 
        
           |  |  | 14 | class MetadonneeControleur extends Controleur {
 | 
        
           |  |  | 15 |   | 
        
           |  |  | 16 | 	/**
 | 
        
           |  |  | 17 | 	 * (fonction héritée de la classe Controleur)
 | 
        
           |  |  | 18 | 	 * Avant chaque chargement de vue, on ajoute l'url de la page dans
 | 
        
           |  |  | 19 | 	 * les variables à insérer.
 | 
        
           |  |  | 20 | 	 * @param Array $donnes les données à insérer dans la vue
 | 
        
           |  |  | 21 | 	 * @return Array $donnees les données modifiées
 | 
        
           |  |  | 22 | 	 */
 | 
        
           |  |  | 23 | 	public function preTraiterDonnees($donnees) {
 | 
        
           |  |  | 24 | 		$donnees['base_url'] = Registre::getInstance()->get('base_url_application');
 | 
        
           |  |  | 25 | 		return $donnees;
 | 
        
           |  |  | 26 | 	}
 | 
        
           |  |  | 27 |   | 
        
           |  |  | 28 | 	/**
 | 
        
           | 7 | aurelien | 29 | 	 * Charge la vue contenant les informations d'un annuaire géré par l'application
 | 
        
           |  |  | 30 | 	 * @param int $id l'annuaire dont on veut consulter les informations
 | 
        
           |  |  | 31 | 	 * @return string la vue contenant les informations
 | 
        
           | 4 | aurelien | 32 | 	 */
 | 
        
           |  |  | 33 | 	public function chargerAnnuaire($id) {
 | 
        
           |  |  | 34 | 		$this->chargerModele('AnnuaireModele');
 | 
        
           |  |  | 35 | 		$this->chargerModele('MetadonneeModele');
 | 
        
           |  |  | 36 | 		$data['erreurs'] = array();
 | 
        
           |  |  | 37 | 		$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id,true);
 | 
        
           |  |  | 38 | 		$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
 | 
        
           | 11 | aurelien | 39 | 		$annuaire = $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire', $data);
 | 
        
           | 4 | aurelien | 40 |   | 
        
           | 7 | aurelien | 41 | 		return $annuaire;
 | 
        
           | 4 | aurelien | 42 | 	}
 | 
        
           |  |  | 43 |   | 
        
           |  |  | 44 | /**--------Fonctions de gestion des métadonnées associées à un annuaire--------*/
 | 
        
           |  |  | 45 | 	/**
 | 
        
           |  |  | 46 | 	 * Affiche le formulaire d'ajout d'une metadonnee
 | 
        
           |  |  | 47 | 	 * @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
 | 
        
           | 7 | aurelien | 48 | 	 * @return string la vue contenant le formulaire
 | 
        
           | 4 | aurelien | 49 | 	 */
 | 
        
           |  |  | 50 | 	public function afficherFormulaireAjoutMetadonnee($valeurs) {
 | 
        
           |  |  | 51 |   | 
        
           |  |  | 52 | 		if(!isset($valeurs['amc_nom'])) {
 | 
        
           |  |  | 53 | 			$valeurs['amc_nom'] = '';
 | 
        
           |  |  | 54 | 		}
 | 
        
           |  |  | 55 |   | 
        
           |  |  | 56 | 		if(!isset($valeurs['amc_abreviation'])) {
 | 
        
           |  |  | 57 | 				$valeurs['amc_abreviation'] = '';
 | 
        
           |  |  | 58 | 		}
 | 
        
           |  |  | 59 |   | 
        
           |  |  | 60 | 		if(!isset($valeurs['amc_description'])) {
 | 
        
           |  |  | 61 | 				$valeurs['amc_description'] = '';
 | 
        
           |  |  | 62 | 		}
 | 
        
           |  |  | 63 | 		$data['valeur'] = $valeurs;
 | 
        
           |  |  | 64 |   | 
        
           |  |  | 65 | 		$this->chargerModele('MetadonneeModele');
 | 
        
           |  |  | 66 | 		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
 | 
        
           |  |  | 67 | 		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
 | 
        
           | 11 | aurelien | 68 | 		$metadonnee_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_ajout',$data);
 | 
        
           | 4 | aurelien | 69 |   | 
        
           | 7 | aurelien | 70 | 		return $metadonnee_ajout;
 | 
        
           | 4 | aurelien | 71 | 	}
 | 
        
           |  |  | 72 |   | 
        
           |  |  | 73 | 	/**
 | 
        
           |  |  | 74 | 	 * Affiche le formulaire de modification d'une metadonnee
 | 
        
           |  |  | 75 | 	 * @param Array $valeurs les valeurs à inclure dans le formulaire
 | 
        
           | 7 | aurelien | 76 | 	 * @return string la vue contenant le formulaire
 | 
        
           | 4 | aurelien | 77 | 	 */
 | 
        
           |  |  | 78 | 	public function afficherFormulaireModificationMetadonnee($valeurs) {
 | 
        
           |  |  | 79 |   | 
        
           |  |  | 80 | 		if(!isset($valeurs['amc_nom'])) {
 | 
        
           |  |  | 81 | 			$valeurs['amc_nom'] = '';
 | 
        
           |  |  | 82 | 		}
 | 
        
           |  |  | 83 |   | 
        
           |  |  | 84 | 		if(!isset($valeurs['amc_abreviation'])) {
 | 
        
           |  |  | 85 | 				$valeurs['amc_abreviation'] = '';
 | 
        
           |  |  | 86 | 		}
 | 
        
           |  |  | 87 |   | 
        
           |  |  | 88 | 		if(!isset($valeurs['amc_description'])) {
 | 
        
           |  |  | 89 | 				$valeurs['amc_description'] = '';
 | 
        
           |  |  | 90 | 		}
 | 
        
           |  |  | 91 | 		$data['valeur'] = $valeurs;
 | 
        
           |  |  | 92 |   | 
        
           |  |  | 93 | 		$this->chargerModele('MetadonneeModele');
 | 
        
           |  |  | 94 | 		$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
 | 
        
           |  |  | 95 | 		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
 | 
        
           |  |  | 96 | 		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
 | 
        
           | 11 | aurelien | 97 | 		$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data);
 | 
        
           | 4 | aurelien | 98 |   | 
        
           | 7 | aurelien | 99 | 		return $metadonnee_modification;
 | 
        
           | 4 | aurelien | 100 | 	}
 | 
        
           |  |  | 101 |   | 
        
           |  |  | 102 | 	/**
 | 
        
           |  |  | 103 | 	 * Ajoute un nouveau champ de métadonnée à un annuaire
 | 
        
           | 7 | aurelien | 104 | 	 * @param Array $valeurs les valeurs à ajouter
 | 
        
           |  |  | 105 | 	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
 | 
        
           | 4 | aurelien | 106 | 	 */
 | 
        
           |  |  | 107 | 	public function ajouterNouvelleMetadonnee($valeurs) {
 | 
        
           |  |  | 108 |   | 
        
           |  |  | 109 | 		if(isset($valeurs['amc_nom'])
 | 
        
           |  |  | 110 | 			&& isset($valeurs['amc_abreviation'])
 | 
        
           |  |  | 111 | 			&& isset($valeurs['amc_description'])
 | 
        
           |  |  | 112 | 			&& isset($valeurs['amc_ce_annuaire'])
 | 
        
           |  |  | 113 | 			&& isset($valeurs['amc_ce_type_affichage'])) {
 | 
        
           |  |  | 114 | 			$this->chargerModele('MetadonneeModele');
 | 
        
           |  |  | 115 | 			$this->MetadonneeModele->ajouterNouvelleMetadonnee($valeurs);
 | 
        
           |  |  | 116 | 		} else  {
 | 
        
           |  |  | 117 | 			return $this->afficherFormulaireAjoutMetadonnee($valeurs);
 | 
        
           |  |  | 118 | 		}
 | 
        
           |  |  | 119 | 		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
 | 
        
           |  |  | 120 | 	}
 | 
        
           |  |  | 121 |   | 
        
           |  |  | 122 | 	/**
 | 
        
           |  |  | 123 | 	 * Modifie un champ de métadonnée associé à un annuaire
 | 
        
           | 7 | aurelien | 124 | 	 * @param Array $valeurs les valeurs à modifier
 | 
        
           |  |  | 125 | 	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
 | 
        
           | 4 | aurelien | 126 | 	 */
 | 
        
           |  |  | 127 | 	public function modifierMetadonnee($valeurs) {
 | 
        
           |  |  | 128 |   | 
        
           |  |  | 129 | 		if(isset($valeurs['amc_id_champ'])
 | 
        
           |  |  | 130 | 			&& isset($valeurs['amc_nom'])
 | 
        
           |  |  | 131 | 			&& isset($valeurs['amc_abreviation'])
 | 
        
           |  |  | 132 | 			&& isset($valeurs['amc_description'])
 | 
        
           |  |  | 133 | 			&& isset($valeurs['amc_ce_annuaire'])
 | 
        
           |  |  | 134 | 			&& isset($valeurs['amc_ce_type_affichage'])) {
 | 
        
           |  |  | 135 | 			$this->chargerModele('MetadonneeModele');
 | 
        
           |  |  | 136 | 			$this->MetadonneeModele->modifierMetadonnee($valeurs);
 | 
        
           |  |  | 137 | 		} else  {
 | 
        
           |  |  | 138 | 			return $this->afficherFormulaireModificationMetadonnee($valeurs);
 | 
        
           |  |  | 139 | 		}
 | 
        
           |  |  | 140 | 		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
 | 
        
           |  |  | 141 | 	}
 | 
        
           |  |  | 142 |   | 
        
           |  |  | 143 | 	/**
 | 
        
           | 7 | aurelien | 144 | 	 * Supprime un champ de métadonnée associé à un annuaire
 | 
        
           |  |  | 145 | 	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
 | 
        
           | 4 | aurelien | 146 | 	 */
 | 
        
           | 62 | aurelien | 147 | 	public function supprimerMetadonnee($id_annuaire, $id_metadonnee) {
 | 
        
           | 4 | aurelien | 148 |   | 
        
           | 62 | aurelien | 149 | 		if($id_metadonnee != '') {
 | 
        
           | 4 | aurelien | 150 | 			$this->chargerModele('MetadonneeModele');
 | 
        
           | 7 | aurelien | 151 | 			$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee);
 | 
        
           | 4 | aurelien | 152 | 		} else  {
 | 
        
           | 62 | aurelien | 153 | 			return false;
 | 
        
           | 4 | aurelien | 154 | 		}
 | 
        
           | 62 | aurelien | 155 | 		return $this->chargerAnnuaire($id_annuaire);
 | 
        
           | 4 | aurelien | 156 | 	}
 | 
        
           |  |  | 157 |   | 
        
           |  |  | 158 | }
 |