Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1427 → Rev 1428

/branches/v5.10-vilmorin/modules/popup_galerie/squelettes/popup_galerie_illustrations.tpl.html
New file
0,0 → 1,243
<script type="text/javascript">
<!--
var urls = [<?= '"'.implode($urls, '","').'"'; ?>];
var ids = [<?= '"'.implode($ids, '","').'"'; ?>];
var meta = new Array();
var indexImage = 0;
var urlImage = "<?= $url_image; ?>";
var tailleMaxHauteur = 580;
var tailleMaxlargeur = 680;
var titre = "<?= $titre; ?>";
var urlMeta = "<?= $url_meta; ?>";
var urlContact = "<?= $url_contact; ?>";
var referentiel = "<?= Registre::get('parametres.referentiel'); ?>";
var metadonneesOuvertes = false;
var hauteurSansMeta = null;
function redimensionnerImage(objet) {
objet.removeAttr("width");
objet.removeAttr("height");
var hauteurImage = objet.height();
var largeurImage = objet.width();
var rapport = 1;
if(largeurImage > hauteurImage && largeurImage > tailleMaxlargeur) {
rapport = hauteurImage/largeurImage;
if(screen.width < 800) {
largeurImage = 540;
configurerAffichagePetiteTaille();
}
hauteurImage = largeurImage*rapport;
$('#illustration').attr("height", hauteurImage);
$('#illustration').attr("width", largeurImage);
}
 
if(hauteurImage > largeurImage && hauteurImage > tailleMaxHauteur) {
rapport = largeurImage/hauteurImage;
if(screen.height < 800) {
hauteurImage = 340;
configurerAffichagePetiteTaille();
} else {
hauteurImage = 580;
$("#info-img-galerie").height('100%');
}
largeurImage = hauteurImage*rapport;
$('#illustration').attr("height", hauteurImage);
$('#illustration').attr("width", largeurImage);
}
 
var facteurResize = 90;
if($(window).height() < 800) {
facteurResize = 10;
}
hauteurSansMeta = hauteurImage+facteurResize;
window.resizeTo(largeurImage+260,hauteurImage+facteurResize+90);
}
 
function configurerAffichagePetiteTaille() {
$("#info-img-galerie").height('100%');
$('html').css('height', '100%');
$('body').css('height', '100%');
$("#zone-corps").height('100%');
$("#zone-conteneur").height('100%');
}
function imageSuivante() {
indexImage++;
if(indexImage >= urls.length) {
indexImage = 0;
}
cacherMetadonnees();
$('#illustration').attr('src', urls[indexImage]);
}
function imagePrecedente() {
indexImage--;
if(indexImage <= 0) {
indexImage = urls.length - 1;
}
cacherMetadonnees();
$('#illustration').attr('src', urls[indexImage]);
}
function ouvrirFenetreIllustrationResultat(url, titre) {
var fenetre = window.open('', titre+" - zoom ");
var tmp = fenetre.document;
tmp.write('<html><head><title>'+titre+" - zoom "+'</title>');
tmp.write('</head><body>');
tmp.write('<p style="height="100%";text-align:center;line-height="100%"><img id="image_agrandie" style="vertical-align:middle;" src="'+url+'" /></p>');
tmp.write('</body></html>');
tmp.clos();
}
function obtenirUrlContact(idImage, IdAuteur) {
return urlContact.replace('{id_auteur}',IdAuteur).replace('{id_img}',idImage);
}
function formaterDate(string) {
var date = new Date();
var parts = String(string).split(/[- :]/);
date.setFullYear(parts[0]);
date.setMonth(parts[1] - 1);
date.setDate(parts[2]);
date.setHours(parts[3]);
date.setMinutes(parts[4]);
date.setSeconds(parts[5]);
date.setMilliseconds(0);
return (("0" + date.getDate()).slice(-2))+"/"+(("0"+(date.getMonth()+1)).slice(-2))+"/"+date.getFullYear();
}
function formaterMetadonnees(data) {
data.contact_url = obtenirUrlContact(ids[indexImage], data['auteur.id']);
data.id = ids[indexImage];
data.date = formaterDate(data.date);
return data;
}
function chargerEtAfficherMetadonnees() {
$('#info-obs-meta').remove();
if(meta[ids[indexImage]] == null) {
var urlMetaImage = urlMeta.replace('{projet}','cel').replace('{id}',ids[indexImage]).replace('{referentiel}',referentiel);
$.get(urlMetaImage, function(data) {
data = formaterMetadonnees(data);
afficherMetadonnees(data);
meta[ids[indexImage]] = data;
});
} else {
afficherMetadonnees(meta[ids[indexImage]]);
}
}
function afficherMetadonnees(data) {
$("#tpl-obs-meta").tmpl(data).appendTo('.img-cadre');
//if($(window).height() > 800) {
window.resizeTo($(window).width(),hauteurSansMeta+300);
//}
$("#lien-voir-meta").html('Cacher les informations');
}
function cacherMetadonnees() {
//if($(window).height() > 800) {
window.resizeTo($(window).width(),hauteurSansMeta);
//}
$('#info-obs-meta').remove();
$("#lien-voir-meta").html('Informations sur cette image / Contacter l\'auteur');
metadonneesOuvertes = false;
}
$(document).ready(function() {
$('#precedent').click(function() {
imagePrecedente();
});
$('#suivant').click(function() {
imageSuivante();
});
 
if(!Array.indexOf){
Array.indexOf = function(array, search){
for(var i=0; i<array.length; i++){
if(array[i]==search){
return i;
}
}
return -1;
}
}
if(urlImage != "null" && urlImage != "") {
indexImage = Array.indexOf(urls, urlImage);
$('#illustration').attr('src', urls[indexImage]);
}
$('#illustration').load(function() {
redimensionnerImage($(this));
});
$('#illustration').click(function() {
ouvrirFenetreIllustrationResultat($(this).attr("src").replace("L","X3L"), titre);
});
$("#lien-voir-meta").click(function() {
metadonneesOuvertes = !metadonneesOuvertes;
if(metadonneesOuvertes) {
chargerEtAfficherMetadonnees();
} else {
cacherMetadonnees();
}
});
$("body").keydown(function(e) {
if(e.keyCode == 37) { // gauche
imagePrecedente();
}
else if(e.keyCode == 39) { // droite
imageSuivante();
}
});
$('#zone-pied').hide();
});
// -->
</script>
 
<!-- Squelette du contenu du tableau des observation -->
<script id="tpl-obs-meta" type="text/x-jquery-tmpl">
<div id="info-obs-meta" class="importance1">
<dl>
<dt>Photo n°</dt><dd>${id}</dd>
<dt>Titre</dt><dd>${$data["determination.nom_sci"]}</dd>
<dt>Description</dt><dd>${$data['determination.libelle']}</dd>
<dt>Localisation</dt><dd>${$data['station.commune']}</dd>
<dt>Auteur</dt>
<dd>
${$data['auteur.libelle']}
<a class="mailto" href="${contact_url}">(Contacter ...)</a>
</dd>
<dt>Date d'observation</dt><dd>${date}</dd>
<dt>Licence</dt><dd><a class="lien-externe" href="http://www.tela-botanica.org/page:licence">CC-BY-SA</a></dd>
</dl>
</div>
</script>
 
<div id="info-img-galerie">
<div class="conteneur-precedent">
<a id="precedent" href="#" title="cliquez ici ou utilisez la flèche gauche pour afficher l'image précédente">
<img style="border:none" src="http://www.tela-botanica.org/sites/commun/generique/images/flecheGauche.jpg" alt="&lt;" />
</a>
</div>
<div class="img-cadre">
<img id="illustration" src="<?=$urls[0]?>" alt="" title="cliquez pour voir cette image dans son format original" /><br />
<a id="lien-voir-meta" href="#" title="cliquez ici pour voir les métadonnées de l'image et contacter l'auteur">Informations sur cette image / Contacter l'auteur</a>
</div>
<div class="conteneur-suivant">
<a id="suivant" href="#" title="cliquez ici ou utilisez la flèche droite pour afficher l'image suivante">
<img style="border:none" src="http://www.tela-botanica.org/sites/commun/generique/images/flecheDroite.jpg" alt="&gt;" />
</a>
</div>
<hr class="nettoyage" />
</div>
/branches/v5.10-vilmorin/modules/popup_galerie/PopupGalerie.php
New file
0,0 → 1,92
<?php
// declare(encoding='UTF-8');
/**
* Affiche un pop-up avec une galerie d'illustrations.
*
* @category php 5.2
* @package eFlore-consultation
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @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 $Id$
*/
 
class PopupGalerie extends aControleur {
private $conteneur = null;
private $urlImage = null;
private $images = null;
private $appUrls = null;
private $titre = '';
private $formats_possibles = array("O","CRX2S","CRS","CXS","CS","XS","S","M","L","XL","X2L","X3L");
private $format_agrandi = 'L';
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->num_nom = $_GET['num_nom'];
}
if (isset($_GET['url_image'])) {
$this->urlImage = urldecode($_GET['url_image']);
}
if (isset($_GET['format'])) {
$this->format = $_GET['format'];
}
if (isset($_GET['titre'])) {
$this->titre = $_GET['titre'];
}
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
$infos = array();
$this->images->setProjet('cel');
$urls = $this->images->getUrlsImagesOrganesParIdsNom($this->num_nom);
$urls = $urls[Registre::get('parametres.referentiel').'.'.$this->num_nom];
$ids = array();
foreach($urls as $index => $url) {
$urls[$index] = str_replace($this->formats_possibles, $this->format_agrandi, $url);
$ids[$index] = $this->extraireIdDeUrl($url);
}
$infos['urls'] = $urls;
$infos['ids'] = $ids;
$infos['num_nom'] = $this->num_nom;
$infos['referentiel'] = Registre::get('parametres.referentiel');
$infos['url_image'] = str_replace($this->formats_possibles, $this->format_agrandi, $this->urlImage);
$infos['titre'] = $this->titre;
$infos['url_meta'] = Config::get('imagesPopupTpl');
$infos['url_contact'] = $this->appUrls->obtenirUrlPopUpContact("{id_auteur}", "{id_img}");
$this->setSortie(self::META_TITRE,$this->titre, true);
$this->setSortie(self::RENDU_CORPS, $this->getVue('popup_galerie_illustrations', $infos));
}
private function extraireIdDeUrl($url) {
$matches = array();
$formats = implode("|", $this->formats_possibles);
//preg_match('#cel-img:([0-9]*)('.$formats.')#', $url, $matches);
preg_match('#img:([0-9]*)('.$formats.')#', $url, $matches); // expèrons que ça va marcher
return ltrim($matches[1],'0');
}
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
$dateFmt = 'inconnue';
} else {
$dateFmt = strftime('%e %B %Y', strtotime($date));
}
return $dateFmt;
}
 
}
?>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_repartition.tpl.html
New file
0,0 → 1,92
<div class="onglet_contenu" id="repartition">
<? if (isset($repartition)) : ?>
<div id="repartition">
<h2>Chorologie départementale</h2>
<object class="chorodep_svg" type="image/svg+xml" data="<?=$repartition['svgUrl']?>" class="svg" alt="<?=$repartition['pngUrl']?>">
</object>
<div id="legende" style="position:absolute; margin-top:-250px;margin-left:20px;">
<h3>Légende</h3><br />
<? foreach ($repartition['legende'] as $id => $details) :?>
<div style="clear:left; ">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div class="texte_legende_repartition"><b><?=$details['nom']?></b></div>
</div>
<? endforeach; ?>
</div>
<div class="conteneur_lien_metadonnees">
<?=$repartition['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $repartition['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<a href="http://www.tela-botanica.org/page:liste_projets?id_projet=9&amp;act=description"
title="Carte en cours d'élaboration. Participez au projet" onclick="window.open(this.href); return false;"
class="acceder-outil">Participez au projet</a>
</div>
<? endif; ?>
<hr class="nettoyage" />
<? if (isset($moissonnage)) : ?>
<div id="moissonnage">
<h2>Observations</h2>
<div class="conteneur_repartition_observations" >
<object id="repartition_observations" type="text/html" data="<?=$moissonnage['mapUrl']?>" class="svg" alt="<?=$moissonnage['mapUrl']?>" style="width:620px; height:620px; overflow:none;">
</object>
</div>
<div id="legende" style="padding:15px;margin-top:-25px;">
<? foreach ($moissonnage['legende'] as $id => $details) :?>
<div style="clear:left;">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div ><b><?=$details['nom']?> : </b><?=$details['description']?></div>
</div>
<? endforeach; ?>
</div>
<div id="carte_recalculer">
<span>Une fois générée, cette carte est mise en cache.</span>
<a href="#" id="lien_recalculer_carte">Recalculer la carte</a>
</div>
<div id="carte_telechargement">
<span>Télécharger la carte au format </span>
<a href="<?=$moissonnage['mapTelechargementUrls']['png']; ?>">png</a>&nbsp;
<a href="<?=$moissonnage['mapTelechargementUrls']['html']; ?>">html</a>
</div>
</div>
<hr class="nettoyage" />
<?endif;?>
<? if (isset($flore_probable)) : ?>
<div id="flore_probable">
<h2>Carte de la flore probable</h2>
<? if ($flore_probable['carte']['url'] != null) { ?>
<div class="conteneur_flore_probable">
<img id="carte_flore_probable" alt="Carte de la flore probable pour ce taxon" src="<?= $flore_probable['carte']['url'] ?>" />
</div>
<hr class="nettoyage" />
<?=$flore_probable['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $flore_probable['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
<? } else { ?>
<h3 class="aucune_info"> Aucune carte de flore probable pour ce taxon </h3>
<?php } ?>
</div>
<hr class="nettoyage" />
<?endif;?>
<div id="cel">
<h2>Observations du carnet en ligne</h2>
<iframe style="width:100%;height:500px" src="<?= Config::get('base_url_widget_carto'); ?>?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>"></iframe>
<a href="<?= Config::get('base_url_widget_carto'); ?>?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>">Consultez les données du carnet en ligne sur le widget carto</a>
<hr class="nettoyage" />
<div>
<a href="<?= Config::get('base_url_widget_saisie'); ?>?num_nom=<?=$widget['nn']?>&referentiel=<?=$widget['referentiel'] ?>" title="Ajouter une observation au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="acceder-outil">
Rajouter une observation
</a>
</div>
</div>
<script type="text/javascript">
$.event.trigger('ongletRepartitionCharge');
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_bibliographie.tpl.html
New file
0,0 → 1,36
<div class="onglet_contenu" id="bibliographie">
<? if (isset($flores)) : ?>
<h2> Flores </h2>
<ul class="liste_biblio_flores">
<?php foreach($flores['liste_flores'] as $flore) : ?>
<li class="item_biblio_flore"> <?= $flore ?></li>
<?php endforeach; ?>
</ul><hr class="nettoyage" />
<div class="conteneur_lien_metadonnees">
<?= $flores['meta']['titre']?>
<a class="lien_metadonnees lien_popup" href="<?= $flores['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<? endif; ?>
<h2> Références bibliographiques </h2>
<ul class="references_bibliographiques">
<?php foreach($bibliobota['references'] as $reference) : ?>
<li><?=$reference['reference_html']?></li>
<?php endforeach; ?>
</ul>
<a class="acceder-outil" href="http://www.tela-botanica.org/page:accueil_biblio">Participez aux projets collaboratifs liés à la bibliothèque</a>
<div class="conteneur_lien_metadonnees">
<?= $bibliobota['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $bibliobota['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<h2> Bibliographie collaborative : </h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction collaborative de cette bibliograpĥie, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="biblio">
<?=$wikini['biblio']?>
</div>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil.tpl.html
New file
0,0 → 1,51
<script type="text/Javascript">
var ongletsDefaut = [<?= $blocs; ?>];
</script>
<div id="bloc-fiche" class="importance1">
<h1><span ><?=$nom_retenu?></span><span class="famille" style="float: right;"><?=($famille != '') ? $famille : '';?></span></h1>
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel=bdtfx&niveau=1&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" href="<?=$url;?>synthese">Accueil</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>illustrations">Illustrations</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>description">Description</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>bibliographie">Bibliographie</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>repartition">Répartition</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ethnobotanique">Ethnobotanique</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'classification') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>classification">Classification</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>nomenclature">Nomenclature</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>statut">Statut de protection</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ecologie">Ecologie</a>
</li>
<li id="ongletEtPlus" class="ui-state-default ui-corner-top">
<a id="lienOngletEtPlus" class="lien-statique" href="#etPlus" title="Ajouter d'autres fiches">
+
</a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations.tpl.html
New file
0,0 → 1,209
<div class="onglet_contenu" id="illustrations">
<? if (isset($coste)) : ?>
<h2>Illustration de la flore de Coste</h2>
<div id="illustrations-coste">
<?php if (empty($coste['images']) == false) :?>
<ul class="liste-illustrations">
<?php foreach($coste['images'] as $url) : ?>
<li>
<a class="lien-image-coste" data-num-image="<?= $url; ?>" href="<?= $url; ?>" >
<img src="<?= $url; ?>" alt="<?= $nomComplet ?> - illustration de coste" />
</a>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<div class="conteneur_lien_metadonnees">
<?= $coste['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $coste['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<?php else : echo ' <br/> Aucune illustration. <br/> <br/>'; endif;?>
</div>
<? endif; ?>
 
<? if (isset($organes) || $illustrationsOrganes != null) : ?>
<h2>Flora Data - Organes</h2>
<? endif ?>
 
<? if (isset($organes)) : ?>
 
<div id="illustrations-organes">
<? if (empty($organes) == false) :?>
<ul class="liste-illustrations">
<? foreach($organes as $tag => $image) : ?>
<? if ($image && $image['binaire.href']) : ?>
<li class="organe-moyen">
<?= ucfirst($tag); ?>
<a class="lien_grand_format" target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="<?= Illustrations::obtenirUrlImageGrandFormatCel($image['id_image']); ?>" data-num-image="<?= $image['id_image'] ?>">
<img data-num-image="<?= $image['id_image'] ?>"
alt="Photographie n°<?= $image['id_image'] ?> du taxon <?= $image['observation']['determination.ns'] ?>"
src="<?= $image['binaire.href'] ?>" />
</a>
</li>
<? endif ?>
<? endforeach ?>
</ul>
<? endif ?>
<hr class="nettoyage" />
<a class="acceder-outil-vert lien-externe"
href="<?= $base_url_widget_saisie ?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>"
title="Ajouter une photographie au moyen du Carnet en Ligne">
Ajouter une photo
</a>
<? if (empty($organes) == false) : ?>
<span class="separator"></span>
<a class="acceder-outil-vert lien-externe" href="<?= $base_url_pictoflora ?>?masque.referentiel=<?= $referentiel; ?>&protocole=3&masque.ns=<?= $nomComplet ?>"
title="Participer au choix des photos d'organes">
Participer au choix
</a>
<? endif ?>
<br/><br/>
</div>
<? endif ?>
 
<!-- sous-squelette -->
<?= $illustrationsOrganes ?>
<br/>
 
<? if (isset($caracteres)) : ?>
<h2>Flora Data - Aide à la détermination</h2>
 
<div id="illustrations-caracteres">
<? if (empty($caracteres) == false) : ?>
<ul class="liste-illustrations">
<? foreach($caracteres as $image) : ?>
<li class="caractere-moyen">
<? if ($image != null) : ?>
<a class="lien_grand_format" target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="<?= Illustrations::obtenirUrlImageGrandFormatCel($image['id_image']); ?>" data-num-image="<?= $image['id_image'] ?>">
<img data-num-image="<?= $image['id_image'] ?>"
alt="<?= $image['auteur'] ?> - <?= $image['observation']['determination.ns'] ?>"
src="<?= $image['binaire.href'] ?>" />
</a>
<? if ($image['auteur.id']) : ?>
<a target="_blank" title="Voir le profil de cet utilisateur (nécessite d'être identifié)" href="<?= $image['urlProfil']; ?>">
<strong class="auteur"><?= $image['auteur'] ?></strong>
</a>&nbsp;&nbsp;
<div class="liste_actions_ill">
<a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)" class="mailto" href="<?= $image['urlContact']; ?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>contact.png" />
</a>
<a title="Télécharger cette image dans différents formats" class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$image['id_image']?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
</a>
<a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?=$image['id_image']?>" href="<?=$image['urlDetailImg'];?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$image['id_image']?>" />
</a>
<a title="Signaler une mauvaise identification ou en proposer une autre via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
</a>
</div>
<? else : ?>
<strong class="auteur"><?= $image['auteur'] ?></strong>
&nbsp;&nbsp;(profil indisponible)
<div class="liste_actions_ill">
<a class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$image['id_image']?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
</a>
<a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?= $image['id_image'] ?>" href="<?=$image['urlDetailImg'];?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$image['id_image'];?>" />
</a>
<a title="Proposer une autre détermination via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
</a>
</div>
<? endif ?><br />
<? endif ?>
</li>
<? endforeach ?>
</ul>
<? endif ?>
<hr class="nettoyage" />
<div class="ajouter-participer-choix">
<a class="acceder-outil-vert lien-externe"
href="<?= $base_url_widget_saisie ?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>"
title="Ajouter une photographie au moyen du Carnet en Ligne">
Ajouter une photo
</a>
<? if (empty($caracteres) == false) : ?>
<span class="separator"></span>
<a class="acceder-outil-vert lien-externe" href="<?= $base_url_pictoflora ?>?masque.referentiel=<?= $referentiel; ?>&masque.ns=<?= $nomComplet ?>#page_recherche_images~1"
title="Participer au choix des photos d'organes">
Participer au choix
</a>
<? endif ?>
</div>
</div>
<br/>
<? endif ?>
 
<? if (isset($cel)) : ?>
<h2>Flora Data - Tout</h2>
<br/><br/>
<div id="illustrations-cel">
<? if ($cel['cel_present']) { ?>
<div class="lien-ajax-tpl">
<!-- sous-squelette -->
<?= $cel['illustrationsCel'] ?>
<br/>
<span>Seules les <?= Config::get('nbTrancheImagesResultatsDeterminationAffichees') ?> premières images sont affichées : </span>
<a href="<?= $cel['ajax_url']; ?>" class="lien-ajax-tpl-chargement">
<strong>Cliquez ici pour charger toutes les illustrations disponibles pour ce taxon</strong>
</a>
</div>
<br/>
<div class="conteneur_lien_metadonnees">
<?= $cel['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $cel['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<?php } else { echo ' <br/> Aucune illustration. <br/> <br/>'; } ?>
<a class="acceder-outil-vert lien-externe"
href="<?= $base_url_widget_saisie ?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>"
title="Ajouter une photographie au moyen du Carnet en Ligne">
Ajouter une photo
</a>
</div>
<br/><br/><br/>
<? endif ?>
<? if (isset($photoflora)) : ?>
<h2>Photoflora </h2>
<p id="intro-photoflora">
Ces images sont fournies par le site <a href="http://photoflora.free.fr/" class="lien-externe">Photoflora</a>.<br>
Des informations complémentaires sur l'auteur, la localité... sont diponibles sur la
<a href="http://photoflora.free.fr/FiTax.php?NumTaxon=<?= $nt ?>" class="lien-externe">
page du taxon <span class="nom-sci"><?= $nomSciRetenu ?></span>
</a>.
</p>
<div id="illustrations-photoflora">
<?php if (isset($photoflora['images'])) : ?>
<ul class="liste-illustrations">
<?php foreach($photoflora['images'] as $id => $image) : ?>
<li>
<a class="lien-externe img-cadre" href="http://photoflora.free.fr/UneFoto.php?NumTaxon=<?= $nt ?>&NumPhoto=<?= $id ?>.jpg">
<div class="img-cadre-fond">
<img src="<?= $image['src'] ?>" alt="Photographie n°<?=$id;?> du taxon <?= $image['nomSci']; ?>" />
</div>
</a>
<p>
à <strong class="localisation"><?= $image['station']; ?></strong><br />
le <strong class="date-creation"><?= $image['date']; ?></strong><br />
par <strong class="auteur"><?= $image['auteur']; ?></strong>
</p>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<? endif; ?>
</div>
<div class="conteneur_lien_metadonnees">
<?= $photoflora['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $photoflora['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<?php endif; ?>
 
<script type="text/javascript">
$.event.trigger('ongletIllustrationsCharge');
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_pied_page.tpl.html
New file
0,0 → 1,71
<div class="importance1">
<div class="gauche telechargements_pdf">
<h2>Téléchargements</h2>
<div class="conteneur_telechargements">
<?= $export_pdf; ?>
</div>
<h2>Fiche mobile SmartFlore :</h2>
<div class="conteneur_permalien_mobile">
<span>Fiche mobile SmartFlore :</span>
<span class="description">
<a class="lien_externe" href="<?= $mobile; ?>" title="voir la version mobile de ce taxon (s'ouvre dans une nouvelle fenêtre)">
Version nomade
</a>
</span>
</div>
<div class="conteneur_permalien_mobile">
<span>QR code :</span>
<a class="lien_telechargement_qr_code" target="_blank" href="<?= $qr_code_png; ?>">QR code</a>
</div>
</div>
<div class="droite infos_liens_permanents">
<h2>Informations :</h2>
<div class="gauche telechargements_pdf">
<div class="conteneur_permalien">Numéro nomenclatural : <?= $nn ?></div>
<div class="conteneur_permalien">Numéro taxonomique : <?= $nt ?></div>
</div>
<div class="droite infos_liens_permanents">
<div class="conteneur_permalien">Numéro nomenclatural du nom retenu : <?= $nnr ?></div>
<?php if(isset($inpn) && $inpn != "0") : ?><div class="conteneur_permalien">Numéro INPN : <?= $inpn ?></div><? endif; ?>
</div>
<hr class="nettoyage" />
<h2>Liens permanents :</h2>
<div class="conteneur_permalien">
<span>Nom sélectionné :</span>
<span class="conteneur_permalien">
<a id="permalien_num_nom" class="lien_externe" href="<?=htmlentities($permalien_num_nom)?>" title="Lien permanent vers <?=$nom_retenu;?>">
<?=htmlentities($permalien_num_nom)?>
</a>
</span>
</div>
<!-- <div class="conteneur_permalien">
<span class="titre_lien_permanent">Taxon :</span>
<span>
<a class="lien_externe" href="<?=htmlentities($permalien_taxon)?>" title="Lien permanent vers ce taxon">
<?=htmlentities($permalien_taxon)?>
</a>
</span>
</div> -->
<div class="conteneur_permalien">
<span>Fiche wikipedia :</span>
<span class="description conteneur_permalien">
<a id="permalien_wikipedia" class="lien_externe" href="<?=htmlentities($wikipedia['lien'])?>" title="voir la page de ce taxon sur wikipedia (s'ouvre dans une nouvelle fenêtre)">
<?=htmlentities($wikipedia['lien'])?>
</a>
</span>
</div>
<div class="conteneur_permalien">
<span>Fiche wikini :</span>
<span class="description conteneur_permalien">
<a id="permalien_wikini" class="lien_externe" href="<?=htmlentities($wiki)?>" title="voir la page de ce taxon sur le wiki flora (s'ouvre dans une nouvelle fenêtre)">
<?=htmlentities($wiki)?>
</a>
</span>
</div>
</div>
<hr class="nettoyage" />
<script type="text/javascript">
$.event.trigger('ficheSyntheseChargee');
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_pdf_lien.tpl.html
New file
0,0 → 1,35
<!-- cadre de bas de la fiche contient les liens pour export pdf. -->
<script>
<!--
$(document).ready(function(){
$('#bloc_export_choix').hide();
$('#export_choix').click(function(event) {
$('#bloc_export_choix').slideToggle();
event.preventDefault();
return false;
});
});
-->
</script>
<div>
<a href="<?=$lien?>" class="lien_export_pdf"> Télécharger la fiche au format PDF </a>
<div class="avertissement_telechargement">(Peut durer jusqu'à 30 secondes)</div><br />
<a href="" id="export_choix" name="export_choix">Personnaliser la fiche</a>
<div id="bloc_export_choix">
<form id="export_pdf" method="post" action="<?=$lien?>" >
<br/>
<span>Cocher les sections à télécharger :</span>
<fieldset>
<label> Description </label> <input type="checkbox" name="bloc[]" value="description" />
<label> Ethnobotanique </label> <input type="checkbox" name="bloc[]" value="ethnobotanique" />
<label> Ecologie </label> <input type="checkbox" name="bloc[]" value="ecologie" />
<label> Statuts de protection </label> <input type="checkbox" name="bloc[]" value="statuts" />
<label> Nomenclature </label> <input type="checkbox" name="bloc[]" value="nomenclature" />
<label> Bibliographie </label> <input type="checkbox" name="bloc[]" value="bibliographie" />
<label> Illustrations </label> <input type="checkbox" name="bloc[]" value="illustrations" />
<label> Répartition </label> <input type="checkbox" name="bloc[]" value="repartition" />
</fieldset>
<input type="submit" name="choix" value="Télécharger la fiche."/>
</form>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_description.tpl.html
New file
0,0 → 1,184
<div class="onglet_contenu" id="description">
<?php if(isset($coste) && isset($coste['titre'])) : ?>
<h2>Description de Coste : <?=$coste['titre']?></h2>
<div class="description coste">
<? if (!empty($coste['description'])) : ?>
<table class="desc">
<tr>
<td>
<?if ($coste['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$coste['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($coste['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$coste['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($coste['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$coste['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($coste['description']['texte'] != '') : ?>
<?=$coste['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($coste['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$coste['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($coste['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$coste['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($coste['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$coste['description']['floraison']; ?>
<?if ($coste['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$coste['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($coste['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$coste['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<div class="conteneur_lien_metadonnees">
<?=$coste['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $coste['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? else : ?>
Aucune donnée.
<? endif; ?>
</div>
<? endif; ?>
<?php if(isset($baseflor)) : ?>
<h2>Description Baseflor : </h2>
<div class="description baseflor">
<? if (!empty($baseflor)) : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($baseflor['type_bio'] != '') : ?>
<span class="titre">Type Biologique : </span><?=$baseflor['type_bio']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($baseflor['form_vegetale'] != '') :?>
<span class="titre">Formation végétale : </span> <?=$baseflor['form_vegetale']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($baseflor['chorologie'] != '') :?>
<span class="titre">Chorologie : </span>&nbsp<?=$baseflor['chorologie']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<?if ($baseflor['inflorescence'] != '') :?>
<span class="titre">Inflorescence :</span> <?=$baseflor['inflorescence'];?> <br/>
<? endif; ?>
<?if ($baseflor['fruit'] != '') :?>
<span class="titre">Fruit :</span><?=$baseflor['fruit']; ?> <br/>
<? endif; ?>
<?if ($baseflor['couleur_fleur'] != '') :?>
<span class="titre">Couleur de la fleur : </span><?=$baseflor['couleur_fleur'] ;?> <br/>
<? endif; ?>
<?if ($baseflor['macule'] != '') :?>
<span class="titre">Macule : </span><?=$baseflor['macule']; ?> <br/>
<? endif; ?>
<?if ($baseflor['floraison'] != '') :?>
<span class="titre">Floraison : </span><?=$baseflor['floraison']; ?> <br/>
<? endif; ?>
</td>
<td>
<?if ($baseflor['sexualite'] != '') :?>
<span class="titre">sexualité : </span><?=$baseflor['sexualite']; ?> <br/>
<? endif; ?>
<?if ($baseflor['ordre_maturation'] != '') :?>
<span class="titre">Ordre de maturation : </span><?=$baseflor['ordre_maturation']; ?> <br/>
<? endif; ?>
<?if ($baseflor['pollinisation'] != '') :?>
<span class="titre">Pollinisation : </span><?=$baseflor['pollinisation']; ?> <br/>
<? endif; ?>
<?if ($baseflor['dissemination'] != '') :?>
<span class="titre">Dissémination : </span><?=$baseflor['dissemination'] ;?> <br/>
<? endif; ?>
</td>
</tr>
</table>
<div class="conteneur_lien_metadonnees">
<?=$baseflor['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup " href="<?= $baseflor['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? else : ?>
Aucune donnée.
<? endif; ?>
</div>
<? endif; ?>
<br />
<?php if(isset($wikini)) : ?>
<h2> Description collaborative : </h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<div class="description baseflor">
<span class="aide_wikini"> Participez à la rédaction collaborative de cette description, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="description">
<?=$wikini['description']?>
</div>
</div>
</div>
<hr class="nettoyage"/>
<br />
<? endif; ?>
<?php if(isset($wp)) : ?>
<h2>Fiche wikipedia : <?=$wp['titre']?></h2>
<div class="description wp">
<a class="lien_externe" href="<?=htmlentities($wp['lien'])?>" title="voir la page de ce taxon sur wikipedia (s'ouvre dans une nouvelle fenêtre)">
<?=htmlentities($wp['lien'])?>
</a>
</div>
<? endif; ?>
<hr class="nettoyage"/>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_statut.tpl.html
New file
0,0 → 1,80
<div class="onglet_contenu" id="statut">
<h2>Statuts de protection</h2>
<?php if(!empty($statuts) && is_array($statuts)) { ?>
<?php if(isset($statuts[0])) { ?>
<table class="liste_statuts_protection">
<tr>
<th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th>
</tr>
<?php if ($statuts != array()) : ?>
<?php foreach ($statuts as $index => $statut) : ?>
<?php if(is_numeric($index)) { ?>
<tr>
<td><?= $statut['zone_application']; ?></td>
<td><?= $statut['regle']; ?></td>
<td><a class="lien_externe" title="Voir le texte de loi relatif" href="<?= $statut['hyperlien_legifrance']; ?>">
<?= $statut['texte']; ?>
</a>
(<?= $statut['statut']; ?>)
</td>
</tr>
<?php } ?>
<?php endforeach; ?><?php endif; ?>
</table>
<?php } else { ?>
<table class="liste_statuts_protection largeur-11">
<tr>
<th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th><th class="largeur-01">Nom</th>
</tr>
<?php if ($statuts != array()) : ?>
<?php foreach ($statuts as $za => $lois) : ?>
<?php if($za != "meta") : ?>
<?php foreach ($lois as $loi) : ?>
<tr>
<td><?= $za; ?></td>
<td><?= $loi['regle']; ?></td>
<td><?= $loi['texte']; ?> (<?= $loi['statut']; ?>)</td>
<td><i><?php foreach ($loi['nom_sci'] as $nom_sci) { echo "- ".$nom_sci."<br /><br />"; } ?></i></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>
</table>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?=$statuts['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $statuts['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<?php } else { ?>
<h3 class="aucune_info"> Aucun statut de protection connu </h3>
<?php } ?>
<h2>Liste rouge</h2>
<?php if(!empty($liste_rouge) && isset($liste_rouge[0])) { ?>
<ul>
<li>
<span class="infos_liste_rouge">Catégorie <?= $liste_rouge[0]['num_categorie'].' - '.$liste_rouge[0]['categorie']; ?></span> <a target="_blank" href="http://www.uicn.fr/-Aires-protegees-.html" >(Plus d'informations)</a>
</li>
</ul>
<div class="conteneur_lien_metadonnees">
<?=$liste_rouge['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $liste_rouge['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<?php } else { ?>
<h3 class="aucune_info"> Aucune information de la liste rouge connue </h3>
<?php } ?>
 
<h2>Vos compléments sur les statuts de protection</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini">Complétez nos données sur les statuts de protection, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="statuts de protection">
<?=$wikini['statuts_de_protection']?>
</div>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_entete.tpl.html
New file
0,0 → 1,25
<script type="text/Javascript">
var ongletsDefaut = [<?= $blocs; ?>];
var base_url_application_onglets = "<?= $base_url_onglets; ?>";
</script>
<script type="text/javascript">
//<![CDATA[
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>";
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>";
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>";
var pageWikiTaxon = "<?= strtoupper($donnees['referentiel']); ?>nt<?= $donnees['num_tax']; ?>";
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>";
var urlBaseWidget = "<?= Config::get('base_url_widget'); ?>";
var urlCssImages = "<?=Config::get('url_css_images')?>";
var urlImagesOrganesMoyenFormatTpl = "<?= Illustrations::obtenirTemplateUrlImageGrandFormatOrganes('L') ?>";
var urlImagesOrganesGrandFormatTpl = "<?= Illustrations::obtenirTemplateUrlImageGrandFormatOrganes('O') ?>";
var permalienNumNom = "<?= $permalien_num_nom; ?>";
var onglet = "<?= $onglet; ?>";
//]]>
</script>
<?php if(Config::get('utiliserDictionnaire') && Config::get('utiliserDictionnaireNiveau'.$niveau)) { ?>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/helpers.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.config.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.js"></script>
<link media="screen" href="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.css" type="text/css" rel="stylesheet" />
<?php } ?>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_ethnobotanique.tpl.html
New file
0,0 → 1,122
<div class="onglet_contenu" id="ethnobotanique">
<? if (isset($nvjfl)) : ?>
<h2>Noms communs</h2>
<?php if($nvjfl['noms'] != array()) { ?>
<table class="liste_noms_vernaculaires">
<tr>
<th>Langue</th><th>Nom</th><th>Genre et Nombre</th><th>Conseil d'emploi</th><th>Notes</th>
</tr>
<?php foreach($nvjfl['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
<td><?= $nom_verna['genre'] ?></td>
<td><?= $nom_verna['conseil_emploi'] ?></td>
<td><?= $nom_verna['notes'] ?></td>
</tr>
<?php endforeach; ?>
<?php if($nvps['noms'] != array()) { ?>
<?php foreach($nvps['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
<td><?= $nom_verna['genre'] ?></td>
<td></td>
<td><?= $nom_verna['notes'] ?></td>
</tr>
<?php endforeach; ?>
<?php } ?>
</table>
<?php } else { ?>
<h3 class="aucune_info">Aucun nom vernaculaire référencé</h3>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?=$nvjfl['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?=$nvjfl['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div><div class="conteneur_lien_metadonnees">
<?=$nvps['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?=$nvps['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? endif ; ?>
<? if (isset($nva)) : ?>
<h2>Noms communs</h2>
<?php if($nva['noms'] != array()) { ?>
<table class="liste_noms_vernaculaires">
<tr>
<th>Langue</th><th>Nom</th>
</tr>
<?php foreach($nva['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php } else { ?>
<h3 class="aucune_info">Aucun nom vernaculaire référencé</h3>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?=$nva['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?=$nva['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? endif ; ?>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini">Proposez vos noms communs et vos étymologies</span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="noms communs">
<?=$wikini['noms_communs']?>
</div>
</div>
<h2>Statuts</h2>
<?php if($chorologie['donnees']) { ?>
<table class="liste_statuts">
<tr>
<th></th>
<?php foreach($chorologie['colonnes'] as $colonne) : ?>
<th><?= $colonne ?></th>
<?php endforeach; ?>
</tr>
<?php foreach($chorologie['donnees'] as $type => $donnee) : ?>
<tr>
<td><?= $type ?></td>
<?php foreach($chorologie['colonnes'] as $colonne) : ?>
<td><?= (isset($donnee[$colonne])) ? $donnee[$colonne] : '' ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
<?php } else { ?>
<h3 class="aucune_info">Aucun statut référencé</h3>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?= $chorologie['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $chorologie['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<h2> Usage :</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction de ces données ethnobota, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="usage">
<?=$wikini['usage']?>
</div>
</div>
<h2> Culture et arts :</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction de ces données ethnobota, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="culture et arts">
<?=$wikini['culture_et_arts']?>
</div>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_ecologie.tpl.html
New file
0,0 → 1,246
<div class="onglet_contenu" id="ecologie">
<?php if(isset($baseflor)) : ?>
<h2>Optimum écologique</h2>
<? if (!isset($baseflor['aucune'])) : ?>
<div class="fond_graphique">
<div class="bloc_graph">
<? if (isset($baseflor['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object class="ecologie_svg" type="image/svg+xml" data="<?=$baseflor['climat_url']?>" class="svg" alt="<?=$baseflor['climat_url_png']?>">
</object>
</div>
<button class="voir"> voir la légende </button>
<button class="cacher">masquer la légende </button>
<br/>
<div class="legende_graphique">
<table>
<tr>
<td class="largeur-02" >
<span class="titre">Lumière </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEL'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre">Température </span>
</td>
<td>
<? foreach ($baseflor['legende']['VET'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre">Humidité atmosphérique </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEHA'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre">Continentalité </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEC'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
</table>
</div>
<? endif; ?>
</div>
<br /><br />
<div class="bloc_graph">
<? if (isset($baseflor['sol_url'])) : ?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object class="ecologie_svg" type="image/svg+xml" data="<?=$baseflor['sol_url']?>" class="svg" alt="<?=$baseflor['sol_url_png']?>">
</object>
</div>
<div class="legende_formes">
</div>
<button class="voir"> voir la légende </button>
<button class="cacher">masquer la légende </button>
<br/>
<div class="legende_graphique">
<table>
<tr>
<td class="largeur-02">
<span class="titre"> Réaction (pH) </span>
</td>
<td>
<? foreach ($baseflor['legende']['VER'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Humidité </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEHE'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Texture </span>
</td>
<td>
<? foreach ($baseflor['legende']['VETX'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Nutriments </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEN'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Salinité </span>
</td>
<td>
<? foreach ($baseflor['legende']['VES'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Matière Organique </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEMO'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
</table>
</div>
<? endif; ?>
</div>
</div>
<div class="conteneur_lien_metadonnees">
<?=$baseflor['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup " href="<?= $baseflor['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<?else : ?>
<?=$baseflor['aucune']?>
<br />
<? endif; ?>
<? endif; ?>
<?php if(isset($baseflor)) : ?>
<h2>Phytosociologie</h2>
<? if (isset($baseveg['syntaxons-sup']) || isset($baseveg['syntaxons-sup'])) : ?>
<br/>
Le code catminat de ce taxon est
<span class="gras">
<a href="http://eveg.fr/index.php?catminat='<?=$baseveg['baseflor']['catminat'] ?>'" target="_blank" title="Voir le détail sur eVeg">
<?=$baseveg['baseflor']['catminat'] ?>
</a>
</span> </br>
Il est caractéristique du syntaxon de niveau <span class="gras"><?=$baseveg['syntaxon-courant'][0]['niveau.libelle']?></span> présenté
dans le tableau ci-dessous avec ses niveaux supérieurs. [ <a href="http://philippe.julve.pagesperso-orange.fr/catminat.htm" target="_blank">Voir le site Catminat pour en savoir plus.</a> ]
<table>
<?php foreach ($baseveg['syntaxons-sup'] as $cle => $valeurs ) : ?>
<tr>
<td>
<span class="gras">
<a href="http://eveg.fr/index.php?catminat='<?=$valeurs['code_catminat'] ?>'" target="_blank" title="Voir le détail sur eVeg">
<?=$valeurs['code_catminat']?>
</a>
</span></br>
<?=$valeurs['niveau.libelle']?>
</td>
<td>
<span class="gras"><?=$valeurs['syntaxon']?></span> </br>
<span ><?=$valeurs['physio_biotype']?></span> </br>
<?= !empty($valeurs['repartition_france']) ? 'répartition : '.$valeurs['repartition_france'] : '' ?>
</td>
<td>
<a class="lien_popup" href="<?=$baseveg['ref']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Réf.</a> </br>
<a class="lien_popup" href="<?=$baseveg['synonymes']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Syn.</a> </br>
<a class="lien_popup" href="<?=$baseveg['taxons']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Taxons</a>
</td>
</tr>
<? endforeach; ?>
<tr class="surlignage">
<td>
<span class="gras">
<a href="http://eveg.fr/index.php?catminat='<?=$baseveg['syntaxon-courant'][0]['code_catminat'] ?>'" target="_blank" title="Voir le détail sur eVeg">
<?=$baseveg['syntaxon-courant'][0]['code_catminat']?>
</a>
</span><br/>
<?=$baseveg['syntaxon-courant'][0]['niveau.libelle']?>
</td>
<td>
<span class="gras"><?=$baseveg['syntaxon-courant'][0]['syntaxon']?></span> </br>
<span ><?=$baseveg['syntaxon-courant'][0]['physio_biotype']?></span> </br>
<?= !empty($baseveg['syntaxon-courant'][0]['repartition_france']) ? 'rép.'.$baseveg['syntaxon-courant'][0]['repartition_france'] : ''?>
</td>
<td>
<a class="lien_popup" href="<?=$baseveg['ref']['lien-liste-fancy'][$baseveg['syntaxon-courant'][0]['code_catminat']]?>">Réf.</a> </br>
<a class="lien_popup" href="<?=$baseveg['synonymes']['lien-liste-fancy'][$baseveg['syntaxon-courant'][0]['code_catminat']]?>">Syn.</a></br>
<a class="lien_popup" href="<?=$baseveg['baseflor']['lien-liste-fancy']?>">Taxons</a>
</td>
</tr>
</table>
<div class="conteneur_lien_metadonnees">
<?=$baseveg['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup " href="<?= $baseveg['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? else : ?>
Aucune donnée.
<? endif; ?>
<br/>
<?php endif; ?>
 
<br/>
<br/>
<h2>Vos compléments sur l'écologie</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction collaborative, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="ecologie">
<?=$wikini['ecologie']?>
</div>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau1.tpl.html
New file
0,0 → 1,440
<!-- Fichier débutant -->
<!-- Variables js communes injectées dans fiche_entete.tpl.tml -->
<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<div class="synthese onglet_contenu" id="synthese">
<div class="colonne deuxtiers">
<!-- Description -->
<div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description"><?=$i18n["onglet-nom-descr"]?></a>
</h3>
<div id="contenu-1" class="contenu">
<h4><?= $description['titre']?></h4>
<? if ($description['description'] != '') : ?>
<? if($description['type'] == 'baseflor') : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['description']['type_bio'] != '') : ?>
<span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['form_vegetale'] != '') : ?>
<span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['chorologie'] != ''): ?>
<span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<? if ($description['description']['inflorescence'] != '') : ?>
<span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
<? endif; ?>
<? if ($description['description']['fruit'] != '') : ?>
<span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
<? endif; ?>
<? if ($description['description']['couleur_fleur'] != '') : ?>
<span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
<? endif; ?>
<? if ($description['description']['macule'] != '') : ?>
<span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
<? endif; ?>
<? if ($description['description']['floraison'] != '') : ?>
<span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
<? endif; ?>
</td>
<td>
<? if ($description['description']['sexualite'] != '') : ?>
<span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
<? endif; ?>
<?if ($description['description']['ordre_maturation'] != '') : ?>
<span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
<? endif; ?>
<? if ($description['description']['pollinisation'] != '') : ?>
<span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
<? endif; ?>
<? if ($description['description']['dissemination'] != '') : ?>
<span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
<? endif; ?>
</td>
</tr>
</table>
<? elseif($description['titre'] == 'Description de Coste') : ?>
<table class="desc">
<tr>
<td>
<?if ($description['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if (@$description['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['description']['texte'] != '') : ?>
<?=$description['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if (@$description['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['description']['floraison']; ?>
<?if ($description['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if (@$description['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<? else : ?>
<?=$description['description'];?>
<? endif;?>
<? endif;?>
<a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ethnobotanique -->
<div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique"><?=$i18n["onglet-nom-ethnobota"]?></a>
</h3>
<div id="contenu-4" class="contenu">
<h4>Noms communs</h4>
<?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
Aucun nom vernaculaire<br /><br />
<? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? } else { echo $ethnobotanique['wikini']['noms_communs']; } ?>
<?php } else { ?>
<?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
<div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
<?php endforeach; ?>
<?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $ethnobotanique['autresNomsVerna'] ?>
autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
</a><br />
<?php }?>
<?php }?>
<h4>Usages</h4>
<? if ($ethnobotanique['wikini']['usage'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? } else { echo $ethnobotanique['wikini']['usage'];} ?>
<h4>Culture et arts</h4>
<? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
<br />
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ecologie -->
<div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie"><?=$i18n["onglet-nom-eco"]?></a>
</h3>
<div id="contenu-8" class="contenu">
<h4><?= $ecologie['graph']['titre'] ?></h4>
<? if (empty($ecologie['graph']['description'])) : ?>
<? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? else : echo $ecologie['graph']['wikini']['ecologie'];?>
<? endif; ?>
<? else : ?>
<div class="fond_graphique">
<? if (isset($ecologie['graph']['description']['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
</object>
</div>
<? endif; ?>
<? if (isset($ecologie['graph']['description']['sol_url'])) :?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
class="svg" class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" > >
</object>
</div>
<? endif; ?>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
Voir les références
</a>
</div>
<? endif; ?>
<? if (!empty($ecologie['phytosocio']['description'])) : ?>
<h4>Phytosociologie</h4>
<span class="gras">
<?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
<?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
</span> <br/>
<?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
<span class="italique">
<?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
</span>
<? endif; ?>
<br/>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Nomenclature -->
<div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature"><?=$i18n["onglet-nom-classif"]?></a>
</h3>
<div id="contenu-6" class="contenu">
<h4>Taxons supérieurs</h4>
<?php if($nomenclature['taxons_sup'] != array()) { ?>
<?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon supérieur référencé </div>
<?php } ?>
<h4>Nom retenu</h4>
<div>
<div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate']; ?>
</div>
<?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
<div class="nom"> <span class="nomenclature_basionyme">Basionyme</span> : <?= $nomenclature['basionyme_nom_retenu']; ?></div>
<?php } ?>
</div>
<h4>Synonymes</h4>
<?php if($nomenclature['synonymes'] == array()) { ?>
Aucun synonyme
<? } else { ?>
<?php foreach (@$nomenclature['synonymes'] as $synonyme) : ?>
<div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet']; ?>
</div>
<?php endforeach; ?>
<?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
<a href="<?=$url;?>nomenclature" style="float:right;" class="lien_ouverture_onglet_parent" >et
<?= $nomenclature['autresSynonymesNbre'] ?>
autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
</a>
<?php }} ?>
<h4>Taxons inférieurs</h4>
<?php if($nomenclature['taxons_inf'] != array()) { ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon inférieur référencé </div>
<?php } ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Bibliographie -->
<div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie"><?=$i18n["onglet-nom-biblio"]?></a>
</h3>
<div id="contenu-2" class="contenu">
<?php if (isset($bibliographie['wikini'])) { ?>
<?= ($bibliographie['wikini']['biblio'] == '') ?
'<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Ajoutez votre bibliographie sur ce taxon</a>'
: $bibliographie['wikini']['biblio'].
'<br /><br /><a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Rajouter vos données.</a>'; ?>
<?php } else { ?>
<h4>Références</h4>
<?php if ($bibliographie['references'] == array()) { ?>
Aucune référence bibliographique
<?php } else { ?>
<?php foreach ($bibliographie['references'] as $reference) : ?>
<div> - <?= $reference['reference_html']; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresReferences'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id=alignement-droite>
et <?= $bibliographie['autresReferences'] ?>
autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
</a>
<?php } } ?>
<?php }?>
<hr class="nettoyage" />
<a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id=alignement-droite>
Voir +/Compléter
</a>
</div>
</div>
</div>
<div class="colonne">
<!-- Illustrations -->
<div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations"><?=$i18n["onglet-nom-illustra"]?></a>
</h3>
<div id="contenu-0" class="contenu">
<?php if (empty($illustrations['imageUrl']) == false) : ?>
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
src="<?=$illustrations['imageUrl']?>" alt="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
<?php else : ?>
<span class="absent" style="float:none; margin-left:55px">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</span>
<?php endif; ?> <br />
<a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Répartition -->
<div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition"><?=$i18n["onglet-nom-repart"]?></a>
</h3>
<div id="contenu-3" class="contenu">
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
<h4>Observations</h4>
<img src="<?=htmlentities($repartition['eflore'])?>" alt="<?= $infos['nom_sci'] ?> - carte des observations" style="margin-left: 11px; width: 190px;" />
<? endif; ?>
<? if ($repartition['chorodep'] != null) : ?>
<h4>Répartition départementale</h4>
<img src="<?=htmlentities($repartition['chorodep'])?>" alt="<?= $infos['nom_sci'] ?> - carte de répartition"/>
<? endif; ?>
<br/>
<a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Statut de protection -->
<div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut"><?=$i18n["onglet-nom-protect"]?></a>
</h3>
<div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
<? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
Attention ce taxon est protégé dans les zones suivantes : <br />
<?php foreach($statut['statuts'] as $statut_zone) : ?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= @$statut_zone['zone_application']; ?><br />
</a>
<?php endforeach; ?>
<? } else if (@$statut['wikini']['statuts_de_protection'] != '' ) { ?>
<?= $statut['wikini']['statuts_de_protection'];?>
<? } ?>
<? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
Ce taxon est classé dans la liste rouge dans la catégorie : <br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
</a>
<? } ?>
<? if (@$statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
<span class="pas_de_protection">Pas de protection connue</span>
<? }?>
<br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div>
<hr class="nettoyage" />
<script type="text/javascript">
$.event.trigger('ongletSyntheseCharge');
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_organes.tpl.html
New file
0,0 → 1,78
<? if (isset($organes) && (empty($organes) == false)) : ?>
<div id="galerie-organes">
<ul class="liste-illustrations">
<?php foreach($organes as $tag => $image) : ?>
<li class="icone-organe">
<a class="lien-images-organes <? if (empty($image)) : ?>non-<? endif ?>fourni" data-tag="<?= $tag; ?>"
title="<? if (empty($image)) : ?>Aucune photo pour <? endif ?><?= $tag ?>">
<img class="icone-organe" src="<?=Config::get('url_css_images')?>icones_tags/<?= $tag; ?>.png" alt="<?= $tag ?>" />
<?= $tag; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<div id="galerie-organes-contenu" style="display: none;">
<? foreach($organes as $tag => $image) : ?>
<div class="onglet-organe" data-tag="<?= $tag; ?>">
<?php if (empty($organes[$tag]) == false) :?>
<ul class="liste-illustrations">
<?php foreach($organes[$tag] as $image) : ?>
<li class="miniature-organe">
<?php if ($image != null) : ?>
<a class="lien-grande-image-organe"
data-id-observation="<?= $image['observation']['id_observation'] ?>"
data-url-mauvaise-ident="<?= $image['urlMauvaiseIdentification'] ?>"
data-id-image="<?= $image['id_image'] ?>" data-titre="<?= $image['observation']['determination.ns'] ?>"
data-description="<?= $image['determination.libelle'] ?>" data-localisation="<?= $image['station.libelle'] ?>"
data-auteur="<?= $image['auteur.libelle'] ?>" data-id-destinataire="<?= $image['auteur.id'] ?>"
data-date="<?= $image['date'] ?>">
<img class="miniature-organe" src="<?= $image['binaire.href']; ?>" alt="<?= $image['auteur.libelle'] . ' - ' . $image['observation']['determination.ns'] ?>" />
</a>
<?php else: ?>
<p class="absent absent-mini">
Pas de photo
<br>
<a class="contribuer" onclick="window.open(this.href); return false;"
title="Ajouter une photographie au moyen du Carnet en Ligne"
href="<?= Config::get('base_url_widget_saisie');?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>">
Contribuer
</a>
</p>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<?php else: ?>
Aucune illustration pour l'organe "<?= $tag ?>"
<?php endif; ?>
</div>
<?php endforeach; ?>
<div id="grande-image-organe">
<a target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="">
<img src="" alt="Grande image" />
</a>
</div>
<div id="grande-image-legende">
<div>
<dl>
<dt>Photo n°</dt><dd id="grande-image-legende-id-image"></dd>
<dt>Titre</dt><dd id="grande-image-legende-titre"><br></dd>
<dt>Description</dt><dd id="grande-image-legende-description"><br></dd>
<dt>Localisation</dt><dd id="grande-image-legende-localisation"><br></dd>
<dt>Auteur</dt>
<dd>
<a id="grande-image-legende-auteur" href=""></a>
<a id="grande-image-legende-id-destinataire" href="" class="mailto">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>contact.png" />
</a>
</dd>
<dt>Date d'observation</dt><dd id="grande-image-legende-date"><br></dd>
<dt>Licence</dt><dd><a href="http://www.tela-botanica.org/page:licence" class="lien-externe">CC-BY-SA</a></dd>
</dl>
</div>
</div>
</div>
</div>
<? endif ?>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau2.tpl.html
New file
0,0 → 1,440
<!-- Fichier intermédiaire -->
<!-- Variables js commune injectée dans fiche_entete.tpl.tml -->
<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<div class="synthese onglet_contenu" id="synthese">
<div class="colonne deuxtiers">
<!-- Description -->
<div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description"><?=$i18n["onglet-nom-descr"]?></a>
</h3>
<div id="contenu-1" class="contenu">
<h4><?= $description['titre']?></h4>
<? if ($description['description'] != '') : ?>
<? if($description['type'] == 'baseflor') : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['description']['type_bio'] != '') : ?>
<span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['form_vegetale'] != '') : ?>
<span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['chorologie'] != ''): ?>
<span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<? if ($description['description']['inflorescence'] != '') : ?>
<span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
<? endif; ?>
<? if ($description['description']['fruit'] != '') : ?>
<span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
<? endif; ?>
<? if ($description['description']['couleur_fleur'] != '') : ?>
<span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
<? endif; ?>
<? if ($description['description']['macule'] != '') : ?>
<span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
<? endif; ?>
<? if ($description['description']['floraison'] != '') : ?>
<span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
<? endif; ?>
</td>
<td>
<? if ($description['description']['sexualite'] != '') : ?>
<span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
<? endif; ?>
<?if ($description['description']['ordre_maturation'] != '') : ?>
<span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
<? endif; ?>
<? if ($description['description']['pollinisation'] != '') : ?>
<span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
<? endif; ?>
<? if ($description['description']['dissemination'] != '') : ?>
<span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
<? endif; ?>
</td>
</tr>
</table>
<? elseif($description['titre'] == 'Description de Coste') : ?>
<table class="desc">
<tr>
<td>
<?if ($description['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['description']['texte'] != '') : ?>
<?=$description['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['description']['floraison']; ?>
<?if ($description['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<? else : ?>
<?=$description['description']?>
<? endif;?>
<? endif;?><br />
<a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ethnobotanique -->
<div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique"><?=$i18n["onglet-nom-ethnobota"]?></a>
</h3>
<div id="contenu-4" class="contenu">
<h4>Noms communs</h4>
<?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
Aucun nom vernaculaire<br /><br />
<? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['noms_communs'];} ?>
<?php } else { ?>
<?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
<div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
<?php endforeach; ?>
<?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $ethnobotanique['autresNomsVerna'] ?>
autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
</a><br />
<?php }?>
<?php }?>
<h4>Usages</h4>
<? if ($ethnobotanique['wikini']['usage'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['usage']; } ?>
<h4>Culture et arts</h4>
<? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
<br />
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ecologie -->
<div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie"><?=$i18n["onglet-nom-eco"]?></a>
</h3>
<div id="contenu-8" class="contenu">
<h4><?= $ecologie['graph']['titre'] ?></h4>
<? if (empty($ecologie['graph']['description'])) : ?>
<? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? else : echo $ecologie['graph']['wikini']['ecologie'];?>
<? endif; ?>
<? else : ?>
<div class="fond_graphique">
<? if (isset($ecologie['graph']['description']['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
</object>
</div>
<? endif;?>
<? if (isset($ecologie['graph']['description']['sol_url'])) :?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" >
</object>
</div>
<? endif;?>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
Voir les références
</a>
</div>
<? endif; ?>
<? if (!empty($ecologie['phytosocio']['description'])) : ?>
<h4>Phytosociologie</h4>
<span class="gras">
<?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
<?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
</span> <br/>
<?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
<span class="italique">
<?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
</span>
<? endif; ?>
<br/>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Nomenclature -->
<div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature"><?=$i18n["onglet-nom-classif"]?></a>
</h3>
<div id="contenu-6" class="contenu">
<h4>Taxons supérieurs</h4>
<?php if($nomenclature['taxons_sup'] != array()) { ?>
<?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon supérieur référencé </div>
<?php } ?>
<h4>Nom retenu</h4>
<div>
<div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate']; ?>
</div>
<?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
<div class="nom"> <span class="nomenclature_basionyme">Basionyme : <?= $nomenclature['basionyme_nom_retenu']; ?></span></div>
<?php } ?>
</div>
<h4>Synonymes</h4>
<?php if($nomenclature['synonymes'] == array()) { ?>
Aucun synonyme
<? } else { ?>
<?php foreach ($nomenclature['synonymes'] as $synonyme) : ?>
<div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet']; ?>
</div>
<?php endforeach; ?>
<?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
<a href="<?=$url;?>nomenclature" style="float:right;" class="lien_ouverture_onglet_parent" >et
<?= $nomenclature['autresSynonymesNbre'] ?>
autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
</a>
<?php }} ?>
<h4>Taxons inférieurs</h4>
<?php if($nomenclature['taxons_inf'] != array()) { ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon inférieur référencé </div>
<?php } ?>
<br/>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Bibliographie -->
<div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie"><?=$i18n["onglet-nom-biblio"]?></a>
</h3>
<div id="contenu-2" class="contenu">
<?php if (isset($bibliographie['wikini'])) { ?>
<?= ($bibliographie['wikini']['biblio'] == '') ?
'<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Rajouter vos données.</a>'
: $bibliographie['wikini']['biblio'].
'<br /><br /><a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Compléter cette bibliographie</a>'; ?>
<?php } else { ?>
<h4>Références</h4>
<?php if ($bibliographie['references'] == array()) { ?>
Aucune référence bibliographique
<?php } else { ?>
<?php foreach ($bibliographie['references'] as $reference) : ?>
<div> - <?= $reference['reference_html']; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresReferences'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $bibliographie['autresReferences'] ?>
autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
</a>
<?php } } ?>
<?php }?>
<hr class="nettoyage" />
<a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div><div class="colonne">
<!-- Illustrations -->
<div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations"><?=$i18n["onglet-nom-illustra"]?></a>
</h3>
<div id="contenu-0" class="contenu">
<?php if ($illustrations['imageUrl'] != '') : ?>
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
src="<?=$illustrations['imageUrl']?>" alt="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
<?php else : ?>
<span class="absent" style="float:none; margin-left:55px">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</span>
<?php endif; ?>
<br/>
<a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Répartition -->
<div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition"><?=$i18n["onglet-nom-repart"]?></a>
</h3>
<div id="contenu-3" class="contenu">
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
<h4>Observations</h4>
<img src="<?=htmlentities($repartition['eflore'])?>" alt="<?= $infos['nom_sci'] ?> - carte des observations" style="margin-left: 11px; width: 190px;" />
<? endif; ?>
<? if ($repartition['chorodep'] != null) : ?>
<h4>Répartition départementale</h4>
<img src="<?=htmlentities($repartition['chorodep'])?>" alt="<?= $infos['nom_sci'] ?> - carte de répartition"/>
<? endif; ?>
<br/>
<a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Statut de protection -->
<div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut"><?=$i18n["onglet-nom-protect"]?></a>
</h3>
<div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
<? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
Attention ce taxon est protégé dans les zones suivantes : <br />
<?php foreach($statut['statuts'] as $statut_zone) : ?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut_zone['zone_application']; ?><br />
</a>
<?php endforeach; ?>
<? } else if ($statut['wikini']['statuts_de_protection'] != '' ) { ?>
<?= $statut['wikini']['statuts_de_protection'];?>
<? } ?>
<? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
Ce taxon est classé dans la liste rouge dans la catégorie : <br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
</a>
<? } ?>
<? if ($statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
<span class="pas_de_protection">Pas de protection connue</span>
<? }?>
<br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div>
<hr class="nettoyage" />
<script type="text/javascript">
$.event.trigger('ongletSyntheseCharge');
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau3.tpl.html
New file
0,0 → 1,434
<!-- Fichier expert -->
<!-- Variables js communes injectée dans fiche_entete.tpl.tml -->
<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<div class="synthese onglet_contenu" id="synthese">
<div class="colonne deuxtiers">
<!-- Nomenclature -->
<div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature"><?=$i18n["onglet-nom-classif"]?></a>
</h3>
<div id="contenu-6" class="contenu">
<h4>Taxons supérieurs</h4>
<?php if($nomenclature['taxons_sup'] != array()) { ?>
<?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon supérieur référencé </div>
<?php } ?>
<h4>Nom retenu</h4>
<div>
<div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate']; ?>
</div>
<?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
<div class="nom"> <span class="nomenclature_basionyme">Basionyme : <?= $nomenclature['basionyme_nom_retenu']; ?></span></div>
<?php } ?>
</div>
<h4>Synonymes</h4>
<?php if($nomenclature['synonymes'] == array()) { ?>
Aucun synonyme
<? } else { ?>
<?php foreach ($nomenclature['synonymes'] as $synonyme) : ?>
<div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet']; ?>
</div>
<?php endforeach; ?>
<?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement_droite">
et <?= $nomenclature['autresSynonymesNbre'] ?>
autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
</a>
<?php }} ?>
<h4>Taxons inférieurs</h4>
<?php if($nomenclature['taxons_inf'] != array()) { ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon inférieur référencé </div>
<?php } ?>
<a href="<?=$url;?>classification" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Description -->
<div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description"><?=$i18n["onglet-nom-descr"]?></a>
</h3>
<div id="contenu-1" class="contenu">
<h4><?= $description['titre']?></h4>
<? if ($description['description'] != '') : ?>
<? if($description['type'] == 'baseflor') : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['description']['type_bio'] != '') : ?>
<span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['form_vegetale'] != '') : ?>
<span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['chorologie'] != ''): ?>
<span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<? if ($description['description']['inflorescence'] != '') : ?>
<span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
<? endif; ?>
<? if ($description['description']['fruit'] != '') : ?>
<span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
<? endif; ?>
<? if ($description['description']['couleur_fleur'] != '') : ?>
<span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
<? endif; ?>
<? if ($description['description']['macule'] != '') : ?>
<span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
<? endif; ?>
<? if ($description['description']['floraison'] != '') : ?>
<span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
<? endif; ?>
</td>
<td>
<? if ($description['description']['sexualite'] != '') : ?>
<span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
<? endif; ?>
<?if ($description['description']['ordre_maturation'] != '') : ?>
<span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
<? endif; ?>
<? if ($description['description']['pollinisation'] != '') : ?>
<span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
<? endif; ?>
<? if ($description['description']['dissemination'] != '') : ?>
<span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
<? endif; ?>
</td>
</tr>
</table>
<? elseif($description['titre'] == 'Description de Coste') : ?>
<table class="desc">
<tr>
<td>
<?if ($description['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['description']['texte'] != '') : ?>
<?=$description['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['description']['floraison']; ?>
<?if ($description['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<? else : ?>
<?=$description['description'];?>
<? endif;?>
<? endif;?>
<br/>
<a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ecologie -->
<div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie"><?=$i18n["onglet-nom-eco"]?></a>
</h3>
<div id="contenu-8" class="contenu">
<h4><?=$ecologie['graph']['titre']?></h4>
<? if (empty($ecologie['graph']['description'])) : ?>
<? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? else : echo $ecologie['graph']['wikini']['ecologie'];?>
<? endif; ?>
<? else : ?>
<div class="fond_graphique">
<? if (isset($ecologie['graph']['description']['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
</object>
</div>
<?endif;?>
<? if (isset($ecologie['graph']['description']['sol_url'])) :?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" >
</object>
</div>
<?endif;?>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
Voir les références
</a>
</div>
<? endif; ?>
<? if (!empty($ecologie['phytosocio']['description'])) : ?>
<h4>Phytosociologie</h4>
<span class="gras">
<?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
<?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
</span> <br/>
<?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
<span class="italique">
<?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
</span>
<? endif; ?>
<br/>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ethnobotanique -->
<div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique"><?=$i18n["onglet-nom-ethnobota"]?></a>
</h3>
<div id="contenu-4" class="contenu">
<h4>Noms communs</h4>
<?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
Aucun nom vernaculaire
<? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['noms_communs'];} ?>
<?php } else { ?>
<?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
<div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
<?php endforeach; ?>
<?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $ethnobotanique['autresNomsVerna'] ?>
autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
</a><br />
<?php }?>
<?php }?>
<h4>Usages</h4>
<? if ($ethnobotanique['wikini']['usage'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['usage'];} ?>
<h4>Culture et arts</h4>
<? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
<br />
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Bibliographie -->
<div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie"><?=$i18n["onglet-nom-biblio"]?></a>
</h3>
<div id="contenu-2" class="contenu">
<?php if (isset($bibliographie['wikini'])) { ?>
<?= ($bibliographie['wikini']['biblio'] == '') ?
'<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Ajoutez votre bibliographie sur ce taxon</a>'
: $bibliographie['wikini']['biblio'] ?>
<?php } else { ?>
<h4>Références</h4>
<?php if ($bibliographie['references'] == array()) { ?>
Aucune référence bibliographique
<?php } else { ?>
<?php foreach ($bibliographie['references'] as $reference) : ?>
<div> - <?= $reference['reference_html']; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresReferences'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $bibliographie['autresReferences'] ?>
autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
</a>
<?php } } ?>
<?php }?>
<hr class="nettoyage" />
<a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div><div class="colonne">
<!-- Illustrations -->
<div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations"><?=$i18n["onglet-nom-illustra"]?></a>
</h3>
<div id="contenu-0" class="contenu">
<?php if ($illustrations['imageUrl'] != '') : ?>
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
src="<?=$illustrations['imageUrl']?>" alt="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
<?php else : ?>
<span class="absent" style="float:none; margin-left:55px">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</span>
<?php endif; ?>
<a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Répartition -->
<div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition"><?=$i18n["onglet-nom-repart"]?></a>
</h3>
<div id="contenu-3" class="contenu">
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
<h4>Observations</h4>
<img src="<?=htmlentities($repartition['eflore'])?>" alt="<?= $infos['nom_sci'] ?> - carte des observations" style="margin-left: 11px; width: 190px;" />
<? endif; ?>
<? if ($repartition['chorodep'] != null) : ?>
<h4>Répartition départementale</h4>
<img src="<?=htmlentities($repartition['chorodep'])?>" alt="<?= $infos['nom_sci'] ?> - carte de répartition"/>
<? endif; ?>
<br/>
<a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Statut de protection -->
<div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut"><?=$i18n["onglet-nom-protect"]?></a>
</h3>
<div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
<? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
Attention ce taxon est protégé dans les zones suivantes : <br />
<?php foreach($statut['statuts'] as $statut_zone) : ?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut_zone['zone_application']; ?><br />
</a>
<?php endforeach; ?>
<? } else if ($statut['wikini']['statuts_de_protection'] != '' ) { ?>
<?= $statut['wikini']['statuts_de_protection'];?>
<? } ?>
<? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
Ce taxon est classé dans la liste rouge dans la catégorie : <br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
</a>
<? } ?>
<? if ($statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
<span class="pas_de_protection">Pas de protection connue</span>
<? }?>
<br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div>
<hr class="nettoyage" />
<script type="text/javascript">
$.event.trigger('ongletSyntheseCharge');
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_nomenclature.tpl.html
New file
0,0 → 1,248
<div class="onglet_contenu" id="nomenclature">
<h2>Nom retenu <?php if (trim($date_maj) != "") : ?> (taxon modifié le : <?= $date_maj ?>)<? endif; ?></h2>
<div style="float:right">
<div class="legende">
<b>Légende</b><br />
<span class="legende_nom_retenu couleur_legende" style="margin:8px 5px 0 0"></span><span>Nom sélectionné</span>
<br />
<img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />Lien vers diagnose
<br />
<div class="imagettePlus"></div>Afficher la biblio
<br />
<div class="imagetteMoins"></div>Masquer la biblio
</div>
<div style="padding:5px 10px; display:none" id="plieur">
<a class="lien_tout_deplier" href="#">Tout déplier</a> | <a class="lien_tout_plier" href="#">Tout plier</a>
</div>
</div>
<div class="onglet_marge_gauche">
<span class="nom retenu <?= ($nom_selectionne == $nom_retenu_formate) ? 'surlignage' : '' ?>">
<?if ($nom_retenu_source != '') { ?>
<a class="lien_biblio_ext" href="<?=$nom_retenu_source?>" target="_blank" title="Voir la diagnose en ligne">
<img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />
</a>
<? } ?>
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($nom_retenu_nn,'nom_scientifique'); ?>">
<?= $nom_retenu_formate ?>
</a>
</span>
</div>
<?php if($basionyme_nom_retenu != null && $basionyme_nom_retenu != '') { ?>
<div class="nom onglet_marge_gauche basionyme_complet">
Basionyme :
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($basionyme_nom_retenu_nn,'nom_scientifique'); ?>">
<?= $basionyme_nom_retenu ?>
</a>
</div>
<?php } ?>
<?php if($hybride_parent_01 != null && $hybride_parent_01 != '') { ?>
Hybride de :<br />
Parent 1 : <span class="nom">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($hybride_parent_01_nn,'nom_scientifique'); ?>">
<?= $hybride_parent_01 ?>
</a>
</span><br />
Parent 2 : <span class="nom">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($hybride_parent_02_nn,'nom_scientifique'); ?>">
<?= $hybride_parent_02 ?>
</a>
</span>
<?php } ?>
<h2>Synonymes</h2>
<br />
<?php if(is_array($synonymes['noms']) && count($synonymes['noms']) > 0) { ?>
<?php foreach ($synonymes['noms'] as $id_b => $basionyme) : ?>
<span class="nom basionyme_complet">
<?php if($id_b != 'basionyme_inconnu') { ?>
<?if ($basionyme['source_biblio'] != '') { ?>
<a class="lien_biblio_ext" href="<?=$basionyme['source_biblio']?>" target="_blank" title="Voir la diagnose en ligne">
<img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />
</a>
<? } ?>
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($basionyme['infos_basionyme']['basionyme.id'],'nom_scientifique'); ?>">
<?= isset($basionyme['infos_basionyme']['basionyme_html_complet']) ? "Basionyme : ".$basionyme['infos_basionyme']['basionyme_html_complet'] : ''; ?>
</a>
<?php } else { ?>
Noms dont le basionyme est inconnu
<?php } ?>
</span>
<ul class="liste_synonymes_basionyme">
<?php foreach ($basionyme['synonymes'] as $id => $synonyme) : ?>
<?php if($id_b != $id) { ?>
<li class="item_nomenclature">
<?if ($synonyme['source_biblio'] != '') { ?>
<a class="lien_biblio_ext" href="<?=$synonyme['source_biblio']?>" target="_blank" title="Voir la diagnose en ligne">
<img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />
</a>
<? } ?>
<span class="nom<?= ($nom_selectionne == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($id,'nom_scientifique'); ?>"> <?= $synonyme['nom_sci_complet'] ?></a>
</span>
</li>
<?php } ?>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
<hr class="nettoyage" />
<?php } else { ?>
<h3 class="aucune_info"> Aucun synonyme référencé pour ce nom </h3>
<?php } ?>
<? if (isset($flores_synonymes)) : ?>
<h2>Dénomination dans les flores usuelles</h2>
<?php if(is_array($flores_synonymes) && count($flores_synonymes) > 0) { ?>
<ul>
<?php foreach ($flores_synonymes as $infos_flore) : ?>
<li class="item_nomenclature">
<div>
Ce taxon est noté dans la flore <em><?= $infos_flore['nom_flore'] ?></em>
<?php if(isset($infos_flore['num'])) { ?>
sous :<br /><ul>
<?php foreach ($infos_flore['num'] as $code => $flore) : ?>
<li>le nom de <em><?= $flore['nom_sci'] ?></em>
et <?=$infos_flore['type']?> <b><?= $flore['id'] ?></b><?=($flore['statut']) ? ' en tant que '.$flore['statut'] : ''?><br /></li>
<?php endforeach; ?>
</ul>
<?php } else { ?>
<?php } ?>
</div>
</li>
<?php endforeach; ?>
</ul><hr class="nettoyage" />
<?php } else { ?>
<h3 class="aucune_info"> Aucune information floristique référencée pour ce nom </h3>
<?php } ?>
<?php if($num_type != null) { ?>
<h3> Autres </h3>
<!-- On utilise une liste au cas où d'autres informations viendraient se greffer à cet endroit -->
<ul>
<li class="item_nomenclature"> Numéro du type : <?= $num_type ?></li>
</ul>
<?php } ?>
<? endif; ?>
<hr class="nettoyage" />
<div class="conteneur_lien_metadonnees">
<?= $synonymes['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $synonymes['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<a class="acceder-outil gauche" href="http://referentiels.tela-botanica.org/referentiel/index.php?ref=<?=$referentiel;?>&module=FicheTaxon&num_nom=<?=$nom_retenu_nn;?>">
Consultez ce nom dans le référentiel en cours de mise à jour</a><br /><br />
<div class="acceder-outil gauche">Recherchez ce nom sur les sites
<a href="http://inpn.mnhn.fr/espece/listeEspeces/<?=htmlentities($nom_retenu)?>/">
<img src="<?=$baseUrlIco?>presentations/images/sites/inpn.png" alt="INPN" title="Rechercher dans Inventaire National du Patrimoine Naturel" />
</a>
<a href="http://www.theplantlist.org/tpl/search?q=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/tpl.png" alt="The Plant List"
title="Rechercher dans The Plant List"/>
</a>
<a href="http://www.ipni.org/ipni/simplePlantNameSearch.do?find_wholeName=<?=htmlentities($nom_retenu)?>&amp;output_format=normal&amp;query_type=by_query&amp;back_page=query_ipni.html">
<img src="<?=$baseUrlIco?>presentations/images/sites/ipni.png" alt="IPNI" title="Rechercher dans IPNI"/>
</a>
<a href="http://plants.jstor.org/search?plantName=%22<?=htmlentities($nom_retenu)?>%22&amp;syn=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/jstor.png" alt="JSTOR Plant Science" title="Rechercher dans JSTOR Plant Science" />
</a>
<a href="http://www.anbg.gov.au/cgi-bin/apni?TAXON_NAME=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/anbg.png" alt="Australian Plant Name Index" title="Rechercher dans Australian Plant Name Index" />
</a>
<a href="http://sweetgum.nybg.org/vh/specimen_list.php?QueryName=BasicQuery&amp;QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&amp;Restriction=NybRecordType+%3D+%27Specimen%27&amp;StartAt=1&amp;any=SummaryData%7CAdmWebMetadata&amp;QueryOption=any&amp;Submit=Search&amp;QueryTerms=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/nybg.png" alt="NYBG Virtual Herbarium" title="Rechercher dans NYBG Virtual Herbarium" />
</a>
<a href="http://collections.mnh.si.edu/search/botany/?qt=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/si.png" alt="Type Specimen Register of the U.S. National Herbarium" title="Rechercher dans Type Specimen Register of the U.S. National Herbarium" />
</a>
<a href="http://herbarium.univie.ac.at/database/search.php?taxon=<?=htmlentities($nom_retenu)?>&amp;search=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/vha.png" alt="Virtual Herbaria Austria" title="Rechercher dans Virtual Herbaria Austria" />
</a>
<a href="http://swbiodiversity.org/seinet/taxa/index.php?taxon=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/seinet.png" alt="SEINet" title="Rechercher dans SEINet" />
</a>
<a href="http://www.ville-ge.ch/musinfo/bd/cjb/africa/resultat.php?efFamille=&amp;projet%5B%5D=FSA&amp;projet%5B%5D=FTA&amp;projet%5B%5D=FNA&amp;projet%5B%5D=BDM&amp;langue=en&amp;pbRecherche=Rechercher&amp;efNom=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/cjb.png" alt="African Plants Database" title="Rechercher dans African Plants Database du Jardin Botanique de Genève" />
</a>
<a href="http://www.tropicos.org/NameSearch.aspx?name=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/tropicos.png" alt="Tropicos" title="Rechercher dans Tropicos" />
</a>
<a href="http://www.sfo-asso.com/pages/connaissances.php?parent=6&id=195">
<img src="<?=$baseUrlIco?>presentations/images/sites/sfo.png" alt="SFO" title="Rechercher dans Société Française d'Orchidophilie" />
</a>
<a href="http://coldb.mnhn.fr/Consultation">
<img src="<?=$baseUrlIco?>presentations/images/sites/mnhn.png" alt="MNHN" title="Rechercher dans Muséum national d'Histoire naturelle" />
</a>
<? if ($referentiel == "bdtxa") : ?>
<a href="http://collections.antilles.inra.fr/initCard.do?idEntityValue1=<?=htmlentities($nom_retenu);?>&idEntityValue2=&idEntityValue3=&idEntity=21">
<img src="<?=$baseUrlIco?>presentations/images/sites/antilles.png" alt="INRA Antilles" title="Rechercher dans collections INRA Antilles" />
</a>
<? endif; ?>
</div>
<hr class="nettoyage" />
<span class="aide_wikini"> Partagez vos infos complémentaires sur ce nom, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="nomenclature">
<?=$wikini['nomenclature']?>
</div>
</div>
<h2>Place du taxon dans la classification APG III</h2>
<table class="liste_taxons_superieurs">
<tr>
<th>Rang</th><th>Nom Scientifique</th><th>Num Nom</th>
</tr>
<?php if ($taxons_sup != array()) : ?>
<?php foreach ($taxons_sup as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td><a title="Voir la fiche de ce nom" href="<?= $urls->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['nom_sci'] ?>
</a>
</td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
<tr class='surlignage'>
<td><?= $taxon_courant['rang.libelle'] ?></td>
<td><?= $taxon_courant['nom_sci'] ?></td>
<td><?= $taxon_courant['num_nom'] ?></td>
</tr>
<?php if ($taxons_inf != array()) : ?>
<?php foreach($taxons_inf as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td>
<a title="Voir la fiche de ce nom" href="<?= $urls->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['nom_sci'] ?>
</a>
</td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<div class="conteneur_lien_metadonnees">
<?= $synonymes['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $synonymes['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<script type="text/Javascript">
$('#plieur').show();
gestionBiblio($('#nomenclature'));
</script>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau1.tpl.html
New file
0,0 → 1,69
<?= $entete; ?>
<div id="bloc-fiche" class="importance4">
<h1>
<span class="famille nomenclature" style="float: right;">
<?php if($famille != '') { ?>
<a class="lien_recherche_hier" title="<?= $i18n['lien-recherche-hier-fam']; ?>" href="<?= $lien_recherche_famille ?>"> <?= $famille; ?> </a>
<?php } ?>
</span>
<span class="nomenclature"><?=$nom_retenu_html?></span>
</h1>
<?php if($nom_vernaculaire): ?>
<h2 class="vernaculaire"><?=$nom_vernaculaire;?></h2>
<?php endif; ?>
<?php if($nom_appele_html): ?>
<h3 class="redirige_depuis">
<span class="label_redirige_depuis">Nom recherché :</span>
<span class="valeur_redirige_depuis"><?= $nom_appele_html ?></span>
</h3>
<?php endif; ?>
 
<hr class="nettoyage" />
 
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li id="onglet_synthese" title="<?=$i18n['onglet-descr-synth']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" rel="synthese" href="<?=$url;?>synthese">
<?=$i18n["onglet-nom-synth"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="description" href="<?=$url;?>description">
<?=$i18n["onglet-nom-descr"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="ethnobotanique" href="<?=$url;?>ethnobotanique">
<?=$i18n["onglet-nom-ethnobota"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="ecologie" href="<?=$url;?>ecologie">
<?=$i18n["onglet-nom-eco"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="nomenclature" href="<?=$url;?>nomenclature">
<?=$i18n["onglet-nom-classif"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="bibliographie" href="<?=$url;?>bibliographie">
<?=$i18n["onglet-nom-biblio"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="illustrations" href="<?=$url;?>illustrations">
<?=$i18n["onglet-nom-illustra"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartition') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="repartition" href="<?=$url;?>repartition">
<?=$i18n["onglet-nom-repart"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="statut" href="<?=$url;?>statut">
<?=$i18n["onglet-nom-protect"]?></a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
<span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau2.tpl.html
New file
0,0 → 1,69
<?= $entete; ?>
<div id="bloc-fiche" class="importance4">
<h1>
<span class="famille nomenclature" style="float: right;">
<?php if($famille != '') { ?>
<a class="lien_recherche_hier" title="<?= $i18n['lien-recherche-hier-fam']; ?>" href="<?= $lien_recherche_famille ?>"> <?= $famille; ?> </a>
<?php } ?>
</span>
<span class="nomenclature"><?=$nom_retenu_html?></span>
</h1>
<?php if($nom_vernaculaire): ?>
<h2 class="vernaculaire"><?=$nom_vernaculaire;?></h2>
<?php endif; ?>
<?php if($nom_appele_html): ?>
<h3 class="redirige_depuis">
<span class="label_redirige_depuis">Nom recherché :</span>
<span class="valeur_redirige_depuis"><?= $nom_appele_html ?></span>
</h3>
<?php endif; ?>
 
<hr class="nettoyage" />
 
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li title="<?=$i18n['onglet-descr-synth']?>" id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" rel="synthese" href="<?=$url;?>synthese">
<?=$i18n["onglet-nom-synth"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="description" href="<?=$url;?>description">
<?=$i18n["onglet-nom-descr"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="ethnobotanique" href="<?=$url;?>ethnobotanique">
<?=$i18n["onglet-nom-ethnobota"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="ecologie" href="<?=$url;?>ecologie">
<?=$i18n["onglet-nom-eco"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="nomenclature" href="<?=$url;?>nomenclature">
<?=$i18n["onglet-nom-classif"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="bibliographie" href="<?=$url;?>bibliographie">
<?=$i18n["onglet-nom-biblio"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="illustrations" href="<?=$url;?>illustrations">
<?=$i18n["onglet-nom-illustra"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartition') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="repartition" href="<?=$url;?>repartition">
<?=$i18n["onglet-nom-repart"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="statut" href="<?=$url;?>statut">
<?=$i18n["onglet-nom-protect"]?></a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
<span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_cel.tpl.html
New file
0,0 → 1,54
<? if (isset($cel)) : ?>
<?php if (isset($cel['images'])) : ?>
<ul class="liste-illustrations">
<?php foreach($cel['images'] as $id => $image) : ?>
<li><div>
<a class="lien_grand_format" target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="<?= $image['urlImgGrandFormat'] ?>">
<img src="<?= $image['src']; ?>" alt="Photographie n°<?=$id;?> du taxon <?=$image['nomSci']?>" data-num-image="<?=$id;?>" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" />
</a>
<p>
<strong class="localisation"><?= $image['station']; ?></strong> - <strong class="date-creation"><?= $image['date']; ?></strong>
<br />par
<? if ($image['auteur.id']) : ?>
<a target="_blank" title="Voir le profil de cet utilisateur (nécessite d'être identifié)" href="<?= $image['urlProfil']; ?>">
<strong class="auteur"><?= $image['auteur'] ?></strong>
</a>&nbsp;&nbsp;
</p>
<div class="liste_actions_ill">
<a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)" class="mailto" href="<?= $image['urlContact']; ?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>contact.png" />
</a>
<a title="Télécharger cette image dans différents formats" class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$id?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
</a>
<a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?=$id;?>" href="<?=$image['urlDetailImg'];?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$id;?>" />
</a>
<a title="Signaler une mauvaise identification ou en proposer une autre via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
</a>
</div>
<? else : ?>
<strong class="auteur"><?= $image['auteur'] ?></strong>
&nbsp;&nbsp;(profil indisponible)
</p>
<div class="liste_actions_ill">
<a class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$id?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
</a>
<a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?= $image['id_image'] ?>" href="<?=$image['urlDetailImg'];?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$id;?>" />
</a>
<a title="Proposer une autre détermination via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
<img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
</a>
</div>
<? endif ?><br />
</div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<hr class="nettoyage" />
<? endif ?>
/branches/v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau3.tpl.html
New file
0,0 → 1,69
<?= $entete; ?>
<div id="bloc-fiche" class="importance4">
<h1>
<span class="famille nomenclature" style="float: right;">
<?php if($famille != '') { ?>
<a class="lien_recherche_hier" title="<?= $i18n['lien-recherche-hier-fam']; ?>" href="<?= $lien_recherche_famille ?>"> <?= $famille; ?> </a>
<?php } ?>
</span>
<span class="nomenclature"><?=$nom_retenu_html?></span>
</h1>
<?php if($nom_vernaculaire): ?>
<h2 class="vernaculaire"><?=$nom_vernaculaire;?></h2>
<?php endif; ?>
<?php if($nom_appele_html): ?>
<h3 class="redirige_depuis">
<span class="label_redirige_depuis">Nom recherché :</span>
<span class="valeur_redirige_depuis"><?= $nom_appele_html ?></span>
</h3>
<?php endif; ?>
 
<hr class="nettoyage" />
 
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li title="<?=$i18n['onglet-descr-synth']?>" id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" rel="synthese" href="<?=$url;?>synthese">
<?=$i18n["onglet-nom-synth"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="nomenclature" href="<?=$url;?>nomenclature">
<?=$i18n["onglet-nom-classif"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="description" href="<?=$url;?>description">
<?=$i18n["onglet-nom-descr"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="ecologie" href="<?=$url;?>ecologie">
<?=$i18n["onglet-nom-eco"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="ethnobotanique" href="<?=$url;?>ethnobotanique">
<?=$i18n["onglet-nom-ethnobota"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="bibliographie" href="<?=$url;?>bibliographie">
<?=$i18n["onglet-nom-biblio"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="illustrations" href="<?=$url;?>illustrations">
<?=$i18n["onglet-nom-illustra"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartition') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="repartition" href="<?=$url;?>repartition">
<?=$i18n["onglet-nom-repart"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" rel="statut" href="<?=$url;?>statut">
<?=$i18n["onglet-nom-protect"]?></a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
<span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche/Fiche.php
New file
0,0 → 1,278
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Fiche extends aControleur {
 
private $onglet = 'synthese';
private $parametres = array();
private $conteneur = null;
private $num_nom = 0;
private $nom_retenu = '';
private $nom_selectionne = null;
private $nom_appele_html = null; // le nom et l'auteur par lesquels on est arrivés sur la fiche, en cas de synonymie
private $url;
 
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$nom_courant = $this->conteneur->getNomCourant();
$this->nom_selectionne = $nom_courant->getNomSelectionne();
$this->url = $this->conteneur->getAppUrls();
$this->nom_retenu = $nom_courant->getNomRetenu();
if ($this->nom_retenu->get('id') != $this->nom_selectionne->get('id')) {
$this->nom_appele_html = $this->nom_selectionne->get('nom_sci_html').' '.$this->nom_selectionne->get('auteur');
}
spl_autoload_register(array($this, 'chargerClassesOnglets'));
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->parametres['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom'])) {
$this->parametres['nom'] = $_GET['nom'];
}
if (isset($_GET['type_nom'])) {
$this->parametres['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['referentiel'])) {
$this->parametres['referentiel'] = $_GET['referentiel'];
Registre::set('parametres.referentiel', $_GET['referentiel']);
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
if (isset($_GET['onglet'])) {
$this->onglet = $_GET['onglet'];
}
}
 
private function chargerClassesOnglets($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'formateurs'.DS;
$dossiers = array($base, $cheminFormateurs);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
 
$squelette = 'fiche_'.$this->onglet;
 
//Gestion du niveau
$niveau = isset($_GET['niveau']) ? $_GET['niveau'] : 2;
if ($this->onglet == 'synthese' && $niveau != null) {
$squelette .= '_niveau'.$niveau;
}
 
// Récupération parametres et données
$donnees = array_merge($this->obtenirDonnees(), $this->parametres);
$donnees['i18n'] = I18n::get('Fiche');
$verna = isset($donnees['ethnobotanique']['nomsVerna']) && count($donnees['ethnobotanique']['nomsVerna']) ? $donnees['ethnobotanique']['nomsVerna'][0]['nom_vernaculaire'] : "";
 
// titre, description et tag de la page
$this->setSortie('titre', $this->nom_retenu->get('nom_sci'));
// ( <meta name="description" ...> )
$this->setSortie('description', sprintf("Fiche descriptive de %s %s (%s)", $this->nom_retenu->get('nom_sci'), $verna ? ('/ ' . $verna) : '', $donnees['description']['titre']));
 
$this->setSortie('tags', $this->nom_retenu->get('nom_sci').",".$verna.
",botanique,plante,description,ecologie,reconnaitre,fiche espece");
 
$nom_sci_html = $this->nom_retenu->get('nom_sci_html');
// la recherche avancée à partir du clic sur le nom ne fonctionne pas sur les hybrides
$nom_sci_html = strpos($nom_sci_html, 'class="hyb"') === false ?
$this->formaterLiensNomsHtml($nom_sci_html) : $nom_sci_html;
// titre de la fiche
$donnees['nom_retenu_html'] = $nom_sci_html.' '.$this->nom_retenu->get('auteur');
$donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci');
$donnees['num_tax'] = $this->nom_selectionne->get('num_taxonomique');
$donnees['nom_appele_html'] = $this->nom_appele_html;
$famille = $this->nom_retenu->getTaxonSupRang('180');
$donnees['lien_recherche_famille'] = html_entity_decode($this->url->obtenirUrlRechercheAvancee(array("fam" => $famille)));
$donnees['famille'] = $famille;
$donnees['nom_vernaculaire'] = $verna;
 
// moteur de recherche
$this->executerAction('Recherche', 'executerAccueil', $this->parametres);
 
// page synthese
$blocs_niveaux = $this->conteneur->getParametreTableau('blocs_fiche_defaut');
$donnees['blocs'] = '"'.str_replace('|', '","', $blocs_niveaux[Registre::get('parametres.niveau')]).'"';
 
// onglet
$donnees['onglet'] = $this->onglet;
$donnees['niveau'] = $niveau;
$donnees['base_url_onglets'] = Config::get('base_url_application_onglets');
$taxons = new Taxons();
$referentiel = $this->conteneur->getParametre('referentiel');
$donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns());
$donnees['entete'] = $this->getVue('fiche_entete', $donnees);
$donnees['contenu_onglet'] = $this->getVue($squelette, $donnees);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_accueil_niveau'.$niveau, $donnees), true);
$this->ajouterPiedDePage();
}
public function executerTemplateAjax() {
$classe = ucfirst($this->onglet);
$onglet = new $classe($this->conteneur);
$action = 'obtenir'.ucfirst($_GET['sous_action']);
$html_ajax = $onglet->$action();
header('Content-type : text/html');
echo $html_ajax;
exit;
}
private function formaterLiensNomsHtml($nom_sci_html) {
$app_urls = new AppUrls();
$params = array();
$classes_recherche = array("fam" => "fam", "gen" => "gen", "sp" => "sp", "infra-sp" => "ssp");
$doc = new DOMDocument();
$doc->loadHTML($nom_sci_html);
$spans = $doc->getElementsByTagName('span');
$abbrs = $doc->getElementsByTagName('abbr');
$params_subsp = array();
$i18n = I18n::get('Fiche');
//TODO: c'est un peu moche, la fonction est surement factorisable
if ($spans->length > 0) {
foreach($spans as $span) {
$classe = $span->getAttribute('class');
if(in_array($classe, array_keys($classes_recherche))) {
$params[$classes_recherche[$classe]] = $span->nodeValue;
if($classe == "sp") {
$params_subsp = $params;
}
$lien_tpl = html_entity_decode($this->url->obtenirUrlRechercheAvancee($params));
$texte_lien = $span->nodeValue;
$span->nodeValue = "";
$text = $doc->createElement('a', $texte_lien);
$text->setAttribute('href', $lien_tpl);
$text->setAttribute('title', $i18n["lien-recherche-hier-".$classe]);
$text->setAttribute('class', 'lien_recherche_hier');
$span->appendChild($text);
}
}
}
if ($abbrs->length > 0) {
foreach($abbrs as $abbr) {
$classe = $abbr->getAttribute('class');
$params_subsp["type"] = $abbr->nodeValue;
$lien_tpl = html_entity_decode($this->url->obtenirUrlRechercheAvancee($params_subsp));
$texte_lien = $abbr->nodeValue;
$abbr->nodeValue = "";
$text = $doc->createElement('a', $texte_lien);
$text->setAttribute('href', $lien_tpl);
$text->setAttribute('title', $i18n["lien-recherche-hier-ssp"]);
$text->setAttribute('class', 'lien_recherche_hier');
$abbr->appendChild($text);
}
}
return $doc->SaveXml();
}
private function formaterLienRechercheSurPartieNomSci(&$noeud, &$params) {
}
 
public function ajouterLienModuleExport() {
$donnees['lien'] = $this->url->obtenirUrlPdfExport($this->parametres['num_nom']);
$export = $this->getVue('fiche_pdf_lien', $donnees);
return $export;
}
 
public function ajouterPiedDePage() {
$description = new Description($this->conteneur);
$taxons = new Taxons();
$referentiel = $this->conteneur->getParametre('referentiel');
$urlMobile = $this->url->obtenirUrlMobile($this->parametres['num_nom']);
$donnees = array('wikipedia' => $description->getUrlWikipedia(),
'export_pdf' => $this->ajouterLienModuleExport(),
'permalien_num_nom' => $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns()),
'permalien_taxon' => $taxons->getUrlPermalienTaxon($referentiel, 1, $this->conteneur->getNomCourant()->getNt()),
'nn' => $this->conteneur->getNomCourant()->getNns(),
'nt' => $this->conteneur->getNomCourant()->getNt(),
'nnr' => $this->conteneur->getNomCourant()->getNnr(),
'inpn' => $this->conteneur->getNomCourant()->getInpn(),
'wiki' => $description->getLienWikini(),
'nom_retenu' => $this->nom_retenu->get('nom_sci'),
'mobile' => $urlMobile,
'qr_code_png' => $this->obtenirUrlQrCode($urlMobile)
);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_pied_page', $donnees), true);
}
 
private function obtenirUrlQrCode($urlMobile) {
$qr = $this->conteneur->getQrCode();
$qr->setUrl(htmlspecialchars_decode($urlMobile));
$idQrCode = $this->conteneur->getParametre('referentiel') . '-' .$this->conteneur->getNomCourant()->getNns();
$urlQrCode = $qr->dessiner($idQrCode);
return $urlQrCode;
}
 
public function executerOnglet(){
$this->viderSorties();
$donnees = $this->obtenirDonnees();
$squelette_onglet = $this->onglet;
// onglet
$donnees['i18n'] = I18n::get('Fiche');
$donnees['onglet'] = $this->onglet;
$taxons = new Taxons();
$referentiel = $this->conteneur->getParametre('referentiel');
$donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns());
// cas particulier de l'onglet synthese qui possède 3 niveaux
// et dont le nom n'est donc pas directement celui de son squelette
if($this->onglet == "synthese") {
$niveau = isset($_GET['niveau']) ? $_GET['niveau'] : 2;
$squelette_onglet .= '_niveau'.$niveau;
$entete = $this->getVue('fiche_entete', $donnees);
$vue = $entete.$this->getVue('fiche_'.$squelette_onglet, $donnees);
} else {
$vue = $this->getVue('fiche_'.$squelette_onglet, $donnees);
}
header('Content-type: text/html');
$this->setSortie(self::RENDU_CORPS, $vue);
}
 
private function obtenirDonnees() {
$classe = ucfirst($this->onglet);
$onglet = new $classe($this->conteneur); // grep-friendly: new Synthese()
return $onglet->obtenirDonnees();
}
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Ecologie.php
New file
0,0 → 1,210
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Mathilde Salthun-lassalle <mathilde@tela-botanica.org>
* @author Raphaël Droz <raphael@tela-botanica.org>
* @copyright 2011, 2013 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
* @used by modules/pdf_export/PdfExport.php::initialiser()
* @used by modules/fiche/formateurs/Synthese.php::obtenirDonnees()
*/
class Ecologie extends aControleur {
private $referentiel = 'bdtfx';
private $donnees = array();
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->informations = $this->conteneur->getApiInformations();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->wikini = $this->conteneur->getApiWikini();
$this->appUrls = $this->conteneur->getAppUrls();
$this->graphique = $this->conteneur->getApiGraphiques();
$this->syntaxons = $this->conteneur->getApiSyntaxons();
parent::__construct();
}
public function obtenirDonnees() {
$donnees = array();
$this->getWikini();
$this->getBaseflor();
$this->getBaseveg();
$this->donnees['urls'] = $this->appUrls;
return $this->donnees;
}
public function obtenirDonneesExport() {
$donnees['wikini'] = $this->getWikini();
$donnees['baseflor'] = $this->getBaseflorExport();
$donnees['baseveg'] = $this->getBaseveg();
return $donnees;
}
public function getBaseflorCatminat($depart, $limite) {
$baseflorCatminat = array();
$this->informations->setProjet('baseflor');
$this->informations->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations->setNum_nom($this->nomCourant->getNnr());
$this->informations->setDepart($depart);
$this->informations->setLimite($limite);
$informations = $this->informations->getInformationsRelationCatminat();
if($informations != ""){
$baseflorCatminat['catminat'] = $informations['resultat'][0]['catminat_code'];
$baseflorCatminat['lien-liste-fancy'] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_taxons',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$baseflorCatminat['catminat']);
} else {
$baseflorCatminat['aucune'] = 'Aucune donnée';
}
return $baseflorCatminat;
}
private function getBaseveg() {
if (Config::get($this->referentiel.'.basePhytosocio') != "") {
$baseveg = array();
$baseflor = $this->getBaseflorCatminat(0,500);
$baseveg['baseflor'] = $baseflor;
if (isset($baseflor['catminat'])) {
$this->syntaxons->setProjet('baseveg');
$catminat = str_replace('/','-',$baseflor['catminat']);
$this->syntaxons->setCatminat($catminat);
$syntaxonsSup = $this->syntaxons->getSyntaxonsSuperieurs();
$baseveg['syntaxons-sup'] = $syntaxonsSup['resultat'];
$syntaxonsCourant = $this->syntaxons->getSyntaxonsCatminat();
$baseveg['syntaxon-courant'] = $syntaxonsCourant['resultat'];
foreach ($baseveg['syntaxons-sup'] as $cle => $valeurs) {
$catminat_sup = str_replace('/','-',$valeurs['code_catminat']);
$baseveg['synonymes']['lien-liste-fancy'][$valeurs['code_catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_synonymes',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat_sup);
$baseveg['ref']['lien-liste-fancy'][$valeurs['code_catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_ref',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat_sup);
$baseveg['taxons']['lien-liste-fancy'][$valeurs['code_catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_taxons_sup',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat_sup);
}
$baseveg['synonymes']['lien-liste-fancy'][$baseflor['catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_synonymes',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat);
$baseveg['ref']['lien-liste-fancy'][$baseflor['catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_ref',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat);
$this->meta->setProjet('baseveg');
$meta = $this->meta->getMetaDonnees();
$baseveg['meta'] = $meta[0];
$baseveg['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseveg');
}else {
$baseveg['aucune'] = 'Aucune donnée';
}
$this->donnees['baseveg'] = $baseveg;
}
}
private function getBasevegSyntaxonCourant() {
$baseveg = array();
$baseflor = $this->getBaseflorCatminat(0,500);
if (isset($baseflor['catminat'])) {
$this->syntaxons->setProjet('baseveg');
$catminat = str_replace('/','-',$baseflor['catminat']);
$this->syntaxons->setCatminat($catminat);
$syntaxonsCourant = $this->syntaxons->getSyntaxonsCatminat();
$baseveg['description'] = $syntaxonsCourant['resultat'];
}
return $baseveg;
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['ecologie'] = $this->wikini->getTexteFormate($page_wiki, 'ecologie');
$this->donnees['wikini'] = $wikini;
}
public function getBloc() {
$donnees = array();
$this->getBaseflor(false);
$this->donnees['graph'] = $this->donnees['baseflor'];
$this->donnees['graph']['titre'] = 'Optimum écologique';
$this->donnees['phytosocio'] = $this->getBasevegSyntaxonCourant();
return $this->donnees;
}
private function getBaseflorExport() {
$baseflor = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations ->setNum_nom($this->nomCourant->getNnr());
$informations = $this->informations->getInformationsEcologie();
if(is_array($informations)){
$baseflor['climat_url'] = $informations['graphique_climat']['href']."?retour.format=500";
$baseflor['sol_url'] = $informations['graphique_sol']['href']."?retour.format=500";
$baseflor['climat_url_png'] = $informations['graphique_climat']['href']."?retour=image/png";
$baseflor['sol_url_png'] = $informations['graphique_sol']['href']."?retour=image/png";
$this->graphique -> setProjet('baseflor');
$baseflor['legende_eco'] = $this->urls->obtenirUrlBaseDossier() . Config::get('dossier_images') . '/legende_formes.png';
$this->meta->setProjet('baseflor');
$meta = $this->meta->getMetaDonnees();
$baseflor['meta']= $meta[0];
}else {
$baseflor['aucune'] = 'Aucune donnée';
}
return $baseflor;
}
private function getBaseflor($inclure_legende = true) {
if (Config::get($this->referentiel.'.baseEcologie')) {
$referentiel = $this->conteneur->getParametre('referentiel');
$num_nom = $this->nomCourant->getNnr();
 
// TODO: unserialize() pourrait aussi légitimement retourner FALSE
$cache = unserialize($this->conteneur->getCache()->charger('baseflor/graphique/'.$referentiel.'_'.$num_nom));
if($cache) {
$baseflor = $cache;
$this->graphique ->setProjet('baseflor');
$graphique = $this->graphique->getLegendeGraphique();
$baseflor['legende'] = $graphique ;
} else {
$baseflor = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations ->setNum_nom($this->nomCourant->getNnr());
$informations = $this->informations->getInformationsEcologie();
if(is_array($informations)){
if (isset($informations['graphique_climat'])) {
$baseflor['climat_url'] = $informations['graphique_climat']['href']."?retour.format=500";
$baseflor['climat_url_png'] = $informations['graphique_climat']['href']."?retour=image/png";
$baseflor['description']['climat_url'] = $informations['graphique_climat']['href']."?retour.format=420";
$baseflor['description']['climat_url_png'] = $informations['graphique_climat']['href']."?retour.format=420&retour=image/png";
}
if (isset($informations['graphique_sol'])) {
$baseflor['sol_url'] = $informations['graphique_sol']['href']."?retour.format=500";
$baseflor['sol_url_png'] = $informations['graphique_sol']['href']."?retour=image/png";
$baseflor['description']['sol_url'] = $informations['graphique_sol']['href']."?retour.format=420";
$baseflor['description']['sol_url_png'] = $informations['graphique_sol']['href']."?retour.format=420&retour=image/png";
}
if($inclure_legende) {
$this->graphique ->setProjet('baseflor');
$graphique = $this->graphique->getLegendeGraphique();
$baseflor['legende'] = $graphique ;
}
$this->meta->setProjet('baseflor');
$meta = $this->meta->getMetaDonnees();
$baseflor['meta'] = $meta[0];
$baseflor['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseflor');
$this->conteneur->getCache()->sauver(serialize($baseflor),
'baseflor/graphique/'.$referentiel.'_'.$num_nom);
} else {
$baseflor['aucune'] = 'Aucune donnée';
}
}
$this->donnees['baseflor'] = $baseflor;
}
}
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Illustrations.php
New file
0,0 → 1,369
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Illustrations extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $images = null;
private $appUrls = null;
private $meta = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
$this->meta = $this->conteneur->getApiMetaDonnees();
}
 
public function obtenirDonnees() {
$this->donnees['nt'] = $this->nomCourant->getNt();
$this->donnees['nnr'] = $this->nomCourant->getNnr();
$this->donnees['referentiel'] = $this->referentiel;
$this->donnees['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html');
$infosNomRetenu = $this->nomCourant->getNomRetenu()->getInfos();
$this->donnees['nomComplet'] = $infosNomRetenu['nom_complet'];
$this->getPhotos();
$this->getDessin();
$this->getPhotosCaracteresIdentification();
$pso = $this->getPhotosSixOrganes();
// Le framework n'avait pas prévu l'inclusion de sous squelettes dans les modules
// en attendant, on utilise un chemin complet vers le fichier de squelette
$chemin_sous_squelette = Config::get('chemin_modules').AppControleur::getNomDossierDepuisClasse('Fiche').DS.Config::get('dossier_squelettes').DS;
$params = array('organes' => $pso, 'referentiel' => $this->referentiel,
'nnr' => $this->donnees['nnr'],
'nomComplet' => $this->donnees['nomComplet']);
$this->donnees['illustrationsOrganes'] = $this->getVue($chemin_sous_squelette.'fiche_illustrations_organes.tpl.html',$params);
$this->donnees['organes'] = $pso;
// chemins
$this->donnees['base_url_widget_saisie'] = Config::get('base_url_widget_saisie');
$this->donnees['base_url_pictoflora'] = Config::get('base_url_pictoflora');
return $this->donnees;
}
public function obtenirDonneesExport() {
$this->donnees['nt'] = $this->nomCourant->getNt();
$this->donnees['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html');
$this->donnees['cel'] = $this->getCelExport();
if ($this->referentiel == 'bdtfx') {
$this->donnees['coste'] = $this->getCoste();
}
return $this->donnees;
}
 
public function getBloc() {
$this->donnees = $this->images->getInfosMeilleureImageParPrioriteTags($nnr = $this->nomCourant->getNnr(), array(
'fleur', 'feuille', 'fruit', 'ecorce', 'port', 'rameau'));
if (empty($this->donnees)) {
$this->donnees = $this->getPhoto('cel');
if (empty($this->donnees)) {
$infos_image = $this->getDessin();
if (empty($infos_image) == false ) {
$this->donnees['imageUrl'] = array_shift($infos_image['images']);
}
}
} else {
// extraction de l'url
$this->donnees = array('imageUrl' => $this->donnees['binaire.href']);
}
// Photoflora (alias Copyrightflora alias Egoflora) n'est dispo que pour BDTFX
if (empty($this->donnees) && $this->referentiel == "bdtfx") {
$this->donnees = $this->getPhoto('photoflora');
}
return $this->donnees;
}
public function obtenirPhotoCelTpl() {
$images = $this->initialiserPhotos('cel');
$this->formaterListePhotos('cel', $images);
$this->formaterMetaPhotos('cel');
$chemin_sous_squelette = Config::get('chemin_modules').AppControleur::getNomDossierDepuisClasse('Fiche').DS.Config::get('dossier_squelettes').DS;
$donnees = array('cel' => array('images' => $this->donnees['cel']['images'], 'meta' => $this->donnees['cel']['meta'] ));
$html_tpl = $this->getVue($chemin_sous_squelette.'fiche_illustrations_cel.tpl.html', $donnees);
return $html_tpl;
}
//TODO: factoriser les deux fonctions ci dessous et ci dessus
public function obtenirTranchesCelTpl($projet) {
// On ne prend que la tranche des images (12)
$images = $this->initialiserTranchePhotos($projet);
$this->formaterListePhotos($projet, $images);
$this->formaterMetaPhotos($projet);
$chemin_sous_squelette = Config::get('chemin_modules').AppControleur::getNomDossierDepuisClasse('Fiche').DS.Config::get('dossier_squelettes').DS;
$donnees = array('cel' => array('images' => $this->donnees['cel']['images'], 'meta' => $this->donnees[$projet]['meta'] ));
$html_tpl = $this->getVue($chemin_sous_squelette.'fiche_illustrations_cel.tpl.html', $donnees);
$this->donnees[$projet]['illustrationsCel'] = $html_tpl;
$this->donnees[$projet]['cel_present'] = count($images) > 0;
// Ensuite on fait juste un lien qui permettra de les charger
$this->donnees[$projet]['ajax_url'] = $this->formaterUrlAjaxPhotoCel();
}
public function getPhoto($source) {
$donnees = array();
$this->images->setProjet($source);
$nnr = $this->nomCourant->getNnr();
$infos_image = $this->images->setApi(Eflore::API_EFLORE)->getInfosPremiereImageParIdsNoms(array($nnr));
if ($infos_image != array()) {
$image = array_shift($infos_image);
$donnees['imageUrl'] = $image['binaire.href'];
}
return $donnees;
}
 
public function getCoste() {
$coste = array();
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$this->images->setProjet('coste');
$this->images->setNnTaxon($tax);
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
foreach ($costeImg as $infos) {
$coste['images'][] = $infos['binaire.href'];
}
$this->meta->setProjet('coste');
$meta = $this->meta->getMetaDonnees();
$coste['meta'] = $meta[0];
$coste['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('coste');
return $coste;
}
 
public function getDessin() {
$projet = Config::get($this->referentiel.'.baseDessins');
if ($projet != "") {
$dessin = array();
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$this->images->setProjet($projet);
$this->images->setNnTaxon($tax);
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
foreach ($costeImg as $infos) {
$dessin['images'][] = $infos['binaire.href'];
}
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$dessin['meta'] = $meta[0];
$dessin['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
$this->donnees[$projet] = $dessin;
}
}
public function getPhotos() {
$projets[] = Config::get($this->referentiel.'.baseImages');
$projets[] = Config::get($this->referentiel.'.baseImagesSupp');
foreach ($projets as $projet) {
if ($projet != "") {
if ($projet == "cel") {
// Chargement des 10 premieres images + un lien pour en afficher plus
$this->obtenirTranchesCelTpl($projet);
} else {
$this->images->setApi(Eflore::API_EFLORE);
$images = $this->initialiserPhotos($projet);
$this->formaterListePhotos($projet, $images);
$this->formaterMetaPhotos($projet);
}
}
}
}
private function formaterUrlAjaxPhotoCel() {
$infos = array('referentiel' => $this->referentiel,
'module' => 'fiche',
'action' => 'templateAjax',
'sous_action' => 'photoCelTpl',
'num_nom' => $this->nomCourant->getNnr(),
'onglet' => 'illustrations');
return Config::get('base_url_application_onglets').'?'.http_build_query($infos);
}
public function getPhotosSixOrganes() {
$organes = $this->getOrganes();
$nnr = $this->nomCourant->getNnr();
$infosOrganes = $this->images->getInfosMeilleuresImagesParTag($nnr, array_keys($organes), Eflore::PROTOCOLE_CAPITALISATION, 6, 'CRX2S');
$vide = true;
foreach ($infosOrganes as $tag => $organe) {
foreach ($organe as $id_image => &$image) {
$image['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($image['observation']['id_observation']);
}
$organes[$tag] = $organe;
$nbImages = count($organe);
if ($nbImages != 0) {
$vide = false;
for ($i = 6; $i > $nbImages; $i--) {
$organes[$tag][] = null;
}
}
}
if ($vide) {
$organes = array();
}
return $organes;
}
public function getPhotosOrganes() {
$organes = $this->getOrganes();
$nnr = $this->nomCourant->getNnr();
$infosOrganes = $this->images->getInfosMeilleuresImagesParTag($nnr, array_keys($organes), Eflore::PROTOCOLE_CAPITALISATION, 1);
$vide = true;
foreach ($infosOrganes as $tag => $organe) {
$nbImages = count($organe);
// une image par organe seulement
$organes[$tag] = array_pop($organe);
if ($nbImages != 0) {
$vide = false;
}
}
if ($vide) {
$organes = array();
}
$this->donnees['organes'] = $organes;
}
public function getPhotosCaracteresIdentification() {
$caracteres = array();
$nnr = $this->nomCourant->getNnr();
// pas de tag: on cherche les mieux votées pour ce protocole sans tenir compte des tags
$infosCaracteres = $this->images->getInfosMeilleuresImagesParTag($nnr, '', Eflore::PROTOCOLE_CARACTERES, 3);
if (! empty($infosCaracteres) && ! empty($infosCaracteres[''])) { // le tag est vide, ici
$caracteres = $infosCaracteres[''];
}
foreach($caracteres as $id_image => &$caractere) {
$caractere['urlDetailImg'] = $this->appUrls->obtenirUrlPopUpIllustrations($id_image);
$caractere['urlImgGrandFormat'] = $this->obtenirUrlImageGrandFormatCel($id_image);
$caractere['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($caractere['auteur.id'], $id_image);
$caractere['urlProfil'] = $this->appUrls->obtenirUrlProfilAnnuaire($caractere['auteur.id']);
$caractere['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($caractere['observation']['id_observation']);
}
$this->donnees['caracteres'] = $caracteres;
}
private function getOrganes() {
return array(
'fleur' => array(),
'feuille' => array(),
'fruit' => array(),
'ecorce' => array(),
'port' => array(),
'rameau' => array());
}
 
// XXX: webservice:
// /service:eflore:0.1/cel/images?masque.nn=XXX&referentiel=bdtfx&retour.format=CS&navigation.limite=801
private function initialiserPhotos($projet) {
$this->images->setProjet($projet);
$nnr = $this->nomCourant->getNnr();
$ret = $this->images->getInfosImagesParIdsNoms(array($nnr));
return $ret;
}
private function initialiserTranchePhotos($projet) {
$this->images->setProjet($projet);
$nnr = $this->nomCourant->getNnr();
$ret = $this->images->getInfosTrancheImagesParIdsNoms(array($nnr), Config::get('nbTrancheImagesResultatsDeterminationAffichees'));
return $ret;
}
private function formaterListePhotos($projet, $images) {
foreach ($images as $idImg => $img) {
$infosImg = array();
$infosImg['src'] = $img['binaire.href'];
$infosImg['nomSci'] = $img['determination.nom_sci'];
$infosImg['station'] = $img['station.libelle'];
$infosImg['date'] = $this->formaterDateImg($img['date']);
$infosImg['auteur'] = $img['auteur.libelle'];
$infosImg['auteur.id'] = $img['auteur.id'];
if ($projet == "cel") {
$infosImg['urlDetailImg'] = $this->appUrls->obtenirUrlPopUpIllustrations($idImg);
$infosImg['urlImgGrandFormat'] = $this->obtenirUrlImageGrandFormatCel($idImg);
$infosImg['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($img['auteur.id'], $idImg);
$infosImg['urlProfil'] = $this->appUrls->obtenirUrlProfilAnnuaire($img['auteur.id']);
$infosImg['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($img['observation.id']);
}
$this->donnees[$projet]['images'][$idImg] = $infosImg;
}
}
public static function obtenirUrlImageGrandFormatCel($id, $format = "O") {
$tpl = Config::get('baseUrlImageCelTpl');
return sprintf($tpl, str_pad($id, 9, '0', STR_PAD_LEFT).$format.'.jpg');
}
// XXX: public static pour être injecté dans le squelette d'entete
public static function obtenirTemplateUrlImageGrandFormatOrganes($format = "O") {
return $tpl = sprintf(Config::get('baseUrlImageCelTpl').$format.'.jpg', '{id_image}');
}
private function formaterMetaPhotos($projet) {
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$titreMeta = $meta[0];
$this->donnees[$projet]['meta'] = $titreMeta;
$this->donnees[$projet]['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
public function getCelExport() {
$cel = array();
$this->images->setProjet('cel');
$nnr = $this->nomCourant->getNnr();
$img = $this->images->getUrlPremiereImageParIdsNoms(array($nnr));
if($img) {
$img = array_values($img);
$cel['images']['src'] = $img[0]['binaire.href'];
$cel['images']['nomSci'] = $img[0]['determination.nom_sci'];
$cel['images']['station'] = $img[0]['station.libelle'];
$cel['images']['date'] = $this->formaterDateImg($img[0]['date']);
$cel['images']['auteur'] = $img[0]['auteur.libelle'];
$this->meta->setProjet('cel');
$meta = $this->meta->getMetaDonnees();
$cel['meta'] = $meta[0];
$cel['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('cel');
}
return $cel;
}
 
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '' || $date == null || strpos($date, '0000-00-00') !== false || $date == '1970-01-01 01:01:01') {
return 'inconnue';
}
$time = strtotime($date);
if(!$time) {
/* TODO: php -r "echo strtotime('1891-00-00 00:00:00');"
TODO: fixer le template pour affiche "en l'année X", plutôt que "le X"
si FALSE pour avant 1901: problème php
On retourne alors simplement l'année.
si correction, ne pas oublier modules/popup_illustrations/PopupIllustrations.php */
$dateFmt = explode('-', $date);
return $dateFmt[0];
}
return strftime('%e %B %Y', strtotime($date));
}
 
private function formaterNomSci($nom) {
$nomFmt = $nom;
if (is_null($nom) || $nom == '') {
$nomFmt = 'inconnu';
}
return $nomFmt;
}
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Nomenclature.php
New file
0,0 → 1,170
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Nomenclature extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $noms = null;
private $meta = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->taxons = $this->conteneur->getApiTaxons();
$this->noms = $this->conteneur->getApiNoms();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
$this->wikini = $this->conteneur->getApiWikini();
//print_r($_GET['niveau']);
//Registre::set('parametres.niveau', 2);
}
 
public function obtenirDonnees() {
$this->donnees['baseUrlIco'] = $this->appUrls->obtenirUrlBaseDossier();
$this->donnees['referentiel'] = $this->referentiel;
$this->getFlores();
$this->donnees['synonymes']['noms'] = $this->trierSynonymesParBasionyme($this->getSynonymes());
$this->donnees['date_maj'] = $this->nomCourant->getNomRetenu()->get('maj_modif');
$meta = $this->meta->getMetaDonnees();
$this->donnees['synonymes']['meta'] = $meta[0];
$this->donnees['synonymes']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel);
$this->donnees['num_type'] = $this->nomCourant->getNomSelectionne()->get('num_type');
$this->donnees['urls'] = $this->appUrls;
$this->donnees['nom_retenu_formate'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html_complet');
$this->donnees['nom_retenu_nn'] = $this->nomCourant->getNomRetenu()->get('nom_retenu.id');
$this->donnees['nom_retenu_source'] = $this->nomCourant->getNomRetenu()->get('source_biblio');
$this->donnees['basionyme_nom_retenu'] = $this->nomCourant->getNomRetenu()->get('basionyme_html_complet');
$this->donnees['basionyme_nom_retenu_nn'] = $this->nomCourant->getNomRetenu()->get('basionyme.id');
$this->donnees['nom_selectionne'] = $this->nomCourant->getNomSelectionne()->get('nom_sci_html_complet');
$this->donnees['nom_retenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci');
$this->donnees['wikini'] = $this->getWikini();
$this->donnees['hybride_parent_01'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_01_html_complet');
$this->donnees['hybride_parent_02'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_02_html_complet');
$this->donnees['hybride_parent_01_nn'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_01.id');
$this->donnees['hybride_parent_02_nn'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_02.id');
$this->donnees['taxons_sup'] = $this->nomCourant->taxons_sup;
$this->donnees['taxon_courant']['rang.libelle'] = $this->nomCourant->getNomRetenu()->get('rang.libelle');
$this->donnees['taxon_courant']['nom_sci'] = $this->nomCourant->getNomRetenu()->get('nom_sci');
$this->donnees['taxon_courant']['num_nom'] = $this->nomCourant->getNomRetenu()->get('id');
$this->donnees['taxons_inf'] = $this->getTaxonsInferieurs();
return $this->donnees;
}
private function trierSynonymesParBasionyme($synonymes) {
$synonymes_t = array();
$basionyme_inconnu = array();
foreach($synonymes as $num_nom => $syn) {
if($syn['num_type'] != "") {
$index = $syn['num_type'];
// regroupement sous le 1er basionyme (num_type == num_nom)
if(!isset($synonymes_t[$index]['infos_basionyme'])) {
$synonymes_t[$index]['infos_basionyme'] = $this->extraireInfosBasionymeDuSynonyme($syn);
}
$synonymes_t[$index]['synonymes'][$num_nom] = $syn;
} else {
$basionyme_inconnu['synonymes'][$num_nom] = $syn;
}
}
// mise à la fin du tableau des noms sans basionymes
if(!empty($basionyme_inconnu)) {
$synonymes_t['basionyme_inconnu'] = $basionyme_inconnu;
}
 
return $synonymes_t;
}
private function extraireInfosBasionymeDuSynonyme($synonyme) {
return array(
'basionyme.id' => $synonyme['basionyme.id'],
'basionyme.libelle' => $synonyme['basionyme.libelle'],
'basionyme_html' => $synonyme['basionyme_html'],
'basionyme_complet' => $synonyme['basionyme_complet'],
'basionyme_html_complet' => $synonyme['basionyme_html_complet'],
'basionyme.href' => $synonyme['basionyme.href']
);
}
private function getTaxonsInferieurs() {
$num_nom = $this->nomCourant->getNomRetenu()->get('id');
$resultat = $this->taxons->getTaxonsInf($num_nom);
// TODO: le webservice retourne le taxon demandé comme l'un des taxon inférieurs
// workaround: on le supprime ici car l'on ignore si d'autre app' dépendent de ce comportement
unset($resultat[$num_nom][$num_nom]);
return $resultat[$num_nom];
}
public function obtenirVersionDonnees() {
$meta = $this->meta->getMetaDonnees();
$this->donnees['version'] = $meta[0]['code'].' v.'.$meta[0]['version'];
return $this->donnees;
}
 
public function getBloc() {
$this->donnees['urls'] = $this->appUrls;
$this->donnees['nom_selectionne'] = $this->nomCourant->getNomSelectionne()->get('nom_sci_html_complet');
$this->donnees['nom_retenu_formate'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html_complet');
$this->donnees['basionyme_nom_retenu'] = $this->nomCourant->getNomRetenu()->get('basionyme_html_complet');
$synonymes = $this->getSynonymes();
$this->donnees['synonymes'] = array_slice($synonymes, 0, 3);
$this->donnees['autresSynonymesNbre'] = count($synonymes) - 3;
$this->donnees['taxons_sup'] = $this->nomCourant->taxons_sup;
$this->donnees['taxons_inf'] = $this->getTaxonsInferieurs();
$this->donnees['taxons_sup'] = is_array($this->donnees['taxons_sup']) ? array_slice($this->donnees['taxons_sup'], -3 , 3) : array();
$this->donnees['taxons_inf'] = is_array($this->donnees['taxons_inf']) ? array_slice($this->donnees['taxons_inf'], 0 , 3) : array();
return $this->donnees;
}
 
private function getFlores() {
if (Config::get($this->referentiel.'.baseFloresRef') != "") {
$nnr = $this->nomCourant->getNnr();
$flores = $this->noms->getFlores($nnr);
$this->donnees['flores_synonymes'] = (isset($flores['resultat']) && is_array($flores['resultat'])) ? $flores['resultat'] : array();
}
}
 
private function getSynonymes() {
$nns = $this->nomCourant->getNns();
$synonymesReponse = $this->noms->getSynonymes($nns);
 
$synonymes = array();
if (isset($synonymesReponse['resultat']) && is_array($synonymesReponse['resultat'])) {
$synonymes = $synonymesReponse['resultat'];
if (array_key_exists($this->nomCourant->getNnr(), $synonymes)) {
unset($synonymes[$this->nomCourant->getNnr()]);
}
}
return $synonymes;
}
 
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($this->referentiel, $num_tax);
$wikini['nomenclature'] = $this->wikini->getTexteFormate($page_wiki, 'nomenclature');
return $wikini;
}
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Bibliographie.php
New file
0,0 → 1,83
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Bibliographie extends aControleur {
private $apiBiblioBota;
private $conteneur;
private $nomCourant;
private $meta;
private $appUrls;
private $wikini;
private $referentiel = 'bdtfx';
private $donnees = array();
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
}
public function obtenirDonnees() {
$this->donnees['bibliobota']['references'] = $this->getBiblioBota();
$this->meta->setProjet('bibliobota');
$meta = $this->meta->getMetaDonnees();
$this->donnees['bibliobota']['meta'] = $meta[0];
$this->donnees['bibliobota']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bibliobota');
$this->donnees['wikini'] = $this->getWikini();
return $this->donnees;
}
public function getBloc() {
$references = $this->getBiblioBota();
$this->donnees['references'] = array_slice($references, 0, 3);
foreach ($this->donnees['references'] as $id=>$reference) {
preg_match('/.*<strong>(.*)<\/strong>.*/', $reference['reference_html'], $titre);
$this->donnees['references'][$id]['reference_html'] = $titre[1];
}
$this->donnees['autresReferences'] = count($references) - 3;
if ($this->donnees['references'] == array()) {
$this->donnees['wikini'] = $this->getWikini();
}
return $this->donnees;
}
//Obtention des données issues de biblio_bota
private function getBiblioBota() {
$this->apiBiblioBota = $this->conteneur->getApiBiblioBota();
$this->apiBiblioBota->setProjet('bibliobota');
$interrogation = $this->nomCourant->getNomSelectionne()->get('nom_sci');
$references = $this->apiBiblioBota->getReferences($interrogation);
return $references['resultats'];
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['biblio'] = $this->wikini->getTexteFormate($page_wiki, 'biblio');
return $wikini;
}
 
 
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Repartition.php
New file
0,0 → 1,162
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Repartition extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $referentiel = 'bdtfx';
private $donnees = array();
private $cartes;
private $meta;
private $appUrls;
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->cartes = $this->conteneur->getApiCartes();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
public function obtenirDonnees() {
$this->getRepartition();
$this->getMoissonnage();
$this->getFloreProbable();
$this->donnees['widget']['nt'] = $this->nomCourant->getNt();
$this->donnees['widget']['nn'] = $this->nomCourant->getNnr();
$this->donnees['widget']['referentiel'] = $this->referentiel;
return $this->donnees;
}
 
public function obtenirDonneesExport() {
$this->getRepartition();
$donnees['chorodep'] = $this->donnees['repartition'];
$this->getMoissonnageExport();
// TODO: renommer l'index "eflore" en moissonnage
// et renommer dans pdf_export/squelettes/pdf_repartition.tpl.html
$donnees['eflore'] = $this->donnees['moissonnage'];
return $donnees;
}
 
private function getRepartition() {
$projetRepartition = Config::get("{$this->referentiel}.baseRepartition");
// eg: eflore ou chorodep
// cf: bdtfx.ini, bdtxa.ini
if ($projetRepartition != '') {
$this->cartes->setProjet($projetRepartition);
$this->cartes->setLargeur('630');
$nt = $this->nomCourant->getNt();
$this->cartes->setId("{$this->referentiel}.nt:$nt");
$repartition['svgUrl'] = $this->cartes->getUrlDataSvg();
$repartition['pngUrl'] = $this->cartes->getUrlPng();
$repartition['legende'] = $this->cartes->getLegendeId();
$this->meta->setProjet($projetRepartition);
$meta = $this->meta->getMetaDonnees();
$repartition['meta'] = $meta[0];
$repartition['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projetRepartition);
$this->donnees['repartition'] = $repartition;
}
}
 
private function getMoissonnage() {
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
if (! $projetMoissonnage) return;
$this->cartes->setProjet('moissonnage');
$this->cartes->setLargeur('600');
$this->cartes->setInfoNom($this->nomCourant->getNt());
$this->cartes->setInfoReferentiel($this->referentiel);
$eflore['mapUrl'] = $this->cartes->getUrlMapSvg();
$eflore['mapTelechargementUrls'] = array('png' => $this->cartes->getUrlTelechargementMapPng(),
'html' => $this->cartes->getUrlTelechargementMapHtml());
$eflore['legende'] = $this->cartes->getLegende();
$this->donnees['moissonnage'] = $eflore;
}
 
private function getMoissonnageExport() {
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
if (! $projetMoissonnage) return;
$this->cartes->setProjet($projetMoissonnage);
$this->cartes->setLargeur('min');
$this->cartes->setInfoNom($this->nomCourant->getNomRetenu());
$eflore['min'] = $this->cartes->getUrlEflorePng();
$eflore['legende'] = $this->cartes->getLegende();
$this->donnees['moissonnage'] = $eflore;
}
 
private function getFloreProbable() {
$projetFloreProbable = Config::get($this->referentiel.'.baseFloreProbable');
if (! $projetFloreProbable) return;
$this->cartes->setProjet($projetFloreProbable);
$this->meta->setProjet($projetFloreProbable);
$this->cartes->setId($this->referentiel.'.nt:'.$this->nomCourant->getNt());
// TODO: url téléchargement de la carte lorsqu'on sera sur que c'est possible
// dans ['carte']['telechargement'] par exemple
$this->donnees['flore_probable'] = array('carte' => array(), 'meta' => array());
$this->meta->setProjet($projetFloreProbable);
$meta = $this->meta->getMetaDonnees();
$this->donnees['flore_probable']['meta'] = $meta[0];
$this->donnees['flore_probable']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projetFloreProbable);
$this->donnees['flore_probable']['carte']['url'] = $this->cartes->getUrlFloreProbablePng();
}
 
public function getBloc() {
$donnees['chorodep'] = $this->getChorodepMiniature();
$donnees['eflore'] = $this->getMoissonnageMiniature();
 
// TODO: moche, comment gérer le fait que l'onglet "synthèse", en "bdtxa", doive
// afficher la carte chorologie, et non la carte chorodep.
// workaround: écrasement de l'URL dans ['répartition']['chorodep']:
if ($this->referentiel == 'bdtxa') {
$nt = $this->nomCourant->getNt();
$idCarte = "{$this->referentiel}.nt:$nt";
$urlCarte = Config::get("{$this->referentiel}.baseRepartition");
 
$donnees['chorodep'] = Cartes::getCarteUrlPng($urlCarte, $idCarte, '190x178');
}
 
return $donnees;
}
 
private function getChorodepMiniature() {
$projetRepartition = Config::get("{$this->referentiel}.baseRepartition");
$url = null;
if ($projetRepartition != '') {
$this->cartes->setProjet($projetRepartition);
$this->cartes->setProjet('chorodep');
$this->cartes->setLargeur('190x178');
 
$nt = $this->nomCourant->getNt();
$this->cartes->setId("{$this->referentiel}.nt:$nt");
 
$url = $this->cartes->getUrlPng();
}
return $url;
}
 
private function getMoissonnageMiniature() {
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
$url = null;
if ($projetMoissonnage != '') {
$this->cartes->setProjet('moissonnage');
$this->cartes->setLargeur('190');
$this->cartes->setInfoReferentiel($this->referentiel);
$this->cartes->setInfoNom($this->nomCourant->getNt());
$url = $this->cartes->getUrlMapPng();
}
return $url;
}
}
?>
Property changes:
Added: svnkit:entry:sha1-checksum
+14e91034608691b894071e3f1724d66014a9373f
\ No newline at end of property
/branches/v5.10-vilmorin/modules/fiche/formateurs/Synthese.php
New file
0,0 → 1,66
<?php
// declare(encoding='UTF-8');
/**
* Classe Onglet Synthese.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Grégoire DUCHÉ <gregoire@tela-botanica.org>
* @author Raphaël Droz <raphael@tela-botanica.org>
* @copyright 2011, 2013 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
* @used by modules/fiche/Fiche.php::obtenirDonnees()
*/
class Synthese /* aControleur inutilisé à ce jour */ {
 
private $conteneur = null;
private $nomCourant = null;
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
}
 
public function obtenirDonnees() {
$donnees = array();
$num_nom = $this->nomCourant->getNns();
 
$nom = $this->conteneur->getApiNoms()->getNom($num_nom);
$blocs = array(
'illustrations', // grep-friendly: new Illustrations()
'repartition', // grep-friendly: new Repartition()
'nomenclature', // grep-friendly: new Nomenclature()
'description', // grep-friendly: new Description()
'ethnobotanique', // grep-friendly: new Ethnobotanique()
'bibliographie', // grep-friendly: new Bibliographie()
'statut', // grep-friendly: new Statut()
'ecologie' // grep-friendly: new Ecologie()
);
$cache = array();
$nt = $this->conteneur->getNomCourant()->getNomRetenu()->get('num_taxonomique');
$donnees['infos'] = array('referentiel' => $this->conteneur->getParametre('referentiel'), 'num_tax' => $nt, 'nom_sci' => $nom['nom_complet']);
$referentiel = $this->conteneur->getParametre('referentiel');
foreach ($blocs as $bloc) {
// TODO: unserialize() pourrait aussi légitimement retourner FALSE
$cache_bloc = unserialize($this->conteneur->getCache()->charger($bloc.'/bloc/'.$referentiel.'_'.$num_nom));
if($cache_bloc) {
$donnees[$bloc] = $cache_bloc;
} else {
$nom_classe = ucfirst($bloc);
$classe = new $nom_classe($this->conteneur);
$donnees[$bloc] = $classe->getBloc();
if($donnees[$bloc]) {
$this->conteneur->getCache()->sauver(serialize($donnees[$bloc]),
$bloc.'/bloc/'.$referentiel.'_'.$num_nom);
}
}
}
return $donnees;
}
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Description.php
New file
0,0 → 1,266
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Description extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $textes = null;
private $meta = null;
private $wikini = null;
private $informations = null;
static $mois = array(
'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet',
'août', 'septembre', 'octobre', 'novembre', 'décembre');
private $CosteFormate;
private $CosteTexte;
 
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->textes = $this->conteneur->getApiTextes();
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->informations = $this->conteneur->getApiInformations();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
public function obtenirDonnees() {
$donnees = array();
$this->getWikipedia();
$this->getWikini();
$this->getDescriptionsDependantesReferentiel($this->referentiel);
if ($this->referentiel == 'bdtfx') {
$this->getCoste();
}
return $this->donnees;
}
 
public function obtenirDonneesExport() {
$donnees = array();
$this->getWikini();
$this->getDescriptionsDependantesReferentiel($this->referentiel);
return $this->donnees;
}
 
private function getDescriptionsDependantesReferentiel($ref) {
if(trim(Config::get($ref . '.baseDescription')) != "") {
// eg: [bdtfx]baseDescription = coste,baseflor dans bdtfx.ini
$bases_descriptions = explode(',', Config::get($ref . '.baseDescription'));
foreach ($bases_descriptions as $base) {
$fonction = 'get'.ucfirst($base);
$this->$fonction();
}
}
}
 
public function getBloc() {
// prend la première description disponible dans l'ordre indiqué dans le fichier
// de config, et prend la description wiki sinon
if(Config::get($this->referentiel.'.baseDescription') != "") {
$bases_descriptions = explode(',', Config::get($this->referentiel.'.baseDescription'));
foreach ($bases_descriptions as $base) {
$fonction = 'get'.ucfirst($base);
$this->$fonction();
if(empty($this->donnees[$base]['description'])) {
unset($this->donnees[$base]);
continue;
}
 
$this->donnees['type'] = $base;
$this->donnees['titre'] = "Description de ".ucfirst($base);
$this->donnees['description'] = $this->donnees[$base]['description'];
unset($this->donnees[$base]);
return $this->donnees;
}
}
 
if (empty($this->donnees['description'])) {
$this->getWikini();
$this->donnees['description'] = $this->donnees['wikini']['description'];
$this->donnees['titre'] = "Description collaborative";
$this->donnees['type'] = 'wikini';
unset($this->donnees['wikini']);
}
 
return $this->donnees;
}
 
private function getBaseflor() {
$baseflor = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations ->setNum_nom($this->nomCourant->getNnr());
$informations = $this->informations->getInformationsDescription();
if ($informations){
$baseflor['chorologie'] = isset($informations['chorologie']) ? $informations['chorologie'] : '';
$baseflor['inflorescence'] = isset($informations['inflorescence']) ? $informations['inflorescence'] : '';
$baseflor['sexualite'] = isset($informations['sexualite']) ? $informations['sexualite'] : '';
$baseflor['ordre_maturation'] = isset($informations['ordre_maturation']) ? $informations['ordre_maturation'] : '';
$baseflor['pollinisation'] = isset($informations['pollinisation']) ? $informations['pollinisation'] : '';
$baseflor['dissemination'] = isset($informations['dissemination']) ? $informations['dissemination'] : '';
$baseflor['fruit'] = isset($informations['fruit']) ? $informations['fruit'] : '';
$baseflor['couleur_fleur'] = isset($informations['couleur_fleur']) ? $informations['couleur_fleur'] : '';
$baseflor['macule'] = isset($informations['macule']) ? $informations['macule'] : '';
$baseflor['floraison'] = isset($informations['floraison']) ? self::changerFloraisonEnChaine($informations['floraison']) : '';
//récupérer dans ontologies
$baseflor['type_bio'] = isset($informations['type_bio.libelle']) ? $informations['type_bio.libelle'] : '';
$baseflor['form_vegetale'] = isset($informations['form_vegetale']) ? $informations['form_vegetale'] : '';
$baseflor['description']=$baseflor;
$this->meta->setProjet('baseflor');
$meta = $this->meta->getMetaDonnees();
$baseflor['meta'] = $meta[0];
$baseflor['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseflor');
}
$this->donnees['baseflor'] = $baseflor;
}
 
static function changerFloraisonEnChaine($floraison){
$chaine = "";
if ($floraison != ""){
$mois_fleurs=preg_match('/-/',$floraison) ? preg_split('/-/',$floraison) : $floraison;
if (is_array($mois_fleurs)){
$chaine = "de ".self::$mois[(int)$mois_fleurs[0]]." à ".self::$mois[(int)$mois_fleurs[1]];
 
}else { $chaine = "en ".self::$mois[(int)$mois_fleurs];
}
}
return $chaine;
}
 
public function getUrlWikipedia() {
if(!isset($this->donnees['wp'])) {
$this->getWikipedia();
}
return $this->donnees['wp'];
}
 
public function getWikipedia() {
$wp = array();
$this->textes->setProjet('wikipedia');
$this->textes->setId(self::getIdWp($this->nomCourant->getNomRetenu()->get('nom_sci')));
$wp['titre'] = $donnees['titre'] = "Description de wikipedia";
$wp['lien'] = $this->textes->getPageUrl();
$wp['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('wikipedia');
$this->donnees['wp'] = $wp;
}
 
private static function getIdWp($nomSci) {
return urlencode(str_replace(' ', '_', $nomSci));
}
 
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['description'] = $this->wikini->getTexteFormate($page_wiki, 'description');
$this->donnees['wikini'] = $wikini;
}
 
public function getLienWikini() {
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
return $this->wikini->getUrlPageWiki($referentiel, $num_tax);
}
 
private function getCoste() {
$coste = array();
$this->textes->setProjet('coste');
$this->textes->setId('bdtfx.nt:'.$this->nomCourant->getNt());
$texte = $this->textes->getTexte();
$texte = array_pop($texte['resultats']);
if ($texte) {
$coste['titre'] = $texte['titre'];
$coste['description'] = self::mettreEnFormeCoste($texte['texte']);
}
$this->meta->setProjet('coste');
$meta = $this->meta->getMetaDonnees();
$coste['meta'] = $meta[0];
$coste['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('coste');
$this->donnees['coste'] = $coste;
}
 
static function mettreEnFormeCoste($texte) {
$txt_fmt = array();
//decouper elements remarquables avant le texte
self::separerNomScientifique_a_NomCommun($texte, $txt_fmt);
$texte = preg_replace('/\//','',$texte);
//decouper elements remarquables après le texte
self::separerEcologie_a_Usages($texte, $txt_fmt);
//le morceau qui reste est le gros de la description
$texte = str_replace(';','</br> -','- '.$texte);
$texte = str_replace('–','',$texte);
$txt_fmt['texte'] = $texte;
return $txt_fmt;
}
 
 
static function separerNomScientifique_a_NomCommun(&$txt, &$txt_fmt){
if ( preg_match('/\*\*(.+)\*\*([^–]*)–/', $txt, $retour)){
/* !! attention on enlève un tiret cadratin – pas un trait d'union - !! */
$a_enlever = array('/–/','/\./' );
$txt_fmt['nom_scientifique'] = preg_replace($a_enlever,'',$retour[1]);
if(preg_match('/\((.+)\)/',$retour[2],$synonymes)){
$txt_fmt['synonymes'] = $synonymes[1];
} else {
$txt_fmt['nom_scientifique'] .= $retour[2];
}
$txt = str_replace($retour[0],'',$txt);
}
/* !! attention il y a un espace avant les // du début !! */
if ( preg_match('/^ \/\/([^\/\/]+)\/\//', $txt, $retour)){
$a_enlever = array('/–/','/\./' );
$txt_fmt['nom_commun'] = preg_replace($a_enlever,'',$retour[1]);
$txt = str_replace($retour[0],'',$txt);
}
}
 
 
static function separerEcologie_a_Usages(&$txt, &$txt_fmt) {
if (preg_match('/\.\s*([A-ZÉÀÈ].+)$/',$txt, $retour)) {
$txt_fmt['ecologie'] = $retour[1];
$txt = str_replace($retour[0],'.',$txt);
if (isset($txt_fmt['ecologie']) && preg_match('/–(.+)/', $txt_fmt['ecologie'] , $retour)){
$txt_fmt['repartition'] = $retour[1];
$txt_fmt['ecologie'] = str_replace($retour[0],'',$txt_fmt['ecologie']);
}
if (isset($txt_fmt['repartition']) && preg_match('/=(.+)$/', $txt_fmt['repartition'], $retour)){
$txt_fmt['floraison'] = $retour[1];
$txt_fmt['repartition'] = str_replace($retour[0],'',$txt_fmt['repartition']);
}
if (isset($txt_fmt['floraison']) && preg_match('/–(.+)$|\n(.+)$/',$txt_fmt['floraison'], $retour)){
$txt_fmt['usages'] = isset($retour[1]) ? $retour[1] : $retour[2];
$txt_fmt['floraison'] = str_replace($retour[0],'.',$txt_fmt['floraison']);
}
if (isset($txt_fmt['floraison']) && preg_match('/([Ff]l\.) (.+)/',$txt_fmt['floraison'], $retour)){
$txt_fmt['floraison'] = $retour[2];
$txt_fmt['floraison'] = str_replace($retour[1],'',$txt_fmt['floraison']);
}
if (isset($txt_fmt['floraison']) && preg_match('/([Ff]r\.) (.+)/',$txt_fmt['floraison'], $retour)){
$txt_fmt['fructification'] = $retour[2];
$txt_fmt['floraison'] = str_replace($retour[0],'',$txt_fmt['floraison']);
$txt_fmt['floraison'] = str_replace(',','',$txt_fmt['floraison']);
$txt_fmt['fructification'] = str_replace($retour[1],'',$txt_fmt['fructification']);
$txt_fmt['fructification'] = str_replace('.','',$txt_fmt['fructification']);
}
}
}
}
?>
Property changes:
Added: svn:mergeinfo
Merged /branches/v5.4-decaisne/modules/fiche/formateurs/Description.php:r1226-1227
Merged /branches/v5.2-lasegue/modules/fiche/formateurs/Description.php:r1183
Merged /branches/v5.7-duchartre/modules/fiche/formateurs/Description.php:r1286,1294,1296,1325,1333-1334
Merged /branches/v5.3-cordier/modules/fiche/formateurs/Description.php:r1206
Merged /branches/v5.8-seynes/modules/fiche/formateurs/Description.php:r1344-1345,1347,1351,1356
/branches/v5.10-vilmorin/modules/fiche/formateurs/Statut.php
New file
0,0 → 1,104
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Statut extends aControleur {
private $conteneur = null;
private $nomCourant = null;
private $wikini = null;
private $statuts = null;
private $meta;
private $referentiel = null;
private $appUrls;
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->wikini = $this->conteneur->getApiWikini();
$this->statuts = $this->conteneur->getApiStatuts();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->appUrls = $this->conteneur->getAppUrls();
}
public function getBloc() {
$donnees = array();
$donnees['statuts'] = $this->getStatutsZoneGeo();
if(empty($donnees['statuts'])) {
$donnees['wikini'] = $this->getWikini();
}
$donnees['liste_rouge'] = $this->getCategorieListeRouge();
return $donnees;
}
public function obtenirDonnees() {
$donnees = array();
$donnees['wikini'] = $this->getWikini();
$donnees['statuts'] = $this->getStatuts();
$donnees['liste_rouge'] = $this->getCategorieListeRouge();
return $donnees;
}
private function getStatuts() {
$statuts = "";
$projet = Config::get($this->referentiel.'.baseStatuts');
if ($projet != "") {
$nnr = $this->nomCourant->getNnr();
$statuts = $this->statuts->getStatuts($projet, $nnr);
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$statuts['meta'] = $meta[0];
$statuts['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
return $statuts;
}
private function getStatutsZoneGeo() {
$statuts = "";
$projet = Config::get($this->referentiel.'.baseStatuts');
if ($projet != "") {
$nnr = $this->nomCourant->getNnr();
$statuts = $this->statuts->getStatutsZoneGeo($projet, $nnr);
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$statuts['meta'] = $meta[0];
$statuts['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
return $statuts;
}
private function getCategorieListeRouge() {
$liste_rouge = "";
$projet = Config::get($this->referentiel.'.baseListeRouge');
if ($projet != "") {
$nnr = $this->nomCourant->getNnr();
$liste_rouge = $this->statuts->getCategorieListeRouge($projet, $nnr);
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$liste_rouge['meta'] = $meta[0];
$liste_rouge['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
return $liste_rouge;
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['statuts_de_protection'] = $this->wikini->getTexteFormate($page_wiki, 'statuts de protection');
return $wikini;
}
}
?>
/branches/v5.10-vilmorin/modules/fiche/formateurs/Ethnobotanique.php
New file
0,0 → 1,160
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Ethnobotanique extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $nomsVernaculaires = null;
private $wikini;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
public function obtenirDonnees() {
$this->getNomsVernaculaires('.referentielVerna');
$this->getNomsVernaculaires('.referentielVernaGrec');
$this->getChorologie();
$this->donnees['wikini'] = $this->getWikini();
return $this->donnees;
}
 
private function getNomsVernaculaires($projet) {
$projet = Config::get($this->referentiel.$projet);
if ($projet != "") {
$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$nomsVerna = $this->nomsVernaculaires->getRechercheComplete($projet, $nt);
$this->donnees[$projet]['noms'] = $nomsVerna['resultat'];
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$this->donnees[$projet]['meta'] = $meta[0];
$this->donnees[$projet]['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
}
public function getBloc() {
$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$projet = Config::get($this->referentiel.'.referentielVerna');
if ($projet != "") {
$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($projet, $nt);
$this->donnees['nomsVerna'] = (isset($nomsVerna['resultat']) && is_array($nomsVerna['resultat'])) ? array_slice($nomsVerna['resultat'], 0, 3) : array();
$this->donnees['autresNomsVerna'] = count($nomsVerna['resultat']) - 3;
}
$this->donnees['wikini'] = $this->getWikini();
return $this->donnees;
}
private function getChorologie() {
$infos_choro = $this->nomCourant->getNomRetenu()->getInfos();
$this->donnees['chorologie'] = $this->traiterTableauChorologie($infos_choro);
$this->meta->setProjet($this->referentiel);
$meta = $this->meta->getMetaDonnees();
$this->donnees['chorologie']['meta'] = $meta[0];
$this->donnees['chorologie']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel);
}
private function traiterTableauChorologie($infos_choro) {
$donnees_choro = array();
$colonnes = array();
foreach ($infos_choro as $param => $valeur) {
if(strncmp($param, 'presence', 8) == 0) {
$lieu = self::obtenirLieuPourCodePresence($this->referentiel, $param);
if($lieu) {
$donnees_choro['Présence'][$lieu] = $valeur;
$colonnes[] = $lieu;
}
} else {
$donnees_choro = self::traiterChampsStatuts($this->referentiel, $donnees_choro, $param, $valeur);
}
}
 
ksort($donnees_choro);
$donnees = array('colonnes' => array_unique($colonnes), 'donnees' => $donnees_choro);
return $donnees;
}
static function traiterChampsStatuts($ref, $tableau_donnees, $code, $valeur) {
if ($code == 'statut_origine.libelle') {
$tableau_donnees['Statut d\'origine'][self::obtenirIntituleLieuPourReferentiel($ref)] = $valeur;
} elseif ($code == 'statut_introduction.libelle') {
$tableau_donnees['Statut d\'introduction'][self::obtenirIntituleLieuPourReferentiel($ref)] = $valeur;
} elseif ($code == 'statut_culture.libelle') {
$tableau_donnees['Statut de culture'][self::obtenirIntituleLieuPourReferentiel($ref)] = $valeur;
}
return $tableau_donnees;
}
 
/* eg:
* - presence.libelle
* - presence_Guadeloupe.code */
static function obtenirLieuPourCodePresence($ref, $str) {
// ignore les paramètres JSON de présence qui ne contiennent pas le libellé
// (= présence en toutes lettres)
if(substr($str, -7) != 'libelle') return NULL;
@list($prefixe, $lieu) = explode('_', $str, 2);
 
if($str == 'presence.libelle') {
return self::obtenirIntituleLieuPourReferentiel($ref);
}
 
list($lieu, $param) = explode('.', $lieu, 2);
if (strtolower($lieu) == 'ga') {
return 'France (Hors Corse)';
} elseif (strtolower($lieu) == 'co') {
return 'France (Corse)';
} elseif($lieu) {
return $lieu;
}
return NULL;
}
private static function obtenirIntituleLieuPourReferentiel($ref) {
$lieu = '';
switch($ref) {
case 'bdtfx':
$lieu = 'France';
break;
case 'bdtxa':
$lieu = 'Antilles';
case 'isfan':
$lieu = 'Afrique du Nord';
break;
}
return $lieu;
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['noms_communs'] = $this->wikini->getTexteFormate($page_wiki, 'noms communs');
$wikini['culture_et_arts'] = $this->wikini->getTexteFormate($page_wiki, 'culture et arts');
$wikini['usage'] = $this->wikini->getTexteFormate($page_wiki, 'usage');
return $wikini;
}
}
?>
/branches/v5.10-vilmorin/modules/popup_contact/presentations/styles/identification.css
New file
0,0 → 1,6
@CHARSET "UTF-8";
/*----------------------------------------------------------------------------------------------------------*/
/* Balises */
input[type="checkbox"]{
margin:2px 5px;
}
/branches/v5.10-vilmorin/modules/popup_contact/presentations/scripts/identification.js
New file
0,0 → 1,96
$(document).ready(function() {
$("#connexion").on('click', connecter);
});
 
function connecter() {
var erreurMsg = "";
var urlWs = URL_WS_UTILISATEUR;
var courriel = $("#courriel").val();
var mdp = $("#mdp").val();
var persistance = $('#persistance').is(':checked');
var donnees = {'methode':'connexion', 'courriel':courriel, 'mdp':mdp, 'persistance':persistance};
$.ajax({
type : "PUT",
cache : false,
url : urlWs,
data : donnees,
beforeSend : nettoyerMsg,
success : function(data) {
if (data.identifie) {
rechargerPage();
} else {
afficherErreur(data.message);
}
},
error : function(jqXHR, textStatus, errorThrown) {
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
erreurMsg += extraireInfosReponse(jqXHR);
afficherErreur('Une erreur est survenue lors de la connexion.');
if (DEBUG) {
console.log('Erreur : '+erreurMsg);
}
},
complete : function(jqXHR, textStatus) {
var debugMsg = extraireEnteteDebug(jqXHR);
if (DEBUG) {
console.log('Débogage : '+debugMsg);
}
}
});
return false;
}
 
function nettoyerMsg() {
$(".msg").remove();
}
 
function rechargerPage() {
window.location.reload();
}
 
function extraireInfosReponse(jqXHR) {
var erreurMsg = '';
try {
reponse = jQuery.parseJSON(jqXHR.responseText);
if (reponse != null) {
$.each(reponse, function (cle, valeur) {
erreurMsg += valeur + "\n";
});
}
} catch(e) {
erreurMsg += "L'erreur n'était pas en JSON.";
}
return erreurMsg;
}
 
function extraireEnteteDebug(jqXHR) {
var debugMsg = '';
if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
if (debugInfos != null) {
$.each(debugInfos, function (cle, valeur) {
debugMsg += valeur + "\n";
});
}
}
return debugMsg;
}
 
function afficherErreur(msg) {
afficherTxt(msg, 'attention');
}
 
function afficherInfo(msg) {
afficherTxt(msg, 'information');
}
 
function afficherMsg(msg) {
afficherTxt(msg);
}
 
function afficherTxt(msg, type) {
type = type ? ' '+type : '';
nettoyerMsg();
$("#zone-dialogue").append('<pre class="msg'+type+'">'+msg+'</pre>');
}
/branches/v5.10-vilmorin/modules/popup_contact/presentations/scripts/contact.js
New file
0,0 → 1,121
$(document).ready(function() {
$("#annuler").on('click', fermerFenetre);
$("#effacer").on('click', effacerFomulaire);
$("#envoyer").on('click', envoyerCourriel);
});
 
function fermerFenetre() {
window.open('', '_self', '');// BUG : Chrome
window.close();
}
 
function effacerFomulaire() {
$("#sujet").attr('value', $("#sujet_defaut").val());
$("#message").text($("#message_defaut").val());
}
 
function envoyerCourriel(event) {
if (verifierFormContact()) {
if($("#type_envoi").val() == "non-inscrit") {
var destinataireId = $("#destinataire_id").val();
var urlMessage = URL_WS_MESSAGE_CEL+"/"+destinataireId;
} else {
var destinataireId = $("#destinataire_id").val();
var urlMessage = URL_WS_UTILISATEUR+"/"+destinataireId+"/message";
}
var erreurMsg = "";
var sujet = $("#sujet").val()+" - Carnet en ligne - Tela Botanica";
var message = $("#message").val()+"\n--\n"+
"Ce message vous est envoyé par l'intermédiaire de l'application eFlore du réseau Tela Botanica.\n"+
"http://www.tela-botanica.org/eflore";
var donnees = new Array();
donnees[0] = {'name':'sujet','value':sujet};
donnees[1] = {'name':'message','value':message};
donnees[2] = {'name':'utilisateur_courriel','value':$("#utilisateur_courriel").val()};
donnees[3] = {'name':'copies','value':$("#copies").val()};
donnees[4] = {'name':'destinataire_id','value':$("#destinataire_id").val()};
 
$.ajax({
type : "POST",
cache : false,
url : urlMessage,
data : donnees,
beforeSend : function() {
nettoyerMsg();
},
success : function(data) {
afficherInfo(data.message);
},
error : function(jqXHR, textStatus, errorThrown) {
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
reponse = jQuery.parseJSON(jqXHR.responseText);
if (reponse != null) {
$.each(reponse, function (cle, valeur) {
erreurMsg += valeur + "\n";
});
}
},
complete : function(jqXHR, textStatus) {
var debugMsg = '';
if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
if (debugInfos != null) {
$.each(debugInfos, function (cle, valeur) {
debugMsg += valeur + "\n";
});
}
}
if (erreurMsg != '') {
afficherMsg('Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
'Vous pouvez signaler le disfonctionnement à <a href="'+
'mailto:cel@tela-botanica.org'+'?'+
'subject=Disfonctionnement du formulaire de contact'+
"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
'">eflore_remarques@tela-botanica.org</a>.');
}
if (DEBUG) {
console.log('Débogage : '+debugMsg);
}
}
});
} else {
afficherInfo('Veuillez saisir un message');
}
event.preventDefault();
return false;
}
 
function afficherInfo(msg) {
afficherTxt(msg, 'information');
}
 
function afficherMsg(msg) {
afficherTxt(msg);
}
 
function afficherTxt(msg, type) {
type = type ? ' '+type : '';
nettoyerMsg();
$("#zone-dialogue").append('<pre class="msg'+type+'">'+msg+'</pre>');
}
 
function nettoyerMsg() {
$(".msg").remove();
}
 
function verifierFormContact() {
var valide = true;
var msg = trim($("#message").val());
var msgDefaut = trim($("#message_defaut").val());
if (msg == msgDefaut) {
valide = false;
}
return valide;
}
 
function trim(chaine) {
return chaine.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
/branches/v5.10-vilmorin/modules/popup_contact/squelettes/form_contact.tpl.html
New file
0,0 → 1,28
<div class="importance1">
<div id="zone-dialogue"></div>
<form id="form-contact" method="post" action="<?= $urlPopUp ?>">
<div class="champ">
<label for="sujet">Sujet</label>
<input id="sujet" name="sujet" value="<?= $sujet ?>"/>
</div>
<div class="champ">
<label for="message">Message</label>
<textarea id="message" name="message" rows="10"><?= $message ?></textarea>
</div>
<div>
<input id="sujet_defaut" name="sujet_defaut" type="hidden" value="<?= $sujet ?>" />
<input id="message_defaut" name="message_defaut" type="hidden" value="<?= $message ?>" />
<input id="destinataire_id" name="destinataire_id" type="hidden" value="<?= $idDestinataire ?>" />
<input id="copies" name="copies" type="hidden" value="eflore_remarques@tela-botanica.org" />
<input id="utilisateur_courriel" name="utilisateur_courriel" type="hidden" value="<?= $utilisateurCourriel ?>"/>
<input id="type_envoi" name="type_envoi" type="hidden" value="<?= $typeEnvoi ?>"/>
<button id="annuler" class="btn" type="submit">Annuler</button>
<button id="effacer" class="btn" type="reset">Effacer</button>
<button id="envoyer" class="droite btn" type="submit">Envoyer</button>
</div>
</form>
</div>
/branches/v5.10-vilmorin/modules/popup_contact/squelettes/contact_entete.tpl.html
New file
0,0 → 1,14
<!-- CSS -->
<? if ($formType != 'contact') : ?>
<link href="modules/popup_contact/presentations/styles/<?= $formType ?>.css" rel="stylesheet" type="text/css"/>
<? endif; ?>
 
<!-- JavaScript -->
<script type="text/javascript">
//<![CDATA[
var DEBUG = false;
var URL_WS_UTILISATEUR = "<?= $urlWsUtilisateur ?>";
var URL_WS_MESSAGE_CEL = "<?= $urlWsMessageCel ?>";
//]]>
</script>
<script type="text/Javascript" src="modules/popup_contact/presentations/scripts/<?= $formType ?>.js"></script>
/branches/v5.10-vilmorin/modules/popup_contact/squelettes/form_identification.tpl.html
New file
0,0 → 1,22
<div class="importance1">
<div id="zone-dialogue">
<p class="msg attention">
Vous n'êtes pas identifié sur le site de Tela Botanica.<br />
Veuillez vous identifier afin d'accéder au formulaire de contact.
</p>
</div>
<form id="form-connexion" action="<?= $urlPopUp ?>" method="post">
<h3>Identifiez vous</h3>
<label for="courriel">Courriel : </label>
<input type="text" id="courriel" name="courriel" maxlength="80" value="" />
<label for="mdp">Mot de passe : </label>
<input type="password" id="mdp" name="mdp" maxlength="80" value="" />
<p>
<input type="submit" id="connexion" class="gauche btn" name="connexion" value="Connexion" />
<input id="persistance" class="gauche" name="persistance" type="checkbox" value="o" />
<label for="persistance">Rester connecté</label>
</p>
</form>
</div>
/branches/v5.10-vilmorin/modules/popup_contact/PopupContact.php
New file
0,0 → 1,108
<?php
// declare(encoding='UTF-8');
/**
* Affiche un formulaire de contact d'utilisateur.
*
* @category php 5.2
* @package eFlore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @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 $Id$
*/
 
class PopupContact extends aControleur {
 
private $conteneur = null;
private $imagesApi = null;
private $utilisateur = null;
private $appUrls = null;
private $id_destinataire = '';
private $id_image = '';
private $urlWsCelTpl = '';
private $urlWsAnnuaireUtilisateurTpl = '';
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->imagesApi = $this->conteneur->getApiImages();
$this->utilisateur = $this->conteneur->getUtilisateur();
$this->appUrls = $this->conteneur->getAppUrls();
$this->urlWsAnnuaireUtilisateurTpl = $this->conteneur->getParametre('baseUrlServicesAnnuaireTpl');
$this->urlWsCelTpl = $this->conteneur->getParametre('baseUrlServicesCelTpl');
}
 
private function capturerParametres() {
if (isset($_GET['id_destinataire'])) {
$this->id_destinataire = $_GET['id_destinataire'];
}
if (isset($_GET['id_img'])) {
$this->id_image = $_GET['id_img'];
}
}
 
public function executerActionParDefaut() {
$this->executerForm();
}
 
public function executerForm() {
if ($this->utilisateur->etreIdentifie()) {
$this->afficherFormContact();
} else {
$this->afficherFormIdentification();
}
}
 
private function afficherFormContact() {
$this->setSortie(self::META_TITRE, 'Contactez un membre du réseau');
$entete = array();
$entete['formType'] = 'contact';
$entete['urlWsMessageCel'] = sprintf($this->urlWsCelTpl, 'celMessage/image');
$entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur');
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
 
$infos = array();
// cas d'une obs saisie par une personne non inscrite
// le message doit être envoyé au cel qui fournira le courriel de l'auteur
if(trim($this->id_destinataire) == "") {
$infos['idDestinataire'] = $this->id_image;
$infos['typeEnvoi'] = 'non-inscrit';
} else {
$infos['idDestinataire'] = $this->id_destinataire;
$infos['typeEnvoi'] = 'inscrit';
}
$infos['idImage'] = $this->id_image;
$infos['utilisateurCourriel'] = $this->utilisateur->getCourriel();
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
 
$this->imagesApi->setProjet('cel');
// prêt à passer à API_DEL
// TODO: voir pourquoi la forme service:del:images/#id_image ne fonctionne pas
// et s'il est vraiment utile d'appeler DEL ici
$imageInfos = $this->imagesApi->setApi(Eflore::API_EFLORE)->getInfosImageParIdImage($this->id_image);
$idObs = $imageInfos['observation.id'];
$nomSci = $imageInfos['determination.nom_sci'];
$date = $imageInfos['date'];
$lieu = $imageInfos['station.libelle'];
 
$infos['sujet'] = "Observation #$idObs de $nomSci";
$infos['message'] = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de $nomSci du $date au lieu $lieu";
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_contact', $infos));
}
 
private function afficherFormIdentification() {
$this->setSortie(self::META_TITRE, 'Identification');
$entete = array();
$entete['formType'] = 'identification';
$entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur');
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
 
$infos = array();
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_identification', $infos));
}
}
?>
/branches/v5.10-vilmorin/modules/popup_illustrations/PopupIllustrations.php
New file
0,0 → 1,67
<?php
// declare(encoding='UTF-8');
/**
* Affiche un pop-up avec les infos d'une illustration.
*
* @category php 5.2
* @package eFlore-consultation
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @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 $Id$
*/
 
class PopupIllustrations extends aControleur {
private $conteneur = null;
private $id_image = '';
private $images = null;
private $appUrls = null;
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
private function capturerParametres() {
if (isset($_GET['id'])) {
$this->id_image = $_GET['id'];
}
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
$infos = array();
$this->images->setProjet('cel');
$img = $this->images->setApi(Eflore::API_EFLORE)->getInfosImageParIdImage($this->id_image); // prêt à passer à API_DEL
$infos['id'] = $this->id_image;
$img['date'] = $this->formaterDateImg($img['date']);
$infos['image'] = $img;
$infos['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($img['auteur.id'], $this->id_image);
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('popup_fiche_illustrations', $infos));
}
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
return 'inconnue';
}
$time = strtotime($date);
if(!$time) {
/* TODO: php -r "echo strtotime('1891-00-00 00:00:00');"
si FALSE pour avant 1901: problème php
On retourne alors simplement l'année. */
$dateFmt = explode('-', $date);
return $dateFmt[0];
}
return strftime('%e %B %Y', strtotime($date));
}
}
?>
/branches/v5.10-vilmorin/modules/popup_illustrations/squelettes/popup_fiche_illustrations.tpl.html
New file
0,0 → 1,31
<div id="info-img">
<div class="img-cadre">
<img src="<?=$image['binaire.href']?>" alt="<?=$id?>" />
</div>
<div class="importance1">
<dl>
<dt>Photo n°</dt><dd><?=$id?></dd>
<dt>Titre</dt><dd><?= $image['determination.nom_sci'] ?><br /></dd>
<dt>Description</dt><dd><?= $image['determination.libelle'] ?><br /></dd>
<dt>Localisation</dt><dd><?=$image['station.commune'] ?><br /></dd>
<dt>Auteur</dt>
<dd>
<? if ($image['auteur.id']) : ?>
<a href="http://tela-botanica.org/profil:<?= $image['auteur.id'] ?>"
title="Voir le profil de cet utilisateur (nécessite d'être identifié)">
<?= $image['auteur.libelle'] ?>
</a>
<a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)"
class="mailto" href="<?= $urlContact ?>">
(Contacter ...)
</a>
<? else : ?>
<?= $image['auteur.libelle'] ?>
- (profil indisponible)
<? endif ?>
</dd>
<dt>Date d'observation</dt><dd><?= $image['date'] ?><br /></dd>
<dt>Licence</dt><dd><a class="lien-externe" href="http://www.tela-botanica.org/page:licence">CC-BY-SA</a></dd>
</dl>
</div>
</div>
/branches/v5.10-vilmorin/modules/fiche_metadonnees/FicheMetadonnees.php
New file
0,0 → 1,125
<?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) {
// tentative de retrouver une date de mise à jour
$dateCreationOuMaj = null;
if (! empty($meta['date_creation'])) {
$dateCreationOuMaj = strftime("%d/%m/%Y", strtotime($meta['date_creation']));
}
// retour
return array('auteurs' => $this->formaterAuteurs($meta),
'url' => $this->formaterUrl($meta),
'description' => $meta['description'],
'citation' => $meta['citation'],
'titre' => $meta['titre'],
'date' => $dateCreationOuMaj
);
}
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
/branches/v5.10-vilmorin/modules/fiche_metadonnees/squelettes/metadonnees.tpl.html
New file
0,0 → 1,87
<div>
<a id="lien_metadonnees_resume" href="#metadonnees_resume">Résumé</a>
<a id="lien_metadonnees" href="#metadonnees_resume">Détails</a>
<div id="metadonnees_resume">
<br />
<span class="intitule_metadonnee">Ces données proviennent de la base "</span><?= $metadonnees_resume['titre']; ?>" <br />
<span class="intitule_metadonnee">de</span> <?= $metadonnees_resume['auteurs']['noms'] ?><br /><br />
<span class="intitule_metadonnee">Description :</span>
<span class="metadonnees_resume_description"><?= $metadonnees_resume['description']; ?></span><br />
<span class="intitule_metadonnee">Citation : </span> "<?= $metadonnees_resume['citation'] ?>"<br /><br />
<?php if ($metadonnees_resume['date'] != null): ?>
<span class="intitule_metadonnee">Mise à jour le</span> <?= $metadonnees_resume['date']; ?>
<?php endif; ?>
<br/>
<?php if($metadonnees_resume['url'] != "") { ?>
<span class="intitule_metadonnee">Url du projet : </span><a href="<?= $metadonnees_resume['url']; ?>"><?= $metadonnees_resume['url']; ?></a><br />
<? } ?>
<?php if($metadonnees_resume['auteurs']['contacts'] != "") { ?>
<span class="intitule_metadonnee">Contact du ou des auteurs du projet : </span><?= $metadonnees_resume['auteurs']['contacts']; ?>
<? } ?>
</div>
 
<div id="metadonnees">
<ul>
<? foreach ($metadonnees as $donnee) : ?>
<? foreach ($donnee as $cle => $valeur) : ?>
<li>
<?php if(is_array($valeur)) { ?>
<? foreach ($valeur[0] as $sous_cle => $sous_valeur) : ?>
<ul class="sous-liste-metadonnees">
<li>
<?php if(trim($sous_cle) != '') { ?>
<span class="intitule_metadonnee"><?= $i18n[$sous_cle] ?> :</span>
<? } ?>
<span class="valeur_metadonnee"><?= $sous_valeur ?></span>
</li>
</ul>
<? endforeach; ?>
<?php } else { ?>
<?php if(trim($cle) != '') { ?>
<span class="intitule_metadonnee"><?= $i18n[$cle] ?> :</span>
<? } ?>
<span class="valeur_metadonnee"><?= $valeur ?></span>
<?php } ?>
</li>
<? endforeach; ?>
<? endforeach; ?>
</ul>
</div>
</div>
<script>
function redimensionnerFancyBox() {
$('#fancybox-inner').width("auto");
$('#fancybox-outer').width("auto");
$('#fancybox-content').width("auto");
}
 
function afficherResumeMetadonnees() {
$('#lien_metadonnees_resume').addClass("lien_metadonnees_affiche");
$('#lien_metadonnees').removeClass("lien_metadonnees_affiche");
$('#metadonnees_resume').show();
$('#metadonnees').hide();
}
function afficherMetadonneesCompletes() {
$('#lien_metadonnees').addClass("lien_metadonnees_affiche");
$('#lien_metadonnees_resume').removeClass("lien_metadonnees_affiche");
$('#metadonnees_resume').hide();
$('#metadonnees').show();
}
 
$(document).ready(function() {
afficherResumeMetadonnees();
$('#lien_metadonnees').click(function(event) {
afficherMetadonneesCompletes();
redimensionnerFancyBox();
event.preventDefault();
});
$('#lien_metadonnees_resume').click(function(event) {
afficherResumeMetadonnees();
redimensionnerFancyBox();
event.preventDefault();
});
});
</script>
/branches/v5.10-vilmorin/modules/liste/squelettes/liste.tpl.html
New file
0,0 → 1,53
<form id="form_liste_alphabet" name="form_liste_alphabet" method="get" action="<?=$urlFiltre;?>">
<input id="referentiel" name="referentiel" type="hidden" value="<?=$referentiel?>"/>
<input id="module" name="module" type="hidden" value="<?=$module?>"/>
<input id="action" name="action" type="hidden" value="<?=$action?>"/>
<fieldset>
<h2>Choisissez un rang</h2>
<p>Vous pouvez choisir d'afficher la liste des noms retenus des taxons pour les rangs suivant :</p>
<label for="rang">Rang :</label>
<select id="rang" name="rang">
<? foreach ($rangCodes as $codeRang) : ?>
<option
<?= ($codeRang == $rang) ? 'selected="selected"' : '' ?>
value="<?=$codeRang?>">
<?=$i18n['rang'.$codeRang]?>
</option>
<? endforeach; ?>
</select>
<button id="rang-submit" name="lettre" type="submit" value="<?=$lettre?>">OK</button>
</fieldset>
<fieldset>
<h2>Consultez les <?=strtolower($i18n['rang'.$rang])?>s par ordre alphabétique</h2>
<p>Plus la couleur de fond de la lettre est foncée plus, elle contient de taxons. Son survol avec la souris fait apparaitre le nombre de taxons présents.</p>
<p id="alphabet">
<? foreach ($initiales as $initiale => $nbre) : ?>
<button name="lettre" type="submit"
title="<?=$nbre?> taxons"
value="<?=isset($lettreCorrespondance[$initiale]) ? $lettreCorrespondance[$initiale] : $initiale?>"
<?=($initiale == $lettre) ? 'disabled="disabled"' : ''?>
style="background-color:rgb(<?=$couleurs[$nbre]['R']?>,<?=$couleurs[$nbre]['V']?>,<?=$couleurs[$nbre]['B']?>);color:black;">
<?=$initiale?>
</button>
<? endforeach; ?>
</p>
</fieldset>
</form>
 
<?php if ($taxons) : ?>
<h1>Taxons trouvés : <?=$nbreTaxons?></h1>
<ol>
<? foreach ($taxons as $id => $taxon) : ?>
<li>
<a href="#">
<?=$taxon['nom_sci']?>
</a>
</li>
<? endforeach; ?>
</ol>
<?php else : ?>
<p>Aucun taxon n'a été trouvé pour la lettre <?=$lettre?>.</p>
<?php endif; ?>
/branches/v5.10-vilmorin/modules/liste/Liste.php
New file
0,0 → 1,137
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Liste extends aControleur {
private $alphabet = null;
protected $rang = null;
protected $lettre = null;
private $rangsCorrespondance = array('F' => 'Famille', 'G' => 'Genre');
public function initialiser() {
$this->capturerParametres();
}
public function executerActionParDefaut() {
$this->executerListe();
}
public function executerListe() {
$this->initialiserAlphabet();
$this->initialiserLettre();
$couleurs = $this->creerColoration($this->alphabet);
$taxons = $this->getListeTaxons();
 
$donnees = array();
$donnees['i18n'] = I18n::get('Liste');
$donnees['lettre'] = $this->lettre;
$donnees['rang'] = $this->rang;
$donnees['rangCodes'] = array_keys($this->rangsCorrespondance);
$donnees['initiales'] = $this->alphabet;
$donnees['lettreCorrespondance'] = $this->chargerCorrespondanceSpeciale();
$donnees['couleurs'] = $couleurs;
$donnees['taxons'] = $taxons;
$donnees['nbreTaxons'] = $this->getEfloreTaxons()->getEnteteTotal();
$donnees['urlFiltre'] = $this->obtenirUrlBase();
$donnees['referentiel'] = Registre::get('parametres.referentiel');
$donnees['module'] = strtolower(get_class($this));
$donnees['action'] = 'liste';
$this->setSortie(self::RENDU_CORPS, $this->getVue('liste', $donnees));
}
private function capturerParametres() {
if (isset($_GET['rang'])) {
$this->rang = $_GET['rang'];
}
if (isset($_GET['lettre'])) {
$this->lettre = $_GET['lettre'];
}
}
private function initialiserAlphabet() {
if (!isset($this->alphabet)) {
$this->alphabet = $this->getStatsInitiales();
}
ksort($this->alphabet);
}
 
private function initialiserLettre() {
if (empty($this->lettre)) {
if (!is_null($this->alphabet)) {
$this->lettre = key($this->alphabet);
} else {
$m = "Aucune lettre n'a pu être initialiser car l'alphabet vaut null.";
trigger_error($m, E_USER_WARNING);
}
}
}
private function chargerCorrespondanceSpeciale() {
return array('chimere' => '+', 'hybride' => '×');
}
private function getStatsInitiales() {
$nomRang = $this->getNomCodeRang();
$stats = array();
if ($nomRang) {
$methode = 'getStatsInitiales'.$nomRang;
$stats = $this->getEfloreTaxons()->$methode();
}
return $stats;
}
private function getListeTaxons() {
$taxons = false;
if (isset($this->lettre)) {
$nomRang = $this->getNomCodeRang();
if ($nomRang) {
$methode = "getListe{$nomRang}ParInitiale";
$taxons = $this->getEfloreTaxons()->$methode($this->lettre);
}
}
return $taxons;
}
private function getNomCodeRang() {
$nom = false;
if (array_key_exists($this->rang, $this->rangsCorrespondance)) {
$nom = $this->rangsCorrespondance[$this->rang];
} else {
$m = "Ce code de rang '{$this->rang}' est inconnu. Codes disponibles : ".implode(', ', $this->rangsCorrespondance);
trigger_error($m, E_USER_WARNING);
}
return $nom;
}
/**
* Gestion de la coloration de l'alphabet en fonction du nombre de résultat
*/
private function creerColoration($alphabet) {
$debut = explode(',', Config::get('couleur_alphabet_debut')); // Tableau RGB de départ
$fin = explode(',', Config::get('couleur_alphabet_fin')); // Tableau RGB d'arrivée
$rvbAbreviations = array('R','V','B');
$nbreLettres = count($alphabet);
$valeurMax = max($alphabet);
$couleurs = array();
foreach ($alphabet as $lettre => $nbre) {
foreach ($rvbAbreviations as $index => $rvb) { //Pour faire le Rouge, Vert, Bleu
$couleurs[$nbre][$rvb] = round($debut[$index] - (($debut[$index]-$fin[$index]) / $valeurMax * $nbre) , 0);
}
}
return $couleurs;
}
}
?>
/branches/v5.10-vilmorin/modules/recherche_simple/squelettes/form_nom.tpl.html
New file
0,0 → 1,63
<!-- DEBUT FORM_NOM -->
<script type="text/javascript">
<!--
var AUTOCOMPLETION_ELEMENTS_NBRE = 50;
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI = "<?=$url_base_completion_noms_sci?>";
var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA = "<?=$url_base_completion_noms_verna?>";
var VALEUR_DEFAUT_NOM_SCI = "<?= $i18n['valeur-form-nom-sci']; ?>";
var VALEUR_DEFAUT_NOM_VERNA = "<?= $i18n['valeur-form-nom-verna']; ?>";
var VALEUR_DEFAUT_AU = "<?=$i18n['valeur-form-auteur']?>";
var VALEUR_DEFAUT_BIB = "<?=$i18n['valeur-form-bib']?>";
var VALEUR_DEFAUT_DATE = "<?=$i18n['valeur-form-date']?>";
var URL_BASE_FICHE_TAXON = "<?=$url_base_fiche_taxon?>";
var URL_BASE_POPUP = "<?=Config::get('base_url_application_popup');?>";
var REFERENTIEL = "<?= Registre::get('parametres.referentiel');?>";
// -->
</script>
<form id="ef-form-nomenclature" name="ef-form-nomenclature" action="<?=$url_form;?>" method="get">
<fieldset>
<span class="zone-choix-type-nom">
<?php if (isset($nom_verna)) { ?>
<span class="type-nom">
<input id="type_nom_scientifique" name="type_nom" value="nom_scientifique" type="radio" <?=($type_nom == 'nom_scientifique') ? 'checked="checked"': '';?> />
<label for="type_nom_scientifique"><?=$i18n['ns'];?></label>
</span>
<span class="type-nom">
<input id="type_nom_vernaculaire" name="type_nom" value="nom_vernaculaire" type="radio" <?=($type_nom == 'nom_vernaculaire') ? 'checked="checked"': '';?> />
<label for="type_nom_vernaculaire" title="(en français, allemand, anglais, catalan, espagnol, italien ou néerlandais)"><?=$i18n['nv'];?></label>
</span>
<?php } else {?>
<input id="type-nom-scientifique" name="type_nom" type="hidden" value="nom_scientifique" />
<?=$i18n['ns'];?>
<?php } ?>
</span>
<input id="nom" name="nom" class="champ" size="30" maxlength="255" type="text" <?php if(isset($nom)) echo 'value="'.$nom.'"';?> />
<span id="zone-liens-recherche">
<input id="eflore_nomenclature_referentiel" name="referentiel" type="hidden" value="<?=Registre::get('parametres.referentiel')?>" />
<input id="eflore_nomenclature_niveau" name="niveau" type="hidden" value="<?=Registre::get('parametres.niveau')?>" />
<input id="eflore_nomenclature_module" name="module" type="hidden" value="recherche" />
<input id="eflore_nomenclature_action" name="action" type="hidden" value="rechercheSimple" />
<input id="eflore_nomenclature_submit" name="submit" type="submit" value="<?=$i18n['recherche'];?>" class="ok"/>
<input id="eflore_nomenclature_fiche" name="acces_fiche" type="submit" value="<?=$i18n['fiche'];?>" />
</span>
</fieldset>
</form>
 
 
<?php if (isset($message)) : ?>
<p class="<?= (isset($message['attention'])) ? 'attention' : 'information'; ?>">
<?= (isset($message['attention'])) ? $i18n[$message['attention']] : ''; ?>
<?= (isset($message['nom_ss_corresp'])) ? $message['nom_ss_corresp']['nom'].$i18n['nom_ss_corresp'].
'<a href="http://referentiels.tela-botanica.org/referentiel/index.php?ref=bdtfx&module=FicheTaxon&num_nom='.$message['nom_ss_corresp']['id'].'">'.
$i18n['reftax'].'</a>' : ''; ?>
<?php if (isset($message['nom_approche'])) : ?>
<?=$i18n['orthographe'];?>
<?php foreach ($message['nom_approche'] as $cle => $nom) :?>
<a href="<?=$nom['url_nom_approche']?>"><?=$nom['nom'];?></a>
<?= (isset($message['nom_approche'][$cle+1]['nom'])) ? ' ou ' : ''; ?>
<?php endforeach; ?>
<?php endif; ?>
</p>
<?php endif; ?>
<!-- FIN FORM_NOM -->
/branches/v5.10-vilmorin/modules/recherche_simple/RechercheSimple.php
New file
0,0 → 1,40
<?php
class RechercheSimple extends aControleur {
 
//+----------------------------------------------------------------------------------------------------------------+
// Méthodes
/**
* Fonction d'affichage par défaut
*/
public function executerActionParDefaut() {
$this->afficherMoteurSimple();
}
 
private function afficherMoteurSimple() {
$donnees['form_nom'] = $this->executerFormulaireNom();
$this->setSortie(self::RENDU_CORPS, $donnees['form_nom']);
}
 
 
public function executerFormulaireNom($donnees = array()) {
$donnees['url_base_completion_noms_verna'] = "";
if (Config::get(Registre::get('parametres.referentiel').'.referentielVerna')) {
if (!isset($donnees['type_nom'])) {
$donnees['type_nom'] = (Registre::get('parametres.niveau') == 1) ? 'nom_vernaculaire' : 'nom_scientifique';
}
$donnees['nom_verna'] = true;
$donnees['referentielVerna'] = Config::get(Registre::get('parametres.referentiel').'.referentielVerna');
$donnees['url_base_completion_noms_verna'] = str_replace('{projet}', $donnees['referentielVerna'], Config::get('nomsVernaTpl'));
}
$donnees['referentiel'] = Registre::get('parametres.referentiel');
 
// nécessaire pour une autocomplétion indépendante, pour ne pas avoir à modifier le javascript
$donnees['url_base_completion_noms_sci'] = str_replace('{projet}', $donnees['referentiel'], Config::get('nomsTpl'));
$donnees['url_base_fiche_taxon'] = str_replace('&amp;', '&', $this->urls->obtenirUrlFiche('{num_taxon}', 'nom_scientifique'));
 
$donnees['url_form'] = $this->urls->obtenirUrlBase();
$donnees['i18n'] = I18n::get('Recherche-form-nom');
return $this->getVue('form_nom', $donnees);
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/Resultat.php
New file
0,0 → 1,264
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Resultat extends aControleur {
 
private $parametres = null;
private $resultats = null;
private $donneesTpl = array();
private $i18n = array();
private $parametresAvancesGeneriques = array('gen','fam','nn','nt','sp','ssp','type','sto','sti','stc');
 
public function initialiser() {
spl_autoload_register(array($this, 'chargerClassesResultat'));
$this->parametres = new ParametresResultats();
$this->capturerParametres();
$this->capturerParametresAvances();
$this->parametres->referentielCourant = Registre::get('parametres.referentiel');
$this->parametres->projetImg = Config::get($this->parametres->referentielCourant.'.baseImages');
$this->resultats = Registre::get('resultats');
$this->i18n = I18n::get('Recherche-form-avancee');
}
 
private function chargerClassesResultat($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'formateurs'.DS;
$cheminFormateursNs = $cheminFormateurs.'nom_scientifique'.DS;
$cheminFormateursNv = $cheminFormateurs.'nom_vernaculaire'.DS;
$dossiers = array($base, $cheminFormateurs, $cheminFormateursNs, $cheminFormateursNv);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function capturerParametres() {
$this->parametres->masqueRecherche = "";
if (isset($_GET['resultat'])) {
$this->parametres->typeResultat = $_GET['resultat'];
}
if (isset($_GET['nom'])) {
$this->parametres->masqueRecherche = trim($_GET['nom']);
}
//recherche avancee type
if (isset($_GET['fam'])) {
$this->parametres->masqueRecherche .= trim($_GET['fam']);
}
if (isset($_GET['gen'])) {
$this->parametres->masqueRecherche .= trim($_GET['gen']);
}
if (isset($_GET['sp'])) {
$this->parametres->masqueRecherche .= trim($_GET['sp']);
}
if (isset($_GET['ssp'])) {
$this->parametres->masqueRecherche .= trim($_GET['ssp']);
}
if (isset($_GET['and'])) {
$this->parametres->masqueRecherche .= trim($_GET['and']);
}
if (isset($_GET['anf'])) {
$this->parametres->masqueRecherche .= trim($_GET['anf']);
}
if (isset($_GET['au'])) {
$this->parametres->masqueRecherche .= trim($_GET['au']);
}
if (isset($_GET['bib'])) {
$this->parametres->masqueRecherche .= trim($_GET['bib']);
}
 
// Si spécifié, seuls les résultats du niveau spécifié sont affichés.
// Passer "*" pour annuler le filtre par rang (le paramètre est mis à "null").
// Par défaut, seules les espèces sont affichées (paramètre par défaut).
if (isset($_GET['rang'])) {
$this->parametres->rang = ($_GET['rang'] == '*' ? null : $_GET['rang']);
}
 
if (isset($_GET['type_nom'])) {
$this->parametres->typeNom = $_GET['type_nom'];
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
}
private function capturerParametresAvances() {
$this->capturerParametresAvancesGeneriques();
$this->capturerParametresAvancesDependantsLangage();
$this->capturerParametresAvancesPresenceSpecifiques();
$this->capturerParametresAvancesRang();
}
 
private function capturerParametresAvancesRang() {
// rang à afficher
$this->param['rang'] = $this->parametres->rang;
if ($this->param['rang'] === null) {
$this->param['rang'] = '*';
}
}
 
private function capturerParametresAvancesGeneriques() {
foreach($this->parametresAvancesGeneriques as $param) {
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = urldecode($_GET[$param]);
}
}
}
private function capturerParametresAvancesDependantsLangage() {
if (isset($_GET['au']) && $_GET['au'] != ''
&& $_GET['au'] != urlencode($this->i18n['valeur-form-auteur'])) {
$this->param['au'] = urldecode($_GET['au']);
}
if (isset($_GET['bib']) && $_GET['bib'] != ''
&& $_GET['bib'] != urlencode($this->i18n['valeur-form-bib'])) {
$this->param['bib'] = urldecode($_GET['bib']);
}
if (isset($_GET['and']) && $_GET['and'] != ''
&& $_GET['and'] != urlencode($this->i18n['valeur-form-date'])) {
$this->param['and'] = urldecode($_GET['and']);
}
if (isset($_GET['anf']) && $_GET['anf'] != ''
&& $_GET['anf'] != urlencode($this->i18n['valeur-form-date'])) {
$this->param['anf'] = urldecode($_GET['anf']);
}
}
private function capturerParametresAvancesPresenceSpecifiques() {
$champs_presence = $this->obtenirChampsPresence();
foreach($champs_presence as $champ) {
$param = $champ['param'];
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = urldecode($_GET[$param]);
}
}
}
private function obtenirChampsPresence() {
$tableau_champs_presence = array();
$referentiel = Registre::get('parametres.referentiel');
$champs_presence = Config::get($referentiel.'.champsPresence');
$champs_presence_spl = explode('|', $champs_presence);
foreach($champs_presence_spl as $champ) {
$label_param_champ = explode(':', $champ);
if(count($label_param_champ) >= 2) {
$tableau_champs_presence[] = array('param' => $label_param_champ[1],
'label' => $label_param_champ[0]);
}
}
return $tableau_champs_presence;
}
 
public function executerActionParDefaut() {
$this->executerResultat();
}
 
public function executerResultat() {
$this->chargerOnglets();
$this->chargerNbreDeTaxons();
$this->chargerNomsFormates();
$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $this->donneesTpl));
}
 
private function chargerOnglets() {
$donnees = array();
$donnees['typeResultat'] = $this->parametres->typeResultat;
$donnees['typeNom'] = $this->parametres->typeNom;
$donnees['ongletsNs'] = array('determination', 'retenu', 'decompo');
$donnees['ongletsNv'] = array('determination', 'alphab');
if (@$_GET['action'] == 'rechercheAvancee') {
$donnees['urls']['alphab'] = $this->urls->obtenirUrlResultatAvanceOnglets('alphab', $this->param);
$donnees['urls']['retenu'] = $this->urls->obtenirUrlResultatAvanceOnglets('retenu', $this->param);
$donnees['urls']['determination'] = $this->urls->obtenirUrlResultatAvanceOnglets('determination',$this->param);
$donnees['urls']['decompo'] = $this->urls->obtenirUrlResultatAvanceOnglets('decompo',$this->param);
} else {
$donnees['urls']['alphab'] = $this->urls->obtenirUrlResultat('alphab', $this->param);
$donnees['urls']['retenu'] = $this->urls->obtenirUrlResultat('retenu', $this->param);
$donnees['urls']['determination'] = $this->urls->obtenirUrlResultat('determination', $this->param);
$donnees['urls']['decompo'] = $this->urls->obtenirUrlResultat('decompo', $this->param);
}
// Inversion du critère de filtrage de rang : espèces seulement VS tout (pas d'autre choix pour l'instant)
//echo "PARAMS: <pre>" . print_r($this->param, true) . "</pre><br/>";
$paramsAvecRangInverse = $this->param;
if (array_key_exists('rang', $paramsAvecRangInverse)) {
if ($paramsAvecRangInverse['rang'] == '*') {
$paramsAvecRangInverse['rang'] = 290;
} else {
unset ($paramsAvecRangInverse['rang']);
}
}
//echo "PARAMS INV: <pre>" . print_r($paramsAvecRangInverse, true) . "</pre><br/>";
$this->donneesTpl['urlInverse'] = $this->urls->obtenirUrlResultat($donnees['typeResultat'], $paramsAvecRangInverse);
//echo "URL INV: " . $this->donneesTpl['urlInverse'] . "<br/>";
 
$donnees['i18n']['nv'] = I18n::get('Resultat-onglets-nv');
$donnees['i18n']['ns'] = I18n::get('Resultat-onglets-ns');
$this->donneesTpl['ongletsHtml'] = $this->getVue('onglets', $donnees);
}
 
private function chargerNbreDeTaxons() {
$this->donneesTpl['nbreTaxons'] = $this->resultats['entete']['total'];
}
 
// Filtre selon le rang à afficher (espèce, genre... tout)
// et renvoie le nombre de taxons réellement affichés
private function filtrer() {
$nbTaxAff = 0;
if ($this->parametres->rang != null) {
foreach ($this->resultats['resultat'] as $c => $v) {
$numRang = substr($v['rang.code'], strrpos($v['rang.code'], ':') +1);
if ($numRang != $this->parametres->rang) {
unset($this->resultats['resultat'][$c]);
} else {
$nbTaxAff++;
}
}
} else {
$nbTaxAff = $this->resultats['entete']['total'];
}
return $nbTaxAff;
}
 
private function chargerNomsFormates() {
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt mise en forme des noms");
 
// Filtre selon $this->parametres['rang'] pour afficher seulement un rang, ou bien tous
// Valable uniquement pour la recherche par nom scientifique
//echo "<pre>".print_r($this->parametres, true)."</pre>";
if ($this->parametres->typeNom == 'nom_scientifique') {
$this->donneesTpl['nombreTaxonsAffiches'] = $this->filtrer();
$this->donneesTpl['rang'] = $this->parametres->rang;
} else {
$this->donneesTpl['nombreTaxonsAffiches'] = $this->donneesTpl['nbreTaxons'];
}
$this->donneesTpl['typeNom'] = $this->parametres->typeNom;
 
$formateur = ResultatFormateurFabrique::creer($this->parametres, $this->resultats);
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt formatage des noms");
$formateur->formater();
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt triage des noms");
$formateur->trier();
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt surlignage des noms");
$formateur->surligner();
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt création de la vue");
$this->donneesTpl['nomsHtml'] = $this->getVue($formateur->getTplNom(), $formateur->getTplInfos());
if (Config::get('benchmark_chrono')) Chronometre::chrono("Après mise en forme des noms");
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/squelettes/liste_noms_verna.tpl.html
New file
0,0 → 1,19
<!-- onglet "Tableau multilingue" -->
<? if ($noms) : ?>
<table>
<tr>
<th>n°</th>
<th>langue</th>
<th>nom commun</th>
<th>nom latin</th>
</tr>
<? $i = 1; foreach ($noms as $id => $valeurs) : ?>
<tr>
<td><?=$i++?></td>
<td><?= $valeurs['langue']?></td>
<td><?= $valeurs['nomVerna']?></td>
<td><a href="<?= $valeurs['urlFiche']?>"><?= $valeurs['nomSci']?></a></td>
</tr>
<? endforeach; ?>
</table>
<? endif; ?>
/branches/v5.10-vilmorin/modules/resultat/squelettes/onglets.tpl.html
New file
0,0 → 1,15
<ul class="onglets">
<?php if ($typeNom == 'nom_scientifique') : ?>
<?php foreach ($ongletsNs as $onglet) : ?>
<li <?=($typeResultat == $onglet ? 'class="menu_actif sci"': 'class="sci"')?> >
<a href="<?=$urls[$onglet]?>"><?=$i18n['ns'][$onglet]?></a>
</li>
<?php endforeach; ?>
<?php elseif ($typeNom == 'nom_vernaculaire') : ?>
<?php foreach ($ongletsNv as $onglet) : ?>
<li <?=($typeResultat == $onglet ? 'class="menu_actif verna"': 'class="verna"')?> >
<a href="<?=$urls[$onglet]?>"><?=$i18n['nv'][$onglet]?></a>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
/branches/v5.10-vilmorin/modules/resultat/squelettes/decomposition.tpl.html
New file
0,0 → 1,67
<!-- onglet "Tableau" -->
<p>
Rechercher sur
<a href="http://www.theplantlist.org/tpl/search?q=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/tpl.png" alt="The Plant List"
title="Rechercher dans The Plant List"/>
</a>
<a href="http://www.ipni.org/ipni/simplePlantNameSearch.do?find_wholeName=<?=htmlentities($masqueRecherche)?>&amp;output_format=normal&amp;query_type=by_query&amp;back_page=query_ipni.html">
<img src="<?=$baseUrlIco?>presentations/images/sites/ipni.png" alt="IPNI" title="Rechercher dans IPNI"/>
</a>
<a href="http://plants.jstor.org/search?plantName=%22<?=htmlentities($masqueRecherche)?>%22&amp;syn=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/jstor.png" alt="JSTOR Plant Science" title="Rechercher dans JSTOR Plant Science" />
</a>
<a href="http://coldb.mnhn.fr/Consultation?filtre=motif&amp;motif=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/mnhn.png" alt="Muséum national d'Histoire naturelle" title="Rechercher dans Muséum national d'Histoire naturelle" />
</a>
<a href="http://www.anbg.gov.au/cgi-bin/apni?TAXON_NAME=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/anbg.png" alt="Australian Plant Name Index" title="Rechercher dans Australian Plant Name Index" />
</a>
<a href="http://sweetgum.nybg.org/vh/specimen_list.php?QueryName=BasicQuery&amp;QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&amp;Restriction=NybRecordType+%3D+%27Specimen%27&amp;StartAt=1&amp;any=SummaryData%7CAdmWebMetadata&amp;QueryOption=any&amp;Submit=Search&amp;QueryTerms=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/nybg.png" alt="NYBG Virtual Herbarium" title="Rechercher dans NYBG Virtual Herbarium" />
</a>
<a href="http://collections.mnh.si.edu/search/botany/?qt=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/si.png" alt="Type Specimen Register of the U.S. National Herbarium" title="Rechercher dans Type Specimen Register of the U.S. National Herbarium" />
</a>
<a href="http://herbarium.univie.ac.at/database/search.php?taxon=<?=htmlentities($masqueRecherche)?>&amp;search=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/vha.png" alt="Virtual Herbaria Austria" title="Rechercher dans Virtual Herbaria Austria" />
</a>
<a href="http://swbiodiversity.org/seinet/taxa/index.php?taxon=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/seinet.png" alt="SEINet" title="Rechercher dans SEINet" />
</a>
<a href="http://www.ville-ge.ch/musinfo/bd/cjb/africa/resultat.php?efFamille=&amp;projet%5B%5D=FSA&amp;projet%5B%5D=FTA&amp;projet%5B%5D=FNA&amp;projet%5B%5D=BDM&amp;langue=en&amp;pbRecherche=Rechercher&amp;efNom=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/cjb.png" alt="African Plants Database" title="Rechercher dans African Plants Database du Jardin Botanique de Genève" />
</a>
</p>
<table id="ef-resultats-decomposition">
<thead>
<tr>
<th id="col-ns">Nom scientifique</th>
<th>Auteur</th>
<th>Année</th>
<th>Référence bibliographique</th>
<th title="Commentaires nomenclaturaux ou taxonomiques concernant le nom scientifique">Nom addendum</th>
<th title="Identifiant numérique du nom scientifique">N° nom</th>
</tr>
</thead>
<tbody>
<? $i = 1 ?>
<? foreach ($noms as $nom) : ?>
<tr
class="<?=$nom['retenu'] === 'true' ? 'retenu' : 'synonyme' ?>"
title="Ligne #<?=$i++?>">
<td>
<? if ($nom['retenu'] !== 'absent') : ?>
<a href="<?=$nom['urlFiche']?>"><?=$nom['nomSci']?></a>
<? else : ?><?=$nom['nomSci']?>
<? endif; ?>
</td>
<td><?=$nom['auteur']?></td>
<td><?=$nom['annee']?></td>
<td><?=$nom['biblio']?></td>
<td><?=$nom['addendum']?></td>
<td><?=$nom['nn']?></td>
</tr>
<? endforeach; ?>
</tbody>
</table>
/branches/v5.10-vilmorin/modules/resultat/squelettes/liste_noms.tpl.html
New file
0,0 → 1,18
<!-- onglet "Liste" -->
<ol>
<? foreach ($noms as $id => $nom) : ?>
<li>
<?php if ($nom['retenu'] == 'absent') : ?>
<?=$nom['nomSci']?>
<?php else : ?>
<a href="<?=$nom['urlFiche']?>">
<?php if ($nom['retenu'] == 'true') : ?>
<strong class="nom-sci-retenu"><?=$nom['nomSci']?></strong>
<?php else : ?>
<?=$nom['nomSci']?>
<?php endif; ?>
</a>
<?php endif; ?>
</li>
<? endforeach; ?>
</ol>
/branches/v5.10-vilmorin/modules/resultat/squelettes/determination_verna.tpl.html
New file
0,0 → 1,88
<!-- onglet "Vignettes noms français" -->
<?php if ($noms) : ?>
<ul id="ef-resultats-nv-determination">
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li class="zone-resultat">
<table >
<tbody >
<tr><td class="nom">
<?php if (isset($nom['nomVerna'])) : ?>
<?php $nbrNomVerna = count($nom['nomVerna']) ?>
<ul class="synonymes" style="width:100%;">
<?php for ($i = 0; ($i < 3); $i++) : ?>
<?php if (isset($nom['nomVerna'][$i])) : ?>
<li><?=$nom['nomVerna'][$i]['nom_vernaculaire']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrNomVerna === 4) : ?>
<?php if (isset($nom['nomVerna'][3])) : ?>
<li><?=$nom['nomVerna'][3]['nom_vernaculaire']?></li>
<?php endif; ?>
<?php endif; ?>
<?php if ($nbrNomVerna > 3 && $nbrNomVerna != 4) : ?>
<li class="synonymes-autres">
<ul>
<?php for ($i = 3; $i < $nbrNomVerna; $i++) : ?>
<li><?=$nom['nomVerna'][$i]['nom_vernaculaire']?></li>
<? endfor; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>
</td><td class="nom">
<a class="lien_fiche_eflore" href="<?=$nom['urlFiche']?>" ><?=$nom['nomSci']?></a>
</td>
<td>
<?php if (isset($imagesCoste[$taxons[$nom['nomSci']]][0])) : ?>
<img class="illustration_resultat_coste" src="<?=htmlentities($imagesCoste[$taxons[$nom['nomSci']]][0])?>" alt="illustration de Coste" />
<?php else : ?>
<div class="vide"></div>
<?php endif; ?>
</td>
<td>
<?php if (isset($imagesUrls[$nnTaxon])) : ?>
<img class="illustration_resultat_cel" src="<?=htmlentities($imagesUrls[$nnTaxon][0])?>" data-num-nom="<?= $nnTaxon; ?>" title="<?= $nnTaxon; ?>" alt="Images issues du CEL" style="width:100px;height:100px;display:block;float:right;"/>
<?php else : ?>
<p class="absent">
Pas de photo<br />
<a href="<?=$urlWidget.'&num_nom='.$nnTaxon?>"
title="Ajouter une photographie au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</p>
<?php endif; ?>
</td>
<td >
<?php if (isset($repartition['urls'][$nnTaxon])) : ?>
<img src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="Carte de répartition" class="repartition_vignette illustration_resultat_choro"/>
<?php else : ?>
<div class="absent">Pas de carte</div>
<?php endif; ?>
</td></tr>
</tbody>
</table>
</li>
<? endforeach; ?>
</ul>
<?php endif; ?>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
ajouterToggleSynonymesAutres();
});
function ajouterToggleSynonymesAutres() {
$("ul#ef-resultats-nv-determination li").each(function(index) {
$(this).find('.synonymes-autres').prepend('<a id="bascule-'+index+'" href="#">et plus...</a>');
$(this).find('.synonymes-autres ul').css('display', 'none');
$(this).find('.synonymes-autres ul').attr('id', 'sa-'+index);
$('#bascule-'+index).on('click', function() {
$('#sa-'+index).toggle('blind', {}, 500);
return false;
});
});
}
//]]>
</script>
/branches/v5.10-vilmorin/modules/resultat/squelettes/determination.tpl.html
New file
0,0 → 1,94
<!-- onglet "Vignettes" -->
<ul id="ef-resultats-determination">
<?php if ($noms) : ?>
 
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li class="zone-resultat">
<div class="nom-sci">
<a class="lien_fiche_eflore" href="<?=$nom['urlFiche']?>" >
<strong class="nom-sci-retenu"><?=$nom['nomSciRetenuSurligne']?></strong>
</a>
</div>
<?php if (isset($repartition)) : ?>
<?php if (isset($repartition['urls'][$nnTaxon]) ) : ?>
<img class="illustration_resultat_choro" src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="<?= $nom['nomSciRetenu'] ?> - Carte de répartition" />
<?php else : ?>
<div class="absent">Pas de carte</div>
<?php endif;endif; ?>
<?php if ($nom['rang'] != 'Famille' && $nom['rang'] != 'Genre' && $nom['rang'] != 'Ordre') : ?>
<?php if (isset($imagesUrls[$nnTaxon])) : ?>
<img class="illustration_resultat_cel" src="<?=htmlentities($imagesUrls[$nnTaxon][0])?>" data-num-nom="<?= $nnTaxon; ?>" title="<?= $nnTaxon; ?>" alt="<?= $nom['nomSciRetenu'] ?> (image CeL)" style="width:100px;height:100px;display:block;float:right;"/>
<?php else : ?>
<p class="absent">Pas de photo<br />
<a href="<?=$urlWidget.'&num_nom='.$nnTaxon?>"
title="Ajouter une photographie au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</p>
<?php endif; ?>
<?php if (isset($dessins) && isset($dessins[$taxons[$nnTaxon]][0])) : ?>
<img class="illustration_resultat_coste" src="<?=htmlentities($dessins[$taxons[$nnTaxon]][0])?>" alt="<?= $nom['nomSciRetenu'] ?> (illustration de Coste)" />
<?php endif; ?>
<?php endif; ?>
<?php if (isset($synonymes[$nnTaxon])) : ?>
<?php $nbrSynonymes = count($synonymes[$nnTaxon]) ?>
<ul class="synonymes" style="width:100%;">
<?php for ($i = 0; ($i < 3); $i++) : ?>
<?php if (isset($synonymes[$nnTaxon][$i])) : ?>
<li><b>syn.</b> <?=$synonymes[$nnTaxon][$i]['nomSci']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrSynonymes === 4) : ?>
<?php if (isset($synonymes[$nnTaxon][3])) : ?>
<li><b>syn.</b> <?=$synonymes[$nnTaxon][3]['nomSci']?></li>
<?php endif; ?>
<?php endif; ?>
<?php if ($nbrSynonymes > 3 && $nbrSynonymes != 4) : ?>
<li class="synonymes-autres">
<ul>
<?php for ($i = 3; $i < $nbrSynonymes; $i++) : ?>
<li><b>syn.</b> <?=$synonymes[$nnTaxon][$i]['nomSci']?></li>
<? endfor; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>
</li>
<? endforeach; ?>
<?php endif; ?>
<?php if ($nomsSansCorrespondance) : ?>
<li class="zone-resultat" title="Aucun nom retenu n'a été trouvé pour ces noms scientifiques">
<strong>Noms sans correspondance</strong>
<ul class="noms-ss-correspondance">
<?php foreach ($nomsSansCorrespondance as $nomSC) : ?>
<li><?=$nomSC?></li>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
ajouterToggleSynonymesAutres();
});
function ajouterToggleSynonymesAutres() {
$("ul#ef-resultats-determination li").each(function(index) {
$(this).find('.synonymes-autres').prepend('<a id="bascule-'+index+'" href="#">et plus...</a>');
$(this).find('.synonymes-autres ul').css('display', 'none');
$(this).find('.synonymes-autres ul').attr('id', 'sa-'+index);
$('#bascule-'+index).on('click', function() {
$('#sa-'+index).toggle('blind', {}, 500);
return false;
});
});
}
//]]>
</script>
/branches/v5.10-vilmorin/modules/resultat/squelettes/resultat.tpl.html
New file
0,0 → 1,22
<?php if($typeNom == "nom_scientifique"): ?>
<?php if ($rang == null): ?>
Cet affichage montre tous les résultats.
<a href="<?php echo $urlInverse; ?>">Cliquez ici pour afficher seulement les espèces</a>
<?php else: ?>
<!-- Cet affichage ne montre que le rang "<?php echo $rang; ?>".-->
Cet affichage ne montre que les espèces.
<a href="<?php echo $urlInverse; ?>">Cliquez ici pour afficher tous les taxons</a>
<?php endif; ?>
<br/><br/>
<?php endif; ?>
 
<?=$ongletsHtml?>
 
<p style="float:right;">
<?php if($typeNom == "nom_scientifique"): ?>
<?= $nombreTaxonsAffiches ?> nom<?php echo $nombreTaxonsAffiches > 1 ? 's' : ''; ?> affiché<?php echo $nombreTaxonsAffiches > 1 ? 's' : ''; ?> /
<?php endif; ?>
<?=$nbreTaxons?> nom<?php echo $nbreTaxons > 1 ? 's' : ''; ?> trouvé<?php echo $nbreTaxons > 1 ? 's' : ''; ?>.
</p>
 
<?=$nomsHtml?>
/branches/v5.10-vilmorin/modules/resultat/ParametresResultats.php
New file
0,0 → 1,11
<?php
class ParametresResultats {
public $typeResultat = 'determination';
public $typeNom = '';
public $masqueRecherche = '';
public $reftaxCourant = 'bdtfx';
public $projetImg = 'cel';
/** Si "null", montre tous les résultats. Sinon, ne montre que le rang spécifié, par défaut les espèces (290). */
public $rang = null;
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php
New file
0,0 → 1,229
<?php
class DeterminationVernaFormateur implements Formateur {
 
const TPL_VUE = 'determination_verna';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
private $conteneur = null;
private $apiCartes = null;
 
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
$this->conteneur = new Conteneur();
$this->apiCartes = $this->conteneur->getApiCartes();
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->obtenirUrlsDessins();
$this->obtenirUrlsPhotos();
$this->chargerRepartition();
$this->extraireInfosNomsPourTplDetermination();
$this->infosPourTpl['urlWidget'] = Config::get('base_url_widget_saisie')."?referentiel=".Registre::get('parametres.referentiel');
}
private function obtenirUrlsDessins() {
if (Config::get(Registre::get('parametres.referentiel').'.baseDessins') != "") {
$this->extraireInfosTaxons();
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins'));
$tax = implode(',', $this->infosPourTpl['taxons']);
$this->imagesService->setNnTaxon($tax);
$costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
if (!empty($costeImg)) {
foreach ($costeImg as $infos) {
$num_taxon = $infos['num_taxonomique'];
$images[$num_taxon][] = $infos['binaire.href'];
$this->infosPourTpl['imagesCoste'] = $images;
}
}
}
}
private function extraireInfosTaxons() {
foreach ($this->noms as $id => $nom ) {
if (array_key_exists('num_taxon', $nom)
&& array_key_exists('taxon', $nom)) {
$this->infosPourTpl['taxons'][$nom['taxon']] = $nom['num_taxon'];
}
}
}
 
private function obtenirUrlsPhotos() {
if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") {
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages'));
$nns = $this->extraireNnDesNoms();
$urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($nns);
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesUrls($urls);
}
}
 
private function extraireNnDesNoms() {
$nns = array();
foreach ($this->noms as $id => $nom) {
if (array_key_exists('nom_retenu.code', $nom)) {
if (in_array($nom['nom_retenu.code'], $nns) == false) {
$idAAjouter = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
if (is_numeric($idAAjouter)) {
$nns[] = $idAAjouter;
}
}
}
}
return $nns;
}
 
private function supprimerCodeReferentielDesUrls($urls) {
$urlsNettoyees = array();
foreach ($urls as $id => $url) {
$id = $this->supprimerCodeReferentiel($id);
$urlsNettoyees[$id] = $url;
}
return $urlsNettoyees;
}
 
private function supprimerCodeReferentiel($chaine) {
$codeReferentiel = $this->parametres->referentielCourant.'.';
$chaine = str_replace($codeReferentiel, '', $chaine);
return $chaine;
}
private function chargerRepartition() {
// $numsNomsASynonymes = $this->extraireNumerosNomSynonymes();
if (Config::get(Registre::get('parametres.referentiel').'.baseRepartition') == "") {
return;
}
 
$this->apiCartes->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition'));
$this->apiCartes->setLargeur('108x101');
$urls = array();
foreach ($this->noms as $nom) {
if (array_key_exists('nom_retenu.code', $nom)) {
$id = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
$this->apiCartes->setId("nn:" . $id); // . ',' . implode(',', array_keys($numsNomsASynonymes[$id])));
if (array_key_exists($id, $urls) == false) {
$urls[$id] = $this->apiCartes->getUrlPng();
}
}
}
$this->infosPourTpl['repartition']['urls'] = $urls;
}
private function extraireNumerosNomSynonymes() {
$numNomsASynonyme = array();
foreach ($this->noms as $id => $nom) {
$num_nom_retenu = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
// faux
$numNomsASynonyme[$num_nom_retenu][$id] = TRUE;
}
return $numNomsASynonyme;
}
private function extraireInfosNomsPourTplDetermination() {
$taxons = array();
foreach ($this->noms as $idNomCourant => $nom) {
$nn = intval($this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']));
$nomV = iconv('UTF-8', 'ASCII//TRANSLIT', strtolower($nom['nom_vernaculaire']));
if (preg_match('/^'.strtolower($this->parametres->masqueRecherche).'(?: |$)/', $nomV)) {
// au moins un debute par la requête
if (isset($taxons) && array_key_exists($nn, $taxons[0]) == false) {
$taxons[0][$nn] = $this->renvoyerInfosTaxon($nom['taxon'], $nn);
}
$taxons[0][$nn]['nomVerna'][] = $this->renvoyerInfosNomVerna($nom);
} else {
// contient
if (isset($taxons) && (!isset($taxons[1]) || array_key_exists($nn, $taxons[1]) == false)) {
$taxons[1][$nn] = $this->renvoyerInfosTaxon($nom['taxon'], $nn);
}
$taxons[1][$nn]['nomVerna'][] = $this->renvoyerInfosNomVerna($nom);
}
}
$this->infosPourTpl['noms'] = isset($taxons) ? $taxons : false;
}
private function renvoyerInfosNomVerna($valeurs) {
$nom_verna = array();
$nom_verna['nn'] = $valeurs['id'];
$nom_verna['nom_vernaculaire'] = $valeurs['nom_vernaculaire'];
return $nom_verna;
}
private function renvoyerInfosTaxon($nomSci, $nn) {
$taxon = array();
$taxon['nomSci'] = $nomSci;
$taxon['urlFiche'] = $this->urls->obtenirUrlFiche($nn, $this->parametres->typeNom, $this->parametres->masqueRecherche);
$this->chargerRepartition($nn);
$taxon['repartition_vignette'] = $this->infosPourTpl['repartition']['urls'];
return $taxon;
}
 
private function supprimerCodeReferentielAvecNn($nn) {
return str_replace($this->parametres->referentielCourant.'.nn:', '', $nn);
}
 
//tri alphabétique des noms scientifiques par catégorie (débute par , contient )
public function trier() {
$verna = array();
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs) {
$verna += $this->classerAlphabetiquement('nomSci', $valeurs);
}
$this->infosPourTpl['noms'] = $verna;
}
private function classerAlphabetiquement($champs, $valeurs) {
$this->trieur->setTableau($valeurs);
$this->trieur->setChampsEtOrdres(array($champs => 'nat'));
return $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
foreach ($nom['nomVerna'] as $idVerna => $nomVerna) {
$nom['nomVerna'][$idVerna]['nom_vernaculaire'] = $this->surlignerMotsMasqueRecherche($nomVerna['nom_vernaculaire']);
}
$this->infosPourTpl['noms'][$idNom] = $nom;
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
 
}
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/AlphabVernaFormateur.php
New file
0,0 → 1,113
<?php
class AlphabVernaFormateur implements Formateur {
 
const TPL_VUE = 'liste_noms_verna';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
private function supprimerCodeReftaxAvecNn($nn) {
$codeReftax = Registre::get('parametres.referentiel').'.nn:';
return str_replace($codeReftax, '', $nn);
}
private function renvoyerInfoVerna($nn, $valeurs) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $valeurs['taxon'];
$infosDuNom['nomVerna'] = $valeurs['nom_vernaculaire'];
$infosDuNom['langue'] = $valeurs['code_langue'];
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($nn, $this->parametres->typeNom, $this->parametres->masqueRecherche);
return $infosDuNom ;
}
 
function supprimerAccents($chaine){
return strtr($chaine,array('à' => 'a','á' => 'a','â' => 'a','ã' => 'a','ä' => 'a',
'ç' => 'c',
'è' => 'e','é' => 'e','ê' => 'e','ë' => 'e',
'ì' => 'i','í' => 'i','î' => 'i','ï' => 'i',
'ñ' => 'n',
'ò' => 'o', 'ó' => 'o' , 'ô' => 'o', 'õ' => 'o', 'ö' => 'o',
'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u',
'ý' => 'y', 'ÿ' => 'y'));
}
public function formater() {
$nomVerna = array();
foreach ($this->noms as $id => $nom) {
$nn = $this->supprimerCodeReftaxAvecNn($nom['nom_retenu.code']);
$nom_min = strtolower($nom['nom_vernaculaire']);
$nom_ss_accent = $this->supprimerAccents($nom_min);
if (preg_match('/^'.strtolower($this->parametres->masqueRecherche).' |^'.strtolower($this->parametres->masqueRecherche).'$/', $nom_ss_accent)) {
$nomVerna[0][$id] = $this->renvoyerInfoVerna($nn, $nom);
} else {
$nomVerna[1][$id] = $this->renvoyerInfoVerna($nn, $nom);
}
}
ksort($nomVerna);
$this->infosPourTpl['noms'] = isset($nomVerna) ? $nomVerna : false;
}
 
public function trier() {
$verna = array();
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs) {
$verna += $this->classerAlphabetiquement('nomVerna', $valeurs);
}
$this->infosPourTpl['noms'] = $verna;
}
private function classerAlphabetiquement($champs, $valeurs) {
$this->trieur->setTableau($valeurs);
$this->trieur->setChampsEtOrdres(array($champs => 'nat'));
return $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
$this->infosPourTpl['noms'][$idNom]['nomVerna'] = $this->surlignerMotsMasqueRecherche($nom['nomVerna']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
 
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/Formateur.php
New file
0,0 → 1,10
<?php
interface Formateur {
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null);
public function getTplInfos();
public function getTplNom();
public function formater();
public function trier();
public function surligner();
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/ResultatFormateurFabrique.php
New file
0,0 → 1,16
<?php
class ResultatFormateurFabrique {
 
public static function creer(ParametresResultats $parametres, Array $resultats){
$typeResultat = ucwords($parametres->typeResultat);
$typeNom = ($parametres->typeNom == 'nom_vernaculaire') ? 'Verna' : '';
$Classe = $typeResultat.$typeNom.'Formateur';
$ResultatFormateur = null;
if (class_exists($Classe)) {
return new $Classe($parametres, $resultats);
} else {
throw new Exception("La classe '$Classe' est introuvable.");
}
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DecompoFormateur.php
New file
0,0 → 1,72
<?php
class DecompoFormateur implements Formateur {
 
const TPL_VUE = 'decomposition';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->infosPourTpl['masqueRecherche'] = rawurlencode($this->parametres->masqueRecherche);
$this->infosPourTpl['baseUrlIco'] = $this->urls->obtenirUrlBaseDossier();
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci'];
$infosDuNom['retenu'] = $nom['retenu'];
$infosDuNom['auteur'] = is_null($nom['auteur']) ? '' : $nom['auteur'];
$infosDuNom['annee'] = is_null($nom['annee']) ? '' : $nom['annee'];
$infosDuNom['biblio'] = is_null($nom['biblio_origine']) ? '' : $nom['biblio_origine'];
$infosDuNom['addendum'] = is_null($nom['nom_addendum']) ? '' : $nom['nom_addendum'];
$infosDuNom['nn'] = $id;
$nom_retenu = $nom['retenu'] == 'true' ? $nom['nom_sci'] : '';
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id, $this->parametres->typeNom, $this->parametres->masqueRecherche);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$this->trieur->setTableau($this->infosPourTpl['noms']);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$this->infosPourTpl['noms'] = $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/AlphabFormateur.php
New file
0,0 → 1,65
<?php
class AlphabFormateur implements Formateur {
 
const TPL_VUE = 'liste_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci_complet'];
$infosDuNom['retenu'] = $nom['retenu'];
$nom_retenu = $nom['retenu'] == 'true' ? $nom['nom_sci'] : '';
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id, $this->parametres->typeNom, $this->parametres->masqueRecherche);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$this->trieur->setTableau($this->infosPourTpl['noms']);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$this->infosPourTpl['noms'] = $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php
New file
0,0 → 1,258
<?php
class DeterminationFormateur implements Formateur {
 
const TPL_VUE = 'determination';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->extraireInfosTaxons();
 
$this->obtenirUrlsDessins();
$this->obtenirUrlsPhotos();
$this->chargerRepartition();
 
$this->extraireInfosNomsPourTplDetermination();
$this->infosPourTpl['urlWidget'] = Config::get('base_url_widget_saisie')."?referentiel=".Registre::get('parametres.referentiel');
}
 
private function obtenirUrlsDessins() {
if (Config::get(Registre::get('parametres.referentiel').'.baseDessins') != "") {
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins'));
$tax = implode(',', $this->infosPourTpl['taxons']);
$this->imagesService->setNnTaxon($tax);
$costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
if (!empty($costeImg)) {
foreach ($costeImg as $infos) {
$num_taxon = $infos['num_taxonomique'];
$images[$num_taxon][] = $infos['binaire.href'];
$this->infosPourTpl['dessins'] = $images;
}
}
}
}
 
private function extraireInfosTaxons() {
foreach ($this->noms as $id => $nom ) {
if (array_key_exists('num_taxonomique', $nom)) {
$this->infosPourTpl['taxons'][$id] = $nom['num_taxonomique'];
}
}
}
 
private function obtenirUrlsPhotos() {
if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") {
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages'));
$ids = $this->extraireIdDesNoms();
$urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($ids);
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesIds($urls);
}
}
 
private function extraireIdDesNoms() {
$ids = array();
foreach ($this->noms as $id => $nom) {
$idAAjouter = $id;
if (is_numeric($idAAjouter)) {
$ids[] = $idAAjouter;
}
if (array_key_exists('nom_retenu.id', $nom)) {
if (in_array($nom['nom_retenu.id'], $ids) == false) {
$idAAjouter = $nom['nom_retenu.id'];
if (is_numeric($idAAjouter)) {
$ids[] = $idAAjouter;
}
}
}
}
return $ids;
}
 
private function supprimerCodeReferentielDesIds($urls) {
$urlsNettoyees = array();
foreach ($urls as $id => $url) {
$id = $this->supprimerCodeReferentiel($id);
$urlsNettoyees[$id] = $url;
}
return $urlsNettoyees;
}
 
private function supprimerCodeReferentiel($chaine) {
$codeReferentiel = Registre::get('parametres.referentiel').'.';
$chaine = str_replace($codeReferentiel, '', $chaine);
return $chaine;
}
 
// TODO : utiliser le conteneur pour charger tous les objets de cette classe
private function chargerRepartition() {
$referentiel = Registre::get('parametres.referentiel');
if (Config::get("$referentiel.baseRepartition") != '') {
$conteneur = new Conteneur();
$cartesWs = $conteneur->getApiCartes();
$cartesWs->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition'));
$cartesWs->setLargeur('108x101');
$urls = array();
foreach ($this->noms as $id => $nom) {
if (array_key_exists('num_taxonomique', $nom)) {
$nt = $nom['num_taxonomique'];
$cartesWs->setId("$referentiel.nt:$nt");
if (array_key_exists($id, $urls) == false) {
$urls[$id] = $cartesWs->getUrlPng();
}
}
}
$this->infosPourTpl['repartition']['urls'] = $urls;
}
}
 
private function extraireInfosNomsPourTplDetermination() {
$tri = $this->diviserResultats();
$this->infosPourTpl['nomsSansCorrespondance'] = isset($tri['sansCorres']) ? $tri['sansCorres'] : false;
$this->infosPourTpl['noms'] = isset($tri['retenus']) ? $tri['retenus'] : false;
$this->infosPourTpl['synonymes'] = isset($tri['synonymes'] ) ? $tri['synonymes'] : false;
}
 
/**
* division ordonnée par
* 1 - noms retenus qui commencent par la requete
* 2 - requete contenue dans un synonyme dont le nom retenu ne contient pas la requete
* 3 - requete contenue dans un hybride retenu
* 4 - requete contenue dans un nom retenu mais pas au début
* 5 - requete contenue dans un nom sans correspondance
*
*/
private function diviserResultats() {
$tri = array();
$sansCorres = array();
$synonymes = array();
$retenus = array();
foreach ($this->noms as $cle => $valeurs) {
if ($valeurs['nom_retenu.libelle'] == null) {//sans correspondances
$sansCorres[$cle] = $valeurs['nom_sci_complet'];
} elseif ($valeurs['retenu'] == 'true') { // retenus
if (preg_match('/ x |^x /',$valeurs['nom_sci'] ) ) {
//hybrides
$retenus[2][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
} elseif (strripos($valeurs['nom_sci_complet'], $this->parametres->masqueRecherche) === 0) {//preg_match('/^'.strtolower($this->parametres->masqueRecherche).' |^'.strtolower($this->parametres->masqueRecherche).'$/', strtolower($valeurs['nom_sci']) ) ) {
//commence par
$retenus[0][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
} else {
//contient
$retenus[3][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
}
} else {//synonymes
$idNomRetenu = $valeurs['nom_retenu.id'];
if (in_array($valeurs['nom_retenu.id'], array_keys($this->noms)) == false) {
//synonymes dont le nom retenu n'est pas un résultat de recherche
$retenus[1][$idNomRetenu] = $this->retournerInfosNomRetenu($idNomRetenu,$valeurs['nom_retenu.libelle'], $valeurs['rang.libelle']);
$this->infosPourTpl['taxons'][$idNomRetenu] = $valeurs['num_taxonomique']; //num taxon pour images coste
}
$synonymes[$idNomRetenu][] = $this->retournerInfosSynonyme($cle, $valeurs);
}
}
ksort($retenus);
$tri['retenus'] = $retenus;
$tri['synonymes'] = $synonymes;
$tri['sansCorres'] = $sansCorres;
return $tri;
}
 
private function retournerInfosNomRetenu($cle, $nom_sci, $rang) {
$infos = array();
$infos['nomSciRetenu'] = $nom_sci;
$infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, strtolower($this->parametres->masqueRecherche), $nom_sci);
$infos['rang'] = $rang;
return $infos;
}
 
private function retournerInfosSynonyme($cle, $valeurs) {
$infos = array();
$infos['nn'] = $cle;
$infos['nomSci'] = $valeurs['nom_sci_complet'];
$infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, $this->parametres->masqueRecherche, $valeurs['nom_retenu.libelle']);
return $infos;
}
 
public function trier() {
$nomsRetenus = array();
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs ) { //classement alpha par groupes
$nomsRetenus += $this->classerAlphabetiquement('nomSciRetenu', $valeurs);
}
$this->infosPourTpl['noms'] = $nomsRetenus;
$this->infosPourTpl['nomsSansCorrespondance'] =
$this->classerAlphabetiquement('nomSciRetenu', $this->infosPourTpl['nomsSansCorrespondance'] );
}
 
private function ajouterAuxNomsScoreSimilariteAvec($masque) {
$nom_demande_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($masque));
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$nom_flou_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($nom['nomSciRetenu']));
$stat = array();
// Prime pour la ressemblance globale :
$score = 500 - levenshtein($nom_flou_ss, $nom_demande_ss);
// On affine
$score = $score + (similar_text($nom_demande_ss, $nom_flou_ss) * 3);
$nom['score'] = $score;
$this->infosPourTpl['noms'][$id] = $nom;
}
}
 
private function classerAlphabetiquement($champs, $valeurs) {
$this->trieur->setTableau($valeurs);
$this->trieur->setChampsEtOrdres(array($champs => 'nat'));
return $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
$this->infosPourTpl['noms'][$idNom]['nomSciRetenuSurligne'] = $this->surlignerMotsMasqueRecherche($nom['nomSciRetenu']);
if (isset($this->infosPourTpl['synonymes'][$idNom])) {
foreach ($this->infosPourTpl['synonymes'][$idNom] as $idSyn => $synonyme) {
$this->infosPourTpl['synonymes'][$idNom][$idSyn]['nomSci'] = $this->surlignerMotsMasqueRecherche($synonyme['nomSci']);
}
}
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
Property changes:
Added: svnkit:entry:sha1-checksum
+b308b575b63824443e3ba51a065e27a97843a2d9
\ No newline at end of property
/branches/v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/RetenuFormateur.php
New file
0,0 → 1,88
<?php
class RetenuFormateur implements Formateur {
 
const TPL_VUE = 'liste_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null,
Trieur $trieur = null, AppUrls $urls = null, TableauManipulateur $tableau = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->fusioneur = (is_null($tableau)) ? new TableauManipulateur() : $tableau;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci_complet'];
$infosDuNom['retenu'] = $nom['retenu'];
$nom_retenu = $nom['retenu'] == 'true' ? $nom['nom_sci'] : '';
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id, $this->parametres->typeNom, $this->parametres->masqueRecherche);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$nomsRetenus = array();
$nomsSynonymes = array();
 
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
if ($nom['retenu'] == 'true') {
$nomsRetenus[$id] = $nom;
} else {
$nomsSynonymes[$id] = $nom;
}
}
 
$this->trieur->setTableau($nomsRetenus);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$nomsRetenus = $this->trieur->trier();
 
$this->trieur->setTableau($nomsSynonymes);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$nomsSynonymes = $this->trieur->trier();
 
$this->fusioneur->setTableau($nomsRetenus);
$this->fusioneur->etendreAvec($nomsSynonymes);
$this->infosPourTpl['noms'] = $this->fusioneur->getTableau();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.10-vilmorin/modules/mobile/Mobile.php
New file
0,0 → 1,100
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Mobile.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Isabelle NEMBROT
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @copyright 2015 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 Mobile extends aControleur {
 
private $parametres = array();
private $conteneur = null;
private $num_nom = 0;
private $nom_courant = null;
private $nom_retenu = '';
private $url;
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->url = $this->conteneur->getAppUrls();
$this->nomCourant = $this->conteneur->getNomCourant();
$this->nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu();
spl_autoload_register(array($this, 'chargerClassesSources'));
}
 
private function chargerClassesSources($classe) {
$base = dirname(__FILE__).DS;
$cheminSources = $base.'sources'.DS;
$dossiers = array($base, $cheminSources);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function capturerParametres() {
$this->parametres['num_nom'] = isset($_GET['num_nom']) ? $_GET['num_nom'] : '';
$this->parametres['nom'] = isset($_GET['nom']) ? $_GET['nom'] : '';
$this->parametres['type_nom'] = isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique';
 
$referentiel = isset($_GET['referentiel']) ? $_GET['referentiel'] : '';
Registre::set('parametres.referentiel', $referentiel);
$this->parametres['referentiel'] = $referentiel;
 
$niveau = isset($_GET['niveau']) ? $_GET['niveau'] : '1';
Registre::set('parametres.niveau', $niveau);
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
$donnees = $this->parametres;
$donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci').' '.$this->nom_retenu->get('auteur');
$donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180');
$donnees = array_merge($this->obtenirDonnees(), $donnees);
$donnees['url_absolue'] = "http://".$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI'];
$donnees['url_logos'] = "modules/mobile/presentations/logos/";
$donnees['lien'] = $this->url->obtenirUrlMobile($this->parametres['num_nom']);
$donnees['lien_fiche'] = $this->url->obtenirUrlFiche($this->parametres['num_nom']);
$tpl_edition = Config::get('smartFloreEditionFormulaireUrlTpl');
$url_edition = sprintf($tpl_edition, strtoupper($this->parametres['referentiel']), $this->nom_retenu->get('num_taxonomique'));
$donnees['lien_edition'] = $url_edition;
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('smartflore', $donnees), true);
}
 
public function obtenirDonnees() {
$donnees = array();
$num_nom = $this->nomCourant->getNns();
$referentiel = $this->conteneur->getParametre('referentiel');
 
$taxons = new Taxons($this->conteneur);
$donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $num_nom);
 
$sources = array('illustrations', 'texte', 'nomsCommuns');
foreach ($sources as $source) {
$nom_classe = ucfirst($source);
$classe = new $nom_classe($this->conteneur);
$donnees[$source] = $classe->getDonnees();
}
 
return $donnees;
}
}
?>
/branches/v5.10-vilmorin/modules/mobile/presentations/less/gentiana.less
New file
0,0 → 1,155
@import "functions.less";
 
.couleur1-bg { background: @orange; }
.couleur2-bg { background: @vert-moyen; }
.bordered { border: 1px solid @vert-fonce; }
 
.accordion {
h4 {
margin-left: -1em;
}
}
.accordion-group {
margin: 0pt;
}
.accordion-heading {
padding-left: 1em;
}
.btn-large {
padding: 10px;
font-size: 17px;
}
 
body {
color: black;
background: white;
}
 
header {
.couleur2-bg;
color: white;
#tela {
background: url("../logos/tela_transparent.png") no-repeat 2px 6px;
}
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
.shadow(@orange);
}
}
.gradient-bas {
@top: left top;
@bottom: left bottom;
.gradient(@vert-moyen, @top, white, @bottom);
}
 
footer {
display: none;
}
 
 
.sci {
font-style: italic;
}
 
#principal {
margin-bottom: -1em;
padding-left: 0.5em;
a:hover {
text-decoration: none;
}
h4 {
font-size: 17px;
color: @orange;
.shadow(white, 2px, 1px, 1px);
}
}
 
#canvas_fleur, #canvas_fruit {
width: 100%;
}
#floraison_value, #fructification_value {
display: none;
}
 
 
.wrapper {
@square: 120px;
width: @square;
height: @square;
.margin-center;
overflow: hidden;
img {
height: @square;
width: auto;
}
ul {
margin: 0pt;
}
}
 
.wrapper_carte {
.margin-center;
ul {
margin: 0pt;
}
 
#galerie_carte {
img {
.bordered;
}
}
}
 
.wrapper_demi {
height: 59px;
}
 
#galerie_carte {
list-style-type: none;
}
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
.en-savoir-plus {
margin-left: 0.2em;
float: left;
.couleur2-bg;
color: white;
text-shadow: 0pt 0pt 0pt black;
}
.en-savoir-plus:hover, .en-savoir-plus:visited {
text-decoration: none;
}
 
 
.haut-de-page {
margin-right: 0.2em;
float: right;
background: black;
color: white;
}
.haut-de-page:hover, .haut-de-page:visited {
text-decoration: none;
}
 
 
/branches/v5.10-vilmorin/modules/mobile/presentations/less/README
New file
0,0 → 1,6
1./ Installer les paquets de LESS (sous Mageia: ruby-less)
Dans la description, il doit y avoir une mention du mot "CSS".
 
2./ En ligne de commande, se déplacer dans le dossier contenant les fichiers LESS.
Pour convertir le fichier "fichier.less" en "fichier.css", la commande est :
lessc fichier.less > fichier.css
/branches/v5.10-vilmorin/modules/mobile/presentations/less/functions.less
New file
0,0 → 1,45
@gris: #6B7071;
@orange: #ED7826;
@orange-moyen: #F3B88F;
@rouge: rgb(225, 96, 57);
@vert-fonce: #256226;
@vert-moyen: #88AB1C;
@violet: rgb(176, 77, 255);
 
.align-center { text-align: center; }
.margin-center {
margin-left: auto;
margin-right: auto;
}
.margin-bottom-05em { margin-bottom: 0.5em; }
.margin-right-05em { margin-right: 0.5em; }
.margin-top-05em { margin-top: 0.5em; }
 
.padding-05em { padding: 0.5em; }
.padding-left-1em { padding-left: 1em; }
.padding-left-01em { padding-left: 0.1em; }
 
.small-caps { font-variant:small-caps; }
 
.gradient(@color_start:'', @position_start:'', @color_end:'', @position_end:'') {
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
 
background-image: -webkit-gradient(linear, @position_start, @position_end, color-stop(0, @color_start), color-stop(1, @color_end));
 
height: 16px;
display: block;
}
 
.shadow(@color:'', @decalage-x: 0pt, @decalage-y: 1px, @fondu: 1px) {
text-shadow: @decalage-x @decalage-y @fondu @color;
}
 
.border-radius(@radius: 2em) {
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_blanc.less
New file
0,0 → 1,94
@import "pyracantha.less";
 
.couleur1-bg { background: white; }
.couleur2-bg { background: white; }
 
 
body {
background: white;
}
 
 
header {
background: @vert-moyen;
}
 
 
.tela {
img {
@width: 60px;
width: @width;
max-width: @width;
}
}
 
 
.titre {
color: white;
.shadow(@orange);
}
 
 
.infos {
 
.bg {
padding: 0.2em;
border-radius: 0pt 0pt 1em 1em;
}
.btn {
padding: 0pt;
border-radius: 1em 1em 0pt 0pt;
}
.collapse {
width: 100%;
}
h4 {
color: @orange;
}
.textes {
padding: 0.5em 1em;
.border-radius(2em);
-webkit-overflow-scrolling: touch;
h4 {
color: @vert-fonce;
.shadow(@vert-moyen, 2px, 1px, 1px);
}
}
}
 
 
.resume {
color: black;
}
 
 
.gradient-bas {
@top: left top;
@bottom: left bottom;
@color_start: @vert-moyen;
@color_end: white;
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-gradient(linear, @top, @bottom, color-stop(0, @color_start), color-stop(1, @color_end));
}
 
.en-savoir-plus {
color: white;
background: @vert-moyen;
}
 
.haut-de-page {
color: white;
background: black;
}
/branches/v5.10-vilmorin/modules/mobile/presentations/less/pyracantha.less
New file
0,0 → 1,166
@import "functions.less";
 
.gradient-bas {
height: 16px;
display: block;
}
 
footer {
height: 60px;
width: 100%;
left: 0;
right: 0;
bottom: 0;
position: fixed;
z-index: 1000;
color: white;
background: black;
a, a:visited {
color: white;
}
}
 
.tela {
margin-right: 0.5em;
}
 
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
 
.sci {
font-style: italic;
}
 
#div-infos-latin, #div-infos-famille {
.margin-center;
.btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
a {
font-size: 16px;
}
}
 
#div-infos-famille {
margin-top: -1em;
}
#div-illustrations {
.border-radius(2em);
background: white;
margin-top: -1em;
padding-top: 20px;
padding-bottom: 20px;
}
 
 
#galerie_carte {
list-style-type: none;
}
 
@height: 260px;
#slider-pictures {
max-width: 320px;
.margin-center;
.carousel {
margin-bottom: 0pt;
}
.carousel-control {
background: none;
}
 
 
.carousel-inner > .item > img {
width: 320px;
max-height: 310px;
}
.carousel-indicators {
li {
background: @vert-fonce;
}
.active {
background: @orange;
}
}
.carousel-caption {
padding: 10px;
position: static;
h4 {
font-size: 100%;
}
p {
font-size: 90%;
}
}
 
img {
.margin-center;
}
}
 
 
#gstn-img {
max-height: 120px;
margin: 0.5em 0pt 1em 0pt;
display: inline-block;
img {
border: #EAEAEA 2px solid;
width: 100px;
}
 
 
.zoom {
margin-top: 40px;
width: 20px;
border: none;
}
}
 
 
.resume {
.align-center;
margin-top: 1em;
margin-bottom: 1em;
font-size: 16px;
}
 
 
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
 
.en-savoir-plus {
float: left;
text-shadow: 0pt 0pt 0pt black;
}
 
.haut-de-page {
float: right;
}
/branches/v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_vert.less
New file
0,0 → 1,92
@import "pyracantha.less";
 
.couleur1-bg { background: #9ac342; }
.couleur2-bg { background: #88ab1c; }
 
 
body {
background: white;
}
 
 
header {
background: @vert-moyen;
}
 
 
.tela {
img {
@width: 60px;
width: @width;
max-width: @width;
}
}
 
 
.titre {
color: white;
.shadow(@orange);
}
 
 
.infos {
 
.bg {
padding: 0.2em;
border-radius: 0pt 0pt 1em 1em;
}
.btn {
padding: 0pt;
border-radius: 1em 1em 0pt 0pt;
}
.collapse {
width: 100%;
}
.textes {
padding: 0.5em 1em;
.border-radius(2em);
background: white;
-webkit-overflow-scrolling: touch;
h4 {
color: @vert-fonce;
.shadow(@vert-moyen, 2px, 1px, 1px);
}
}
}
 
 
.resume {
color: black;
}
 
 
.gradient-bas {
@top: left top;
@bottom: left bottom;
@color_start: @vert-moyen;
@color_end: white;
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-gradient(linear, @top, @bottom, color-stop(0, @color_start), color-stop(1, @color_end));
}
 
.en-savoir-plus {
color: white;
background: @violet;
}
 
.haut-de-page {
color: white;
background: black;
}
/branches/v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_tela.less
New file
0,0 → 1,97
@import "pyracantha.less";
 
.couleur1-bg { background: @orange; }
.couleur2-bg { background: @vert-moyen; }
 
 
body {
background: @vert-fonce;
}
 
 
header {
background: white;
}
 
 
.tela {
img {
@width: 80px;
width: @width;
max-width: @width;
}
}
 
 
.titre {
color: black;
.shadow(@orange);
}
 
 
.infos {
 
.bg {
padding: 1em;
.border-radius(2em);
}
.btn {
padding: 0pt;
.border-radius(2em);
}
.collapse {
width: 100%;
}
@max-height: 220px;
.textes {
padding: 1em;
.border-radius(2em);
max-height: @max-height;
overflow: auto;
background: @orange-moyen;
-webkit-overflow-scrolling: touch;
h4 {
color: @vert-fonce;
.shadow(@vert-moyen, 2px, 1px, 1px);
}
}
}
 
 
 
.resume {
color: white;
}
 
 
.gradient-bas {
@top: left top;
@bottom: left bottom;
@color_start: white;
@color_end: @vert-fonce;
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-gradient(linear, @top, @bottom, color-stop(0, @color_start), color-stop(1, @color_end));
}
 
.en-savoir-plus {
color: white;
background: @violet;
}
 
.haut-de-page {
color: white;
background: black;
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/css/smartflore.css
New file
0,0 → 1,226
#smartflore-fiche #smartflore-entete h1 {
font-size: 3.5em;
margin-top: 10px;
margin-bottom: -10px;
}
 
#smartflore-fiche .smartflore-titre-section {
background-color: #928B71;
color: #FFFFFF;
padding-top: 10px;
padding-bottom: 10px;
margin-bottom: 20px;
}
 
#smartflore-fiche .smartflore-titre-section a {
font-size: 2em;
font-weight: bold;
}
 
#smartflore-fiche .smartflore-titre-section .panel-title {
text-align: center;
}
 
#smartflore-fiche .smartflore-titre-section-icone {
float: left;
}
 
#smartflore-fiche .smartflore-contenu-section {
margin: 20px;
font-size: 1.5em;
text-align: justify;
}
 
#smartflore-fiche #smartflore-entete {
text-align: center;
}
 
#smartflore-fiche .smart-flore-sf {
font-size: 2em;
color: #DE6E40;
}
 
#smartflore-fiche #smart-flore-logo-tela {
bottom: 15px;
height: 80px;
position: relative;
}
 
#smartflore-fiche #smartflore-footer .smartflore-footer-bouton {
text-align: center;
}
 
#smartflore-fiche #smartflore-footer .smartflore-footer-bouton .btn {
font-size: 2em;
background-color: #928B71;
color: #FFFFFF;
}
 
#smartflore-fiche #smartflore-noms h2 {
margin-top: 0px;
font-size: 1.5em;
}
 
#smartflore-illustrations {
background-color: #928B71;
padding-bottom: 10px;
padding-top: 10px;
margin-bottom: 20px;
}
 
#smartflore-illustrations .carousel-inner {
height: 40vh;
max-width: 100%;
}
 
#smartflore-illustrations .carousel-inner .item {
height: 100%;
}
 
#smartflore-illustrations .carousel-inner .item img {
height: 100%;
max-width: 100vw;
}
 
#smartflore-illustrations .carousel-control.right {
background-image : none;
}
 
#smartflore-illustrations .carousel-control.left {
background-image : none;
}
 
#smartflore-fiche #smartflore-noms h3, #smartflore-fiche #smartflore-noms h4 {
font-size: 1.1em;
}
 
#smartflore-fiche #smartflore-noms {
font-size: 2em;
color: #FFFFFF;
text-align: center;
}
 
#smartflore-fiche .smartflore-nom-verna {
margin-bottom: 0px;
}
 
#smartflore-fiche .smartflore-nom-sci, #smartflore-fiche .smartflore-famille {
margin-top: 5px;
display: inline-block;
}
 
#smartflore-fiche .smartflore-nom-sci {
font-style: italic;
}
 
#smartflore-footer #smartflore-sources {
display: none;
}
 
#smartflore-partenaires {
padding-left: 0px;
padding-right: 0px;
margin-top: 15px;
}
 
#smartflore-footer #smartflore-partenaires #smartflore-accordeon-partenaires {
background-color: #EEEEEE;
color: black;
font-size: 2em;
margin-bottom: 0;
text-align: center;
color: #666666;
}
 
#smartflore-footer #collapse-partenaires {
padding-bottom: 5px;
font-size: 0.8em;
}
 
#smartflore-footer #smartflore-partenaires #smartflore-accordeon-partenaires h4 {
font-size: 0.8em;
}
 
#smartflore-footer .smartflore-footer-partenaires-logo {
max-height: 30vh;
max-width: 40vw;
}
 
/**
*
* Media Queries
*
*/
@media screen and (max-width: 384px) {
#smartflore-fiche #smartflore-entete h1 {
font-size: 2.2em;
}
#smartflore-fiche .smartflore-contenu-section {
margin: 20px;
font-size: 1em;
}
#smartflore-fiche #smartflore-noms h2 {
font-size: 1.2em;
}
#smartflore-fiche #smartflore-noms h3, #smartflore-fiche #smartflore-noms h4 {
font-size: 0.6em;
}
#smartflore-fiche #smartflore-footer .smartflore-footer-bouton .btn, #smartflore-footer .smartflore-titre-partenaires {
font-size: 0.9em;
}
#smartflore-fiche .smartflore-titre-section a {
font-size: 1.5em;
}
#smartflore-illustrations-galerie-carousel .carousel-caption {
font-size: 0.83em;
bottom: 0px;
}
#smartflore-illustrations-galerie-carousel .carousel-indicators {
bottom: -10px;
}
}
 
@media all and (orientation:portrait) {
#smartflore-illustrations .carousel-inner {
height: 40vh;
}
#smartflore-fiche #smart-flore-logo-tela {
bottom: 13px;
height: 7vh;
position: relative;
min-height: 50px;
}
#smartflore-fiche #smartflore-entete h1 {
margin-top: -3px;
margin-bottom: -6px;
}
}
 
@media all and (orientation:landscape) {
#smartflore-illustrations .carousel-inner {
height: 90vh;
}
#smartflore-fiche #smartflore-entete h1 {
margin-top: -10px;
margin-bottom: -10px;
}
#smartflore-illustrations-galerie-carousel .carousel-caption {
font-size: 0.9em;
bottom: 2px;
}
#smartflore-illustrations-galerie-carousel .carousel-indicators {
bottom: -10px;
}
}
/branches/v5.10-vilmorin/modules/mobile/presentations/js/mobile.js
New file
0,0 → 1,36
$(document).ready(function() {
// Activation du carousel d'images
$('#smartflore-illustrations-galerie-carousel').carousel();
// Pour que les sources s'affichent dans une nouvelle fenêtre
$('#smartflore-footer-button-sources').click(function() {
voirSources();
});
// Pas sur que window.innerWidth puisse jamais être indéfini mais on ne sait jamais
if(!!window.innerWidth) {
var largeurFenetre = window.innerWidth;
// Tablettes / écran moyens, On met du L
if(largeurFenetre > 500 && largeurFenetre < 1000) {
adapterTailleImages('L');
} else {
// Plus de 1000 px, XL est bien plus agréable
if(largeurFenetre >= 1000) {
adapterTailleImages('XL');
}
}
}
function voirSources() {
var w = window.open();
var html = $("#smartflore-sources").html();
$(w.document.body).html(html);
}
function adapterTailleImages(taille) {
$('#smartflore-illustrations-galerie-carousel img').each(function(index) {
var src = $(this).attr('src');
$(this).attr('src', src.replace('S', taille));
});
}
});
/branches/v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/tela.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/tela.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg
Cannot display: file marked as a binary type.
svn:mime-type = image/jpeg
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg
New file
Property changes:
Added: svn:mime-type
+image/jpeg
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg
Cannot display: file marked as a binary type.
svn:mime-type = image/jpeg
/branches/v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg
New file
Property changes:
Added: svn:mime-type
+image/jpeg
\ No newline at end of property
/branches/v5.10-vilmorin/modules/mobile/squelettes/smartflore.tpl.html
New file
0,0 → 1,186
<?php
$icones = array('glyphicon-eye-open', 'glyphicon-grain', 'glyphicon-home');
$index_icones = 0;
?>
<!DOCTYPE html>
<html>
<head>
<title>Smart'Flore</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="content-language" content="fr" />
<meta http-equiv="cache-control" content="no-cache">
<!-- Favicones -->
<link rel="shortcut icon" type="image/x-icon" href="http://resources.tela-botanica.org/tb/img/16x16/favicon.ico" />
<!-- Viewport -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
<!-- CSS -->
<link href="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/photoswipe.css" type="text/css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="<?= $css ?>" rel="stylesheet" type="text/css" id="custom-css" />
<link href="modules/mobile/presentations/css/smartflore.css" rel="stylesheet" type="text/css" id="smart-flore-css" />
 
<!-- Javascript -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/klass.min.js"></script>
<script src="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/code.photoswipe.jquery-3.0.5.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="modules/mobile/presentations/js/mobile.js"></script>
<style>
.btn {border-radius:2em;}
.container-fluid {padding: 0px;}
[class*="span"] {margin-left: 0px;}
.accordion {margin-top: 1em;}
.accordion-heading .accordion-toggle {padding: 0pt 10px;}
</style>
</head>
 
<body>
<div id="smartflore-fiche">
<div id="smartflore-entete">
<h1>
<img id="smart-flore-logo-tela" src="http://resources.tela-botanica.org/tb/img/128x128/logo_carre_officiel.png" /> <span class="smart-flore-sf">S</span>mart'<span class="smart-flore-sf">F</span>lore
</h1>
</div>
<div id="smartflore-illustrations">
<div id="smartflore-noms">
<h2 class="smartflore-nom-verna">
<?= $texte['titre'][0]; ?>
</h2>
<h3 class="smartflore-nom-sci">
<?= $texte['titre'][1]; ?>
</h3>
<h4 class="smartflore-famille">
Famille des <?= $texte['titre'][2]; ?>
</h4>
</div>
<div id="smartflore-illustrations-galerie">
<? if (count($illustrations) != 0) : ?>
<div id="smartflore-illustrations-galerie-carousel" class="carousel slide" data-ride="carousel" data-interval="false">
<!-- Indicators -->
<ol class="carousel-indicators">
<? for($ill = 0; $ill < count($illustrations); $ill++) { ?>
<li data-target="#smartflore-illustrations-galerie-carousel" data-slide-to="<?= $ill; ?>" class="<?= ($ill == 0) ? 'active' : ''; ?>"></li>
<?php } ?>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<? for($ill = 0; $ill < count($illustrations); $ill++) { ?>
<div class="item <?= ($ill == 0) ? 'active' : ''; ?>">
<? if (trim($illustrations[$ill]['legende']['texte']) != '&nbsp;') : ?>
<? $alt = $illustrations[$ill]['legende']['titre'].' ('.$illustrations[$ill]['legende']['texte'].')'; ?>
<? else : ?>
<? $alt = $illustrations[$ill]['legende']['titre']; ?>
<? endif; ?>
<img class="img-responsive center-block" src="<?= $illustrations[$ill]['src']; ?>" alt="<?= $alt; ?>">
<div class="carousel-caption">
<?= $alt; ?>
</div>
</div>
<?php } ?>
</div>
<!-- Controls -->
<a class="left carousel-control" href="#smartflore-illustrations-galerie-carousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#smartflore-illustrations-galerie-carousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<? endif; ?>
</div>
</div>
<div id="smartflore-sections">
<div class="panel-group" id="smartflore-accordeon-sections" role="tablist" aria-multiselectable="true">
<div>
<? foreach($texte['corps'] as $titre_section => $texte_section) : ?>
<div class="panel-heading smartflore-titre-section" role="tab" id="heading<?= md5($titre_section); ?>">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#smartflore-accordeon-sections" href="#collapse<?= md5($titre_section); ?>" aria-expanded="true" aria-controls="collapse<?= md5($titre_section); ?>">
<span class="glyphicon <?= $icones[$index_icones++]; ?> smartflore-titre-section-icone margin-left-1em margin-top-03em"></span>
<?= $titre_section; ?>
</a>
</h4>
</div>
<div id="collapse<?= md5($titre_section); ?>" class="panel-collapse collapse smartflore-contenu-section" role="tabpanel" aria-labelledby="heading<?= md5($titre_section); ?>">
<div class="panel-body">
<?= $texte_section; ?>
</div>
</div>
<? endforeach; ?>
</div>
</div>
</div>
<div id="smartflore-footer">
<div class="col-md-12">
<div class="col-md-4 col-xs-4 smartflore-footer-bouton">
<a href="<?= $lien_fiche; ?>" target="_blank">
<button type="button" class="btn btn-default" aria-label="Left Align">
En savoir plus
</button>
</a>
</div>
<div class="col-md-4 col-xs-4 smartflore-footer-bouton">
<button id="smartflore-footer-button-sources" type="button" class="btn btn-default" aria-label="Left Align">
Sources
</button>
<div id="smartflore-sources">
<?= $texte['sources']; ?>
</div>
</div>
<div class="col-md-4 col-xs-4 smartflore-footer-bouton">
<a href="<?= $lien_edition; ?>" target="_blank">
<button type="button" class="btn btn-default" aria-label="Left Align">
Modifier
</button>
</a>
</div>
</div>
<div class="clearfix"></div>
<div class="col-md-12" id="smartflore-partenaires">
<div class="panel-group" id="smartflore-accordeon-partenaires" role="tablist" aria-multiselectable="true">
<div class="panel-heading smartflore-titre-partenaires" role="tab" id="heading-partenaires">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#smartflore-accordeon-partenaires" href="#collapse-partenaires" aria-expanded="true" aria-controls="collapse-partenaires">
<span class="glyphicon glyphicon-linkglyphicon glyphicon-link smartflore-titre-partenaires-icone margin-left-1em margin-top-03em"></span>
Partenaires
</a>
</h4>
</div>
<div id="collapse-partenaires" class="panel-collapse collapse smartflore-contenu-partenaires" role="tabpanel" aria-labelledby="heading-partenaires">
<div class="panel-body">
<div class="col-md-6 col-xs-6">
<img class="smartflore-footer-partenaires-logo" src="<?= $url_logos; ?>logo-msjs.jpg" />
</div>
<div class="col-md-6 col-xs-6">
<img class="smartflore-footer-partenaires-logo" src="<?= $url_logos; ?>logo-fondation-nd.jpg" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
/branches/v5.10-vilmorin/modules/mobile/sources/Texte.php
New file
0,0 → 1,129
<?php
// declare(encoding='UTF-8');
/**
* Classe Mobile Wikini.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Isabelle NEMBROT <isabelle.nembrot@tela-botanica.org>
* @copyright 2013 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 Texte extends aControleur {
 
private $conteneur = null;
private $donnees = array();
private $format = "text/html";
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
parent::__construct();
}
public function getDonnees() {
$url_wiki = $this->obtenirUrlWikini();
$obj = json_decode(file_get_contents($url_wiki));
//echo '<pre>'.print_r($obj, true).'</pre>';exit;
$this->donnees['corps'] = $obj->{'texte'};
if (strpos($this->format, "html") != false) {
$this->obtenirCorpsHtml();
} else {
$this->obtenirCorpsPlain();
}
if ($this->donnees['corps'] != "") {
$this->donnees['corps'] = preg_split('/===/', $this->donnees['corps'], -1, PREG_SPLIT_NO_EMPTY);
$this->extraireInfosTableauCorps();
if (strpos($this->format, "html") != false) {
$this->obtenirTitreHtml();
} else {
$this->obtenirTitrePlain();
}
}
return $this->donnees;
}
private function extraireInfosTableauCorps() {
$this->donnees['titre'] = array_shift($this->donnees['corps']);
$this->donnees['sources'] = array_pop($this->donnees['corps']);
// array_pop "gratuit" pour supprimer la case qui ne contient que le terme "sources"
array_pop($this->donnees['corps']);
$corps_fmt = array();
// Le tableau contient un titre de section puis son contenu, puis le titre de la section suivante
// puis son contenu on dépile les éléments deux par deux pour faire un tableau associatif pas trop relou à afficher
for($i = 0; $i < count($this->donnees['corps']); $i = $i+2) {
$corps_fmt[$this->donnees['corps'][$i]] = $this->donnees['corps'][$i + 1];
}
$this->donnees['corps'] = $corps_fmt;
}
//formater pour AppUrls ?
public function obtenirUrlWikini() {
$titre = urlencode("Fiche simplifiée Smart'flore");
$base_url_wiki = Config::get('smartFloreWikiTpl');
$url_wiki = $base_url_wiki
.strtoupper($this->conteneur->getParametre('referentiel'))."nt".$this->nomCourant->getNomSelectionne()->get('num_taxonomique')
."?txt.format=".$this->format."&txt.section.titre=".$titre;
return ($url_wiki);
}
private function obtenirCorpsHtml() {
$a_remplacer = array('<h3>', '</h3>');
$this->donnees['corps'] = str_replace($a_remplacer, "===", $this->donnees['corps']);
}
private function obtenirCorpsPlain() {
$a_enlever = array(Chr(10).'=', '='.Chr(10), Chr(10).''.Chr(10));
$this->donnees['corps'] = str_replace($a_enlever, '', $this->donnees['corps']);
$this->donnees['corps'] = str_replace(Chr(10), '<br />', $this->donnees['corps']);
}
private function obtenirTitreHtml() {
$a_remplacer = array('<b>', '</b>', '(<br />', '<br />)');
$this->donnees['titre'] = str_replace($a_remplacer, '<br />', $this->donnees['titre']);
$a_enlever = array(Chr(10).'<br />', '<br />'.Chr(10), Chr(10).''.Chr(10), '<br />'.Chr(10).'<br />'.Chr(10));
$this->donnees['titre'] = str_replace($a_enlever, '', $this->donnees['titre']);
$this->separer_NomCommun_NomSci();
}
 
private function separer_NomCommun_NomSci() {
$this->donnees['titre'] = str_replace('<br />', '::', $this->donnees['titre']);
$this->donnees['titre'] = preg_split("/::/", $this->donnees['titre'], -1, PREG_SPLIT_NO_EMPTY);
$this->donnees['nom-commun'] = $this->donnees['titre'][0]; // sauf erreur ? parser le wikini serait peut-être plus adapté
}
private function obtenirTitrePlain() {
$this->donnees['titre'] = str_replace('**', '<br />', $this->donnees['titre']);
$a_remplacer = array('(<br />', '<br />)', '<br /><br />');
$this->donnees['titre'] = str_replace($a_remplacer, '<br />', $this->donnees['titre']);
$this->separer_NomCommun_NomSci();
$this->separer_NomSci_NomAuteur();
}
 
private function separer_NomSci_NomAuteur() {
$nom_sci = str_replace('//', '::', $this->donnees['titre'][1]);
$nom_sci = preg_split("/::/", $nom_sci, -1, PREG_SPLIT_NO_EMPTY);
$this->donnees['titre'][1] = "<i>".$nom_sci[0]."</i> ".$nom_sci[1];
}
}
?>
/branches/v5.10-vilmorin/modules/mobile/sources/Floraison.php
New file
0,0 → 1,198
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Floraison extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $textes = null;
private $meta = null;
private $wikini = null;
private $informations = null;
private $mois = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août',
'septembre', 'octobre', 'novembre', 'décembre');
private $CosteFormate;
private $CosteTexte;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->textes = $this->conteneur->getApiTextes();
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->informations = $this->conteneur->getApiInformations();
$this->appUrls = $this->conteneur->getAppUrls();
}
public function getDonnees() {
if ($this->referentiel == 'bdtfx') {
$this->getCoste();
}
if (isset($this->CosteFormate['floraison'])) {
$this->donnees['floraison'] = $this->getIndiceMois($this->CosteFormate['floraison']);
} else {
$this->getFloraisonBaseflor();
}
if (isset($this->CosteFormate['fructification'])) {
$this->donnees['fructification'] = $this->getIndiceMois($this->CosteFormate['fructification']);
} else {
$this->donnees['fructification'] = -1;
}
return $this->donnees;
}
private function getCoste() {
$coste = array();
$this->textes->setProjet('coste');
$this->textes->setId('bdtfx.nn:'.$this->nomCourant->getNnr());
$texte = $this->textes->getTexte();
$texte = array_pop($texte['resultats']);
if ($texte) {
$coste['titre'] = $texte['titre'];
// TODO: réintroduire les modif' effectuées sur modules/fiche/formateurs/Description.php
// -les joies du code copié/collé-
$coste['description'] = $this->mettreEnFormeCoste($texte['texte']);
}
$this->donnees['coste'] = $coste;
}
private function getIndiceMois($elt) {
$mois = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août',
'septembre', 'octobre', 'novembre', 'décembre');
$indice_mois = -1;
$elt = $this->nettoyerTexte($elt);
$arr = preg_split('/-/', $elt, -1, PREG_SPLIT_NO_EMPTY);
if (isset($arr[1])) {
$mois1 = $this->getIndiceMois($arr[0]);
$mois2 = $this->getIndiceMois($arr[1]);
$indice_mois = $mois1.'-'.$mois2;
} else {
for ($i = 0; $i < count($mois); $i++) {
if ($elt == $mois[$i]) {
$indice_mois = $i;
}
}
}
return $indice_mois;
}
private function nettoyerTexte($texte) {
$texte = trim($texte);
$a_effacer = array('.', ' ', 'de');
$texte = str_replace($a_effacer, '', $texte);
 
$texte = strtolower($texte);
return $texte;
}
 
private function getFloraisonBaseflor() {
$baseflor = array();
$this->informations->setProjet('baseflor');
$this->informations->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations->setNum_nom($this->conteneur->getParametre('num_nom'));
$informations = $this->informations->getInformationsDescription();
if ($informations){
$baseflor['chorologie'] = isset($informations['chorologie']) ? $informations['chorologie'] : '';
$baseflor['inflorescence'] = isset($informations['inflorescence']) ? $informations['inflorescence'] : '';
$baseflor['sexualite'] = isset($informations['sexualite']) ? $informations['sexualite'] : '';
$baseflor['ordre_maturation'] = isset($informations['ordre_maturation']) ? $informations['ordre_maturation'] : '';
$baseflor['pollinisation'] = isset($informations['pollinisation']) ? $informations['pollinisation'] : '';
$baseflor['dissemination'] = isset($informations['dissemination']) ? $informations['dissemination'] : '';
$baseflor['fruit'] = isset($informations['fruit']) ? $informations['fruit'] : '';
$baseflor['couleur_fleur'] = isset($informations['couleur_fleur']) ? $informations['couleur_fleur'] : '';
$baseflor['macule'] = isset($informations['macule']) ? $informations['macule'] : '';
$baseflor['type_bio'] = isset($informations['type_bio']) ? $informations['type_bio'] : '';
$baseflor['form_vegetale'] = isset($informations['form_vegetale']) ? $informations['form_vegetale'] : '';
$baseflor['floraison'] = isset($informations['floraison']) ? $informations['floraison'] : '';
}
$this->donnees['baseflor'] = $baseflor;
$this->donnees['floraison'] = $baseflor['floraison'];
}
 
 
public function mettreEnFormeCoste($texte){
$this->CosteFormate = array();
$this->CosteTexte = $texte;
//decouper elements remarquables avant le texte
$this->separerNomScientifique_a_NomCommun();
$this->CosteTexte = preg_replace('/\//','',$this->CosteTexte);
//decouper elements remarquables après le texte
$this->separerEcologie_a_Usages();
//le morceau qui reste est le gros de la description
$this->CosteTexte = str_replace(';','<br /> -','- '.$this->CosteTexte);
$this->CosteTexte = str_replace('–','',$this->CosteTexte);
$this->CosteFormate['texte'] = htmlspecialchars_decode(htmlentities($this->CosteTexte, ENT_NOQUOTES, 'UTF-8'), ENT_NOQUOTES);
return $this->CosteFormate;
}
 
public function separerNomScientifique_a_NomCommun(){
if ( preg_match('/\*\*(.+)\*\*([^–]*)–/', $this->CosteTexte, $retour)){
/* !! attention on enlève un tiret cadratin – pas un trait d'union - !! */
$a_enlever = array('/–/','/\./' );
$this->CosteFormate['nom_scientifique'] = preg_replace($a_enlever,'',$retour[1]);
if(preg_match('/\((.+)\)/',$retour[2],$synonymes)){
$this->CosteFormate['synonymes'] = $synonymes[1];
} else {
$this->CosteFormate['nom_scientifique'] .= $retour[2];
}
$this->CosteTexte = str_replace($retour[0],'',$this->CosteTexte);
}
/* !! attention il y a un espace avant les // du début !! */
if ( preg_match('/^ \/\/([^\/\/]+)\/\//', $this->CosteTexte, $retour)){
$a_enlever = array('/–/','/\./' );
$this->CosteFormate['nom_commun'] = preg_replace($a_enlever,'',$retour[1]);
$this->CosteTexte = str_replace($retour[0],'',$this->CosteTexte);
}
}
 
public function separerEcologie_a_Usages(){
if ( preg_match('/\.[ ]*([A-ZÉÀÈ].+)$/',$this->CosteTexte, $retour)){
$this->CosteFormate['ecologie'] = $retour[1];
$this->CosteTexte = str_replace($retour[0],'.',$this->CosteTexte);
if (isset($this->CosteFormate['ecologie']) && preg_match('/–(.+)/', $this->CosteFormate['ecologie'] , $retour)){
$this->CosteFormate['repartition'] = $retour[1];
$this->CosteFormate['ecologie'] = str_replace($retour[0],'',$this->CosteFormate['ecologie']);
}
if (isset($this->CosteFormate['repartition']) && preg_match('/=(.+)$/', $this->CosteFormate['repartition'], $retour)){
$this->CosteFormate['floraison'] = $retour[1];
$this->CosteFormate['repartition'] = str_replace($retour[0],'',$this->CosteFormate['repartition']);
}
if (isset($this->CosteFormate['floraison']) && preg_match('/–(.+)$|\n(.+)$/',$this->CosteFormate['floraison'], $retour)){
$this->CosteFormate['usages'] = isset($retour[1]) ? $retour[1] : $retour[2];
$this->CosteFormate['floraison'] = str_replace($retour[0],'.',$this->CosteFormate['floraison']);
}
if (isset($this->CosteFormate['floraison']) && preg_match('/([Ff]l\.) (.+)/',$this->CosteFormate['floraison'], $retour)){
$this->CosteFormate['floraison'] = $retour[2];
$this->CosteFormate['floraison'] = str_replace($retour[1],'',$this->CosteFormate['floraison']);
}
if (isset($this->CosteFormate['floraison']) && preg_match('/([Ff]r\.) (.+)/',$this->CosteFormate['floraison'], $retour)){
$this->CosteFormate['fructification'] = $retour[2];
$this->CosteFormate['floraison'] = str_replace($retour[0],'',$this->CosteFormate['floraison']);
$this->CosteFormate['floraison'] = str_replace(',','',$this->CosteFormate['floraison']);
$this->CosteFormate['fructification'] = str_replace($retour[1],'',$this->CosteFormate['fructification']);
$this->CosteFormate['fructification'] = str_replace('.','',$this->CosteFormate['fructification']);
}
}
}
}
?>
/branches/v5.10-vilmorin/modules/mobile/sources/Illustrations.php
New file
0,0 → 1,115
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Illustrations extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $images = null;
private $appUrls = null;
private $meta = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
$this->meta = $this->conteneur->getApiMetaDonnees();
 
$this->images->setApi(Images::API_DEL);
}
 
public function getDonnees() {
$this->donnees = array();
$this->getPhotos();
$dessin = $this->addDessin();
if (!empty($dessin)) {
array_push($this->donnees, $dessin);
}
 
return $this->donnees;
}
 
public function getPhotos() {
$listePhotos = $this->images->getInfosImagesGalerieMobile($this->nomCourant->getNnr());
foreach($listePhotos as $index) {
$this->formaterListePhotos($index);
}
}
 
private function formaterListePhotos($images) {
$infosImg['src'] = $images['binaire.href'];
 
$obs = $images['observation'];
if ($obs['auteur.nom'] != '') {
$infosImg['legende']['titre'] = $obs['auteur.nom'];
if ($obs['auteur.prenom'] != '') {
$infosImg['legende']['titre'] .= ' '.$obs['auteur.prenom'];
}
} else {
$infosImg['legende']['titre'] = "Anonyme";
}
 
if ($obs['date_observation'] != '') {
$infosImg['legende']['titre'] .= ", le ".$this->formaterDateImg($obs['date_observation']);
}
 
if ($obs['zone_geo'] != '') {
$infosImg['legende']['texte'] = $obs['zone_geo'];
if ($obs['lieudit'] != '') {
$infosImg['legende']['texte'] .= ' ('.$obs['lieudit'].')';
}
} else {
$infosImg['legende']['texte'] = "&nbsp;";
}
 
array_push($this->donnees, $infosImg);
}
 
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
$dateFmt = 'inconnue';
} else {
$dateFmt = strftime('%e %B %Y', strtotime($date));
}
return $dateFmt;
}
 
public function addDessin() {
$img = array();
$projet = Config::get($this->referentiel.'.baseDessins');
if ($projet != "") {
$dessin = array();
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$this->images->setProjet($projet);
$this->images->setNnTaxon($tax);
if ($this->referentiel == 'bdtfx') {
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
$this->images->setApi(Eflore::API_DEL);
if (count($costeImg) != 0) {
$img['src'] = $costeImg[key($costeImg)]['binaire.href'];
$img['legende']['titre'] = "Illustration de Coste";
$img['legende']['texte'] = "&nbsp;";
}
}
}
 
return $img;
}
}
?>
/branches/v5.10-vilmorin/modules/mobile/sources/NomsCommuns.php
New file
0,0 → 1,40
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 NomsCommuns extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $nomsVernaculaires = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
$this->referentiel = $this->conteneur->getParametre('referentiel');
}
public function getDonnees() {
$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$projet = Config::get($this->referentiel.'.referentielVerna');
if ($projet != '') {
$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($projet, $nt);
$this->donnees = (isset($nomsVerna['resultat']) && is_array($nomsVerna['resultat'])) ? array_slice($nomsVerna['resultat'], 0, 1) : array();
}
return $this->donnees;
}
}
?>
/branches/v5.10-vilmorin/modules/mobile/sources/Repartition.php
New file
0,0 → 1,47
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @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 Repartition extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $donnees = array();
private $referentiel = 'bdtfx';
private $cartes;
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->cartes = $this->conteneur->getApiCartes();
$this->referentiel = $this->conteneur->getParametre('referentiel');
}
 
public function getDonnees() {
$donnees['carte'] = $this->getChorodepMiniature();
return $donnees;
}
 
private function getChorodepMiniature() {
$url_carte = null;
if (Config::get($this->referentiel.'.baseRepartition') != null) {
$this->cartes->setProjet(Config::get($this->referentiel.'.baseRepartition'));
$this->cartes->setLargeur('570x534');
$nt = $this->nomCourant->getNt();
$this->cartes->setId("{$this->referentiel}.nt:$nt");
$url_carte = $this->cartes->getUrlDataSvg();
}
return $url_carte;
}
}
?>
Property changes:
Added: svnkit:entry:sha1-checksum
+7e6935a1dae5a65376b5236b5be79756881600b7
\ No newline at end of property
/branches/v5.10-vilmorin/modules/niveau/Niveau.php
New file
0,0 → 1,59
<?php
class Niveau extends aControleur {
public function executerActionParDefaut() {
$this->afficherMoteurNiveau();
}
public function afficherMoteurNiveau() {
$this->setSortie(self::RENDU_CORPS, $this->afficherNiveau());
}
public function afficherNiveau() {
$donnees['parametres'] = $this->capturerParametres();
$donnees['url_form'] = $this->urls->obtenirUrlBase();
$donnees['i18n'] = I18n::get('Niveau');
$donnees['niveau'] = Registre::get('parametres.niveau');
return $this->getVue('niveau', $donnees);
}
private function capturerParametres() {
$parametre['referentiel'] = (isset($_GET['referentiel'])) ? $_GET['referentiel'] : Config::get('referentiel_defaut');
$parametre['module'] = (isset($_GET['module'])) ? $_GET['module'] : Config::get('module_defaut');
$parametre['action'] = (isset($_GET['action'])) ? $_GET['action'] : Config::get('action_defaut');
if (isset($_GET['type_nom'])) {
$parametre['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['nom'])) {
$parametre['nom'] = $_GET['nom'];
}
if (isset($_GET['num_nom'])) {
$parametre['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom_retenu'])) {
$parametre['nom_retenu'] = $_GET['nom_retenu'];
}
if (isset($_GET['resultat'])) {
$parametre['resultat'] = $_GET['resultat'];
}
$url = "?";
foreach ($parametre as $variable => $valeur) {
$url .= $variable."=".$valeur.'&';
}
$url = rtrim($url, '&');
$parametre['url'] = $this->urls->obtenirUrlBase().$url;
$niveau = '2';
if (isset($_GET['niveau'])) {
$niveau = $_GET['niveau'];
}
Registre::set('parametres.niveau', $niveau);
$parametre['niveau'] = $niveau;
return $parametre;
}
}
?>
/branches/v5.10-vilmorin/modules/niveau/squelettes/niveau.tpl.html
New file
0,0 → 1,26
<!-- DEBUT FORM_NIVEAU -->
<script type="text/javascript">
$(document).ready(function() {
$( "#radio" ).buttonset();
$('#eflore_niveau_submit').hide();
$(".zone-choix-niveau input").click(function() {
$('#eflore_niveau_submit').click();
});
});
</script>
 
<div class="choixNiveau">
<span class="choix-niveau">
<a href="<?=$parametres['url']?>&niveau=1" class="niveau1<?=$parametres['niveau'] == 1? ' actif' : ''?>">Débutant</a>
</span>
<span class="choix-niveau">
<a href="<?=$parametres['url']?>&niveau=2" class="niveau2<?=$parametres['niveau'] == 2? ' actif' : ''?>">Intermédiaire</a>
</span>
<span class="choix-niveau">
<a href="<?=$parametres['url']?>&niveau=3" class="niveau3<?=$parametres['niveau'] == 3? ' actif' : ''?>">Expert</a>
</span>
</div>
 
 
 
<!-- FIN FORM_NOM -->
/branches/v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-ref.tpl.html
New file
0,0 → 1,25
<div>
 
<h3> Références bibliographiques concernant ce syntaxon :</h3>
<span class="italique">Dernière référence : </span><br/>
<ul>
<li>
<?=empty($liste) ? "Pas de données" : $liste['der']?>
</li>
</ul>
<br/>
<?if (!empty($liste['anteriorites'])): ?>
<span class="italique">Références Antérieures: </span><br/>
<?foreach ($liste['anteriorites'] as $ref) : ?>
<ul>
<li>
<?=$ref?>
</li>
</ul>
<?endforeach ; ?>
<?endif ; ?>
 
</div>
/branches/v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-taxons.tpl.html
New file
0,0 → 1,16
<div>
 
<h3>Liste des taxons ayant le même code catminat. (<?=$catminat?>)</h3>
Ils ont la même écologie que le taxon consulté. On les rencontre souvent ensemble sur le terrain (en fonction de leur répartition respective).
<? if (!empty($liste)) : ?>
<?php foreach ($liste as $cle => $element ) : ?>
<ul>
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($element['num_nomen'],'nom_scientifique'); ?>">
<li><?=$element['nom_sci']?> </li>
</a>
</ul>
<?endforeach;?>
<? else : ?>
Pas de données.
<? endif; ?>
</div>
/branches/v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-synonymes.tpl.html
New file
0,0 → 1,14
<div>
 
<h3>Liste des synonymes de ce syntaxon :</h3>
<? if (!empty($liste)) : ?>
<?php foreach ($liste as $cle => $element ) : ?>
<ul>
<li><?=$element['syntaxon']?> </li>
</ul>
<?endforeach;?>
<? else : ?>
Pas de données.
<? endif; ?>
</div>
/branches/v5.10-vilmorin/modules/liste_fancy_box_phytosocio/ListeFancyBoxPhytosocio.php
New file
0,0 → 1,148
<?php
/**
* Cette classe est le contrôleur pour l'affichage de listes dans des fenêtre fancy box.(fenêtres phytosociologie)
*
* @category PHP 5.2
* @package eflore-consultation
* @author Mathilde Salthun-lassalle <mathilde@tela-botanica.org>
* @copyright 2012 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 ListeFancyBoxPhytosocio extends aControleur {
private $type = '';
private $informations;
private $appUrls;
private $conteneur;
private $referentiel;
private $num_nom;
private $catminat;
public function __construct() {
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->informations = $this->conteneur->getApiInformations();
$this->syntaxons = $this->conteneur->getApiSyntaxons();
$this->appUrls = $this->conteneur->getAppUrls();
}
private function capturerParametres() {
if (isset($_GET['type'])) {
$this->type = $_GET['type'];
}
if (isset($_GET['referentiel'])) {
$this->referentiel = $_GET['referentiel'];
}
if (isset($_GET['num_nom'])) {
$this->num_nom = $_GET['num_nom'];
}
if (isset($_GET['catminat'])) {
$this->catminat= trim(urldecode($_GET['catminat']));
}
}
public function executerActionParDefaut() {
$this->executerLister();
}
public function executerLister($donnees) {
header('Content-type: text/html');
$html = $this->chargerListeHtml();
echo $html;
exit;
}
public function chargerListeHtml() {
$donnees['liste'] = '';
$html = '';
$squelette = dirname(__FILE__).'/squelettes/liste-fancy-box';
if ($this->type == 'catminat_taxons') {
$donnees = $this->getListeCatminatTaxons();
$squelette .= '-taxons';
} elseif ($this->type == 'catminat_synonymes') {
$donnees = $this->getListeCatminatSynonymes();
$squelette .= '-synonymes';
} elseif ($this->type == 'catminat_ref') {
$donnees = $this->getListeCatminatRef();
$squelette .= '-ref';
} elseif ($this->type == 'catminat_taxons_sup') {
$donnees = $this->getListeCatminatTaxonsSup();
$squelette .= '-taxons';
}
if ($donnees['liste'] !== '') {
$donnees['urls'] = $this->appUrls;
$html = $this->getVue($squelette, $donnees);
}
return $html;
}
public function getListeCatminatTaxons() {
$Catminat = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setDepart(0);
$this->informations ->setLimite('500');
$this->informations ->setBdnt($this->referentiel);
$this->informations ->setNum_nom($this->num_nom);
$informations = $this->informations->getInformationsRelationCatminat();
if($informations != ""){
$Catminat['liste'] = $informations['resultat'];
$Catminat['catminat'] = $informations['resultat'][0]['catminat_code'];
}
return $Catminat;
}
public function getListeCatminatTaxonsSup() {
$Catminat = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setDepart(0);
$this->informations ->setLimite('500');
$this->informations ->setCatminat($this->catminat);
$informations = $this->informations->getInformationsMasqueCatminat();
if($informations != ""){
$Catminat['liste'] = $informations['resultats'];
$Catminat['catminat'] = str_replace('-','/',$this->catminat);
}
return $Catminat;
}
public function getListeCatminatSynonymes() {
$Catminat = array();
$this->syntaxons->setProjet('baseveg');
$this->syntaxons->setCatminat($this->catminat);
$syntaxons = $this->syntaxons->getSyntaxonsSynonymes();
if (is_array($syntaxons)) {
$Catminat['liste'] = $syntaxons['resultat'];
$Catminat['catminat'] = $syntaxons['resultat'][0]['code_catminat'];
}
return $Catminat;
}
public function getListeCatminatRef() {
$ref = array();
$this->syntaxons->setProjet('baseveg');
$this->syntaxons->setCatminat($this->catminat);
$syntaxons = $this->syntaxons->getSyntaxonsCatminat();
if (is_array($syntaxons)) {
$ref['liste']['der'] = $syntaxons['resultat'][0]['ref_der_biblio'];
if ($syntaxons['resultat'][0]['ref_anteriorite_deux'] != '') {
$ref['liste']['anteriorites'][0] = $syntaxons['resultat'][0]['ref_anteriorite_deux'];
}
if ($syntaxons['resultat'][0]['ref_anteriorite_trois'] != '') {
$ref['liste']['anteriorites'][1]= $syntaxons['resultat'][0]['ref_anteriorite_trois'];
}
if ($syntaxons['resultat'][0]['ref_anteriorite_quatre'] != '') {
$ref['liste']['anteriorites'][2] = $syntaxons['resultat'][0]['ref_anteriorite_quatre'];
}
}
return $ref;
}
}
?>
/branches/v5.10-vilmorin/modules/recherche/Recherche.php
New file
0,0 → 1,335
<?php
class Recherche extends aControleur {
//+----------------------------------------------------------------------------------------------------------------+
// Méthodes
protected $nom = null;
protected $type_nom = 'nom_scientifique';
protected $type_resultat = '';
protected $submit = '';
protected $acces_fiche = false;
private $recherche_avancee;
private $param;
private $i18n = array();
private $parametresAvancesGeneriques = array('gen','fam','nn','nt','sp','ssp','type','sto','sti','stc');
public function initialiser() {
$this->capturerParametres();
$this->capturerParametresAvances();
$this->i18n = I18n::get('Recherche-form-avancee');
}
/**
* Fonction d'affichage par défaut
*/
public function executerActionParDefaut() {
$this->executerAccueil();
}
public function executerAccueil($donneesMoteur = array()) {
$meta = new MetaDonnees();
$meta->setProjet(Registre::get('parametres.referentiel'));
$metadonnees = $meta->getMetaDonnees();
$donneesMoteur['metadonnees_referentiel'] = $metadonnees[0];
$niveau = new Niveau();
$donnees['form_niveau'] = $niveau->afficherNiveau();
$recherchesimple = new RechercheSimple();
$donnees['form_nom'] = $recherchesimple->executerFormulaireNom($donneesMoteur);
if (Registre::get('parametres.niveau') != 1) {
$recherche_avancee = new RechercheAvancee();
$donnees['form_recherche_av'] = $recherche_avancee->executerFormulaireRechercheAv($donneesMoteur);
}
$donnees['description'] = "";
 
// le descriptif du référentiel est affiché lorsque seul le moteur est affiché (donc ni résultats, ni fiche)
if(Registre::get('parametres.module') == 'recherche' &&
Registre::get('parametres.action') == 'action-par-defaut' &&
!Registre::get('resultats')) {
$referentiel = Registre::get('parametres.referentiel');
$wiki = new Wikini();
$description = $wiki->getDescriptionReferentielFormate($referentiel);
$donnees['description'] = $description;
}
$this->afficherAccueil($donnees);
}
private function afficherAccueil($donnees) {
$donnees['i18n'] = I18n::get('Recherche-accueil');
$this->setSortie(self::RENDU_CORPS, $this->getVue('recherche_accueil', $donnees), true);
}
 
//+---------------------------------------------recherche avancee-------------------------------------+
public function executerRechercheAvancee() {
$this->param = $this->nettoyerParametresDefautRechercheAvancee($this->param);
$donnees['param'] = $this->param;
$presence = $this->rechercherCriteresDemandes();
if (empty($presence) && !empty($this->param)) {
$donnees['message_av']['attention'] = 'info_res_vide';
}
$this->executerAccueil($donnees);
if (Registre::get('resultats')) {
$_GET['resultat'] = $this->type_resultat;
$this->executerAction('Resultat', 'executerResultat');
}
}
 
private function nettoyerParametresDefautRechercheAvancee($params) {
$params_nettoyes = array();
foreach ($params as $cle => $param) {
if(!preg_match("#^\(.*\)$#", $param)) {
$params_nettoyes[$cle] = $param;
}
}
return $params_nettoyes;
}
public function rechercherCriteresDemandes() {
$noms = new Noms(Registre::get('parametres.referentiel'));
$res = $noms->getRechercheAvancee($this->param);
if ($res != false || $res['entete']['total'] != 0) {
if ($res['entete']['total'] == 1 ) {
$ids = array_keys($res['resultat']);
$nom = $res['resultat'][$ids[0]]['nom_sci'];
$url = $this->urls->obtenirUrlFiche($ids[0], 'nom_scientifique', $nom);
$this->redirigerVers($url);
} else {
$res['type'] = $this->type_nom;
Registre::set('resultats', $res);
}
} else {
$res = '';
}
return $res;
}
//+---------------------------------------------recherche simple-------------------------------------+
/*
grep-friendly: ICI->executerRechercheSimple()
En effet, cette méthode n'est jamais invoquée explicitement.
Le processus est le suivant:
* URL = index.php?type_nom=...&referentiel=..&module=recherche&action=rechercheSimple
* AppControleur::initialiser()
* `-> AppControleur::$parametres['action'] = $_GET['action']
* `-> AppControleur::executerModule()
* `-> effecture $module->$action()
* qui nous appelle ici
*/
public function executerRechercheSimple() {
$donnees['type_nom'] = $this->type_nom;
$donnees['nom'] = $this->nom;
if (strlen($donnees['nom']) < 3) {
$donnees['message']['attention'] = 'info_nb_lettres';
} else {
$presence = $this->rechercherNom();
if ($presence == '') { // s'il n'y a pas de nom
$donnees['message']['attention'] = 'info_sp_abs';
} elseif ($presence == 'sans_correspondance') {
$res = Registre::get('resultats');
$id = array_keys($res['resultat']);
$donnees['message']['nom_ss_corresp']['id'] = $id[0];
$nom = array_shift($res['resultat']);
$donnees['message']['nom_ss_corresp']['nom'] = $nom['nom_sci'];
} elseif ($presence != 'ok') { // s'il y a des noms approchés
if (!Registre::get('resultats')) { // s'il n'y a aucun nom exact
$donnees['message']['attention'] = 'info_sp_abs';
}
$donnees['message']['nom_approche'] = $presence;
}
}
 
$this->executerAccueil($donnees);
if (Registre::get('resultats')) {
$_GET['resultat'] = $this->type_resultat;
$this->executerAction('Resultat', 'executerResultat');
}
}
// regarde si il y a des résultats correspondant au nom recherché sinon recherche un nom approché
// $noms classe métier nom ou nom
private function rechercherNom() {
$noms = ($this->type_nom == 'nom_vernaculaire')
? new NomsVernaculaires(Config::get(Registre::get('parametres.referentiel').'.referentielVerna'))
: new Noms(Registre::get('parametres.referentiel'));
$approche = '';
$res = $noms->getRechercheEtendue($this->nom, $this->type_resultat);
$form = I18n::get('Recherche-form-nom');
 
if ($res == false || $res['entete']['total'] === 0) { // recherche nom approché
$approche = $this->rechercherNomApproche($noms);
} elseif ($res['entete']['total'] == 1 || $this->acces_fiche) { // renvoie à la fiche
$approche = $this->traiterAccesFiche($res);
} else { // affiche les résultats
$res['type'] = $this->type_nom;
Registre::set('resultats', $res);
$approche = 'ok';
if ($res['entete']['total'] < 3) { // si moins de 16 noms affiche en plus un nom approché
$approche = $this->rechercherNomApproche($noms);
}
}
// suppression des nomps en doublons + du nom déjà dans le moteur de recherche
// TODO: comprendre d'ou viennent les noms en doublons. Peut-être une histoire de noms similaires avec un nom d'auteur
// différent, qui une fois supprimé se retrouvent à être les même ?
if(is_array($approche)) {
$approche_sans_doublons = array();
foreach($approche as $element) {
if(!in_array($element, $approche_sans_doublons) && $element['nom'] != $this->nom) {
$approche_sans_doublons[] = $element;
}
}
$approche = $approche_sans_doublons;
}
return $approche;
}
private function traiterAccesFiche($res) {
$ids = array_keys($res['resultat']);
if ($this->type_nom == 'nom_vernaculaire') {
$id = explode(':',$res['resultat'][$ids[0]]['nom_retenu.code']);
$id = $id[1];
} else {
if ($res['resultat'][$ids[0]]['retenu'] == 'absent') { // dans le cas d'un nom sans correspondance
$res['type'] = $this->type_nom;
Registre::set('resultats', $res);
$approche = 'sans_correspondance';
return $approche;
} else {
$id = $ids[0];
}
}
$url = $this->urls->obtenirUrlFiche($id, $this->type_nom, $this->nom);
$this->redirigerVers($url);
}
private function rechercherNomApproche($noms) {
$approche = '';
$res = $noms->getRechercheFloue($this->nom);
if (!($res == false || $res['entete']['total'] === 0)) {
for ($i = 0; $i < 3; $i++) {
$nom_proche = array_shift($res['resultat']);
$approche[$i]['nom'] = ($this->type_nom == 'nom_vernaculaire') ? $nom_proche['nom'] : $nom_proche['nom_sci'];
$approche[$i]['url_nom_approche'] = $this->urls->obtenirUrlRechercheSimple($approche[$i]['nom'], $this->type_nom);
}
}
return $approche;
}
//+-----------------------------------------------méthodes utiles---------------------------------+
private function capturerParametres() {
if (isset($_REQUEST['nom'])) {
$this->nom = $this->convertirEncodageEntree(urldecode($_REQUEST['nom']));
}
if (isset($_GET['type_nom'])) {
$this->type_nom = $this->convertirEncodageEntree(urldecode($_GET['type_nom']));
}
if (isset($_GET['submit'])) {
$this->submit = $this->convertirEncodageEntree(urldecode($_GET['submit']));
}
if(isset($_GET['acces_fiche'])) {
$this->acces_fiche = true;
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $this->convertirEncodageEntree($_GET['niveau']));
}
if (isset($_GET['resultat'])) {
$this->type_resultat = $this->convertirEncodageEntree(urldecode($_GET['resultat']));
} else {
$onglet_resultat = $this->recupererTableauConfig('affich_resultats');
$this->type_resultat = $onglet_resultat[Registre::get('parametres.niveau').'_'.$this->type_nom];
}
}
private function capturerParametresAvances() {
$this->capturerParametresAvancesGeneriques();
$this->capturerParametresAvancesDependantsLangage();
$this->capturerParametresAvancesPresenceSpecifiques();
}
private function capturerParametresAvancesGeneriques() {
foreach($this->parametresAvancesGeneriques as $param) {
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = $this->convertirEncodageEntree(urldecode($_GET[$param]));
}
}
}
private function capturerParametresAvancesDependantsLangage() {
if (isset($_GET['au']) && $_GET['au'] != ''
&& $_GET['au'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-auteur']))) {
$this->param['au'] = $this->convertirEncodageEntree(urldecode($_GET['au']));
}
if (isset($_GET['bib']) && $_GET['bib'] != ''
&& $_GET['bib'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-bib']))) {
$this->param['bib'] = $this->convertirEncodageEntree(urldecode($_GET['bib']));
}
if (isset($_GET['and']) && $_GET['and'] != ''
&& $_GET['and'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-date']))) {
$this->param['and'] = $this->convertirEncodageEntree(urldecode($_GET['and']));
}
if (isset($_GET['anf']) && $_GET['anf'] != ''
&& $_GET['anf'] != urlencode($this->i18n['valeur-form-date'])) {
$this->param['anf'] = $this->convertirEncodageEntree(urldecode($_GET['anf']));
}
}
private function capturerParametresAvancesPresenceSpecifiques() {
$champs_presence = $this->obtenirChampsPresence();
foreach($champs_presence as $champ) {
$param = $champ['param'];
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = $this->convertirEncodageEntree(urldecode($_GET[$param]));
}
}
}
private function obtenirChampsPresence() {
$tableau_champs_presence = array();
$referentiel = Registre::get('parametres.referentiel');
$champs_presence_spl = explode('|', Config::get($referentiel.'.champsPresence'));
foreach($champs_presence_spl as $champ) {
$label_param_champ = explode(':', $champ);
if(count($label_param_champ) >= 2) {
$tableau_champs_presence[] = array('param' => $label_param_champ[1],
'label' => $label_param_champ[0]);
}
}
return $tableau_champs_presence;
}
protected function recupererTableauConfig($param) {
$tableau = array();
$tableauPartiel = explode(',', Config::get($param));
$tableauPartiel = array_map('trim', $tableauPartiel);
foreach ($tableauPartiel as $champ) {
if (strpos($champ, '=') === false) {
$tableau[] = $champ;
} else {
list($cle, $val) = explode('=', $champ);
$tableau[$cle] = $val;
}
}
return $tableau;
}
 
 
/**
* Convertion des valeurs de requête dans l'encodage de l'application (voir fichier config.ini : appli_encodage),
* A cause d'un bug en cours d'investigation, celle ci utilise des paramètres différents de la fonction de conversion
* D'encodage de sortie
* Cette convertion a lieu seulement si les formats sont différents.
*/
private function convertirEncodageEntree($contenu) {
if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
$contenu = mb_convert_encoding($contenu, Config::get('appli_encodage'), Config::get('sortie_encodage'));
}
return $contenu;
}
}
?>
/branches/v5.10-vilmorin/modules/recherche/squelettes/recherche_accueil.tpl.html
New file
0,0 → 1,15
<div id="bloc-recherche" class="importance1">
<h1><?=$i18n['titre-nom'];?></h1>
<?=$form_niveau;?>
<?=$form_nom;?>
<div id="conteneur_activation_definition">
<a href="#">&nbsp;</a>
</div>
<!-- niveau expert : recherche avancée -->
<?= isset($form_recherche_av) ? $form_recherche_av : '' ;?>
</div>
<div class="description-referentiel">
<span class="description-referentiel-texte">
<?=$description;?>
</span>
</div>
/branches/v5.10-vilmorin/modules/pagination/squelettes/pagination.tpl.html
New file
0,0 → 1,40
<?php if($nb_resultats > 0) {?>
 
<?php if($nb_pages > 1) {?>
Pages &nbsp;&nbsp;
<?php } ?>
 
<?php if(($page_en_cours >= $pages_debut_intervalle) && (($page_en_cours != 1)) && ($nb_pages != 1)) { ?>
<a class="premiere_page" href="<?= $url_base_pagination.'0' ?>" title="Première page">[1]</a> ...
<?php } ?>
 
<?php if($page_en_cours > 1) { ?>
<a class="page_prededente" href="<?= $url_base_pagination.(($page_en_cours - 2)*$taille_page) ?>" title="Page précedente">&lt;&lt;</a>&nbsp;&nbsp;
<?php } ?>
 
<?php if($nb_pages > 1) { ?>
<span class="pages">
<?php for($i = $pages_debut_intervalle; ($i < $pages_debut_intervalle+$pages_taille_intervalle) && $i <= $nb_pages ; $i++) : ?>
<?php if($page_en_cours == $i) { ?>
<span class="page_courante">
<?php } else { ?>
<span>
<?php } ?>
<a class="premiere_page" href="<?= $url_base_pagination.(($i - 1)*$taille_page) ?>" title="Page numéro <?= $i ?>"><?= $i ?></a>
</span>&nbsp;&nbsp;
<?php endfor; ?>
</span>
<?php } ?>
 
<?php if($page_en_cours < $nb_pages) { ?>
<a class="page_prededente" href="<?= $url_base_pagination.(($page_en_cours)*$taille_page) ?>" title="Page suivante">&gt;&gt;</a>
<?php } ?>
 
<?php if(($page_en_cours != $nb_pages) && ($nb_pages > $pages_taille_intervalle)) { ?>
... <a class="derniere_page" href="<?= $url_base_pagination.(($nb_pages-1)*$taille_page) ?>" title="Dernière page">[<?= $nb_pages; ?>]</a> &nbsp;
<?php } ?>
 
<span class="nb_resultats"> Résultats <?= $intervalle_min.' - '.$intervalle_max ?> sur <?= $nb_resultats; ?></span>
 
<?php } ?>
<hr style="clear:both;visibility:hidden;" />
/branches/v5.10-vilmorin/modules/pagination/Pagination.php
New file
0,0 → 1,80
<?php
Class Pagination extends aControleur {
private $depart = 0;
private $limite = 30;
private $total = 1;
private $taille_page = 25;
protected $urls = null;
public function Pagination() {
$this->initialiser();
}
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->urls = $this->conteneur->getAppUrls();
}
private function capturerParametres() {
if (isset($_GET['navigation_depart'])) {
$this->depart = $_GET['navigation_depart'];
unset($_GET['navigation_depart']);
}
if (isset($_GET['navigation_limite'])) {
$this->limite = $_GET['navigation_limite'];
unset($_GET['navigation_limite']);
}
$this->total = Registre::get('navigation.total');
if (isset($_GET['navigation_taille_page'])) {
$this->taille_page = $_GET['navigation_taille_page'];
unset($_GET['navigation_taille_page']);
}
}
public function getPagination() {
$donnees = array();
if ($this->depart == 0) {
$page_en_cours = 1;
} else if ($this->total != 0) {
$page_en_cours = floor(($this->depart + 1)/$this->limite + 1);
}
$pages_avant_apres = 7;
$pages_debut_intervalle = 0;
$nb_pages = 0;
if ($page_en_cours < $pages_avant_apres) {
$pages_debut_intervalle = 1;
} else {
$pages_debut_intervalle = $page_en_cours - $pages_avant_apres + 2;
}
$pages_a_afficher = $this->taille_page;
$intervalle_max = (($page_en_cours) * $this->limite);
$donnees['url_base_pagination'] = '?'.http_build_query($_GET).'&navigation.limite='.$this->limite.'&navigation.depart=';
$nb_pages = ceil($this->total/$this->limite);
if ($page_en_cours == $nb_pages) {
$intervalle_max = $this->total;
}
$donnees['pages_taille_intervalle'] = $pages_avant_apres;
$donnees['pages_debut_intervalle'] = $pages_debut_intervalle;
$donnees['page_en_cours'] = $page_en_cours;
$donnees['intervalle_min'] = (($page_en_cours-1) * $this->limite);
$donnees['intervalle_max'] = $intervalle_max;
$donnees['nb_resultats'] = $this->total;
$donnees['nb_pages'] = $nb_pages;
$donnees['taille_page'] = $this->limite;
$vue = $this->getVue('/home/aurelien/web/eflore-consultation/modules/pagination/squelettes/pagination', $donnees);
return $vue;
}
}
?>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ethnobotanique.tpl.html
New file
0,0 → 1,91
<!-- ETHNOBOTANIQUE-->
<div class="bloc <? if ($premier == 'ethnobotanique') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<div class="categorie">Ethnobotanique</div>
<!-- NOMS COMMUNS -->
<?php if($ethnobotanique['nvjfl']['noms'] != array()) : ?>
<div class="no-break">
<h2>Noms communs</h2>
<span class="citation"><?=$ethnobotanique['nvjfl']['meta']['citation']?></span>
<table class="allow-break">
<tr>
<th>Langue</th><th>Nom</th><th>Genre et Nombre</th><th>Conseil d'emploi</th><th>Notes</th>
</tr>
<?php foreach($ethnobotanique['nvjfl']['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
<td><?= $nom_verna['genre'] ?></td>
<td><?= $nom_verna['conseil_emploi'] ?></td>
<td><?= $nom_verna['notes'] ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
<?php endif; ?>
<!-- WIKI -->
<?php if (!empty($ethnobotanique['wikini']['noms_communs'])) : ?>
<div class="no-break">
<span> Noms communs et étymologies proposés par les membres du réseau : </span>
<div title="noms_communs" class="wiki allow-break">
<?=$ethnobotanique['wikini']['noms_communs']?>
</div>
</div>
<?php endif; ?>
<!-- STATUTS -->
<?php if($ethnobotanique['chorologie']['donnees'] != array()) : ?>
<div class="no-break">
<h2>Statuts</h2>
<span class="citation"><?=$ethnobotanique['chorologie']['meta']['citation']?></span>
<table class="liste_statuts allow-break">
<tr>
<th></th>
<? foreach($ethnobotanique['chorologie']['colonnes'] as $colonne) : ?>
<th><?=$colonne ?></th>
<?php endforeach; ?>
</tr>
<? foreach($ethnobotanique['chorologie']['donnees'] as $type => $donnee) : ?>
<tr>
<td><?=$type ?></td>
<? foreach($ethnobotanique['chorologie']['colonnes'] as $colonne) : ?>
<td><?= (isset($donnee[$colonne])) ? $donnee[$colonne] : '' ?></td>
<? endforeach; ?>
</tr>
<? endforeach; ?>
</table>
</div>
<? endif; ?>
<!-- USAGE -->
<? if (!empty($ethnobotanique['wikini']['usage'])) : ?>
<div class="no-break">
<h2> Usage : </h2>
<span> Rédaction collaborative. </span>
<div title="usage" class="wiki allow-break">
<?=$ethnobotanique['wikini']['usage']?>
</div>
</div>
<? endif; ?>
<!-- CULTURE ET ARTS -->
<? if (!empty($ethnobotanique['wikini']['usage'])) : ?>
<div class="no-break">
<h2> Culture et arts : </h2>
<span> Rédaction collaborative. </span>
<div title="culture et arts" class="wiki allow-break">
<?=$ethnobotanique['wikini']['culture_et_arts']?>
</div>
</div>
<? endif; ?>
<!-- VIDE DE DONNEES -->
<? if (empty($ethnobotanique['wikini']) && empty($ethnobotanique['chorologie']) && empty($ethnobotanique['nvjfl']) ) : ?>
Aucune Donnée.
<? endif; ?>
</div>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ecologie.tpl.html
New file
0,0 → 1,99
<!-- ECOLOGIE -->
<div class="bloc no-break">
<!-- ECOLOGIE -->
<div class="categorie">Ecologie</div>
<? if (!isset($ecologie['baseflor']['aucune'])) : ?>
<div class="no-break">
<h2>Optimum écologique</h2>
<span class="citation"><?=$ecologie['baseflor']['meta']['citation']?></span>
<div class="fond_graphique">
<? if($ecologie['baseflor']['climat_url']) : ?>
<div class="no-break">
<div class="graphique">
<span class="titre">caractéristiques climatiques</span>
<br/>
<!-- laisser attribut alt au cas où svg ne marche pas -->
<object class="svg_clim" type="image/svg+xml" data="<?=$ecologie['baseflor']['climat_url']?>" alt="<?=$ecologie['baseflor']['climat_url_png']?>">
</object>
</div>
</div>
<? endif; ?>
<? if($ecologie['baseflor']['sol_url']) : ?>
<div class="no-break">
<div class="graphique">
<span class="titre centrer">caractéristiques du sol</span>
<br/>
<!-- laisser attribut alt au cas où svg ne marche pas -->
<object type="image/svg+xml" data="<?=$ecologie['baseflor']['sol_url']?>" class="svg_sol" alt="<?=$ecologie['baseflor']['sol_url_png']?>">
</object>
</div>
<br/>
<img src="<?=$ecologie['baseflor']['legende_eco']?>" class="legende_formes"/>
</div>
</div>
<? endif; ?>
</div>
<? endif; ?>
<!-- PHYTOSOCIOLOGIE -->
<div class="no-break">
<? if (isset($ecologie['baseveg']['baseflor']['catminat'])) : ?>
<h2>Phytosociologie</h2>
<span class="citation"><?=$ecologie['baseveg']['meta']['citation']?></span>
<? if (isset($ecologie['baseveg']['syntaxons-sup']) || isset($ecologie['baseveg']['syntaxons-sup'])) : ?>
<br/>
Le code catminat de ce taxon est <span class="gras"> <?=$ecologie['baseveg']['baseflor']['catminat'] ?></span> </br>
Il est caractéristique du syntaxon de niveau <span class="gras"><?=$ecologie['baseveg']['syntaxon-courant'][0]['niveau.libelle']?></span> présenté
dans le tableau ci-dessous avec ses niveaux supérieurs.
<table>
<?php foreach ($ecologie['baseveg']['syntaxons-sup'] as $cle => $valeurs ) : ?>
<tr>
<td>
<span class="gras">
<?=$valeurs['code_catminat']?>
</span></br>
<?=$valeurs['niveau.libelle']?>
</td>
<td>
<span class="gras">
<?=$valeurs['syntaxon']?>
</span> </br>
<span >
<?=$valeurs['physio_biotype']?>
</span> </br>
<?= !empty($valeurs['repartition_france']) ? 'répartition : '.$valeurs['repartition_france'] : '' ?>
</br>
Réf. <?=$valeurs['ref_der_biblio']?>
</td>
</tr>
<? endforeach; ?>
<tr class="surlignage">
<td>
<span class="gras">
<?=$ecologie['baseveg']['syntaxon-courant'][0]['code_catminat']?>
</span></br>
<?=$ecologie['baseveg']['syntaxon-courant'][0]['niveau.libelle']?>
</td>
<td>
<span class="gras">
<?=$ecologie['baseveg']['syntaxon-courant'][0]['syntaxon']?>
</span> </br>
<span >
<?=$ecologie['baseveg']['syntaxon-courant'][0]['physio_biotype']?>
</span> </br>
<?= !empty($ecologie['baseveg']['syntaxon-courant'][0]['repartition_france']) ? 'rép.'.$ecologie['baseveg']['syntaxon-courant'][0]['repartition_france'] : ''?>
</br>
Réf. <?=$ecologie['baseveg']['syntaxon-courant'][0]['ref_der_biblio']?>
</td>
</tr>
</table>
<?endif;?>
<?endif;?>
</div>
 
<!-- VIDE DE DONNEES -->
<? if (isset($ecologie['baseflor']['aucune'])) : ?>
Aucune donnée.
<? endif; ?>
</div>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/footer.html
New file
0,0 → 1,36
<!-- ne pas renommer en .tpl.html SINON il ne sera pas ajouté au pied de page pdf-->
<html>
<head>
<script>
function subst() {
var vars={};
var x=document.location.search.substring(1).split('&');
for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
var x=['frompage','topage','page','webpage','section','subsection','subsubsection', 'nom'];
for (var i in x) {
var y = document.getElementsByClassName(x[i]);
for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
}
}
</script>
</head>
<body style="border: 0; margin: 0;" onload="subst()">
<table style="width: 100%; font-size: 10px;">
<!-- les valeurs de page, section, subsection,...(passées en paramètres) peuvent être affichées
grâce aux class, on peut aussi en créer de nouvelles (ex: date) et leur affecter une valeur
grâce à --replace : -->
<tr>
<td style=" border:none; text-align: left; width: 30%;">
www.tela-botanica.org
</td>
<td style="border:none; text-align: center; width: 50%; ">
fiche eFlore de <span style="font-style:italic;" class="nom"></span>
</td>
<td style="border:none; text-align: right; width: 20%; " >
<span class="page"></span>/<span class="topage"></span>
</td>
</tr>
</table>
</body>
</html>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_statuts.tpl.html
New file
0,0 → 1,49
<!-- STATUTS de protection -->
<div class="bloc <? if ($premier == 'statuts') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<h2 class= "categorie">Statuts de protection</h2>
<!-- STATUTS -->
<?php if(!empty($statuts['statuts'])) : ?>
<table class="liste_statuts_protection no-break">
<tr>
<th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th>
</tr>
<?php foreach ($statuts['statuts'] as $statut) : ?>
<tr>
<td>
<?= $statut['zone_application']; ?>
</td>
<td>
<?= $statut['regle']; ?>
</td>
<td>
<?= $statut['texte']; ?>
(<?= $statut['statut']; ?>)
</td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
 
<!-- WIKI -->
<? if(!empty($statuts['wikini']['statuts_de_protection'])) : ?>
<div class="no-break">
<h2>Vos compléments sur les statuts de protection :</h2>
<span>Données collaboratives sur les statuts de protection. </span>
<div class="allow-break wiki" title="statuts de protection">
<?=$statuts['wikini']['statuts_de_protection']?>
</div>
</div>
<? endif;?>
<!-- VIDE DE DONNEES -->
<? if (empty($statuts['wikini']['statuts_de_protection']) && empty($statuts['statuts']) ): ?>
Pas de protection connue.
<? endif;?>
</div>
<br/>
<br/>
 
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_header.tpl.html
New file
0,0 → 1,26
<!doctype html>
<html>
<!-- ici est le style et l'en-tête de la première page.
pour un en-tête sur chaque page avec wkhtmltopdf utiliser --header.* -->
<head>
<link href="<?=$donnees_pdf['chemin_css'] ?>" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- EN TETE de la première page -->
<table style="width: 100%; background-color:#9AC343;">
<tr>
<td style="border:none; text-align: left; width: 20%; height:20mm; margin-left:10mm; margin-right:10mm; ">
<img style="height:15mm;" src="http://resources.tela-botanica.org/tb/img/135x102/logo_carre_officiel.png" alt="Tela Botanica"/>
</td>
<td style=" border:none; text-align: center; vertical-align: bottom ; padding-bottom:5px;" >
<span style="font-size:20px; color:white;">
<?=$donnees_pdf['nom']?>
</span> <br/><br/>
eFlore, la flore électronique de Tela Botanica.
<span class="version"><?=$donnees_pdf['version']?></span>
</td>
</tr>
</table>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_illustrations.tpl.html
New file
0,0 → 1,51
<!-- ILLUSTRATIONS -->
<div class="bloc no-break">
<div class="categorie">Illustrations</div>
 
<!-- COSTE toutes -->
<?php if (empty($illustrations['coste']['images']) == false) :?>
<div class="deux-colonnes">
<h2>Illustration de la flore de Coste</h2>
<span class="citation"><?= $illustrations['coste']['meta']['citation']?></span><br/>
<div id="illustrations">
<ul class="liste-illustrations allow-break">
<?php foreach($illustrations['coste']['images'] as $url) : ?>
<li>
<img src="<?= $url; ?>" alt="illustration de la flore de coste" />
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
</div>
</div>
<?php endif;?>
<!-- CEL la première image -->
<?php if (isset($illustrations['cel']['images'])) : ?>
<div class="deux-colonnes">
<h2>Carnet En Ligne (CEL)</h2>
<span class="citation"><?= $illustrations['cel']['meta']['citation']?></span><br/>
<div id="illustrations">
<ul class="liste-illustrations allow-break">
<li>
<img src="<?= $illustrations['cel']['images']['src']; ?>" />
<p>
à <strong class="localisation"><?= $illustrations['cel']['images']['commune']; ?></strong><br />
observée le <strong class="date-creation"><?= $illustrations['cel']['images']['date']; ?></strong><br/>
par <strong class="auteur"><?= $illustrations['cel']['images']['auteur']; ?></strong>
</p>
</li>
</ul>
<hr class="nettoyage" />
</div>
</div>
<?php endif; ?>
<hr class="nettoyage" />
<!-- VIDE DE DONNEES -->
<?php if (!isset($illustrations['cel']['images']) && empty($illustrations['coste']['images']) ) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_nomenclature.tpl.html
New file
0,0 → 1,148
<!-- NOMENCLATURE -->
<div class="bloc <?if ($premier == 'nomenclature') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<div class="categorie"> Nomenclature </div>
<!-- NOM RETENU -->
<?php if(!empty($nomenclature['basionyme_nom_retenu']) || !empty($nomenclature['nom_selectionne'])
|| !empty($nomenclature['nom_retenu']) || !empty($nomenclature['nom_retenu_formate'])) :?>
<div class="no-break">
<h2>Nom retenu</h2>
<span class="citation"><?= $nomenclature['synonymes']['meta']['citation']?></span>
<div style="float:right">
<div class="legende">
<b>Légende</b><br />
<span class="legende_nom_retenu couleur_legende" style="margin:8px 5px 0 0"></span><span>Nom sélectionné</span>
</div>
</div>
<div class="onglet_marge_gauche">
<span class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate'] ?>
</span>
</div>
<div class="nom onglet_marge_gauche basionyme_complet">
Basionyme :
<?= $nomenclature['basionyme_nom_retenu'] ?>
</div>
 
<?php if($nomenclature['referentiel'] != 'bdtxa'): // cf http://referentiels.tela-botanica.org/referentiel/index.php?ref=bdtxa&module=FicheTaxon&num_nom=14610 ?>
<div class="onglet_marge_gauche"> Dernière date de modification du nom : <?= $nomenclature['date_maj'] ?> </div>
<? endif; ?>
</div>
<hr class="nettoyage" />
<?php endif; ?>
<!-- WIKI -->
<? if (!empty($nomenclature['wikini']['nomenclature'])) :?>
<div class="no-break">
<span> Données collaboratives sur ce nom. </span>
<div title="statuts de protection" class="wiki allow-break">
<?=$nomenclature['wikini']['nomenclature']?>
</div>
</div>
<? endif; ?>
<!-- SYNONYMES -->
<?php if(is_array($nomenclature['synonymes']['noms']) && count($nomenclature['synonymes']['noms']) > 0) { ?>
<div class="no-break">
<h2>Synonymes</h2>
<span class="citation"><?= $nomenclature['synonymes']['meta']['citation']?></span>
<?php foreach ($nomenclature['synonymes']['noms'] as $id => $synonyme) : ?>
<ul class="allow-break">
<li class="item_nomenclature">
<span class="nom <?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci']) ? 'surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet'] ?>
</span>
<span class="nom basionyme_complet">
<?= ($synonyme['basionyme_html_complet']) ? "Basionyme : ".$synonyme['basionyme_html_complet'] : ''; ?>
</span>
</li>
</ul>
<?php endforeach; ?>
<hr class="nettoyage" />
</div>
<?php } ?>
<div class="no-break">
<?php if (!empty($nomenclature['taxons_sup'])) : ?>
<h2> Place du taxon dans la classification </h2>
<span class="citation"><?= $nomenclature['meta']['citation']?></span>
<table class="allow-break">
<tr>
<th>Rang</th><th>Nom Scientifique</th><th>Num Nom</th>
</tr>
<?php foreach ($nomenclature['taxons_sup'] as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td><?= $taxon['nom_sci'] ?></td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<tr class="surlignage">
<td><?= $nomenclature['taxon_courant']['rang.libelle'] ?></td>
<td><?= $nomenclature['taxon_courant']['nom_sci'] ?></td>
<td><?= $nomenclature['taxon_courant']['num_nom'] ?></td>
</tr>
<?php if (!empty($nomenclature['taxons_inf'])) : ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td><?= $taxon['nom_sci'] ?></td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<?php endif; ?>
</div>
<!-- VIDE DE DONNEES -->
<?php if ( empty($nomenclature['taxons_sup']) && empty($nomenclature['taxon_inf'] ) ) : ?>
Aucune donnée.
<?php endif; ?>
<br/>
<!-- FLORES -->
<?php if(is_array($nomenclature['flores_synonymes']) && count($nomenclature['flores_synonymes']) > 0) { ?>
<div class="no-break">
<h2>Flores</h2>
<span class="citation"><?= $nomenclature['synonymes']['meta']['citation']?></span>
<?php foreach ($nomenclature['flores_synonymes'] as $num_nom_syn => $infos_flore) : ?>
<?php foreach ($infos_flore as $code => $flore) : ?>
<ul class="allow-break">
<li class="item_nomenclature">
<div class="nom">
Dans la flore <em><?= $flore['nom_flore'] ?></em>,
ce taxon porte le nom de <em><?= $flore['nom_sci'] ?></em>
et le code <b><?= $flore['id'] ?></b><br />
</div>
</li>
</ul>
<?php endforeach; ?>
<?php endforeach; ?>
</div>
<hr class="nettoyage" />
<?php } ?>
<!-- num type -->
<?php if($nomenclature['num_type'] != null) { ?>
<h3> Autres </h3>
<ul>
<li class="item_nomenclature">
<span class="nom">Numéro du type : <?= $nomenclature['num_type'] ?></span>
</li>
</ul>
<?php } ?>
<!-- VIDE DE DONNEES -->
<?php if ( empty($nomenclature['basionyme_nom_retenu']) && empty($nomenclature['nom_retenu_formate'] )
&& empty($nomenclature['nom_selectionne'] ) && empty($nomenclature['synonymes']['noms'] )
&& empty($nomenclature['nom_retenu']) && empty($nomenclature['flores_synonymes'])
&& empty($nomenclature['num_type'])) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_bibliographie.tpl.html
New file
0,0 → 1,49
<!-- BIBLIOGRAPHIE -->
<div class="bloc <? if ($premier == 'bibliographie') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<div class="categorie">Bibliographie</div>
<!-- FLORE -->
<? if(!empty($bibliographie['flores']['liste_flores'])) : ?>
<div class ="no-break">
<h2 > Flores </h2>
<span class='citation'><?= $bibliographie['flores']['meta']['citation']?></span>
<ul class="liste_biblio_flores allow-break">
<?php foreach($bibliographie['flores']['liste_flores'] as $flore) : ?>
<li class="item_biblio_flore"><span class="nom"> <?= $flore ?></span></li>
<?php endforeach; ?>
</ul>
</div>
<? endif; ?>
 
<!-- REFERENCES BIBLIOGRAPĤIQUES-->
<? if(!empty($bibliographie['bibliobota']['references'] )) : ?>
<div class ="no-break allow-break">
<h2> Références bibliographiques </h2>
<ul class="references_bibliographiques">
<?php foreach($bibliographie['bibliobota']['references'] as $reference) : ?>
<li class="item_biblio_flore"><span class="nom"><?=$reference['reference_html']?></span></li>
<?php endforeach; ?>
</ul>
</div>
<? endif; ?>
<!-- WIKI-->
<? if (!empty($bibliographie['wikini']['biblio'])): ?>
<h2> Bibliographie collaborative : </h2>
<span> Rédaction collaborative de cette bibliograpĥie. </span>
<div class="wiki allow-break" title="biblio">
<?=$bibliograhie['wikini']['biblio']?>
</div>
<? endif; ?>
<!-- VIDE DE DONNEES -->
<?php if ( empty($bibliographie['flores']['liste_flores'])
&& empty($bibliographie['bibliobota']['references'] )
&& empty($bibliographie['wikini']['biblio'])) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_repartition.tpl.html
New file
0,0 → 1,56
<!-- REPARTITION -->
<div class="bloc no-break">
<div class="categorie"> Répartition </div>
 
<!-- CHOROLOGIE DEPARTEMENTALE -->
<? if (!empty($repartition['chorodep']['svgUrl']) && !empty($repartition['chorodep']['legende']) ) : ?>
<div class="deux-colonnes">
<h2>Chorologie départementale</h2>
<div class="repartition_observations allow-break">
<!--version svg laisser attribut alt au cas où svg ne marche pas -->
<object style=" height:200px;" type="image/svg+xml" data="<?=$repartition['chorodep']['svgUrl']?>" alt="<?=$repartition['min']['chorodep']?>">
</object>
<!-- version png --><!-- <img src="<?=$repartition['min']['chorodep']?>" />-->
</div>
<div class="legende_r allow-break">
<? foreach ($repartition['chorodep']['legende'] as $id => $details) :?>
<div style="clear:left; ">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div class="texte_legende_repartition"><b><?=$details['nom']?></b></div>
</div>
<? endforeach; ?>
</div>
</div>
<?php endif; ?>
<!-- OBSERVATIONS -->
<? if (!empty($repartition['eflore']['min']) && !empty($repartition['eflore']['legende'])) : ?>
<div class="deux-colonnes">
<h2>Observations</h2>
<div class="repartition_observations allow-break" >
<img src="<?=$repartition['eflore']['min']?>" />
</div>
<div class="legende_r allow-break">
<? foreach ($repartition['eflore']['legende'] as $id => $details) :?>
<div style="clear:left;">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div class="texte_legende_repartition" ><b><?=$details['nom']?> : </b><?=$details['description']?></div>
</div>
<? endforeach; ?>
</div>
</div>
<?php endif; ?>
<hr class="nettoyage" />
<!-- VIDE DE DONNEES -->
<?php if (empty($repartition['chorodep']['svgUrl'])
&& empty($repartition['chorodep']['legende'])
&& empty($repartition['eflore']['min'])
&& empty($repartition['eflore']['legende'])) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/squelettes/pdf_description.tpl.html
New file
0,0 → 1,179
<!-- DESCRIPTION -->
<div class="bloc <?if ($premier == 'description') : echo 'allow-break'; else : echo 'no-break' ; endif; ?>">
 
<div class="categorie">Description</div>
<!-- COSTE -->
<? if (!empty($description['coste']['description'])) : ?>
<div class="no-break">
<h2> Description de Coste </h2>
<span class="citation"><?=$description['coste']['meta']['citation']?></span>
<div>
<table class="desc">
<tr>
<td>
<?if ($description['coste']['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['coste']['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['coste']['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['coste']['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($description['coste']['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['coste']['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['coste']['description']['texte'] != '') : ?>
<?=$description['coste']['description']['texte']; ?>
<? endif; ?>
</td>
</tr>
<?if ($description['coste']['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['coste']['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['coste']['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['coste']['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['coste']['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['coste']['description']['floraison']; ?>
<?if ($description['coste']['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['coste']['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['coste']['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['coste']['description']['usages']; ?>
</td>
</tr>
<? endif;?>
</table>
</div>
</div>
<br/>
<? endif; ?>
<!-- BASEFLOR -->
<? if (!empty($description['baseflor'])) : ?>
<div class="no-break">
<h2>Description Baseflor </h2>
<span class="citation"><?=$description['baseflor']['meta']['citation']?> </span>
<div>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['baseflor']['type_bio'] != '') : ?>
<span class="titre">Type Biologique : </span>
<?=$description['baseflor']['type_bio']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($description['baseflor']['form_vegetale'] != '') :?>
<span class="titre">Formation végétale : </span>
<?=$description['baseflor']['form_vegetale']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($description['baseflor']['chorologie'] != '') :?>
<span class="titre">Chorologie : </span>
<?=$description['baseflor']['chorologie'] ?>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<?if ($description['baseflor']['inflorescence'] != '') :?>
<span class="titre">Inflorescence :</span>
<?=$description['baseflor']['inflorescence'];?> <br/>
<? endif; ?>
<?if ($description['baseflor']['fruit'] != '') :?>
<span class="titre">Fruit :</span>
<?=$description['baseflor']['fruit']; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['couleur_fleur'] != '') :?>
<span class="titre">Couleur de la fleur : </span>
<?=$description['baseflor']['couleur_fleur'];?> <br/>
<? endif; ?>
<?if ($description['baseflor']['macule'] != '') :?>
<span class="titre">Macule : </span>
<?=$description['baseflor']['macule']; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['floraison'] != '') :?>
<span class="titre">Floraison : </span>
<?=$description['baseflor']['floraison']; ?> <br/>
<? endif; ?>
</td>
<td>
<?if ($description['baseflor']['sexualite'] != '') :?>
<span class="titre">sexualité : </span>
<?=$description['baseflor']['sexualite'] ; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['ordre_maturation'] != '') :?>
<span class="titre">Ordre de maturation : </span>
<?=$description['baseflor']['ordre_maturation']; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['pollinisation'] != '') :?>
<span class="titre">Pollinisation : </span>
<?=$description['baseflor']['pollinisation'] ; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['dissemination'] != '') :?>
<span class="titre">Dissémination : </span>
<?=$description['baseflor']['dissemination'] ;?> <br/>
<? endif; ?>
</td>
</tr>
</table>
</div>
</div>
<? endif; ?>
<br/>
<!-- WIKI -->
<? if (!empty($description['wikini']['description'])) : ?>
<div class="no-break">
<h2> Description collaborative </h2>
<div class="wiki allow-break" title="description">
<?=$description['wikini']['description']?>
</div>
</div>
<? endif; ?>
<!-- VIDE DE DONNEES -->
<? if (empty($description['wikini']['description']) && empty($description['coste']['description']) && empty($description['baseflor']) ) : ?>
Aucune Donnée.
<? endif; ?>
</div>
<br/>
<br/>
/branches/v5.10-vilmorin/modules/pdf_export/PdfExport.php
New file
0,0 → 1,233
<?php
/**
* Classe PdfExport, réalise des exportations pdf des fiches de taxons.
* Les fonctionnalités proposées sont l'export de toutes les parties de la fiche pdf
* ou bien des parties choisies.
* (voir le squelette fiche_pdf_lien.tpl.html pour le formulaire dans le module fiche.)
*
* manuel wkhtmltopdf : http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0_rc2-doc.html
* pour changer de librairie : changer la fonction transformerHtmlEnPdf()
*
* @category php 5.2
* @package eflore-consultation
* @author Mathilde Salthun-Lassalle <mathilde@tela-botanica.org>
* @copyright 2012 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 $Id$
*/
 
class PdfExport extends aControleur {
 
const DUREE_DE_VIE_PDF = 86400;// 3600 * 24 * 2 = 172 800
const DUREE_DE_VIE_HTML = 60;
 
private $Conteneur;
private $parametres = array();
private $chemin_pdf;
private $html;
private $wkhtml;
private $piedepage;
private $fichier_pdf;
private $blocs = array();
 
private $Desc;
private $Ecolo;
private $Ethno;
private $Illus;
private $Nomen;
private $Reparti;
private $Stat;
private $Biblio;
 
public function initialiser() {
spl_autoload_register(array($this, 'chargerClassesOnglets'));
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->chemin_pdf = Config::get('dossier_pdf');
$this->wkhtml = Config::get('WKHTMLTOPDF');
$this->Desc = new Description($this->conteneur);
$this->Ecolo = new Ecologie($this->conteneur);
$this->Ethno = new Ethnobotanique($this->conteneur);
$this->Illus = new Illustrations($this->conteneur);
$this->Nomen = new Nomenclature($this->conteneur);
$this->Stat = new Statut($this->conteneur);
$this->Biblio = new Bibliographie($this->conteneur);
$this->Reparti = new Repartition($this->conteneur);
$this->piedepage = Config::get('chemin_modules').'pdf_export/squelettes/footer.html';
}
 
private function chargerClassesOnglets($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'../fiche/formateurs'.DS;
$dossiers = array($base, $cheminFormateurs);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function getNomRetenu() {
$nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
return $nom_retenu;
}
 
private function getNomRetenuHTML() {
$nom_retenu = '<span class="italique">'
.$this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci')
.'</span> '.$this->conteneur->getNomCourant()->getNomRetenu()->get('auteur');
return $nom_retenu;
}
 
private function getNomFichierValide(){
$nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
$nom_retenu = str_replace(' ','_',$nom_retenu );
$nom_retenu = preg_replace('/[\(\)\.\[\]]/','',$nom_retenu );
return $nom_retenu;
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->parametres['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom'])) {
$this->parametres['nom'] = $_GET['nom'];
}
if (isset($_GET['type_nom'])) {
$this->parametres['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['referentiel'])) {
$this->parametres['referentiel'] = $_GET['referentiel'];
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
if (isset($_GET['onglet'])) {
$this->onglet = $_GET['onglet'];
}
}
 
private function capturerParametresFormulaire() {
$this->blocs = array('description', 'ecologie', 'ethnobotanique', 'statuts', 'illustrations',
'bibliographie', 'repartition', 'nomenclature');
if (!empty($_POST['bloc'])) {
$this->blocs = $_POST['bloc'];
}
}
 
public function executerActionParDefaut() {
$this->executerPdfExport();
}
 
public function executerPdfExport(){
$this->capturerParametresFormulaire();
$hash = crc32($this->parametres['referentiel'].'-'.implode('-', $this->blocs));
$nom_fichier = $this->getNomFichierValide().'-'.$hash;
// le dossier cache existe normalement, mais le sous dossier pdf
// est parfois effacé par erreur lors des suppressions de cache
// il vaut mieux donc le recréer s'il n'existe pas
if(!file_exists($this->chemin_pdf)) {
mkdir($this->chemin_pdf, 0755, true);
}
 
$this->fichier_html = $this->chemin_pdf.''.$nom_fichier.'.html';
$this->fichier_pdf = $this->chemin_pdf.''.$nom_fichier.'.pdf';
 
if (file_exists($this->fichier_pdf) == false) {
$donnees = $this->obtenirDonnees();
$this->construireHtml($donnees);
if ($this->transformerHtmlEnPdf() == false) {
die('Erreur de generation du fichier PDF');
}
}
$this->envoyerPdfAuNavigateur();
$this->nettoyerFichiersTmp();
// ATTENTION : on doit stopper l'exécution de Papyrus sinon du HTML inutile est ajouté à la fin du fichier PDF
exit;
}
 
private function construireHtml($donnees) {
$this->html = $this->getVue('pdf_header', $donnees);
foreach ($this->blocs as $bloc) {
$this->ajouterHtml($bloc, $donnees);
}
$this->html .= '</body></html>';
}
 
private function ajouterHtml($bloc, $donnees) {
if (!empty($donnees[$bloc])) {
$this->html .= $this->getVue('pdf_'.$bloc, $donnees);
}
}
 
//+-------------------------------------récupération des données---------------------------------------------+
private function obtenirDonnees() {
$donnees = array();
$version = $this->Nomen->obtenirVersionDonnees();
$donnees['donnees_pdf'] = array(
'nom' => $this->getNomRetenuHTML(),
'chemin_css' => Config::get('url_css_pdf'),
'version' => $version['version']);
$donnees['description'] = $this->Desc->obtenirDonneesExport();
$donnees['ecologie'] = $this->Ecolo->obtenirDonneesExport();
$donnees['statuts'] = $this->Stat->obtenirDonnees();
$donnees['ethnobotanique'] = $this->Ethno->obtenirDonnees();
$donnees['illustrations'] = $this->Illus->obtenirDonneesExport();
$donnees['nomenclature'] = $this->Nomen->obtenirDonnees();
$donnees['repartition'] = $this->Reparti->obtenirDonneesExport();
$donnees['bibliographie'] = $this->Biblio->obtenirDonnees();
$donnees['premier'] = $this->blocs[0];// pour page-break : éviter 1ere page vide si bloc trop long
return $donnees;
}
 
//+------------------------------------------------export en pdf---------------------------------------------+
private function envoyerPdfAuNavigateur() {
$nom_fichier = $this->getNomFichierValide();
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$nom_fichier.'.pdf');
readfile($this->fichier_pdf);
}
 
private function nettoyerFichiersTmp() {
$dossierStockage = $this->chemin_pdf;
if (is_dir($dossierStockage)) {
$objets = scandir($dossierStockage);
if ($objets !== false) {
foreach ($objets as $objet) {
$chemin = $dossierStockage.$objet;
if (is_file($chemin)) {
$filemtime = @filemtime($chemin);
if ($filemtime !== false) {
if (substr($chemin, -5) == '.html') {
$suppression = (time() - $filemtime >= self::DUREE_DE_VIE_HTML) ? true : false;
} else {
$suppression = (time() - $filemtime >= self::DUREE_DE_VIE_PDF) ? true : false;
}
if ($suppression === true) {
unlink($chemin);
}
}
}
}
}
}
}
 
//version WKHTMLtoPDF en ligne de commande
private function transformerHtmlEnPdf() {
$nom = $this->getNomRetenu();
file_put_contents($this->fichier_html, $this->html);
$commande = "{$this->wkhtml} --replace 'nom' '$nom' --encoding utf-8 --footer-html {$this->piedepage} {$this->fichier_html} {$this->fichier_pdf}";
$ret = -1;
$debug = array();
exec($commande, $debug, $ret);
//print_r( $debug ); echo $ret;
$ok = ($ret == 0 || $ret == 2) ? true : false;
return $ok;
}
}
?>
/branches/v5.10-vilmorin/modules/pdf_export/pdf_export.txt
New file
0,0 → 1,32
A LIRE
 
- pour utiliser wkhtmltopdf en local télécharger la version static binaire linux (avec patch QT) à l'adresse
http://code.google.com/p/wkhtmltopdf/downloads/list
(cette version peut fonctionner sans server x11 et permet plus de fonctionnalités)
décompresser et mettre dans /usr/local/bin/ ou /usr/bin
-dans le fichier de config :
changer les valeurs de :
; chemin vers outil de conversion pdf
WKHTMLTOPDF = ""
(sur le serveur c'est 'wkhtmltopdf' mais en local il faut parfois le chemin complet)
et
; chemin de stockage temporaire pour les Html & les PDF
dossier_pdf = ""
les fichiers html et pdf créés pour une même fiche peuvent être différents d'un utilisateur
à un autre car chacun peut personnaliser sa fiche. Ainsi, les fichiers créés sont détruits
après avoir été envoyés au navigateur.
 
-lors de l'appel de wkhtmltopdf avec exec() :
* mettre le --encoding utf-8 avant toute page html
* si utilisation de --replace : mettre guillemets simples : ex :--replace 'nom_parametre' '$nom'
* ne pas mettre de guillemets pour les chemins vers une page html
-les appels aux méthodes obtenirDonneesExport() pour récupérer les données, servent à sélectionner
uniquement les infos nécéssaires lors de l'export pour augmenter les performances.
 
-pour autoriser les éléments html coupés entre deux pages ou les interdire utiliser le css
(page-break-inside : avoid ou auto)
 
- ne pas renommer footer.html en footer.tpl.html
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/branches/v5.10-vilmorin/modules/recherche_avancee/squelettes/form_recherche_av.tpl.html
New file
0,0 → 1,285
<!-- DEBUT FORM_AVANCE -->
<script>
<!--
var AUTOCOMPLETION_ELEMENTS_NBRE = 50;
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI = "<?=$url_base_completion_noms_sci?>";
var REFERENTIEL = "<?= Registre::get('parametres.referentiel');?>";
$(document).ready(function(){
$('#bloc_recherche_av').hide();
$('#recherche_av').click(function(event) {
$('#bloc_recherche_av').slideToggle();
event.preventDefault();
return false;
});
});
-->
</script>
 
<a href="" id="recherche_av" name="recherche_av"> Recherche avancée dans la base de données <?= strtoupper(Registre::get('parametres.referentiel')); ?> version <?= $metadonnees_referentiel['version'] ?>. </a>
<hr class="nettoyage"/>
<div id="bloc_recherche_av">
<form id="recherche_av_form" method="get" action="<?=$lien?>" >
<fieldset class="numero_form">
<label for="nn">Numéro nomenclatural </label>
<input id="nn" type="text" name="nn" class="largeur-01" value="<?=isset($param['nn'])? $param['nn'] : ''?>"/>
<label for="nt">Numéro taxonomique </label>
<input type="text" id="nt" name="nt" class="largeur-01" value="<?=isset($param['nt'])? $param['nt'] : ''?>"/>
</fieldset>
<fieldset class="classification_form">
<legend> Classification </legend>
<br/>
<label for="fam"> Famille </label>
<input type="text" id="fam" name="fam" class="champ_autocomplete" value="<?=isset($param['fam'])? $param['fam'] : ''?>" />
<label for="gen"> Genre </label>
<input type="text" id="gen" name="gen" class="champ_autocomplete" value="<?=isset($param['gen'])? $param['gen'] : ''?>" />
<label for="sp">Epithète sp.</label>
<input type="text" id="sp" name="sp" class="champ_autocomplete" value="<?=isset($param['sp'])? $param['sp'] : ''?>" />
<br/><br/>
<? $type = ''; if (isset($param['type'])){ $type = $param['type']; } ?>
<label for="type">Type épithète infra </label>
<select name="type">
<option value="" <?=($type == '') ? 'selected="selected"' : '' ?> >
</option>
<option value="subsp." <?=($type == 'subsp.') ? 'selected="selected"' : '' ?> >
sous-espèce
</option>
<option value="infra-sp." <?=($type == 'infra-sp.') ? 'selected="selected"' : '' ?> >
infra-espèce
</option>
<option value="var." <?=($type == 'var.') ? 'selected="selected"' : '' ?> >
variété
</option>
<option value="subvar." <?=($type == 'subvar.') ? 'selected="selected"' : '' ?> >
sous-variété
</option>
<option value="f." <?=($type == 'f.') ? 'selected="selected"' : '' ?> >
forme
</option>
<option value="subf." <?=($type == 'subf.') ? 'selected="selected"' : '' ?> >
sous-forme
</option>
<option value="f. sp." <?=($type == 'f. sp.') ? 'selected="selected"' : '' ?> >
forma species
</option>
<option value="race" <?=($type == 'race') ? 'selected="selected"' : '' ?> >
race
</option>
<option value="proles" <?=($type == 'proles') ? 'selected="selected"' : '' ?> >
proles
</option>
</select>
<label for="ssp">Epithète infra spé.</label>
<input class="champ_autocomplete" type="text" id="ssp" name="ssp" value="<?=isset($param['ssp'])? $param['ssp'] : ''?>" />
</fieldset>
<br/>
<fieldset class="publication_form">
<legend> Publication </legend>
<br/>
<label> décrit entre </label>
<input placeholder="<?=$i18n['valeur-form-date']?>" type="text" name="and" id="and" value="<? if (isset($param['and'])){echo $param['and'] ;}?>" class="largeur-01"/>
<label style="width:20px;"> et </label>
<input placeholder="<?=$i18n['valeur-form-date']?>" type="text" id="anf" name="anf" value="<? if (isset($param['anf'])){echo $param['anf'] ;}?>" class="largeur-01"/>
<label style="width:50px;"> par </label>
<input placeholder="<?=$i18n['valeur-form-auteur']?>" class="champ_autocomplete" style="width:150px;" id="au" type="text" name="au" value="<? if (isset($param['au'])){ echo $param['au']; } ?>"/> <br/><br/>
<label> dans </label>
<input placeholder="<?=$i18n['valeur-form-bib']?>" class="champ_autocomplete largeur-06" id="bib" type="text" name="bib" value="<? if(isset($param['bib'])){echo $param['bib'] ;}?>" "/>
</fieldset>
<? if(count($champs_presence) > 0) { ?>
<fieldset class="presence_form">
<legend> Présence </legend>
<br/>
<? foreach($champs_presence as $presence) : ?>
<? $nom_param_presence = $presence['param'] ?>
<? $param_presence = ''; if (isset($param[$nom_param_presence])){ $param_presence = $param[$nom_param_presence]; }?>
<label for="<?= $nom_param_presence ?>"><?= $presence['label'] ?></label>
<select name="<?= $nom_param_presence ?>">
<option value="" <?=($param_presence == '') ? 'selected="selected"' : '' ?> >
</option>
<option value="0" <?=($param_presence == '0') ? 'selected="selected"' : '' ?> >
pas d'information
</option>
<option value="P" <?=($param_presence == 'P') ? 'selected="selected"' : '' ?> >
présent
</option>
<option value="S" <?=($param_presence == 'S') ? 'selected="selected"' : '' ?> >
supposé présent
</option>
<option value="D" <?=($param_presence == 'D') ? 'selected="selected"' : '' ?>>
présence douteuse
</option>
<option value="E" <?=($param_presence == 'E') ? 'selected="selected"' : '' ?>>
éteint </option>
<option value="F" <?=($param_presence == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme présent
</option>
<option value="A" <?=($param_presence == 'A') ? 'selected="selected"' : '' ?>>
absent
</option>
<option value="-" <?=($param_presence == '-') ? 'selected="selected"' : '' ?>>
autre statut de présence
</option>
<option value="E-W" <?=($param_presence == 'E-W') ? 'selected="selected"' : '' ?>>
disparu
</option>
<option value="P-B" <?=($param_presence == 'P-B') ? 'selected="selected"' : '' ?>>
présence accidentelle
</option>
<option value="E-F" <?=($param_presence == 'E-F') ? 'selected="selected"' : '' ?>>
trouvé en fouille
</option>
</select>
<br/> <br/>
<? endforeach; ?>
</fieldset>
<?php } ?>
<fieldset class="statuts_form">
<legend> Statuts </legend>
<br/>
<? $sto = ''; if (isset($param['sto'])){ $sto = $param['sto']; }?>
<label for="sto"> statut d'origine </label>
<select name="sto">
<option value="" <?=($sto == '') ? 'selected="selected"' : '' ?>>
</option>
<option value="0" <?=($sto == '0') ? 'selected="selected"' : '' ?>>
pas d'information
</option>
<option value="N" <?=($sto == 'N') ? 'selected="selected"' : '' ?>>
natif (=indigène)
</option>
<option value="S" <?=($sto == 'S') ? 'selected="selected"' : '' ?>>
supposé natif
</option>
<option value="D" <?=($sto == 'D') ? 'selected="selected"' : '' ?>>
origine douteuse
</option>
<option value="E" <?=($sto == 'E') ? 'selected="selected"' : '' ?>>
anciennement natif (éteint)
</option>
<option value="F" <?=($sto == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme natif
</option>
<option value="A" <?=($sto == 'A') ? 'selected="selected"' : '' ?>>
non natif
</option>
<option value="X" <?=($sto == 'X') ? 'selected="selected"' : '' ?>>
inapplicable
</option>
<option value="-" <?=($sto == '-') ? 'selected="selected"' : '' ?>>
autre statut d'origine
</option>
<option value="N-E" <?=($sto == 'N-E') ? 'selected="selected"' : '' ?>>
endémique
</option>
<option value="N-S" <?=($sto == 'N-S') ? 'selected="selected"' : '' ?>>
sub-endémique
</option>
<option value="S-C" <?=($sto == 'S-C') ? 'selected="selected"' : '' ?>>
supposé natif cryptogène
</option>
</select>
<br/> <br/>
<? $sti = ''; if (isset($param['sti'])){ $sti = $param['sti']; }?>
<label for="sti"> statut d'introduction </label>
<select name="sti">
<option value="" <?=($sti == '') ? 'selected="selected"' : '' ?>>
</option>
<option value="0" <?=($sti == '0') ? 'selected="selected"' : '' ?> >
pas d'information
</option>
<option value="I" <?=($sti == 'I') ? 'selected="selected"' : '' ?>>
introduit
</option>
<option value="S" <?=($sti == 'S') ? 'selected="selected"' : '' ?>>
supposé introduit
</option>
<option value="D" <?=($sti == 'D') ? 'selected="selected"' : '' ?>>
introduction douteuse
</option>
<option value="E" <?=($sti == 'E') ? 'selected="selected"' : '' ?>>
anciennement introduit (éteint)
</option>
<option value="F" <?=($sti == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme introduit
</option>
<option value="A" <?=($sti == 'A') ? 'selected="selected"' : '' ?>>
non introduit
</option>
<option value="X" <?=($sti == 'X') ? 'selected="selected"' : '' ?>>
inapplicable
</option>
<option value="-" <?=($sti == '-') ? 'selected="selected"' : '' ?>>
autre statut d'introduction
</option>
<option value="I-J" <?=($sti == 'I-J') ? 'selected="selected"' : '' ?>>
introduit envahissant
</option>
<option value="I-M" <?=($sti == 'I-M') ? 'selected="selected"' : '' ?>>
domestique, introduit non-établi
</option>
<option value="S-C" <?=($sti == 'S-C') ? 'selected="selected"' : '' ?>>
supposé introduit cryptogène
</option>
</select>
<br/> <br/>
<label for="stc"> statut de culture </label>
<? $stc = ''; if (isset($param['stc'])){ $stc = $param['stc']; }?>
<select name="stc">
<option value="" <?=($stc == '') ? 'selected="selected"' : '' ?>>
</option>
<option value="0" <?=($stc == '0') ? 'selected="selected"' : '' ?>>
pas d'information
</option>
<option value="C" <?=($stc == 'C') ? 'selected="selected"' : '' ?>>
cultivé en extérieur
</option>
<option value="I" <?=($stc == 'I') ? 'selected="selected"' : '' ?>>
cultivé en intérieur
</option>
<option value="S" <?=($stc == 'S') ? 'selected="selected"' : '' ?>>
supposé cultivé
</option>
<option value="D" <?=($stc == 'D') ? 'selected="selected"' : '' ?>>
culture douteuse
</option>
<option value="E" <?=($stc == 'E') ? 'selected="selected"' : '' ?>>
anciennement cultivé (éteint)
</option>
<option value="F" <?=($stc == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme cultivé
</option>
<option value="X" <?=($stc == 'X') ? 'selected="selected"' : '' ?>>
inapplicable
</option>
<option value="-" <?=($stc == '-') ? 'selected="selected"' : '' ?>>
autre statut de culture
</option>
<option value="A" <?=($stc == 'A') ? 'selected="selected"' : '' ?>>
non cultivé
</option>
</select>
</fieldset>
<input id="eflore_nomenclature_referentiel" name="referentiel" type="hidden" value="<?=Registre::get('parametres.referentiel')?>" />
<input id="eflore_nomenclature_niveau" name="niveau" type="hidden" value="<?=Registre::get('parametres.niveau')?>" />
<input id="eflore_nomenclature_module" name="module" type="hidden" value="recherche" />
<input id="eflore_nomenclature_action" name="action" type="hidden" value="rechercheAvancee" />
<input type="hidden" name="type_nom" value="nom_scientifique" />
<input type="submit" class="rech" value="Lancer la recherche avancée"/>
</form>
<hr class="nettoyage"/>
</div>
 
<? if (isset($message_av)) : ?>
<p class="attention">
<?= $i18n[$message_av['attention']] ?>
</p>
<? endif; ?>
 
<!-- FIN FORM_AVANCE -->
/branches/v5.10-vilmorin/modules/recherche_avancee/RechercheAvancee.php
New file
0,0 → 1,30
<?php
class RechercheAvancee extends aControleur {
 
public function executerFormulaireRechercheAv($donnees= array()) {
$donnees['lien'] = (isset($donnees['params'])) ? $this->urls->obtenirUrlRechercheAvancee($donnees['params'])
: $this->urls->obtenirUrlRechercheAvancee();
$donnees['i18n'] = I18n::get('Recherche-form-avancee');
$donnees['referentiel'] = Registre::get('parametres.referentiel');
$donnees['url_base_completion_noms_sci'] = str_replace('{projet}', $donnees['referentiel'], Config::get('nomsTpl'));
$donnees['champs_presence'] = $this->obtenirChampsPresence();
$donnees['url_form'] = $this->urls->obtenirUrlBase();
return $this->getVue('form_recherche_av', $donnees);
}
private function obtenirChampsPresence() {
$tableau_champs_presence = array();
$referentiel = Registre::get('parametres.referentiel');
$champs_presence = Config::get($referentiel.'.champsPresence');
$champs_presence_spl = explode('|', $champs_presence);
foreach($champs_presence_spl as $champ) {
$label_param_champ = explode(':', $champ);
if(count($label_param_champ) >= 2) {
$tableau_champs_presence[] = array('param' => $label_param_champ[1],
'label' => $label_param_champ[0]);
}
}
return $tableau_champs_presence;
}
}
?>