Rev 1157 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Classe mère du module fiche metadonnées.** @category PHP 5.2* @package eflore-consultation* @author Aurélien Peronnet <aurelien@tela-botanica.org>* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @author Delphine CAUQUIL <delphine@tela-botanica.org>* @copyright 2011 Tela-Botanica* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2* @version $Id$*/class FicheMetadonnees extends aControleur {private $projet = '';private $serviceMetaDonnees;public function __construct($metadonnees = null) {$this->capturerParametres();$this->serviceMetaDonnees = (is_null($this->serviceMetaDonnees)) ? new MetaDonnees($this->projet) : $metadonnees;}public function executerActionParDefaut() {$this->executerAffichageMetaDonnees();}public function chargerMetadonneesHtml() {$meta = $this->serviceMetaDonnees->getMetaDonnees();$meta_resume = $this->formaterResumeMetadonnees($meta[0]);$donnees['i18n'] = I18n::get('Metadonnees');foreach ($meta as $index => $metadonnees) {$meta[$index] = $this->formaterClesMetadonnees($metadonnees);}$donnees['metadonnees'] = $meta;$donnees['metadonnees_resume'] = $meta_resume;$html = $this->getVue(dirname(__FILE__).'/squelettes/metadonnees', $donnees);return $html;}private function formaterResumeMetadonnees($meta) {return array('auteurs' => $this->formaterAuteurs($meta),'url' => $this->formaterUrl($meta),'description' => $meta['description'],'citation' => $meta['citation'],'titre' => $meta['titre'],'date' => strftime("%d/%m/%Y", strtotime($meta['date_creation'])));}private function formaterAuteurs($meta) {$contacts = array();$noms = array();if(isset($meta['createurs.details'])) {foreach($meta['createurs.details'] as $createur_detail) {$auteur_nom_fmt = isset($createur_detail["p.nom"]) ? $createur_detail["p.nom"] : "";$auteur_prenom_fmt = isset($createur_detail["p.prenom"]) ? $createur_detail["p.prenom"] : "";$structure_fmt = isset($createur_detail["o.nom"]) ? $createur_detail["o.nom"] : "";$auteur_contact = isset($createur_detail["p.courriel"]) ? $createur_detail["p.courriel"] : "";if($auteur_prenom_fmt != "" || $auteur_nom_fmt != "") {$nom_prenom_structure_fmt = $auteur_prenom_fmt.' '.$auteur_nom_fmt;if($structure_fmt != "") {$nom_prenom_structure_fmt .= " (".$structure_fmt.")";}$noms[] = $nom_prenom_structure_fmt;}if($auteur_contact != "") {$contacts[] = $auteur_contact;}}}$createurs = array('noms' => implode(", ", $noms), 'contacts' => implode(", ", $contacts));return $createurs;}private function formaterUrl($meta) {return $meta['url_projet'];}public function executerAffichageMetaDonnees($donnees) {header('Content-type: text/html; charset=UTF-8');$html = $this->chargerMetadonneesHtml();echo $html;exit;}private function capturerParametres() {if (isset($_GET['projet'])) {$this->projet = $_GET['projet'];}}private function formaterClesMetadonnees($metadonnees) {$meta_fmt = array();foreach ($metadonnees as $cle => $metadonnee) {$cle_fmt = str_replace('.', '_', $cle);if(is_array($metadonnee)) {$metadonnee = $this->formaterClesMetadonnees($metadonnee);} elseif($this->estUnLien($metadonnee)) {$metadonnee = $this->formaterLienMetadonnee($metadonnee);}$meta_fmt[$cle_fmt] = $metadonnee;}return $meta_fmt;}private function estUnLien($valeur) {// le test du pauvre, mais ça suffit ici// car nous controlons le format des métadonnéesreturn strpos($valeur, "http://") !== false;}private function formaterLienMetadonnee($lien) {return '<a href="'.$lien.'" target="_blank">'.$lien.'</a>';}}?>