New file |
0,0 → 1,119 |
<?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ées |
return strpos($valeur, "http://") !== false; |
} |
|
private function formaterLienMetadonnee($lien) { |
return '<a href="'.$lien.'" target="_blank">'.$lien.'</a>'; |
} |
} |
?> |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |