Subversion Repositories Applications.annuaire

Rev

Rev 94 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?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 MetadonneeControleur extends Controleur {

        /**
         * (fonction héritée de la classe Controleur)
         * Avant chaque chargement de vue, on ajoute l'url de la page dans
         * les variables à insérer.
         * @param Array $donnes les données à insérer dans la vue
         * @return Array $donnees les données modifiées
         */
        public function preTraiterDonnees($donnees) {
                $donnees['base_url'] = Registre::getInstance()->get('base_url_application');
                return $donnees;
        }

        /**
         * 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_annuaires').'annuaire', $data);

                return $annuaire;
        }

/**--------Fonctions de gestion des métadonnées associées à un annuaire--------*/
        /**
         * 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 afficherFormulaireAjoutMetadonnee($valeurs) {

                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->chargerListeDesTypesDeChamps();
                $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
         */
        public function afficherFormulaireModificationMetadonnee($valeurs) {

                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 métadonnée à 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 ajouterNouvelleMetadonnee($valeurs) {

                if(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->ajouterNouvelleMetadonnee($valeurs);
                } else  {
                        return $this->afficherFormulaireAjoutMetadonnee($valeurs);
                }
                return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
        }

        /**
         * Modifie un champ de métadonnée 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 modifierMetadonnee($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 supprimerMetadonnee($id_annuaire, $id_metadonnee) {

                if($id_metadonnee != '') {
                        $this->chargerModele('MetadonneeModele');
                        $this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee);
                } else  {
                        return false;
                }
                return $this->chargerAnnuaire($id_annuaire);
        }

}