Rev 195 | Rev 268 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Classe Controleur du module Fiche Structure.** @category Php 5.2* @package Collection* @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 96 2010-06-21 16:46:31Z jpm $*/class FicheStructure extends Fiche {private $donnees = array();//+----------------------------------------------------------------------------------------------------------------+// Méthodes/*** Fonction d'affichage par défaut*/public function executerActionParDefaut() {return $this->afficherStructure();}// +---------------------------------------------------------------------------------------------------------------+// FICHE STRUCTUREpublic function afficherStructure() {// Gestion des actions par défaut$this->executerAction('Recherche', 'chargerMoteurRecherche');// Gestion des données de la requêteif (!isset($_GET['id'])) {} else {// Gestion des données$this->donnees['id'] = $_GET['id'];$this->donnees['info'] = $this->structureDao->getStructure($this->donnees['id']);$this->traiterDonneesStructure($this->donnees['info']);$this->creerPaginationPersonnel($this->donnees['id']);$this->traiterDonneesStructureConservation($this->donnees['info']);$this->traiterDonneesStructureValorisation($this->donnees['info']);$this->creerPaginationCollections($this->donnees['id']);$this->postraiterDonnees($this->donnees);$this->donnees['metadonnees'] = $this->traiterMetaDonnees($this->donnees['info']);// Création des méta-données de la page$titre = $this->donnees['info']['cs_nom'];$description = $this->donnees['info']['cs_description'];$tags = "Structure, id:{$this->donnees['id']}, {$this->donnees['info']['_guid_']}";// Envoie à la sortie//Debug::printr($donnees);$this->setSortie(self::META_TITRE, $titre);$this->setSortie(self::META_DESCRIPTION, $description);$this->setSortie(self::META_TAGS, $tags);$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_structure', $this->donnees));$this->chargerPiedDePage();}}private function traiterDonneesStructure(&$donnees) {// liste 01 : Liste des états des enregistrements de la base de donnéesOntologie::chargerListe(1001);// liste 12 : Liste des types de structure privéOntologie::chargerListe(1015);// liste 13 : Liste des types de structure publicOntologie::chargerListe(1016);// liste 71 : Liste des pays du standard ISO-3166-1Ontologie::chargerListe(1074);$guid_id_valeur = Config::get('guid_id_structure').$donnees['cs_id_structure'];$donnees['_guid_'] = sprintf(Config::get('guid'), $guid_id_valeur);$donnees['_date_fondation_'] = $this->formaterDate($donnees['cs_date_fondation'], aControleur::FMT_DATE);$donnees['_nbre_personne_'] = (empty($donnees['cs_nbre_personne'])) ? '' : $donnees['cs_nbre_personne'];$donnees['_acronyme_'] = $this->construireTxtTruck($donnees['cs_truk_identifiant_alternatif']);$donnees['_telephone_fax_'] = $this->construireTxtTruck($donnees['cs_truk_telephone']);$donnees['_type_prive_'] = $this->construireTxtListeOntologie($donnees['cs_ce_truk_type_prive']);$donnees['_type_public_'] = $this->construireTxtListeOntologie($donnees['cs_ce_truk_type_public']);$donnees['_pays_'] = $this->construireTxtListeOntologie($donnees['cs_ce_truk_pays']);$donnees['_web_'] = $this->construireTxtTruckSansMajuscule($donnees['cs_truk_url']);$donnees['_courriel_'] = $this->formaterCourriels($donnees['cs_courriel']);$latitude = $donnees['cs_latitude'];$longitude = $donnees['cs_longitude'];$donnees['_latitude_longitude_'] = ($longitude != '' && $latitude != '') ? "$latitude / $longitude" : '';$donnees['_latitude_dcm_en_'] = ($latitude != '') ? str_replace(',', '.', $latitude) : '';$donnees['_longitude_dcm_en_'] = ($longitude != '') ? str_replace(',', '.', $longitude) : '';$donnees['_lien_carte_'] = sprintf(Config::get('lien_vers_carte'), $donnees['_latitude_dcm_en_'], $donnees['_longitude_dcm_en_']);$donnees['_url_img_carte_'] = sprintf(Config::get('url_img'), Config::get('img_carte'));}private function traiterDonneesStructureConservation(&$donnees) {// liste 15 : Liste des types de local de stockage de collectionsOntologie::chargerListe(1018);// liste 16 : Liste des types de mobilier de stockage de collectionsOntologie::chargerListe(1019);// liste 17 : Liste des paramètres de contrôle environnemental d'un localOntologie::chargerListe(1020);// liste 18 : Liste des types de collection non botaniqueOntologie::chargerListe(1021);// liste 19 : Liste des types d'opération de restauration pour les collections botaniquesOntologie::chargerListe(1022);// liste 20 : Liste oui/non/en partieOntologie::chargerListe(1023);// liste 21 : Liste du matériel dit de nom conservation des parts d'herbierOntologie::chargerListe(1024);$donnees['_formation_'] = $this->formaterOuiNon($donnees['csc_mark_formation']);$donnees['_formation_info_'] = $this->formaterParenthese($donnees['csc_formation']);$donnees['_formation_info_'] = $this->formaterSautDeLigne($donnees['_formation_info_']);$donnees['_formation_interet_'] = $this->formaterOuiNon($donnees['csc_mark_formation_interet']);$donnees['_stockage_local_'] = $this->construireTxtListeOntologie($donnees['csc_truk_stockage_local']);$donnees['_stockage_meuble_'] = $this->construireTxtListeOntologie($donnees['csc_truk_stockage_meuble']);$donnees['_stockage_parametre_'] = $this->construireTxtListeOntologie($donnees['csc_truk_stockage_parametre']);$donnees['_collection_commune_'] = $this->formaterOuiNon($donnees['csc_mark_collection_commune']);$donnees['_collection_commune_autre_'] = $this->construireTxtListeOntologie($donnees['csc_truk_collection_autre']);$donnees['_collection_commune_autre_'] = $this->formaterParenthese($donnees['_collection_commune_autre_']);$donnees['_acces_controle_'] = $this->formaterOuiNon($donnees['csc_mark_acces_controle']);$donnees['_restauration_'] = $this->formaterOuiNon($donnees['csc_mark_restauration']);$donnees['_restauration_operation_'] = $this->construireTxtListeOntologie($donnees['csc_truk_restauration_operation']);$donnees['_restauration_operation_'] = $this->formaterParenthese($donnees['_restauration_operation_']);$donnees['_materiel_conservation_'] = $this->construireTxtListeOntologie($donnees['csc_ce_materiel_conservation']);$donnees['_materiel_autre_'] = $this->construireTxtListeOntologie($donnees['csc_truk_materiel_autre']);$donnees['_materiel_autre_'] = $this->formaterParenthese($donnees['_materiel_autre_']);$donnees['_traitement_'] = $this->formaterOuiNon($donnees['csc_mark_traitement']);$donnees['_traitement_liste_'] = $this->construireTxtListeOntologie($donnees['csc_truk_traitement']);$donnees['_traitement_liste_'] = $this->formaterParenthese($donnees['_traitement_liste_']);$donnees['_acquisition_collection_'] = $this->formaterOuiNon($donnees['csc_mark_acquisition_collection']);$donnees['_acquisition_echantillon_'] = $this->formaterOuiNon($donnees['csc_mark_acquisition_echantillon']);if ($donnees['csc_mark_acquisition_echantillon'] == '1') {$donnees['_acquisition_traitement_'] = $this->formaterOuiNon($donnees['csc_mark_acquisition_traitement']);if ($donnees['csc_mark_acquisition_traitement'] == '1') {$donnees['_acquisition_traitement_poison_'] = $this->construireTxtListeOntologie($donnees['csc_truk_acquisition_traitement_poison']);$donnees['_acquisition_traitement_insecte_'] = $this->construireTxtListeOntologie($donnees['csc_truk_acquisition_traitement_insecte']);}}}private function traiterDonneesStructureValorisation(&$donnees) {// liste 24 : Liste des actions de valorisation des collectionsOntologie::chargerListe(1027);// liste 25 : Liste des continents habités incluant aussi le pays FranceOntologie::chargerListe(1028);// liste 26 : Liste des types de recherche nécessitant la consultation de collection botaniqueOntologie::chargerListe(1029);$donnees['_action_'] = $this->formaterOuiNon($donnees['csv_mark_action']);$donnees['_action_info_'] = $this->construireTxtListeOntologie($donnees['csv_truk_action']);$donnees['_action_info_'] = $this->formaterParenthese($donnees['_action_info_']);$donnees['_collection_autre_'] = $this->construireTxtListeOntologie($donnees['csv_collection_autre']);$donnees['_action_future_'] = $this->formaterOuiNon($donnees['csv_mark_action_future']);$donnees['_action_future_info_'] = $this->formaterParenthese($donnees['csv_action_future']);$donnees['_recherche_'] = $this->formaterOuiNon($donnees['csv_mark_recherche']);if ($donnees['csv_mark_recherche'] == '1') {$donnees['_recherche_provenance_'] = $this->construireTxtListeOntologie($donnees['csv_truk_recherche_provenance']);$donnees['_recherche_type_'] = $this->construireTxtListeOntologie($donnees['csv_truk_recherche_type']);}$donnees['_acces_ss_motif_'] = $this->formaterOuiNon($donnees['csv_mark_acces_ss_motif']);$donnees['_acces_ss_motif_info_'] = $this->formaterParenthese($donnees['csv_acces_ss_motif']);$donnees['_visite_avec_motif_'] = $this->formaterOuiNon($donnees['csv_mark_visite_avec_motif']);$donnees['_visite_avec_motif_info_'] = $this->formaterParenthese($donnees['csv_visite_avec_motif']);}private function creerPaginationCollections($id_structure) {// Gestion du nombre de résultats$donnees_total = $this->collectionDao->getNbreParIdStructure($id_structure);// Gestion du fragmenteur$urlFiche = $this->obtenirObjetUrlFicheStructure($id_structure);$options = array('url' => $urlFiche,'donnees_total' => $donnees_total,'donnees_par_page' => Config::get('resultat_par_page_defaut'),'donnees_par_page_choix' => Config::get('resultat_par_page_choix'),);$fragmenteur = Composant::fabrique('fragmenteur', $options);$this->donnees['collectionsFrag'] = $fragmenteur->executer();list($de, $a) = $fragmenteur->getDeplacementParPageId();$this->url->unsetVariablesRequete(array('page'));// Gestion de l'accès aux données$this->collectionDao->setLimitation(($de - 1), $fragmenteur->getDonneesParPage());$this->collectionDao->setDistinction(1);$this->donnees['collections'] = $this->collectionDao->getParIdStructure($id_structure);$this->traiterDonneesStructureCollections($this->donnees['collections']);}private function traiterDonneesStructureCollections(&$collections) {foreach ($collections as &$collection) {$collection['_url_'] = $this->obtenirUrlFicheCollection($collection['cc_id_collection']);}}private function creerPaginationPersonnel($id_structure) {// Gestion du nombre de résultats$donnees_total = $this->structureDao->getNbrePersonnel($id_structure);// Gestion du fragmenteur$urlFiche = $this->obtenirObjetUrlFicheStructure($id_structure);$options = array('url' => $urlFiche,'donnees_total' => $donnees_total,'donnees_par_page' => Config::get('resultat_par_page_defaut'),'donnees_par_page_choix' => Config::get('resultat_par_page_choix'),);$fragmenteur = Composant::fabrique('fragmenteur', $options);$this->donnees['personnelFrag'] = $fragmenteur->executer();list($de, $a) = $fragmenteur->getDeplacementParPageId();$this->url->unsetVariablesRequete(array('page'));// Gestion de l'accès aux données$this->structureDao->setLimitation(($de - 1), $fragmenteur->getDonneesParPage());$this->structureDao->setDistinction(1);$this->donnees['personnel'] = $this->structureDao->getPersonnel($id_structure);$this->traiterPersonnel($this->donnees['personnel']);}private function traiterPersonnel(&$donnees) {// liste 09 : Liste des fonctions d'une personne au sein d'une structureOntologie::chargerListe(1012);// liste 10 : Liste des statuts d'une personne au sein d'une structureOntologie::chargerListe(1013);foreach ($donnees as &$personnel) {$personnel['_fonction_'] = $this->construireTxtListeOntologie($personnel['csap_ce_truk_fonction']);$personnel['_statut_'] = $this->construireTxtListeOntologie($personnel['csap_ce_truk_statut']);$personnel['_tel_fax_'] = $this->construireTxtListeOntologie($personnel['cp_truk_telephone']);$personnel['_courriel_'] = $this->traiterTxtTruck($personnel['cp_truk_courriel']);$personnel['_courriel_'] = $this->formaterCourriels($personnel['_courriel_']);$personnel['_contact_'] = $this->formaterOuiNon($personnel['csap_mark_contact']);$personnel['_specialite_'] = $this->construireTxtListeOntologie($personnel['cp_ce_truk_specialite']);$personnel['_url_'] = $this->obtenirUrlFichePersonne($personnel['csap_id_personne']);}}}