New file |
0,0 → 1,192 |
<?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 { |
|
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
return $this->afficherStructure(); |
} |
|
// +---------------------------------------------------------------------------------------------------------------+ |
// FICHE STRUCTURE |
public function afficherStructure() { |
$donnees = array(); |
|
// Gestion des actions par défaut |
$this->executerAction('Recherche', 'chargerMoteurRecherche'); |
|
// Gestion des données de la requête |
if (!isset($_GET['id'])) { |
|
} else { |
// Gestion des données |
$donnees['id'] = $_GET['id']; |
$donnees['info'] = $this->structureDao->getStructure($donnees['id']); |
$donnees['personnel'] = $this->structureDao->getPersonnel($donnees['id']); |
$donnees['collections'] = $this->collectionDao->getParIdStructure($donnees['id']); |
$this->traiterDonneesStructure($donnees['info']); |
$this->traiterPersonnel($donnees['personnel']); |
$this->traiterDonneesStructureConservation($donnees['info']); |
$this->traiterDonneesStructureValorisation($donnees['info']); |
$this->traiterDonneesStructureCollections($donnees['collections']); |
$this->postraiterDonnees($donnees); |
$donnees['metadonnees'] = $this->traiterMetaDonnees($donnees['info']); |
|
// Création des méta-données de la page |
$titre = $donnees['info']['cs_nom']; |
$description = $donnees['info']['cs_description']; |
$tags = "Structure, id:{$donnees['id']}, {$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', $donnees)); |
$this->chargerPiedDePage(); |
} |
} |
|
private function traiterDonneesStructure(&$donnees) { |
// liste 01 : Liste des états des enregistrements de la base de données |
Ontologie::chargerListe(1001); |
// liste 12 : Liste des types de structure privé |
Ontologie::chargerListe(1015); |
// liste 13 : Liste des types de structure public |
Ontologie::chargerListe(1016); |
// liste 71 : Liste des pays du standard ISO-3166-1 |
Ontologie::chargerListe(1074); |
|
$guid_id_valeur = Config::get('guid_id_collection').$donnees['cs_id_structure']; |
$donnees['_guid_'] = sprintf(Config::get('guid'), Config::get('guid_projet'), $guid_id_valeur); |
$donnees['_date_fondation_'] = $this->formaterDate($donnees['cs_date_fondation'], ColControleur::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['_region_'] = Ontologie::getValeurNom($donnees['cs_ce_truk_region']); |
$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 collections |
Ontologie::chargerListe(1018); |
// liste 16 : Liste des types de mobilier de stockage de collections |
Ontologie::chargerListe(1019); |
// liste 17 : Liste des paramètres de contrôle environnemental d'un local |
Ontologie::chargerListe(1020); |
// liste 18 : Liste des types de collection non botanique |
Ontologie::chargerListe(1021); |
// liste 19 : Liste des types d'opération de restauration pour les collections botaniques |
Ontologie::chargerListe(1022); |
// liste 20 : Liste oui/non/en partie |
Ontologie::chargerListe(1023); |
// liste 21 : Liste du matériel dit de nom conservation des parts d'herbier |
Ontologie::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 collections |
Ontologie::chargerListe(1027); |
// liste 25 : Liste des continents habités incluant aussi le pays France |
Ontologie::chargerListe(1028); |
// liste 26 : Liste des types de recherche nécessitant la consultation de collection botanique |
Ontologie::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 traiterDonneesStructureCollections(&$collections) { |
foreach ($collections as &$collection) { |
$collection['_url_'] = $this->obtenirUrlFicheCollection($collection['cc_id_collection']); |
} |
} |
|
private function traiterPersonnel(&$donnees) { |
// liste 09 : Liste des fonctions d'une personne au sein d'une structure |
Ontologie::chargerListe(1012); |
// liste 10 : Liste des statuts d'une personne au sein d'une structure |
Ontologie::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']); |
} |
} |
} |