Subversion Repositories eFlore/Applications.coel-consultation

Rev

Rev 220 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Classe mère des Controleurs des modules présentant des Fiches.
 *
 * @package             Collection
 * @category    Php 5.2
 * @author              Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @copyright   2010 Tela-Botanica
 * @license             http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 * @license             http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
 * @version             SVN: $Id: Fiche.php 221 2014-06-19 08:51:27Z aurelien $
 */
abstract class Fiche extends aControleur {
        
        protected $structureDao = null;
        protected $collectionDao = null;
        protected $personneDao = null;
        
        public function __construct()  {
                parent::__construct();
                $this->structureDao = new StructureDao();
                $this->collectionDao = new CollectionDao();
                $this->personneDao = new PersonneDao();
        }
        
        // +---------------------------------------------------------------------------------------------------------------+
        // MÉTHODES GÉNÉRIQUES
        
        protected function obtenirNomCompletPersonne($personne_id) {
                $personne_nom = $this->personneDao->getPersonneNomComplet($personne_id);
                return $personne_nom;
        }
        
        protected function obtenirCourrielsPersonne($personne_id) {
                $courriels = $this->personneDao->getPersonneCourriels($personne_id);
                $courriels = $this->traiterTxtTruck($courriels);
                $courriels = $this->formaterCourriels($courriels);
                return $courriels;
        }
        
        protected function traiterDonneesElementAPublication(&$publications) {
                foreach ($publications as &$publication) {
                        $publication['_editeur_'] = $this->construireTxtTruck($publication['cpu_ce_truk_editeur']);
                        $publication['_date_parution_'] = rtrim($publication['cpu_date_parution'],'-00-00');
                        if(isset($publication['ccapu_source'])) {
                                $publication['ccapu_source'] = $publication['ccapu_source'] == "1" ? "oui" : "non";
                        }
                }
        }
        
        protected function traiterMetaDonnees(&$donnees) {
                $meta = array();
                $meta['_guid_'] = $donnees['_guid_'];
                $meta['_guid_url_'] = $this->obtenirPermalienGuid($donnees['_guid_']);
                $meta['_notes_'] = $donnees['cmhl_notes'];
                $meta['_source_'] = $donnees['cmhl_source'];
                // les deux champs suivants sont spécifique à la collection
                // TODO: si d'autres champs spécifiques s'ajoutent, faire un système
                // générique pour les champs de meta données supplémentaires
                $meta['_expert_'] = isset($donnees['expert']) ? $donnees['expert'] : null;
                $meta['_contributeur_'] = isset($donnees['contributeur']) ? $donnees['contributeur'] : null;
                $meta['_date_modification_'] = $donnees['cmhl_date_modification'];
                $meta['_modifier_par_'] = $this->obtenirNomCompletPersonne($donnees['cmhl_ce_modifier_par']);
                $meta['_modifier_par_courriel_'] = $this->obtenirCourrielsPersonne($donnees['cmhl_ce_modifier_par']);
                $meta['_etat_'] = $this->construireTxtListeOntologie($donnees['cmhl_ce_etat']);
                return $this->getVue('metadonnees', $meta);
        }
}