Rev 960 | Rev 1128 | 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();foreach ($meta as $index => $metadonnees) {$meta[$index] = $this->formaterClesMetadonnees($metadonnees);}$donnees['metadonnees'] = $meta;$donnees['i18n'] = I18n::get('Metadonnees');$html = $this->getVue(dirname(__FILE__).'/squelettes/metadonnees', $donnees);return $html;}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>';}}?>