/tags/v5.2-20131127/index.php |
---|
New file |
0,0 → 1,267 |
<?php |
// declare(encoding='UTF-8'); |
/** Inclusion du fichier principal de l'application*/ |
require_once 'eflore.php'; |
$url_css_commun = Config::get('url_css_commun'); |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> |
<head> |
<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" /> |
<title><?php echo AppControleur::getMetaTitre(); ?></title> |
<meta name="description" content="<?php echo AppControleur::getMetaDescription();?>" /> |
<meta name="keywords" content="<?php echo AppControleur::getMetaTags();?>" /> |
<meta name="revisit-after" content="15 days" /> |
<meta name="robots" content="index,follow" /> |
<meta name="author" content="Tela Botanica" /> |
<!-- moteur de recherche dans le navigateur chemin xml --> |
<link rel="search" type="application/opensearchdescription+xml" title="eFlore BDTFX : noms scientifiques" href="configurations/RechercheOpenSearch/RechercheOpenSearch.xml" /> |
<!-- Favicones --> |
<link rel="icon" type="image/png" href="http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.png" /> |
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.ico" /> |
<!-- CSS --> |
<link href="<?= $url_css_commun ?>" rel="stylesheet" type="text/css" /> |
<link href="http://www.tela-botanica.org/sites/botanique/generique/styles/botanique.css" rel="stylesheet" type="text/css" /> |
<link href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/css/ui-lightness/jquery-ui-1.8.17.custom.css" rel="stylesheet" type="text/css" /> |
<link href="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" /> |
<link href="presentations/styles/eflore.css" rel="stylesheet" type="text/css" /> |
<!-- JavaScript --> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script> |
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/cookie/1.0/jquery.cookie.min.js"></script> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/js/jquery-ui-1.8.17.custom.min.js"></script> |
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.pack.js"></script> |
<script type="text/Javascript" src="http://www.tela-botanica.org/sites/commun/generique/scripts/commun.js"></script> |
<script type="text/Javascript" src="presentations/scripts/eflore.js"></script> |
<script type="text/Javascript" src="presentations/scripts/recherche.js"></script> |
<script type="text/Javascript" src="presentations/scripts/fiche-synthese.js"></script> |
<!-- JavaScript et CSS spécifiques au module --> |
<?php echo AppControleur::getEntete(); ?> |
</head> |
<body id="botanique"> |
<div id="zone-principale"> |
<div id="zone-botanique" class="zone-haut"> |
<h1 id="zone-logo-tela"> |
<a href="http://www.tela-botanica.org/site:accueil" title="Retour à l'accueil"> |
<img src="http://www.tela-botanica.org/sites/botanique/generique/images/graphisme/logo_tela_fond_vert.png" alt="Tela Botanica"/> |
</a> |
</h1> |
<h2>Le réseau de la botanique francophone</h2> |
<div class="motsclefs"> |
<h3>Botanique</h3> |
<h4> |
<span class="mot1">se former</span><span class="cacher">, </span> |
<span class="mot2">identifier</span><span class="cacher">, </span> |
<span class="mot3">plantes sauvages</span> |
</h4> |
</div> |
</div> |
<div id="zone-menu-navigation"> |
<ul> |
<li id="menuAccueil" > |
<span ><a href="http://www.tela-botanica.org/site:accueil">Accueil</a></span> |
</li> |
<li id="menuBotanique" > |
<span class="menuHautActif"><a href="http://www.tela-botanica.org/site:botanique">Botanique</a></span> |
</li> |
<li id="menuActualites" > |
<span ><a href="http://www.tela-botanica.org/site:actu">Actualités</a></span> |
</li> |
<li id="menuReseau" > |
<span ><a href="http://www.tela-botanica.org/site:reseau">Réseau</a></span> |
</li> |
<li id="menuProjets" > |
<span ><a href="http://www.tela-botanica.org/site:projets">Projets</a></span> |
</li> |
</ul> |
</div> |
<div id="zone-gauche"> |
<div id="zone-menu-gauche"> |
<h1>Botanique</h1> |
<?php echo AppControleur::getContenuMenu(); ?> |
</div> |
<div id="zone-menu-connexion"> |
<form id="form_connexion" class="form_identification" action="http://www.tela-botanica.org/page:accueil_botanique#form_connexion" method="post"> |
<fieldset> |
<h3>Identifiez vous</h3> |
<label for="username">Courriel : </label> |
<input type="text" id="username" name="username" maxlength="80" tabindex="1" value="courriel" /> |
<label for="password">Mot de passe : </label> |
<input type="password" id="password" name="password" maxlength="80" tabindex="2" value="mot de passe" /> |
<input type="submit" id="connexion" name="connexion" tabindex="4" value="ok" /> |
<p class="connectvertpetit"><input type="checkbox" id="persistant" name="persistant" tabindex="3" value="o" /> |
<label id="persistant_label" for="persistant">Se souvenir de moi</label></p> |
<div id="colonneDroite"><br /> |
<a href="/page:inscription">S'inscrire... </a> |
<p class="connectgris">Devenez telabotaniste et partagez votre passion pour le végétal !</p> |
<p> <a id="lien_inscription" href="http://www.tela-botanica.org/page:inscription?m=f_oubli_mdp">Mot de passe perdu ? </a></p> |
</div> |
</fieldset> |
</form> |
</div> |
</div> |
<div id="zone-droite"> |
<div id="main"> |
<div id="zone_contenu_tete"> |
<?php echo AppControleur::getContenuTete(); ?> |
</div> |
<div id="zone_contenu_corps"> |
<?php echo AppControleur::getContenuCorps(); ?> |
</div> |
<div id="zone_contenu_pied"> |
<?php echo AppControleur::getContenuPied(); ?> |
<div> |
<?php echo AppControleur::getChrono(); ?> |
<?php echo AppControleur::getExceptions(); ?> |
</div> |
</div> |
</div> |
</div> |
<div id="bandeauProjets"> |
<ul> |
<li><img height="80" width="58" src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/floraBellissima.jpeg" alt="Illustration DVD Flora Bellissima" /> |
<h3><a href="http://www.tela-botanica.org/page:flora_bellissima"> Flora Bellissima</a></h3> |
Premier outil d'aide à la reconnaissance des plantes, ce logiciel vous permet d'identifier plus de 1500 plantes de France. <br /> |
<a href="http://www.tela-botanica.org/page:flora_bellissima">Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/partage_80.jpg" alt="illustration quiz bota" /> |
<h3><a href="http://www.tela-botanica.org/actu/article4536.html">Quiz botanique</a></h3> |
Pour tester vos connaissances en botanique... <br /> |
<a href="http://www.tela-botanica.org/actu/article4536.html">Plus d'infos</a></li> |
<li><img style="width: 109px; height: 81px;" src="http://www.tela-botanica.org/sites/commun/generique/hetre_120.JPG" alt="Illustration hêtre tortillard" /> |
<h3><a href="http://www.tela-botanica.org/actu/article4467.html">À la recherche des hêtres tortillards</a></h3> |
Participer au projet de recensement des hêtres tortillards. <a href="http://www.tela-botanica.org/page:liste_projets?id_projet=94">Plus d'infos</a></li> |
<li><img height="58" width="80" src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/euphorbe_80.jpg" alt="Illustration cours de botanique à Montpellier" /> |
<h3><a href="http://www.tela-botanica.org/page:evenements?vue=1&action=8&id_fiche=2531">Cours de botanique à Montpellier</a></h3> |
Partez à la découverte de la flore sauvage à partir de septembre 2011. <br /> |
<a href="http://www.tela-botanica.org/page:evenements?vue=1&action=8&id_fiche=2531">Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/phyto_80.JPG" alt="Illustration identifier plante" /> |
<h3><a href="http://www.tela-botanica.org/page:identification_plantes">Identifier une plante</a></h3> |
Vous observez des plantes mais ne réussissez pas toujours à les nommer. Retours sur les ressources en ligne. <a href="http://www.tela-botanica.org/page:identification_plantes">Plus d'infos</a></li> |
<li><img height="80" width="58" src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/partage_80.jpg" alt="Illustration capitalisation images plantes" /> |
<h3><a href="http://www.tela-botanica.org/actu/article4377.html"> Contribuez à l’identification des plantes par l’image</a></h3> |
Participez à un projet de recherche en collectant les feuilles, troncs, fleurs d'une vingtaine d'espèces d'arbres. <a href="http://www.tela-botanica.org/actu/article4377.html">Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/widget_80.jpeg" alt="Illustration widget carto" /> |
<h3><a href="http://www.tela-botanica.org/actu/article4086.html">Créer votre carte des observations </a></h3> |
Des widgets permettent d’afficher sur votre site les observations des membres du réseau. <a href="http://www.tela-botanica.org/actu/article4086.html">Plus d'infos</a></li> |
<li><img height="80" width="81" alt="Logo projet ODS" src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/Logo-ODS.jpg" /> |
<h3><a href="http://www.obs-saisons.fr">Observez les saisons</a></h3> |
Participez à ce programme scientifique ! Les premières observations de printemps ne vont pas tarder...<br /> |
<a href="http://www.obs-saisons.fr">Voir le nouveau site</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/vigie_flore_80.jpg" alt="Illustration vigie flore" /> |
<h3><a href="http://www.vigie-flore.fr">Participez à Vigie-flore</a></h3> |
Suivez les changements d'abondance des espèces végétales les plus communes en France. <a href="http://www.vigie-flore.fr"><br /> |
Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/widget_80.jpeg" alt="Illustration observatoire 2.0" /> |
<h3><a href="http://www.tela-botanica.org/actu/article4268.html">Monter un projet d'inventaire de la flore</a></h3> |
Tour d'horizon de tous les outils web du réseau qui pourront vous aider dans ce projet... <a href="http://www.tela-botanica.org/actu/article4268.html"><br /> |
Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/partage_80.jpg" alt="Illustration Gérer ses images" /> |
<h3><a href="http://www.tela-botanica.org/actu/article4241.html">Gérer et rechercher des images de plantes</a></h3> |
Rechercher les photos de plantes transmises par les membres du réseau devient simple... <a href="http://www.tela-botanica.org/actu/article4241.html">Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/generique_logo_80.jpg" alt="Illustration FP géoréférencement photos" /> |
<h3><a href="http://www.tela-botanica.org/actu/article3261.html">Comment géoréférencer ses photos ?</a></h3> |
Une fiche pratique qui donne des conseils utiles sur le géoréférencement. <a href="http://www.tela-botanica.org/actu/article3261.html"><br /> |
Plus d'infos</a></li> |
<li><img src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/Logo-livret.jpg" alt="Illustration livret" /> |
<h3><a href="http://www.tela-botanica.org/wikini/colloquescb/wakka.php?wiki=LeLivret">Sciences citoyennes</a></h3> |
Découvrez tous les programmes de sciences citoyenne, autant de moyens d'agir pour la nature.<br /> |
<a href="http://www.tela-botanica.org/wikini/colloquescb/wakka.php?wiki=LeLivret">Plus d'infos</a></li> |
<li><img height="80" width="57" alt="Illustration mode d'emploi" src="http://www.tela-botanica.org/sites/commun/generique/images/projets_defilants/modeemploi_80.jpg" /> |
<h3><a href="http://www.tela-botanica.org/actu/article3814.html">Tela : mode d'emploi</a></h3> |
Annoncer un événement, échanger sur les forums, partager vos relevés... les outils de Tela n'auront plus de secrets pour vous.<br /> |
<a href="http://www.tela-botanica.org/actu/article3814.html">Plus d'infos</a></li> |
</ul> |
</div> |
<div id="zone-bas-page"> |
<div> |
<ul> |
<li id="accueil"><a id="menu_lien_Array_759" href="http://www.tela-botanica.org/page:accueil?langue=fr" title="Accueil du site de Tela Botanica." >Accueil</a></li> |
<li id="faq"><a id="menu_lien_Array_386" href="http://www.tela-botanica.org/page:faq?langue=fr" title="Foire aux Questions, aide en ligne" >Aide</a></li> |
<li id="contact"><a id="menu_lien_Array_105" href="http://www.tela-botanica.org/page:contact?langue=fr" accesskey="9" >Contacts</a></li> |
<li id="plan"><a id="menu_lien_Array_9" href="http://www.tela-botanica.org/page:plan_du_site?langue=fr" accesskey="5" >Plan du site</a></li> |
<li id="rss"><a id="menu_lien_Array_630" href="http://www.tela-botanica.org/page:fluxRSS?langue=fr" title="Flux Rss du site Tela Botanica" >Flux RSS</a></li> |
<li id="telechargement"><a id="menu_lien_Array_273" href="http://www.tela-botanica.org/page:telechargement?langue=fr" title="[Raccourci : Alt+6 ] Téléchargement de l'ensemble des fichiers des projets." accesskey="6" >Téléchargement</a></li> |
<li id="visite"><a id="menu_lien_Array_25" href="http://www.tela-botanica.org/page:comment_marche_le_reseau?langue=fr" >Présentation du réseau</a></li> |
<li id="mentions"><a id="menu_lien_Array_104" href="http://www.tela-botanica.org/page:licence?langue=fr" title="Droits de reproduction" >Mentions légales</a></li> |
</ul> |
</div> |
<address id="coordonees"> |
<span>Association TELA BOTANICA</span> |
<span>Institut de Botanique </span> |
<span>163, Rue Auguste Broussonnet</span> |
<span>34090 Montpellier</span> |
<span>Tél. +334 67 52 41 22</span> |
<span>accueil[at]tela-botanica.org</span> |
<br /><br /> |
</address> |
</div> |
<div id="zone-menu-haut"> |
<div id="zone-visiteur"> |
<ul> |
<li id="connectes">En ligne : <span class="gris"></span></li> |
<li id="inscrits">Inscrits : <span class="gris"></span></li> |
</ul> |
</div> |
<div id="zone-acces-rapide"> |
<ul> |
<li id="don"> <a href="http://www.tela-botanica.org/page:soutien">Faites un don</a></li> |
<li id="lettre"> <a href="http://www.tela-botanica.org/page:mon_inscription_au_reseau">Lettre d'actualités</a></li> |
<li id="recherche"> |
<form action="http://www.tela-botanica.org/page:accueil_botanique" method="post" id="form_more_recherche"> |
<fieldset> |
<legend>Moteur de recherche</legend> |
<label for="more_motif">Rechercher : </label> |
<input id="more_motif" name="more_motif" tabindex="100" maxlength="100" accesskey="4" type="text" value="Rechercher" onfocus="nettoyerChamp(this.id, 'Rechercher');" onblur="nettoyerChamp(this, 'Rechercher'); " title="Mettre les termes entre guillemets pour rechercher sur la phrase exacte."/> |
<input id="more_ok" name="more_ok" tabindex="101" value="ok" type="submit" /> |
</fieldset> |
</form> |
</li> |
<li class="drapeau"> |
<a href="?langue=fr"> |
<img src="http://www.tela-botanica.org/sites/commun/generique/images/graphisme/drapeau_fr.png" alt="Français" title="Tela Botanica en Français" /> |
</a> |
</li> |
<li class="drapeau"> |
<a href="?langue=en"> |
<img src="http://www.tela-botanica.org/sites/commun/generique/images/graphisme/drapeau_gb.png" alt="Anglais" title="Tela Botanica in english" /> |
</a> |
</li> |
</ul> |
</div> |
</div> |
</div> |
</body> |
</html> |
/tags/v5.2-20131127/presentations/squelettes/pied_page.tpl.html |
---|
New file |
0,0 → 1,4 |
<p id="eflore_pied_page"> |
<?=$i18n['info'];?> |
<a href="mailto:<?=$courrielContact?>"><?=$courrielContact?></a><?=$i18n['point'];?> |
</p> |
/tags/v5.2-20131127/presentations/squelettes/entete_page.tpl.html |
---|
--- v5.2-20131127/presentations/squelettes/menu.tpl.html (revision 0) |
+++ v5.2-20131127/presentations/squelettes/menu.tpl.html (revision 1180) |
@@ -0,0 +1,11 @@ |
+<ul> |
+ <li> |
+ <a href="index.php?referentiel=bdtfx">Accueil</a> |
+ <ul> |
+ <li><a href="index.php?referentiel=bdtfx&module=liste&rang=F">Liste Famille</a></li> |
+ <li><a href="index.php?referentiel=bdtfx&module=liste&rang=G">Liste Genre</a></li> |
+ <li><a href="index.php?referentiel=bdtxa">eFlore Antilles</a></li> |
+ <li><a href="index.php?referentiel=isfan">eFlore Afrique du Nord</a></li> |
+ </ul> |
+ </li> |
+</ul> |
\ No newline at end of file |
/tags/v5.2-20131127/presentations/styles/popup.css |
---|
New file |
0,0 → 1,72 |
@CHARSET "UTF-8"; |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Disposition */ |
#zone-pied{ |
text-align:center; |
} |
#eflore_pied_page{ |
text-align:center; |
} |
#zone-debug{ |
background-color:grey; |
color:white; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Spécifiques popup : CONTACT */ |
input,textarea{ |
max-width:100%; |
height:auto; |
width: 100%; |
box-sizing:border-box; -moz-box-sizing:border-box; -webkit-box-sizing: border-box; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Spécifiques popup : ILLUSTRATION */ |
#info-img .img-cadre { |
text-align:center; |
} |
#info-img img { |
display:inline; |
vertical-align:middle; |
margin:0; |
border:0; |
border: 1px solid lightgrey; |
padding:2px; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Spécifiques popup : GALERIE */ |
#info-img-galerie .conteneur-precedent { |
float:left; |
width:10%; |
height:300px; |
} |
#info-img-galerie .conteneur-suivant { |
height:300px; |
position:relative; |
width:10%; |
float:right; |
} |
#info-img-galerie .conteneur-precedent #precedent, #info-img-galerie .conteneur-suivant #suivant { |
position:relative; |
top:50%; |
font-size:1.3em; |
border:none; |
} |
#info-img-galerie .conteneur-suivant #suivant { |
float:right; |
text-align:right; |
} |
#info-img-galerie .img-cadre { |
float:left; |
width:80%; |
height:300px; |
cursor: pointer; |
} |
#info-img-galerie #lien-voir-meta { |
text-align: center; |
} |
/tags/v5.2-20131127/presentations/styles/pdf.css |
---|
New file |
0,0 → 1,280 |
@CHARSET "UTF-8"; |
/* tout le css pour la mise en page du pdf d'exportation de fiches. */ |
/* GÉNÉRAL */ |
table{ |
border-collapse: collapse; |
width:100%; |
margin:5px 0; |
/*page-break-inside : avoid;*/ |
font-size:10px; |
} |
td,th{ |
border:1px solid #36560B; |
padding:7px 5px; |
} |
th{ |
background-color:#EEE; |
} |
h2 { |
font-weight: bold; |
letter-spacing: 0; |
margin: 20px 0 12px 0; |
font-size: 15px; |
color: #FD8C13; |
} |
body { |
font-family: Arial, Helvetica, Verdana, sans-serif; |
font-size: 0.75em; |
background-color: #fff; |
} |
.centrer { |
display : block; |
margin-left:auto; |
margin-right:auto; |
} |
.titre { |
color:#36560B; |
left:2px; |
position:relative; |
padding-right:5px; |
} |
.categorie { |
background-color: #F6AF3A; |
display: block; |
padding: 2mm; |
padding-left: 5mm; |
padding-right: 5mm; |
color: #fff; |
border-radius: 10px 10px 0 0; |
font-weight: bold; |
} |
.bloc { |
padding-left: 2mm; |
padding-bottom: 5mm; |
} |
.no-break { |
page-break-inside : avoid; |
} |
.allow-break { |
page-break-inside : auto; |
} |
.italique { |
font-style: italic; |
} |
.gras { |
font-weight: bold; |
} |
hr.nettoyage{ |
clear: both; |
width: 0; |
} |
.citation { |
font-size: 9px; |
} |
.deux-colonnes { |
width:48%; |
float:left; |
text-align: center; |
} |
.italique { |
font-style:italic; |
} |
.version { |
float:right; |
} |
/* DESCRIPTION spécifique */ |
.desc td { |
width: 50%; |
vertical-align: top; |
border: 1px dasharray #36560B; |
padding: 7px 5px; |
} |
/* BIBLIOGRAPHIE spécifique */ |
li.item_biblio_flore { |
background: none; |
list-style: square; |
padding-left: 15px; |
color : #FC8912; |
} |
/* ECOLOGIE spécifique*/ |
.graphique { |
width:500px; |
margin-left:auto; |
margin-right:auto; |
text-align:center; |
} |
.fond_graphique { |
background-color:#F8F8F8; |
padding-top: 10px; |
padding-bottom: 10px; |
} |
.legende_graphique td, .legende_graphique tbody, .legende_graphique table { |
font-size: 8px; |
background:none; |
border:none; |
} |
.svg_clim, .svg_sol { |
width: 500px; |
height: 200px; |
} |
.svg_sol { |
width: 500px; |
height: 250px; |
} |
.legende_formes { |
width : 348px; |
height : 30px; |
display: block; |
margin-right : auto; |
margin-left: auto; |
padding : 5px; |
} |
/* REPARTITION spécifique*/ |
.bloc_legende_repartition { |
float:left; |
margin-right:5px; |
margin-bottom:3px; |
width:15px; |
height:15px; |
border:1px solid black; |
} |
.texte_legende_repartition { |
float:left; |
font-size :10px; |
width: 160px; |
text-align:left; |
} |
.legende_r { |
width: 190px; |
margin-right: auto; |
margin-left: auto; |
} |
.repartition_observations { |
width: 250px; |
margin-bottom: 5px; |
margin-right: auto; |
margin-left: auto; |
text-align: center; |
} |
.repartition_observations object { |
display: block; |
padding: 0px; |
height:200px; |
margin-right: auto; |
margin-left: auto; |
} |
/* NOMENCLATURE spécifique*/ |
.legende_nom_retenu { |
background-color: #E6FFA2; |
} |
.surlignage { |
background-color: #E6FFA2; |
} |
.couleur_legende { |
display: inline-block; |
height: 12px; |
width: 30px; |
margin-right: 5px; |
margin-top: 2px; |
border: 1px dashed black; |
} |
.legende { |
border:dashed 1px #AAA; |
padding:5px 10px; |
} |
.onglet_marge_gauche { |
margin-top: 7px; |
padding-left: 30px; |
} |
li.item_nomenclature { |
background: none; |
list-style: square; |
padding-left: 15px; |
color : #FC8912; |
} |
.nom { |
vertical-align: top; |
color: black; |
} |
.retenu, .synonyme{ |
font-size:0.8em; |
} |
.retenu{ |
font-weight:bold; |
} |
.basionyme_complet { |
margin-left:20px; |
display:block; |
} |
/* ILLUSTRATION spécifique*/ |
#illustrations { |
width:196px; |
height:196px; |
margin-right: auto; |
margin-left: auto; |
text-align:center; |
border:0.5px dotted black; |
} |
.liste-illustrations{ |
list-style-type:none; |
padding:0; |
} |
.liste-illustrations li { |
list-style-image:none !important; |
background:none; |
text-align:center; |
font-size:11px; |
float: left; |
width:210px; |
height:285px; |
} |
#illustrations .liste-illustrations li{ |
height: 215px; |
} |
.liste-illustrations li p{ |
margin:2px 2px 5px 2px; |
width:206px; |
font-size:11px; |
} |
.liste-illustrations strong{ |
font-weight:bold; |
text-align: center; |
} |
.liste-illustrations img{ |
display:block; |
border:1px solid white; |
text-align: center; |
padding:2px; |
max-height:196px; |
max-width:196px; |
margin-right: auto; |
margin-left: auto; |
} |
.liste-illustrations a:hover img{ |
border:1px dotted #FD8C13; |
} |
/* WIKI spécifique*/ |
.wiki { font-size : 10px; |
} |
/tags/v5.2-20131127/presentations/styles/eflore.css |
---|
New file |
0,0 → 1,1546 |
@CHARSET "UTF-8"; |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Générique */ |
body { |
font-family:Arial, Helvetica, Verdana, sans-serif; |
font-size:0.85em; |
background-color:#fff; |
margin:2px; |
} |
h1, h2, h3, h4 { |
font-weight:bold; |
letter-spacing:0; |
} |
h1 { |
padding:0 0 0 25px; |
margin:20px 0 10px 0; |
font-size:15px; |
text-transform:uppercase; |
color:#fd8c13; |
} |
h2 { |
margin:20px 0 12px 0; |
font-size:15px; |
color:#FD8C13; |
} |
h3 { |
margin:20px 0 12px; |
font-size:14px; |
color:#454341; |
} |
h4 { |
margin:2px 2px 2px 0; |
font-size:11px; |
font-weight:normal; |
color:#AAAAAA; |
} |
h1 a, h2 a, h3 a, h4 a { |
color:inherit; |
border-bottom: dotted 1px; |
} |
h3 a { |
border-color:#CCCCCC; |
} |
a { |
color:#598000; |
border-bottom:1px dotted #95ae5d; |
} |
a:hover { |
color:#FD8C13; |
border-bottom:1px dotted #95ae5d; |
} |
hr{ |
color:#62210F; |
} |
table{ |
border-collapse: collapse; |
width:100%; |
margin:5px 0; |
} |
td,th{ |
border:1px solid #36560B; |
padding:7px 5px; |
} |
th{ |
background-color:#EEE; |
} |
th[title]:after { |
content: " " url("../images/aide.png") !important; |
} |
caption{ |
border:1px solid #36560B; |
background-color:#EEE; |
font-weight:bold; |
padding:2px; |
} |
img{ |
border:0; |
} |
img a{ |
display:block; |
} |
legend{ |
color:#AD5A40; |
} |
dl { |
width:100%; |
} |
dt { |
float:left; |
font-weight:bold; |
text-align:top left; |
margin-right:0.3em; |
} |
dd { |
width:auto; |
margin:0.5em 0; |
} |
.acceder-outil { |
font-size:0.85em; |
} |
/* @TODO mettre dans commun.css mais line-height déconne */ |
.acceder-outil-vert { |
display:inline-block; |
line-height: 25px; |
padding-left: 30px; |
padding-right: 10px; |
background:url("/sites/commun/generique/images/graphisme/icone_erable_blanc_vert.png") no-repeat scroll -1px -1px transparent; |
border-radius: 14px; -moz-border-radius:14px; -webkit-border-radius:14px; |
color:#6C6865; |
font-family:helveticaneue; |
font-size:12px; |
border: solid #d0d0d0 1px; |
} |
#zone-contenu.acceder-outil.img { |
margin-top:-2px; |
margin-bottom:-2px; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Disposition */ |
#zone-centrale { |
text-align:center; |
} |
#zone-logo{ |
left:18px; |
margin:1px 10px; |
position:absolute; |
top:2px; |
z-index:1; |
} |
#zone-entete{ |
height:121px; |
margin:0; |
} |
#zone-titre{ |
height:38px; |
margin:0; |
text-align:right; |
} |
#zone-titre h1{ |
margin:0 20px 0 0; |
padding:0; |
background-color:transparent; |
font-size:28px; |
font-weight:bold; |
} |
#zone-corps{ |
margin:0; |
text-align:left; |
} |
#zone-menu{ |
position:relative; |
float:left; |
height:21px; |
width:100%; |
margin:0; |
padding:0; |
text-align:left; |
font-weight:bold; |
border-bottom:1px solid #62210F; |
} |
#zone-contenu{ |
clear:both; |
min-height:300px; |
padding:0 2px; |
text-align:justify; |
border-top:medium none !important; |
border:1px solid #62210F; |
} |
#zone-pied{ |
clear:both; |
text-align:center; |
} |
.ui-tabs { padding:0; position: relative; } |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Logo */ |
#zone-logo img{ |
border:0; |
} |
#zone-logo a{ |
position:absolute; |
top:0; |
left:0; |
} |
#zone-logo a:hover{ |
border:1px dotted; |
} |
#zone-logo a:hover:after{ |
content:" Retour à l'accueil "; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Navigation : onglets */ |
.onglets { |
display:inline-block; |
padding:0; |
margin:0; |
} |
#zone_onglets > ul > li > a { |
width: auto; |
} |
.onglets a { |
border:none |
} |
.onglets li a, .onglets li{ |
list-style-image:none; |
padding:5px 3px 5px 3px; |
margin-top:2px; |
background-color:#C2C0AD; |
text-align: center; |
} |
.onglets li.verna{ |
width: 220px; |
} |
.onglets li.sci{ |
width: 120px; |
} |
.onglets li{ |
cursor:pointer; |
float:left; |
list-style:none; |
margin-right:5px; |
font-size:13px; |
text-transform:uppercase; |
letter-spacing:0; |
padding:5px 2px 5px 5px; |
margin:0 1px 0 0; |
background:none no-repeat 5px 9px #C2C0AD; |
color:#fd8c13; |
border:1px solid #c2c0ad; |
border-bottom:0px solid #c2c0ad; |
text-decoration:none; |
border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;-webkit-border-radius:10px 10px 0 0; |
} |
.onglets .menu_actif a{ |
background:none; |
color:#FD8C13; |
font-weight:bold; |
} |
.onglets .menu_actif{ |
background:none; |
border:1px solid #C2C0AD; |
border-bottom:0 solid #c2c0ad; |
text-decoration:none; |
border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;-webkit-border-radius:10px 10px 0 0; |
} |
.onglets .menu_inactif a, .onglets h1{ |
color:#6C6865; |
} |
.onglets .menu_actif h1{ |
color:#FD8C13; |
} |
.onglets li:hover{ |
background:white; |
border-bottom:0; |
} |
.onglets li a:hover{ |
color:#FD8C13; |
background:white |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Général */ |
.centrer{ |
text-align:center; |
} |
.discretion{ |
color:#A9A9A9; |
font-size:10px; |
font-weight:normal; |
} |
.attention{ |
background-color:#ffffcc; |
background-image:url("../images/attention.png"); |
} |
.information{ |
background-color:#e7ebfd; |
background-image:url("../images/information.png"); |
} |
.attention, .information{ |
display:inline-block; |
background-repeat:no-repeat; |
background-position:5px 50%; |
padding:10px 5px 5px 40px; |
background-size:24px 24px; -webkit-background-size:24px 24px; -o-background-size:24px 24px; -moz-background-size:24px 24px; |
max-width:600px; |
min-height:20px; |
} |
.msg{ |
max-width:100%; |
height:auto; |
width: 100%; |
box-sizing:border-box; -moz-box-sizing:border-box; -webkit-box-sizing: border-box; |
border-radius: 10px 10px 10px 10px; |
box-shadow: 2px 2px 5px #AAAAAA; |
} |
hr.nettoyage{ |
clear:both; |
width:0; |
} |
.debogage, .debogage pre{ |
white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; |
word-wrap:break-word; /* IE 5.5+ */ |
overflow:auto;/* IE 6 */ |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Largeurs à utiliser pour fixer les tailles des éléments (tableau, paragraphe...) */ |
.largeur-01{ |
width:60px;} |
.largeur-02{ |
width:120px;} |
.largeur-03{ |
width:180px;} |
.largeur-04{ |
width:240px;} |
.largeur-05{ |
width:300px;} |
.largeur-06{ |
width:360px;} |
.largeur-07{ |
width:420px;} |
.largeur-08{ |
width:480px;} |
.largeur-09{ |
width:540px;} |
.largeur-10{ |
width:600px;} |
.largeur-11{ |
width:660px;} |
.largeur-12{ |
width:720px;} |
.largeur-13{ |
width:780px;} |
.largeur-14{ |
width:840px;} |
.largeur-15{ |
width:900px;} |
.largeur-16{ |
width:960px;} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Formulaire de Recherche Simple */ |
#bloc-recherche fieldset { |
border:none; |
padding:0; |
width:100%; |
} |
.choixNiveau { |
position:absolute; |
margin-top: -30px; |
padding: 0; |
width: 300px; |
margin-left:430px; |
} |
.choixNiveau a { |
float:left; |
border-style:solid; |
padding:0.4em 0.8em; |
border-color:#C2C0AD; |
color:#9AC343; |
font-weight:bold; |
cursor:pointer; |
background:#f9f9f9; |
border:1px solid #CCCCCC; |
} |
.choixNiveau .niveau1 { |
border-radius:4px 0 0 0; |
} |
.choixNiveau .niveau3 { |
border-radius:0 4px 0 0; |
} |
.choixNiveau .actif { |
color:#EB8F00; |
border-color:#EB8F00; |
background:white; |
} |
/* couleur des boutons non sélectionnés*/ |
.ef-form-niveau .ui-buttonset { |
margin-right: 25px; |
} |
.ef-form-niveau .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { |
background-color:#C2C0AD; |
color: #9AC343; |
font-weight: bold; |
} |
#ef-form-niveau .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { |
background-color: #FFFFFF; |
color: #EB8F00; |
font-weight: bold; |
} |
#ef-form-niveau .ui-button-text-only .ui-button-text { |
padding: 0.2em 0.5em; |
} |
#bloc-recherche h1, #contenu h1 { |
background: none; |
padding: 0 0 0 20px; |
} |
#bloc-recherche { |
padding-bottom: 0; |
} |
#ef-form-nomenclature table { |
width:100%; |
} |
#ef-form-nomenclature h1 { |
margin:0 0 3px 16px; |
} |
#ef-form-nomenclature .champ { |
padding:3px; |
font-size:12px; |
} |
#ef-form-nomenclature .zone-choix-type-nom { |
float:left; |
padding:0 10px |
} |
#ef-form-nomenclature .titre-choix-nom { |
padding:12px; |
font-weight:bold |
} |
#ef-form-nomenclature #zone-liens-recherche { |
padding:5px; |
} |
#eflore_nomenclature_fiche { |
background:url(../images/lien.png) no-repeat 0 -1px; |
padding:0 0 0 17px; |
color:#598000; |
border:1px dotted #95AE5D; |
border-width:0 0 1px 0; |
cursor:pointer; |
margin:0 0 0 19px; |
font-size:12px |
} |
#ef-form-nomenclature input.ok { |
color:rgba(0,0,0,0); |
font-size:12px; |
font-weight:bold; |
padding:3px 10px 3px 10px; |
background:url("../images/loupe.png") no-repeat scroll 11px 3px white; |
} |
#ef-form-nomenclature input.ok:hover { |
background:url("../images/loupe.png") no-repeat scroll 11px 3px #DDD; |
cursor:pointer; |
} |
#ef-form-nomenclature label { |
font-size:12px |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Formulaire d'autocompletion */ |
.ui-autocomplete a { |
text-decoration:none; |
border-bottom:none; |
} |
.ui-menu { |
list-style:none; |
padding: 2px; |
margin: 0; |
display:block; |
float: left; |
font-size: 11px; |
font-family: arial; |
} |
.ui-menu .ui-menu-item a { |
text-decoration:none; |
display:block; |
padding:.2em .4em; |
line-height:0.8; |
zoom:1; |
} |
#nom.valeur-defaut-recherche { |
color:#848484; |
font-style:italic; |
font-weight:0.9em; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Résultats */ |
.zone-resultat { |
width:96%; |
min-height:101px; |
padding:10px; |
margin-bottom:10px; |
background:#f8f9ec; |
border:solid 1px #f1f3de; |
-moz-border-radius:10px; |
-webkit-border-radius:10px; |
border-radius:10px; |
font-size:13px; |
-moz-box-shadow:3px 3px 3px #DDD; |
} |
.zone-resultat .nom-sci{ |
display:inline-block; |
width:310px; |
} |
.zone-resultat img { |
border:solid 2px #DDD; |
float:right; |
height: 100px; |
width: 100px; |
} |
.surlignage { |
background-color: #E6FFA2; |
} |
#ef-resultats-decomposition #col-ns{ |
width:33%; |
} |
#ef-resultats-decomposition .retenu, #ef-resultats-decomposition .synonyme{ |
font-size:0.8em; |
} |
.retenu{ |
font-weight:bold; |
} |
#ef-resultats-determination .synonymes li { |
background: none; |
line-height: 18px; |
list-style: none outside none; |
padding-left: 15px; |
} |
.absent { |
display:block; |
float:right; |
background-color:transparent; |
background-image:url("../images/pasdephoto.png"); |
background-repeat:no-repeat; |
background-position:50% 20%; |
border: 2px solid #DDDDDD; |
margin: 0 5px; |
height: 100px; |
width: 100px; |
font-weight: bold; |
text-align: center; |
} |
.vide { |
display:block; |
background-color:transparent; |
margin: 0 5px; |
height: 100px; |
width: 100px; |
text-align: center; |
} |
.absent .contribuer { |
display: block; |
padding-top: 66px; |
} |
#ef-resultats-nv-determination { |
padding: 0; |
} |
#ef-resultats-nv-determination table, #ef-resultats-nv-determination table tbody, #ef-resultats-nv-determination table td { |
border: none; |
background: none; |
} |
#ef-resultats-nv-determination .nom { |
width: 30%; |
vertical-align: top; |
margin-top: 5px; |
} |
#ef-resultats-nv-determination .nom ul, #ef-resultats-nv-determination li{ |
margin: 0; |
margin-bottom: 5px; |
list-style-image: none; |
list-style-type: none; |
padding: 0; |
} |
#ef-resultats-determination { |
padding-left: 0px; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Fiche */ |
#bloc-fiche h1 { |
background: none repeat scroll 0 0 transparent; |
padding: 0 9px 0 9px; |
} |
#zone_contenu_fiche { |
background-color: #EEE; |
clear: left; |
min-height: 300px; |
padding-top: 0.4em; |
width: 676px; |
border:none; |
margin-left:-7px; |
} |
.ui-widget-content { |
background:white; |
} |
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { /* onglets + blocs */ |
border-bottom-right-radius: 0; |
} |
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { /* onglets + blocs */ |
border-bottom-left-radius: 0; |
} |
.colonne { |
float:left; |
padding-bottom:10px; |
width:33%; |
margin: 0 1px; |
} |
.deuxtiers{ |
width:66%; |
} |
.pasDeCurseur { |
cursor:default; |
} |
/* bloc */ |
.module { |
margin: 0 1em 0.5em 0; |
width: 99%; |
} |
.module .titre{ |
cursor: move; |
font-size: 12px; |
padding-bottom: 1px; |
padding-left: 1.2em; |
margin-left:-2px; |
margin-right:1px; |
} |
.module .titre .ui-icon { |
float: right; |
} |
.imagetteMoins, .imagettePlus { /* +/- du titre */ |
cursor:pointer |
} |
.module .contenu { |
padding: 10px; |
} |
.ui-sortable-placeholder { /* déplacement bloc */ |
border: 1px dotted black; |
visibility: visible !important; |
height: 50px !important; |
} |
.ui-sortable-placeholder * { |
visibility: hidden; |
} |
.module .contenu.attention { |
padding: 10px 5px 5px 40px; |
background-position: 5px 12px; |
width: 174px; |
} |
.pas_de_protection { |
display: block; |
margin-bottom: 5px; |
margin-left: 35px; |
} |
.completer_statut { |
display: block; |
float: right; |
margin-bottom: 10px; |
margin-right: 10px; |
padding-top: 5px; |
width: 60px; |
} |
#statut .aucune_info { |
padding: 10px; |
} |
.infos_liste_rouge { |
font-weight: bold; |
} |
#alignement-droite { |
float:right; |
margin-right: -5px; |
} |
.lien-onglet.lien-statique.lien_retour_synthese { |
background-attachment: scroll; |
background-clip: border-box; |
background-color: transparent; |
background-image: url("../images/fleche_gauche.png"); |
background-origin: padding-box; |
background-position: 0 2px; |
background-repeat: no-repeat; |
background-size: auto auto; |
padding-left: 20px; |
} |
/* Onglets */ |
#zone_onglets { |
margin-top: 0.1em; |
border-width:0; |
border-radius:0; |
width:676px; |
font-size:12px; |
margin-left:-7px; |
} |
#zone_onglets .ui-tabs { /* taille de la barre d'onglets */' |
padding:0; |
position: relative; |
} |
.ui-tabs .ui-tabs-nav li a { |
float: left; |
padding: 4px 4px 3px 3px; |
text-decoration: none; |
} |
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { /* couleur des onglets */ |
color: #9AC343; |
text-decoration: none; |
} |
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { |
color: #EB8F00; |
text-decoration: none; |
} |
#onglets { |
height:22px |
} |
#onglets li { |
list-style:none; |
line-height:12px; |
} |
#onglets li.ui-tabs-selected { |
line-height: 13px; |
} |
#onglets li { |
float:left; |
} |
#zone_onglets li .ui-icon-close { |
float: left; |
cursor: pointer; |
} |
#zone_onglets li a.lien-onglet { |
overflow: hidden; |
text-decoration: none; |
border-bottom: none; |
} |
#zone_onglets li a.lien-onglet hover { |
overflow: hidden; |
text-decoration: none; |
border-bottom: none; |
} |
/* Menu et + */ |
#zone_onglets #ongletEtPlus { |
cursor: pointer; |
display: none; |
float: right; |
font-size: 20px; |
height: 20px; |
padding-bottom: 0; |
padding-right: 5px; |
position: relative; |
top: 1px; |
width: 25px; |
z-index: 500; |
} |
#zone_onglets #ongletEtPlus a { |
border-bottom: none; |
} |
#lienOngletEtPlus { /* icone */ |
width:6px; |
padding-left: 9px; |
padding-top: 0px; |
display:block; |
margin-top:5px; |
} |
.lien-onglet-synthese, .lien-onglet-synthese:hover { |
border-bottom: none; |
} |
.menuModules { /* liste */ |
left: 465px; |
width: 187px; |
position: absolute; |
border: 1px solid #DCD1CC; |
margin: 0px; |
padding: 0px; |
top: 30px; |
z-index:499; |
background-color: #F9F9F9; |
color: #9AC343; |
font-weight: bold; |
} |
.elementMenuModules { /* element de la liste */ |
display:block; |
border: 1px solid white; |
width: 150px; |
padding: 10px 10px 10px 25px; |
margin:0px; |
cursor: pointer; |
} |
.elementMenuModules:hover { |
background-color: #FEBF01; |
} |
.elementMenuModulesSelectionne { |
background-color: #F6AF39; |
color: white; |
} |
#dialog label, #dialog input { display:block; } |
#dialog label { margin-top: 0.5em; } |
#dialog input, #dialog textarea { width: 95%; } |
.bloc_legende_repartition { |
float:left; |
margin-right:5px; |
margin-bottom:3px; |
width:15px; |
height:15px; |
border:solid 1px black; |
} |
.texte_legende_repartition { |
float:left; |
text-transform:capitalize; |
} |
.conteneur_lien_metadonnees { |
padding: 15px; |
} |
.lien_metadonnees { |
float:right; |
} |
.sous-liste-metadonnees { |
margin: 0px; |
} |
.intitule_metadonnee { |
font-weight: bold; |
color : #6C6865; |
} |
.lien_metadonnees_affiche { |
color:#FD8C13; |
} |
.metadonnees_resume_description { |
font-family: Arial,Helvetica,Verdana,sans-serif; |
font-size: 14px; |
} |
#nomenclature > ul > li.item_nomenclature { |
line-height: 18px; |
width:100%; |
} |
.tab-chargement { |
background: url("../images/chargement.gif") no-repeat scroll 10px 13px transparent; |
background-color: #FFFFFF; |
border: medium none; |
cursor: pointer; |
display: inline-block; |
font-size: 14px; |
padding: 20px 20px 20px 50px; |
width: 555px; |
} |
.conteneur_illustrations_cel { |
width: 250px; |
} |
.conteneur_metadonnees_cel { |
width: 250px; |
padding-top : 20px; |
} |
.onglet_marge_gauche { |
margin-top: 7px; |
padding-left: 30px; |
} |
.references_bibliographiques .texte_inactif { |
display:none; |
} |
#repartition_observations { |
height: 590px; |
width: 100%; |
overflow: hidden; |
} |
.legende_nom_retenu { |
background-color: #E6FFA2; |
} |
.couleur_legende { |
display: inline-block; |
height: 12px; |
width: 30px; |
margin-right: 5px; |
margin-top: 2px; |
border: 1px dotted black; |
} |
.lienToggle { |
cursor: pointer; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Nomenclature */ |
.nomenclature { |
text-transform: none; |
} |
.famille { |
text-transform: uppercase; |
} |
.ns-retenu { |
font-weight:bold; |
} |
.supra-gen, .gen, .sp, .infra-sp, .infra-gen { |
font-style: italic; |
text-transform: none; |
} |
.hyb, .chimere, .abbr, .formule-hyb, .gp, .cultivar, .commercial, |
.auteur, .annee, .biblio, .addendum, .type_epithete { |
font-style: normal; |
text-transform: none; |
} |
.vernaculaire { |
font-size: 17px; |
color: #A89D80; |
text-transform: none; |
} |
.redirige_depuis { |
color: #777777; |
font-size: 0.9em; |
font-weight: normal; |
text-transform: none; |
} |
.redirige_depuis strong { |
font-weight: bold; |
font-style: italic; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Wikinis */ |
.editable_sur_clic { |
min-height: 50px; |
} |
.aide_wikini { |
font-size: 0.8em; |
} |
.contenu_editable { |
background-color: #F8FBF2; |
border: dashed 1px #AAAAAA; |
padding: 5px; |
padding-top: 2px; |
border-radius: 3px; |
} |
.champ_edition_wiki { |
width: 100%; |
height: 350px; |
overflow: auto; |
} |
.imagettePlus { |
width:9px; |
height:9px; |
background:url('../images/ouvrir.png') no-repeat; |
display:inline-block; |
margin-right:3px; |
} |
.imagetteMoins { |
width:9px; |
height:9px; |
background:url('../images/fermer.png') no-repeat; |
margin-right:3px; |
display:inline-block; |
} |
.basionyme_complet { |
margin-left:20px; |
display:block; |
} |
.legende { |
border:dashed 1px #AAA; |
padding:5px 10px; |
} |
.legende b { |
color:#AAA; margin-bottom:10px |
} |
.wp { |
background:url('../images/sites/wikipedia.png') no-repeat; |
margin-left: 15px; |
margin-top: 5px; |
padding-left: 20px; |
} |
/*----Description+Ecologie-----------------------------------------------------------------------------------*/ |
.citation { |
font-size:9px; |
} |
.fond_graphique { |
background-color:#F8F8F8; |
padding-top: 10px; |
padding-bottom: 10px; |
} |
.graphique { |
margin-right: auto; |
margin-left: auto; |
width:100%; |
} |
.graphique > * { |
width:100%; |
} |
.titre { |
color:#36560B; |
left:2px; |
position:relative; |
padding-right:5px; |
} |
.desc { |
margin-right:3px; |
margin-left:3px; |
} |
.desc td { |
width: 50%; |
vertical-align: top; |
border: 1px dasharray #36560B; |
padding: 7px 5px; |
} |
.italique { font-style: italic; |
} |
.gras { font-weight: bold; |
} |
/* boutons spécifiques légende graphiques (masquer/afficher) */ |
.legende_formes { |
background-image:url('../images/legende_formes.png'); |
background-position: 2px 5px; |
background-repeat: no-repeat ; |
width : 428px; |
height : 30px; |
margin-right : auto; |
margin-left: auto; |
border: 1px dotted grey; |
padding : 5px; |
text-align:center; |
} |
.legende_graphique { |
display:none; |
font-size:11px; |
padding: 5px; |
} |
.legende_graphique td, .legende_graphique tbody, .legende_graphique table { |
background:none; |
border:none; |
} |
.cacher, .voir { |
float:right; |
} |
.cacher { |
display:none; |
} |
.fond_graphique button { |
background: none; |
border: none; |
} |
.fond_graphique button:hover { |
cursor: pointer; |
text-decoration: underline; |
} |
/* Illustrations */ |
#illustrations-coste img { |
display:inline; |
vertical-align:middle; |
margin:0px; |
padding:0px; |
} |
#illustrations { |
margin-left:-5px; |
margin-right:-4px; |
} |
.liste-illustrations .attention { |
border:0; |
background:none; |
text-align:left; |
padding:0; |
} |
.liste-illustrations { |
list-style-type:none; |
padding:0; |
} |
.liste-illustrations li { |
list-style-image:none !important; |
background:none; |
text-align:center; |
font-size:11px; |
float: left; |
width:210px; |
height:285px; |
margin:0px; |
padding:0px; |
} |
#galerie-organes { |
width: 648px; |
margin-top: 10px; |
margin-bottom: 10px; |
background-color: #f0f0f0; |
border-radius: 10px; |
} |
.separator { |
display: inline-block; |
width: 10px; |
} |
.liste-illustrations li.organe-moyen { |
height: 230px; |
font-size: 13px; |
} |
.liste-illustrations li.caractere-moyen { |
height: 210px; |
} |
.liste-illustrations li p.absent-organes { |
height: 193px; |
width: 196px; |
margin: 2px 5px 5px; |
background-position: 50% 50%; |
} |
.liste-illustrations li p.absent-organes a.contribuer { |
height: 30px; |
padding-top: 146px; |
} |
.liste-illustrations li.icone-organe { |
width: 108px; |
height: auto; |
padding-top: 5px; |
padding-bottom: 5px; |
background-color: #ffffff; |
} |
.liste-illustrations li.icone-organe:first-of-type { |
border-radius: 10px 0 0 0; |
} |
.liste-illustrations li.icone-organe:last-of-type { |
border-radius: 0 10px 0 0; |
} |
.liste-illustrations li.icone-organe.active { |
background-color: #f0f0f0; |
} |
.liste-illustrations li.miniature-organe { |
width: 105px; |
height: auto; |
} |
#zone_contenu_corps img.icone-organe { |
height: 30px; |
margin: auto; |
border: none; |
} |
#zone_contenu_corps img.miniature-organe { |
margin: auto; |
} |
div.onglet-organe { |
margin: auto; |
width: 632px; |
} |
div.onglet-organe ul.liste-illustrations { |
margin-top: 8px; |
} |
.liste-illustrations li p.absent-mini { |
width: 60px; |
height: 60px; |
margin-right: 22px; |
font-size: .8em; |
background-image: url("../images/pasdephoto_petit.png"); |
} |
.liste-illustrations li p.absent-mini .contribuer { |
padding-top: 25px; |
} |
#grande-image-organe { |
margin-bottom: 15px; |
text-align: center; |
} |
#grande-image-legende { |
width: 600px; |
margin: auto; |
padding-bottom: 5px; |
} |
a.lien-images-organes.non-fourni { |
opacity: 0.2; |
text-decoration: none; |
} |
a.lien-images-organes.non-fourni:hover { |
text-decoration: none; |
color: inherit; |
} |
a.lien-images-organes.fourni { |
cursor: pointer; |
} |
a.lien-images-organes.fourni:hover { |
} |
a.lien-grande-image-organe { |
cursor: pointer; |
} |
#illustrations-coste .liste-illustrations li { |
height: 196px; |
} |
.liste-illustrations li p { |
margin:2px 2px 5px 2px; |
width:206px; |
font-size:11px; |
} |
.liste-illustrations strong { |
font-weight:bold; |
} |
.liste-illustrations img { |
display:block; |
border:1px solid white; |
margin:0 auto; |
padding:2px; |
max-height:196px; |
max-width:196px; |
} |
.liste-illustrations a:hover img{ |
border:1px dotted #FD8C13; |
} |
a.img-cadre{ |
display:block; |
border: 1px solid white; |
background:transparent; |
width:204px; |
height:204px; |
margin-right:2px; |
} |
a.img-cadre:hover{ |
border:1px dotted #FD8C13; |
} |
.img-cadre-fond{ |
background:white; |
width:200px; |
height:200px; |
line-height:200px; |
text-align:center; |
margin:2px; |
} |
#illustrations-photoflora img{ |
display:inline; |
vertical-align:middle; |
margin:0; |
padding:0; |
border:0; |
} |
.importance4 { |
font-size:0.8em; |
padding:5px; |
box-shadow:none; |
} |
h1 .nomenclature { |
color:#555; |
font-size:19px; |
} |
h1 .famille { |
font-size:13px; |
margin-top:5px; |
} |
table tbody { |
background-color: #F8F8DB; |
border: 1px solid #9AC342; |
} |
/* relatif aux liens pour l'export pdf --- bloc du bas ---*/ |
#bloc_export_choix { |
width: 100%; |
} |
.avertissement_telechargement { |
padding-top:1px; |
font-style:italic; |
color: grey; |
font-weight: 0.9em; |
} |
#export_pdf input[type="submit"] { |
text-align: center; |
width :120px; |
display:block; |
/*margin-right: auto;*/ |
margin-left: 25px; |
} |
#export_pdf fieldset label{ |
width :120px; |
display:inline-block; |
text-align:right; |
} |
#export_pdf fieldset { |
border: none; |
margin-left: auto; |
margin-right: auto; |
} |
.infos_liens_permanents { |
width: 60%; |
} |
.telechargements_pdf { |
width: 40%; |
} |
.conteneur_telechargements > * { |
padding-left:20px; |
padding-top: 10px; |
padding-bottom: 10px; |
} |
.lien_telechargement_qr_code { |
padding: 0; |
margin-left:20px; |
} |
.conteneur_permalien_mobile { |
margin-left:20px; |
margin-top: 10px; |
} |
.lien_export_pdf { |
background:url('../images/pdf.png') no-repeat; |
padding-left: 20px; |
font-size:12px; |
padding-bottom: 3px; |
} |
.avertissement_telechargement { |
margin-top: 2px; |
} |
.conteneur_permalien { |
padding-left: 5px; |
padding-bottom: 5px; |
padding-top: 5px; |
width: 100%; |
} |
.wp.conteneur_permalien { |
padding-left: 0px; |
padding-top: 0px; |
} |
.titre_lien_permanent { |
padding-left: 0px; |
} |
.signaler-mauvaise-identification { |
font-weight: bold; |
margin-left: 35px; |
} |
/**----------------------- recherche--avancee--formulaire---------------------------------------------**/ |
::-webkit-input-placeholder { color:#777777; } |
::-moz-placeholder { color:#777777; } /* firefox 19+ */ |
:-ms-input-placeholder { color:#777777; } /* ie */ |
input:-moz-placeholder { color:#777777; } |
#recherche_av { |
position:relative; |
float:right; |
right:17px; |
} |
#bloc-recherche { |
padding-bottom : 3px; |
} |
div #recherche_av_form { |
width:95%; |
margin-right:auto; |
margin-left:auto; |
padding : 3px; |
} |
#bloc_recherche_av { |
border: 1px solid white; |
padding : 5px; |
padding-top : 15px; |
} |
#recherche_av_form label { |
display:block; |
text-align:left; |
padding-left:7px; |
} |
#recherche_av_form .rech { |
margin-top:20px; |
position:relative; |
left: 228px; |
width:200px; |
padding: 2px; |
cursor:pointer; |
background-color:#FFFFFF; |
font-weight: bold; |
} |
#recherche_av_form .rech:hover { |
background-color:#DDDDDD; |
} |
#recherche_av_form label, #recherche_av_form input, #recherche_av_form select { |
float:left; |
} |
#recherche_av_form .valeur-defaut-recherche { |
color: #848484; |
font-style: italic; |
} |
/* fieldset classification */ |
fieldset.classification_form label{ |
width: 95px; |
} |
fieldset.classification_form input, fieldset.classification_form select{ |
width: 100px; |
} |
/* fieldset statuts presence */ |
fieldset.statuts_form label, fieldset.presence_form label{ |
width: 220px; |
} |
fieldset.statuts_form select, fieldset.presence_form select{ |
width: 200px; |
} |
/* fieldset publication */ |
fieldset.publication_form label { |
width: 60px; |
} |
/* fieldset numero */ |
fieldset.numero_form label { |
width: 135px; |
} |
.description-referentiel { |
text-align: justify; |
color: #222222; |
font-family: arial; |
font-size: 12px; |
font-weight: normal; |
} |
/**----------------------- Correction de hauteur pour les graphiques ---------------------------------------------**/ |
.chorodep_svg { |
height: 590px; |
width: 100%; |
} |
.ecologie_svg { |
width: 500px; |
} |
.chargement { |
background:url('../images/chargement-transparent.gif'); |
background-repeat:no-repeat; |
background-position:center; |
min-height: 150px; |
} |
/**----------------------- Autocompletion des noms ---------------------------------------------**/ |
li.autocompletion_nom, .autocompletion_nom:hover { |
background: url("../images/fleche_droite.png") no-repeat scroll 100% 0 white; |
margin: 0 0 5px; |
} |
/**----------------------- Illustration des résultats ---------------------------------------------**/ |
.illustration_resultat_cel, .illustration_resultat_choro, .illustration_resultat_coste, #synthese_repartition img, #synthese_illustrations img { |
cursor: pointer; |
} |
.nomenclature_synonyme { |
padding-left: 13px; |
} |
.nomenclature_basionyme { |
font-size: 0.9em; |
} |
/**----------------------- Styles pour la pagination ---------------------------------------------**/ |
.page_courante { |
font-size: 1.5em; |
} |
.page_courante a { |
color: black; |
} |
.nb_resultats { |
float:right; |
margin-top: 10px; |
} |
/tags/v5.2-20131127/presentations/images/ouvrir.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/ouvrir.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/lien.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/lien.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/legende_formes.svg |
---|
New file |
0,0 → 1,950 |
<?xml version="1.0" encoding="utf-8"?> |
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |
width="451.119px" height="29.162px" viewBox="0 0 451.119 29.162" enable-background="new 0 0 451.119 29.162" |
xml:space="preserve"> |
<pattern x="-153.85" y="236.477" width="69" height="69" patternUnits="userSpaceOnUse" id="Unnamed_Pattern" viewBox="2.125 -70.896 69 69" overflow="visible"> |
<g> |
<polygon fill="none" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/> |
<polygon fill="#F7C158" points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "/> |
<g> |
<path fill="#FFFFFF" d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335 |
c-0.051,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.063-0.165,0.128 |
c-0.051,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<path fill="#FFFFFF" d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.063-0.165,0.128 |
c-0.051,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<g> |
<g> |
<path fill="#FFFFFF" d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
C8.15-41.004,8.149-41.02,8.14-41.04"/> |
<path fill="#FFFFFF" d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631 |
C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
</g> |
</g> |
<g> |
<path fill="#FFFFFF" d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46 |
c-0.051,0.063-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
c-0.021,0.011-0.021-0.005-0.03-0.025"/> |
<path fill="#FFFFFF" d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.063-0.165,0.128 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 |
c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 |
C15.81-2.74,15.809-2.756,15.8-2.776"/> |
<path fill="#FFFFFF" d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46 |
c-0.05,0.063-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587 |
c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 |
C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 |
c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367 |
c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751 |
C8.15-2.74,8.149-2.756,8.14-2.776"/> |
<path fill="#FFFFFF" d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46 |
C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161 |
c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631 |
C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45 |
c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419 |
c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 |
c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367 |
c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751 |
C0.489-2.74,0.488-2.756,0.479-2.776"/> |
</g> |
</g> |
</pattern> |
<rect id="trois_ve_humidite_atmos" y="23.316" fill="#EA6626" width="23.292" height="3.537"/> |
<circle id="ve_lumiere" fill="#EA6727" stroke="#FFFFFF" stroke-width="3" cx="8.686" cy="8.35" r="6.85"/> |
<text transform="matrix(1 0 0 1 30.4502 9.2402)" font-family="'ArialMT'" font-size="9">valence optimale du taxon</text> |
<text transform="matrix(1 0 0 1 30.4502 26.2402)" font-family="'ArialMT'" font-size="9">zone optimale du taxon calculée à partir des optimums pour les taxons inférieurs</text> |
</svg> |
/tags/v5.2-20131127/presentations/images/flecheDroite.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
/tags/v5.2-20131127/presentations/images/flecheDroite.jpg |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/jpeg |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/fleche_droite.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/fleche_droite.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/chargement-transparent.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/chargement-transparent.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/chargement.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/chargement.gif |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/flecheGauche.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
/tags/v5.2-20131127/presentations/images/flecheGauche.jpg |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/jpeg |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/aide.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/aide.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/fleche_gauche.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/fleche_gauche.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/inpn.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/sites/inpn.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/wikipedia.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/wikipedia.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/anbg.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/anbg.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/antilles.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/antilles.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/si.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/si.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/vha.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/vha.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/cbnm.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/cbnm.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/smf.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/smf.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/seinet.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/seinet.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/sfo.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/sfo.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/cjb.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/cjb.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/ipni.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/ipni.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/nybg.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/nybg.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/tpl.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/tpl.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/mnhn.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/mnhn.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/jstor.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/jstor.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/lichen.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/lichen.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/sites/tropicos.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/sites/tropicos.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/attention.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/attention.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/pasdephoto.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/pasdephoto.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/pdf.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/pdf.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/pasdephoto_petit.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/pasdephoto_petit.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/icones_tags/ecorce.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/icones_tags/ecorce.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/icones_tags/port.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/icones_tags/port.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/icones_tags/feuille.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/icones_tags/feuille.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/icones_tags/fruit.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/icones_tags/fruit.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/icones_tags/rameau.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/icones_tags/rameau.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/icones_tags/fleur.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/tags/v5.2-20131127/presentations/images/icones_tags/fleur.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/legende_formes.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/legende_formes.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/fermer.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/fermer.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/interdit.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/interdit.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/loupe.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/loupe.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/images/information.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/presentations/images/information.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/scripts/fiche-synthese.js |
---|
New file |
0,0 → 1,658 |
//+----------------------------------------------------------------------------------------------------------+ |
// Onglets et Portlets |
/** |
* Les variables suivantes ont été ajoutée par php |
* |
* var urlTexteBrutSectionWikiTpl : url pour obtenir le texte brut d'une section de wiki |
* var urlEditionSectionWikiTpl : url pour éditer une section du wiki |
* var urlTexteFormateSectionWikiTpl : url pour obtenir le texte formaté en html d'une section de wiki |
* var pageWikiTaxon : url pour obtenir le texte formaté en html d'une section de wiki |
* var urlPopup = url de base pour les popup contenant du code un peu complexe |
* |
*/ |
/** |
* Variables globales du script |
*/ |
var modules = Array(); |
var tableauOnglets = Array(); |
var nbOngletsInvisibles = 0; |
var ongletSyntheseCharge = true; |
var ongletIllustrationsCharge = false; |
/** Classe Module |
* Définit un module de type portlet |
**/ |
function Module(id, module, onglet, statique) { |
// Variables de classe : identifiant, titre, et le HTML du résumé à afficher dans le contenu |
this.id = id; |
this.titre; |
this.htmlResume; |
this.statique = statique; |
// Les objets Portlet et Onglet que l'ont garde en mémoire pour pouvoir y accéder facilement |
this.portlet = module; |
this.onglet; |
// creerPortlet |
// Créer l'objet Portlet HTML à afficher et le stocker dans les variables de classe |
this.creerPortlet = function() { |
var objet = this; |
var titre = $(module).children('.titre'); |
titre.className = 'titre ui-widget-header ui-corner-all'; |
titre.id = 'titre-' + this.id; |
var lienTitre = $(module).children('.titre').children('a'); |
lienTitre.attr('href','#'+this.id); |
lienTitre.click(function() { |
if (objet.onglet.is(':visible')) { |
$('#zone_onglets').tabs('select', '#ui-tabs-'+objet.id); |
} |
return false; |
}); |
lienTitre.hover(function() { |
if (!objet.ongletEstAffiche()) { |
$(this).css({"color":"white"}); |
} else { |
$(this).css({"color":"#E78F08"}); |
} |
}); |
lienTitre.mouseout(function() { |
$(this).css({"color":"white"}); |
}); |
var contenu = $(module).children('.contenu'); |
contenu.id = 'contenu-' + this.id; |
contenu.className ='contenu'; |
var lienToggle = document.createElement('span'); |
lienToggle.className = 'lienToggle ui-icon ui-icon-minusthick'; |
$(titre).append(lienToggle); |
$(lienToggle).click(function() { |
objet.afficherCacherModule(); |
}); |
this.portlet = module; |
return module; |
} |
this.ongletEstAffiche = function() { |
return $(this.onglet.selector).is(':visible'); |
} |
// Crée l'objet Onglet HTML |
this.creerOnglet = function() { |
var objet = this; |
this.onglet = onglet; |
} |
// Initialisation de l'objet |
this.creerPortlet(); |
this.creerOnglet(); |
// Accesseurs de la classe |
this.getOnglet = function() { |
return this.onglet; |
} |
this.getPortlet = function() { |
return this.portlet; |
} |
// fonctions d'affichage et cachage (je sais pas si on dit ça comme ça) des onglets |
this.afficherCacherModule = function() { |
$(this.portlet).find(".lienToggle").toggleClass("ui-icon-plusthick"); |
$(this.portlet).find(".lienToggle").toggleClass("ui-icon-minusthick"); |
$(this.portlet).find(".titreOnglet").toggleClass("pasDeCurseur"); |
$(this.portlet).find(".contenu").toggle(); |
} |
} |
function selectionnerOngletSynthese() { |
// Suppression des classes css qui mettent en surbrillance l'onglet actif |
$('#zone_onglets > ul > li').removeClass('ui-tabs-selected'); |
$('#zone_onglets > ul > li').removeClass('ui-state-active'); |
// application de ces même classes css à l'onglet "acceuil" qui est un onglet "articifiel" |
$('#onglet_synthese').addClass('ui-tabs-selected'); |
$('#onglet_synthese').addClass('ui-state-active'); |
$('a.lien_retour_synthese').hide(); |
} |
function deselectionnerOngletSynthese() { |
// Suppression des classes css qui mettent en surbrillance l'onglet actif sur l'onglet acceuil |
$('#onglet_synthese').removeClass('ui-tabs-selected'); |
$('#onglet_synthese').removeClass('ui-state-active'); |
$('a.lien_retour_synthese').show(); |
} |
function getUrlVars() { |
var vars = [], hash; |
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); |
for (var i = 0; i < hashes.length; i++) { |
hash = hashes[i].split('='); |
vars.push(hash[0]); |
vars[hash[0]] = hash[1]; |
} |
return vars; |
} |
function selectionnerOngletParDefautOuEnregistre() { |
// Si un onglet est précisé dans l'url |
// Récupération de l'adresse de l'onglet sélectionné |
var urlVars = getUrlVars(); |
if (urlVars['onglet'] == undefined) { |
// Si pas d'onglet enregistré, selection du premier par défaut |
// Si c'est l'onglet fiche, on le sélectionne artificiellement |
selectionnerOngletSynthese(); |
$('.ui-tabs-panel').hide(); |
$('#synthese').show(); |
} else { |
ongletSyntheseCharge = false; |
} |
var cookieOnglet = obtenirOngletCookiePourPage(); |
// On réouvre le dernier onglet consulté, à voir si on garde ça en prod, en tout cas c'est |
// pratique pendant le développement |
if (cookieOnglet && cookieOnglet != 'ui-tabs-1') { |
$('#zone_onglets').tabs("select", '#'+cookieOnglet); |
} else { |
selectionnerOngletSynthese(); |
$('.ui-tabs-panel').hide(); |
$('#synthese').show(); |
} |
} |
function afficherOngletsPourNiveau() { |
/* affiche les onglets par default selon niveau*/ |
for (indice in tableauOnglets) { |
var ongletEnCours = tableauOnglets[indice]; |
titre_onglet = ongletEnCours.titre; |
titre_onglet = $.trim(titre_onglet); |
if (!Array.indexOf) { |
Array.prototype.indexOf = function (obj, start) { |
for (var i = (start || 0); i < this.length; i++) { |
if (this[i] == obj) { |
return i; |
} |
} |
return -1; |
} |
} |
if (ongletsDefaut.indexOf(titre_onglet) == -1) { |
ongletEnCours.afficherCacherModule(); |
nbOngletsInvisibles++; |
} |
} |
} |
function surSelectionOnglet(event,ui) { |
// Récupération de l'adresse de l'onglet sélectionné |
var url = ui.tab.href; |
// le fragment suivant le # dans l'url contient l'id de l'onglet |
var fragmentsAncre = url.split('#'); |
fancyboxinitialise = false; |
if (fragmentsAncre.length > 0) { |
var ancre = fragmentsAncre[fragmentsAncre.length - 1]; |
// Si c'est un onglet correspondant à un projet, on cache la synthèse et le plugin |
// chargera son contenu dans l'espace approprié |
if (ancre != 'ui-tabs-1') { |
var panel = $(ui.panel); |
if (panel.is(":empty")) { |
panel.append("<div class='tab-chargement'>Chargement des informations...</div>") |
} |
deselectionnerOngletSynthese(); |
$('.ui-tabs-panel').show(); |
$('#zone_contenu_fiche').hide(); |
enregistrerOngletCookiePourPage(ancre); |
} else { |
if (ongletSyntheseCharge) { |
// Si c'est l'onglet fiche, on le sélectionne artificiellement |
selectionnerOngletSynthese(); |
$('.ui-tabs-panel').hide(); |
$('#zone_contenu_fiche').show(); |
enregistrerOngletCookiePourPage(ancre); |
return false; |
} else { |
window.location = url; |
} |
} |
} |
return true; |
} |
function obtenirOngletCookiePourPage() { |
var urlVars = getUrlVars(); |
var id_cookie = 'onglet_eflore'; |
if (urlVars['num_nom']) { |
id_cookie += '_'+urlVars['num_nom']; |
} |
return $.cookie(id_cookie) ? $.cookie(id_cookie) : null; |
} |
function enregistrerOngletCookiePourPage(valeur) { |
var urlVars = getUrlVars(); |
var id_cookie = 'onglet_eflore'; |
if(urlVars['num_nom'] && urlVars['num_nom'] != undefined) { |
id_cookie += '_'+urlVars['num_nom']; |
} |
$.cookie(id_cookie, valeur); |
} |
function lierModulesEtOnglets() { |
var i = 1; |
//Parcourir la totalité des modules générés et les lier grâce à la classe Module |
$(".module").each(function () { |
i++; |
identifiantOnglet = "#zone_onglets>ul>li:nth-child(" + i +")"; |
var module = new Module(i, this, $(identifiantOnglet)); |
var titre = $(this).children('h3').text(); |
module.titre = titre; |
tableauOnglets[identifiantOnglet] = module; |
}); |
$(".lien-onglet").each(function() { |
var urlOnglet = $(this).attr('href'); |
var urlVars = urlOnglet.slice(urlOnglet.indexOf('?') + 1); |
urlBase = base_url_application_onglets+"?"+urlVars; |
urlOnglet = urlBase.replace('action=fiche','action=onglet'); |
$(this).attr('href', urlOnglet); |
}); |
} |
//+----------------------------------------------------------------------------------------------------------+ |
// Wikini Flora |
var htmlWikiOriginal = ''; |
var objetContenuWiki = null; |
function getTemplateFormulaireEditionWiki(page, section, texte) { |
var urlWebServiceWiki = getUrlEditionPourPageEtSection(page, section); |
var formulaire = |
'<form method="post" id="formulaire_edition_wiki" name="formulaire_edition_wiki" action="'+urlWebServiceWiki+'">'+ |
'<div>'+ |
'<textarea id="pageContenu" name="pageContenu" class="champ_edition_wiki">'+texte+'</textarea>'+ |
'</div>'+ |
'<input type="hidden" name="pageSectionTitre" id="pageSectionTitre" value="'+section+'" />'+ |
'<input type="submit" text="sauver" />'+ |
'<input class="bouton_annuler_edition" type="button" value="annuler" />'; |
'</form>'; |
return formulaire; |
} |
function getSection() { |
return objetContenuWiki.attr("title"); |
} |
function getPageWikiTaxon() { |
return pageWikiTaxon; |
} |
function getUrlEditionPourPageEtSection(page, section) { |
return urlEditionSectionWikiTpl.replace('{pageTag}', page).replace('{sectionTitre}', section); |
} |
function getUrlTextePourPageSectionBrute(page, section) { |
return urlTexteBrutSectionWikiTpl.replace('{pageTag}', page).replace('{sectionTitre}', section); |
} |
function getUrlTextePourPageSectionFormatee(page, section) { |
return urlTexteFormateSectionWikiTpl.replace('{pageTag}', page).replace('{sectionTitre}', section); |
} |
function remplacerContenuWikiParFormulaireEdition(objet_contenu) { |
objetContenuWiki = objet_contenu; |
var adresse = getUrlEditionPourPageEtSection(getPageWikiTaxon(), getSection()); |
htmlWikiOriginal = objet_contenu.html(); |
$.getJSON(adresse, function(data) { |
$(objetContenuWiki).removeClass('editable_sur_clic').html(getTemplateFormulaireEditionWiki(getPageWikiTaxon(), getSection(), data.texte)); |
}); |
} |
function gererEvenementsWiki() { |
//TODO: ajout automatique d'un lien ouvrant une page d'aide (un popup) au formatage des pages wikini |
$('.editable_sur_clic').live('dblclick',function(event) { |
remplacerContenuWikiParFormulaireEdition($(this)); |
}); |
$('#formulaire_edition_wiki').live('submit',function(event) { |
event.preventDefault(); |
var valeurs = $(this).serialize(); |
$.post($(this).attr('action'), valeurs, function(data) { |
var adresse = getUrlTextePourPageSectionFormatee(getPageWikiTaxon(), getSection()); |
$.getJSON(adresse, function(data) { |
$(objetContenuWiki).addClass('editable_sur_clic').html(data.texte); |
}); |
}); |
}); |
$('.bouton_annuler_edition').live('click', function(event) { |
event.preventDefault(); |
$(objetContenuWiki).addClass('editable_sur_clic').html(htmlWikiOriginal); |
}); |
rendreLienAffichableDansNouvelleFenetre('.contenu_editable'); |
} |
//+----------------------------------------------------------------------------------------------------------+ |
//Affichage dans une nouvelle fenetre |
function rendreLienAffichableDansNouvelleFenetre(selecteur) { |
$(selecteur).find('a').live('click', function(event) { |
window.open($(this).attr('href')); |
event.preventDefault(); |
return false; |
}); |
} |
//+----------------------------------------------------------------------------------------------------------+ |
// Plier / déplier |
function plierTout() { |
$('.nom').children('.imagetteMoins').removeClass('imagetteMoins').addClass('imagettePlus'); |
$('.plus').css('display', 'none'); |
} |
function deplierTout() { |
$('.nom').children('.imagettePlus').removeClass('imagettePlus').addClass('imagetteMoins'); |
$('.plus').css('display', 'inline'); |
} |
function gestionBiblio(parent) { |
parent.children('.nom').each(function () { |
html = $(this).html(); |
posCrochetGauche = html.indexOf('['); |
if (posCrochetGauche > 0) { |
nom = html.substr(0, posCrochetGauche); |
biblio = html.substr(posCrochetGauche, html.length); |
$(this).html(nom); |
imagettePlus = document.createElement('div'); |
$(imagettePlus).addClass('imagettePlus'); |
$(this).prepend($(imagettePlus)); |
plus = document.createElement('span'); |
$(plus).addClass('plus'); |
$(plus).html(biblio); |
$(plus).hide(); |
$(this).click(function() { |
if (!$(this).children('.plus').is(':visible')) { |
$(this).children('.imagettePlus').removeClass('imagettePlus').addClass('imagetteMoins'); |
$(this).children('.plus').css('display', 'inline'); |
} else { |
$(this).children('.imagetteMoins').removeClass('imagetteMoins').addClass('imagettePlus'); |
$(this).children('.plus').css('display', 'none'); |
} |
}); |
$(this).append($(plus)); |
} |
}); |
} |
function gererEvenementsPliage() { |
$('.lien_tout_deplier').live('click', function() { |
deplierTout(); |
}); |
$('.lien_tout_plier').live('click', function() { |
plierTout(); |
}); |
gestionBiblio(document); |
} |
//+----------------------------------------------------------------------------------------------------------+ |
//Pop Up images |
function ouvrirPopUpImg(event) { |
event.preventDefault(); |
window.open($(this).attr('href'),"Photo_"+$(this).children("img").attr("title"), |
'"'+'height='+event.data.h+',width='+event.data.w+',top='+event.data.t+',left='+event.data.l |
+',toolbar='+event.data.toolbar+',menubar='+event.data.menubar +',location=' |
+event.data.location+',resizable='+event.data.resizable+',scrollbars='+event.data.scrollbars |
+',status='+event.data.status+'"'); |
} |
//+----------------------------------------------------------------------------------------------------------+ |
// Message de chargement pour les graphique écologie |
function gererChargementGraphiqueEcologie() { |
$('.ecologie_svg').addClass('chargement'); |
} |
function gererAffichageLegendeEcologie() { |
$('.voir').live('click', function() { |
$(this).siblings('.legende_graphique').show(); |
$(this).siblings('.cacher').show(); |
$(this).hide(); |
}); |
$('.cacher').live('click', function() { |
$(this).siblings('.legende_graphique').hide(); |
$(this).siblings('.voir').show(); |
$(this).hide(); |
}); |
} |
//+----------------------------------------------------------------------------------------------------------+ |
// Initialisation |
var fancyboxinitialise = false; |
var param_popup_Coste = {h: 650, w: 550, t: 100, l: 100, |
toolbar: 'no', menubar: 'no', location: 'no', resizable: 'yes', scrollbars: 'yes', status: 'no'}; |
var param_popup_Cel = {h: 750, w: 630, t: 100, l: 100, |
toolbar: 'no', menubar: 'no', location: 'no', resizable: 'yes', scrollbars: 'yes', status: 'no'}; |
//Initialisation |
$(document).ready(function() { |
lierModulesEtOnglets(); |
/* mouvement des blocs */ |
$(".colonne").sortable({ |
connectWith: ".colonne", |
handle: $(".module").children('h3') // mouvement seulement sur les titres |
}); |
$('#zone_onglets').tabs({ |
select: function(event, ui) { |
return surSelectionOnglet(event,ui) |
} |
}); |
// TODO : devrait être .on() à la place de live() |
$('.lien_popup').live('click',function(event) { |
event.preventDefault(); |
$.fancybox(this,{ |
autoDimensions:false, |
width:580 |
}); |
}); |
// TODO : devrait être .on() à la place de live() |
$('.lien_popup.lien_metadonnees').live('click',function(event) { |
event.preventDefault(); |
$.fancybox(this,{ |
autoDimensions:true |
}); |
}); |
$('.lien_ouverture_onglet_parent').click(function(event) { |
event.preventDefault(); |
$(this).parents(".module").find("a.titreOnglet").click(); |
}); |
$('.lien-image-cel').live('click', param_popup_Cel , ouvrirPopUpImg); |
$('.lien-image-coste').live('click', param_popup_Coste , ouvrirPopUpImg); |
afficherOngletsPourNiveau(); |
selectionnerOngletParDefautOuEnregistre(); |
$('.ui-icon-close').click(function() { |
estOngletActif = $(this).parent().hasClass('ui-state-active'); |
if (estOngletActif) { |
//L'onglet que l'on veut fermer est celui qui est ouvert, on va donc le masquer et afficher celui d'accueil |
$("#zone_onglets").tabs('select', 0); |
} |
}); |
gererEvenementsWiki(); |
gererEvenementsPliage(); |
gererClicIllustrationsFiche(); |
$('a.lien_retour_synthese').click(function(event) { |
$('#onglet_synthese a').click(); |
event.preventDefault(); |
}); |
$(window).resize(function() { |
redimensionnerOnglets(); |
}); |
redimensionnerOnglets(); |
}); |
// À la fin du chargement de l'onglet Illustrations |
$(document).on('ongletIllustrationsCharge', function() { |
if (ongletIllustrationsCharge == false) { |
ongletIllustrationsCharge = true; |
$('a.lien-images-organes.fourni').live('click', afficherOngletOrgane); |
$('a.lien-grande-image-organe').live('click', afficherGrandeImageOrgane); |
//afficherOngletOrgane(null, 'fleur'); |
} |
}); |
// Affiche les n images ayant le plus de votes, pour l'organe $tag |
function afficherOngletOrgane(e, tag) { |
var onglets = $('div.onglet-organe'), |
contenu = $('#galerie-organes-contenu'), |
organeOnglet; |
if (tag === undefined) { |
tag = $(this).data('tag') |
} |
if ($(this).parent().hasClass('active')) { // replier |
$(this).parent().removeClass('active') |
contenu.hide(); |
return false; |
} |
onglets.each(function() { |
organeOnglet = $(this).data('tag'); |
var li = $('a.lien-images-organes[data-tag="' + organeOnglet + '"]').parent(); |
if (organeOnglet == tag) { |
$(this).show(); |
li.addClass('active'); |
} else { |
$(this).hide(); |
li.removeClass('active'); |
} |
}); |
contenu.show(); |
var premierLienGrandeImage = $('div.onglet-organe:visible').find('a.lien-grande-image-organe').first(), |
grandeImage = $('#grande-image-organe').find('img'); |
premierLienGrandeImage.trigger('click'); |
grandeImage.show('fast'); |
return false; |
} |
// Affiche en grand sous les miniatures l'image d'organe sur laquelle on a cliqué |
function afficherGrandeImageOrgane() { |
var grandeImage = $('#grande-image-organe').find('img'), |
source = $(this).find('img').attr('src'); |
source = source.replace('CRX2S', 'L'); // @FIXME cracra |
// chargement image et lien popup |
grandeImage.attr('src', source); |
grandeImage.parent().attr('href','/eflore/consultation/popup.php?module=popup-illustrations&action=fiche&referentiel=bdtfx&id=' + $(this).data('id-image')); |
// métadonnées |
var metadonnees = ['id-image', 'titre', 'description', 'localisation', 'auteur'], |
clef; |
for (var i = 0; i < metadonnees.length; i++) { |
clef = metadonnees[i]; |
$('#grande-image-legende-' + clef).html($(this).data(clef)); |
} |
$('#grande-image-legende-date').html(formaterDateVersFrancais($(this).data('date'))); |
$('#grande-image-legende-id-destinataire').attr('href', 'http://localhost/eflore/applications/eflore-consultation/popup.php?module=popup-contact&action=form&referentiel=bdtfx&id_destinataire=' + |
$(this).data('id-destinataire') + '&id_img=' + $(this).data('id-image')); |
$('#grande-image-legende-auteur').attr('href', 'http://tela-botanica.org/profil:' + $(this).data('id-destinataire')); |
} |
// transforme une date du type "2012-04-06" en "06 avril 2012" |
function formaterDateVersFrancais(date) { |
var mois = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], |
amj_hms = date.split(' '), |
amj = amj_hms[0].split('-'); |
return amj[2] + ' ' + mois[parseInt(amj[1]) - 1] + ' ' + amj[0]; |
} |
function redimensionnerOnglets() { |
var largeurTotale = $('#zone_onglets').width(); |
var largeurOnglets = 0; |
var largeurDernierOnglet = 0; |
$('#onglets li').each(function() { |
largeurDernierOnglet = $(this).outerWidth(); |
largeurOnglets += $(this).outerWidth(); |
}); |
var espaceRestant = largeurTotale - largeurOnglets; |
if(espaceRestant < largeurDernierOnglet) { |
var pxALiberer = (largeurDernierOnglet - espaceRestant)/ $('#onglets li').size(); |
$('#onglets li').each(function() { |
$(this).width($(this).width() - (pxALiberer - 4)); |
$(this).css("font-size", "0.9em"); |
}); |
} else { |
$('#onglets li').each(function() { |
$(this).css("width", "auto"); |
$(this).css("font-size", "1em"); |
}); |
} |
} |
// ouvre le popup de galerie lors d'un clic sur l'illustration dans la fiche synthèse |
function gererClicIllustrationsFiche() { |
$('.illustration_cel').live('click', function() { |
var url_image = $(this).attr('src'); |
var titre = $('.nomenclature').first().text(); |
var url = urlPopup+"?module=popup-galerie&action=fiche&num_nom="+$(this).attr('data-num-nom')+"&titre="+encodeURIComponent(titre)+"&url_image="+encodeURIComponent(url_image)+"&referentiel="+REFERENTIEL; |
//var url = urlPopup+"?module=popup-galerie-organes&action=fiche&num_nom="+$(this).attr('data-num-nom')+"&titre="+encodeURIComponent(titre)+"&url_image="+encodeURIComponent(url_image)+"&referentiel="+REFERENTIEL; |
//alert(url); |
//return false; |
window.open(url, $(this).attr('data-num-nom'), 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(400)+', height='+(375)); |
}); |
$('#synthese_repartition img').click(function(event) { |
// Ouverture de l'onglet répartition |
event.preventDefault(); |
$(this).parents(".module").find("a.titreOnglet").click(); |
}); |
} |
function ouvrirFenetreIllustrationFiche(url, titre, hauteur, largeur) { |
var fenetre = window.open('_blank', '','directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(largeur+17)+', height='+(hauteur+17)); |
var tmp = fenetre.document; |
tmp.write('<html><head><title>'+titre+'</title>'); |
tmp.write('</head><body>'); |
tmp.write('<p style="height='+hauteur+'px;text-align:center;line-height='+hauteur+'px;"><img id="image_agrandie" height="'+hauteur+'" width="'+largeur+'" style="vertical-align:middle;" src="'+url+'" /></p>'); |
tmp.write('</body></html>'); |
tmp.close(); |
} |
$(document).ajaxStop(function() { |
gererChargementGraphiqueEcologie(); |
gererAffichageLegendeEcologie(); |
if (document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1') == false) { |
$('.svg').each(function() { |
alt = $(this).attr('alt'); |
img = document.createElement('img'); |
img.src = alt; |
$(this).replaceWith(img); |
}); |
} |
}); |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/scripts/recherche.js |
---|
New file |
0,0 → 1,397 |
/**-------------------------- Objets globaux -----------------------------------*/ |
/* |
* Les variables suivantes sont ajoutée automatiquement dans le squelette du moteur de |
* recherche par php, elles sont commentées ici pour qu'elles n'aient pas l'air |
* de sortir de la cuisse de Jupiter |
* |
* var AUTOCOMPLETION_ELEMENTS_NBRE : indique le nombre d'éléments à afficher dans la liste d'autocomplétion. |
* |
* var URL_SERVICE_AUTOCOMPLETION_NOM_SCI : url de base du service de complétion de noms scientifiques |
* pour le projet en cours de consultation. |
* Exemple : http://localhost/service:eflore:0.1/bdtfx/noms?recherche=etendue&retour.format=min&masque=Ace%mo |
* |
* var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA : url de base du service de complétion de noms vernaculaires |
* pour le projet en cours de consultation. |
* Exemple : http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires?recherche=etendue&retour.format=oss&masque=aca&masque.lg=fra |
* |
* var VALEUR_DEFAUT_NOM_SCI : Contient la valeur par défaut affichée dans le formulaire en mode sci |
* Exemple: Rechercher un nom scientifique |
* |
* var VALEUR_DEFAUT_NOM_VERNA : Contient la valeur par défaut affichée dans le formulaire en mode verna |
* Exemple: Recherche un nom commun |
* |
* var URL_BASE_POPUP : url de base pour les popup contenant du code un peu complexe |
*/ |
var champs_ts = ["#au","#and","#anf","#nom","#bib"]; |
var autocompletionFicheOuverte = false; |
var elementAutocompletionSelectionne = null; |
var nomRechercheEnCours = null; |
$(document).ready(function() { |
initialiserMoteur(); |
}); |
function initialiserMoteur() { |
ajouterAutocompletion(); |
gererAffichageValeursParDefaut(); |
gererAccesFicheFlecheDroite(); |
gererClicIllustrationsResultats(); |
gererAccesFicheBouton(); |
} |
/**------------------- Fonctions de gestion de l'autocompletion ---------------------------------*/ |
function ajouterAutocompletion(){ |
ajouterAutocompletionNoms(); |
$('.champ_autocomplete').each(function(index) { |
ajouterAutocompletionAvancee($(this)); |
}); |
} |
function ajouterAutocompletionAvancee(champs){ |
champs.autocomplete({ |
source: function(requete, add){ |
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté |
requete = ""; |
var id = champs.attr('id'); |
var url = encodeURI(getUrlAutocompletionAvancee(id)); |
$.getJSON(url, requete, function(data) { |
var suggestions = []; |
suggestions = traiterRetourAvance(data,champs); |
add(suggestions); |
}); |
}, |
html: true |
}); |
} |
function ajouterAutocompletionNoms() { |
$('#nom').autocomplete({ |
source: function(requete, add){ |
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté |
requete = ""; |
var url = encodeURI(getUrlAppelCompletion()); |
$.getJSON(url, requete, function(data) { |
var suggestions = []; |
if (nomVernaculaireEstDemande()) { |
suggestions = traiterRetourNomsVerna(data); |
} else if (nomSciEstDemande()) { |
suggestions = traiterRetourNomsSci(data); |
} |
add(suggestions); |
}); |
}, |
search: function(event, ui) { |
nomRechercheEnCours = 'nom_sci'; |
}, |
focus: function(event, ui) { |
elementAutocompletionSelectionne = ui.item; |
}, |
open: function(event, ui) { |
autocompletionFicheOuverte = true; |
var parent = $('.autocompletion_nom.ui-menu-item').parent(); |
parent.width(parent.width() + 10); |
}, |
close: function(event, ui) { |
autocompletionFicheFermee = false; |
nomRechercheEnCours = null; |
}, |
html: true |
}); |
$("#nom").bind("autocompleteselect", function(event, ui) { |
if (ui.item.retenu == true) { |
$("#nom").addClass('ns-retenu'); |
} else { |
$("#nom").removeClass('ns-retenu'); |
} |
}); |
} |
// gére l'acces direct à une fiche par l'appui sur droite |
// dans la liste d'autocompletion des noms scientifiques |
function gererAccesFicheFlecheDroite() { |
$(document).keypress(function(event) { |
// flèche droite |
if(event.keyCode == 39) { |
if(autocompletionFicheOuverte && elementAutocompletionSelectionne != null && nomSciEstDemande()) { |
$('#nom').val(elementAutocompletionSelectionne.value); |
if(elementAutocompletionSelectionne.nn != undefined && elementAutocompletionSelectionne.nn != null) { |
var url_fiche_taxon = URL_BASE_FICHE_TAXON.replace('{num_taxon}',elementAutocompletionSelectionne.nn); |
window.location.href = url_fiche_taxon; |
} |
$('#nom').autocomplete( "disable" ); |
//TODO : ajout d'un message de chargement ? |
} |
} |
if(event.keyCode == 13) { |
if(autocompletionFicheOuverte && elementAutocompletionSelectionne == null && $('#nom').is(":focus")) { |
$('#eflore_nomenclature_submit').click(); |
} |
} |
}); |
} |
function gererAccesFicheBouton() { |
$('#eflore_nomenclature_fiche').click(function(event) { |
if(elementAutocompletionSelectionne != null && nomSciEstDemande()) { |
$('#nom').val(elementAutocompletionSelectionne.value); |
if(elementAutocompletionSelectionne.nn != undefined && elementAutocompletionSelectionne.nn != null) { |
var url_fiche_taxon = URL_BASE_FICHE_TAXON.replace('{num_taxon}',elementAutocompletionSelectionne.nn); |
window.location.href = url_fiche_taxon; |
} |
event.preventDefault(); |
} |
}); |
} |
function traiterRetourNomsSci(data) { |
var suggestions = []; |
if (data.resultat != undefined) { |
$.each(data.resultat, function(i, val) { |
val.nn = i; |
var nom = {label : '', value : '', retenu : false}; |
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) { |
nom.label = "..."; |
nom.value = $('#nom').val(); |
suggestions.push(nom); |
return false; |
} else { |
nom.label = val.nom_sci_complet; |
nom.value = val.nom_sci; |
nom.nn = val.nn; |
if(val.retenu != "absent") { |
nom.retenu = (val.retenu == 'true') ? true : false; |
suggestions.push(nom); |
} |
} |
}); |
} |
return suggestions; |
} |
function traiterRetourAvance(data, champs) { |
var suggestions = []; |
if (jQuery.type(data) == "array") { |
$.each(data[1], function(i, val) { |
var ch = {label : '', value : ''}; |
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) { |
ch.label = "..."; |
ch.value = champs.val(); |
suggestions.push(ch); |
return false; |
} else { |
ch.label = val; |
ch.value = val; |
suggestions.push(ch); |
} |
}); |
} |
return suggestions; |
} |
function traiterRetourNomsVerna(data) { |
var suggestions = []; |
if (jQuery.type(data) == "array") { |
$.each(data[1], function(i, val){ |
var nom = {label : '', value : ''}; |
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) { |
nom.label = "..."; |
nom.value = $('#nom').val(); |
suggestions.push(nom); |
return false; |
} else { |
nom.label = val; |
nom.value = val; |
suggestions.push(val); |
} |
}); |
} |
return suggestions; |
} |
/**------------ Fonctions de gestion des urls d'autocompletion et des fiches ------------------*/ |
function getUrlAutocompletionAvancee(parametre) { |
var valeur = getValeurMasque(parametre); |
var ns_str = getValeurNsStructure(parametre); |
var url = URL_SERVICE_AUTOCOMPLETION_NOM_SCI+"?recherche=etendue&"+ |
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE +'&masque.'+parametre+'='+valeur+ |
'&retour.format=oss&distinct=1&ns.structure='+ns_str; |
return url; |
} |
function getValeurMasque(parametre) { |
var valeur = $('#'+parametre).val(); |
if (parametre == 'au' ){ |
valeur = valeur +',(' + valeur + ')'; |
} else if (parametre == 'bib' ){ |
valeur = valeur +', %; ' + valeur ; |
} |
return valeur; |
} |
function getValeurNsStructure(parametre) { |
var ns = ''; |
if (parametre == 'au' || parametre == 'bib'){ |
ns = parametre +'_ss'; |
} else { |
ns = parametre; |
} |
return ns; |
} |
function getUrlAppelCompletion() { |
var url = ''; |
var mots = $('#nom').val(); |
if (nomSciEstDemande()) { |
url = getUrlAutocompletionNomsSci(mots); |
} else if (nomVernaculaireEstDemande()) { |
mots = mots.replace(' ',' '); |
mots = mots.replace(' ','_'); |
url = getUrlAutocompletionNomsVerna(mots); |
} |
return url; |
} |
function getUrlAutocompletionNomsSci(requete) { |
var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_SCI, requete, 'min')+ |
"&ns.structure=au,an"+ |
"&retour.tri=retenu"; |
return url; |
} |
function getUrlAutocompletionNomsVerna(requete) { |
var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_VERNA, requete, 'oss')+ |
"&masque.lg=fra"; |
return url; |
} |
function getUrlAutocompletion(baseUrl, requete, format) { |
var url = baseUrl+"?"+ |
"masque="+requete+"&"+ |
"recherche=etendue&"+ |
"retour.format="+format+"&"+ |
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE; |
return url; |
} |
/**------------ Fonctions de détection de l'état du formulaire ------------------*/ |
function nomSciEstDemande() { |
var boutonRadioNomSci = $('#type_nom_scientifique'); |
return (($('#type_nom_vernaculaire').length <= 0) || (boutonRadioNomSci != null && boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked")); |
} |
function nomVernaculaireEstDemande() { |
var boutonRadioNomSci = $('#type_nom_vernaculaire'); |
return (boutonRadioNomSci.length > 0 && boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked"); |
} |
/**------------ Fonctions de gestion de l'affichage des valeurs par defaut ----------------------*/ |
function gererAffichageValeursParDefaut() { |
$('input[name="type_nom"]').click(function() { |
changerPlaceHolderNom(); |
}); |
changerPlaceHolderNom(); |
$('input').click(function() { |
$(this).attr('placeholder', ''); |
}); |
} |
function changerPlaceHolderNom() { |
if(nomSciEstDemande()) { |
$('#nom').attr('placeholder',VALEUR_DEFAUT_NOM_SCI); |
} else { |
$('#nom').attr('placeholder',VALEUR_DEFAUT_NOM_VERNA); |
} |
} |
/**------------ Fonctions de gestion du zoom sur les images affichées dans les résultats de recherche ----------------------*/ |
function gererClicIllustrationsResultats() { |
$('.illustration_resultat_cel').click(function() { |
var url = $(this).attr('src'); |
var titre = trouverNomTaxon($(this)); |
var url = URL_BASE_POPUP+"?module=popup-galerie&action=fiche&num_nom="+$(this).attr('data-num-nom')+"&titre="+titre+"&referentiel="+REFERENTIEL; |
window.open(url, '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(700)+', height='+(650)); |
}); |
$('.illustration_resultat_choro').click(function() { |
var url = $(this).attr('src').replace('108x101','432x404'); |
var titre = 'Chorologie du taxon '+trouverNomTaxon($(this)); |
ouvrirFenetreIllustrationResultat(url, titre, 432, 404); |
}); |
$('.illustration_resultat_coste').click(function() { |
var url = $(this).attr('src'); |
var titre = 'Illustration de Coste du taxon '+trouverNomTaxon($(this)); |
ouvrirFenetreIllustrationResultat(url, titre, 400, 400); |
}); |
} |
function trouverNomTaxon(objet) { |
nom = ""; |
if(nomVernaculaireEstDemande()) { |
nom = objet.parent().parent().find('a.lien_fiche_eflore').text(); |
} else { |
nom = objet.parent().find('.nom-sci a.lien_fiche_eflore').text(); |
} |
return nom; |
} |
function ouvrirFenetreIllustrationResultat(url, titre, hauteur, largeur) { |
var fenetre = window.open('_blank', '','directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(largeur+17)+', height='+(hauteur+17)); |
var tmp = fenetre.document; |
tmp.write('<html><head><title>'+titre+'</title>'); |
tmp.write('</head><body>'); |
tmp.write('<p style="height='+hauteur+'px;text-align:center;line-height='+hauteur+'px;"><img id="image_agrandie" height="'+hauteur+'" width="'+largeur+'" style="vertical-align:middle;" src="'+url+'" /></p>'); |
tmp.write('</body></html>'); |
tmp.close(); |
} |
/* |
* jQuery UI Autocomplete HTML Extension |
* |
* Copyright 2010, Scott González (http://scottgonzalez.com) |
* Dual licensed under the MIT or GPL Version 2 licenses. |
* |
* http://github.com/scottgonzalez/jquery-ui-extensions |
* |
* Adaptation par Aurélien Peronnet pour la mise en gras des noms de taxons valides |
*/ |
(function( $ ) { |
var proto = $.ui.autocomplete.prototype, |
initSource = proto._initSource; |
function filter( array, term ) { |
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); |
return $.grep( array, function(value) { |
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() ); |
}); |
} |
$.extend( proto, { |
_initSource: function() { |
if (this.options.html && $.isArray(this.options.source) ) { |
this.source = function( request, response ) { |
response( filter( this.options.source, request.term ) ); |
}; |
} else { |
initSource.call( this ); |
} |
}, |
_renderItem: function( ul, item) { |
if (item.retenu == true) { |
item.label = "<strong>"+item.label+"</strong>"; |
} |
var classe = (nomRechercheEnCours == 'nom_sci' && nomSciEstDemande()) ? 'class="autocompletion_nom"' : ''; |
return $("<li "+classe+"></li>") |
.data("item.autocomplete", item) |
.append( $("<a></a>")[ this.options.html ? "html" : "text" ](item.label)) |
.appendTo(ul); |
} |
}); |
})( jQuery ); |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/tags/v5.2-20131127/presentations/scripts/eflore.js |
---|
New file |
0,0 → 1,20 |
/** |
* Contient les fonction JS communes à l'ensemble des parties d'eflore (popup.php, index.php). |
* |
*/ |
$(document).ready(function() { |
$('body').on('click', 'a.lien-externe, a.lien_externe', ouvrirFenetreExterne); |
$('body').on('click', 'a.mailto', ouvrirPopUpContact); |
}); |
function ouvrirFenetreExterne(event) { |
event.preventDefault(); |
top.open($(this).attr('href')); |
} |
function ouvrirPopUpContact(event) { |
event.preventDefault(); |
window.open($(this).attr('href'), "Contact", |
'height=500, width=500, top=100, left=100, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=yes, status=no'); |
} |
/tags/v5.2-20131127/tests/modules/NiveauTest.php |
---|
New file |
0,0 → 1,33 |
<?php |
require_once dirname(__FILE__).'/../ConsultationEflorePhpUnit.php'; |
class NiveauTest extends ConsultationEflorePhpUnit { |
public function testAfficherNiveau() { |
$_GET['referentiel'] = 'bdtfx'; |
$_GET['module'] = 'recherche'; |
$_GET['action'] = 'rechercheSimple'; |
$_GET['type_nom'] = 'nom_scientifique'; |
$_GET['nom'] = 'acer+mons'; |
Registre::set('parametres.niveau', '2'); |
$niveau = new Niveau($this->getAppUrls()); |
$sortie = $niveau->afficherNiveau(); |
$this->assertNotEmpty($sortie, $sortie); |
$this->assertNotContains(' <input id="niveau_2" name="niveau" value="2" type="radio" checked="checked" />', $sortie); |
$this->assertContains('<input id="eflore_niveau_type_nom" name="type_nom" type="hidden" value="nom_scientifique" />', $sortie, print_r($sortie,true)); |
$this->assertContains('<input id="eflore_niveau_referentiel" name="referentiel" type="hidden" value="bdtfx" />', $sortie); |
$this->assertContains('<input id="eflore_niveau_action" name="action" type="hidden" value="rechercheSimple" />', $sortie); |
$this->assertContains('<input id="eflore_niveau_nom" name="nom" type="hidden" value="acer+mons" />', $sortie); |
} |
protected function getAppUrls() { |
$AppUrls = $this->getMock('AppUrls', array('obtenirUrlBase'), array(), '', false); |
$AppUrls->expects($this->any()) |
->method('obtenirUrlBase') |
->will($this->returnValue(ConsultationEflorePhpUnit::TPL_URL_BASE)); |
return $AppUrls; |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/RechercheTest.php |
---|
New file |
0,0 → 1,118 |
<?php |
require_once __DIR__ . '/../ConsultationEflorePhpUnit.php'; |
class RechercheTest extends ConsultationEflorePhpUnit { |
/** |
* @backupGlobals # avoid $_REQUEST leaks |
*/ |
public function testExecuterRechercheSimple() { |
$_REQUEST['type_nom'] = 'nom_scientifique'; |
$_REQUEST['nom'] = 'acer mons'; |
Registre::set('parametres.niveau', '1'); |
$cheminRacine = realpath(__DIR__ . '/../../configurations/').'/'; |
Config::charger($cheminRacine.'bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
$recherche = new Recherche(); |
$recherche->initialiser(); |
$recherche->executerRechercheSimple(); |
$resultat = Registre::get('resultats'); |
$sortie = implode('', $recherche->getSortie()); |
$this->assertNotEmpty($resultat); |
$this->assertEquals('6', $resultat['entete']['total']); |
$this->assertEquals('6', count($resultat['resultat'])); |
$this->assertArrayNotHasKey('auteur', $resultat['resultat']['182'], print_r($resultat, true)); |
$this->assertNotEmpty($sortie); |
$this->assertContains('<input id="nom" name="nom" class="champ" size="30" maxlength="255" type="text" value="acer mons" />', $sortie); |
$this->assertContains('<strong class="nom-sci-retenu"><span class="surlignage">Acer</span> <span class="surlignage">mons</span>pessulanum</strong>', $sortie); |
} |
/** |
* @backupGlobals # avoid $_REQUEST leaks |
*/ |
public function testExecuterRechercheSimpleAlphab() { |
$_REQUEST['type_nom'] = 'nom_scientifique'; |
$_REQUEST['nom'] = 'acer mons'; |
$_REQUEST['resultat'] = 'alphab'; |
$cheminRacine = realpath(__DIR__ . '/../../configurations/') . '/'; |
Config::charger($cheminRacine.'bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
// initialise les valeurs par défaut (notamment de "niveau") |
AppControleur::verifierCreationInstance(); |
// initialise le registre à partir des valeurs par défaut |
AppControleur::initialiserRegistre(); |
// à partir de là, par exemple Registre::get('parametres.niveau') doit retourner un entier |
// (alternative à Registre::set('niveau', 'X')) |
// et la recherche ne risque plus de manquer des paramètres nécessaires |
$recherche = new Recherche(); |
$recherche->initialiser(); |
$recherche->executerRechercheSimple(); |
$resultat = Registre::get('resultats'); |
$sortie = implode('', $recherche->getSortie()); |
$this->assertNotEmpty($resultat, $resultat); |
$this->assertEquals('6', $resultat['entete']['total']); |
$this->assertEquals('6', count($resultat['resultat'])); |
} |
/** |
* @backupGlobals # avoid $_REQUEST leaks |
*/ |
public function testExecuterRechercheSimpleRetenu() { |
$_REQUEST['type_nom'] = 'nom_scientifique'; |
$_REQUEST['nom'] = 'acer mons'; |
$_REQUEST['resultat'] = 'retenu'; |
$_REQUEST['niveau'] = 2; |
Registre::set('parametres.niveau', '2'); |
$cheminRacine = realpath(__DIR__ . '/../../configurations/').'/'; |
Config::charger($cheminRacine.'bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
$recherche = new Recherche(); |
$recherche->initialiser(); |
$recherche->executerRechercheSimple(); |
$resultat = Registre::get('resultats'); |
$sortie = implode('', $recherche->getSortie()); |
$this->assertNotEmpty($resultat); |
$this->assertEquals('6', $resultat['entete']['total']); |
$this->assertEquals('6', count($resultat['resultat'])); |
} |
/** |
* @backupGlobals # avoid $_REQUEST leaks |
*/ |
public function testExecuterRechercheSimpleSynonyme() { |
$_REQUEST['type_nom'] = 'nom_scientifique'; |
$_REQUEST['nom'] = 'acer mons'; |
$_REQUEST['resultat'] = 'retenu'; |
Registre::set('parametres.niveau', '2'); |
$cheminRacine = realpath(__DIR__ . '/../../configurations/').'/'; |
Config::charger($cheminRacine.'bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
$recherche = new Recherche(); |
$recherche->initialiser(); |
$recherche->executerRechercheSimple(); |
$resultat = Registre::get('resultats'); |
$sortie = implode('', $recherche->getSortie()); |
$this->assertNotEmpty($resultat); |
$this->assertEquals('6', $resultat['entete']['total']); |
$this->assertEquals('6', count($resultat['resultat'])); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/fiche/FicheTest.php |
---|
New file |
0,0 → 1,33 |
<?php |
require_once dirname(__FILE__).'/../../ConsultationEflorePhpUnit.php'; |
class FicheTest extends ConsultationEflorePhpUnit { |
/** |
* @outputBuffering enabled # not working ? |
* (AppControleur::initialiser, prérequis de new Fiche()) |
*/ |
public function testExecuterFichee() { |
$_GET['type_nom'] = 'nom_scientifique'; |
$_GET['nom'] = 'acer mons'; |
$_GET['referentiel'] = 'bdtfx'; |
$_GET['num_nom'] = '182'; |
$_GET['niveau'] = '1'; |
// Registre::set('parametres.niveau', '1'); |
Config::charger(CONFIG_DIR . '/bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
// @AppControleur::initialiser(); ... |
$fiche = new Fiche(); |
$fiche->initialiser(); |
$fiche->executerFiche(); |
$sortie = $fiche->getSortie(); |
$this->assertNotEmpty($sortie, print_r($sortie['corps'], true)); |
$this->assertContains('<input id="eflore_niveau_nom" name="nom" type="hidden" value="acer mons" />', $sortie['corps']); |
$this->assertContains('<div id="zone_onglets" ', $sortie['corps']); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/fiche_metadonnees/FicheMetadonneesTest.php |
---|
New file |
0,0 → 1,21 |
<?php |
require_once dirname(__FILE__).'/../../ConsultationEflorePhpUnit.php'; |
class FicheMetadonneesTest extends ConsultationEflorePhpUnit { |
public function testAffichageFicheMetadonnees() { |
$_GET['module'] = 'fiche-metadonnees'; |
$_GET['action'] = 'affichagemetadonnees'; |
$_GET['projet'] = 'chorodep'; |
Registre::set('niveau', '1'); |
$cheminRacine = realpath(dirname(__FILE__).'/../configurations/').'/'; |
$fiche = new FicheMetadonnees(); |
$sortie = $fiche->chargerMetadonneesHtml(); |
$this->assertNotEmpty($sortie, print_r($sortie)); |
$this->assertContains('<div id="metadonnees">', $sortie); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/resultat/formateurs/DeterminationFormateurTest.php |
---|
New file |
0,0 → 1,107 |
<?php |
include_once dirname(__FILE__).'/../ResultatFormateurInitialisation.php'; |
class DeterminationFormateurTest extends ResultatFormateurInitialisation { |
public function testerFormater() { |
$Formateur = $this->initialiserDeterminationFormateur(); |
$Formateur->formater(); |
$infos = $Formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertTrue(is_int($id), "L'id '$id' doit être un nombre entier."); |
$this->assertCount(2, $nom, "Le nom doit avoir 2 paramètres : nomSciRetenu et UrlFiche"); |
$this->assertArrayHasKey('nomSciRetenu', $infos['noms'][$id], print_r($infos, true)); |
$this->assertArrayHasKey('urlFiche', $infos['noms'][$id], print_r($infos, true)); |
$urlFicheAttendue = sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $id); |
$this->assertEquals($urlFicheAttendue, $infos['noms'][$id]['urlFiche'], print_r($infos, true)); |
} |
$this->assertArrayHasKey('synonymes', $infos, print_r($infos, true)); |
foreach ($infos['synonymes'] as $idNomRetenu => $synonymes) { |
foreach ($synonymes as $idSynonyme => $synonyme) { |
$this->assertCount(3, $synonyme, print_r($infos, true)); |
$this->assertArrayHasKey('nn', $synonyme, print_r($infos, true)); |
$this->assertTrue(is_int($synonyme['nn']), "La valeur nn (num_nom) '{$synonyme['nn']}' doit être un nombre entier."); |
$this->assertArrayHasKey('nomSci', $synonyme, print_r($infos, true)); |
$this->assertArrayHasKey('urlFiche', $synonyme, print_r($infos, true)); |
$urlSynoAttendue = sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $synonyme['nn']); |
$this->assertEquals($urlSynoAttendue, $synonyme['urlFiche'], print_r($infos, true)); |
} |
} |
$this->assertArrayHasKey('nomsSansCorrespondance', $infos, print_r($infos, true)); |
$this->assertEmpty($infos['nomsSansCorrespondance']); |
$this->assertArrayHasKey('imagesUrls', $infos, print_r($infos, true)); |
$this->assertTrue(is_array($infos['imagesUrls']), "'imagesUrls' doit être un tableau"); |
$this->assertArrayHasKey('72117', $infos['imagesUrls'], print_r($infos, true)); |
$this->assertArrayHasKey('72288', $infos['imagesUrls'], print_r($infos, true)); |
foreach ($infos['imagesUrls'] as $imgUrl) { |
$this->assertTrue(is_array($imgUrl), "Chaque taxon doit avoir un tableau d'url d'images"); |
foreach ($imgUrl as $url) { |
$this->assertRegExp('/^http:\/\/www\.tela-botanica\.org\/appli:cel-img:[0-9]{9}CS\.jpg$/', $url); |
} |
} |
} |
public function testerTrier() { |
$Formateur = $this->initialiserDeterminationFormateur(); |
$Formateur->formater(); |
$Formateur->trier(); |
$infos = $Formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
$ordreClesAttendu = array(72288, 72201, 72117); |
$ordreClesTriees = array_keys($infos['noms']); |
$this->assertEquals($ordreClesAttendu, $ordreClesTriees, print_r($ordreClesTriees, true)); |
} |
public function testerSurligner() { |
$Formateur = $this->initialiserDeterminationFormateur(); |
$Formateur->formater(); |
$Formateur->surligner(); |
$infos = $Formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertArrayHasKey($id, $infos['noms'], print_r($infos, true)); |
$this->assertArrayHasKey('nomSciRetenu', $infos['noms'][$id], print_r($infos, true)); |
$this->assertContains('<span class="surlignage">Viola</span>', $infos['noms'][$id]['nomSciRetenu'], print_r($infos, true)); |
} |
} |
private function initialiserDeterminationFormateur($masque = 'viola his') { |
$parametres = $this->getParametres('determination', $masque); |
$resultats = $this->getResultatsPourMasque($masque); |
$surligneur = $this->getSurligneur(); |
$trieur = $this->getTrieur(); |
$appsUrls = $this->getAppUrls(); |
$images = $this->getImagesService(); |
return new DeterminationFormateur($parametres, $resultats, $surligneur, $trieur, $appsUrls, null, $images); |
} |
private function getImagesService() { |
$retour = array( |
'bdtfx.72117' => array( |
'http://www.tela-botanica.org/appli:cel-img:000025491CS.jpg', |
'http://www.tela-botanica.org/appli:cel-img:000025514CS.jpg', |
'http://www.tela-botanica.org/appli:cel-img:000025520CS.jpg'), |
'bdtfx.72288' => array( |
'http://www.tela-botanica.org/appli:cel-img:000032710CS.jpg', |
'http://www.tela-botanica.org/appli:cel-img:000032711CS.jpg', |
'http://www.tela-botanica.org/appli:cel-img:000032712CS.jpg')); |
$Images = $this->getMock('Images', array('getUrlsImagesParIdsNoms'), array(), '', false); |
$Images->expects($this->any()) |
->method('getUrlsImagesParIdsNoms') |
->will($this->returnValue($retour)); |
return $Images; |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/resultat/formateurs/RetenuFormateurTest.php |
---|
New file |
0,0 → 1,63 |
<?php |
include_once dirname(__FILE__).'/../ResultatFormateurInitialisation.php'; |
class RetenuFormateurTest extends ResultatFormateurInitialisation { |
public function testerFormater() { |
$RetenuFormateur = $this->initialiserRetenuFormateur(); |
$RetenuFormateur->formater(); |
$infos = $RetenuFormateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, $infos); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertTrue(is_int($id), "L'id '$id' doit être un nombre entier."); |
$this->assertCount(3, $nom); |
$this->assertArrayHasKey('nomSci', $infos['noms'][$id], $infos); |
$this->assertArrayHasKey('retenu', $infos['noms'][$id], $infos); |
$this->assertArrayHasKey('urlFiche', $infos['noms'][$id], $infos); |
$this->assertEquals( sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $id), $infos['noms'][$id]['urlFiche'], $infos ); |
} |
} |
public function testerTrier() { |
$RetenuFormateur = $this->initialiserRetenuFormateur(); |
$RetenuFormateur->formater(); |
$RetenuFormateur->trier(); |
$infos = $RetenuFormateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, $infos); |
$ordreClesAttendu = array(72288, 72291, 72289, 72290, 72341); |
$ordreClesTriees = array_keys($infos['noms']); |
$this->assertEquals($ordreClesAttendu, $ordreClesTriees, $infos); |
} |
public function testerSurligner() { |
$RetenuFormateur = $this->initialiserRetenuFormateur(); |
$RetenuFormateur->formater(); |
$RetenuFormateur->surligner(); |
$infos = $RetenuFormateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, $infos); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertArrayHasKey($id, $infos['noms'], $infos); |
$this->assertArrayHasKey('nomSci', $infos['noms'][$id], $infos); |
// fails because: |
// svndiff -c 872 modules/resultat/formateurs/nom_scientifique/RetenuFormateur.php |
// 'nom_sci' => 'nom_sci_complet' |
// c'est à dire que les résultats passés au new RetenuFormateur() ci-dessous [= le fichier json], |
// doivent disposer du nom_sci_complet afin d'être formattés |
$this->assertContains('<span class="surlignage">Viola</span>', $infos['noms'][$id]['nomSci'], $infos); |
$this->assertContains('<span class="surlignage">his</span>', $infos['noms'][$id]['nomSci'], $infos); |
} |
} |
private function initialiserRetenuFormateur($masque = 'viola his') { |
$parametres = $this->getParametres('retenu', $masque); |
$resultats = $this->getResultatsPourMasque($masque); |
$surligneur = $this->getSurligneur(); |
$trieur = $this->getTrieur(); |
$appsUrls = $this->getAppUrls(); |
return new RetenuFormateur($parametres, $resultats, $surligneur, $trieur, $appsUrls); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/resultat/formateurs/DecompoFormateurTest.php |
---|
New file |
0,0 → 1,68 |
<?php |
include_once dirname(__FILE__).'/../ResultatFormateurInitialisation.php'; |
class DecompoFormateurTest extends ResultatFormateurInitialisation { |
public function testerFormater() { |
$formateur = $this->initialiserDecompoFormateur(); |
$formateur->formater(); |
$infos = $formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertTrue(is_int($id), "L'id '$id' doit être un nombre entier."); |
$this->assertCount(8, $nom); |
$this->assertArrayHasKey('nomSci', $nom, print_r($infos, true)); |
$this->assertFalse(empty($nom['nomSci']), print_r($infos, true)); |
$this->assertArrayHasKey('retenu', $nom, print_r($infos, true)); |
$this->assertArrayHasKey('auteur', $nom, print_r($infos, true)); |
$this->assertArrayHasKey('annee', $nom, print_r($infos, true)); |
$this->assertArrayHasKey('biblio', $nom, print_r($infos, true)); |
$this->assertArrayHasKey('addendum', $nom, print_r($infos, true)); |
$this->assertArrayHasKey('nn', $nom, print_r($infos, true)); |
$this->assertTrue(is_int($nom['nn']), "nn '{$nom['nn']}' doit être un nombre entier."); |
$this->assertArrayHasKey('urlFiche', $nom, print_r($infos, true)); |
$urlFicheAttendue = sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $id); |
$this->assertEquals($urlFicheAttendue, $nom['urlFiche'], print_r($infos, true)); |
} |
} |
public function testerTrier() { |
$formateur = $this->initialiserDecompoFormateur(); |
$formateur->formater(); |
$formateur->trier(); |
$infos = $formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
$ordreClesAttendu = array(86402, 25024, 25025, 75113, 103076, 25026, 25027, 25028); |
$ordreClesTriees = array_keys($infos['noms']); |
$this->assertEquals($ordreClesAttendu, $ordreClesTriees, print_r($ordreClesTriees, true)); |
} |
public function testerSurligner() { |
$formateur = $this->initialiserDecompoFormateur(); |
$formateur->formater(); |
$formateur->surligner(); |
$infos = $formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertArrayHasKey($id, $infos['noms'], print_r($infos, true)); |
$this->assertArrayHasKey('nomSci', $infos['noms'][$id], print_r($infos, true)); |
$this->assertContains('<span class="surlignage">Eritrichium</span>', $infos['noms'][$id]['nomSci'], print_r($infos, true)); |
} |
} |
private function initialiserDecompoFormateur($masque = 'eritrichium') { |
$parametres = $this->getParametres('decompo', $masque); |
$resultats = $this->getResultatsPourMasque($masque); |
$surligneur = $this->getSurligneur(); |
$trieur = $this->getTrieur(); |
$appsUrls = $this->getAppUrls(); |
return new DecompoFormateur($parametres, $resultats, $surligneur, $trieur, $appsUrls); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/resultat/formateurs/AlphabFormateurTest.php |
---|
New file |
0,0 → 1,62 |
<?php |
include_once dirname(__FILE__).'/../ResultatFormateurInitialisation.php'; |
class AlphabFormateurTest extends ResultatFormateurInitialisation { |
public function testerFormater() { |
$AlphabFormateur = $this->initialiserAlphabFormateur(); |
$AlphabFormateur->formater(); |
$infos = $AlphabFormateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertTrue(is_int($id), "L'id '$id' doit être un nombre entier."); |
$this->assertCount(3, $nom); |
$this->assertArrayHasKey('nomSci', $infos['noms'][$id], print_r($infos, true)); |
$this->assertArrayHasKey('retenu', $infos['noms'][$id], print_r($infos, true)); |
$this->assertArrayHasKey('urlFiche', $infos['noms'][$id], print_r($infos, true)); |
$urlFicheAttendue = sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $id); |
$this->assertEquals($urlFicheAttendue, $infos['noms'][$id]['urlFiche'], print_r($infos, true)); |
} |
} |
public function testerTrier() { |
$AlphabFormateur = $this->initialiserAlphabFormateur(); |
$AlphabFormateur->formater(); |
$AlphabFormateur->trier(); |
$infos = $AlphabFormateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
$ordreClesAttendu = array(72288, 72291, 72289, 72290, 72341); |
$ordreClesTriees = array_keys($infos['noms']); |
$this->assertEquals($ordreClesAttendu, $ordreClesTriees, print_r($ordreClesTriees, true)); |
} |
public function testerSurligner() { |
$AlphabFormateur = $this->initialiserAlphabFormateur(); |
$AlphabFormateur->formater(); |
$AlphabFormateur->surligner(); |
$infos = $AlphabFormateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertArrayHasKey($id, $infos['noms'], print_r($infos, true)); |
$this->assertArrayHasKey('nomSci', $infos['noms'][$id], print_r($infos, true)); |
$this->assertContains('<span class="surlignage">Viola</span>', $infos['noms'][$id]['nomSci'], print_r($infos, true)); |
$this->assertContains('<span class="surlignage">his</span>', $infos['noms'][$id]['nomSci'], print_r($infos, true)); |
} |
} |
private function initialiserAlphabFormateur($masque = 'viola his') { |
$parametres = $this->getParametres('alphab', $masque); |
$resultats = $this->getResultatsPourMasque($masque); |
$surligneur = $this->getSurligneur(); |
$trieur = $this->getTrieur(); |
$appsUrls = $this->getAppUrls(); |
return new AlphabFormateur($parametres, $resultats, $surligneur, $trieur, $appsUrls); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/resultat/formateurs/DeterminationVernaFormateurTest.php |
---|
New file |
0,0 → 1,132 |
<?php |
include_once dirname(__FILE__).'/../ResultatFormateurInitialisation.php'; |
class DeterminationVernaFormateurTest extends ResultatFormateurInitialisation { |
public function testerFormater() { |
$Formateur = $this->initialiserDeterminationVernaFormateur(); |
$Formateur->formater(); |
$infos = $Formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $id => $nom) { |
$this->assertTrue(is_int($id), "L'id '$id' doit être un nombre entier."); |
$this->assertCount(3, $nom); |
$this->assertArrayHasKey('nomSci', $infos['noms'][$id], print_r($infos, true)); |
$this->assertArrayHasKey('urlFiche', $infos['noms'][$id], print_r($infos, true)); |
$urlFicheAttendue = sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $id); |
$this->assertEquals($urlFicheAttendue, $infos['noms'][$id]['urlFiche'], print_r($infos, true)); |
if (array_key_exists('nomVerna', $infos['noms'][$id])) { |
$nomsVernas = $infos['noms'][$id]['nomVerna']; |
$this->assertTrue(is_array($nomsVernas)); |
foreach ($nomsVernas as $nomVerna) { |
$this->assertCount(2, $nomVerna, print_r($nomVerna, true)); |
$this->assertArrayHasKey('nn', $nomVerna, print_r($nomVerna, true)); |
$this->assertTrue(is_int($nomVerna['nn']), "La valeur nn (num_nom) '{$nomVerna['nn']}' doit être un nombre entier."); |
$this->assertArrayHasKey('nom_vernaculaire', $nomVerna, print_r($nomVerna, true)); |
} |
} |
} |
$this->assertArrayHasKey('imagesUrls', $infos, print_r($infos, true)); |
$this->assertTrue(is_array($infos['imagesUrls']), "'imagesUrls' doit être un tableau"); |
$this->assertArrayHasKey('51299', $infos['imagesUrls'], print_r($infos['imagesUrls'], true)); |
$this->assertArrayHasKey('18669', $infos['imagesUrls'], print_r($infos['imagesUrls'], true)); |
foreach ($infos['imagesUrls'] as $imgUrl) { |
$this->assertTrue(is_array($imgUrl), "Chaque taxon doit avoir un tableau d'url d'images"); |
foreach ($imgUrl as $url) { |
$this->assertRegExp('/^http:\/\/www\.tela-botanica\.org\/appli:cel-img:[0-9]{9}CS\.jpg$/', $url); |
} |
} |
} |
public function testerSurligner() { |
$Formateur = $this->initialiserDeterminationVernaFormateur(); |
$Formateur->formater(); |
$Formateur->surligner(); |
$infos = $Formateur->getTplInfos(); |
$this->assertArrayHasKey('noms', $infos, print_r($infos, true)); |
foreach ($infos['noms'] as $nom) { |
foreach ($nom['nomVerna'] as $id => $nomVerna) { |
$this->assertArrayHasKey('nom_vernaculaire', $nomVerna, print_r($nomVerna, true)); |
$this->assertContains('<span class="surlignage">Muguet</span>', $nomVerna['nom_vernaculaire'], print_r($infos, true)); |
} |
} |
} |
private function initialiserDeterminationVernaFormateur($masque = 'Muguet') { |
$parametres = $this->getParametres('determination', $masque); |
$resultats = $this->getResultatsPourMasque($masque); |
$surligneur = $this->getSurligneur(); |
$trieur = $this->getTrieur(); |
$appsUrls = $this->getAppUrls(); |
$images = $this->getImagesService(); |
return new DeterminationVernaFormateur($parametres, $resultats, $surligneur, $trieur, $appsUrls, null, $images); |
} |
protected function getResultatsPourMasque($masque) { |
$resultatsJson = file_get_contents(dirname(__FILE__).'/../resultats_verna.json'); |
$resultats = json_decode($resultatsJson, true); |
return $resultats[$masque]; |
} |
private function getImagesService() { |
$retour = Array ( |
'bdtfx.51299' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000007275CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000007276CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000007277CS.jpg', |
'3' => 'http://www.tela-botanica.org/appli:cel-img:000007278CS.jpg', |
'4' => 'http://www.tela-botanica.org/appli:cel-img:000007279CS.jpg', |
'5' => 'http://www.tela-botanica.org/appli:cel-img:000021076CS.jpg' ), |
'bdtfx.18669' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000009085CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000009086CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000018652CS.jpg', |
'3' => 'http://www.tela-botanica.org/appli:cel-img:000018757CS.jpg', |
'4' => 'http://www.tela-botanica.org/appli:cel-img:000018862CS.jpg', |
'5' => 'http://www.tela-botanica.org/appli:cel-img:000018865CS.jpg', |
'6' => 'http://www.tela-botanica.org/appli:cel-img:000032690CS.jpg' ), |
'bdtfx.29125' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000010721CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000010722CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000013077CS.jpg', |
'3' => 'http://www.tela-botanica.org/appli:cel-img:000024697CS.jpg', |
'4' => 'http://www.tela-botanica.org/appli:cel-img:000024719CS.jpg', |
'5' => 'http://www.tela-botanica.org/appli:cel-img:000024729CS.jpg' ), |
'bdtfx.7310' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000013740CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000013741CS.jpg' ), |
'bdtfx.18716' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000021069CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000021071CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000033834CS.jpg', |
'3' => 'http://www.tela-botanica.org/appli:cel-img:000033835CS.jpg' ), |
'bdtfx.51311' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000021070CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000021078CS.jpg' ), |
'bdtfx.51306' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000021072CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000021075CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000021080CS.jpg' ), |
'bdtfx.40679' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000021073CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000021074CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000021077CS.jpg', |
'3' => 'http://www.tela-botanica.org/appli:cel-img:000021079CS.jpg' ), |
'bdtfx.60062' => Array ( |
'0' => 'http://www.tela-botanica.org/appli:cel-img:000025283CS.jpg', |
'1' => 'http://www.tela-botanica.org/appli:cel-img:000025308CS.jpg', |
'2' => 'http://www.tela-botanica.org/appli:cel-img:000025309CS.jpg' ) ); |
$Images = $this->getMock('Images', array('getUrlsImagesParIdsNoms'), array(), '', false); |
$Images->expects($this->any()) |
->method('getUrlsImagesParIdsNoms') |
->will($this->returnValue($retour)); |
return $Images; |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/resultat/resultats_verna.json |
---|
New file |
0,0 → 1,102 |
{"Muguet":{ |
"entete": |
{"masque":"nom_sci=%viola% his%","depart":0,"limite":"3000","total":"5"}, |
"resultat":{ |
"-1917563017":{ |
"id":20687, |
"nom_vernaculaire":"Grand Muguet", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6365", |
"taxon":"Polygonatum odoratum", "nom_retenu.code":"bdtfx.nn:51306", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/20687" }, |
"1229943434":{ |
"id":30439, |
"nom_vernaculaire":"Muguet", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6297", |
"taxon":"Convallaria majalis", |
"nom_retenu.code":"bdtfx.nn:18716", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30439"}, |
"-1660626391": { |
"id":30440, |
"nom_vernaculaire":"Muguet bleu", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6328", |
"taxon":"Hyacinthus orientalis", |
"nom_retenu.code":"bdtfx.nn:35025", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30440" }, |
"1931161398": { |
"id":30441, |
"nom_vernaculaire":"Muguet de mai", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6297", |
"taxon":"Convallaria majalis", |
"nom_retenu.code":"bdtfx.nn:18716", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30441" }, |
"-407777153": { |
"id":30442, |
"nom_vernaculaire":"Muguet de serpent", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6364", |
"taxon":"Polygonatum multiflorum", |
"nom_retenu.code":"bdtfx.nn:51299", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30442" }, |
"1616101460": { |
"id":30443, |
"nom_vernaculaire":"Muguet des pampas", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:5565", |
"taxon":"Salpichroa origanifolia", |
"nom_retenu.code":"bdtfx.nn:60062", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30443"}, |
"1431513208": { |
"id":30444, |
"nom_vernaculaire":"Muguet du Japon", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:12833", |
"taxon":"Ophiopogon japonicum", |
"nom_retenu.code":"bdtfx.nn:45037", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30444" }, |
"-1635498299": { |
"id":30445, |
"nom_vernaculaire":"Muguet verticillé", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6366", |
"taxon":"Polygonatum verticillatum", |
"nom_retenu.code":"bdtfx.nn:51311", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30445" }, |
"1293250210": { |
"id":30446, |
"nom_vernaculaire":"Muguette", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:145", |
"taxon":"Conopodium majus", |
"nom_retenu.code":"bdtfx.nn:18669", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/30446" }, |
"-2120091757": { |
"id":33933, |
"nom_vernaculaire":"Petit Muguet", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:5062", |
"taxon":"Galium odoratum", |
"nom_retenu.code":"bdtfx.nn:29125", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/33933" }, |
"-1817798952": { |
"id":33933, |
"nom_vernaculaire":"Petit Muguet", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6337", |
"taxon":"Maianthemum bifolium", |
"nom_retenu.code":"bdtfx.nn:40679", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/33933" }, |
"500077561": { |
"id":33934, |
"nom_vernaculaire":"Petit Muguet à deux feuilles", |
"langue.code":"fra", |
"taxon.code":"bdtfx.nt:6337", |
"taxon":"Maianthemum bifolium", |
"nom_retenu.code":"bdtfx.nn:40679", |
"href":"http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires/33934" } |
} |
} |
} |
/tags/v5.2-20131127/tests/modules/resultat/resultats.json |
---|
New file |
0,0 → 1,130 |
{"eritrichium":{ |
"entete": |
{"masque":"nom_sci=%eritrichium%","depart":0,"limite":"3000","total":"8"}, |
"resultat":{ |
"86402": |
{"nom_sci":"Eritrichium Gaudin [1828]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/86402", |
"retenu":"true", |
"nom_retenu":"Eritrichium Gaudin [1828]", |
"nom_retenu.id":"86402", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/86402", |
"auteur":"Gaudin", |
"annee":"1828", |
"biblio_origine":null,"nom_addendum":null}, |
"75113":{ |
"nom_sci":"Eritrichium nanum (L.) Schrad. ex Gaudin [1828]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/75113", |
"retenu":"true", |
"nom_retenu":"Eritrichium nanum (L.) Schrad. ex Gaudin [1828]", |
"nom_retenu.id":"75113", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/75113", |
"auteur":"(L.) Schrad. ex Gaudin", |
"annee":"1828", |
"biblio_origine":"Fl. Helv., 2 : 57", |
"nom_addendum":null}, |
"25025":{ |
"nom_sci":"Eritrichium mandonii Ball [1885]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25025", |
"retenu":"false", |
"nom_retenu":"Amsinckia micrantha Suksd. [1900]", |
"nom_retenu.id":"4208", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/4208", |
"auteur":"Ball", |
"annee":"1885", |
"biblio_origine":"J. Linn. Soc., Bot., 22 : 51", |
"nom_addendum":null}, |
"25024":{ |
"nom_sci":"Eritrichium hacquetii W.D.J.Koch [1838]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25024", |
"retenu":"false", |
"nom_retenu":"Eritrichium nanum subsp. nanum", |
"nom_retenu.id":"25026", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25026", |
"auteur":"W.D.J.Koch", |
"annee":"1838", |
"biblio_origine":"Syn. Fl. Germ. Helv., \u00e9d. 1 : 507", |
"nom_addendum":null}, |
"25028":{ |
"nom_sci":"Eritrichium tergloviense (Hacq.) Putt. & Endl. [1843]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25028", |
"retenu":"false", |
"nom_retenu":"Eritrichium nanum subsp. nanum", |
"nom_retenu.id":"25026", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25026", |
"auteur":"(Hacq.) Putt. & Endl.", |
"annee":"1843", |
"biblio_origine":"in T.Nees ; Gen. Pl. Fl. Germ., tab. 429 fig. 27, 32", |
"nom_addendum":null}, |
"25026":{ |
"nom_sci":"Eritrichium nanum subsp. nanum", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25026", |
"retenu":"true", |
"nom_retenu":"Eritrichium nanum subsp. nanum", |
"nom_retenu.id":"25026", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25026", |
"auteur":null,"annee":null,"biblio_origine":null,"nom_addendum":null}, |
"103076":{ |
"nom_sci":"Eritrichium nanum subsp. jankae (Simonk.) J\u00e1v. [1887]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/103076", |
"retenu":"true", |
"nom_retenu":"Eritrichium nanum subsp. jankae (Simonk.) J\u00e1v. [1887]", |
"nom_retenu.id":"103076", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/103076", |
"auteur":"(Simonk.) J\u00e1v.", |
"annee":"1887", |
"biblio_origine":"Enum. Fl. Transsilv., 408", |
"nom_addendum":null}, |
"25027":{ |
"nom_sci":"Eritrichium nanum var. leiospermum Rouy [1908]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25027", |
"retenu":"false", |
"nom_retenu":"Eritrichium nanum subsp. nanum", |
"nom_retenu.id":"25026", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/25026", |
"auteur":"Rouy", |
"annee":"1908", |
"biblio_origine":"Fl. Fr., 10 : 582", |
"nom_addendum":null} |
} |
}, |
"viola his":{ |
"entete": |
{"masque":"nom_sci=%viola% his%","depart":0,"limite":"3000","total":"5"}, |
"resultat":{ |
"72291":{ |
"nom_sci":"Viola hispida Lapeyr. [1813]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72291", |
"retenu":"false", |
"nom_retenu":"Viola bubanii Timb.-Lagr. [1852]", |
"nom_retenu.id":"72117", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72117"}, |
"72288":{ |
"nom_sci":"Viola hispida Lam. [1779]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72288", |
"retenu":"true", |
"nom_retenu":"Viola hispida Lam. [1779]", |
"nom_retenu.id":"72288", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72288"}, |
"72341":{ |
"nom_sci":"Viola lutea var. hispida Nyman [1878]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72341", |
"retenu":"false", |
"nom_retenu":"Viola bubanii Timb.-Lagr. [1852]", |
"nom_retenu.id":"72117", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72117"}, |
"72289":{"nom_sci":"Viola hispida subsp. cryana (Gillot) P.Fourn. [1928]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72289", |
"retenu":"false", |
"nom_retenu":"Viola cryana Gillot [1878]", |
"nom_retenu.id":"72201", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72201"}, |
"72290":{"nom_sci":"Viola hispida subsp. rothomagensis P.Fourn. [1928]", |
"href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72290", |
"retenu":"false", |
"nom_retenu":"Viola hispida Lam. [1779]", |
"nom_retenu.id":"72288", |
"nom_retenu.href":"http:\/\/localhost\/service:eflore:0.1\/bdtfx\/noms\/72288"} |
} |
} |
} |
/tags/v5.2-20131127/tests/modules/resultat/ResultatFormateurInitialisation.php |
---|
New file |
0,0 → 1,65 |
<?php |
class ResultatFormateurInitialisation extends PHPUnit_Framework_TestCase { |
public static function setUpBeforeClass() { |
error_reporting(E_ALL); |
// Enregistrement en première position des autoload de la méthode gérant les classes des services |
spl_autoload_register(array(get_class(), 'chargerClasseAuto')); |
} |
public static function chargerClasseAuto($classe) { |
$cheminBase = dirname(__FILE__).'/../../../'; |
$cheminBiblio = $cheminBase.'bibliotheque/'; |
$cheminModule = $cheminBase.'modules/resultat/'; |
$cheminModuleFormateurs = $cheminModule.'formateurs/'; |
$cheminModuleFormateursNs = $cheminModuleFormateurs.'nom_scientifique/'; |
$cheminModuleFormateursNv = $cheminModuleFormateurs.'nom_vernaculaire/'; |
$chemins = array($cheminBiblio, $cheminModule, $cheminModuleFormateurs, |
$cheminModuleFormateursNs, $cheminModuleFormateursNv); |
foreach ($chemins as $chemin) { |
$chemin = $chemin.$classe.'.php'; |
if (file_exists($chemin)) { |
require_once $chemin; |
} |
} |
} |
protected function getParametres($type, $masque) { |
$parametres = new ParametresResultats(); |
$parametres->type = $type; |
$parametres->masqueRecherche = $masque; |
return $parametres; |
} |
protected function getResultatsPourMasque($masque) { |
$resultatsJson = file_get_contents(dirname(__FILE__).'/resultats.json'); |
$resultats = json_decode($resultatsJson, true); |
return $resultats[$masque]; |
} |
protected function getSurligneur() { |
return new Surligneur(); |
} |
protected function getTrieur() { |
return new Trieur(); |
} |
protected function getAppUrls() { |
$AppUrls = $this->getMock('AppUrls', array('obtenirUrlFiche', 'obtenirUrlBaseDossier'), array(), '', false); |
$AppUrls->expects($this->any()) |
->method('obtenirUrlFiche') |
->will($this->returnCallback(array($this, 'genererUrlFiche'))); |
$AppUrls->expects($this->any()) |
->method('obtenirUrlBaseDossier') |
->will($this->returnValue(ConsultationEflorePhpUnit::TPL_URL_BASE_DOSSIER)); |
return $AppUrls; |
} |
public function genererUrlFiche($id) { |
return sprintf(ConsultationEflorePhpUnit::TPL_URL_FICHE, $id); |
} |
} |
?> |
/tags/v5.2-20131127/tests/modules/RechercheSimpleTest.php |
---|
New file |
0,0 → 1,41 |
<?php |
require_once dirname(__FILE__).'/../ConsultationEflorePhpUnit.php'; |
class RechercheSimpleTest extends ConsultationEflorePhpUnit { |
public function testMoteurRechercheSimple() { |
Config::charger(CONFIG_DIR . '/bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
$recherche = new RechercheSimple(); |
$sortie = $recherche->executerFormulaireNom(); |
$this->assertNotEmpty($sortie, print_r($sortie, true)); |
$this->assertContains('<input id="type-nom-scientifique" name="type_nom" type="hidden" value="nom_scientifique" />', $sortie, print_r($sortie,true)); |
$this->assertContains('<input id="eflore_nomenclature_referentiel" name="referentiel" type="hidden" value="bdtfx" />', $sortie); |
$this->assertContains('<input id="eflore_nomenclature_action" name="action" type="hidden" value="rechercheSimple" />', $sortie); |
$this->assertNotContains('<input id="type_nom_vernaculaire" name="type_nom" value="nom_vernaculaire" type="radio" checked="checked" />', $sortie); |
} |
public function testMoteurRechercheSimpleForm() { |
Config::charger(CONFIG_DIR . '/bdtfx.ini'); |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('parametres.referentiel', 'bdtfx'); |
$donnees['type_nom'] = 'nom_vernaculaire'; |
$donnees['nom'] = 'acer'; |
$donnees['nom_verna'] = 'true'; |
$recherche = new RechercheSimple(); |
$sortie = $recherche->executerFormulaireNom($donnees); |
$this->assertNotEmpty($sortie, print_r($sortie, true)); |
$this->assertNotContains('<input id="type-nom-scientifique" name="type_nom" type="hidden" value="nom_scientifique" />', $sortie); |
$this->assertContains('<input id="eflore_nomenclature_referentiel" name="referentiel" type="hidden" value="bdtfx" />', $sortie); |
$this->assertContains('<input id="eflore_nomenclature_action" name="action" type="hidden" value="rechercheSimple" />', $sortie); |
$this->assertContains('<input id="type_nom_vernaculaire" name="type_nom" value="nom_vernaculaire" type="radio" checked="checked" />', $sortie); |
$this->assertContains('<input id="nom" name="nom" class="champ" size="30" maxlength="255" type="text" value="acer" />', $sortie); |
} |
} |
?> |
/tags/v5.2-20131127/tests/bibliotheque/SurligneurTest.php |
---|
New file |
0,0 → 1,53 |
<?php |
require dirname(__FILE__).'/../../bibliotheque/Surligneur.php'; |
class SurligneurTest extends PHPUnit_Framework_TestCase { |
/** |
* @expectedException InvalidArgumentException |
* @expectedExceptionMessage Surligneur::surlignerMots() n'accepte que les tableaux de mots en argument |
*/ |
public function testerSurlignerMotsAvecChaineRetourneInvalidArgumentException() { |
$surligneur = new Surligneur(); |
$surligneur->surlignerMots('test'); |
} |
/** |
* @expectedException LengthException |
* @expectedExceptionMessage Surligneur::surlignerMots() n'accepte que des tableaux contenant au moins un mot |
*/ |
public function testerSurlignerMotsAvecTableauVideRetourneLengthException() { |
$surligneur = new Surligneur(); |
$surligneur->surlignerMots(array()); |
} |
public function testerSurlignerMotsRetournePremiereOccurenceMotSurlignee() { |
$surligneur = new Surligneur(); |
$surligneur->setTexte('Viola alba subsp. alba'); |
$txtSurligne = $surligneur->surlignerMots(array('viola', 'al')); |
$txtSurligneAttendu = '<span class="surlignage">Viola</span> <span class="surlignage">al</span>ba subsp. alba'; |
$this->assertEquals($txtSurligneAttendu, $txtSurligne); |
} |
public function testerSurlignerMotsRetourneDeuxPremieresOccurencesMotSurlignees() { |
$surligneur = new Surligneur(); |
$surligneur->setNbreMaxSurlignageParMot(2); |
$surligneur->setTexte('Viola alba subsp. alba'); |
$txtSurligne = $surligneur->surlignerMots(array('viola', 'al')); |
$txtSurligneAttendu = '<span class="surlignage">Viola</span> <span class="surlignage">al</span>ba subsp. <span class="surlignage">al</span>ba'; |
$this->assertEquals($txtSurligneAttendu, $txtSurligne); |
} |
public function testerSurlignerMotsParConstructeurRetourneDeuxPremieresOccurencesMotSurlignees() { |
$surligneur = new Surligneur('Viola alba subsp. alba', 2); |
$txtSurligne = $surligneur->surlignerMots(array('viola', 'al')); |
$txtSurligneAttendu = '<span class="surlignage">Viola</span> <span class="surlignage">al</span>ba subsp. <span class="surlignage">al</span>ba'; |
$this->assertEquals($txtSurligneAttendu, $txtSurligne); |
} |
} |
?> |
/tags/v5.2-20131127/tests/ConsultationEflorePhpUnit.php |
---|
New file |
0,0 → 1,161 |
<?php |
/** |
* Classe contenant des méthodes : |
* - d'intialisation des tests, |
* - refactorisant le code des tests, |
* - facilitant les tests. |
* |
* @category php 5.3 |
* @package Tests/Services |
* @author Raphaël Droz <raphael@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2011, 2013 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 |
*/ |
define('CONFIG_DIR', __DIR__ . '/../configurations'); |
require_once __DIR__ . '/../framework.php'; |
abstract class ConsultationEflorePhpUnit extends PHPUnit_Framework_TestCase { |
const URL_API = 'http://localhost/service:eflore:0.1'; |
const TPL_URL_BASE = 'http://localhost/consultation/index_botanique.php?referentiel=bdtfx'; |
const TPL_URL_BASE_DOSSIER = 'http://localhost/consultation/'; |
const TPL_URL_FICHE = 'http://localhost/consultation/index_botanique.php?referentiel=bdtfx&module=fiche&action=fiche&nn=%s'; |
//+------------------------------------------------------------------------------------------------------+ |
// Intialisation |
/* absolument nécessaire pour que Registre::$statics et Config::$statics soient réinitialisés lors |
de multiples tests successifs (notamment pour le moteur de recherche). |
*Et* l'annotation de setUpBeforeClass() |
*et* l'attribut $backupStaticAttributes |
*et* l'accès fictif @Registre::get(NULL); |
sont tous trois nécessaires */ |
protected $backupStaticAttributes = true; |
/** |
* @backupStaticAttributes enabled |
*/ |
public static function setUpBeforeClass() { |
error_reporting(E_ALL); |
if(!Framework::getCheminAppli()) { |
Framework::setCheminAppli(__DIR__ . '/../'); |
// Enregistrement en première position des autoload de la méthode gérant les classes des services |
spl_autoload_register(array(get_class(), 'chargerClasseAuto')); |
} |
Registre::get(NULL); |
} |
public static function chargerClasseAuto($classe) { |
//echo $classe."\n"; |
if (class_exists($classe)) { |
return null; |
} |
$cheminsTests = __DIR__.'/'; |
// $cheminBibliotheque = realpath(__DIR__.'/../bibliotheque/').'/'; |
$cheminMetier = realpath(__DIR__.'/../metier/api_0.1').'/'; |
$cheminModule = realpath(__DIR__.'/../modules/').'/'; |
$cheminFormateurs = realpath(__DIR__.'/../modules/fiche/formateurs/').'/'; // pour FicheTest::testExecuterFiche() |
$chemins = array(/* $cheminBibliotheque, */ $cheminMetier, $cheminModule, $cheminsTests, $cheminFormateurs); |
foreach ($chemins as $chemin) { |
$cheminCourt = $chemin.$classe.'.php'; |
$module = strtolower(preg_replace('/([A-Z])/', '_\\1', lcfirst($classe))); |
$cheminLong = $chemin.$module.'/'.$classe.'.php'; |
//echo $cheminCourt."\n".$cheminLong."\n"; |
if (file_exists($cheminCourt)) { |
require_once $cheminCourt; |
} elseif (file_exists($cheminLong)) { |
require_once $cheminLong; |
} |
} |
} |
//+------------------------------------------------------------------------------------------------------+ |
// Refactorisation |
protected function consulterJson($ressources, $parametres) { |
$retourJson = $this->consulterBrut($ressources, $parametres); |
$retour = json_decode($retourJson, true); |
$this->assertEquals(JSON_ERROR_NONE, json_last_error(), "Le json contient des erreurs qui bloquent le décodage. Voir : $url"); |
return $retour; |
} |
protected function consulterBrut($ressources, $parametres) { |
array_unshift($ressources, $this->service); |
array_unshift($ressources, $this->projet); |
$projets = new Projets(); |
$retourJson = $projets->consulter($ressources, $parametres); |
return $retourJson; |
} |
protected function creerUrl($ressources, $parametres) { |
$version = ''; |
$ressourcesUrl = array(); |
foreach ($ressources as $ressource) { |
$ressourcesUrl[] = $ressource; |
} |
$ressourcesUrl = count($ressourcesUrl) > 0 ? '/'.implode('/', $ressourcesUrl) : ''; |
$parametresUrl = ''; |
if (count($parametres) > 0) { |
foreach ($parametres as $cle => $valeur) { |
$parametresUrl[] = $cle.'='.rawurlencode($valeur); |
} |
$parametresUrl = '?'.implode('&', $parametresUrl); |
} |
return self::URL_API.$ressourcesUrl.$parametresUrl; |
} |
//+------------------------------------------------------------------------------------------------------+ |
// Méthodes facilitant les tests |
/** |
* Récupère un bouchon de classe abstraite. |
* Comment l'utiliser : |
* $classeAstraite = $this->getClasseAbstraite('MaClasse', array('param1', 'param2')); |
* $foo = $classeAstraite->methodeConcretePublique(); |
* |
* @param String $classeNom Le nom de la classe |
* @param Array $parametres Les paramètres à passer au constructeur. |
* @return Object Le bouchon de la classe abstraite |
*/ |
public function getClasseAbstraite($classeNom, Array $parametres) { |
return $this->getMockForAbstractClass($classeNom, $parametres); |
} |
/** |
* Récupère une méthode privée d'une classe pour tester/documenter. |
* Comment l'utiliser : |
* MyClass->foo(): |
* $cls = new MyClass(); |
* $foo = self::getPrivateMethode($cls, 'foo'); |
* $foo->invoke($cls, $...); |
* |
* @param object $objet Une instance de votre classe |
* @param string $methode Le nom de la méthode private |
* @return ReflectionMethod La méthode demandée |
*/ |
public static function getMethodePrivee($objet, $nomMethode) { |
$classe = new ReflectionClass($objet); |
$methode = $classe->getMethod($nomMethode); |
$methode->setAccessible(true); |
return $methode; |
} |
/** |
* Récupère une méthode protégée d'une classe pour tester/documenter. |
* Comment l'utiliser : |
* MyClass->foo(): |
* $cls = new MyClass(); |
* $foo = self::getProtectedMethode($cls, 'foo'); |
* $foo->invoke($cls, $...); |
* @param object $objet Une instance de votre classe |
* @param string $methode Le nom de la méthode protected |
* @return ReflectionMethod La méthode demandée |
*/ |
public static function getMethodeProtegee($objet, $nomMethode) { |
return self::getMethodePrivee($objet, $nomMethode); |
} |
} |
?> |
/tags/v5.2-20131127/tests/metier/EfloreTest.php |
---|
New file |
0,0 → 1,20 |
<?php |
require_once dirname(__FILE__).'/../ConsultationEflorePhpUnit.php'; |
class EfloreTest extends ConsultationEflorePhpUnit { |
public function testFormulerUrl() { |
$ressources = array('bdtfx', 'noms'); |
$parametres = array('masque' => 'acer', 'recherche' => 'stricte', 'ns.format' => 'htm'); |
$url = $this->creerUrl($ressources, $parametres); |
$eflore = $this->getMock('Eflore'); |
$formaterUrl = self::getMethodeProtegee($eflore, 'formaterUrl'); |
$tpl = ConsultationEflorePhpUnit::URL_API . '/{projet}/noms?masque={valeur}&recherche={type}&ns.format=htm'; |
$param = array('projet' => 'bdtfx' ,'valeur' => 'acer', 'type' => 'stricte'); |
$urlf = $formaterUrl->invoke($eflore, $tpl, $param); |
$this->assertEquals($url, $urlf); |
} |
} |
?> |
/tags/v5.2-20131127/tests/metier/NomsTest.php |
---|
New file |
0,0 → 1,60 |
<?php |
require_once dirname(__FILE__).'/../ConsultationEflorePhpUnit.php'; |
class NomsTest extends ConsultationEflorePhpUnit { |
public function testRechercheEtendue() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Noms(); |
$resultats = $noms->getRechercheEtendue('aceras'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('15', $resultats['entete']['total']); |
$this->assertNotEmpty($resultats['resultat']['243']); |
$this->assertEquals('Aceras hircinum', $resultats['resultat']['243']['nom_sci']); |
$this->assertArrayNotHasKey('nom_retenu.id', $resultats['resultat']['243']); |
$this->assertArrayNotHasKey('auteur', $resultats['resultat']['243']); |
$this->assertArrayNotHasKey('annee', $resultats['resultat']['243']); |
$this->assertArrayNotHasKey('biblio_origine', $resultats['resultat']['243']); |
} |
public function testRechercheEtendueDetermination() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Noms(); |
$resultats = $noms->getRechercheEtendue('aceras', 'determination'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('15', $resultats['entete']['total']); |
$this->assertNotEmpty($resultats['resultat']['243']); |
$this->assertEquals('Aceras hircinum', $resultats['resultat']['243']['nom_sci']); |
$this->assertEquals('75170', $resultats['resultat']['243']['nom_retenu.id']); |
$this->assertArrayNotHasKey('auteur', $resultats['resultat']['243']); |
$this->assertArrayNotHasKey('annee', $resultats['resultat']['243']); |
$this->assertArrayNotHasKey('biblio_origine', $resultats['resultat']['243']); |
} |
public function testRechercheEtendueDecompo() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Noms(); |
$resultats = $noms->getRechercheEtendue('aceras', 'decompo'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('15', $resultats['entete']['total']); |
$this->assertNotEmpty($resultats['resultat']['243']); |
$this->assertEquals('Aceras hircinum', $resultats['resultat']['243']['nom_sci']); |
$this->assertArrayNotHasKey('nom_retenu.id', $resultats['resultat']['243']); |
$this->assertArrayHasKey('auteur', $resultats['resultat']['243']); |
$this->assertArrayHasKey('annee', $resultats['resultat']['243']); |
$this->assertArrayHasKey('biblio_origine', $resultats['resultat']['243']); |
} |
public function testRechercheFloue() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Noms(); |
$resultats = $noms->getRechercheFloue('aceras'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('27', $resultats['entete']['total']); |
} |
} |
?> |
/tags/v5.2-20131127/tests/metier/TaxonsTest.php |
---|
New file |
0,0 → 1,68 |
<?php |
require_once dirname(__FILE__).'/../ConsultationEflorePhpUnit.php'; |
class TaxonsTest extends ConsultationEflorePhpUnit { |
public function testStatsInitialesFamille() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Taxons(); |
$resultats = $noms->getStatsInitialesFamille(); |
$this->assertNotEmpty($resultats); |
// bdtfx v2 |
$this->assertEquals('25', $resultats['A']); |
} |
public function testStatsInitialesGenre() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Taxons(); |
$resultats = $noms->getStatsInitialesGenre(); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('9', $resultats['U']); |
} |
public function testListeFamilleParInitiale() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Taxons(); |
$resultats = $noms->getListeFamilleParInitiale('U'); |
$this->assertNotEmpty($resultats); |
$this->assertCount(2, $resultats); |
} |
public function testListeGenreParInitiale() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Taxons(); |
$resultats = $noms->getListeGenreParInitiale('U'); |
$this->assertNotEmpty($resultats); |
$this->assertNotEmpty($resultats[84640]); |
$this->assertCount(9, $resultats); |
} |
public function testRechercheEtendue() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Taxons(); |
$resultats = $noms->getRechercheEtendue('acer'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('49', $resultats['entete']['total']); |
} |
/* |
équivalent de: |
SELECT count(num_nom) FROM bdtfx_v1_01 WHERE num_nom = num_nom_retenu AND (( SOUNDEX(nom_sci) = SOUNDEX('aceras')) OR ( SOUNDEX(REVERSE(nom_sci)) = SOUNDEX(REVERSE('aceras')))) LIMIT 0, 100; |
~/projets/services/modules/0.1/bdtfx/Taxons.php:275 |
*/ |
public function testRechercheFloue() { |
Registre::set('parametres.referentiel', 'bdtfx'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new Taxons(); |
$resultats = $noms->getRechercheFloue('aceras'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('15', $resultats['entete']['total']); |
} |
} |
?> |
/tags/v5.2-20131127/tests/metier/NomsVernaculairesTest.php |
---|
New file |
0,0 → 1,33 |
<?php |
require_once dirname(__FILE__).'/../ConsultationEflorePhpUnit.php'; |
class NomsVernaculairesTest extends ConsultationEflorePhpUnit { |
public function testRechercheEtendue() { |
Registre::set('parametres.referentiel', 'nvjfl'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new NomsVernaculaires(); |
$resultats = $noms->getRechercheEtendue('abricotier'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('3', $resultats['entete']['total']); |
} |
public function testRechercheEtendueDetermination() { |
Registre::set('parametres.referentiel', 'nvjfl'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new NomsVernaculaires(); |
$resultats = $noms->getRechercheEtendue('abricotier', 'determination'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('3', $resultats['entete']['total']); |
} |
public function testRechercheFloue() { |
Registre::set('parametres.referentiel', 'nvjfl'); |
Config::charger(CONFIG_DIR . '/config.ini'); |
$noms = new NomsVernaculaires(); |
$resultats = $noms->getRechercheFloue('abricotier'); |
$this->assertNotEmpty($resultats); |
$this->assertEquals('1', $resultats['entete']['total']); |
} |
} |
?> |
/tags/v5.2-20131127/eflore.php |
---|
New file |
0,0 → 1,55 |
<?php |
function __autoload($nom_classe) { |
// Tableau des chemins à inclure pour trouver une classe relatif à ce fichier |
$chemins = array( |
'..'.DS.'bibliotheque'.DS.'dao', |
'..'.DS.'bibliotheque'.DS.'utilitaires', |
'bibliotheque'.DS.'pear', |
'composants'); |
foreach ($chemins as $chemin) { |
$fichier_a_inclure = dirname(__FILE__).DS.$chemin.DS.$nom_classe.'.php'; |
if (file_exists($fichier_a_inclure)) { |
include_once $fichier_a_inclure; |
return null; |
} |
} |
} |
// Le fichier Framework.php du Framework de Tela Botanica doit être appelé avant tout autre chose dans l'application. |
// Sinon, rien ne sera chargé. |
// L'emplacement du Framework peut varier en fonction de l'environnement (test, prod...). Afin de faciliter la configuration |
// de l'emplacement du Framework, un fichier framework.defaut.php doit être renommé en framework.php et configuré pour chaque installation de |
// l'application. |
// Chemin du fichier chargeant le framework requis |
$framework = dirname(__FILE__).'/framework.php'; |
if (!file_exists($framework)) { |
$e = "Veuillez paramêtrer l'emplacement et la version du Framework dans le fichier $framework"; |
trigger_error($e, E_USER_ERROR); |
} else { |
// Inclusion du Framework |
require_once $framework; |
// Ajout d'information concernant cette application |
Framework::setCheminAppli(__FILE__);// Obligatoire |
Framework::setInfoAppli(Config::get('info'));// Optionnel |
// Vous pouvez ci-dessous commencer le développement de votre application |
if (Config::get('debogage')) { |
Debug::tailleMemoireScript('Taille mémoire du script :'); |
} |
if (Config::get('benchmark_chrono')) { |
Chronometre::chrono("Lancement d'eFlore"); |
} |
// Initialisation du controleur principal de l'application |
try { |
AppControleur::initialiser(); |
} catch (Exception $e) { |
$message = $e->getMessage()."\nLigne : ".$e->getLine()."\nFichier : ".$e->getFile(); |
Debug::printr($message); |
} |
if (Config::get('benchmark_chrono')) { |
Chronometre::chrono("Arrêt d'eFlore"); |
} |
} |
?> |
/tags/v5.2-20131127/livraison/livraison.sh |
---|
New file |
0,0 → 1,29 |
#!/bin/bash |
############################################################################################################## |
# But : Script permettant d'initialiser en une seule commande l'ensemble de la base de données eFlore. |
# Auteur : Jean-Pascal Milcent <jpm@tela-botanica.org> (translate bat file to shell script) |
# License : GPL v3 |
# Création : 07 decembre 2011 |
# Version: 0.1 |
# 2011-12-07 - Création |
# $Id$ |
############################################################################################################## |
# compresser les fichiers en excluant les fichiers svn et les fichiers de config et framework |
tar cvzf consultation.tar.gz ../ \ |
--exclude="livraison" \ |
--exclude=".svn" \ |
--exclude="configurations/config.ini" \ |
--exclude="configurations/config_papyrus.ini" \ |
--exclude="framework.php" \ |
--exclude="*.sh" \ |
--exclude=".settings" \ |
--exclude=".buildpath" \ |
--exclude=".project" |
# envoyer sur tela |
scp consultation.tar.gz root@tela-botanica.org:/home/telabotap/www/eflore-test/. |
# se connecter sur tela botanica en ssh et effectuer le déploiement |
ssh root@tela-botanica.org "cd /home/telabotap/www/eflore-test/; cd consultation; tar cvzf ../backup/consultation.tar.gz .; cd ../; rm -Rf consultation; mkdir consultation; cd consultation/; tar xvzf ../consultation.tar.gz; cp ../configurations/consultation/* . -R; cp ../configurations/consultation/.htaccess . ; chown telabotap:users /home/telabotap/www/eflore-test/consultation -R; chmod 755 /home/telabotap/www/eflore-test/consultation -R; exit"; |
echo "Done !" |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/tags/v5.2-20131127/livraison |
---|
New file |
Property changes: |
Added: svn:ignore |
+consultation.tar.gz |
/tags/v5.2-20131127/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 |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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 |
/tags/v5.2-20131127/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/> |
/tags/v5.2-20131127/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://www.tela-botanica.org/sites/botanique/generique/images/graphisme/logo_tela_fond_vert.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/> |
/tags/v5.2-20131127/modules/pdf_export/PdfExport.php |
---|
New file |
0,0 → 1,226 |
<?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; |
$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; |
} |
} |
?> |
/tags/v5.2-20131127/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 --> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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="<" /> |
</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=">" /> |
</a> |
</div> |
<hr class="nettoyage" /> |
</div> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_ecologie.tpl.html |
---|
New file |
0,0 → 1,234 |
<div 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"> <?=$baseveg['baseflor']['catminat'] ?></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"><?=$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'] : '' ?> |
</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"><?=$baseveg['syntaxon-courant'][0]['code_catminat']?></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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_illustrations_organes.tpl.html |
---|
New file |
0,0 → 1,74 |
<? 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="/eflore/consultation/presentations/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-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['binaire.href']; ?>" /> |
</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="http://www.tela-botanica.org/widget:cel:saisie?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=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 class="lien-image-cel" 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">(Contacter ...)</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 ?> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_synthese_niveau1.tpl.html |
---|
New file |
0,0 → 1,459 |
<!-- Fichier débutant --> |
<? $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=');?> |
<script type="text/javascript"> |
//<![CDATA[ |
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>"; |
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>"; |
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>"; |
var pageWikiTaxon = "<?= strtoupper($infos['referentiel']); ?>nt<?= $infos['num_tax']; ?>"; |
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>"; |
//]]> |
</script> |
<div class="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">Description</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">Ethnobotanique</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">Ecologie</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">Classification</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">Bibliographie</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>Flores</h4> |
<?php if ($bibliographie['flores'] == array()) { ?> |
Aucune flore indiquée |
<?php } else { ?> |
<?php foreach ($bibliographie['flores'] as $flore) : ?> |
<div> - <?= $flore; ?> </div> |
<?php endforeach; ?> |
<?php if($bibliographie['autresFlores'] > 0) { ?> |
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id=alignement-droite> |
et <?= htmlentities($bibliographie['autresFlores']) ?> |
autre<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?> |
flore<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?> |
</a> |
<?php } } ?><br /> |
<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">Illustrations</a> |
</h3> |
<div id="contenu-0" class="contenu"> |
<?php if (empty($illustrations['imageUrl']) == false) : ?> |
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?='Illustration de '.$nom_retenu.' '.$nom_vernaculaire;?>" |
src="<?=$illustrations['imageUrl']?>" alt="Image de <?=$nom_retenu?> issue du cel, du site photoflora ou de la flore de Coste" |
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">Répartition</a> |
</h3> |
<div id="contenu-3" class="contenu"> |
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?> |
<h4>Observations</h4> |
<img src="<?=htmlentities($repartition['eflore'])?>" alt="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="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">Protection</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" /> |
</div> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_synthese_niveau2.tpl.html |
---|
New file |
0,0 → 1,459 |
<!-- Fichier intermédiaire --> |
<? $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=');?> |
<script type="text/javascript"> |
//<![CDATA[ |
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>"; |
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>"; |
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>"; |
var pageWikiTaxon = "<?= strtoupper($infos['referentiel']); ?>nt<?= $infos['num_tax']; ?>"; |
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>"; |
//]]> |
</script> |
<div class="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">Description</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">Ethnobotanique</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">Ecologie</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">Classification</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">Bibliographie</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>Flores</h4> |
<?php if ($bibliographie['flores'] == array()) { ?> |
Aucune flore indiquée |
<?php } else { ?> |
<?php foreach ($bibliographie['flores'] as $flore) : ?> |
<div> - <?= $flore; ?> </div> |
<?php endforeach; ?> |
<?php if($bibliographie['autresFlores'] > 0) { ?> |
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite"> |
et <?= htmlentities($bibliographie['autresFlores']) ?> |
autre<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?> |
flore<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?> |
</a> |
<?php } } ?><br /> |
<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">Illustrations</a> |
</h3> |
<div id="contenu-0" class="contenu"> |
<?php if ($illustrations['imageUrl'] != '') : ?> |
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?='Illustration de '.$nom_retenu.' '.$nom_vernaculaire;?>" |
src="<?=$illustrations['imageUrl']?>" alt="Image de <?=$nom_retenu?> issue du cel, du site photoflora ou de la flore de Coste" |
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">Répartition</a> |
</h3> |
<div id="contenu-3" class="contenu"> |
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?> |
<h4>Observations</h4> |
<img src="<?=htmlentities($repartition['eflore'])?>" alt="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="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">Protection</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" /> |
</div> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_synthese_niveau3.tpl.html |
---|
New file |
0,0 → 1,454 |
<!-- Fichier expert --> |
<? $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=');?> |
<script type="text/javascript"> |
//<![CDATA[ |
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>"; |
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>"; |
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>"; |
var pageWikiTaxon = "<?= strtoupper($infos['referentiel']); ?>nt<?= $infos['num_tax']; ?>"; |
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>"; |
//]]> |
</script> |
<div class="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">Classification</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">Description</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">Ecologie</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">Ethnobotanique</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">Bibliographie</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>Flores</h4> |
<?php if ($bibliographie['flores'] == array()) { ?> |
Aucune flore indiquée |
<?php } else { ?> |
<?php foreach ($bibliographie['flores'] as $flore) : ?> |
<div> - <?= $flore; ?> </div> |
<?php endforeach; ?> |
<?php if($bibliographie['autresFlores'] > 0) { ?> |
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite"> |
et <?= htmlentities($bibliographie['autresFlores']) ?> |
autre<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?> |
flore<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?> |
</a> |
<?php } } ?><br /> |
<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">Illustrations</a> |
</h3> |
<div id="contenu-0" class="contenu"> |
<?php if ($illustrations['imageUrl'] != '') : ?> |
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?='Illustration de '.$nom_retenu.' '.$nom_vernaculaire;?>" |
src="<?=$illustrations['imageUrl']?>" alt="Image de <?=$nom_retenu?> issue du cel, du site photoflora ou de la flore de Coste" |
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">Répartition</a> |
</h3> |
<div id="contenu-3" class="contenu"> |
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?> |
<h4>Observations</h4> |
<img src="<?=htmlentities($repartition['eflore'])?>" alt="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="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">Protection</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" /> |
</div> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_nomenclature.tpl.html |
---|
New file |
0,0 → 1,214 |
<div 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 /> |
<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' : '' ?>"> |
<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> |
<?php if(is_array($synonymes['noms']) && count($synonymes['noms']) > 0) { ?> |
<ul> |
<?php foreach ($synonymes['noms'] as $id => $synonyme) : ?> |
<li class="item_nomenclature"> |
<span class="nom<?= ($nom_selectionne == $synonyme['nom_sci']) ? ' surlignage' : '' ?>"> |
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($id,'nom_scientifique'); ?>"> <?= $synonyme['nom_sci_complet'] ?></a> |
</span> |
<span class="nom basionyme_complet"> |
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($synonyme['basionyme.id'],'nom_scientifique'); ?>"> |
<?= isset($synonyme['basionyme_html_complet']) ? "Basionyme : ".$synonyme['basionyme_html_complet'] : ''; ?> |
</a> |
</span> |
</li> |
<?php endforeach; ?> |
</ul><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 $num_nom_syn => $infos_flore) : ?> |
<?php foreach ($infos_flore as $code => $flore) : ?> |
<li class="item_nomenclature"> |
<div> |
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> |
<?php endforeach; ?> |
<?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)?>&output_format=normal&query_type=by_query&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&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&QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&Restriction=NybRecordType+%3D+%27Specimen%27&StartAt=1&any=SummaryData%7CAdmWebMetadata&QueryOption=any&Submit=Search&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)?>&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=&projet%5B%5D=FSA&projet%5B%5D=FTA&projet%5B%5D=FNA&projet%5B%5D=BDM&langue=en&pbRecherche=Rechercher&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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_accueil_niveau1.tpl.html |
---|
New file |
0,0 → 1,68 |
<!-- |
// inclusion du dictionnaire si celui-ci est installé, à décommenter en production pour l'activer |
// le script est inclus ici pour ne déclencher le dictionnaire que dans la recherche |
<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" /> |
--> |
<script type="text/Javascript"> |
var ongletsDefaut = [<?= $blocs; ?>]; |
var base_url_application_onglets = "<?= $base_url_onglets; ?>"; |
</script> |
<div id="bloc-fiche" class="importance4"> |
<h1><span class="nomenclature"><?=$nom_retenu_html?></span> |
<span class="famille nomenclature" style="float: right;"><?=($famille != '') ? $famille : '';?></span> |
<br/> |
<?php if($nom_appele_html): ?> |
<span class="redirige_depuis">Nom retenu du nom recherché <strong><?= $nom_appele_html ?></strong></span> |
<br/> |
<?php endif; ?> |
<span class="vernaculaire"><?=$nom_vernaculaire;?></span></h1> |
<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" 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" 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"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" 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" 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" 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" href="<?=$url;?>illustrations"> |
<?=$i18n["onglet-nom-illustra"]?></a> |
</li> |
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>"> |
<a class="lien-onglet" 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" 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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_accueil_niveau2.tpl.html |
---|
New file |
0,0 → 1,68 |
<!-- |
// inclusion du dictionnaire si celui-ci est installé, à décommenter en production pour l'activer |
// le script est inclus ici pour ne déclencher le dictionnaire que dans la recherche |
<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" /> |
--> |
<script type="text/Javascript"> |
var ongletsDefaut = [<?= $blocs; ?>]; |
var base_url_application_onglets = "<?= $base_url_onglets; ?>"; |
</script> |
<div id="bloc-fiche" class="importance4"> |
<h1><span class="nomenclature"><?=$nom_retenu_html?></span> |
<span class="famille nomenclature" style="float: right;"><?=($famille != '') ? $famille : '';?></span> |
<br/> |
<?php if($nom_appele_html): ?> |
<span class="redirige_depuis">Nom retenu du nom recherché <strong><?= $nom_appele_html ?></strong></span> |
<br/> |
<?php endif; ?> |
<span class="vernaculaire"><?=$nom_vernaculaire;?></span></h1> |
<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" 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" 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" 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" 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" 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" 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" href="<?=$url;?>illustrations"> |
<?=$i18n["onglet-nom-illustra"]?></a> |
</li> |
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>"> |
<a class="lien-onglet" 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" 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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_accueil_niveau3.tpl.html |
---|
New file |
0,0 → 1,68 |
<!-- |
// inclusion du dictionnaire si celui-ci est installé, à décommenter en production pour l'activer |
// le script est inclus ici pour ne déclencher le dictionnaire que dans la recherche |
<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" /> |
--> |
<script type="text/Javascript"> |
var ongletsDefaut = [<?= $blocs; ?>]; |
var base_url_application_onglets = "<?= $base_url_onglets; ?>"; |
</script> |
<div id="bloc-fiche" class="importance4"> |
<h1><span class="nomenclature"><?=$nom_retenu_html?></span> |
<span class="famille nomenclature" style="float: right;"><?=($famille != '') ? $famille : '';?></span> |
<br/> |
<?php if($nom_appele_html): ?> |
<span class="redirige_depuis">Nom retenu du nom recherché <strong><?= $nom_appele_html ?></strong></span> |
<br/> |
<?php endif; ?> |
<span class="vernaculaire"><?=$nom_vernaculaire;?></span></h1> |
<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" 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" 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" 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" 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" 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" 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" href="<?=$url;?>illustrations"> |
<?=$i18n["onglet-nom-illustra"]?></a> |
</li> |
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>"> |
<a class="lien-onglet" 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" 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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_repartition.tpl.html |
---|
New file |
0,0 → 1,63 |
<div 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&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> |
<object id="repartition_observations" type="text/html" data="<?=$moissonnage['mapUrl']?>" class="svg" alt="<?=$moissonnage['mapUrl']?>" style="width:620px; height:620px; overflow:none;"> |
</object> |
<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_telechargement"> |
<span>Télécharger la carte au format </span> |
<a href="<?=$moissonnage['mapTelechargementUrls']['png']; ?>">png</a> |
<a href="<?=$moissonnage['mapTelechargementUrls']['html']; ?>">html</a> |
</div> |
</div> |
<hr class="nettoyage" /> |
<?endif;?> |
<div id="cel"> |
<h2>Observations du carnet en ligne</h2> |
<iframe style="width:100%;height:500px" src="http://www.tela-botanica.org/widget:cel:cartoPoint?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>"></iframe> |
<a href="http://www.tela-botanica.org/widget:cel:cartoPoint?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="http://www.tela-botanica.org/widget:cel: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> |
</div> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_bibliographie.tpl.html |
---|
New file |
0,0 → 1,36 |
<div 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> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_illustrations.tpl.html |
---|
New file |
0,0 → 1,192 |
<div 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" href="<?= $url; ?>" > |
<img src="<?= $url; ?>" alt="illustration de la flore 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; ?> |
<h2>Flora Data - Organes</h2> |
<? 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-image-cel" href="/eflore/consultation/popup.php?module=popup-illustrations&action=fiche&referentiel=bdtfx&id=<?= $image['id_image'] ?>"> |
<img title="<?= $image['id_image'] ?>" data-num-nom="<?= $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 ?>?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=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_del ?>?masque.ns=<?= $nomComplet ?>#page_recherche_images~3" |
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-image-cel" href="/eflore/consultation/popup.php?module=popup-illustrations&action=fiche&referentiel=bdtfx&id=<?= $image['id_image'] ?>"> |
<img title="<?= $image['id_image'] ?>" data-num-nom="<?= $image['id_image'] ?>" |
alt="Photographie n°<?= $image['id_image'] ?> du taxon <?= $image['observation']['determination.ns'] ?>" |
src="<?= $image['binaire.href'] ?>" /> |
</a> |
<? endif ?> |
</li> |
<? endforeach ?> |
</ul> |
<? endif ?> |
<hr class="nettoyage" /> |
<a class="acceder-outil-vert lien-externe" |
href="<?= $base_url_widget ?>?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=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_del ?>?masque.ns=<?= $nomComplet ?>#page_recherche_images~1" |
title="Participer au choix des photos d'organes"> |
Participer au choix |
</a> |
<? endif ?> |
<br/><br/> |
</div> |
<br/> |
<? endif ?> |
<? if (isset($cel)) : ?> |
<h2>Flora Data - Tout</h2> |
<div id="illustrations-cel"> |
<?php if (isset($cel['images'])) : ?> |
<ul class="liste-illustrations"> |
<?php foreach($cel['images'] as $id => $image) : ?> |
<li><div> |
<a class="lien-image-cel" href="<?=$image['urlDetailImg'];?>"> |
<img src="<?= $image['src']; ?>" alt="Photographie n°<?=$id;?> du taxon <?=$image['nomSci']?>" data-num-nom="<?=$id;?>" title="<?=$id;?>" /> |
</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> |
<a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)" class="mailto" href="<?= $image['urlContact']; ?>"> |
(Contacter ...) |
</a> |
<? else : ?> |
<strong class="auteur"><?= $image['auteur'] ?></strong> |
(profil indisponible) |
<? endif ?><br /> |
<a title="Proposer une autre détermination via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>"> |
Mauvaise identification ? |
</a> |
</p> |
</div> |
</li> |
<?php endforeach; ?> |
</ul> |
<?php endif; ?> |
<hr class="nettoyage" /> |
</div> |
<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> |
<a class="acceder-outil-vert lien-externe" |
href="<?= $base_url_widget ?>?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=Ajout d'une photo de <?= $nomComplet ?>" |
title="Ajouter une photographie au moyen du Carnet en Ligne"> |
Ajouter une photo |
</a> |
<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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_pied_page.tpl.html |
---|
New file |
0,0 → 1,61 |
<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" href="<?= $qr_code_png; ?>">QR code</a> |
</div> |
</div> |
<div class="droite infos_liens_permanents"> |
<h2>Informations :</h2> |
<div class="conteneur_permalien">Numéro nomenclatural : <?= $nn ?></div> |
<div class="conteneur_permalien">Numéro taxonomique : <?= $nt ?></div> |
<h2>Liens permanents :</h2> |
<div class="conteneur_permalien"> |
<span>Nom sélectionné :</span> |
<span class="conteneur_permalien"> |
<a 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 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 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" /> |
</div> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_description.tpl.html |
---|
New file |
0,0 → 1,184 |
<div 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> <?=$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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_statut.tpl.html |
---|
New file |
0,0 → 1,59 |
<div id="statut"> |
<h2>Statuts de protection</h2> |
<?php if(!empty($statuts) && 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> |
<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> |
/tags/v5.2-20131127/modules/fiche/squelettes/fiche_ethnobotanique.tpl.html |
---|
New file |
0,0 → 1,122 |
<div 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> |
/tags/v5.2-20131127/modules/fiche/Fiche.php |
---|
New file |
0,0 → 1,171 |
<?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"); |
// titre de la fiche |
$donnees['nom_retenu_html'] = $this->nom_retenu->get('nom_sci_html').' '.$this->nom_retenu->get('auteur'); |
$donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci'); |
$donnees['nom_appele_html'] = $this->nom_appele_html; |
$donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180'); |
$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['contenu_onglet'] = $this->getVue($squelette, $donnees); |
$donnees['base_url_onglets'] = Config::get('base_url_application_onglets'); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_accueil_niveau'.$niveau, $donnees), true); |
$this->ajouterPiedDePage(); |
} |
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(), |
'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->getNomCourant()->getNns(); |
$urlQrCode = $qr->dessiner($idQrCode); |
return $urlQrCode; |
} |
public function executerOnglet(){ |
$this->viderSorties(); |
$donnees = $this->obtenirDonnees(); |
header('Content-type: text/html'); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_'.$this->onglet, $donnees)); |
} |
private function obtenirDonnees() { |
$classe = ucfirst($this->onglet); |
$onglet = new $classe($this->conteneur); // grep-friendly: new Synthese() |
return $onglet->obtenirDonnees(); |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche/formateurs/Illustrations.php |
---|
New file |
0,0 → 1,304 |
<?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['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html'); |
$infosNomRetenu = $this->nomCourant->getNomRetenu()->getInfos(); |
$this->donnees['nomComplet'] = $infosNomRetenu['nom_complet']; |
$this->getPhotos(); |
$this->getDessin(); |
//$this->getPhotosOrganes(); |
$this->getPhotosCaracteresIdentification(); |
$pso = $this->getPhotosSixOrganes(); |
// reconstruction de getPhotosOrganes à partir des données de getPhotosSixOrganes |
/*$this->donnees['organes'] = array(); |
foreach ($pso as $organe => $images) { |
$clefs = array_keys($images); |
$image = $images[$clefs[0]]; |
// changement de format - en dur, cracra ! |
$image['binaire.href'] = str_replace('CRX2S', 'CRS', $image['binaire.href']); |
$this->donnees['organes'][$organe] = $image; |
}*/ |
// -- |
$this->setCheminSquelette('modules/fiche/squelettes/'); // @FIXME le chemin devrait déjà être défini correctement !? |
$params = array('organes' => $pso, 'nnr' => $this->donnees['nnr'], 'nomComplet' => $this->donnees['nomComplet']); |
$this->donnees['illustrationsOrganes'] = $this->getVue('fiche_illustrations_organes',$params); |
// chemins |
$this->donnees['base_url_widget'] = Config::get('base_url_widget'); |
$this->donnees['base_url_del'] = Config::get('base_url_del'); |
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(); |
$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']); |
} |
if (empty($this->donnees)) { |
$this->donnees = $this->getPhoto('photoflora'); |
} |
return $this->donnees; |
} |
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('coste'); |
$meta = $this->meta->getMetaDonnees(); |
$dessin['meta'] = $meta[0]; |
$dessin['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet); |
$this->donnees['coste'] = $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") { |
$this->images->setApi(Eflore::API_EFLORE); // prêt à passer à API_DEL |
} else { |
$this->images->setApi(Eflore::API_EFLORE); |
} |
$images = $this->initialiserPhotos($projet); |
$this->formaterListePhotos($projet, $images); |
$this->formaterMetaPhotos($projet); |
} |
} |
} |
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) { |
$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['']; |
} |
$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 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['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; |
} |
} |
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 || $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');" |
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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche/formateurs/Nomenclature.php |
---|
New file |
0,0 → 1,134 |
<?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->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['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'); |
$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 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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche/formateurs/Bibliographie.php |
---|
New file |
0,0 → 1,131 |
<?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->getFlores(); |
$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() { |
$this->getFloresBloc(); |
$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['flores'] == array() && $this->donnees['references'] == array()) { |
$this->donnees['wikini'] = $this->getWikini(); |
} |
return $this->donnees; |
} |
// Récupération des données flores présentes dans le référentiel |
private function getFlores() { |
if (Config::get($this->referentiel.'.baseFloresRef') != "") { |
$flores = $this->nomCourant->getNomRetenu()->get('flores'); |
$flores = explode(',', $flores); |
$this->donnees['flores']['liste_flores'] = $this->remplacerCorrespondancesFlores($flores); |
$this->meta->setProjet($this->referentiel); |
$meta = $this->meta->getMetaDonnees(); |
$this->donnees['flores']['meta'] = $meta[0]; |
$this->donnees['flores']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel); |
} |
} |
private function getFloresBloc() { |
$flores = $this->nomCourant->getNomRetenu()->get('flores'); |
$flores = explode(',', $flores); |
$flores = $this->remplacerCorrespondancesFlores($flores); |
$this->donnees['flores'] = array_slice($flores, 0, 3); |
$this->donnees['autresFlores'] = count($flores) - 3; |
} |
//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; |
} |
//TODO: faire une ontologie mais pas de tache prévue dans ce sprint |
private function getCorrespondancesBiblio() { |
$correspondance = array( |
'1' => 'BONNIER & LAYENS, 1894. Tables synoptiques des plantes vasculaires de la flore de France.', |
'2' => 'COSTE, 1899-1906. Flore illustrée France, (3 vol.).', |
'3' => 'FOURNIER, 1934-1940. Quatre Flores de France.', |
'3*' => 'FOURNIER, additions dans l\'édition de 1961.', |
'4' => 'TUTIN & al., 1964-1980. Flora Europaea, (5 vol.).', |
'4*' => 'Flora Europaea, édition 2 (Vol. 1), voir TUTIN & al. (1993), abrégée en FE2. L\'indication est surtout donnée quand la citation n\'a pas été faite dans 4 (supplémentaire ou modifiée).', |
'5' => 'GUINOCHET & VILMORIN, 1973-1984. Flore de France, éd. C.N.R.S., (5 vol.).', |
'6' => 'KERGUÉLEN, 1993. Liste synonymique de la flore de France.' |
); |
return $correspondance; |
} |
private function remplacerCorrespondancesFlores($flores) { |
$correspondance_code_flores = $this->getCorrespondancesBiblio(); |
$flores_texte = array(); |
foreach($flores as $code_flore) { |
$code_flore = trim($code_flore); |
if(isset($correspondance_code_flores[$code_flore])) { |
$flores_texte[] = $correspondance_code_flores[$code_flore]; |
} |
} |
return $flores_texte; |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche/formateurs/Repartition.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 Repartition extends aControleur { |
private $conteneur = null; |
private $nomCourant = null; |
private $referentiel = 'bdtfx'; |
private $donnees = array(); |
private $tailleBloc = "190x178"; |
private $serviceChorodep = null; |
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->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'); |
//TODO: démochir ce code |
// Chargement des nn des synonymes pour obtenir une carte plus complète |
$noms = $this->conteneur->getApiNoms(); |
$syns = $noms->getSynonymes($this->nomCourant->getNnr()); |
$nns_syns = array_keys($syns['resultat']); |
$nns_syns[] = $this->nomCourant->getNnr(); |
$id = 'nn:'.implode(',', $nns_syns); |
$this->cartes->setId($id); |
$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; |
} |
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') { |
$syns = $this->conteneur->getApiNoms()->getSynonymes($this->nomCourant->getNnr()); |
$nns_syns = array_keys($syns['resultat']); |
$nns_syns[] = $this->nomCourant->getNnr(); |
$donnees['chorodep'] = Cartes::getCarteUrlPng(Config::get($this->referentiel.'.baseRepartition'), |
'nn:'.implode(',', $nns_syns), |
'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'); |
//TODO: démochir ce code |
// Chargement des nn des synonymes pour obtenir une carte plus complète |
$noms = $this->conteneur->getApiNoms(); |
$syns = $noms->getSynonymes($this->nomCourant->getNnr()); |
$nns_syns = array_keys($syns['resultat']); |
$nns_syns[] = $this->nomCourant->getNnr(); |
$id = 'nn:'.implode(',', $nns_syns); |
$this->cartes->setId($id); |
$url = $this->cartes->getUrlPng(); |
} |
return $url; |
} |
private function getMoissonnageMiniature() { |
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage'); |
$url = null; |
if ($projetRepartition != "") { |
$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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche/formateurs/Synthese.php |
---|
New file |
0,0 → 1,64 |
<?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(); |
$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); |
$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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche/formateurs/Description.php |
---|
New file |
0,0 → 1,263 |
<?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); |
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']) ? $informations['type_bio'] : ''; |
$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.nn:'.$this->nomCourant->getNnr()); |
$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']); |
} |
} |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/popup_contact/PopupContact.php |
---|
New file |
0,0 → 1,105 |
<?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'); |
$imageInfos = $this->imagesApi->setApi(Eflore::API_DEL)->getInfosImageParIdImage($this->id_image); // prêt à passer à API_DEL |
$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)); |
} |
} |
?> |
/tags/v5.2-20131127/modules/popup_contact/presentations/styles/identification.css |
---|
New file |
0,0 → 1,6 |
@CHARSET "UTF-8"; |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Balises */ |
input[type="checkbox"]{ |
margin:2px 5px; |
} |
/tags/v5.2-20131127/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>'); |
} |
/tags/v5.2-20131127/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, ''); |
} |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/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)); |
} |
} |
?> |
/tags/v5.2-20131127/modules/fiche_metadonnees/FicheMetadonnees.php |
---|
New file |
0,0 → 1,119 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe mère du module fiche metadonnées. |
* |
* @category PHP 5.2 |
* @package eflore-consultation |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Delphine CAUQUIL <delphine@tela-botanica.org> |
* @copyright 2011 Tela-Botanica |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2 |
* @version $Id$ |
*/ |
class FicheMetadonnees extends aControleur { |
private $projet = ''; |
private $serviceMetaDonnees; |
public function __construct($metadonnees = null) { |
$this->capturerParametres(); |
$this->serviceMetaDonnees = (is_null($this->serviceMetaDonnees)) ? new MetaDonnees($this->projet) : $metadonnees; |
} |
public function executerActionParDefaut() { |
$this->executerAffichageMetaDonnees(); |
} |
public function chargerMetadonneesHtml() { |
$meta = $this->serviceMetaDonnees->getMetaDonnees(); |
$meta_resume = $this->formaterResumeMetadonnees($meta[0]); |
$donnees['i18n'] = I18n::get('Metadonnees'); |
foreach ($meta as $index => $metadonnees) { |
$meta[$index] = $this->formaterClesMetadonnees($metadonnees); |
} |
$donnees['metadonnees'] = $meta; |
$donnees['metadonnees_resume'] = $meta_resume; |
$html = $this->getVue(dirname(__FILE__).'/squelettes/metadonnees', $donnees); |
return $html; |
} |
private function formaterResumeMetadonnees($meta) { |
return array('auteurs' => $this->formaterAuteurs($meta), |
'url' => $this->formaterUrl($meta), |
'description' => $meta['description'], |
'citation' => $meta['citation'], |
'titre' => $meta['titre'], |
'date' => strftime("%d/%m/%Y", strtotime($meta['date_creation'])) |
); |
} |
private function formaterAuteurs($meta) { |
$contacts = array(); |
$noms = array(); |
if(isset($meta['createurs.details'])) { |
foreach($meta['createurs.details'] as $createur_detail) { |
$auteur_nom_fmt = isset($createur_detail["p.nom"]) ? $createur_detail["p.nom"] : ""; |
$auteur_prenom_fmt = isset($createur_detail["p.prenom"]) ? $createur_detail["p.prenom"] : ""; |
$structure_fmt = isset($createur_detail["o.nom"]) ? $createur_detail["o.nom"] : ""; |
$auteur_contact = isset($createur_detail["p.courriel"]) ? $createur_detail["p.courriel"] : ""; |
if($auteur_prenom_fmt != "" || $auteur_nom_fmt != "") { |
$nom_prenom_structure_fmt = $auteur_prenom_fmt.' '.$auteur_nom_fmt; |
if($structure_fmt != "") { |
$nom_prenom_structure_fmt .= " (".$structure_fmt.")"; |
} |
$noms[] = $nom_prenom_structure_fmt; |
} |
if($auteur_contact != "") { |
$contacts[] = $auteur_contact; |
} |
} |
} |
$createurs = array('noms' => implode(", ", $noms), 'contacts' => implode(", ", $contacts)); |
return $createurs; |
} |
private function formaterUrl($meta) { |
return $meta['url_projet']; |
} |
public function executerAffichageMetaDonnees($donnees) { |
header('Content-type: text/html; charset=UTF-8'); |
$html = $this->chargerMetadonneesHtml(); |
echo $html; |
exit; |
} |
private function capturerParametres() { |
if (isset($_GET['projet'])) { |
$this->projet = $_GET['projet']; |
} |
} |
private function formaterClesMetadonnees($metadonnees) { |
$meta_fmt = array(); |
foreach ($metadonnees as $cle => $metadonnee) { |
$cle_fmt = str_replace('.', '_', $cle); |
if(is_array($metadonnee)) { |
$metadonnee = $this->formaterClesMetadonnees($metadonnee); |
} elseif($this->estUnLien($metadonnee)) { |
$metadonnee = $this->formaterLienMetadonnee($metadonnee); |
} |
$meta_fmt[$cle_fmt] = $metadonnee; |
} |
return $meta_fmt; |
} |
private function estUnLien($valeur) { |
// le test du pauvre, mais ça suffit ici |
// car nous controlons le format des métadonnées |
return strpos($valeur, "http://") !== false; |
} |
private function formaterLienMetadonnee($lien) { |
return '<a href="'.$lien.'" target="_blank">'.$lien.'</a>'; |
} |
} |
?> |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |
/tags/v5.2-20131127/modules/fiche_metadonnees/squelettes/metadonnees.tpl.html |
---|
New file |
0,0 → 1,85 |
<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 /> |
<span class="intitule_metadonnee">Mise à jour le</span> <?= $metadonnees_resume['date']; ?> |
<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> |
/tags/v5.2-20131127/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; ?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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 --> |
/tags/v5.2-20131127/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('&', '&', $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); |
} |
} |
?> |
/tags/v5.2-20131127/modules/resultat/Resultat.php |
---|
New file |
0,0 → 1,206 |
<?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']); |
} |
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(); |
} |
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->obtenirUrlResultatAlphab(); |
$donnees['urls']['retenu'] = $this->urls->obtenirUrlResultatRetenu(); |
$donnees['urls']['determination'] = $this->urls->obtenirUrlResultatDetermination(); |
$donnees['urls']['decompo'] = $this->urls->obtenirUrlResultatDecompo(); |
} |
$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']; |
} |
private function chargerNomsFormates() { |
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt mise en forme des noms"); |
$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"); |
} |
} |
?> |
/tags/v5.2-20131127/modules/resultat/squelettes/determination_verna.tpl.html |
---|
New file |
0,0 → 1,87 |
<?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="http://www.tela-botanica.org/page:cel" |
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> |
/tags/v5.2-20131127/modules/resultat/squelettes/determination.tpl.html |
---|
New file |
0,0 → 1,94 |
<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['nomSciRetenu']?></strong> |
</a> |
</div> |
<?php if (isset($repartition)) : ?> |
<?php if (isset($repartition['urls'][$nnTaxon]) ) : ?> |
<img class="illustration_resultat_choro" src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="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="Image provenant du CEL" style="width:100px;height:100px;display:block;float:right;"/> |
<?php else : ?> |
<p class="absent">Pas de photo<br /> |
<a href="<?=$urlWidget?>" |
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="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> |
/tags/v5.2-20131127/modules/resultat/squelettes/resultat.tpl.html |
---|
New file |
0,0 → 1,3 |
<?=$ongletsHtml?> |
<p style="float:right;"><?=$nbreTaxons?> noms trouvés.</p> |
<?=$nomsHtml?> |
/tags/v5.2-20131127/modules/resultat/squelettes/liste_noms_verna.tpl.html |
---|
New file |
0,0 → 1,18 |
<? 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; ?> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/modules/resultat/squelettes/decomposition.tpl.html |
---|
New file |
0,0 → 1,66 |
<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)?>&output_format=normal&query_type=by_query&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&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&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&QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&Restriction=NybRecordType+%3D+%27Specimen%27&StartAt=1&any=SummaryData%7CAdmWebMetadata&QueryOption=any&Submit=Search&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)?>&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=&projet%5B%5D=FSA&projet%5B%5D=FTA&projet%5B%5D=FNA&projet%5B%5D=BDM&langue=en&pbRecherche=Rechercher&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> |
/tags/v5.2-20131127/modules/resultat/squelettes/liste_noms.tpl.html |
---|
New file |
0,0 → 1,17 |
<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> |
/tags/v5.2-20131127/modules/resultat/ParametresResultats.php |
---|
New file |
0,0 → 1,9 |
<?php |
class ParametresResultats { |
public $typeResultat = 'determination'; |
public $typeNom = ''; |
public $masqueRecherche = ''; |
public $reftaxCourant = 'bdtfx'; |
public $projetImg = 'cel'; |
} |
?> |
/tags/v5.2-20131127/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php |
---|
New file |
0,0 → 1,274 |
<?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->obtenirUrlsDessins(); |
$this->obtenirUrlsPhotos(); |
$this->chargerRepartition(); |
$this->extraireInfosNomsPourTplDetermination(); |
$this->infosPourTpl['urlWidget'] = Config::get('base_url_widget')."?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['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 extraireNumerosNomSynonymes() { |
$numNomsASynonyme = array(); |
foreach ($this->noms as $id => $nom) { |
// certains taxons requêtés via /bdtfx/noms?masque= n'ont pas de num_tax ni de num_nom_retenu |
if(!isset($nom['nom_retenu.id'])) continue; |
$num_nom_retenu = $nom['nom_retenu.id']; |
if(!isset($numNomsASynonyme[$num_nom_retenu])) { |
$numNomsASynonyme[$num_nom_retenu] = array(); |
} |
$numNomsASynonyme[$num_nom_retenu][] = $id; |
if($num_nom_retenu != $id) { |
$numNomsASynonyme[$id] = $numNomsASynonyme[$num_nom_retenu]; |
} |
} |
return $numNomsASynonyme; |
} |
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() { |
if (Config::get(Registre::get('parametres.referentiel').'.baseRepartition') != "") { |
$conteneur = new Conteneur(); |
$cartesWs = $conteneur->getApiCartes(); |
$cartesWs->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition')); |
$cartesWs->setLargeur('108x101'); |
$urls = array(); |
$numsNomsASynonymes = $this->extraireNumerosNomSynonymes(); |
foreach ($this->noms as $id => $nom) { |
if (array_key_exists('nom_retenu.id', $nom)) { |
$id = $nom['nom_retenu.id']; |
$idsNoms = $numsNomsASynonymes[$id]; |
$cartesWs->setId("nn:".implode(',',$idsNoms).""); |
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($cle,$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]['nomSciRetenu'] = $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; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php |
---|
New file |
0,0 → 1,228 |
<?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(); |
} |
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; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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(); |
} |
?> |
/tags/v5.2-20131127/modules/resultat/formateurs/ResultatFormateurFabrique.php |
---|
New file |
0,0 → 1,13 |
<?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); |
throw new Exception("La classe '$Classe' est introuvable."); |
} |
} |
?> |
/tags/v5.2-20131127/modules/mobile/sources/Texte.php |
---|
New file |
0,0 → 1,108 |
<?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)); |
$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->donnees['titre'] = $this->donnees['corps'][0]; |
if (strpos($this->format, "html") != false) { |
$this->obtenirTitreHtml(); |
} else { |
$this->obtenirTitrePlain(); |
} |
} |
return $this->donnees; |
} |
//formater pour AppUrls ? |
public function obtenirUrlWikini() { |
$titre = urlencode("Fiche simplifiée Smart'flore"); |
$url_wiki = "http://www.tela-botanica.org/wikini/eFloreRedaction/api/rest/0.5/pages/SmartFlore" |
.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]; |
} |
} |
?> |
/tags/v5.2-20131127/modules/mobile/sources/Floraison.php |
---|
New file |
0,0 → 1,196 |
<?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() { |
$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']); |
} |
} |
} |
} |
?> |
/tags/v5.2-20131127/modules/mobile/sources/Illustrations.php |
---|
New file |
0,0 → 1,114 |
<?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'] = " "; |
} |
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); |
$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'] = " "; |
} |
} |
return $img; |
} |
} |
?> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/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 $cartes; |
public function __construct(Conteneur $conteneur) { |
$this->conteneur = $conteneur; |
$this->nomCourant = $this->conteneur->getNomCourant(); |
$this->cartes = $this->conteneur->getApiCartes(); |
} |
public function getDonnees() { |
$donnees['chorodep'] = $this->getChorodepMiniature(); |
return $donnees; |
} |
private function getChorodepMiniature() { |
$this->cartes->setProjet('chorodep'); |
$this->cartes->setLargeur('570x534'); |
//TODO: démochir ce code |
// Chargement des nn des synonymes pour obtenir une carte plus complète |
$noms = $this->conteneur->getApiNoms(); |
$syns = $noms->getSynonymes($this->nomCourant->getNnr()); |
$nns_syns = array_keys($syns['resultat']); |
$nns_syns[] = $this->nomCourant->getNnr(); |
$id = 'nn:'.implode(',', $nns_syns); |
$this->cartes->setId($id); |
return $this->cartes->getUrlDataSvg(); |
} |
} |
?> |
/tags/v5.2-20131127/modules/mobile/Mobile.php |
---|
New file |
0,0 → 1,108 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe mère du module Mobile. |
* |
* @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 Mobile extends aControleur { |
private $theme = 'pyracantha'; |
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'; |
$this->theme = isset($_GET['theme']) ? $_GET['theme'] : $this->theme; |
$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(){ |
$niveau = Registre::get('parametres.niveau'); |
$squelette = "theme_{$this->theme}_niveau{$niveau}"; |
$donnees = $this->parametres; |
$donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci_html').' '.$this->nom_retenu->get('auteur'); |
$donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180'); |
$donnees = array_merge($this->obtenirDonnees(), $donnees); |
$donnees['css'] = $this->obtenirLienCss(); |
$donnees['url_absolue'] = "http://".$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI']; |
$donnees['contenu_onglet'] = $this->getVue($squelette, $donnees); |
$donnees['lien'] = $this->url->obtenirUrlMobile($this->parametres['num_nom']); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche', $donnees), true); |
//print_r($donnees); |
} |
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', 'repartition', 'texte', 'floraison', 'nomsCommuns'); |
foreach ($sources as $source) { |
$nom_classe = ucfirst($source); |
$classe = new $nom_classe($this->conteneur); |
$donnees[$source] = $classe->getDonnees(); |
} |
return $donnees; |
} |
private function obtenirLienCss() { |
$theme = $this->theme; |
if (strcmp($this->theme, 'pyracantha') >= 0) { |
$theme = 'pyracantha_blanc'; |
} |
$lien = "modules/mobile/presentations/css/$theme.css"; |
return $lien; |
} |
} |
?> |
/tags/v5.2-20131127/modules/mobile/presentations/js/mobile.js |
---|
New file |
0,0 → 1,165 |
$(document).ready(function() { |
// Popover |
$('.btn-pop').popover(); |
// CSS switcher |
$('.toggle-button').click(function(e) { |
$('link#custom-css').attr('href', $(this).attr('CssUrl')); |
return false; |
}); |
// Slider images : photoswipe |
if (document.getElementById('galerie_carte')) { |
var psc = $('#galerie_carte a').photoSwipe({ |
enableMouseWheel: false , |
enableKeyboard: false, |
preventSlideshow: true |
}); |
} |
if (document.getElementById('galerie_images')) { |
var psi = $('#galerie_images a').photoSwipe({ |
enableMouseWheel: false , |
enableKeyboard: false , |
captionAndToolbarAutoHideDelay: 0 |
}); |
} |
// Slider images : bootstrap |
if (document.getElementById('slider-pictures')) { |
$('#slider-pictures').hide(); |
$('#slider-pictures').swiperight(function() { |
$('#slider-pictures').carousel('prev'); |
}); |
$('#slider-pictures').swipeleft(function() { |
$('#slider-pictures').carousel('next'); |
}); |
} |
}); |
/*----------------------------------------------------------------------------------------------------------*/ |
// POPOVER |
var nbrPopup = 0, |
popupOuverte = false; |
function gestionPopover() { |
if (popupOuverte && nbrPopup != 0) { |
$('.btn-pop').popover('hide'); |
popupOuverte = false; |
} |
nbrPopup++; |
} |
function resetPopover() { |
nbrPopup = 0; |
popupOuverte = true; |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
// SLIDER BOOTSTRAP |
function gestionSlider() { |
if ($('#slider-pictures').is(':visible')) { |
$('#gstn-img').show(); |
$('#slider-pictures').hide(); |
} else { |
$('#gstn-img').hide(); |
$('#slider-pictures').show(); |
} |
} |
/*----------------------------------------------------------------------------------------------------------*/ |
// CANVAS FLORAISON, FRUCTIFICATION |
var moisAbbr = new Array('J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D', ''), |
intervalle = false; |
function dessinCanvas(canvas, color, valeur) { |
var ctx = canvas.getContext('2d'), |
i = 0, |
arr = getTableauMois(valeur), |
index0 = arr[0], |
index1 = -1, |
size = canvas.width; |
if (intervalle) { |
index1 = arr[arr.length - 1]; |
} |
for (var abscisse = 10; abscisse < size; abscisse += (size/13)) { |
ctx.beginPath(); |
ctx.moveTo(abscisse, 0); |
ctx.lineTo(abscisse, 55); |
ctx.stroke(); |
if (in_array(i, arr)) { |
if (i == index0 && index1 != -1) { |
var linearGradient = ctx.createLinearGradient(abscisse, 10, abscisse+30, 10); |
linearGradient.addColorStop(0, "#fff"); |
linearGradient.addColorStop(1, color); |
ctx.beginPath(); |
ctx.fillStyle = linearGradient; |
ctx.moveTo(abscisse, 25); |
ctx.lineTo(abscisse+(size/13), 25); |
ctx.lineTo(abscisse+(size/13), 10); |
ctx.lineTo(abscisse, 25); |
ctx.fill(); |
} else { |
if (i == index1) { |
var linearGradient = ctx.createLinearGradient(abscisse, 10, abscisse+25, 10); |
linearGradient.addColorStop(0, color); |
linearGradient.addColorStop(1, "#fff"); |
ctx.beginPath(); |
ctx.fillStyle = linearGradient; |
ctx.moveTo(abscisse, 10); |
ctx.lineTo(abscisse, 25); |
ctx.lineTo(abscisse+(size/13), 25); |
ctx.lineTo(abscisse, 10); |
ctx.fill(); |
} else { |
ctx.fillStyle = color; |
ctx.fillRect(abscisse, 10, (size/13), 15); |
} |
} |
} |
ctx.font = '20px Georgia'; |
ctx.fillStyle = '#000'; |
ctx.fillText(moisAbbr[i++], abscisse + 5, 50); |
} |
} |
function getTableauMois(elt) { |
var arr = new Array(), |
temp = elt.split('-'); |
if (typeof temp[1] === 'undefined') { |
arr.push(elt); |
} else { |
intervalle = true; |
temp[0] = parseInt(temp[0]); |
temp[1] = parseInt(temp[1]); |
if (temp[0] < temp[1]) { |
for (var c = temp[0]; c <= temp[1]; c++) { |
arr.push(c); |
} |
} else { |
for (var c = temp[0]; c < 12; c++) { |
arr.push(c); |
} |
for (var c = 0; c <= temp[1]; c++) { |
arr.push(c); |
} |
} |
} |
return arr; |
} |
function in_array(needle, haystack) { |
var inArray = 0; |
for (var i in haystack) { |
if (haystack[i] == needle) { |
inArray++; |
} |
} |
return (inArray != 0); |
} |
/tags/v5.2-20131127/modules/mobile/presentations/icones/altitude.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/modules/mobile/presentations/icones/altitude.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/modules/mobile/presentations/icones/zoom.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/modules/mobile/presentations/icones/zoom.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/modules/mobile/presentations/logos/tela.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/modules/mobile/presentations/logos/tela.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/modules/mobile/presentations/logos/tela_transparent.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
/tags/v5.2-20131127/modules/mobile/presentations/logos/tela_transparent.png |
---|
New file |
Property changes: |
Added: svn:mime-type |
+image/png |
\ No newline at end of property |
/tags/v5.2-20131127/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; |
} |
/tags/v5.2-20131127/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 |
/tags/v5.2-20131127/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 |
/tags/v5.2-20131127/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; |
} |
/tags/v5.2-20131127/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; |
} |
/tags/v5.2-20131127/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; |
} |
/tags/v5.2-20131127/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 |
/tags/v5.2-20131127/modules/mobile/presentations/css/gentiana.css |
---|
New file |
0,0 → 1,102 |
.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; } |
.couleur1-bg { background: #ed7826; } |
.couleur2-bg { background: #88ab1c; } |
.bordered { border: 1px solid #256226; } |
.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 { |
background: #88ab1c; |
color: white; |
} |
header #tela { background: url("../logos/tela_transparent.png") no-repeat 2px 6px; } |
header .titre { |
font-style: italic; |
font-size: 130%; |
font-weight: bold; |
text-shadow: 0pt 1px 1px #ed7826; |
} |
.gradient-bas { |
background-image: linear-gradient(top, '' 0%, '' 100%); |
background-image: -o-linear-gradient(top, '' 0%, '' 100%); |
background-image: -moz-linear-gradient(top, '' 0%, '' 100%); |
background-image: -webkit-linear-gradient(top, '' 0%, '' 100%); |
background-image: -ms-linear-gradient(top, '' 0%, '' 100%); |
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #88ab1c), color-stop(1, white)); |
height: 16px; |
display: block; |
} |
footer { display: none; } |
.sci { font-style: italic; } |
#principal { |
margin-bottom: -1em; |
padding-left: 0.5em; |
} |
#principal a:hover { text-decoration: none; } |
#principal h4 { |
font-size: 17px; |
color: #ed7826; |
text-shadow: 2px 1px 1px white; |
} |
#canvas_fleur, #canvas_fruit { width: 100%; } |
#floraison_value, #fructification_value { display: none; } |
.wrapper { |
width: 120pp; |
height: 120px; |
margin-left: auto; |
margin-right: auto; |
overflow: hidden; |
} |
.wrapper img { |
height: 120px; |
width: auto; |
} |
.wrapper_demi { height: 59px; } |
.wrapper ul { margin: 0pt; } |
.wrapper_carte { |
margin-left: auto; |
margin-right: auto; |
} |
.wrapper_carte ul { margin: 0pt; } |
.wrapper_carte #galerie_carte img { border: 1px solid #256226; } |
#galerie_carte { list-style-type: none; } |
.bas-de-page { |
margin-top: 1em; |
margin-bottom: 1em; |
} |
.en-savoir-plus { |
margin-left: 0.2em; |
float: left; |
background: #88ab1c; |
color: white; |
text-shadow: 0pt 0pt 0pt black; |
} |
.en-savoir-plus:hover { text-decoration: none; } |
.en-savoir-plus:visited { text-decoration: none; } |
.haut-de-page { |
margin-right: 0.2em; |
float: right; |
background: black; |
color: white; |
} |
.haut-de-page:hover { text-decoration: none; } |
.haut-de-page:visited { text-decoration: none; } |
/tags/v5.2-20131127/modules/mobile/presentations/css/pyracantha_blanc.css |
---|
New file |
0,0 → 1,179 |
.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; } |
.small-caps { font-variant: small-caps; } |
.btn-large { |
padding: 10px; |
font-size: 17px; |
} |
.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; |
} |
footer a { color: white; } |
footer 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 { background: #88ab1c; } |
#div-infos-latin { |
margin-left: auto; |
margin-right: auto; |
} |
#div-infos-latin .btn { |
width: 99%; |
padding-left: 0pt; |
padding-right: 0pt; |
box-shadow: 0pt 2px 3px black; |
} |
#div-infos-latin a { font-size: 16px; } |
#div-infos-famille { |
margin-left: auto; |
margin-right: auto; |
} |
#div-infos-famille .btn { |
width: 99%; |
padding-left: 0pt; |
padding-right: 0pt; |
box-shadow: 0pt 2px 3px black; |
} |
#div-infos-famille a { font-size: 16px; } |
#div-infos-famille { margin-top: -1em; } |
#div-illustrations { |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
background: white; |
margin-top: -1em; |
padding-top: 20px; |
padding-bottom: 20px; |
} |
#galerie_carte { list-style-type: none; } |
#slider-pictures { |
max-width: 320px; |
margin-left: auto; |
margin-right: auto; |
} |
#slider-pictures .carousel { margin-bottom: 0pt; } |
#slider-pictures .carousel-control { background: none; } |
#slider-pictures .carousel-inner > .item > img { |
width: 320px; |
max-height: 310px; |
} |
#slider-pictures .carousel-indicators li { background: #256226; } |
#slider-pictures .carousel-indicators .active { background: #ed7826; } |
#slider-pictures .carousel-caption { |
padding: 10px; |
position: static; |
} |
#slider-pictures .carousel-caption h4 { font-size: 100%; } |
#slider-pictures .carousel-caption p { font-size: 90%; } |
#slider-pictures img { |
margin-left: auto; |
margin-right: auto; |
} |
#gstn-img { |
max-height: 120px; |
margin: 0.5em 0pt 1em 0pt; |
display: inline-block; |
} |
#gstn-img img { |
border: #eaeaea 2px solid; |
width: 100px; |
} |
#gstn-img .zoom { |
margin-top: 40px; |
width: 20px; |
border: none; |
} |
.resume { |
text-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; } |
.couleur1-bg, .couleur2-bg, body { background: white; } |
header { background: #88ab1c; } |
.tela img { |
width: 60px; |
max-width: 60px; |
} |
.titre { |
color: white; |
text-shadow: 0pt 1px 1px #ed7826; |
} |
.infos .bg { |
padding: 0.2em; |
border-radius: 0pt 0pt 1em 1em; |
} |
.infos .btn { |
padding: 0pt; |
border-radius: 1em 1em 0pt 0pt; |
} |
.infos .collapse { width: 100%; } |
.infos h4 { color: #ed7826; } |
.infos .textes { |
padding: 0.5em 1em; |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
-webkit-overflow-scrolling: touch; |
} |
.infos .textes h4 { |
color: #256226; |
text-shadow: 2px 1px 1px #88ab1c; |
} |
.resume { color: black; } |
.gradient-bas { |
background-image: linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -o-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -moz-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -webkit-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -ms-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #88ab1c), color-stop(1, white)); |
} |
.en-savoir-plus { |
margin-left: 0.2em; |
float: left; |
color: white; |
background: #88ab1c; |
} |
.haut-de-page { |
margin-right: 0.2em; |
float: right; |
color: white; |
background: black; |
} |
/tags/v5.2-20131127/modules/mobile/presentations/css/pyracantha_vert.css |
---|
New file |
0,0 → 1,181 |
.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; } |
.small-caps { font-variant: small-caps; } |
.btn-large { |
padding: 10px; |
font-size: 17px; |
} |
.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; |
} |
footer a { color: white; } |
footer 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 { background: #88ab1c; } |
#div-infos-latin { |
margin-left: auto; |
margin-right: auto; |
} |
#div-infos-latin .btn { |
width: 99%; |
padding-left: 0pt; |
padding-right: 0pt; |
box-shadow: 0pt 2px 3px black; |
} |
#div-infos-latin a { font-size: 16px; } |
#div-infos-famille { |
margin-left: auto; |
margin-right: auto; |
} |
#div-infos-famille .btn { |
width: 99%; |
padding-left: 0pt; |
padding-right: 0pt; |
box-shadow: 0pt 2px 3px black; |
} |
#div-infos-famille a { font-size: 16px; } |
#div-infos-famille { margin-top: -1em; } |
#div-illustrations { |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
background: white; |
margin-top: -1em; |
padding-top: 20px; |
padding-bottom: 20px; |
} |
#galerie_carte { list-style-type: none; } |
#slider-pictures { |
max-width: 320px; |
margin-left: auto; |
margin-right: auto; |
} |
#slider-pictures .carousel { margin-bottom: 0pt; } |
#slider-pictures .carousel-control { background: none; } |
#slider-pictures .carousel-inner > .item > img { |
width: 320px; |
max-height: 310px; |
} |
#slider-pictures .carousel-indicators li { background: #256226; } |
#slider-pictures .carousel-indicators .active { background: #ed7826; } |
#slider-pictures .carousel-caption { |
padding: 10px; |
position: static; |
} |
#slider-pictures .carousel-caption h4 { font-size: 100%; } |
#slider-pictures .carousel-caption p { font-size: 90%; } |
#slider-pictures img { |
margin-left: auto; |
margin-right: auto; |
} |
#gstn-img { |
max-height: 120px; |
margin: 0.5em 0pt 1em 0pt; |
display: inline-block; |
} |
#gstn-img img { |
border: #eaeaea 2px solid; |
width: 100px; |
} |
#gstn-img .zoom { |
margin-top: 40px; |
width: 20px; |
border: none; |
} |
.resume { |
text-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; } |
.couleur1-bg { background: #9ac342; } |
.couleur2-bg { background: #88ab1c; } |
body { background: white; } |
header { background: #88ab1c; } |
.tela img { |
width: 60px; |
max-width: 60px; |
} |
.titre { |
color: white; |
text-shadow: 0pt 1px 1px #ed7826; |
} |
.infos .bg { |
padding: 0.2em; |
border-radius: 0pt 0pt 1em 1em; |
} |
.infos .btn { |
padding: 0pt; |
border-radius: 1em 1em 0pt 0pt; |
} |
.infos .collapse { width: 100%; } |
.infos .textes { |
padding: 0.5em 1em; |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
background: white; |
-webkit-overflow-scrolling: touch; |
} |
.infos .textes h4 { |
color: #256226; |
text-shadow: 2px 1px 1px #88ab1c; |
} |
.resume { color: black; } |
.gradient-bas { |
background-image: linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -o-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -moz-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -webkit-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -ms-linear-gradient(top, #88ab1c 0%, white 100%); |
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #88ab1c), color-stop(1, white)); |
} |
.en-savoir-plus { |
margin-left: 0.2em; |
float: left; |
color: white; |
background: #b04dff; |
} |
.haut-de-page { |
margin-right: 0.2em; |
float: right; |
color: white; |
background: black; |
} |
/tags/v5.2-20131127/modules/mobile/presentations/css/pyracantha_tela.css |
---|
New file |
0,0 → 1,187 |
.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; } |
.small-caps { font-variant: small-caps; } |
.btn-large { |
padding: 10px; |
font-size: 17px; |
} |
.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; |
} |
footer a { color: white; } |
footer 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 { background: white; } |
#div-infos-latin { |
margin-left: auto; |
margin-right: auto; |
} |
#div-infos-latin .btn { |
width: 99%; |
padding-left: 0pt; |
padding-right: 0pt; |
box-shadow: 0pt 2px 3px black; |
} |
#div-infos-latin a { font-size: 16px; } |
#div-infos-famille { |
margin-left: auto; |
margin-right: auto; |
} |
#div-infos-famille .btn { |
width: 99%; |
padding-left: 0pt; |
padding-right: 0pt; |
box-shadow: 0pt 2px 3px black; |
} |
#div-infos-famille a { font-size: 16px; } |
#div-infos-famille { margin-top: -1em; } |
#div-illustrations { |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
background: white; |
margin-top: -1em; |
padding-top: 20px; |
padding-bottom: 20px; |
} |
#galerie_carte { list-style-type: none; } |
#slider-pictures { |
max-width: 320px; |
margin-left: auto; |
margin-right: auto; |
} |
#slider-pictures .carousel { margin-bottom: 0pt; } |
#slider-pictures .carousel-control { background: none; } |
#slider-pictures .carousel-inner > .item > img { |
width: 320px; |
max-height: 310px; |
} |
#slider-pictures .carousel-indicators li { background: #256226; } |
#slider-pictures .carousel-indicators .active { background: #ed7826; } |
#slider-pictures .carousel-caption { |
padding: 10px; |
position: static; |
} |
#slider-pictures .carousel-caption h4 { font-size: 100%; } |
#slider-pictures .carousel-caption p { font-size: 90%; } |
#slider-pictures img { |
margin-left: auto; |
margin-right: auto; |
} |
#gstn-img { |
max-height: 120px; |
margin: 0.5em 0pt 1em 0pt; |
display: inline-block; |
} |
#gstn-img img { |
border: #eaeaea 2px solid; |
width: 100px; |
} |
#gstn-img .zoom { |
margin-top: 40px; |
width: 20px; |
border: none; |
} |
.resume { |
text-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; } |
.couleur1-bg { background: #ed7826; } |
.couleur2-bg { background: #88ab1c; } |
body { background: #256226; } |
header { background: white; } |
.tela img { |
width: 80px; |
max-width: 80px; |
} |
.titre { |
color: black; |
text-shadow: 0pt 1px 1px #ed7826; |
} |
.infos .bg { |
padding: 1em; |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
} |
.infos .btn { |
padding: 0pt; |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
} |
.infos .collapse { width: 100%; } |
.infos .textes { |
padding: 1em; |
border-radius: 2em; |
-moz-border-radius: 2em; |
-webkit-border-radius: 2em; |
max-height: 220px; |
overflow: auto; |
background: #f3b88f; |
-webkit-overflow-scrolling: touch; |
} |
.infos .textes h4 { |
color: #256226; |
text-shadow: 2px 1px 1px #88ab1c; |
} |
.resume { color: white; } |
.gradient-bas { |
background-image: linear-gradient(top, white 0%, #256226 100%); |
background-image: -o-linear-gradient(top, white 0%, #256226 100%); |
background-image: -moz-linear-gradient(top, white 0%, #256226 100%); |
background-image: -webkit-linear-gradient(top, white 0%, #256226 100%); |
background-image: -ms-linear-gradient(top, white 0%, #256226 100%); |
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, white), color-stop(1, #256226)); |
} |
.en-savoir-plus { |
margin-left: 0.2em; |
float: left; |
color: white; |
background: #b04dff; |
} |
.haut-de-page { |
margin-right: 0.2em; |
float: right; |
color: white; |
background: black; |
} |
/tags/v5.2-20131127/modules/mobile/squelettes/theme_pyracantha_niveau1.tpl.html |
---|
New file |
0,0 → 1,202 |
<? |
$txt_latin = "<div onclick='gestionPopover();'> |
Le nom latin est utilisé en sciences pour nommer un être vivant, |
ou un groupe d'êtres vivants. On l'appelle aussi nom scientifique ou encore |
nom savant, car il n'est pas employé couramment et parfois difficile à retenir. |
</div>"; |
$txt_famille = "<div onclick='gestionPopover();'> |
Une famille rassemble des êtres vivants proches, qui se ressemblent, malgré leurs |
différences. Les familles botaniques sont ainsi utilisées pour classer les végétaux et pour |
estimer les similitudes ou affinités qu'il peut y avoir entre différentes plantes. |
</div>"; |
$icones = array('icon-eye-open', 'icon-book', 'icon-certificate', 'icon-home', 'icon-flag'); |
$index_icones = 0; |
$txt_vide = "Aucune donnée disponible."; |
$nb_onglets = 0; |
?> |
<div onclick="gestionPopover();"> |
<header class="row-fluid"> |
<div class="padding-05em"> |
<div class="tela pull-left"> |
<a href="http://tela-botanica.org" rel="external" title="Retour à Tela-Botanica.org"> |
<img src="modules/mobile/presentations/logos/tela.png" alt="Logo Tela" /> |
</a> |
</div> |
<div class="text-center titre"> |
<? if (isset($texte['nom-commun'])) : ?> |
<?= $texte['nom-commun']; ?> |
<? elseif ($nomsCommuns[0]['nom_vernaculaire'] != '') : ?> |
<?= $nomsCommuns[0]['nom_vernaculaire'] ?> |
<? else : ?> |
<? if ($texte['titre'][0] != '') : ?> |
<?= $texte['titre'][0]; ?> |
<? else : ?> |
Aucun nom commun défini. |
<? endif; ?> |
<? endif; ?> |
</div> |
</div> |
</header> |
<div id="div-infos"> |
<div id="div-infos-latin" class="row-fluid"> |
<div class="align-center"> |
<a href="<?= $url_absolue ?>#div-infos-latin" class="btn btn-large btn-pop" |
data-content="<?= $txt_latin; ?>" data-html="true" |
data-placement="bottom" data-toggle="popover" |
data-original-title="<div onclick='gestionPopover();'>Pourquoi un nom latin ?</div>" |
onclick="resetPopover();"> |
<? if ($nom_retenu != '') : ?> |
<?= $nom_retenu; ?> |
<? else : ?> |
Aucun nom scientifique. |
<? endif; ?> |
</a> |
</div> |
</div> |
<div id="div-illustrations" class="row-fluid"> |
<? if (count($illustrations) != 0) : ?> |
<div class="align-center" onclick="gestionSlider();"> |
<a href="#btn-latin" class="" id="gstn-img"> |
<img src="<?= $illustrations[0]['src'] ?>" alt="Miniature" class="pull-left"> |
<img src="modules/mobile/presentations/icones/zoom.png" class="zoom pull-left"/> |
<img src="<?= $illustrations[1]['src'] ?>" alt="Miniature" class="pull-left"> |
</a> |
</div> |
<div id="slider-pictures" class="carousel slide margin-top-05em"> |
<button class="btn btn-large" onclick="gestionSlider();"> |
<i class="icon-remove pull-left"></i> |
</button> |
<ol class="carousel-indicators"> |
<? for($i = 0; $i < count($illustrations); $i++) : ?> |
<li data-target="#slider-pictures" data-slide-to="<?= $i ?>" class="<?= ($i == 0) ? 'active' : ''; ?>"></li> |
<? endfor; ?> |
</ol> |
<div class="carousel-inner"> |
<? for($i = 0; $i < count($illustrations); $i++) : ?> |
<div class="item <?= ($i == 0) ? ' active' : ''; ?>"> |
<img src="<?= $illustrations[$i]['src'] ?>" alt="Image_<?= $i ?>" > |
<div class="carousel-caption"> |
<h4><?= $illustrations[$i]['legende']['titre'] ?></h4> |
<p><?= $illustrations[$i]['legende']['texte'] ?></p> |
</div> |
</div> |
<? endfor; ?> |
</div> |
<a class="left carousel-control" href="#slider-pictures" data-slide="prev">‹</a> |
<a class="right carousel-control" href="#slider-pictures" data-slide="next">›</a> |
</div> |
<? endif; ?> |
</div> |
<div id="div-infos-famille" class="row-fluid"> |
<div class="align-center"> |
<a href="#div-infos-famille" class="btn btn-large btn-pop" data-content="<?= $txt_famille; ?>" |
data-placement="bottom" data-toggle="popover" data-html="true" |
data-original-title="<div onclick='gestionPopover();'>Pourquoi une famille de plante ?</div>" |
onclick="resetPopover();"> |
<? if ($famille != '') : ?> |
Famille des <span class="small-caps"><?= $famille; ?></span> |
<? else : ?> |
<span class="none">En savoir plus sur les familles de plante</span> |
<? endif; ?> |
</a> |
</div> |
</div> |
</div> |
<span class="gradient-bas"></span> |
<?= $floraison['coste']['texte']; ?> |
<div class="resume"> |
<? if (count($texte['corps']) > 1) : ?> |
<?= $texte['corps'][2]; ?> |
</div> |
<? for($index = 3; $index < count($texte['corps'])-1; $index+=2) : ?> |
<? if (isset($texte['corps'][$c+1])) : |
$nb_onglets++; |
$class = ($nb_onglets % 2 == 0) ? "couleur1-bg" : "couleur2-bg"; |
?> |
<div class="row-fluid infos"> |
<div class="btn btn-block <?= $class ?>" data-toggle="collapse" data-target="#c<?= $index ?>"> |
<h4 class="padding-left-1em"> |
<i class="<?= $icones[$index_icones++]; ?> pull-left"></i> |
<?= $texte['corps'][$index]; ?> |
</h4> |
</div> |
<div id="c<?= $index ?>" class="collapse"> |
<div class="bg <?= $class ?>"> |
<div class="textes"> |
<? if (stristr($texte['corps'][$index], 'cologie') != false || stristr($texte['corps'][$index], 'cologie') != false) : ?> |
<div class="span6 margin-right-05em"> |
Carte de répartition <br /> |
<ul id="galerie_carte" class="gallery style-none margin-center"> |
<li> |
<a href="<?= $repartition['chorodep'] ?>" rel="external"> |
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" /> |
</a> |
</li> |
</ul> |
</div> |
<div class=""> |
<?= $texte['corps'][$index+1]; ?> |
</div> |
<div class="clearfix"></div> |
<? else : ?> |
<?= $texte['corps'][$index+1]; ?> |
<? endif; ?> |
</div> <!-- Fin de la zone de texte --> |
</div> |
</div> <!-- Fin de la zone déroulante --> |
</div> <!-- Fin du bloc infos --> |
<? endif; ?> |
<? endfor; ?> |
<? else : ?> |
<? if (isset($repartition['chorodep'])) /* affichage de la chorologie quand même, en l'absence de fiche Smartflore */ : ?> |
<div class="row-fluid infos"> |
<div data-target="#c9" data-toggle="collapse" class="btn btn-block couleur1-bg"> |
<h4 class="padding-left-1em"> |
<i class="icon-home pull-left"></i> |
Écologie & habitat</h4> |
</div> |
<div class="in collapse" id="c9" style="height: auto;"> |
<div class="bg couleur1-bg"> |
<div class="textes"> |
<div class="span6 margin-right-05em"> Carte de répartition <br> |
<ul class="gallery style-none margin-center" id="galerie_carte"> |
<li> |
<a href="<?= $repartition['chorodep'] ?>" rel="external"> |
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" /> |
</a> |
</li> |
</ul> |
</div> |
<div class="clearfix"></div> |
</div><!-- Fin de la zone de texte --> |
</div> |
</div><!-- Fin de la zone déroulante --> |
</div> |
<? endif; ?> |
<? if ($floraison['coste']['description']['texte'] != '') : ?> |
<?= $floraison['coste']['description']['texte']; ?> |
<? else : ?> |
<? if (count($floraison['baseflor']) > 1) : ?> |
<? foreach ($floraison['baseflor'] as $index => $texte) : ?> |
<? if ($floraison['baseflor'][$index] != '') : ?> |
<?= $index.' : '.$texte; ?> <br /> |
<? endif; ?> |
<? endforeach; ?> |
<? else : ?> |
<?= $txt_vide; ?> |
<? endif; ?> |
<? endif; ?> |
</div> |
<? endif; ?> |
/tags/v5.2-20131127/modules/mobile/squelettes/fiche.tpl.html |
---|
New file |
0,0 → 1,61 |
<!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://www.tela-botanica.org/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"> |
<!-- CSS --> |
<link href="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/photoswipe.css" type="text/css" rel="stylesheet" /> |
<link href="http://www.tela-botanica.org/commun/bootstrap/2.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> |
<link href="<?= $css ?>" rel="stylesheet" type="text/css" id="custom-css" /> |
<!-- Javascript --> |
<script src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.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="http://www.tela-botanica.org/commun/bootstrap/2.3.1/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 class="container-fluid"> |
<div id="up"> |
<?= $contenu_onglet; ?> |
<div class="row-fluid bas-de-page"> |
<a href="<?= $permalien_num_nom; ?>" class="btn btn-large en-savoir-plus"> |
En savoir plus |
<i class="icon-share"></i> |
</a> |
<a href="#up" class="btn btn-large haut-de-page"> |
<i class="icon-chevron-up icon-white"></i> |
Haut de page |
</a> |
<div class="clearfix"></div> |
</div> |
</div> <!-- Fin du bloc 'Haut de Page' --> |
</body> |
</html> |
/tags/v5.2-20131127/modules/mobile/squelettes/theme_gentiana_niveau1.tpl.html |
---|
New file |
0,0 → 1,176 |
<? |
$txt_latin = "Le nom latin est utilisé en sciences pour nommer un être vivant, |
ou un groupe d'êtres vivants. On l'appelle aussi nom scientifique ou encore |
nom savant, car il n'est pas employé couramment et parfois difficile à |
retenir."; |
$txt_famille = "Une famille rassemble des êtres vivants proches, qui se ressemblent, malgré leurs |
différences. Les familles botaniques sont ainsi utilisées pour classer les végétaux et pour |
estimer les similitudes ou affinités qu'il peut y avoir entre différentes plantes."; |
$icones = array('icon-eye-open', 'icon-book', 'icon-certificate', 'icon-home', 'icon-flag'); |
$index_icones = 0; |
$nb_onglets = 0; |
?> |
<header class="row-fluid"> |
<div id="tela" class="padding-05em"> |
<div class="text-center titre"> |
<? if (isset($texte['nom-commun'])) : ?> |
<?= $texte['nom-commun']; ?> |
<? elseif ($nomsCommuns[0]['nom_vernaculaire'] != '') : ?> |
<?= $nomsCommuns[0]['nom_vernaculaire'] ?> |
<? else : ?> |
<? if ($texte['titre'][0] != '') : ?> |
<?= $texte['titre'][0]; ?> |
<? else : ?> |
Aucun nom commun défini. |
<? endif; ?> |
<? endif; ?> |
</div> |
<div class="align-center"> |
<? if ($nom_retenu != '') : ?> |
<?= $nom_retenu; ?> |
<? else : ?> |
Aucun nom scientifique. |
<? endif; ?> |
<? if ($famille != '') : ?> |
(<span class="small-caps"><?= $famille; ?>)</span> |
<? endif; ?> |
</div> |
</div> |
</header> |
<span class="gradient-bas"></span> |
<div id="" class="row-fluid"> |
<div class="span6"> |
<div class="wrapper"> |
<ul id="galerie_images" class="gallery"> |
<? if (count($illustrations) != 0) : ?> |
<? for($i = 0; $i < count($illustrations); $i++) : ?> |
<? if (trim($illustrations[$i]['legende']['texte']) != ' ') : ?> |
<? $alt = $illustrations[$i]['legende']['titre'].' ('.$illustrations[$i]['legende']['texte'].')'; ?> |
<? else : ?> |
<? $alt = $illustrations[$i]['legende']['titre']; ?> |
<? endif; ?> |
<li> |
<a href="<?= $illustrations[$i]['src'] ?>" rel="external"> |
<img src="<?= $illustrations[$i]['src'] ?>" alt="<?= $alt; ?>" /> |
</a> |
</li> |
<? endfor; ?> |
<? endif; ?> |
</ul> |
</div> |
</div> |
<div class="span6"> |
<div class="wrapper_carte"> |
<ul id="galerie_carte" class="gallery"> |
<li> |
<a href="<?= $repartition['chorodep'] ?>" rel="external"> |
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" /> |
</a> |
</li> |
</ul> |
</div> |
</div> |
</div> |
<? if ($floraison['floraison'] != -1) : ?> |
<div class="row-fluid margin-top-05em padding-left-01em"> |
<div class="span12 bordered"> |
<i class="margin-top-03em margin-left-03em icon-leaf pull-left"></i> |
<div class="margin-left-05em pull-left">Floraison</div> |
<canvas id="canvas_fleur" height="60"></canvas> |
<span id="floraison_value"><?= $floraison['floraison'] ?></span> |
</div> |
</div> |
<? endif; ?> |
<? if ($floraison['fructification'] != -1) : ?> |
<div class="row-fluid margin-top-05em padding-left-01em"> |
<div class="span12 bordered"> |
<i class="margin-top-03em margin-left-03em icon-asterisk pull-left"></i> |
<div class="margin-left-05em pull-left">Fructification</div> |
<canvas id="canvas_fruit" height="60"></canvas> |
<span id="fructification_value"><?= $floraison['fructification'] ?></span> |
</div> |
</div> |
<? endif; ?> |
<script type="text/javascript"> |
var fleur = document.getElementById('floraison_value'), |
fruit = document.getElementById('fructification_value'); |
if (fleur) { |
dessinCanvas(document.getElementById('canvas_fleur'), '#00F', fleur.innerHTML); |
} |
if (fruit) { |
dessinCanvas(document.getElementById('canvas_fruit'), '#F00', fruit.innerHTML); |
} |
</script> |
<div class="clearfix"></div> |
<div id="principal"> |
<? if (count($texte['corps']) > 1) : ?> |
<?= $texte['corps'][2]; ?> |
<div class="accordion" id="accordion2"> |
<? for($c = 3; $c < count($texte['corps'])-1; $c+=2) : ?> |
<div class="accordion-group"> |
<div class="accordion-heading"> |
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse_<?= $c; ?>"> |
<h4> |
<i class="<?= $icones[$index_icones++]; ?> margin-left-1em margin-top-03em"></i> |
<?= $texte['corps'][$c]; ?> |
</h4> |
</a> |
</div> |
<div id="collapse_<?= $c; ?>" class="accordion-body collapse"> |
<div class="accordion-inner"> |
<?= $texte['corps'][$c+1]; ?> |
</div> |
</div> |
</div> |
<? endfor; ?> |
</div> |
<? else : ?> |
<? if (isset($repartition['chorodep'])) /* affichage de la chorologie quand même, en l'absence de fiche Smartflore */ : ?> |
<div class="row-fluid infos"> |
<div data-target="#c9" data-toggle="collapse" class="btn btn-block couleur1-bg"> |
<h4 class="padding-left-1em"> |
<i class="icon-home pull-left"></i> |
Écologie & habitat</h4> |
</div> |
<div class="in collapse" id="c9" style="height: auto;"> |
<div class="bg couleur1-bg"> |
<div class="textes"> |
<div class="span6 margin-right-05em"> Carte de répartition <br> |
<ul class="gallery style-none margin-center" id="galerie_carte"> |
<li> |
<a href="<?= $repartition['chorodep'] ?>" rel="external"> |
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" /> |
</a> |
</li> |
</ul> |
</div> |
<div class="clearfix"></div> |
</div><!-- Fin de la zone de texte --> |
</div> |
</div><!-- Fin de la zone déroulante --> |
</div> |
<? endif; ?> |
<? if ($floraison['coste']['description']['texte'] != '') : ?> |
<?= $floraison['coste']['description']['texte']; ?> |
<? else : ?> |
<? if (count($floraison['baseflor']) > 1) : ?> |
<? foreach ($floraison['baseflor'] as $index => $texte) : ?> |
<? if ($floraison['baseflor'][$index] != '') : ?> |
<?= $index.' : '.$texte; ?> <br /> |
<? endif; ?> |
<? endforeach; ?> |
<? else : ?> |
<?= $txt_vide; ?> |
<? endif; ?> |
<? endif; ?> |
<? endif; ?> |
</div> |
/tags/v5.2-20131127/modules/mobile/squelettes/theme_gentiana2_niveau1.tpl.html |
---|
New file |
0,0 → 1,193 |
<? |
$txt_latin = "Le nom latin est utilisé en sciences pour nommer un être vivant, |
ou un groupe d'êtres vivants. On l'appelle aussi nom scientifique ou encore |
nom savant, car il n'est pas employé couramment et parfois difficile à |
retenir."; |
$txt_famille = "Une famille rassemble des êtres vivants proches, qui se ressemblent, malgré leurs |
différences. Les familles botaniques sont ainsi utilisées pour classer les végétaux et pour |
estimer les similitudes ou affinités qu'il peut y avoir entre différentes plantes."; |
$icones = array('icon-eye-open', 'icon-book', 'icon-certificate', 'icon-home', 'icon-flag'); |
$index_icones = 0; |
$nb_onglets = 0; |
?> |
<header class="row-fluid"> |
<div id="tela" class="padding-05em"> |
<div class="text-center titre"> |
<? if (isset($texte['nom-commun'])) : ?> |
<?= $texte['nom-commun']; ?> |
<? elseif ($nomsCommuns[0]['nom_vernaculaire'] != '') : ?> |
<?= $nomsCommuns[0]['nom_vernaculaire'] ?> |
<? else : ?> |
Aucun nom commun défini. |
<? endif; ?> |
</div> |
<div class="align-center"> |
<? if ($nom_retenu != '') : ?> |
<?= $nom_retenu; ?> |
<? else : ?> |
Aucun nom scientifique. |
<? endif; ?> |
<? if ($famille != '') : ?> |
(<span class="small-caps"><?= $famille; ?>)</span> |
<? endif; ?> |
</div> |
</div> |
</header> |
<span class="gradient-bas"></span> |
<div class="row-fluid"> |
<div class="span12"> |
<div class="row-fluid"> |
<div class="span5 margin-bottom-05em margin-center margin-right-05em"> |
<div class="row-fluid margin-top-05em padding-left-01em" id="icons"> |
<div class="span6"> |
<div class="wrapper_carte"> |
<ul id="galerie_carte" class="gallery"> |
<li> |
<a href="<?= $repartition['chorodep'] ?>" rel="external"> |
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" /> |
</a> |
</li> |
</ul> |
</div> |
</div> |
<div class="span6 bordered"> |
<div class="wrapper wrapper_demi"> |
<ul id="galerie_images" class="gallery"> |
<? if (count($illustrations) != 0) : ?> |
<? for($i = 0; $i < count($illustrations); $i++) : ?> |
<? if (trim($illustrations[$i]['legende']['texte']) != ' ') : ?> |
<? $alt = $illustrations[$i]['legende']['titre'].' ('.$illustrations[$i]['legende']['texte'].')'; ?> |
<? else : ?> |
<? $alt = $illustrations[$i]['legende']['titre']; ?> |
<? endif; ?> |
<li> |
<a href="<?= $illustrations[$i]['src'] ?>" rel="external"> |
<img src="<?= $illustrations[$i]['src'] ?>" alt="<?= $alt; ?>" /> |
</a> |
</li> |
<? endfor; ?> |
<? else: ?> |
Aucune image. |
<? endif; ?> |
</ul> |
</div> |
</div> |
</div> |
<? if ($floraison['floraison'] != -1) : ?> |
<div class="row-fluid margin-top-05em padding-left-01em"> |
<div class="span12 bordered"> |
<i class="margin-top-03em margin-left-03em icon-leaf pull-left"></i> |
<div class="margin-left-05em pull-left">Floraison</div> |
<canvas id="canvas_fleur" height="60"></canvas> |
<span id="floraison_value"><?= $floraison['floraison'] ?></span> |
</div> |
</div> |
<? endif; ?> |
<? if ($floraison['fructification'] != -1) : ?> |
<div class="row-fluid margin-top-05em padding-left-01em"> |
<div class="span12 bordered"> |
<i class="margin-top-03em margin-left-03em icon-asterisk pull-left"></i> |
<div class="margin-left-05em pull-left">Fructification</div> |
<canvas id="canvas_fruit" height="60"></canvas> |
<span id="fructification_value"><?= $floraison['fructification'] ?></span> |
</div> |
</div> |
<? endif; ?> |
</div> |
<script type="text/javascript"> |
var fleur = document.getElementById('floraison_value'), |
fruit = document.getElementById('fructification_value'); |
if (fleur) { |
dessinCanvas(document.getElementById('canvas_fleur'), '#00F', fleur.innerHTML); |
} |
if (fruit) { |
dessinCanvas(document.getElementById('canvas_fruit'), '#F00', fruit.innerHTML); |
} |
</script> |
<div id="principal"> |
<? if (count($texte['corps']) > 1) : ?> |
<?= $texte['corps'][2]; ?> |
<div class="clearfix"> |
<h4> |
<i class="<?= $icones[$index_icones++]; ?> margin-left-1em margin-top-03em"></i> |
<?= $texte['corps'][3]; ?> |
</h4> |
<?= $texte['corps'][4]; ?> |
</div> |
<div class="accordion" id="accordion2"> |
<? for($c = 3; $c < count($texte['corps'])-1; $c+=2) : ?> |
<? if ($c != 3) : ?> |
<div class="accordion-group"> |
<div class="accordion-heading"> |
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse_<?= $c; ?>"> |
<h4> |
<i class="<?= $icones[$index_icones++]; ?> margin-left-1em margin-top-03em"></i> |
<?= $texte['corps'][$c]; ?> |
</h4> |
</a> |
</div> |
<div id="collapse_<?= $c; ?>" class="accordion-body collapse"> |
<div class="accordion-inner"> |
<?= $texte['corps'][$c+1]; ?> |
</div> |
</div> |
</div> |
<? endif; ?> |
<? endfor; ?> |
</div> |
<? else : ?> |
<? if (isset($repartition['chorodep'])) /* affichage de la chorologie quand même, en l'absence de fiche Smartflore */ : ?> |
<div class="row-fluid infos"> |
<div data-target="#c9" data-toggle="collapse" class="btn btn-block couleur1-bg"> |
<h4 class="padding-left-1em"> |
<i class="icon-home pull-left"></i> |
Écologie & habitat</h4> |
</div> |
<div class="in collapse" id="c9" style="height: auto;"> |
<div class="bg couleur1-bg"> |
<div class="textes"> |
<div class="span6 margin-right-05em"> Carte de répartition <br> |
<ul class="gallery style-none margin-center" id="galerie_carte"> |
<li> |
<a href="<?= $repartition['chorodep'] ?>" rel="external"> |
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" /> |
</a> |
</li> |
</ul> |
</div> |
<div class="clearfix"></div> |
</div><!-- Fin de la zone de texte --> |
</div> |
</div><!-- Fin de la zone déroulante --> |
</div> |
<? endif; ?> |
<? if ($floraison['coste']['description']['texte'] != '') : ?> |
<?= $floraison['coste']['description']['texte']; ?> |
<? else : ?> |
<? if (count($floraison['baseflor']) > 1) : ?> |
<? foreach ($floraison['baseflor'] as $index => $texte) : ?> |
<? if ($floraison['baseflor'][$index] != '') : ?> |
<?= $index.' : '.$texte; ?> <br /> |
<? endif; ?> |
<? endforeach; ?> |
<? else : ?> |
<?= $txt_vide; ?> |
<? endif; ?> |
<? endif; ?> |
<? endif; ?> |
</div> |
</div> |
</div> <!-- span12 englobant --> |
</div> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/niveau/squelettes/niveau.tpl.html |
---|
New file |
0,0 → 1,69 |
<!-- DEBUT FORM_NIVEAU --> |
<script type="text/javascript"> |
function gestionBiblio() { |
$('.nom').each(function () { |
if ($(this).children('.plus').length == 0) { |
html = $(this).html(); |
posCrochetGauche = html.indexOf('['); |
if (posCrochetGauche > 0) { |
nom = html.substr(0, posCrochetGauche); |
biblio = html.substr(posCrochetGauche, html.length); |
$(this).html(nom); |
imagettePlus = document.createElement('div'); |
$(imagettePlus).addClass('imagettePlus'); |
$(this).prepend($(imagettePlus)); |
plus = document.createElement('span'); |
$(plus).addClass('plus'); |
$(plus).html(biblio); |
$(plus).hide(); |
$(this).click(function(e) { |
// test pour ne réagir que sur le clic sur le + ou - |
// TODO: fusionner ce bout de code en doublon avec synthese.js |
if($(e.target).hasClass("imagettePlus") || $(e.target).hasClass("imagetteMoins")) { |
if (!$(this).children('.plus').is(':visible')) { |
$(this).children('.imagettePlus').removeClass('imagettePlus').addClass('imagetteMoins'); |
$(this).children('.plus').css('display', 'inline'); |
} else { |
$(this).children('.imagetteMoins').removeClass('imagetteMoins').addClass('imagettePlus'); |
$(this).children('.plus').css('display', 'none'); |
} |
} |
}); |
$(this).append($(plus)); |
} |
} |
}); |
} |
$(document).ready(function() { |
$( "#radio" ).buttonset(); |
$('#eflore_niveau_submit').hide(); |
$(".zone-choix-niveau input").click(function() { |
$('#eflore_niveau_submit').click(); |
}); |
gestionBiblio(); |
}); |
</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 --> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/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> |
/tags/v5.2-20131127/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['idiotaxon']?> </li> |
</a> |
</ul> |
<?endforeach;?> |
<? else : ?> |
Pas de données. |
<? endif; ?> |
</div> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/recherche/Recherche.php |
---|
New file |
0,0 → 1,321 |
<?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); |
} |
} |
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; |
} |
} |
?> |
/tags/v5.2-20131127/modules/recherche/squelettes/recherche_accueil.tpl.html |
---|
New file |
0,0 → 1,13 |
<div id="bloc-recherche" class="importance1"> |
<h1><?=$i18n['titre-nom'];?></h1> |
<?=$form_niveau;?> |
<?=$form_nom;?> |
<!-- 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> |
/tags/v5.2-20131127/modules/pagination/squelettes/pagination.tpl.html |
---|
New file |
0,0 → 1,40 |
<?php if($nb_resultats > 0) {?> |
<?php if($nb_pages > 1) {?> |
Pages |
<?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"><<</a> |
<?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> |
<?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">>></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> |
<?php } ?> |
<span class="nb_resultats"> Résultats <?= $intervalle_min.' - '.$intervalle_max ?> sur <?= $nb_resultats; ?></span> |
<?php } ?> |
<hr style="clear:both;visibility:hidden;" /> |
/tags/v5.2-20131127/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; |
} |
} |
?> |
/tags/v5.2-20131127/.htaccess |
---|
New file |
0,0 → 1,0 |
AddDefaultCharset UTF-8 |
/tags/v5.2-20131127/bibliotheque/QrCode.php |
---|
New file |
0,0 → 1,81 |
<?php |
/** |
* BarcodeQR - Code QR Barcode Image Generator (PNG) |
* |
* @package BarcodeQR |
* @category BarcodeQR |
* @name BarcodeQR |
* @version 1.0 |
* @author Shay Anderson 05.11 |
* @link http://www.shayanderson.com/php/php-qr-code-generator-class.htm |
* @license http://www.gnu.org/licenses/gpl.html GPL License |
* This is free software and is distributed WITHOUT ANY WARRANTY |
*/ |
final class QrCode { |
private $API_CHART_URL = ''; |
private $taille = '150'; |
private $contenu; |
private $urlQrCodeTpl; |
private $dossierQrCode; |
public function __construct($conteneur) { |
$this->API_CHART_URL = $conteneur->getParametre('urlApiChart'); |
$this->dossierQrCode = $conteneur->getParametre('dossierQrCode'); |
$this->urlQrCodeTpl = $conteneur->getParametre('urlQrCodeTpl'); |
} |
/** |
* URL code |
* |
* @param string $url |
*/ |
public function setUrl($url = '') { |
$this->contenu = $url; |
} |
/** |
* Taille du QRcode en pixel. Cela sera forcément un carré. |
* |
* @param string $taille |
*/ |
public function setTaille($taille) { |
$this->taille = $taille; |
} |
/** |
* Generate QR code image |
* |
* @param string $filename |
* @return bool |
*/ |
public function dessiner($idQrCode = null) { |
if (!preg_match('/\.png$/i', $idQrCode)) { |
$idQrCode .= '.png'; |
} |
$cheminImg = $this->dossierQrCode.$idQrCode; |
if (file_exists($cheminImg) == false) { |
$ch = curl_init(); |
// For Debugging |
//curl_setopt($ch, CURLOPT_VERBOSE, TRUE); |
//curl_setopt($ch, CURLOPT_STDERR, $f = fopen("$cheminImg.txt", "w+")); |
curl_setopt($ch, CURLOPT_URL, $this->API_CHART_URL); |
curl_setopt($ch, CURLOPT_POST, true); |
curl_setopt($ch, CURLOPT_POSTFIELDS, "chs={$this->taille}x{$this->taille}&cht=qr&chl=".urlencode($this->contenu)); |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
curl_setopt($ch, CURLOPT_HEADER, false); |
curl_setopt($ch, CURLOPT_TIMEOUT, 30); |
$img = curl_exec($ch); |
curl_close($ch); |
// For Debugging |
//fclose($f); |
file_put_contents($cheminImg, $img); |
} |
$urlQrCode = sprintf($this->urlQrCodeTpl, $idQrCode); |
return $urlQrCode; |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/ChaineManipulateur.php |
---|
New file |
0,0 → 1,76 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe fournissant des méthodes statiques de manipulation des chaînes de caractères (String). |
* |
* @category PHP 5.2 |
* @package eFlore/Bibliotheque |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org) |
* @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 ChaineManipulateur { |
private $encodage = 'UTF-8'; |
private $caracteresAccentues = array( |
'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', |
'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', |
'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', |
'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'Ā', |
'ā', 'Ă', 'ă', 'Ą', 'ą', 'Ć', 'ć', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 'Č', 'č', 'Ď', 'ď', |
'Đ', 'đ', 'Ē', 'ē', 'Ĕ', 'ĕ', 'Ė', 'ė', 'Ę', 'ę', 'Ě', 'ě', 'Ĝ', 'ĝ', 'Ğ', |
'ğ', 'Ġ', 'ġ', 'Ģ', 'ģ', 'Ĥ', 'ĥ', 'Ħ', 'ħ', 'Ĩ', 'ĩ', 'Ī', 'ī', 'Ĭ', 'ĭ', |
'Į', 'į', 'İ', 'ı', 'IJ', 'ij', 'Ĵ', 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', |
'ľ', 'Ŀ', 'ŀ', 'Ł', 'ł', 'Ń', 'ń', 'Ņ', 'ņ', 'Ň', 'ň', 'ʼn', 'Ō', 'ō', 'Ŏ', |
'ŏ', 'Ő', 'ő', 'Œ', 'œ', 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 'ś', 'Ŝ', 'ŝ', |
'Ş', 'ş', 'Š', 'š', 'Ţ', 'ţ', 'Ť', 'ť', 'Ŧ', 'ŧ', 'Ũ', 'ũ', 'Ū', 'ū', 'Ŭ', |
'ŭ', 'Ů', 'ů', 'Ű', 'ű', 'Ų', 'ų', 'Ŵ', 'ŵ', 'Ŷ', 'ŷ', 'Ÿ', 'Ź', 'ź', 'Ż', |
'ż', 'Ž', 'ž', 'ſ', 'ƒ', 'Ơ', 'ơ', 'Ư', 'ư', 'Ǎ', 'ǎ', 'Ǐ', 'ǐ', 'Ǒ', 'ǒ', |
'Ǔ', 'ǔ', 'Ǖ', 'ǖ', 'Ǘ', 'ǘ', 'Ǚ', 'ǚ', 'Ǜ', 'ǜ', 'Ǻ', 'ǻ', 'Ǽ', 'ǽ', 'Ǿ', 'ǿ'); |
private $caracteresNormaux = array( |
'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', |
'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', |
'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', |
'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', |
'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', |
'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', |
'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', |
'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', |
'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', |
'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', |
'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', |
'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', |
'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o'); |
public function __construct($encodage = null) { |
if (is_string($encodage)) { |
$this->setEncodage($encodage); |
} |
} |
public function setEncodage($encodage) { |
$this->encodage = $encodage; |
} |
/** |
* Supprime ou remplace les accents d'une chaine en PHP. |
* La solution retenu, provenant du site |
* {@link http://www.lecoindunet.com/zone_php/scripts_utiles/remplacer-les-caracteres-accentues-dune-chaine-en-php-72 lecoindunet.com}, |
* consiste en deux tableaux (caractères avec et sans accents) car cela permetra éventuellement |
* de fournir des méthodes pour récupérer ces tableaux pour d'autres traitements. |
* Une autre solution aurait été d'utiliser les entités HTML comme proposé par le site |
* {@link http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-accentues.html weirdog.com}. |
* |
* @param String $chaine la chaine de caractères dans laquelle supprimer les accents. |
* @param String $encodage le code d'encodage de la chaine si ce n'est pas de l'UTF-8. |
* @return la chaine de caractères sans accent. |
*/ |
public function supprimerAccents($chaine) { |
if ($this->encodage != 'UTF-8') { |
mb_convert_variables($encodage, 'UTF-8', $this->caracteresAccentues, $this->caracteresNormaux); |
} |
return str_replace($this->caracteresAccentues, $this->caracteresNormaux, $chaine); |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/Surligneur.php |
---|
New file |
0,0 → 1,97 |
<?php |
class Surligneur { |
private $texte = ''; |
private $texteSansAccent = ''; |
private $tags = array(); |
private $nbreSurlignageMaxParMot = 1; |
private $nbreSurlignageCourant = 0; |
public function __construct($texte = null, $surlignageMaxParMot = null) { |
if (is_null($texte) == false) { |
$this->setTexte($texte); |
} |
if (is_null($surlignageMaxParMot) == false) { |
$this->setNbreMaxSurlignageParMot($surlignageMaxParMot); |
} |
} |
public function setTexte($txt) { |
$this->texte = $txt; |
} |
public function setNbreMaxSurlignageParMot($nbre) { |
$this->nbreSurlignageMaxParMot = $nbre; |
} |
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 surlignerMots($mots) { |
$this->verifierTableauDeMots($mots); |
$this->texte = preg_replace_callback('`<[^>]+>`', array($this, 'sauverTags'), $this->texte); |
foreach ($mots as $mot) { |
$this->initialiserNbreSurlignageCourant(); |
$this->texte = $this->surlignerMot($mot); |
} |
$this->texte = preg_replace_callback('`<([0-9]+)>`', array($this, 'restaurerTags'), $this->texte); |
return $this->texte; |
} |
private function verifierTableauDeMots($mots) { |
if (is_array($mots) === false) { |
$message = "Surligneur::surlignerMots() n'accepte que les tableaux de mots en argument"; |
throw new InvalidArgumentException($message); |
} else { |
if (count($mots) == 0) { |
$message = "Surligneur::surlignerMots() n'accepte que des tableaux contenant au moins un mot"; |
throw new LengthException($message); |
} |
} |
} |
private function sauverTags($match) { |
$i = count($this->tags); |
$this->tags[$i] = $match[0]; |
return '<'.$i.'>'; |
} |
private function initialiserNbreSurlignageCourant() { |
$this->nbreSurlignageCourant = 0; |
} |
private function surlignerMot($mot) { |
$positionDebutMot = stripos($this->texte, $mot); |
$longueurMot = strlen($mot); |
$surlignage = $this->texte; |
if ($positionDebutMot !== false) { |
$this->nbreSurlignageCourant++; |
if ($this->nbreSurlignageCourant <= $this->nbreSurlignageMaxParMot) { |
$debut = substr($this->texte, 0, $positionDebutMot); |
$milieu = substr($this->texte, $positionDebutMot, $longueurMot); |
$this->texte = substr($this->texte, $positionDebutMot + $longueurMot); |
$fin = $this->surlignerMot($mot); |
$surlignage = $debut.$this->sauverTagSurlignage($milieu).$fin; |
} |
} |
return $surlignage; |
} |
private function sauverTagSurlignage($motTrouve) { |
$i = count($this->tags); |
$this->tags[$i] = '<span class="surlignage">'.$motTrouve.'</span>'; |
return '<'.$i.'>'; |
} |
private function restaurerTags($match) { |
return $this->tags[$match[1]]; |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/Conteneur.php |
---|
New file |
0,0 → 1,159 |
<?php |
class Conteneur { |
protected $parametres = array(); |
protected $partages = array(); |
public function __construct(array $parametres = null) { |
$this->parametres = is_null($parametres) ? array() : $parametres; |
} |
public function getParametre($cle) { |
$valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : Config::get($cle); |
return $valeur; |
} |
public function getParametreTableau($cle) { |
$tableau = array(); |
$parametre = $this->getParametre($cle); |
if (empty($parametre) === false) { |
$tableauPartiel = explode(',', $parametre); |
$tableauPartiel = array_map('trim', $tableauPartiel); |
foreach ($tableauPartiel as $champ) { |
if (strpos($champ, '=') === false) { |
$tableau[] = trim($champ); |
} else { |
list($cle, $val) = explode('=', $champ); |
$tableau[trim($cle)] = trim($val); |
} |
} |
} |
return $tableau; |
} |
public function setParametre($cle, $valeur) { |
$this->parametres[$cle] = $valeur; |
} |
public function getAppUrls() { |
if (!isset($this->partages['AppUrls'])){ |
$this->partages['AppUrls'] = new AppUrls(); |
} |
return $this->partages['AppUrls']; |
} |
public function getApiNoms() { |
$noms = new Noms($this->getParametre('referentiel')); |
return $noms; |
} |
public function getApiTaxons() { |
$taxons = new Taxons($this->getParametre('referentiel')); |
return $taxons; |
} |
public function getApiBiblioBota() { |
$biblioBota = new BiblioBota(); |
return $biblioBota; |
} |
public function getApiImages() { |
$images = new Images(); |
return $images; |
} |
public function getApiCartes() { |
$cartes = new Cartes(); |
return $cartes; |
} |
public function getApiNomsVernaculaires() { |
$nomsVernaculaires = new NomsVernaculaires(); |
return $nomsVernaculaires; |
} |
public function getApiTextes() { |
$textes = new Textes(); |
return $textes; |
} |
public function getApiWikini() { |
$wiki = new Wikini(); |
return $wiki; |
} |
public function getApiGraphiques() { |
$graphique = new Graphiques(); |
return $graphique; |
} |
public function getApiSyntaxons() { |
$syntaxon = new Syntaxons(); |
return $syntaxon; |
} |
public function getApiMetaDonnees() { |
$meta = new MetaDonnees(); |
return $meta; |
} |
public function getApiInformations() { |
$informations = new Informations(); |
return $informations; |
} |
public function getApiStatuts() { |
$statuts = new Statuts(); |
return $statuts; |
} |
public function getNomCourant() { |
if (!isset($this->partages['NomCourant'])){ |
$nns = $this->getParametre('num_nom'); |
$noms = $this->getApiNoms(); |
$taxons = $this->getApiTaxons(); |
$this->partages['NomCourant'] = new NomCourant($nns, $noms, $taxons); |
} |
return $this->partages['NomCourant']; |
} |
public function getUtilisateur() { |
if (!isset($this->partages['Utilisateur'])){ |
$this->partages['Utilisateur'] = new Utilisateur($this); |
} |
return $this->partages['Utilisateur']; |
} |
public function getBdd() { |
if (!isset($this->partages['Bdd'])){ |
$this->partages['Bdd'] = new Bdd(); |
} |
return $this->partages['Bdd']; |
} |
public function getCache($dossierStockage = null) { |
if (!isset($this->partages['Cache'])){ |
$params = array( |
'mise_en_cache' => $this->getParametre('cache'), |
'stockage_chemin' => is_null($dossierStockage) ? $this->getParametre('chemincache') : $dossierStockage, |
'duree_de_vie' => $this->getParametre('dureecache') |
); |
$this->partages['Cache'] = new CacheSimple($params); |
} |
return $this->partages['Cache']; |
} |
public function getRestClient() { |
if (!isset($this->partages['RestClient'])){ |
$this->partages['RestClient'] = new RestClient(); |
} |
return $this->partages['RestClient']; |
} |
public function getQrCode() { |
if (!isset($this->partages['QrCode'])){ |
$this->partages['QrCode'] = new QrCode($this); |
} |
return $this->partages['QrCode']; |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/TableauManipulateur.php |
---|
New file |
0,0 → 1,58 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe fournissant des méthodes de manipulation de tableau (Array). |
* |
* @category PHP 5.2 |
* @package eFlore/Bibliotheque |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org) |
* @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 TableauManipulateur { |
private $tableau = array(); |
public function __construct(Array $tableau = null) { |
if (is_array($tableau)) { |
$this->setTableau($tableau); |
} |
} |
public function setTableau(Array $tableau) { |
$this->tableau = $tableau; |
} |
public function getTableau() { |
return $this->tableau; |
} |
/** |
* Etend le tableau principal avec les données du tableau à copier. Si des clés sont identiques entre les deux tableaux |
* une excetion est déclenchée et la valeur du tableau à étendre est gardée. Si les deux tableaux ont des clés numériques |
* leurs valeurs sont gardées (à la différence de array_merge). |
* Le tableau à copier est passé par copie et il est progressivement détruit pour éviter la consomation |
* de mémoire. |
* |
* @param array $tableau_a_copier |
* @return void |
*/ |
public function etendreAvec(Array $tableau_a_copier) { |
$cles_existantes = null; |
foreach ($tableau_a_copier as $cle => $val) { |
if (array_key_exists($cle, $this->tableau) == false) { |
$this->tableau[$cle] = $val; |
unset($tableau_a_copier[$cle]); |
} else { |
$cles_existantes[] = $cle; |
} |
} |
if (is_array($cles_existantes)) { |
$message = "Le tableau a étendre contenait déjà les clés suivantes : ".implode(', ', $cles_existantes); |
throw new Exception($message); |
} |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/NomCourant.php |
---|
New file |
0,0 → 1,46 |
<?php |
class NomCourant { |
private $nns = null; |
private $nnr = null; |
private $selectionne = null; |
private $retenu = null; |
public function __construct($num_nom_selectionne, Noms $noms, Taxons $taxons) { |
$this->nns = $num_nom_selectionne; |
$this->selectionne = new Nom($noms->getNom($this->nns)); |
$this->retenu = new Nom($taxons->getTaxon($this->nns)); |
$this->nnr = $this->retenu->get('id'); |
$taxons_sup = $taxons->getTaxonsSup($this->nnr); |
$this->taxons_sup = $taxons_sup[$this->nnr]; |
$this->retenu->setTaxonsSuperieurs($taxons_sup, $this->nnr); |
} |
/** |
* Retour le numéro du nom sélectionné courant. |
* |
* @return le numéro du nom sélectionné. |
*/ |
public function getNns() { |
return $this->nns; |
} |
public function getNnr() { |
return $this->nnr; |
} |
public function getNomSelectionne() { |
return $this->selectionne; |
} |
public function getNomRetenu() { |
return $this->retenu; |
} |
public function getNt() { |
return $this->retenu->get('num_taxonomique'); |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/AppUrls.php |
---|
New file |
0,0 → 1,288 |
<?php |
class AppUrls { |
private $urlBase = null; |
private $urlMobile = null; |
private $urlBaseDossier = null; |
private $urlCourante = null; |
private $urlRedirection = null; |
private $urlPopUp = null; |
public function __construct(Url $urlBase = null, Url $urlBaseDossier = null, Url $urlPopUp = null, Url $urlMobile = null) { |
$this->urlBase = (is_null($urlBase)) ? Registre::get('eFlore.urlBase') : $urlBase; |
$this->urlBaseDossier = (is_null($urlBaseDossier)) ? Registre::get('eFlore.urlBaseDossier') : $urlBaseDossier; |
$this->urlPopUp = (is_null($urlPopUp)) ? Registre::get('eFlore.urlPopUp') : $urlPopUp; |
$this->urlMobileTpl = (is_null($urlMobile)) ? Registre::get('eFlore.urlMobileTpl') : $urlMobile; |
} |
public function obtenirUrlBase() { |
$this->urlBase->setRequete(array()); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlBaseDossier() { |
$this->urlBaseDossier->setRequete(array()); |
$url = $this->urlBaseDossier->getURL(); |
return $url; |
} |
public function redirigerVers($url) { |
$url = str_replace('&', '&', $url); |
header("Location: $url"); |
} |
public function getParametresUrlListe() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'module' => 'liste', |
'action' => 'liste', |
'rang' => $this->rang, |
'lettre' => $this->lettre |
); |
return $parametres; |
} |
public function obtenirUrlListeFamille() { |
$parametres = $this->getParametresUrlListe(); |
$parametres['rang'] = 'F'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlListeGenre() { |
$parametres = $this->getParametresUrlListe(); |
$parametres['rang'] = 'G'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlRecherche() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'module' => 'recherche', |
'action' => 'rechercheSimple', |
'submit' => 'Rechercher' |
); |
return $parametres; |
} |
public function obtenirUrlRechercheSimple($nom = null, $type = 'nom_scientifique') { |
$parametres = $this->getParametresUrlRecherche(); |
$parametres['type_nom'] = $type; |
$parametres['nom'] = $nom; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlRechercheAvancee() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'niveau' => Registre::get('parametres.niveau'), |
'module' => 'recherche', |
'action' => 'rechercheAvancee', |
'type_nom' => 'nom_scientifique' |
); |
return $parametres; |
} |
public function obtenirUrlResultatAvanceOnglets($onglet, $params = array()) { |
$parametres = $this->getParametresUrlRechercheAvancee(); |
$parametres['resultat'] = $onglet; |
$parametres = array_merge($parametres, $params); |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlRechercheAvancee($params = array()) { |
$parametres = $this->getParametresUrlRechercheAvancee(); |
$parametres = array_merge($parametres,$params); |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlResultat() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'module' => 'recherche', |
'niveau' => Registre::get('parametres.niveau'), |
'action' => Registre::get('parametres.action'), |
'submit' => 'Rechercher', |
'type_nom' => isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique', |
'nom' => isset($_GET['nom']) ? $_GET['nom'] : '' |
); |
return $parametres; |
} |
public function obtenirUrlResultatDetermination() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'determination'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlResultatAlphab() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'alphab'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlResultatRetenu() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'retenu'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlResultatDecompo() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'decompo'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlFiche() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'niveau' => Registre::get('parametres.niveau'), |
'module' => 'fiche', |
'action' => 'fiche' |
); |
return $parametres; |
} |
public function obtenirUrlFiche($numNom, $type_nom = 'nom_vernaculaire', $nom = '') { |
$parametres = $this->getParametresUrlFiche(); |
$parametres['num_nom'] = $numNom; |
$parametres['type_nom'] = $type_nom; |
$parametres['nom'] = $nom; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlMobile($numNom) { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'num_nom' => $numNom |
); |
$urlMobile = $this->urlMobileTpl; |
foreach ($parametres as $cle => $val) { |
$urlMobile = str_replace('{'.$cle.'}', rawurlencode($val), $urlMobile); |
} |
return $urlMobile; |
} |
public function getParametresUrlMetaDonnees() { |
$parametres = array( |
'module' => 'fiche-metadonnees', |
'action' => 'affichageMetaDonnees' |
); |
return $parametres; |
} |
public function obtenirUrlMetaDonnees($projet) { |
$parametres = $this->getParametresUrlMetaDonnees(); |
$parametres['projet'] = $projet; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlListeFancyBoxPhytosocio() { |
$parametres = array( |
'module' => 'liste-fancy-box-phytosocio', |
'action' => 'lister' |
); |
return $parametres; |
} |
public function obtenirUrlListeFancyBoxPhytosocio($liste,$referentiel,$num_nom, $catminat) { |
$parametres = $this->getParametresUrlListeFancyBoxPhytosocio(); |
$parametres['type'] = $liste; |
$parametres['referentiel'] = $referentiel; |
$parametres['num_nom'] = $num_nom; |
$parametres['catminat'] = $catminat; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlPopUpIllustrations() { |
$parametres = array( |
'module' => 'popup-illustrations', |
'action' => 'fiche', |
'referentiel' => Registre::get('parametres.referentiel') |
); |
return $parametres; |
} |
public function obtenirUrlPopUpIllustrations($idImg) { |
$parametres = $this->getParametresUrlPopUpIllustrations(); |
$parametres['id'] = $idImg; |
$this->urlPopUp->setRequete($parametres); |
$url = $this->urlPopUp->getURL(); |
return $url; |
} |
public function getParametresPdfExport() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'niveau' => Registre::get('parametres.niveau'), |
'module' => 'pdf-export', |
'action' => 'pdf-export' |
); |
return $parametres; |
} |
public function obtenirUrlPdfExport($numNom) { |
$parametres = $this->getParametresPdfExport(); |
$parametres['num_nom'] = $numNom; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlPopUpContact($action) { |
$action = is_null($action) ? 'form' : $action; |
$parametres = array( |
'module' => 'popup-contact', |
'action' => $action, |
'referentiel' => Registre::get('parametres.referentiel') |
); |
return $parametres; |
} |
public function obtenirUrlPopUpContact($idDestinataire, $idImage, $action = null) { |
$parametres = $this->getParametresUrlPopUpContact($action); |
$parametres['id_destinataire'] = $idDestinataire; |
$parametres['id_img'] = $idImage; |
$this->urlPopUp->setRequete($parametres); |
$url = $this->urlPopUp->getURL(); |
return $url; |
} |
public function obtenirUrlMauvaiseIdentification($idObs) { |
$tpl = Config::get('urlMauvaiseIdentificationTpl'); |
$url = sprintf($tpl, $idObs); |
return $url; |
} |
public function obtenirUrlProfilAnnuaire($idUtilisateur) { |
$tpl = Config::get('baseUrlProfilAnnuaireTpl'); |
$url = sprintf($tpl, $idUtilisateur); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/Nom.php |
---|
New file |
0,0 → 1,34 |
<?php |
class Nom { |
private $infos = array(); |
public function __construct(Array $infos) { |
$this->infos = $infos; |
} |
public function setTaxonsSuperieurs(Array $taxonsSup, $nns) { |
$this->infos['taxonsSup'] = $taxonsSup[$nns]; |
} |
public function getInfos() { |
return $this->infos; |
} |
public function get($cle) { |
$valeur = ''; |
if (array_key_exists($cle, $this->infos)) { |
$valeur = $this->infos[$cle]; |
} |
return $valeur; |
} |
public function getTaxonSupRang($rang) { |
$nom_sci = ''; |
foreach ($this->infos['taxonsSup'] as $taxon) { |
if ($taxon['rang.code'] == 'bdnt.rangTaxo:'.$rang) { |
$nom_sci = $taxon['nom_sci_complet']; |
} |
} |
return $nom_sci; |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/Trieur.php |
---|
New file |
0,0 → 1,97 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe fournissant des méthodes de trie de tableaux (Array). |
* |
* @category PHP 5.2 |
* @package eFlore/Bibliotheque |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org) |
* @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$ |
*/ |
// TODO : réaliser une seule méthode pour trierMD et trierMDType |
class Trieur { |
const TRI_NATUREL = 'nat'; |
const TRI_CASSE_SENSIBLE = 'ci'; |
const TRI_CASSE_INSENSIBLE = 'ci'; |
private $manipulateurDeChaine = null; |
private $tableau = array(); |
private $champsEtOrdres = array(); |
private $triType = self::TRI_NATUREL; |
public function __construct(Array $tableau = null, ChaineManipulateur $manipulateurDeChaine = null) { |
if (is_array($tableau)) { |
$this->setTableau($tableau); |
} |
$this->manipulateurDeChaine = is_null($tableau) ? new ChaineManipulateur() : $manipulateurDeChaine; |
} |
public function setTableau($tableau) { |
$this->tableau = $tableau; |
} |
/** |
* Fournir un tableau contenant en clé les noms des champs et en valeur l'ordre de tri. Exemple : |
* array('ma_cle1' => SORT_ASC, 'ma_cle2' => SORT_DESC), $type_de_tri); |
* Utiliser les constantes php SORT_DESC ou SORT_ASC pour l'odre de tri. |
* @param array en clé les noms des champs et en valeur l'ordre de tri. |
*/ |
public function setChampsEtOrdres($champsEtOrdres) { |
$this->champsEtOrdres = $champsEtOrdres; |
} |
/** |
* Pour le type de tri : utiliser : |
* - Trieur::TRI_NATUREL pour un tri naturel, |
* - Tableau::TRI_CASSE_SENSIBLE pour un tri sensible à la casse, |
* - Tableau::TRI_CASSE_INSENSIBLE pour un tri insensible à la casse. |
* @param string le type de tri à appliquer. |
*/ |
public function setTriType($type) { |
$this->triType = $type; |
} |
/** |
* Méthode réalisant un tri d'un tableau multidimension. Attention les clés du tableau ne sont pas modifiées. |
* A utiliser de cette façon: |
* EfloreTriage::trieMultiple( $tableau_multidimension, array('ma_cle1' => SORT_ASC, 'ma_cle2' => SORT_DESC), $type_de_tri); |
* Utiliser les constantes php SORT_DESC ou SORT_ASC pour l'odre de tri. |
* @param array le tableau à trier |
* @param array le tableau des colonnes à trier qui a des noms de clés pour clés et des ordres de tri pour valeurs. |
* @param string le type de tri à appliquer. |
* @return array le tableau trié. |
*/ |
public function trier() { |
uasort($this->tableau, array($this, 'comparer')); |
return $this->tableau; |
} |
public function comparer($a, $b) { |
$resultat = 0; |
foreach ($this->champsEtOrdres as $champ => $ordre) { |
if ($resultat == 0) { |
$mot_01 = $this->manipulateurDeChaine->supprimerAccents($b[$champ]); |
$mot_02 = $this->manipulateurDeChaine->supprimerAccents($a[$champ]); |
switch ($this->triType) { |
case self::TRI_NATUREL : |
$resultat = ($ordre == SORT_DESC) ? strnatcmp($mot_01, $mot_02) : strnatcmp($mot_02, $mot_01); |
break; |
case self::TRI_CASSE_SENSIBLE : |
$resultat = ($ordre == SORT_DESC) ? strcmp($mot_01, $mot_02) : strcmp($mot_02, $mot_01); |
break; |
case self::TRI_CASSE_INSENSIBLE : |
$resultat = ($ordre == SORT_DESC) ? strcasecmp($mot_01, $mot_02) : strcasecmp($mot_02, $mot_01); |
break; |
default: |
$resultat = ($ordre == SORT_DESC) ? strcasecmp($mot_01, $mot_02) : strcasecmp($mot_02, $mot_01); |
break; |
} |
} |
} |
return $resultat; |
} |
} |
?> |
/tags/v5.2-20131127/bibliotheque/Utilisateur.php |
---|
New file |
0,0 → 1,92 |
<?php |
class Utilisateur { |
const NIVEAU_DEBUTANT = 1; |
const NIVEAU_INTERMEDIAIRE = 2; |
const NIVEAU_EXPERT = 3; |
private $dureeSauvegarde = null; |
private $nomCookieUtilisateur = ''; |
private $nomCookieUtilisateurPersistant = ''; |
private $nomCookieNiveau = ''; |
private $niveauDefaut = ''; |
private $urlWsAnnuaire = ''; |
private $restClient = null; |
private $niveau = null; |
private $identifie = false; |
private $courriel = null; |
private $md5Mdp = null; |
public function __construct(Conteneur $conteneur) { |
$this->dureeSauvegarde = $conteneur->getParametre('cookies.duree'); |
$this->nomCookieUtilisateur = $conteneur->getParametre('cookies.utilisateur'); |
$this->nomCookieUtilisateurPersistant = $conteneur->getParametre('cookies.utilisateurPersistant'); |
$this->nomCookieNiveau = $conteneur->getParametre('cookies.niveau'); |
$this->niveauDefaut = $conteneur->getParametre('utilisateur.niveau.defaut'); |
$this->urlWsAnnuaire = $conteneur->getParametre('baseUrlServicesAnnuaireTpl'); |
$this->restClient = $conteneur->getRestClient(); |
$this->analyserCookies(); |
} |
public function getCourriel() { |
return $this->courriel; |
} |
public function getNiveau() { |
return $this->niveau; |
} |
public function sauver() { |
setcookie($this->nomCookieNiveau, time()+$this->dureeSauvegarde, '/'); |
} |
public function etreIdentifie() { |
$this->analyserCookies(); |
return $this->identifie; |
} |
public function connecter($courriel, $mdp, $persistance = false) { |
$url = sprintf($this->urlWsAnnuaire, 'utilisateur'); |
$donnees['methode'] = 'connexion'; |
$donnees['courriel'] = $courriel; |
$donnees['mdp'] = $mdp; |
$donnees['persistance'] = $persistance; |
$json = $this->restClient->ajouter($url, $donnees); |
$forceTableauAssociatif = true; |
$resultat = json_decode($json, $forceTableauAssociatif); |
return $resultat['identifie']; |
} |
private function analyserCookies() { |
$this->analyserCookiesIdentite(); |
$this->analyserCookiesNiveau(); |
} |
private function analyserCookiesIdentite() { |
if ($this->identifie == false) { |
if (isset($_COOKIE[$this->nomCookieUtilisateurPersistant])) { |
$idTela = $_COOKIE[$this->nomCookieUtilisateurPersistant]; |
$this->extraireMdpEtCourriel($idTela); |
} else if (isset($_COOKIE[$this->nomCookieUtilisateur])) { |
$idTela = $_COOKIE[$this->nomCookieUtilisateur]; |
$this->extraireMdpEtCourriel($idTela); |
} |
} |
} |
private function extraireMdpEtCourriel($idTela) { |
$this->md5Mdp = substr($idTela, 0, 32); |
$this->courriel = substr($idTela, 32); |
$this->identifie = true; |
} |
private function analyserCookiesNiveau() { |
$this->niveau = $this->niveauDefaut; |
if (isset($_COOKIE[$this->nomCookieNiveau])) { |
$this->niveau = $_COOKIE[$this->nomCookieNiveau]; |
} |
} |
} |
?> |
/tags/v5.2-20131127/controleurs/AppControleur.php |
---|
New file |
0,0 → 1,339 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* AppControleur est le controlleur principal de l'application. |
* Elle repartie les demandes utilisateurs dans les différents modules, executent les actions et redistribue le code |
* html dans les différentes fonctions d'affichage. |
* C'est une Singleton. |
* |
* @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 AppControleur extends Controleur { |
/** |
* Instance de la classe pointant sur elle même (pour le pattern singleton) |
*/ |
private static $instance = null; |
/** |
* Paramètres d'AppControleur |
*/ |
private static $parametres = array(); |
/** |
* Constructeur vide |
*/ |
public function __construct() { |
$sortie = array( |
'titre' => '', 'description' => '', 'tags' => '', |
'entete' => '', 'tags' => '', |
'corps' => '', 'tete' => '', 'pied' => '', |
'navigation' => '', 'menu' => ''); |
self::$parametres = array( |
'referentiel' => Config::get('referentiel_defaut'), |
'module' => Config::get('module_defaut'), |
'action' => Config::get('action_defaut'), |
'niveau' => Config::get('niveau_defaut'), |
'sortie' => $sortie); |
parent::__construct(); |
} |
/** |
* Initialisation du controleur principal en fonction des paramêtres de l'url. |
*/ |
public static function initialiser() { |
self::verifierCreationInstance(); |
self::gererSession(); |
self::nettoyerGet(); |
self::capturerParametres(); |
self::initialiserRegistre(); |
self::chargerConfigReferentiel(); |
spl_autoload_register(array(get_class(), 'chargerClasse')); |
self::executerModule(); |
} |
// "public" pour pouvoir être appelée distinctememnt de "initialiser" lors des tests PHPUnit |
public static function verifierCreationInstance() { |
if (empty(self::$instance)) { |
self::$instance = new AppControleur(); |
} |
} |
private static function gererSession() { |
if (Config::get('session_demarrage')) { |
// Attribution d'un nom à la session |
session_name(Config::get('session_nom')); |
// Démarrage de la session |
session_start(); |
} |
} |
private static function nettoyerGet() { |
foreach ($_GET as $cle => $valeur) { |
$verifier = array('NULL', "\n", "\r", "\\", "'", '"', "\x00", "\x1a", ';'); |
$_GET[$cle] = strip_tags(str_replace($verifier, '', $valeur)); |
} |
} |
private static function capturerParametres() { |
if (isset($_GET['referentiel'])) { |
self::$parametres['referentiel'] = $_GET['referentiel']; |
} |
if (isset($_GET['module'])) { |
self::$parametres['module'] = $_GET['module']; |
} |
if (isset($_GET['action'])) { |
self::$parametres['action'] = $_GET['action']; |
} |
if (isset($_GET['niveau'])) { |
self::$parametres['niveau'] = $_GET['niveau']; |
} |
} |
// "public" pour pouvoir être appelée distinctememnt de "initialiser" lors des tests PHPUnit |
public static function initialiserRegistre() { |
Registre::set('eFlore.urlBase', new Url(Config::get('base_url_application_index'))); |
Registre::set('eFlore.urlBaseDossier', new Url(Config::get('base_url_application'))); |
Registre::set('eFlore.urlCourante', self::getUrlCourante()); |
Registre::set('eFlore.urlRedirection', self::getUrlRedirection()); |
Registre::set('eFlore.urlPopUp', new Url(Config::get('base_url_application_popup'))); |
Registre::set('eFlore.urlMobileTpl', Config::get('base_url_mobile')); |
Registre::set('parametres.referentiel', self::$parametres['referentiel']); |
Registre::set('parametres.module', self::$parametres['module']); |
Registre::set('parametres.action', self::$parametres['action']); |
Registre::set('parametres.niveau', self::$parametres['niveau']); |
} |
private static function chargerConfigReferentiel() { |
$chemin = Config::get('chemin_configurations').strtolower(self::$parametres['referentiel']).'.ini'; |
Config::charger($chemin); |
} |
private static function getUrlCourante() { |
$url = false; |
if (isset($_SERVER['REQUEST_URI'])) { |
$url = $_SERVER['REQUEST_URI']; |
} |
return ($url) ? new Url($url) : $url; |
} |
private static function getUrlRedirection() { |
$url = false; |
if (isset($_SERVER['REDIRECT_URL']) && !empty($_SERVER['REDIRECT_URL'])) { |
if (isset($_SERVER['REDIRECT_QUERY_STRING']) && !empty($_SERVER['REDIRECT_QUERY_STRING'])) { |
$url = $_SERVER['REDIRECT_URL'].'?'.$_SERVER['REDIRECT_QUERY_STRING']; |
} else { |
$url = $_SERVER['REDIRECT_URL']; |
} |
} |
return ($url) ? new Url($url) : $url; |
} |
private static function chargerClasse($nom_classe) { |
$dossiers_classes = array( |
Config::get('chemin_modules').self::getNomDossierModuleCourrant().DS, |
Config::get('chemin_modules').self::getNomDossierDepuisClasse($nom_classe).DS, |
Config::get('chemin_modeles').'api_0.1'.DS); |
foreach ($dossiers_classes as $chemin) { |
$fichier_a_tester = $chemin.$nom_classe.'.php'; |
if (file_exists($fichier_a_tester)) { |
include_once $fichier_a_tester; |
return null; |
} |
} |
} |
public static function getNomDossierDepuisParametre($parametre) { |
$dossier = str_replace('-', '_', strtolower($parametre)); |
return $dossier; |
} |
public static function getNomDossierDepuisClasse($nomClasse) { |
$dossier = str_replace(' ', '_', strtolower(preg_replace('/(?<!^)([A-Z])/',' $0', $nomClasse))); |
return $dossier; |
} |
private static function getNomDossierModuleCourrant() { |
$dossier = self::getNomDossierDepuisParametre(self::$parametres['module']); |
return $dossier; |
} |
private static function getNomClasseModule() { |
$dossier = str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower(self::$parametres['module'])))); |
return $dossier; |
} |
private static function getNomMethodeAction() { |
$methode = 'executer'. |
str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower(self::$parametres['action'])))); |
return $methode; |
} |
private static function executerModule() { |
$classeModule = self::getNomClasseModule(); |
$action = self::getNomMethodeAction(); |
// Nous vérifions que le module existe |
if (class_exists($classeModule)) { |
$module = new $classeModule(); |
// Chargement Entete et Pied de page par défaut |
$module->chargerEnteteGeneral(); |
$module->chargerMenuGeneral(); |
$module->chargerPiedGeneral(); |
// Initialisation du module demandé |
if (method_exists($module, 'initialiser')) { |
$module->initialiser(); |
} |
// Lancement de l'action demandé du module chargé |
if (method_exists($module, $action)) { |
$module->$action(); |
} else { |
$m = "La méthode '$action' du controleur '$classeModule' est introuvable."; |
trigger_error($m, E_USER_ERROR); |
} |
self::fusionnerSortie($module->getSortie()); |
} else { |
$m = "La classe du controleur '$classeModule' est introuvable."; |
trigger_error($m, E_USER_ERROR); |
} |
} |
/** |
* Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module. |
* @param array le tableau à fusionner |
*/ |
private static function fusionnerSortie($sortie) { |
self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie); |
} |
/** |
* Retourne le titre du contenu de l'application. |
*/ |
public static function getMetaTitre() { |
$contenu = self::$parametres['sortie']['titre']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne la description du contenu de l'application. |
*/ |
public static function getMetaDescription() { |
$contenu = self::$parametres['sortie']['description']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne les mots-clés (tags) du contenu de l'application. |
*/ |
public static function getMetaTags() { |
$contenu = self::$parametres['sortie']['tags']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne les informations à placer dans la balise HEAD du HTML. |
*/ |
public static function getEntete() { |
$contenu = self::$parametres['sortie']['entete']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne le contenu du corps de l'application. |
*/ |
public static function getContenuCorps() { |
$contenu = self::$parametres['sortie']['corps']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne le contenu de la tête de l'application. |
*/ |
public static function getContenuTete() { |
$contenu = self::$parametres['sortie']['tete']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne le contenu du pied de l'application. |
*/ |
public static function getContenuPied() { |
$contenu = self::$parametres['sortie']['pied']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne les éléments de navigation (onglet, fils d'ariane) de l'application. |
*/ |
public static function getContenuNavigation() { |
$contenu = self::$parametres['sortie']['navigation']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne les éléments du menu de l'application. |
*/ |
public static function getContenuMenu() { |
$contenu = self::$parametres['sortie']['menu']; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Retourne les chronos pris dans l'appli |
*/ |
public static function getChrono() { |
$sortie = ''; |
if (Config::get('benchmark_chrono')) { |
$chrono = Chronometre::afficherChrono(); |
$sortie = self::convertirEncodage($chrono); |
} |
return $sortie; |
} |
/** |
* Retourne les messages d'exceptions et d'erreurs. |
*/ |
public static function getExceptions() { |
$contenu = (Config::get('debogage')) ? GestionnaireException::getExceptions() : ''; |
$sortie = self::convertirEncodage($contenu); |
return $sortie; |
} |
/** |
* Convertion du contenu de l'application (voir fichier config.ini : appli_encodage), |
* dans le format de sortie désiré (voir fichier config.ini : sortie_encodage). |
* Cette convertion a lieu seulement si les formats sont différents. |
*/ |
private static function convertirEncodage($contenu) { |
if (Config::get('sortie_encodage') != Config::get('appli_encodage')) { |
$contenu = mb_convert_encoding($contenu, Config::get('sortie_encodage'), Config::get('appli_encodage')); |
} |
return $contenu; |
} |
} |
?> |
/tags/v5.2-20131127/controleurs/aControleur.php |
---|
New file |
0,0 → 1,295 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe abstraite dont chaque controleur de l'application doit hériter. |
* |
* @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$ |
*/ |
abstract class aControleur extends Controleur { |
const META_TITRE = 'titre'; |
const META_DESCRIPTION = 'description'; |
const META_TAGS = 'tags'; |
const ENTETE = 'entete'; |
const RENDU_TETE = 'tete'; |
const RENDU_CORPS = 'corps'; |
const RENDU_PIED = 'pied'; |
const RENDU_NAVIGATION = 'navigation'; |
const RENDU_MENU = 'menu'; |
private $sortie = array(); |
protected $urlBase = null; |
protected $urlCourante = null; |
protected $urls = null; |
public function __construct(AppUrls $urls = null) { |
$chemin = Config::get('chemin_modules'). |
AppControleur::getNomDossierDepuisClasse(get_class($this)).DS. |
Config::get('dossier_squelettes').DS; |
Registre::set('tbf.chemin_squelettes', $chemin); |
$this->urlBase = Registre::get('eFlore.urlBase'); |
$this->urlCourante = Registre::get('eFlore.urlCourante'); |
$this->urlRedirection = Registre::get('eFlore.urlRedirection'); |
$this->urls = (is_null($urls)) ? new AppUrls() : $urls; |
parent::__construct(); |
} |
//+------------------------------------------------------------------------------------------------------+ |
// GESTION de l'AFFICHAGE en SORTIE |
/** |
* Attribue une position de sortie à un contenu. |
*/ |
protected function setSortie($position, $contenu, $fusionner = false) { |
if ($this->verifierExistenceTypeSortie($position)) { |
if ($fusionner) { |
if (isset($this->sortie[$position])) { |
$this->sortie[$position] .= $contenu; |
} else { |
$this->sortie[$position] = $contenu; |
} |
} else { |
$this->sortie[$position] = $contenu; |
} |
} |
} |
/** |
* Vérifie l'existence du type de sortie indiqué pour son utilisation dans le tableau de sortie. |
* @param string le type de sortie à tester. |
* @return bool true si le type de sortie est valide, sinon false. |
*/ |
private function verifierExistenceTypeSortie($type) { |
$existe = true; |
if ($type != self::RENDU_TETE && |
$type != self::RENDU_CORPS && |
$type != self::RENDU_PIED && |
$type != self::RENDU_NAVIGATION && |
$type != self::RENDU_MENU && |
$type != self::ENTETE && |
$type != self::META_TITRE && |
$type != self::META_DESCRIPTION && |
$type != self::META_TAGS) { |
trigger_error("Le type de sortie '$type' n'est pas une valeur prédéfinie.", E_USER_WARNING); |
$existe = false; |
} |
return $existe; |
} |
/** |
* Retourne le tableau de sortie à utiliser dans le controleur principal de l'application. |
*/ |
public function getSortie() { |
return $this->sortie; |
} |
/** |
* Fusionne un tableau de sortie par défaut avec le tableau passé en paramêtre. |
* @param array le tableau à fusionner |
*/ |
private function fusionnerSortie($nouvelleSortie) { |
$sortieActuelle = $this->getSortie(); |
foreach ($nouvelleSortie as $position => $nouveauContenu) { |
if ($nouveauContenu != '') { |
$contenuPrecedent = isset($sortieActuelle[$position]) ? $sortieActuelle[$position] : null; |
if ($nouveauContenu != $contenuPrecedent) { |
$this->setSortie($position, $nouveauContenu, true); |
} |
} |
} |
} |
/** |
* Vide toutes les sorties (utile en cas de classe statique et de module ajax) |
*/ |
protected function viderSorties() { |
$this->setSortie(self::RENDU_TETE, ''); |
$this->setSortie(self::RENDU_CORPS, ''); |
$this->setSortie(self::RENDU_PIED, ''); |
$this->setSortie(self::RENDU_NAVIGATION, ''); |
$this->setSortie(self::RENDU_MENU, ''); |
} |
/** |
* Execute l'action d'un module donnée et fusionne le résultat avec le tableau de sortie. |
* Permet à une action d'un module donnée de charger le résultat d'une autre action de module. |
*/ |
protected function executerAction($ClasseModule, $action, $parametres = array()) { |
$module = new $ClasseModule(); |
$sortiePrecedente = $this->getSortie(); |
// Initialisation du module demandé |
if (method_exists($module, 'initialiser')) { |
$module->initialiser(); |
} |
// Lancement de l'action demandé du module chargé |
if (method_exists($module, $action)) { |
if (isset($parametres)) { |
$module->$action($parametres); |
} else { |
$module->$action(); |
} |
$nouvelleSortie = $module->getSortie(); |
$this->fusionnerSortie($nouvelleSortie); |
} else { |
$m = "La méthode '$action' du controleur '$ClasseModule' est introuvable."; |
trigger_error($m, E_USER_ERROR); |
} |
} |
//+------------------------------------------------------------------------------------------------------+ |
// GESTION du VUES COMMUNES |
/** |
* Charge un squelette de vue depuis l'emplacement commune. |
* @param String $tpl le nom du squelette à charger sans l'extenssion de fichier. |
* @param Array $donnees les données à passer au squelette PHP. |
*/ |
private function getVueCommune($tpl, $donnees) { |
$cheminOrigine = $this->getCheminSquelette(); |
$this->setCheminSquelette(Config::get('chemin_squelettes')); |
$vue = $this->getVue($tpl, $donnees); |
$this->setCheminSquelette($cheminOrigine); |
return $vue; |
} |
/** |
* Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe. |
*/ |
public function chargerEnteteGeneral() { |
$donnees['appli'] = Framework::getInfoAppli(); |
$donnees['i18n'] = array_merge(I18n::get('Entete'), I18n::get('General')); |
$donnees['referentiel_titre'] = I18n::get('Referentiels-titres.'.Registre::get('parametres.referentiel')); |
$this->setSortie(self::RENDU_TETE, $this->getVueCommune('entete_page', $donnees)); |
} |
/** |
* Pour mutualiser la création du menu de l'application, sa gestion est gérée dans cette classe. |
*/ |
public function chargerMenuGeneral() { |
$donnees['appli'] = Framework::getInfoAppli(); |
$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General')); |
$donnees['courrielContact'] = Config::get('courriel_contact'); |
$this->setSortie(self::RENDU_MENU, $this->getVueCommune('menu', $donnees)); |
} |
/** |
* Pour mutualiser la création du pied de page de l'application, sa gestion est gérée dans cette classe. |
*/ |
public function chargerPiedGeneral() { |
$donnees['appli'] = Framework::getInfoAppli(); |
$donnees['i18n'] = array_merge(I18n::get('Pied'), I18n::get('General')); |
$donnees['courrielContact'] = Config::get('courriel_contact'); |
$this->setSortie(self::RENDU_PIED, $this->getVueCommune('pied_page', $donnees)); |
} |
//+------------------------------------------------------------------------------------------------------+ |
// GESTION du CHARGEMENT des CLASSES MÉTIERS |
protected function getEfloreNoms() { |
if (! isset($this->EfloreNoms)) { |
$this->EfloreNoms = new Noms(); |
} |
return $this->EfloreNoms; |
} |
protected function getEfloreTaxons() { |
if (! isset($this->EfloreTaxons)) { |
$this->EfloreTaxons = new Taxons(); |
} |
return $this->EfloreTaxons; |
} |
public function obtenirUrlBase() { |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function redirigerVers($url) { |
$url = str_replace('&', '&', $url); |
header("Location: $url"); |
} |
public function getParametresUrlListe() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'module' => 'liste', |
'action' => 'liste', |
'rang' => $this->rang, |
'lettre' => $this->lettre |
); |
return $parametres; |
} |
public function obtenirUrlListeFamille() { |
$parametres = $this->getParametresUrlListe(); |
$parametres['rang'] = 'F'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlListeGenre() { |
$parametres = $this->getParametresUrlListe(); |
$parametres['rang'] = 'G'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function getParametresUrlResultat() { |
$parametres = array( |
'referentiel' => Registre::get('parametres.referentiel'), |
'module' => 'recherche', |
'action' => Registre::get('parametres.action'), |
'submit' => 'Rechercher', |
'type_nom' => isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique', |
'nom' => isset($_GET['nom']) ? $_GET['nom'] : '' |
); |
return $parametres; |
} |
public function obtenirUrlResultatDetermination() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'determination'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlResultatAlphab() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'alphab'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlResultatRetenu() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'retenu'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
public function obtenirUrlResultatDecompo() { |
$parametres = $this->getParametresUrlResultat(); |
$parametres['resultat'] = 'decompo'; |
$this->urlBase->setRequete($parametres); |
$url = $this->urlBase->getURL(); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/i18n/fr.ini |
---|
New file |
0,0 → 1,163 |
[General] |
obligatoire = "*" |
etc = "..." |
point = "." |
[Referentiels-titres] |
* = "Multi-projets" |
bdnff = "BDNFF" |
bdtfx = "BDTFX" |
[Entete] |
titre-general = "eFlore" |
[Pied] |
info = "Si vous constatez des problèmes, contactez : " |
[Niveau] |
titre-niveau = "Choisir votre niveau de botanique" |
niveau-1 = "Débutant" |
niveau-2 = "Intermédiaire" |
niveau-3 = "Expert" |
ok = "Changer" |
[Recherche-accueil] |
titre-general = "eFlore" |
titre-taxon = "Consulter les plantes par genre/famille" |
titre-nom = "Rechercher un nom" |
[Recherche-form-nom] |
titre-nom = "Rechercher une plante" |
valeur-form-nom-sci = "Saisir un nom scientifique (sans auteur)" |
valeur-form-nom-verna = "Saisir un nom commun" |
legende = "Consultation nomenclaturale" |
nom = "Nom" |
ns = "Nom scientifique" |
nv = "Nom commun" |
recherche = "OK" |
fiche = "Accès fiche" |
referentiel = "Référentiels" |
info_nb_lettres = "Veuillez saisir au moins 3 lettres !" |
info_sp_abs = "Aucune espèce trouvée avec cette orthographe. Vérifiez que vous n'avez pas saisi le nom d'auteur." |
orthographe = "Vous cherchez peut-être : " |
nom_ss_corresp = " est un nom sans correspondance. Pour plus d'information, veuillez consulter <br/>"; |
reftax = "le référentiel en cours d'actualisation" |
valeur-form-auteur = "(abréviation de l auteur)" |
valeur-form-bib = "(abrévation de la publication)" |
valeur-form-date = "(ex: 1875)" |
[Recherche-form-avancee] |
info_res_vide = "Aucun taxon ne correspond à ces critères." |
valeur-form-auteur = "(abréviation de l auteur)" |
valeur-form-bib = "(abrévation de la publication)" |
valeur-form-date = "(ex: 1875)" |
[Recherche-form-taxon] |
titre = "Consulter les plantes par genre/famille" |
titre-alphabet = "Consultation par ordre alphabétique" |
legende = "Consultation taxonomique" |
referentiel = "Référentiel : " |
rang = "Rang : " |
projet = "Référentiels" |
valider = "Rechercher" |
[Liste] |
rangF = "Famille" |
rangG = "Genre" |
[Resultat-onglets-ns] |
determination = "Vignettes" |
alphab = "Alphabétique" |
retenu = "Liste" |
decompo = "Tableau" |
[Resultat-onglets-nv] |
determination = "Vignettes noms français" |
alphab = "Tableau multilingue" |
[Fiche] |
onglet-nom-synth = "Synthèse" |
onglet-nom-descr = "Description" |
onglet-nom-ethnobota = "Ethnobota" |
onglet-nom-eco = "Ecologie" |
onglet-nom-classif = "Classification" |
onglet-nom-biblio = "Bibliographie" |
onglet-nom-illustra = "Illustrations" |
onglet-nom-repart = "Répartition" |
onglet-nom-protect = "Protection" |
onglet-descr-synth = "Principales informations sur ce taxon" |
onglet-descr-descr = "Critères de reconnaissance" |
onglet-descr-ethnobota = "Des hommes et des plantes" |
onglet-descr-eco = "Les plantes et leur milieu" |
onglet-descr-classif = "Des noms et des gènes" |
onglet-descr-biblio = "Des livres et des plantes" |
onglet-descr-illustra = "Des images de plantes" |
onglet-descr-repart = "Des plantes et des cartes" |
onglet-descr-protect = "Des plantes et des lois" |
[Metadonnees] |
guid = "Guid" |
langue_meta = "Langue des métadonnées" |
langue_meta_code = "Code de langue des métadonnées" |
langue_meta_href = "Url de référence de la langue des metadonnées" |
code = "Code" |
version = "Version" |
titre = "Titre" |
description = "Description" |
mots_cles = "Mots clés" |
citation = "Citation" |
url_tech = "Url technique" |
url_projet = "Url du projet" |
source = "Source" |
createurs = "Créateurs" |
createurs_details = "Détails des créateurs" |
p_type = "Type" |
p_type_code = "Code de type" |
p_type_href = "Url de référence du code de type" |
p_nom = "Nom" |
p_prenom = "Prénom" |
p_courriel = "Courriel" |
o_type = "Type" |
o_type_code = "Code de type" |
o_type_href = "Url de référence du code de type" |
editeur = "Éditeur" |
editeur_p_prenom = "Prénom de l'éditeur" |
editeur_p_nom = "Nom de l'éditeur" |
editeur_p_courriel = "Courriel de l'éditeur" |
editeur_nom = "Nom de l'éditeur" |
editeur_guid = "Guid de l'éditeur" |
editeur_courriel = "Courriel de l'éditeur" |
editeur_telephone = "Téléphone de l'éditeur" |
editeur_url_info = "Url d'information sur l'éditeur" |
editeur_url_logo = "Url du logo de l'éditeur" |
editeur_type = "Type d'éditeur" |
editeur_acronyme = "Acronyme de l'éditeur" |
editeur_adresse = "Adresse de l'éditeur" |
editeur_coordonnees = "Coordonnées de l'éditeur" |
editeur_coordonnees_datum = "Datum des coordonnées" |
editeur_coordonnees_datum_code = "Code de datum des coordonnées" |
editeur_coordonnees_datum_href = "Url de référence du code de datum des coordonnées" |
editeur_contact = "Contact de l'éditeur" |
editeur_contact_details = "Détails du contact de l'éditeur" |
contributeurs = "Contributeurs" |
contributeurs_details = "Détails des contributeur" |
droits = "Droits" |
url_droits = "Url de référence des droits" |
contact_prenom = "Prénom" |
contact_nom = "Nom" |
contact_courriel = "Courriel" |
contact_role = "Role" |
o_nom = "Nom" |
langue = "Langue" |
langue_code = "Code de langue" |
langue_href = "Url de référence du code de langue" |
date_creation = "Date de création" |
couverture_spatiale = "Couverture spatiale" |
couverture_spatiale_detail = "Détails de la couverture spatiale" |
couverture_spatiale_code = "Code de la couverture spatiale" |
couverture_spatiale_href = "Url de référence du code de la couverture spatiale" |
web_services = "Web services" |
/tags/v5.2-20131127/widget/modules/recherche/config.defaut.ini |
---|
New file |
0,0 → 1,15 |
[url] |
efloreScriptUrl = "http://www.tela-botanica.org/eflore/consultation/presentations/scripts/recherche.js" |
; url vers l'application utilisée par défaut |
efloreConsultationUrl = "http://www.tela-botanica.org/page:eflore" |
; url spécifique à un référentiel |
efloreConsultationBdtfxUrl = "http://www.tela-botanica.org/page:eflore_bdtfx" |
; url spécifique à un référentiel |
efloreConsultationBdtxaUrl = "http://www.tela-botanica.org/page:isfgm" |
efloreRechercheSciUrlTpl = "http://www.tela-botanica.org/service:eflore:0.1/{referentiel}/noms" |
efloreRechercheVernaUrlTpl = "http://www.tela-botanica.org/service:eflore:0.1/{referentiel}/noms-vernaculaires" |
ficheTaxonUrlTpl = "?referentiel={referentiel}&niveau=2&module=fiche&action=fiche&num_nom={num_taxon}&type_nom=nom_scientifique&nom=" |
[referentiel] |
referentielsSciDispos = bdtfx#France : métropole,bdtxa#France : Antilles,isfan#Afrique du Nord |
referentielsVernaDispos = bdtfx:nvjfl,bdtxa:nva |
/tags/v5.2-20131127/widget/modules/recherche/Recherche.php |
---|
New file |
0,0 → 1,105 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Service de recherche dans eflore, permettant d'intégrer le moteur dans une page donnée |
* Encodage en entrée : utf8 |
* Encodage en sortie : utf8 |
* |
* Cas d'utilisation et documentation : |
* @link http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=AideEfloreWidgetRecherche |
* |
* |
* @author Aurélien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright Copyright (c) 2013, Tela Botanica (accueil@tela-botanica.org) |
*/ |
class Recherche extends WidgetCommun { |
const DS = DIRECTORY_SEPARATOR; |
/** |
* Méthode appelée par défaut pour charger ce widget. |
*/ |
public function executer() { |
$retour = null; |
$this->extraireParametres(); |
$methode = $this->traiterNomMethodeExecuter("recherche"); |
if (method_exists($this, $methode)) { |
$retour = $this->$methode(); |
} else { |
$this->messages[] = "Ce type de service '$methode' n'est pas disponible."; |
} |
if (is_null($retour)) { |
$info = 'Un problème est survenu : '.print_r($this->messages, true); |
$this->envoyer($info); |
} else { |
$squelette = dirname(__FILE__).self::DS.'squelettes'.self::DS.$retour['squelette'].'.tpl.html'; |
$contenu = $this->traiterSquelettePhp($squelette, $retour['donnees']); |
if (isset($_GET['callback'])) { |
$this->envoyerJsonp(array('contenu' => $contenu)); |
} else { |
$this->envoyer($contenu); |
} |
} |
} |
public function extraireParametres() { |
extract($this->parametres); |
} |
public function executerRecherche() { |
$widget['donnees'] = array(); |
$widget['donnees']['efloreScriptUrl'] = $this->config['url']['efloreScriptUrl']; |
$widget['donnees']['efloreConsultationUrl'] = $this->config['url']['efloreConsultationUrl']; |
$widget['donnees']['efloreRechercheSciUrlTpl'] = $this->config['url']['efloreRechercheSciUrlTpl']; |
$widget['donnees']['efloreRechercheVernaUrlTpl'] = $this->config['url']['efloreRechercheVernaUrlTpl']; |
$widget['donnees']['ficheTaxonUrlTpl'] = $this->config['url']['ficheTaxonUrlTpl']; |
$widget['donnees']['referentielsSciDispos'] = $this->traiterReferentielSciDispos(); |
$widget['donnees']['referentielsConsultationUrls'] = $this->traiterUrlsConsultationReferentiels($widget['donnees']['referentielsSciDispos']); |
$widget['donnees']['referentielsVernasDispos'] = $this->traiterReferentielsSciVernasDispos(); |
$ref_sci_defaut = array_shift(array_keys($widget['donnees']['referentielsSciDispos'])); |
$ref_verna_defaut = $widget['donnees']['referentielsVernasDispos'][$ref_sci_defaut]; |
$widget['donnees']['efloreRechercheSciUrlDefaut'] = str_replace('{referentiel}', $ref_sci_defaut, $this->config['url']['efloreRechercheSciUrlTpl']); |
$widget['donnees']['efloreRechercheVernaUrlDefaut'] = str_replace('{referentiel}',$ref_verna_defaut, $this->config['url']['efloreRechercheVernaUrlTpl']); |
$widget['donnees']['ficheTaxonUrlTplDefaut'] = str_replace('{referentiel}', $ref_sci_defaut, $this->config['url']['ficheTaxonUrlTpl']); |
$widget['squelette'] = 'recherche'; |
return $widget; |
} |
private function traiterReferentielSciDispos() { |
$refs_sci_fmt = array(); |
$refs_sci = $this->config['referentiel']['referentielsSciDispos']; |
$refs_sci = explode(',', $refs_sci); |
foreach($refs_sci as $ref) { |
$ref_code_desc = explode('#', $ref); |
$refs_sci_fmt[$ref_code_desc[0]] = $ref_code_desc[1]; |
} |
return $refs_sci_fmt; |
} |
private function traiterReferentielsSciVernasDispos() { |
$refs_verna = $this->config['referentiel']['referentielsVernaDispos']; |
$refs_verna = explode(',', $refs_verna); |
$tab_refs_verna = array(); |
foreach($refs_verna as $ref_verna) { |
$ref_sci_a_verna = explode(":", $ref_verna); |
$tab_refs_verna[$ref_sci_a_verna[0]] = $ref_sci_a_verna[1]; |
} |
return $tab_refs_verna; |
} |
private function traiterUrlsConsultationReferentiels($referentiels) { |
$urls = array(); |
foreach($referentiels as $code_ref => $nom) { |
$config_url_ref = 'efloreConsultation'.ucwords($code_ref).'Url'; |
if(isset($this->config['url'][$config_url_ref])) { |
$urls[$code_ref] = $this->config['url'][$config_url_ref]; |
} else { |
$urls[$code_ref] = $this->config['url']['efloreConsultationUrl']; |
} |
} |
return $urls; |
} |
} |
?> |
/tags/v5.2-20131127/widget/modules/recherche/squelettes/exemple.tpl.html |
---|
New file |
0,0 → 1,15 |
<div id="recherche-eflore-1"> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/js/jquery-ui-1.8.17.custom.min.js"></script> |
<link xmlns:xh="http://www.w3.org/1999/xhtml/vocab#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rel="xh:stylesheet stylesheet" href="http://localhost/eflore-consultation/presentations/styles/eflore.css" media="screen" type="text/css" /> |
<link xmlns:xh="http://www.w3.org/1999/xhtml/vocab#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rel="xh:stylesheet stylesheet" href="http://localhost/eflore-consultation/widget/modules/recherche/squelettes/css/recherche.css" media="screen" type="text/css" /> |
<link href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/css/ui-lightness/jquery-ui-1.8.17.custom.css" rel="stylesheet" type="text/css" /> |
<script type="text/javascript"> |
$(document).ready(function() { |
$.getJSON("http://localhost/eflore-consultation/widget/recherche/?mode=ajax&callback=?", function (moteur) { |
$("#recherche-eflore-1").append(moteur.contenu); |
initialiser(); |
}); |
}); |
</script> |
</div> |
/tags/v5.2-20131127/widget/modules/recherche/squelettes/css/recherche.css |
---|
New file |
0,0 → 1,68 |
#conteneur-recherche { |
width: 660px; |
} |
#conteneur-recherche h1.titre-widget { |
margin-top: 5px; |
margin-bottom: 0px; |
color: black; |
background: none; |
} |
#conteneur-recherche { |
background-color: #FFFFFF; |
border-radius: 10px 10px 10px 10px; |
box-shadow: 1px 6px 6px 6px #C3C0AD; |
color: #3A3633; |
font-family: arial; |
font-size: 11px; |
margin: 10px 10px 20px; |
padding: 8px; |
} |
#conteneur-recherche h1 { |
font-size: 14px; |
} |
#conteneur-recherche .zone-choix-referentiel { |
padding: 3px; |
padding-bottom : 5px; |
padding-left: 10px; |
} |
#conteneur-recherche .label-referentiel { |
color: #FD8C13; |
font-weight: bold; |
letter-spacing: 0; |
padding: 0 0 0 5px; |
text-transform: uppercase; |
} |
#conteneur-recherche .selection-referentiel { |
background: none repeat scroll 0 0 white; |
cursor: pointer; |
height: 25px; |
} |
#conteneur-recherche .referentiel-selectionne { |
background-color: #EEE; |
border-color: #EB8F00; |
color: #C87A00; |
cursor: default; |
font-weight: bold; |
text-decoration: underline; |
height: 35px; |
} |
#ef-form-nomenclature label { |
display: inline; |
} |
#eflore_nomenclature_fiche { |
color: black; |
border-color: black; |
} |
.ef-groupe-champs { |
border: none; |
} |
/tags/v5.2-20131127/widget/modules/recherche/squelettes/recherche.tpl.html |
---|
New file |
0,0 → 1,95 |
<!-- DEBUT FORM_NOM --> |
<script type="text/javascript"> |
<!-- |
var AUTOCOMPLETION_ELEMENTS_NBRE = 50; |
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI_TPL = "<?= $efloreRechercheSciUrlTpl; ?>"; |
var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA_TPL = "<?= $efloreRechercheVernaUrlTpl; ?>"; |
var URL_BASE_FICHE_TAXON_TPL = "<?= $ficheTaxonUrlTpl; ?>"; |
var VALEUR_DEFAUT_NOM_SCI = "Saisir un nom scientifique (sans auteur)"; |
var VALEUR_DEFAUT_NOM_VERNA = "Saisir un nom commun"; |
var VALEUR_DEFAUT_AU = ""; |
var VALEUR_DEFAUT_BIB = ""; |
var VALEUR_DEFAUT_DATE = ""; |
var URL_BASE_FICHE_TAXON = "<?= $ficheTaxonUrlTplDefaut; ?>"; |
<?php $refs_urls = json_encode($referentielsConsultationUrls); ?> |
var REFERENTIELS_CONSULTATION_URLS = <?= $refs_urls; ?>; |
<?php $refs_verna = json_encode($referentielsVernasDispos); ?> |
var REFERENTIELS_VERNA_DISPOS = <?= $refs_verna; ?>; |
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI = "<?= $efloreRechercheSciUrlDefaut; ?>"; |
var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA = "<?= $efloreRechercheVernaUrlDefaut; ?>"; |
function gererVisibiliteSelecteurNom() { |
ref_sci = $(".selection-referentiel[disabled=disabled]").attr("name"); |
$("#eflore_nomenclature_referentiel").val(ref_sci); |
URL_SERVICE_AUTOCOMPLETION_NOM_SCI = URL_SERVICE_AUTOCOMPLETION_NOM_SCI_TPL.replace("{referentiel}", ref_sci); |
URL_BASE_FICHE_TAXON = REFERENTIELS_CONSULTATION_URLS[ref_sci]+URL_BASE_FICHE_TAXON_TPL.replace("{referentiel}", ref_sci); |
console.log(URL_BASE_FICHE_TAXON); |
if(REFERENTIELS_VERNA_DISPOS[ref_sci] != undefined) { |
URL_SERVICE_AUTOCOMPLETION_NOM_VERNA = URL_SERVICE_AUTOCOMPLETION_NOM_VERNA_TPL.replace("{referentiel}", REFERENTIELS_VERNA_DISPOS[ref_sci]); |
$("#type_nom_vernaculaire").parent().css("visibility","visible"); |
} else { |
$("#type_nom_vernaculaire").parent().css("visibility","hidden"); |
$("#type_nom_scientifique").attr('checked', 'checked'); |
$('#nom').val(); |
$('#nom').attr("placeholder", ""); |
} |
$('#ef-form-nomenclature').attr("action", REFERENTIELS_CONSULTATION_URLS[ref_sci]); |
} |
function mettreEnValeurReferentielSelectionne(bouton) { |
$(".selection-referentiel").removeAttr("disabled"); |
$(".selection-referentiel").removeClass("referentiel-selectionne"); |
bouton.attr("disabled","disabled"); |
bouton.addClass("referentiel-selectionne"); |
gererVisibiliteSelecteurNom(); |
} |
function initialiser() { |
$.getScript("<?= $efloreScriptUrl; ?>").done(function(script, textStatus) { |
// la fonction initialiserMoteur est la fonction d'initialisation du script de recherche tiré d'eflore |
// elle utilise les variable définies ci dessus, et elle est donc chargée après. |
initialiserMoteur(); |
$(".selection-referentiel").click(function () { |
mettreEnValeurReferentielSelectionne($(this)); |
}); |
mettreEnValeurReferentielSelectionne($($(".selection-referentiel")[0])); |
}); |
} |
// --> |
</script> |
<div class="importance1" id="conteneur-recherche"> |
<h1 class="titre-widget">Cherchez une plante de <span class="zone-choix-referentiel"> |
<?php $premier_ref = true; ?> |
<?php foreach($referentielsSciDispos as $code => $intitule) : ?> |
<span class="referentiel"> |
<input type="button" class="selection-referentiel" id="referentiel_<?= $code ?>" name="<?= $code; ?>" value="<?= $intitule; ?>" <?= $premier_ref ? 'disabled="disabled"' : ""; ?> /> |
</span> |
<?php $premier_ref = false; ?> |
<?php endforeach; ?> |
</span> </h1> |
<form id="ef-form-nomenclature" name="ef-form-nomenclature" action="<?= $efloreConsultationUrl; ?>" method="get"> |
<fieldset class="ef-groupe-champs"> |
<span class="zone-choix-type-nom"> |
<span class="type-nom"> |
<input type="radio" id="type_nom_scientifique" name="type_nom" value="nom_scientifique" checked="checked" /> |
<label for="type_nom_scientifique">Nom scientifique</label> |
</span> |
<span class="type-nom"> |
<input type="radio" id="type_nom_vernaculaire" name="type_nom" value="nom_vernaculaire" /> |
<label for="type_nom_vernaculaire" title="(en français, allemand, anglais, catalan, espagnol, italien ou néerlandais)">Nom commun</label> |
</span> |
</span> |
<input type="text" aria-haspopup="true" aria-autocomplete="list" role="textbox" autocomplete="off" id="nom" name="nom" class="champ ui-autocomplete-input" size="30" maxlength="255" /> |
<span id="zone-liens-recherche"> |
<input type="hidden" id="eflore_nomenclature_niveau" name="niveau" value="2" /> |
<input type="hidden" id="eflore_nomenclature_module" name="module" value="recherche" /> |
<input type="hidden" id="eflore_nomenclature_referentiel" name="referentiel" value="<?= array_shift(array_keys($referentielsSciDispos)); ?>" /> |
<input type="hidden" id="eflore_nomenclature_action" name="action" value="rechercheSimple" /> |
<input type="submit" id="eflore_nomenclature_submit" name="submit" value="OK" class="ok" /> |
<input type="submit" id="eflore_nomenclature_fiche" name="acces_fiche" value="Accès fiche" /> |
</span> |
</fieldset> |
</form> |
</div> |
<!-- FIN FORM_NOM --> |
/tags/v5.2-20131127/widget/modules/recherche |
---|
New file |
Property changes: |
Added: svn:ignore |
+config.ini |
/tags/v5.2-20131127/widget/Widget.php |
---|
New file |
0,0 → 1,161 |
<?php |
// In : utf8 url_encoded (get et post) |
// Out : utf8 |
/** |
* La classe Widget analyser l'url et chage le widget correspondant. |
* Format d'url : |
* /widget/nom_du_widget?parametres1=ma_valeur1¶metre2=ma_valeur2 |
* Les widget sont dans des dossiers en minuscule correspondant au nom de la classe du widget. |
* Exemple : /widget/carto avec la classe Carto.php dans le dossier carto. |
* |
* |
* @author jpm |
* |
*/ |
class Widget { |
/** Les paramètres de configuration extrait du fichier .ini */ |
private static $config; |
/** Le nom du widget demandé. */ |
private $widget = null; |
/** Les chemins où l'autoload doit chercher des classes. */ |
private static $autoload_chemins = array(); |
/** Les paramètres de l'url $_GET nettoyés. */ |
private $parametres = null; |
/** |
* Constructeur. |
* Parse le fichier de configuraion "widget.ini" et parse l'url à la recherche du widget demandé. |
* @param str iniFile Configuration file to use |
*/ |
public function __construct($fichier_ini = 'widget.ini.php') { |
// Chargement de la configuration |
self::$config = parse_ini_file($fichier_ini, TRUE); |
// Paramêtres de config dynamiques |
self::$config['chemins']['baseURLAbsoluDyn'] = 'http://'.$_SERVER['SERVER_NAME'].self::$config['chemins']['baseURL'].'%s'; |
// Gestion de la mémoire maximum allouée aux services |
ini_set('memory_limit', self::$config['parametres']['limiteMemoire']); |
// Réglages de PHP |
setlocale(LC_ALL, self::$config['parametres']['locale']); |
date_default_timezone_set(self::$config['parametres']['fuseauHoraire']); |
// Gestion des erreurs |
error_reporting(self::$config['parametres']['erreurNiveau']); |
if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER['QUERY_STRING'])) { |
$url_morceaux = $this->parserUrl(); |
if (isset($url_morceaux[0])) { |
$this->widget = $url_morceaux[0]; |
self::$config['chemins']['widgetCourantDossier'] = self::$config['chemins']['widgetsDossier'].strtolower($this->widget).DIRECTORY_SEPARATOR; |
$this->chargerWidgetConfig(); |
} |
// Chargement des chemins pour l'autoload |
$this->chargerCheminAutoload(); |
// Enregistrement de la méthode gérant l'autoload des classes |
spl_autoload_register(array('Widget', 'chargerClasse')); |
// Nettoyage du $_GET (sécurité) |
$this->collecterParametres(); |
} else { |
$e = 'Les widget nécessite les variables serveurs suivantes pour fonctionner : REQUEST_URI et QUERY_STRING.'; |
trigger_error($e, E_USER_ERROR); |
} |
} |
private function parserUrl() { |
if (strlen($_SERVER['QUERY_STRING']) == 0) { |
$len = strlen($_SERVER['REQUEST_URI']); |
} else { |
$len = -(strlen($_SERVER['QUERY_STRING']) + 1); |
} |
$url = substr($_SERVER['REQUEST_URI'], strlen(self::$config['chemins']['baseURL']), $len); |
$url_morceaux = explode('/', $url); |
return $url_morceaux; |
} |
private function collecterParametres() { |
if (isset($_GET) && $_GET != '') { |
$this->nettoyerGet(); |
$this->parametres = $_GET; |
} |
} |
private function nettoyerGet() { |
foreach ($_GET as $cle => $valeur) { |
$verifier = array('NULL', "\n", "\r", "\\", '"', "\x00", "\x1a", ';'); |
$_GET[$cle] = strip_tags(str_replace($verifier, '', $valeur)); |
} |
} |
private function chargerCheminAutoload() { |
$chemins_communs = explode(';', self::$config['chemins']['autoload']); |
$chemins_communs = array_map('trim', $chemins_communs); |
array_unshift($chemins_communs, ''); |
$chemins_widget = array(); |
if (isset(self::$config[$this->widget]['autoload'])) { |
$chemins_widget = explode(';', self::$config[$this->widget]['autoload']); |
foreach ($chemins_widget as $cle => $chemin) { |
$chemins_widget[$cle] = self::$config['chemins']['widgetCourantDossier'].trim($chemin); |
} |
} |
self::$autoload_chemins = array_merge($chemins_communs, $chemins_widget); |
} |
/** |
* La méthode chargerClasse() charge dynamiquement les classes trouvées dans le code. |
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code. |
* |
*@param string le nom de la classe appelée. |
*@return void le fichier contenant la classe doit être inclu par la fonction. |
*/ |
public static function chargerClasse($classe) { |
if (class_exists($classe)) { |
return null; |
} |
foreach (self::$autoload_chemins as $chemin) { |
$chemin = $chemin.$classe.'.php'; |
if (file_exists($chemin)) { |
require_once $chemin; |
} |
} |
} |
/** |
* Execute le widget. |
*/ |
function executer() { |
if (!is_null($this->widget)) { |
$classe_widget = ucfirst($this->widget); |
$fichier_widget = self::$config['chemins']['widgetCourantDossier'].$classe_widget.'.php'; |
if (file_exists($fichier_widget)) { |
include_once $fichier_widget; |
if (class_exists($classe_widget)) { |
$widget = new $classe_widget(self::$config, $this->parametres); |
$widget->executer(); |
} |
} |
} |
} |
/** |
* Charge le fichier de config spécifique du wiget et fusionne la config avec celle partagés par l'ensemble des widgets. |
*/ |
private function chargerWidgetConfig() { |
$widget_config_ini_fichier = self::$config['chemins']['widgetCourantDossier'].'config.ini'; |
if (file_exists($widget_config_ini_fichier)) { |
$widget_config = parse_ini_file($widget_config_ini_fichier, TRUE); |
self::$config = array_merge(self::$config, $widget_config); |
} |
} |
} |
?> |
/tags/v5.2-20131127/widget/.htaccess |
---|
New file |
0,0 → 1,13 |
<files *.ini> |
order deny,allow |
deny from all |
</files> |
#AddHandler x-httpd-php5 .php |
AddDefaultCharset UTF-8 |
RewriteEngine On |
# Redirections générale vers le fichier principal de Widget. |
RewriteCond %{REQUEST_FILENAME} !-d |
RewriteCond %{REQUEST_FILENAME} !-f |
RewriteRule ^.*$ index.php/ |
/tags/v5.2-20131127/widget/bibliotheque/WidgetCommun.php |
---|
New file |
0,0 → 1,431 |
<?php |
abstract class WidgetCommun { |
protected $config = null; |
protected $parametres = null; |
protected $messages = array(); |
protected $debug = array(); |
public function __construct($config, $parametres) { |
$this->config = $config; |
$this->parserFichierIni($config['chemins']['widgetCourantDossier'].'config.ini'); |
$this->parametres = $parametres; |
} |
/** |
* Parse le fichier ini donné en paramètre |
* @param string $fichier_ini nom du fichier ini à parser |
* @return boolean true si le fichier ini a été trouvé. |
*/ |
private function parserFichierIni($fichier_ini) { |
$retour = false; |
if (file_exists($fichier_ini)) { |
$ini = parse_ini_file($fichier_ini, true); |
$this->fusionner($ini); |
$retour = true; |
} |
return $retour; |
} |
/** |
* fusionne un tableau de paramètres avec le tableau de config global |
* @param array $ini le tableau à fusionner |
*/ |
private function fusionner(array $ini) { |
$this->config = array_merge($this->config, $ini); |
} |
protected function traiterNomMethodeExecuter($nom) { |
$methode = 'executer'; |
$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom)))); |
return $methode; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION des CLASSES CHARGÉES à la DEMANDE |
protected function getDao() { |
if (! isset($this->dao)) { |
$this->dao = new Dao(); |
} |
return $this->dao; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DE MÉTHODES COMMUNES ENTRE LES SERVICES |
protected function getUrlImage($id, $format = 'L') { |
$url_tpl = $this->config['chemins']['celImgUrlTpl']; |
$id = sprintf('%09s', $id).$format; |
$url = sprintf($url_tpl, $id); |
return $url; |
} |
protected function encoderMotCle($mot_cle) { |
return md5(mb_strtolower($mot_cle)); |
} |
private function protegerMotsCles($mots_cles, $type) { |
$separateur = ($type == self::TYPE_IMG) ? ',' : ';' ; |
$mots_cles_a_proteger = explode($separateur,rtrim(trim($mots_cles), $separateur)); |
foreach ($mots_cles_a_proteger as $mot) { |
$mots_cles_proteges[] = $this->bdd->quote($mot); |
} |
$mots_cles = implode(',', $mots_cles_proteges); |
return $mots_cles; |
} |
protected function tronquerCourriel($courriel) { |
$courriel = preg_replace('/[^@]+$/i', '...', $courriel); |
return $courriel; |
} |
protected function nettoyerTableau($tableau) { |
foreach ($tableau as $cle => $valeur) { |
if (is_array($valeur)) { |
$valeur = $this->nettoyerTableau($valeur); |
} else { |
$valeur = $this->nettoyerTexte($valeur); |
} |
$tableau[$cle] = $valeur; |
} |
return $tableau; |
} |
protected function nettoyerTexte($txt) { |
$txt = preg_replace('/&(?!([a-z]+|#[0-9]+|#x[0-9][a-f]+);)/i', '&', $txt); |
$txt = preg_replace('/^(?:000null|null)$/i', '', $txt); |
return $txt; |
} |
protected function etreVide($valeur) { |
$vide = false; |
if ($valeur == '' || $valeur == 'null'|| $valeur == '000null' || $valeur == '0') { |
$vide = true; |
} |
return $vide; |
} |
protected function formaterDate($date_heure_mysql, $format = '%A %d %B %Y à %H:%M') { |
$date_formatee = ''; |
if (!$this->etreVide($date_heure_mysql)) { |
$timestamp = $this->convertirDateHeureMysqlEnTimestamp($date_heure_mysql); |
$date_formatee = strftime($format, $timestamp); |
} |
return $date_formatee; |
} |
protected function convertirDateHeureMysqlEnTimestamp($date_heure_mysql){ |
$val = explode(' ', $date_heure_mysql); |
$date = explode('-', $val[0]); |
$heure = explode(':', $val[1]); |
return mktime((int) $heure[0], (int) $heure[1], (int) $heure[2], (int) $date[1], (int) $date[2], (int) $date[0]); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DE L'IDENTIFICATION et des UTILISATEURS |
protected function getAuthIdentifiant() { |
$id = (isset($_SERVER['PHP_AUTH_USER'])) ? $_SERVER['PHP_AUTH_USER'] : null; |
return $id; |
} |
protected function getAuthMotDePasse() { |
$mdp = (isset($_SERVER['PHP_AUTH_PW'])) ? $_SERVER['PHP_AUTH_PW'] : null; |
return $mdp; |
} |
protected function authentifierAdmin() { |
$message_accueil = "Veuillez vous identifier avec votre compte Tela Botanica."; |
$message_echec = "Accès limité aux administrateurs du CEL.\n". |
"Votre tentative d'identification a échoué.\n". |
"Actualiser la page pour essayer à nouveau si vous êtes bien inscrit comme administrateur."; |
return $this->authentifier($message_accueil, $message_echec, 'Admin'); |
} |
protected function authentifierUtilisateur() { |
$message_accueil = "Veuillez vous identifier avec votre compte Tela Botanica."; |
$message_echec = "Accès limité aux utilisateur du CEL.\n". |
"Inscrivez vous http://www.tela-botanica.org/page:inscription pour le devenir.\n". |
"Votre tentative d'identification a échoué.\n". |
"Actualiser la page pour essayer à nouveau si vous êtes déjà inscrit ou contacter 'accueil@tela-botanica.org'."; |
return $this->authentifier($message_accueil, $message_echec, 'Utilisateur'); |
} |
private function authentifier($message_accueil, $message_echec, $type) { |
$id = $this->getAuthIdentifiant(); |
if (!isset($id)) { |
$this->envoyerAuth($message_accueil, $message_echec); |
} else { |
if ($type == 'Utilisateur' && $this->getAuthMotDePasse() == 'debug') { |
$autorisation = true; |
} else { |
$methodeAutorisation = "etre{$type}Autorise"; |
$autorisation = $this->$methodeAutorisation(); |
} |
if ($autorisation == false) { |
$this->envoyerAuth($message_accueil, $message_echec); |
} |
} |
return true; |
} |
protected function etreUtilisateurAutorise() { |
$identifiant = $this->getAuthIdentifiant(); |
$mdp = md5($this->getAuthMotDePasse()); |
$url = sprintf($this->config['authentification']['serviceUrlTpl'], $identifiant, $mdp); |
$json = $this->getDao()->consulter($url); |
$existe = json_decode($json); |
$autorisation = (isset($existe) && $existe) ? true :false; |
return $autorisation; |
} |
protected function etreAdminAutorise($identifiant) { |
$identifiant = $this->getAuthIdentifiant(); |
$autorisation = ($this->etreUtilisateurAutorise() && $this->etreAdminCel($identifiant)) ? true : false; |
return $autorisation; |
} |
protected function etreAdminCel($courriel) { |
$admins = $this->config['authentification']['administrateurs']; |
$courriels_autorises = explode(',', $admins); |
$autorisation = (in_array($courriel, $courriels_autorises)) ? true : false ; |
return $autorisation; |
} |
/** |
* Prend en paramêtre un tableau de courriels et retourne après avoir intérogé un service we de l'annuaire |
* une tableau avec en clé le courriel et en valeur, un tableau associatif : |
* - nom : le nom de l'utilisateur |
* - prenom : le prénom de l'utilisateur. |
* @param array $courriels un tableau de courriels pour lesquels il faut recherche le prénom et nom. |
*/ |
protected function recupererUtilisateursNomPrenom(Array $courriels) { |
// Récupération des données au format Json |
$service = "utilisateur/prenom-nom-par-courriel/".implode(',', $courriels); |
$url = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service); |
$json = $this->getDao()->consulter($url); |
return (array) json_decode($json); |
} |
protected function recupererUtilisateursIdentite(Array $courriels) { |
// Récupération des données au format Json |
$service = "utilisateur/identite-par-courriel/".implode(',', $courriels); |
$url = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service); |
$json = $this->getDao()->consulter($url); |
$utilisateurs = json_decode($json); |
foreach ($courriels as $courriel) { |
$info = array('id' => null, 'intitule' => ''); |
if (isset($utilisateurs->$courriel)) { |
$info['intitule'] = $utilisateurs->$courriel->intitule; |
$info['id'] = $utilisateurs->$courriel->id; |
} else { |
$info['intitule'] = $this->tronquerCourriel($courriel); |
} |
$noms[$courriel] = $info; |
} |
return $noms; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION de l'ENVOIE au NAVIGATEUR |
protected function envoyerJsonp($donnees = null, $encodage = 'utf-8') { |
$contenu = $_GET['callback'].'('.json_encode($donnees).');'; |
$this->envoyer($contenu, 'text/html', $encodage); |
} |
protected function envoyer($donnees = null, $mime = 'text/html', $encodage = 'utf-8') { |
// Traitements des messages d'erreurs et données |
if (count($this->messages) != 0) { |
header('HTTP/1.1 500 Internal Server Error'); |
$mime = 'text/html'; |
$encodage = 'utf-8'; |
$sortie = '<html>'. |
'<head><title>Messages</title></head>'. |
'<body><pre>'.implode("\n", $this->messages).'</pre><body>'. |
'</html>'; |
} else { |
$sortie = $donnees; |
if (is_null($donnees)) { |
$sortie = 'OK'; |
} |
} |
// Gestion de l'envoie du déboguage |
$this->envoyerDebogage(); |
// Envoie sur la sortie standard |
$this->envoyerContenu($encodage, $mime, $sortie); |
} |
private function envoyerDebogage() { |
if (!is_array($this->debug)) { |
$this->debug[] = $this->debug; |
} |
if (count($this->debug) != 0) { |
foreach ($this->debug as $cle => $val) { |
if (is_array($val)) { |
$this->debug[$cle] = print_r($val, true); |
} |
} |
header('X-DebugJrest-Data:'.json_encode($this->debug)); |
} |
} |
private function envoyerContenu($encodage, $mime, $contenu) { |
if (!is_null($mime) && !is_null($encodage)) { |
header("Content-Type: $mime; charset=$encodage"); |
} else if (!is_null($mime) && is_null($encodage)) { |
header("Content-Type: $mime"); |
} |
print_r($contenu); |
} |
private function envoyerAuth($message_accueil, $message_echec) { |
header('HTTP/1.0 401 Unauthorized'); |
header('WWW-Authenticate: Basic realm="'.mb_convert_encoding($message_accueil, 'ISO-8859-1', 'UTF-8').'"'); |
header('Content-type: text/plain; charset=UTF-8'); |
print $message_echec; |
exit(0); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DES SQUELETTES (PHP, TXT...) |
/** |
* Méthode prenant en paramètre un tableau associatif, les clés seront recherchées dans le texte pour être |
* remplacer par la valeur. Dans le texte, les clés devront être entre accolades : {} |
* |
* @param String $txt le texte où chercher les motifs. |
* @param Array $donnees un tableau associatif contenant les motifs à remplacer. |
* |
* @return String le texte avec les motifs remplacer par les valeurs du tableau. |
*/ |
protected static function traiterSqueletteTxt($txt, Array $donnees = array()) { |
$motifs = array(); |
$valeurs = array(); |
foreach ($donnees as $cle => $valeur) { |
if (strpos($cle, '{') === false && strpos($cle, '}') === false) { |
$motifs = '{'.$cle.'}'; |
$valeurs = $valeur; |
} |
} |
$txt = str_replace($motifs, $valeurs, $txt); |
return $txt; |
} |
/** |
* Méthode prenant en paramètre un chemin de fichier squelette et un tableau associatif de données, |
* en extrait les variables, charge le squelette et retourne le résultat des deux combinés. |
* |
* @param String $fichier le chemin du fichier du squelette |
* @param Array $donnees un tableau associatif contenant les variables a injecter dans le squelette. |
* |
* @return boolean false si le squelette n'existe pas, sinon la chaine résultat. |
*/ |
protected static function traiterSquelettePhp($fichier, Array $donnees = array()) { |
$sortie = false; |
if (file_exists($fichier)) { |
// Extraction des variables du tableau de données |
extract($donnees); |
// Démarage de la bufferisation de sortie |
ob_start(); |
// Si les tags courts sont activés |
if ((bool) @ini_get('short_open_tag') === true) { |
// Simple inclusion du squelette |
include $fichier; |
} else { |
// Sinon, remplacement des tags courts par la syntaxe classique avec echo |
$html_et_code_php = self::traiterTagsCourts($fichier); |
// Pour évaluer du php mélangé dans du html il est nécessaire de fermer la balise php ouverte par eval |
$html_et_code_php = '?>'.$html_et_code_php; |
// Interprétation du html et du php dans le buffer |
echo eval($html_et_code_php); |
} |
// Récupèration du contenu du buffer |
$sortie = ob_get_contents(); |
// Suppression du buffer |
@ob_end_clean(); |
} else { |
$msg = "Le fichier du squelette '$fichier' n'existe pas."; |
trigger_error($msg, E_USER_WARNING); |
} |
// Retourne le contenu |
return $sortie; |
} |
/** |
* Fonction chargeant le contenu du squelette et remplaçant les tags court php (<?= ...) par un tag long avec echo. |
* |
* @param String $chemin_squelette le chemin du fichier du squelette |
* |
* @return string le contenu du fichier du squelette php avec les tags courts remplacés. |
*/ |
private static function traiterTagsCourts($chemin_squelette) { |
$contenu = file_get_contents($chemin_squelette); |
// Remplacement de tags courts par un tag long avec echo |
$contenu = str_replace('<?=', '<?php echo ', $contenu); |
// Ajout systématique d'un point virgule avant la fermeture php |
$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu); |
return $contenu; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// UTILITAIRES |
/** |
* Permet de trier un tableau multi-dimenssionnel en gardant l'ordre des clés. |
* |
* @param Array $array le tableau à trier |
* @param Array $cols tableau indiquant en clé la colonne à trier et en valeur l'ordre avec SORT_ASC ou SORT_DESC |
* @author cagret at gmail dot com |
* @see http://fr.php.net/manual/fr/function.array-multisort.php Post du 21-Jun-2009 12:38 |
*/ |
public static function trierTableauMd($array, $cols) { |
$colarr = array(); |
foreach ($cols as $col => $order) { |
$colarr[$col] = array(); |
foreach ($array as $k => $row) { |
$colarr[$col]['_'.$k] = strtolower(self::supprimerAccents($row[$col])); |
} |
} |
$params = array(); |
foreach ($cols as $col => $order) { |
$params[] =& $colarr[$col]; |
$params = array_merge($params, (array)$order); |
} |
call_user_func_array('array_multisort', $params); |
$ret = array(); |
$keys = array(); |
$first = true; |
foreach ($colarr as $col => $arr) { |
foreach ($arr as $k => $v) { |
if ($first) { |
$keys[$k] = substr($k,1); |
} |
$k = $keys[$k]; |
if (!isset($ret[$k])) { |
$ret[$k] = $array[$k]; |
} |
$ret[$k][$col] = $array[$k][$col]; |
} |
$first = false; |
} |
return $ret; |
} |
private static function supprimerAccents($str, $charset='utf-8') |
{ |
$str = htmlentities($str, ENT_NOQUOTES, $charset); |
$str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str); |
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ' |
$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères |
return $str; |
} |
} |
?> |
/tags/v5.2-20131127/widget/bibliotheque/Dao.php |
---|
New file |
0,0 → 1,155 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe modèle spécifique à l'application, donc d'accés au données, elle ne devrait pas être appelée de l'extérieur. |
* |
* @category php5 |
* @package Widget |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL |
* @version SVN: $Id$ |
*/ |
class Dao { |
const HTTP_URL_REQUETE_SEPARATEUR = '&'; |
const HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR = '='; |
private $http_methodes = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', 'TRACE'); |
protected $parametres = null; |
private $url = null; |
private $reponse_entetes = null; |
//+----------------------------------------------------------------------------------------------------------------+ |
// ACCESSEURS |
public function getReponseEntetes($cle) { |
return $this->reponse_entetes; |
} |
public function getParametre($cle) { |
$valeur = (isset($this->parametres[$cle])) ? $this->parametres[$cle] : null; |
return $valeur; |
} |
public function ajouterParametre($cle, $valeur) { |
$this->parametres[$cle] = $valeur; |
} |
public function supprimerParametre($cle) { |
unset($this->parametres[$cle]); |
} |
public function nettoyerParametres() { |
$this->parametres = null; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// MÉTHODES |
public function consulter($url) { |
$retour = $this->envoyerRequete($url, 'GET'); |
return $retour; |
} |
public function ajouter($url, Array $donnees) { |
$retour = $this->envoyerRequete($url, 'PUT', $donnees); |
return $retour; |
} |
public function modifier($url, Array $donnees) { |
$retour = $this->envoyerRequete($url, 'POST', $donnees); |
return $retour; |
} |
public function supprimer($url) { |
$retour = $this->envoyerRequete($url, 'DELETE'); |
return $retour; |
} |
public function envoyerRequete($url, $mode, Array $donnees = array()) { |
$this->url = $url; |
$contenu = false; |
if (! in_array($mode, $this->http_methodes)) { |
$e = "Le mode de requête '$mode' n'est pas accepté!"; |
trigger_error($e, E_USER_WARNING); |
} else { |
if ($mode == 'GET') { |
$this->traiterUrlParametres(); |
} |
$contexte = stream_context_create(array( |
'http' => array( |
'method' => $mode, |
'header' => "Content-type: application/x-www-form-urlencoded\r\n", |
'content' => http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR)))); |
$flux = @fopen($this->url, 'r', false, $contexte); |
if (!$flux) { |
$this->reponse_entetes = $http_response_header; |
$e = "L'ouverture de l'url '{$this->url}' par la méthode HTTP '$mode' a échoué!"; |
trigger_error($e, E_USER_WARNING); |
} else { |
// Informations sur les en-têtes et métadonnées du flux |
$this->reponse_entetes = stream_get_meta_data($flux); |
// Contenu actuel de $url |
$contenu = stream_get_contents($flux); |
fclose($flux); |
} |
$this->traiterEntete(); |
} |
$this->reinitialiser(); |
return $contenu; |
} |
private function traiterUrlParametres() { |
$parametres = array(); |
if (count($this->parametres) > 0) { |
foreach ($this->parametres as $cle => $valeur) { |
$cle = rawurlencode($cle); |
$valeur = rawurlencode($valeur); |
$parametres[] = $cle.self::HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR.$valeur; |
} |
$url_parametres = implode(self::HTTP_URL_REQUETE_SEPARATEUR, $parametres); |
$this->url = $this->url.'?'.$url_parametres; |
} |
} |
private function traiterEntete() { |
$infos = $this->analyserEntete(); |
$this->traiterEnteteDebogage($infos); |
} |
private function analyserEntete() { |
$entetes = $this->reponse_entetes; |
$infos = array('date' => null, 'uri' => $this->url, 'debogages' => null); |
if (isset($entetes['wrapper_data'])) { |
$entetes = $entetes['wrapper_data']; |
} |
foreach ($entetes as $entete) { |
if (preg_match('/^X_REST_DEBOGAGE_MESSAGES: (.+)$/', $entete, $match)) { |
$infos['debogages'] = json_decode($match[1]); |
} |
if (preg_match('/^Date: .+ ([012][0-9]:[012345][0-9]:[012345][0-9]) .*$/', $entete, $match)) { |
$infos['date'] = $match[1]; |
} |
} |
return $infos; |
} |
private function traiterEnteteDebogage($entetes_analyses) { |
if (isset($entetes['debogages'])) { |
$date = $entetes['date']; |
$uri = $entetes['uri']; |
$debogages = $entetes['debogages']; |
foreach ($debogages as $debogage) { |
$e = "DEBOGAGE : $date - $uri :\n$debogage"; |
trigger_error($e, E_USER_NOTICE); |
} |
} |
} |
private function reinitialiser() { |
$this->nettoyerParametres(); |
} |
} |
/tags/v5.2-20131127/widget/index.php |
---|
New file |
0,0 → 1,5 |
<?php |
require 'Widget.php'; |
$widget = new Widget(); |
$widget->executer(); |
?> |
/tags/v5.2-20131127/widget/widget.ini.defaut.php |
---|
New file |
0,0 → 1,29 |
;<?/* |
[parametres] |
;Memoire maxi pour les services : 128Mo = 134217728 ; 256Mo = 268435456 ; 512Mo = 536870912 ; 1Go = 1073741824 |
limiteMemoire = "512M" |
; Niveau d'erreur PHP |
erreurNiveau = 30719 ; E_ALL = 30719 |
; Séparateur d'url en entrée |
argSeparatorInput = "&" |
; Indication de la locale (setLocale(LC_ALL, ?)) pour les classes appelées par Widget.php |
locale = "fr_FR.UTF-8" |
; Indication du fuseau horraire par défaut date_default_timezone_set(?)pour les classes appelées par Widget.php |
fuseauHoraire = "Europe/Paris" |
[chemins] |
; Chemins à utiliser dans la méthode autoload des widgets |
autoload = "bibliotheque/" |
; Dossier contenant les widgets |
widgetsDossier = "modules/" |
; Dossier contenant le widget demandé construit dynamiquement dans le fichier Widget.php |
widgetCourantDossier = "" |
; Dossier contenant les fichiers des bibliothèques tierces |
bibliothequeDossier = "bibliotheque/" |
; Base de l'url servant à appeler les widgets |
baseURL = "/eflore-consultation/widget/" |
; URL de base absolue des Widgets du CEL construit dynamiquement dans le fichier WidgetCommun.php |
baseURLAbsoluDyn = "" |
; URL des services web du CEL sous forme de template à utiliser avec sprintf |
baseURLServicesEfloreTpl = "http://localhost/service:eflore::0.1/%s" |
;*/?> |
/tags/v5.2-20131127/widget |
---|
New file |
Property changes: |
Added: svn:ignore |
+widget.ini.php |
/tags/v5.2-20131127/index_mobile.php |
---|
New file |
0,0 → 1,12 |
<?php |
// declare(encoding='UTF-8'); |
/** Inclusion du fichier principal de l'application*/ |
require_once 'eflore.php'; |
echo AppControleur::getContenuCorps(); |
echo AppControleur::getContenuPied(); |
// Débogage |
echo AppControleur::getChrono(); |
echo AppControleur::getExceptions(); |
?> |
/tags/v5.2-20131127/eflore_papyrus.php |
---|
New file |
0,0 → 1,82 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Mon exemple d'application. |
* Fichier contenant les fonctions nécessaire pour l'insertion de l'application dans Papyrus. |
* |
* @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$ |
*/ |
// Gestion des paramêtres passés par Papyrus |
if (isset($GLOBALS['_GEN_commun']['info_application']->referentiel)) { |
$_GET['referentiel'] = $GLOBALS['_GEN_commun']['info_application']->referentiel; |
} |
if (isset($GLOBALS['_GEN_commun']['info_application']->module) && !isset($_GET['module'])) { |
$_GET['module'] = $GLOBALS['_GEN_commun']['info_application']->module; |
} |
/** Inclusion du fichier principal de l'application*/ |
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'eflore.php'; |
$chemin = '/eflore/consultation/'; |
$chemin_commun = 'http://www.tela-botanica.org/commun/'; |
// Définition des feuilles de style de l'application pour Papyrus |
// TODO: il y a surement mieux à faire pour obtenir l'url des fichiers |
GEN_stockerStyleExterne('jquery-ui', $chemin_commun.'jquery/jquery-ui/1.8.17/css/ui-lightness/jquery-ui-1.8.17.custom.css'); |
GEN_stockerStyleExterne('fancybox', $chemin_commun.'jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.css'); |
GEN_stockerStyleExterne('eflore', $chemin.'/presentations/styles/eflore.css'); |
// Définition des fichiers JS de l'application pour Papyrus |
GEN_stockerFichierScript('jquery-1.7', $chemin_commun.'jquery/1.7.1'.DS.'jquery-1.7.1.js'); |
GEN_stockerFichierScript('jquery-ui-1.8.16', $chemin_commun.'jquery/jquery-ui/1.8.5/js'.DS.'jquery-ui-1.8.5.custom.min.js'); |
GEN_stockerFichierScript('fancybox', $chemin_commun.'/jquery/fancybox/1.3.4'.DS.'jquery.fancybox-1.3.4.pack.js'); |
GEN_stockerFichierScript('cookie', $chemin_commun.'jquery/cookie/1.0/jquery.cookie.min.js'); |
GEN_stockerFichierScript('eflore-general', $chemin.'presentations/scripts'.DS.'eflore.js'); |
GEN_stockerFichierScript('autocompletion', $chemin.'presentations/scripts'.DS.'recherche.js'); |
GEN_stockerFichierScript('eflore-synthese', $chemin.'presentations/scripts'.DS.'fiche-synthese.js'); |
// +--------------------------------------------------------------------------------------------------+ |
// Remplacement de méta tags fournit par Papyrus par ceux créés dans l'appli |
if (AppControleur::getMetaTitre() != '') { |
$GLOBALS['_PAPYRUS_']['rendu']['TITRE_PAGE'] = AppControleur::getMetaTitre(); |
} |
if (AppControleur::getMetaDescription() != '') { |
GEN_modifierMetaName('description', AppControleur::getMetaDescription()); |
} |
if (AppControleur::getMetaTags() != '') { |
GEN_modifierMetaName('keywords', AppControleur::getMetaTags()); |
} |
// +--------------------------------------------------------------------------------------------------+ |
// Fonctions d'affichage dans Papyrus |
/** |
* Fonction d'affichage de Papyrus, pour le corps de page. |
*/ |
function afficherContenuCorps() { |
return AppControleur::getContenuCorps(); |
} |
function afficherContenuTete() { |
return AppControleur::getContenuTete(); |
} |
function afficherContenuPied() { |
return AppControleur::getContenuPied(); |
} |
function afficherContenuNavigation() { |
return AppControleur::getContenuNavigation(); |
} |
function afficherContenuMenu() { |
return AppControleur::getContenuMenu(); |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/MetaDonnees.php |
---|
New file |
0,0 → 1,35 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les noms scientifiques. |
* |
* @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 MetaDonnees extends Eflore { |
private $version = '+'; |
public function setVersion($version) { |
$this->version = $version; |
} |
public function getMetaDonnees() { |
$url = $this->getUrlMetaDonnees(); |
// XXX: request ontologies |
return $this->chargerDonnees($url); |
} |
private function getUrlMetaDonnees() { |
$tpl = Config::get('metaDonneesTpl'); |
$params = array('verproj' => 'version.projet', 'version' => $this->version); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Images.php |
---|
New file |
0,0 → 1,298 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les images. |
* |
* @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 Images extends Eflore { |
private $nntaxon; |
private $limite; |
private $depart; |
public function setNnTaxon($nntax) { |
$this->nntaxon = $nntax; |
} |
public function setLimite($limite) { |
$this->limite = $limite; |
} |
public function setDepart($depart) { |
$this->depart = $depart; |
} |
//TODO: créer des fonctions spécifiques cel et photoflora pour plus de clarté ? |
public function getUrlsImagesParIdsNoms(Array $idsNoms) { |
$infosImages = $this->getInfosImagesParIdsNoms($idsNoms); |
$urls = array(); |
if (count($infosImages) > 0) { |
foreach ($infosImages as $img) { |
$id = $img['determination.nom_sci.code']; |
$urls[$id][] = $img['binaire.href']; |
} |
} |
return $urls; |
} |
// retourne les urls d'une série d'images tirées de del, avec en premier les |
// images d'organes les mieux votées, et ensuite toute les autres images disponibles |
public function getUrlsImagesOrganesParIdsNom($idNom) { |
$infosImages0 = $this->getInfosMeilleuresImagesParTag($idNom, array('fleur', 'feuille', 'fruit', 'ecorce', 'port', 'rameau'), Eflore::PROTOCOLE_CAPITALISATION, 6); |
$infosImages1 = $this->getInfosImagesParIdsNoms(array($idNom)); |
//echo "ORGANES <pre>" . print_r($infosImages0, true) . "</pre>"; |
//echo "TOUT <pre>" . print_r($infosImages1, true) . "</pre>"; |
$urls = array(); |
foreach ($infosImages0 as $imgs) { |
foreach ($imgs as $img) { |
$id = $img['determination.nom_sci.code']; |
$urls[$id][] = $img['binaire.href']; |
} |
} |
foreach ($infosImages1 as $img) { |
$id = $img['determination.nom_sci.code']; |
if (! in_array($img['binaire.href'], $urls[$id])) { |
$urls[$id][] = $img['binaire.href']; |
} |
} |
//echo "URLS <pre>" . print_r($urls, true) . "</pre>"; |
//exit; |
return $urls; |
} |
public function getInfosImagesParIdsNoms(Array $idsNoms) { |
$pas = 800; |
if(count($idsNoms) >= $pas) { |
$images = array(); |
$idsPartages = array_chunk($idsNoms, $pas); |
foreach ($idsPartages as $sousEnsembleIdsNoms) { |
$url = $this->getUrlImagesParIdsNoms($sousEnsembleIdsNoms); |
$donnees = $this->chargerDonnees($url); |
$resultats = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
$images += $resultats; |
} |
} else { |
$url = $this->getUrlImagesParIdsNoms($idsNoms); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
} |
return $this->formaterResultatImages($images); |
} |
public function getInfosImageParIdImage($id_image) { |
$tpl = $this->obtenirSqueletteSelonApi('imagesPopup'); |
$url = $this->formaterUrl($tpl, array('id' => $id_image, 'referentiel' => Registre::get('parametres.referentiel'))); |
$image = $this->chargerDonnees($url); |
return $this->formaterResultatImages($image, true); |
} |
public function getInfosImages() { |
$url = $this->getUrlImages(); |
$donnees = $this->chargerDonnees($url); |
$images = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array(); |
return $this->formaterResultatImages($images); |
} |
public function getInfosImagesTaxons() { |
$pas = 800; |
$idsTaxons = explode(',', $this->nntaxon); |
if(count($idsTaxons) >= $pas) { |
$images = array(); |
$idsPartages = array_chunk($idsTaxons, $pas); |
foreach ($idsPartages as $sousEnsembleIdsTaxons) { |
$url = $this->getUrlImagesTaxons(implode(',',$sousEnsembleIdsTaxons)); |
$donnees = $this->chargerDonnees($url); |
$resultats = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array(); |
$images += $resultats; |
} |
} else { |
$url = $this->getUrlImagesTaxons($idsTaxons); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
} |
return $this->formaterResultatImages($images); |
} |
public function getInfosPremiereImageParIdsNoms($idsNoms) { |
$url = $this->getUrlPremiereImageParIdsNoms($idsNoms); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
return $this->formaterResultatImages($images); |
} |
public function getInfosImagesGalerieMobile($nn) { |
$url = $this->getUrlImagesGalerieMobile($nn); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
return $images; |
} |
/** |
* Retourne les $limite images ayant le plus de votes pour CHAQUE tag de $tags pour le protocole $protocole |
*/ |
public function getInfosMeilleuresImagesParTag($nn, $tags, $protocole = Eflore::PROTOCOLE_CAPITALISATION, $limite = 10, $format = 'CRS') { |
if (! is_array($tags)) { |
$tags = array($tags); |
} |
$images_tag = array(); |
foreach ($tags as $tag) { |
$url = $this->getUrlMeilleuresImagesParTag($nn, $tag, $protocole, $limite, $format); |
$donnees = $this->chargerDonnees($url); |
$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
$images_tag[$tag] = $this->formaterResultatImagesDel($images); |
} |
return $images_tag; |
} |
/** |
* Retourne l'image ayant le plus de votes pour le pour capitalisation d'images, pour le premier tags de $tags. S'il |
* n'y a aucune image pour le premier tag, parcourt les autres tags jusqu'à en trouver une. |
*/ |
public function getInfosMeilleureImageParPrioriteTags($nn, $tags, $format = 'CRS') { |
if (! is_array($tags)) { |
$tags = array($tags); |
} |
$image = null; |
foreach ($tags as $tag) { |
$url = $this->getUrlMeilleuresImagesParTag($nn, $tag, Eflore::PROTOCOLE_CAPITALISATION, 1, $format); |
$donnees = $this->chargerDonnees($url); |
$image = (isset($donnees['resultats'])) ? $donnees['resultats'] : array(); |
$image = $this->formaterResultatImagesDel($image); |
if (empty($image) == false) { |
break; |
} |
} |
//echo "<pre>" . print_r($image, true) . "</pre>"; |
if (is_array($image)) { |
$image = array_pop($image); |
} |
return $image; |
} |
private function getUrlImagesParIdsNoms($idsNoms) { |
$tpl = $this->obtenirSqueletteSelonApi('imagesResultatsDetermination'); |
$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel')); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlPremiereImageParIdsNoms($idsNoms) { |
$tpl = $this->obtenirSqueletteSelonApi('imagesPremiere'); |
$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel')); |
return $this->formaterUrl($tpl, $params); |
} |
private function getUrlImages($nn = false) { |
$tpl = $this->obtenirSqueletteSelonApi('images'); |
if ($this->getApi() == Eflore::API_EFLORE) { |
$params = array('projet' => $this->getProjet(), 'limite' => $this->limite, 'depart' => $this->depart, 'referentiel' => Registre::get('parametres.referentiel')); |
} |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlImagesTaxons($idsTaxons) { |
$tpl = $this->obtenirSqueletteSelonApi('imagesTaxons'); |
$params = array('projet' => $this->getProjet(),'nntaxon'=> $idsTaxons, 'referentiel' => Registre::get('parametres.referentiel')); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlImagesGalerieMobile($nn) { |
$tpl = Config::get('delGalerieMobileTpl'); |
$params = array('nn' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlMeilleuresImagesParTag($nn, $tag, $protocole = Eflore::PROTOCOLE_CAPITALISATION, $limite = 10, $format = 'CRS') { |
$tpl = Config::get('delMeilleuresImagesParTagTpl'); |
$params = array('nn'=> $nn, |
'tag'=> $tag, |
'protocole' => $protocole, |
'referentiel' => Registre::get('parametres.referentiel'), |
'limite' => $limite, |
'format' => $format); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
/** |
* Transforme les résultats issus des Webservices autres que eflore/cel afin de conserver un format homogène |
* @param mixed $images |
*/ |
private function formaterResultatImages($images, $seulementUne = false) { |
switch ($this->getApi()) { |
case Eflore::API_DEL: |
return $this->formaterResultatImagesDel($images, $seulementUne); |
break; |
default: |
return $images; |
} |
} |
private function formaterResultatImagesDel($images, $seulementUne = false) { |
if ($seulementUne) { |
return $this->formaterUnResultatImagesDel($images); |
} else { |
$retour = array(); |
foreach ($images as $idObsImage => $image) { |
$retour[$image['id_image']] = array_merge($images[$idObsImage], $this->formaterUnResultatImagesDel($image)); |
} |
return $retour; |
} |
} |
/** |
* Convertit un array venant d'un Webservice del vers le format retourné par eflore/cel |
* @param array $image |
* @return array |
*/ |
private function formaterUnResultatImagesDel(array $image) { |
$libelleAuteur = $image['observation']['auteur.prenom'].' '.$image['observation']['auteur.nom']; |
$codeReferentiel = substr($image['observation']['determination.referentiel'], 0, strpos($image['observation']['determination.referentiel'], ':')); |
$localiteLibelle = array($image['observation']['zone_geo'], |
$image['observation']['lieudit'], |
$image['observation']['station'], |
$image['observation']['milieu']); |
$retourImage = array( |
'date' => $image['observation']['date_observation'], |
'mime' => 'image/jpeg', |
'auteur.libelle' => $libelleAuteur, |
'auteur.id' => $image['observation']['auteur.id'], |
'binaire.href' => $image['binaire.href'], |
'observation.id' => $image['observation']['id_observation'], |
'determination.libelle' => $image['observation']['determination.ns'].'[Dét. : '.$libelleAuteur.']', |
'determination.nom_sci' => $image['observation']['determination.ns'], |
'determination.nom_sci.code' => $codeReferentiel.'.'.$image['observation']['determination.nn'], |
'station.commune' => $image['observation']['zone_geo'], |
'station.lieudit' => $image['observation']['lieudit'], |
'station.station' => $image['observation']['station'], |
'station.milieu' => $image['observation']['milieu'], |
'station.libelle' => $this->formaterLocalite($localiteLibelle) |
); |
return $retourImage; |
} |
private function formaterLocalite($infosLocalite) { |
$localiteFmt = array(); |
foreach ($infosLocalite as $localite) { |
if($localite != '') { |
$localiteFmt[] = $localite; |
} |
} |
if (empty($localiteFmt)) { |
$localiteFmt[0] = 'localité inconnue'; |
} |
return implode(" > ", $localiteFmt); |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/BiblioBota.php |
---|
New file |
0,0 → 1,29 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les noms scientifiques. |
* |
* @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 BiblioBota extends Eflore { |
public function getReferences($nomSelectionne) { |
$url = $this->getUrlReferences($nomSelectionne); |
return $this->chargerDonnees($url); |
} |
private function getUrlReferences($nomSelectionne) { |
$tpl = Config::get('referencesBiblioBota'); |
$params = array('nom_saisi' => $nomSelectionne); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Syntaxons.php |
---|
New file |
0,0 → 1,59 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les syntaxons |
* |
* @category PHP 5.2 |
* @package eflore-consultation |
* @author Mathilde SALTHUN-LASSALLE <mathilde@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 Syntaxons extends Eflore { |
private $catminat; |
public function setCatminat($code) { |
$this->catminat = 'catminat:'.$code; |
} |
public function getSyntaxonsSuperieurs() { |
$url = $this->getUrlSyntaxonsSuperieurs(); |
return $this->chargerDonnees($url); |
} |
public function getSyntaxonsCatminat() { |
$url = $this->getUrlSyntaxonsCatminat(); |
return $this->chargerDonnees($url); |
} |
public function getSyntaxonsSynonymes() { |
$url = $this->getUrlSyntaxonsSynonymes(); |
return $this->chargerDonnees($url); |
} |
public function getUrlSyntaxonsCatminat() { |
$tpl = Config::get('syntaxonsCatminat'); |
$params = array( 'code' => urlencode($this->catminat)); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlSyntaxonsSuperieurs() { |
$tpl = Config::get('syntaxonsSuperieurs'); |
$params = array( 'code' => $this->catminat); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlSyntaxonsSynonymes() { |
$tpl = Config::get('syntaxonsSynonymes'); |
$params = array( 'code' => $this->catminat); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Statuts.php |
---|
New file |
0,0 → 1,24 |
<?php |
class Statuts extends Eflore { |
public function getStatuts($projet, $nn) { |
$tpl = Config::get('statutsTpl'); |
$params = array('projet' => $projet,'id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
public function getStatutsZoneGeo($projet, $nn) { |
$tpl = Config::get('statutsZoneGeoTpl'); |
$params = array('projet' => $projet,'id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
public function getCategorieListeRouge($projet, $nn) { |
$tpl = Config::get('listeRougeTpl'); |
$params = array('projet' => $projet,'id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
} |
/tags/v5.2-20131127/metier/api_0.1/Graphiques.php |
---|
New file |
0,0 → 1,99 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les graphiques et leurs légendes. |
* |
* @category PHP 5.2 |
* @package eflore-consultation |
* @author Mathilde SALTHUN-LASSALLE <mathilde@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 Graphiques extends Eflore { |
private $bdnt; |
private $num_nom; |
private $type_graph; |
private $classe; |
private $code; |
// pour chaque code, [0] est le min (départ de recherche des valeurs) |
// et [1] est le max (fin) |
static $codes = array ("VEL" => array(1,9), |
"VET" => array(1,9), |
"VEHA" => array(1,9), |
"VEC" => array(1,9), |
"VER" => array(1,9), |
"VETX" => array(1,9), |
"VEN" => array(1,9), |
"VEMO" => array(1,9), |
"VEHE" => array(1,12), |
"VES" => array(0,9) ); |
public function setType_graph($tg) { |
$this->type_graph = $tg; |
} |
public function setCode($code) { |
$this->code = $code; |
} |
public function setClasse($classe) { |
$this->classe = $classe; |
} |
public function setBdnt($bdnt){ |
$this->bdnt = $bdnt; |
} |
public function setNum_nom($nn){ |
$this->num_nom = $nn; |
} |
// TODO: array_map() // XXX: PHP-5.3 |
static function _build_range() { |
$ret = array(); |
foreach (self::$codes as $classe => $val) { |
foreach(range($val[0], $val[1]) as $i) { |
$ret[] = $classe . ':' . $i; |
} |
} |
return implode(',', $ret); |
} |
// TODO: array_map() // XXX: PHP-5.3 |
static function _split_data($tab) { |
$ret = array(); |
foreach ($tab as $k => $v) { |
list($new_k, $sub_k) = explode(':', $k); |
$ret[$new_k][$sub_k] = $v; |
} |
return $ret; |
} |
public function getLegendeGraphique() { |
$legende = array(); |
// eg: VEL:1,VEL:2,VEL:3,...VER:9,VETX:1,... |
$ressources = self::_build_range(); |
$url = Eflore::s_formaterUrl(Config::get('legendeGraphiqueTpl'), |
$this->ajouterParametreParDefaut(array('params' => $ressources)), |
FALSE); |
$data = $this->chargerDonnees($url); |
return self::_split_data($data); |
} |
public function getGraphique() { |
$url = $this->getUrlInformation(); |
return $this->chargerDonnees($url); |
} |
public function getUrlGraphique() { |
$tpl = Config::get('graphiqueTpl'); |
$params = array( 'bdnt' => $this->bdnt, 'num_nom' => $this->num_nom , 'type_graph' => $this->type_graph); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Informations.php |
---|
New file |
0,0 → 1,91 |
<?php |
/** |
* |
* classe gérant des informations (descriptives, écologiques ) |
* |
* @author mathilde SALTHUN-LASSALLE <mathilde@tela-botanica.org> |
* |
*/ |
class Informations extends Eflore { |
private $bdnt; |
private $num_nom; |
private $limite; |
private $depart; |
private $catminat; |
public function setDepart($depart){ |
$this->depart = $depart; |
} |
public function setLimite($limite){ |
$this->limite = $limite; |
} |
public function setBdnt($bdnt){ |
$this->bdnt = $bdnt; |
} |
public function setNum_nom($nn){ |
$this->num_nom = $nn; |
} |
public function setCatminat($catminat){ |
$this->catminat = $catminat; |
} |
public function getInformations() { |
$url = $this->getUrlInformation(); |
return $this->chargerDonnees($url); |
} |
public function getInformationsEcologie() { |
$url = $this->getUrlInformation(); |
$url .= '?categorie=ecologie'; |
return $this->chargerDonnees($url); |
} |
public function getInformationsDescription() { |
$url = $this->getUrlInformation(); |
$url .= '?categorie=description'; |
return $this->chargerDonnees($url); |
} |
public function getInformationsRelationCatminat() { |
$url = $this->getUrlInformationsRelationCatminat(); |
return $this->chargerDonnees($url); |
} |
public function getInformationsMasqueCatminat() { |
$url = $this->getUrlInformationsMasqueCatminat(); |
return $this->chargerDonnees($url); |
} |
public function getUrlInformation() { |
$tpl = Config::get('informationTpl'); |
$params = array( 'bdnt' => $this->bdnt, 'num_nom' => $this->num_nom ); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlInformationsRelationCatminat() { |
$tpl = Config::get('informationsRelationCatminat'); |
$params = array( 'bdnt' => $this->bdnt, 'num_nom' => $this->num_nom, 'limite' => $this->limite, 'depart' => $this->depart ); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlInformationsMasqueCatminat() { |
$tpl = Config::get('informationsCatminat'); |
$params = array( 'catminat' => $this->catminat, 'limite' => $this->limite, 'depart' => $this->depart ); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
/tags/v5.2-20131127/metier/api_0.1/Wikini.php |
---|
New file |
0,0 → 1,56 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les wiki. |
* |
* @category PHP 5.2 |
* @package eflore-consultation |
* @author Aurélien Peronnet <aurelien@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 Wikini extends Eflore { |
//TODO: voir s'il est nécessaire d'ajouter des variables de classe pour en faire |
// un service à la structure similaire à celle du service wikipedia |
public function getPageWikiPourRefEtNumTax($referentiel, $numTax) { |
return strtoupper($referentiel).'nt'.$numTax; |
} |
public function getTexteFormate($page, $section) { |
$url = $this->getUrlTexteFormate($page, $section); |
$donnees = $this->chargerDonnees($url); |
return $donnees['texte']; |
} |
private function getUrlTexteFormate($page, $section = null) { |
if ($section != null) { |
$tpl = Config::get('texteFormateSectionWikiTpl'); |
$params = array('pageTag' => $page, 'sectionTitre' => $section); |
} else { |
$tpl = Config::get('texteFormateWikiTpl'); |
$params = array('pageTag' => $page); |
} |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlPageWiki($referentiel, $numTax) { |
$tpl = Config::get('pageWikiTpl'); |
$page = $this->getPageWikiPourRefEtNumTax($referentiel, $numTax); |
$params = array('pageTag' => $page); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getDescriptionReferentielFormate($referentiel) { |
$tpl = Config::get('texteFormateWikiTpl'); |
$params = array('pageTag' => strtoupper($referentiel).'Description'); |
$url = $this->formaterUrl($tpl, $params); |
$donnees = $this->chargerDonnees($url); |
return $donnees['texte']; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Eflore.php |
---|
New file |
0,0 → 1,165 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe mère de l'API 0.1 d'eFLore. |
* |
* @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$ |
*/ |
abstract class Eflore { |
const RANG_FAMILLE = 180; |
const RANG_GENRE = 220; |
const RANG_ESPECE = 290; |
const API_EFLORE = ''; |
const API_DEL = 'del'; |
const PROTOCOLE_CARACTERES = 1; |
const PROTOCOLE_CAPITALISATION = 3; |
const PROTOCOLE_DEFI = 4; |
const PROTOCOLE_GENTIANE_AZURE = 5; |
private $entete = null; |
private $projet = null; |
private $api = null; |
public function __construct($projet = null) { |
$this->projet = Registre::get('parametres.referentiel'); |
if (!is_null($projet)) { |
$this->projet = $projet; |
} |
$this->api = self::API_EFLORE; |
} |
public function setApi($api) { |
$this->api = $api; |
return $this; |
} |
public function getApi() { |
return $this->api; |
} |
public function setProjet($projet) { |
$this->projet = $projet; |
} |
public function getProjet() { |
return $this->projet; |
} |
public function getEnteteTotal() { |
return $this->entete['total']; |
} |
/** |
* Récupère un squelette d'URL dans le fichier de configuration, en fonction de l'API spécifiée dans $this->api |
* |
* @param string $squelette squelette d'URL à chercher dans le fichier de config, sans le préfixe d'API |
* @param string $api forcer l'API, false par défaut pour utiliser l'API spécifié dans $this->api (utiliser les constantes) |
* @throws Exception si la clef générée n'est pas présente dans le fichier de configuration |
*/ |
protected function obtenirSqueletteSelonApi($squelette) { |
$api = $this->api; |
if ($api != '') { |
$squelette = ucfirst($squelette); |
} |
$clef = $api . $squelette . 'Tpl'; |
if (Config::existe($clef)) { |
return Config::get($clef); |
} else { |
throw new Exception("Squelette indisponible pour l'API spécifiée"); |
} |
} |
/** |
* Formate une url à partir d'un template contenant des paramètres à remplacer sous la forme {monParametre}. |
* Le tableau associatif de paramètres doit contenir en clé le paramêtre (monParametre) sans les accolades, |
* la valeur correspondante sera la valeur de remplacement. |
* Par défaut, les parametres suivant sont pris en compte par cette méthode : |
* - {projet} : le code du référentiel courrant ou définit dans le constructeur de l'objet métier. |
* |
* @param String $tpl le squelette d'url à formater. |
* @param Array $parametres le tableau de parametres (sans accolades pour les clés).*/ |
public function formaterUrl($tpl, Array $parametres) { |
$parametres = $this->ajouterParametreParDefaut($parametres); |
foreach($parametres as $key=> $value) { |
if(is_array($value)) { |
$value = implode(',', $value); |
} |
$tpl = str_replace('{'.$key.'}',rawurlencode($value),$tpl); |
} |
return $tpl; |
} |
public function ajouterParametreParDefaut(Array $parametres) { |
$parametres['projet'] = isset($parametres['projet']) ? $parametres['projet'] : $this->projet; |
return $parametres; |
} |
/** |
* Permet de consulter une url et retourne le résultat ou une erreur |
* |
* @param $url l'url du service à appeler pour charger les données. */ |
protected function chargerDonnees($url) { |
$resultat = false; |
$json = $this->getRestClient()->consulter($url); |
$entete = $this->getRestClient()->getReponseEntetes(); |
//Si le service meta-donnees fonctionne correctement, l'entete comprend la clé wrapper_data |
if (isset($entete['wrapper_data'])) { |
$forceTableauAssociatif = true; |
$resultat = json_decode($json, $forceTableauAssociatif); |
$this->entete = (isset($resultat['entete'])) ? $resultat['entete'] : null; |
} else { |
$m = "L'url <a href=\"$url\">$url</a> lancée via RestClient renvoie une erreur"; |
trigger_error($m, E_USER_WARNING); |
} |
return $resultat; |
} |
/** |
* Permet de consulter une url et retourne le résultat ou une erreur |
* |
* @param $url l'url du service à appeler pour charger les données. */ |
protected function chargerDonneesRecursivement($url) { |
$resultat = false; |
$resultat = $this->chargerDonnees($url); |
if (isset($resultat['entete']['href.suivant'])) { |
$resultatSuivant = $this->chargerDonneesRecursivement($resultat['entete']['href.suivant']); |
if ($resultatSuivant) { |
// utilisation de + obligatoire pour ne pas casser l'indexation par des ids |
// numériques (au lieu de array merge) |
$resultat['resultat'] = $resultat['resultat'] + $resultatSuivant['resultat']; |
} |
} |
return $resultat; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DES CLASSES CHARGÉES À LA DEMANDE |
private function getRestClient() { |
if (!isset($this->restClient)) { |
$this->restClient = new RestClient(); |
} |
return $this->restClient; |
} |
static function s_formaterUrl($tpl, Array $parametres, $enc = TRUE) { |
foreach($parametres as $key => $value) { |
if(is_array($value)) { |
$value = implode(',', $value); |
} |
$tpl = str_replace('{'.$key.'}',$enc ? rawurlencode($value) : $value, $tpl); |
} |
return $tpl; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Noms.php |
---|
New file |
0,0 → 1,144 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les noms scientifiques. |
* |
* @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 Noms extends Eflore { |
public function getSynonymes($nn) { |
$tpl = Config::get('nomsSynonymesTpl'); |
$params = array('id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
public function getFlores($nn) { |
$tpl = Config::get('nomsFloresTpl'); |
$params = array('id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
public function getNom($nn) { |
return $this->chargerDonnees($this->getUrlNom($nn)); |
} |
public function getRechercheEtendue($nom, $type_resultat = '') { |
$methode = 'getUrlRecherche'.$type_resultat; |
if (method_exists($this, $methode)) { |
$url = $this->$methode($nom, 'etendue'); |
} else { |
$url = $this->getUrlRecherche($nom, 'etendue'); |
Debug::printr("Le type de recherche demandé '$type_resultat' n'est pas disponible."); |
} |
return $this->chargerDonneesRecursivement($url); |
} |
public function getRechercheFloue($nom) { |
$url = $this->getUrlRecherche($nom, 'floue'); |
return $this->chargerDonnees($url); |
} |
public function getRechercheAvancee($parametres) { |
$url = $this->getUrlRechercheAvancee($parametres); |
return $this->chargerDonnees($url); |
} |
private function getUrlRechercheAvancee($parametres){ |
$tpl = Config::get('nomsRechercheAvanceeTpl'); |
$masques = $this->formaterMasquesRechercheAvancee($parametres); |
$url = ''; |
if($masques != ''){ |
$url = $this->formaterUrl($tpl,array('projet'=> $this->getProjet(), 'type' => 'etendue')); |
$url .= '&'.implode('&',$masques); |
} |
return $url; |
} |
private function formaterMasquesRechercheAvancee($parametres) { |
$masques = ''; |
foreach ($parametres as $masque => $valeur){ |
if ($valeur != '' && in_array($valeur, I18n::get('Recherche-form-avancee')) == false){ |
if ($masque == 'type') { |
$masques[] = 'masque='.urlencode('%'.$valeur); |
} elseif ($masque == 'au') { |
$masques[] = 'masque.au='.urlencode($valeur.',('.$valeur.'%),% '.$valeur); |
} elseif ($masque == 'bib'){ |
$masques[] = 'masque.bib='.urlencode($valeur.',%; '.$valeur); |
} else { |
$valeur = ($valeur == '0') ? '' : $valeur; |
$masques[] = 'masque.'.$masque.'='.urlencode($valeur); |
} |
} |
} |
return $masques; |
} |
private function getUrlNom($nn) { |
$tpl = Config::get('nomTpl'); |
$params = array('id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
// retourne les champs par defaut |
private function getUrlRecherche($nom, $typeRech) { |
$tpl = Config::get('nomsRechercheTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
// retourne les champs par defaut |
private function getUrlRechercheAlphab($nom, $typeRech) { |
$tpl = Config::get('nomsRechercheAlphabTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
// retourne les champs par defaut |
private function getUrlRechercheRetenu($nom, $typeRech) { |
$tpl = Config::get('nomsRechercheRetenuTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlRechercheSynonyme($nom, $typeRech) { |
$tpl = Config::get('nomsRechercheSynonymeTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
// retourne les champs par defaut + nom retenu |
private function getUrlRechercheDetermination($nom, $typeRech) { |
$tpl = Config::get('nomsRechercheDeterminationTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
// retourne les champs par defaut + nom decompose (au, an et bib) |
private function getUrlRechercheDecompo($nom, $typeRech) { |
$tpl = Config::get('nomsRechercheDecompoTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Taxons.php |
---|
New file |
0,0 → 1,136 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les noms scientifiques. |
* |
* @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 Taxons extends Eflore { |
public function getTaxon($nn) { |
$url = $this->getUrlTaxon($nn); |
return $this->chargerDonnees($url); |
} |
public function getStatsInitialesFamille() { |
$url = $this->getUrlStatsInitiales(self::RANG_FAMILLE); |
$donnees = $this->chargerDonnees($url); |
if (isset($donnees['Famille'])) { |
$initiales = $donnees['Famille']; |
} elseif (isset($donnees[self::RANG_FAMILLE])) { |
$initiales = $donnees[self::RANG_FAMILLE]; |
} |
return $initiales; |
} |
private function getUrlTaxon($nn) { |
$tpl = Config::get('taxonTpl'); |
$params = array('id' => $nn); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getStatsInitialesGenre() { |
$url = $this->getUrlStatsInitiales(self::RANG_GENRE); |
$donnees = $this->chargerDonnees($url); |
$initiales = $donnees['Genre']; |
if (isset($donnees['Genre'])) { |
$initiales = $donnees['Genre']; |
} elseif (isset($donnees[self::RANG_GENRE])) { |
$initiales = $donnees[self::RANG_GENRE]; |
} |
return $initiales; |
} |
private function getUrlStatsInitiales($rang) { |
$tpl = Config::get('taxonsStatsInitialesRangTpl'); |
$params = array('rang' => $rang); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getListeFamilleParInitiale($lettre) { |
$url = $this->getUrlInitiales(self::RANG_FAMILLE, $lettre); |
$donnees = $this->chargerDonneesRecursivement($url); |
$taxons = ($donnees === false) ? $donnees : $donnees['resultat']; |
return $taxons; |
} |
public function getListeGenreParInitiale($lettre) { |
$url = $this->getUrlInitiales(self::RANG_GENRE, $lettre); |
$donnees = $this->chargerDonneesRecursivement($url); |
$taxons = ($donnees === false) ? $donnees : $donnees['resultat']; |
return $taxons; |
} |
private function getUrlInitiales($rang, $lettre) { |
$tpl = Config::get('taxonsListeInitialesRangTpl'); |
$params = array('rang' => $rang, 'initiale' => $lettre); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getRechercheEtendue($nom) { |
$url = $this->getUrlRecherche($nom, 'etendue'); |
return $this->chargerDonnees($url); |
} |
public function getRechercheFloue($nom) { |
$url = $this->getUrlRecherche($nom, 'floue'); |
return $this->chargerDonnees($url); |
} |
private function getUrlRecherche($nom, $typeRech) { |
$tpl = Config::get('taxonsRechercheTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getTaxonsInf($num_nom) { |
$url = $this->getUrlTaxonsInf($num_nom); |
return $this->chargerDonnees($url); |
} |
private function getUrlTaxonsInf($num_nom) { |
$tpl = Config::get('taxonInfTpl'); |
$params = array('id' => $num_nom); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getTaxonsSup($num_nom) { |
$url = $this->getUrlTaxonsSup($num_nom); |
return $this->chargerDonnees($url); |
} |
private function getUrlTaxonsSup($num_nom) { |
$tpl = Config::get('taxonSupTpl'); |
$params = array('id' => $num_nom); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlPermalienNumNom($referentiel, $version, $num_nom) { |
$tpl = Config::get('permalienNumNomTpl'); |
$params = array('ref_tax' => $referentiel, 'ref_version' => $version, 'id' => $num_nom); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlPermalienTaxon($referentiel, $version, $num_tax) { |
$tpl = Config::get('permalienTaxonTpl'); |
$params = array('ref_tax' =>$referentiel, 'ref_version' =>$version, 'id' => $num_tax); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Textes.php |
---|
New file |
0,0 → 1,54 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les textes. |
* |
* @category PHP 5.2 |
* @package eflore-consultation |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Delphine CAUQUIL <delphine@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 Textes extends Eflore { |
private $id = ''; |
private $format = 'htm';//Valeurs possibles : htm, txt |
private $sectionTitre = ''; |
public function setId($id) { |
$this->id = $id; |
} |
public function setFormat($format) { |
$this->format = $format; |
} |
public function setSectionTitre($titre) { |
$this->sectionTitre = $titre; |
} |
public function getTexte() { |
if ($this->sectionTitre != '') { |
$tpl = Config::get('texteTitreSectionTpl'); |
$params = array('id' => $this->id, 'txtFormat' => $this->format, 'sectionTitre' => $this->sectionTitre); |
} else { |
$tpl = Config::get('texteTpl'); |
$params = array('id' => $this->id, 'txtFormat' => $this->format); |
} |
return $this->chargerDonnees($this->formaterUrl($tpl, $params)); |
} |
public function getPageUrl() { |
$url = ''; |
if(Config::get($this->getProjet().'LienPageTpl')) { |
$tpl = Config::get($this->getProjet().'LienPageTpl'); |
$params = array('id' => $this->id, 'langue' => 'fr'); |
$url = $this->formaterUrl($tpl, $params); |
} |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/NomsVernaculaires.php |
---|
New file |
0,0 → 1,68 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les noms scientifiques. |
* |
* @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 NomsVernaculaires extends Eflore { |
public function getRechercheComplete($referentiel, $num_tax) { |
$tpl = Config::get('nomsVernaRechercheCompleteTpl'); |
$params = array('valeur' => $num_tax, 'projet' => $referentiel); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
public function getRechercheLimitee($referentiel, $num_tax) { |
$tpl = Config::get('nomsVernaRechercheLimiteeTpl'); |
$params = array('valeur' => $num_tax, 'projet' => $referentiel); |
$url = $this->formaterUrl($tpl, $params); |
return $this->chargerDonnees($url); |
} |
public function getRechercheEtendue($nom, $type_resultat = '') { |
$methode = 'getUrlRecherche'.$type_resultat; |
if (method_exists($this, $methode)) { |
$url = $this->$methode($nom, 'etendue'); |
} else { |
$url = $this->getUrlRecherche($nom, 'etendue'); |
Debug::printr("Le type de recherche demandé '$type_resultat' n'est pas disponible."); |
} |
return $this->chargerDonnees($url); |
} |
public function getRechercheFloue($nom, $type_resultat = '') { |
$url = $this->getUrlRecherche($nom, 'floue'); |
return $this->chargerDonnees($url); |
} |
private function getUrlRecherche($nom, $typeRech) { |
$tpl = Config::get('nomsVernaRechercheTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech, 'langue' => 'fra'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlRechercheDetermination($nom, $typeRech) { |
$tpl = Config::get('nomsVernaRechercheDeterminationTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech, 'langue' => 'fra'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
private function getUrlRechercheAlphab($nom, $typeRech) { |
$tpl = Config::get('nomsVernaRechercheAlphabTpl'); |
$params = array('valeur' => $nom, 'type' => $typeRech); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
} |
?> |
/tags/v5.2-20131127/metier/api_0.1/Cartes.php |
---|
New file |
0,0 → 1,125 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant les images. |
* |
* @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 Cartes extends Eflore { |
private $id; |
private $largeur; |
public function setId($id) { |
$this->id = $id; |
} |
public function setLargeur($largeur) { |
$this->largeur = $largeur; |
} |
public function setInfoNom($nom) { |
$this->nom = $nom; |
} |
public function setInfoReferentiel($referentiel) { |
$this->referentiel = $referentiel; |
} |
public function getUrlDataSvg() { |
$tpl = Config::get('carteTpl'); |
$params = array('id' => $this->id, 'largeur' => $this->largeur, 'mime-type' => 'image/svg+xml'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlPng() { |
$tpl = Config::get('carteTpl'); |
$params = array('id' => $this->id, 'largeur' => $this->largeur, 'mime-type' => 'image/png'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlMap() { |
$tpl = Config::get('efloreCarteTpl'); |
$params = array('num_nom' => $this->nom->get('id'), 'num_tax' => $this->nom->get('num_taxonomique') , |
'nom_sci' => $this->nom->get('nom_sci'), 'auteur' => $this->nom->get('auteur') , |
'largeur' => $this->largeur, 'mime_type' => 'text/html'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlMapSvg() { |
$tpl = Config::get('carteMoissonnageTpl'); |
$params = array('num_taxon' => $this->nom, 'referentiel' => $this->referentiel, |
'largeur' => $this->largeur, 'mime_type' => 'text/html', 'methode' => 'afficher'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlMapPng() { |
$tpl = Config::get('carteMoissonnageTpl'); |
$params = array('num_taxon' => $this->nom, 'referentiel' => $this->referentiel, |
'largeur' => $this->largeur, 'mime_type' => 'image/png', 'methode' => 'afficher'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlTelechargementMapPng() { |
$tpl = Config::get('carteMoissonnageTpl'); |
$params = array('num_taxon' => $this->nom, 'referentiel' => $this->referentiel, |
'largeur' => $this->largeur, 'mime_type' => 'image/png', 'methode' => 'telecharger'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlTelechargementMapHtml() { |
$tpl = Config::get('carteMoissonnageTpl'); |
$params = array('num_taxon' => $this->nom, 'referentiel' => $this->referentiel, |
'largeur' => $this->largeur, 'mime_type' => 'text/html', 'methode' => 'telecharger'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getUrlEflorePng() { |
$tpl = Config::get('efloreCarteTpl'); |
$params = array('num_nom' => $this->nom->get('id'), 'num_tax' => $this->nom->get('num_taxonomique') , |
'nom_sci' => $this->nom->get('nom_sci'), 'auteur' => $this->nom->get('auteur') , |
'largeur' => $this->largeur, 'mime_type' => 'image/png'); |
$url = $this->formaterUrl($tpl, $params); |
return $url; |
} |
public function getLegendeId() { |
$tpl = Config::get('legendeIdCarteTpl'); |
$params = array('id' => $this->id); |
$url = $this->formaterUrl($tpl, $params); |
$donnees = $this->chargerDonnees($url); |
return $donnees; |
} |
public function getLegende() { |
$tpl = Config::get('legendeCarteTpl'); |
$url = $this->formaterUrl($tpl, array()); |
$donnees = $this->chargerDonnees($url); |
return $donnees; |
} |
// version statique de getUrlPng() ci-dessus |
static function getCarteUrlPng($projet, $id, $largeur) { |
return Eflore::s_formaterUrl(Config::get('carteTpl'), |
array('projet' => $projet, |
'id' => $id, |
'largeur' => $largeur, |
'mime-type' => 'image/png')); |
} |
} |
?> |
/tags/v5.2-20131127/service.php |
---|
New file |
0,0 → 1,11 |
<?php |
// declare(encoding='UTF-8'); |
/** Inclusion du fichier principal de l'application*/ |
require_once 'eflore.php'; |
echo AppControleur::getContenuTete(); |
echo AppControleur::getContenuCorps(); |
echo AppControleur::getContenuPied(); |
echo AppControleur::getChrono(); |
echo AppControleur::getExceptions(); |
?> |
/tags/v5.2-20131127/Changelog |
---|
New file |
0,0 → 1,33 |
Changements <next>: |
Changements 20130912 [création de la branche "v5.1-prillieux"]: |
* config: directives modifiées: |
- texteWikiTpl |
- pageWikiTpl |
- base_url_widget, base_url_mobile [ajoutée dans config.default.ini] |
* coste: adaptation au nouveau webservice |
Changements v0.1-20130830: |
* correction du Changelog (directives modifiées) |
Changements v0.1-20130829: |
* tenue du Changelog |
* config: directives modifiées: |
- legendeGraphiqueTpl |
- carteMoissonnageTpl |
- referentielVerna (bdtxa) |
- champsPresence (bdtfx) |
* support eFlore/Antilles-bdtxa: fiches, pdf, API |
* ui: |
* ajout d'un dictionnaire javascript |
* mise en valeur des boutons lors des focus |
* amélioration des ombres portées de certains widgets |
* correction des blocs dépliés par défaut |
* ontologies; |
* support critères multiples pour onglet écologie/graphiques |
* cartes: optimisation/correction de la cartes basée sur les synonymes |
* simplification et améliorations du système de cache |
* actualisation des tests unitaires |
* multiples bugfixes |
v0.1-20130600 |
/tags/v5.2-20131127/popup.php |
---|
New file |
0,0 → 1,59 |
<?php |
// declare(encoding='UTF-8'); |
/** Inclusion du fichier principal de l'application*/ |
require_once 'eflore.php'; |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> |
<head> |
<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" /> |
<title><?php echo AppControleur::getMetaTitre(); ?></title> |
<meta name="description" content="<?php echo AppControleur::getMetaDescription();?>" /> |
<meta name="keywords" content="<?php echo AppControleur::getMetaTags();?>" /> |
<meta name="revisit-after" content="15 days" /> |
<meta name="robots" content="index,follow" /> |
<meta name="author" content="Tela Botanica" /> |
<!-- Favicones --> |
<link rel="icon" type="image/png" href="http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.png" /> |
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.ico" /> |
<!-- CSS --> |
<link href="http://www.tela-botanica.org/sites/commun/generique/styles/commun.css" rel="stylesheet" type="text/css" /> |
<link href="http://www.tela-botanica.org/sites/botanique/generique/styles/botanique.css" rel="stylesheet" type="text/css" /> |
<link href="http://www.tela-botanica.org/commun/bootstrap/2.0.2/css/bootstrap.css" rel="stylesheet" type="text/css" /> |
<link href="presentations/styles/eflore.css" rel="stylesheet" type="text/css" /> |
<link href="presentations/styles/popup.css" rel="stylesheet" type="text/css" /> |
<!-- JavaScript --> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script> |
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/cookie/1.0/jquery.cookie.min.js"></script> |
<!-- @FIXME WTF?? si ajax.aspnetcdn.com tombe en rideau, on s'assied sur nos popups?? :-/ --> |
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> |
<script type="text/Javascript" src="presentations/scripts/eflore.js"></script> |
<!-- JavaScript et CSS spécifiques au module --> |
<?php echo AppControleur::getEntete(); ?> |
</head> |
<body> |
<div id="zone-conteneur"> |
<div id="zone-tete"> |
<?php echo AppControleur::getContenuTete(); ?> |
</div> |
<div id="zone-corps"> |
<?php echo AppControleur::getContenuCorps(); ?> |
</div> |
<div id="zone-pied"> |
<div id="zone-debug"> |
</div> |
</div> |
</div> |
</body> |
</html> |
/tags/v5.2-20131127/framework.defaut.php |
---|
New file |
0,0 → 1,6 |
<?php |
// Inclusion du Framework |
// Renommer ce fichier en "framework.php" |
// Indiquer ci-dessous le chemin absolu vers le fichier Framework.php de la version souhaitée du Framework |
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'framework'.DIRECTORY_SEPARATOR.'framework'.DIRECTORY_SEPARATOR.'Framework.php'; |
?> |
/tags/v5.2-20131127/configurations/isfan.ini |
---|
New file |
0,0 → 1,15 |
; Mettre ici les paramètres de config qui doivent être redéfinis par ce référentiel |
couleur_alphabet_fin = "204,255,51" |
; Mettre ici les paramètres spécifiques au référentiel |
[isfan] |
nom = "Base de données des Trachéophytes des Antilles" |
referentielVerna = "" |
baseImages = "cel" |
baseStatuts = "" |
baseRepartition = "" |
; à voir si l'on crée un fichier spécifique pour l'i18n de chaque référentiel |
champsPresence = "" |
/tags/v5.2-20131127/configurations/RechercheOpenSearch/RechercheOpenSearch.xml |
---|
New file |
0,0 → 1,13 |
<?xml version="1.0" encoding="UTF-8"?> |
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:ie="http://schemas.microsoft.com/Search/2008/"> |
<ShortName>eFlore BDTFX : noms scientifiques</ShortName> |
<Description>flore électronique en ligne</Description> |
<Image height="16" width="16" type="image/ico"> http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.ico </Image> |
<Url type="text/html" method="GET" template="http://www.tela-botanica.org/eflore-consultation/index.php?type_nom=nom_scientifique&referentiel=bdtfx&niveau=2&module=recherche&action=rechercheSimple&submit=OK&nom={searchTerms}"/> |
<Language>fr</Language> |
<developer>Tela Botanica</developer> |
<InputEncoding>UTF-8</InputEncoding> |
<Url type="application/opensearchdescription+xml" rel="self" template="http://www.tela-botanica.org/eflore-consultation/configurations/RechercheOpenSearch.xml"/> |
<Url type="application/x-suggestions+json" rel="self" template="http://www.tela-botanica.org/test-service:eflore:0.1/bdtfx/noms?masque={searchTerms}&recherche=etendue&retour.format=oss&navigation.limite=50"/> |
</OpenSearchDescription> |
<!-- configuration du moteur de recherche intégré au navigateur --> |
/tags/v5.2-20131127/configurations/bdtxa.ini |
---|
New file |
0,0 → 1,21 |
; Mettre ici les paramètres de config qui doivent être redéfinis par ce référentiel |
couleur_alphabet_fin = "204,255,51" |
; Mettre ici les paramètres spécifiques au référentiel |
[bdtxa] |
nom = "Base de données des Trachéophytes des Antilles" |
referentielVerna = "nva" |
baseImages = "cel" |
baseStatuts = "sptba" |
baseRepartition = "bdtxa" |
; à voir si l'on crée un fichier spécifique pour l'i18n de chaque référentiel |
champsPresence = "statut de présence en Guadeloupe:prgua| |
statut de présence en Martinique:prmar| |
statut de présence à Saint-Martin:prstm| |
statut de présence à La désirade:prdes| |
statut de présence à Saint-Barthélémy:prstb| |
statut de présence à Marie-Galante:prmga| |
statut de présence aux Saintes:prsai" |
/tags/v5.2-20131127/configurations/bdtfx.ini |
---|
New file |
0,0 → 1,23 |
; Mettre ici les paramètres de config qui doivent être redéfinis par ce référentiel |
couleur_alphabet_fin = "204,255,51" |
; Mettre ici les paramètres spécifiques au référentiel |
[bdtfx] |
nom = "Base de données des Trachéophytes de France Métropolitaine" |
referentielVerna = "nvjfl" |
referentielVernaGrec = "nvps" |
baseImages = "cel" |
baseImagesSupp = "photoflora" |
baseDessins = "coste" |
baseRepartition = "chorodep" |
baseMoissonnage = "eflore" |
baseFloresRef = "bdtfx" |
baseDescription = "coste,baseflor" |
baseEcologie = "baseflor" |
basePhytosocio = "baseveg" |
baseStatuts = "sptb" |
baseListeRouge = "liste-rouge" |
; à voir si l'on crée un fichier spécifique pour l'i18n de chaque référentiel |
champsPresence = "statut de présence en France (hors Corse):prga|statut de présence en Corse:prco" |
/tags/v5.2-20131127/configurations/config_papyrus.ini |
---|
New file |
0,0 → 1,12 |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètrage de la session |
; Devons nous démarrer une session : oui (true) ou non (false) |
session_demarrage = "php:false" |
; Encodage de sortie de l'application dans le contexte de Papyrus |
sortie_encodage = "ISO-8859-1" |
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone |
url_base = "php:$GLOBALS['_GEN_commun']['url']->getUrl()" |
; URL de base de l'application avec l'indication du fichier de départ |
url_base_index = "{ref:url_base}" |
; URL de base où se situe le .htaccess réalisant la réécriture d'URL pour les permaliens de l'application |
url_base_permalien = "http://www.tela-botanica.org/" |
/tags/v5.2-20131127/configurations/config.defaut.ini |
---|
New file |
0,0 → 1,273 |
; +------------------------------------------------------------------------------------------------------+ |
; Général |
; Séparateur de dossier |
ds = DIRECTORY_SEPARATOR |
; +------------------------------------------------------------------------------------------------------+ |
; Infos sur l'application |
; Le nom de votre application. |
info.nom = "eFlore - consultation" |
; Le code ou l'abréviation de votre application. |
info.abr = "EFC" |
; Code numérique de la version de l'application |
info.version.code.num = "1.0" |
; Code alphabétique de la version de l'application |
info.version.code.alpha = "cosson" |
; Nom de la version de l'application |
info.version.nom = "Cosson" |
; +------------------------------------------------------------------------------------------------------+ |
; Encodage de l'application.(Voir la liste des noms des jeux de caractères :http://fr2.php.net/manual/fr/mbstring.supported-encodings.php) |
appli_encodage = "UTF-8" |
; Encodage de sortie de l'application.(Voir la liste des noms des jeux de caractères :http://fr2.php.net/manual/fr/mbstring.supported-encodings.php) |
sortie_encodage = "UTF-8" |
; +------------------------------------------------------------------------------------------------------+ |
; Chemin et dossier contenant les classes de l'application |
dossier_modeles = metier |
chemin_appli = "php:Framework::getCheminAppli()" |
chemin_modeles = "{ref:chemin_appli}{ref:dossier_modeles}{ref:ds}" |
; +------------------------------------------------------------------------------------------------------+ |
; Chemin et dossier contenant les modules ( pour l'export pdf ) |
dossier_modules = modules |
chemin_appli = "php:Framework::getCheminAppli()" |
chemin_modules = "{ref:chemin_appli}{ref:dossier_modules}{ref:ds}" |
; +------------------------------------------------------------------------------------------------------+ |
; Chemin et dossier contenant les images |
dossier_images = presentations/images |
chemin_appli = "php:Framework::getCheminAppli()" |
chemin_images = "{ref:chemin_appli}{ref:dossier_images}{ref:ds}" |
; +------------------------------------------------------------------------------------------------------+ |
; Nom de domaine pour l'URL de base de l'application : |
domaine = "www.tela-botanica.org" |
; URL de base de l'application. Si vide : fonctionnement en Stand-alone |
; Peut utiliser un objet Net_URL comme ceci : "php:$mon_objet_net_url->getUrl()" |
base_url_application = "http://{ref:domaine}/eflore/consultation/" |
; URL widget |
base_url_widget = "http://{ref:domaine}/widget:cel:saisie" |
; URL del |
base_url_del = "http://{ref:domaine}/appli:del" |
; URL de base de l'application avec l'indication du fichier de départ |
;base_url_application_index = "php:'http://{ref:domaine}'.$_SERVER['SCRIPT_NAME']" |
; La syntaxe suivante pose problème avec l'utiliation du chargement Ajax des onglets :"php:'http://{ref:domaine}'.$_SERVER['SCRIPT_NAME']" |
; A laisser vide lors de l'intégration dans papyrus |
base_url_application_index = "{ref:base_url_application}index.php" |
; URL de base de l'application avec l'indication du fichier pop-up |
base_url_application_popup = "{ref:base_url_application}popup.php" |
; URL de base de l'application avec l'indication du fichier pop-up |
base_url_application_service = "{ref:base_url_application}service.php" |
; URL de base de l'application avec l'indication du fichier pop-up |
base_url_application_onglets = "{ref:base_url_application}service.php" |
; URL de base où se situe le .htaccess réalisant la réécriture d'URL pour les permaliens de l'application |
base_url_application_permalien = "{ref:base_url_application}" |
; URL de base pour les fiches mobiles |
base_url_mobile = "http://{ref:domaine}/mobile:{referentiel}-nn-{num_nom}" |
; +------------------------------------------------------------------------------------------------------+ |
; URL CSS commun du site |
url_css_commun = "http://www.tela-botanica.org/sites/commun/generique/styles/commun.css" |
; URL CSS spécialisé du site |
url_css_site = "http://www.tela-botanica.org/sites/botanique/generique/styles/botanique.css" |
; URL CSS eflore |
url_css_appli = "{ref:base_url_application}presentations/styles/eflore.css" |
; URL CSS pdf |
url_css_pdf = "{ref:base_url_application}presentations/styles/pdf.css" |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètrage de la session et de l'identification |
; Devons nous démarrer une session : oui (true) ou non (false) |
session_demarrage = "php:true" |
; Définition du nom de la session à utiliser |
session_nom = "eflore" |
; Mettre à true si l'application nécessite de s'identifier. |
identification = false |
; +------------------------------------------------------------------------------------------------------+ |
; Débogage |
; Indique si oui ou non on veut afficher le débogage. |
debogage = false |
; Indique sous quelle forme les messages de débogage doivent s'afficher : |
; - Debug::MODE_ECHO : le message est affiché en utilisant echo |
; - Debug::MODE_NOTICE : le message est affiché en utilisant une erreur de type notice |
debogage_mode = "php:Debug::MODE_NOTICE" |
; +------------------------------------------------------------------------------------------------------+ |
; Benchmark |
; benchmark_chrono : Indique si oui ou nom on veut afficher le tableau de chronométrage de l'application. (BENCHMARK) |
benchmark_chrono = false |
; +------------------------------------------------------------------------------------------------------+ |
; Cookies |
cookies.duree = "php:3600*24*365" |
cookies.utilisateur="pap-annuaire_tela-utilisateur" |
cookies.utilisateurPersistant="pap-annuaire_tela-memo" |
cookies.niveau="eflore.niveau" |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètres spécifiques à l'application |
; Nom du module par défaut de l'application |
module_defaut = "recherche"; |
; Nom de la méthode par défaut à executer dans un module |
action_defaut = "action-par-defaut" |
; Tableau des onglets résultats en fonction du niveau et du type de nom |
affich_resultats=" |
1_nom_vernaculaire=determination, |
1_nom_scientifique=determination, |
2_nom_vernaculaire=determination, |
2_nom_scientifique=determination, |
3_nom_vernaculaire=determination, |
3_nom_scientifique=decompo" |
; Tableau des blocs de la fiche en fonction du niveau |
blocs_fiche_defaut=" |
1=Description|Illustrations|Ethnobotanique|Répartition|Ecologie, |
2=Illustrations|Description|Répartition|Ethnobotanique|Nomenclature|Classification|Bibliographie|Protection|Ecologie, |
3=Illustrations|Description|Répartition|Ethnobotanique|Nomenclature|Classification|Bibliographie|Protection|Ecologie" |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètres spécifiques à eFlore |
; Indique le référentiel par défaut à utiliser pour la recherche de nom latin |
referentiel_defaut = "bdtfx"; Pour l'affichage multi-projets mettre : * |
; Indique le niveau (débutant, expert) par défaut à utiliser |
niveau_defaut = "2"; 1 : débutant, 2 : intermediaire, 3 : expert |
; URL pour récupérer un fichier Javascript |
url_js = "{ref:base_url_application}/presentations/scripts/" |
; courriel de contact en cas de problème sur l'application |
courriel_contact = "eflore_remarques@tela-botanica.org" |
; Coloration de l'alphabet : début la plus claire, fin la plus foncé |
couleur_alphabet_debut = "255,255,255" |
couleur_alphabet_fin = "208,171,225" |
; +------------------------------------------------------------------------------------------------------+ |
; Autres urls |
urlApiChart = "http://chart.apis.google.com/chart" |
urlQrCodeTpl = "http://www.tela-botanica.org/tmp/eflore_v5_cache/qrcode/%s" |
baseUrlServicesAnnuaireTpl = "http://www.tela-botanica.org/service:annuaire:%s" |
baseUrlProfilAnnuaireTpl = "http://www.tela-botanica.org/profil:%s" |
baseUrlServicesCelTpl = "http://www.tela-botanica.org/service:cel:%s" |
urlMauvaiseIdentificationTpl = "http://www.tela-botanica.org/appli:del#page_validation~%s" |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètres spécifiques à l'API 0.1 d'eFlore |
baseUrlApiEflore = "http://{ref:domaine}/service:eflore:0.1/{projet}" |
nomsTpl = "{ref:baseUrlApiEflore}/noms" |
nomTpl = "{ref:nomsTpl}/{id}" |
nomsStatsInitialesRangTpl = "{ref:nomsTpl}/stats/initiales?masque.rg={rang}" |
nomsListeInitialesRangTpl = "{ref:nomsTpl}?masque={initiale}&recherche=etendue&masque.rg={rang}&navigation.limite=500" |
nomsRechercheTpl = "{ref:nomsTpl}?masque={valeur}&recherche={type}&ns.format=txt&navigation.limite=3000" |
nomsRechercheRetenuTpl = "{ref:nomsTpl}?masque={valeur}&recherche={type}&ns.format=txt&ns.structure=au&navigation.limite=3000" |
nomsRechercheAlphabTpl = "{ref:nomsTpl}?masque={valeur}&recherche={type}&ns.format=txt&ns.structure=au&navigation.limite=3000" |
nomsRechercheSynonymeTpl = "{ref:nomsTpl}?masque={valeur}&recherche={type}&ns.format=txt&navigation.limite=3000" |
nomsRechercheDeterminationTpl = "{ref:nomsTpl}?masque={valeur}&recherche={type}&ns.format=txt&retour.champs=nom_retenu,nom_retenu.*,num_taxonomique,rang,nom_retenu_complet&ns.structure=au&navigation.limite=3000" |
nomsRechercheDecompoTpl = "{ref:nomsTpl}?masque={valeur}&recherche={type}&ns.format=txt&retour.champs=auteur,annee,biblio_origine,nom_addendum&navigation.limite=3000" |
nomsSynonymesTpl = "{ref:nomsTpl}/{id}/relations/synonymie?ns.format=htm" |
nomsRechercheAvanceeTpl = "{ref:nomsTpl}?ns.format=txt&navigation.limite=3000&recherche={type}&retour.champs=num_taxonomique,nom_retenu,nom_retenu.*,auteur,biblio_origine,annee,nom_addendum" |
nomsFloresTpl = "{ref:nomsTpl}/{id}/relations/flores" |
nomsVernaTpl = "{ref:baseUrlApiEflore}/noms-vernaculaires" |
nomsVernaRechercheTpl = "{ref:nomsVernaTpl}?masque.nv={valeur}&recherche={type}&masque.lg={langue}" |
nomsVernaRechercheLimiteeTpl = "{ref:nomsVernaTpl}/attributions?masque.nt={valeur}" |
nomsVernaRechercheCompleteTpl = "{ref:nomsVernaTpl}/attributions?masque.nt={valeur}&retour.format=max&retour.champs=conseil_emploi,genre,taxon" |
nomsVernaRechercheDeterminationTpl = "{ref:nomsVernaTpl}/attributions?masque.nv={valeur}&recherche={type}&masque.lg={langue}&navigation.limite=3000" |
nomsVernaRechercheAlphabTpl = "{ref:nomsVernaTpl}/attributions?masque.nv={valeur}&recherche={type}&navigation.limite=3000" |
cartesTpl = "{ref:baseUrlApiEflore}/cartes" |
carteTpl = "{ref:cartesTpl}/{id}?retour.format={largeur}&retour={mime-type}" |
legendeIdCarteTpl = "{ref:cartesTpl}/{id}/legende" |
legendeCarteTpl = "{ref:cartesTpl}/legende" |
efloreCarteTpl = "{ref:cartesTpl}?masque.nn={num_nom}&masque.nt={num_tax}&masque.ns={nom_sci}&masque.au={auteur}&retour.format={largeur}&retour={mime_type}" |
carteMoissonnageTpl = "{ref:cartesTpl}?referentiel={referentiel}&num_taxon={num_taxon}&format={largeur}&retour={mime_type}&methode={methode}" |
metaDonneesTpl = "{ref:baseUrlApiEflore}/meta-donnees?{verproj}={version}" |
taxonsTpl = "{ref:baseUrlApiEflore}/taxons" |
taxonTpl = "{ref:taxonsTpl}/{id}" |
taxonsStatsInitialesRangTpl = "{ref:taxonsTpl}/stats/initiales?masque.rg={rang}" |
taxonsListeInitialesRangTpl = "{ref:taxonsTpl}?masque={initiale}&recherche=etendue&masque.rg={rang}" |
taxonsRechercheTpl = "{ref:taxonsTpl}?masque={valeur}&recherche={type}" |
taxonSupTpl = "{ref:taxonsTpl}/{id}/relations/superieurs" |
taxonInfTpl = "{ref:taxonsTpl}/{id}/relations/inferieurs" |
imagesTpl = "{ref:baseUrlApiEflore}/images?navigation.depart={depart}&navigation.limite={limite}&referentiel={referentiel}" |
imagesResultatsDeterminationTpl = "{ref:baseUrlApiEflore}/images?masque.nn={idsNoms}&referentiel={referentiel}&retour.format=CRS&navigation.limite=801" |
imagesFicheBlocTpl = "{ref:baseUrlApiEflore}/images?masque.nn={idsNoms}&referentiel={referentiel}&retour.format=CS&retour.tri=date" |
imagesPremiereTpl = "{ref:baseUrlApiEflore}/images?masque.nn={idsNoms}&referentiel={referentiel}&retour.format=CS&retour.tri=date&navigation.limite=1" |
imagesPopupTpl = "{ref:baseUrlApiEflore}/images/{id}?referentiel={referentiel}" |
imagesTaxonsTpl = "{ref:baseUrlApiEflore}/images?masque.nt={nntaxon}&referentiel={referentiel}" |
textesTpl = "{ref:baseUrlApiEflore}/textes" |
texteTpl = "{ref:textesTpl}/{id}?txt.format={txtFormat}" |
texteTitreSectionTpl = "{ref:textesTpl}/{id}?txt.format={txtFormat}&txt.section.titre={sectionTitre}" |
referencesBiblioBota = "{ref:baseUrlApiEflore}/publications/?masque.taxon={nom_saisi}" |
pageWikiTpl = "http://www.tela-botanica.org/eflore:wiki:{pageTag}" |
texteWikiTpl = "http://www.tela-botanica.org/wikini/eFloreRedaction/api/rest/0.5/pages/{pageTag}" |
editionSectionWikiTpl = "{ref:texteWikiTpl}?txt.format=text/plain&txt.template=PageTaxon&txt.section.titre={sectionTitre}" |
texteBrutWikiTpl = "{ref:texteWikiTpl}?txt.format=text/plain" |
texteBrutSectionWikiTpl = "{ref:texteBrutWikiTpl}&txt.section.titre={sectionTitre}" |
texteFormateWikiTpl = "{ref:texteWikiTpl}?txt.format=text/html" |
texteFormateSectionWikiTpl = "{ref:texteFormateWikiTpl}&txt.section.titre={sectionTitre}" |
wikipediaLienPageTpl = "http://{langue}.wikipedia.org/wiki/{id}" |
informationsTpl = "{ref:baseUrlApiEflore}/informations" |
informationTpl = "{ref:informationsTpl}/{bdnt}.nn:{num_nom}" |
informationsRelationCatminat = "{ref:informationTpl}/relations/catminat?navigation.limite={limite}&navigation.depart={depart}" |
informationsCatminat = "{ref:informationsTpl}?masque.cat={catminat}&navigation.limite={limite}&navigation.depart={depart}" |
graphiqueTpl = "{ref:baseUrlApiEflore}/graphiques/{type_graph}/{bdnt}.nn:{num_nom}" |
legendeGraphiqueTpl = "{ref:baseUrlApiEflore}/ontologies/{params}" |
syntaxonsTpl = "{ref:baseUrlApiEflore}/syntaxons"; |
syntaxonsSuperieurs = "{ref:syntaxonsTpl}/{code}/relations/niveaux-sup?retour.champs=physio_biotype,repartition_france,ref_der_biblio&masque.retenu=true"; |
syntaxonsSynonymes = "{ref:syntaxonsTpl}/{code}/relations/synonymie"; |
syntaxonsCatminat = "{ref:syntaxonsTpl}/{code}"; |
statutsTpl = "{ref:baseUrlApiEflore}/statuts/?masque.nn={id}" |
statutsZoneGeoTpl = "{ref:baseUrlApiEflore}/statuts/?masque.nn={id}&retour.format=zone_geo" |
listeRougeTpl = "{ref:baseUrlApiEflore}/categorie/?masque.nn={id}" |
; +------------------------------------------------------------------------------------------------------+ |
; Paramètres spécifiques à l'API 0.1 de DEL |
baseUrlApiDel = "http://{ref:domaine}/service:del:0.1/" |
delImagesTpl = "{ref:baseUrlApiDel}images?navigation.depart={depart}&navigation.limite={limite}&masque.referentiel={referentiel}&format=CRS"; |
delImagesResultatsDeterminationTpl = "{ref:baseUrlApiDel}images?masque.nn={idsNoms}&referentiel={referentiel}&tri=votes&ordre=desc&protocole=3&navigation.limite=801&format=CRS" |
delImagesPremiereTpl = "{ref:baseUrlApiDel}images?navigation.limite=1&masque.referentiel={referentiel}&masque.nn={idsNoms}&format=CS&tri=date_observation&ordre=asc" |
delImagesPopupTpl = "{ref:baseUrlApiDel}images/{id}?masque.referentiel={referentiel}&format=M" |
delImagesTaxonsTpl = "{ref:baseUrlApiDel}images?masque.referentiel={referentiel}&masque.nt={nntaxon}&navigation.limite=100" |
delGalerieMobileTpl = "{ref:baseUrlApiDel}images?navigation.depart=0&navigation.limite=4&masque.nn={nn}&tri=votes&ordre=desc&protocole=3&format=CRS"; |
delMeilleuresImagesParTagTpl = "{ref:baseUrlApiDel}images?masque.referentiel={referentiel}&masque.tag={tag}&masque.nn={nn}&navigation.limite={limite}&tri=votes&ordre=desc&protocole={protocole}&format={format}"; |
; +------------------------------------------------------------------------------------------------------+ |
; Chemin vers outil de conversion pdf |
WKHTMLTOPDF = "wkhtmltopdf" |
; +------------------------------------------------------------------------------------------------------+ |
;permaliens |
permalienNumNomTpl = "http://{ref:domaine}/{ref_tax}-nn-{id}"; |
permalienTaxonTpl = "http://{ref:domaine}/{ref_tax}/{ref_version}-nt-{id}"; |
; +------------------------------------------------------------------------------------------------------+ |
; Gestion du cache et des dossiers de stockage |
; Active (true) ou désactive (false) le cache |
cache = true |
; chemin du cache |
chemincache = "/home/telabotap/www/tmp/eflore_v5_cache/" |
; durée du cache |
dureecache = "php:60*60*24*365" |
; chemin de stockage temporaire pour les Html & les PDF |
dossier_pdf = "{ref:chemincache}pdf/" |
; chemin de stockage temporaire pour les QrCode |
dossierQrCode = "{ref:chemincache}qrcode/" |
; +------------------------------------------------------------------------------------------------------+ |
; Fiche Mobile |
; Nombre d'image max par projet pour le slider de la fiche mobile |
pictures.number.max = 3 |
/tags/v5.2-20131127/configurations/test-conf.sed |
---|
New file |
0,0 → 1,9 |
/^(debogage|benchmark_chrono)\>/s|= .*|= true| |
/^base_url_application/s|/eflore/|/eflore-test/| |
/^base_url_widget/s|/widget:cel:saisie|/widget-test:cel:saisie| |
/^base_url_mobile/s|/mobile|/mobile-test| |
/^cache/s|= .*|= false| |
/^chemincache/s|= .*|= /home/telabotap/www/tmp/eflore-test_v5_cache/| |
/^texteWikiTpl/s|/eFloreRedaction/|/eFloreRedactionTest/| |
/^pageWikiTpl/s|/eflore:wiki:|/eflore-test:wiki:| |
/^baseUrlApiEflore/s|/service:eflore:|/service-test:eflore:| |
/tags/v5.2-20131127/configurations/Makefile |
---|
New file |
0,0 → 1,18 |
# installation de l'espace de test |
# syntax: make <cible> |
cache_owner = telabotap |
cache_group = users |
test: |
@test '!' -e config.ini || { echo "config.ini exists"; exit 1; } |
@cp config.defaut.ini config.ini |
@sed -r -i -f test-conf.sed config.ini |
prod: |
@echo "note: le fichier de configuration distribué est déjà adapté pour la -prod" |
@test '!' -e config.ini || { echo "config.ini exists"; exit 1; } |
@cp config.defaut.ini config.ini |
cache: |
@cache=$(shell sed -n '/chemincache/s/.*= *//p' config.ini) |
@test -n "$(cache)" && install -d -o $(cache_owner) -g $(cache_group) $(cache) || true |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/tags/v5.2-20131127/configurations |
---|
New file |
Property changes: |
Added: svn:ignore |
+config.ini |
/tags/v5.2-20131127 |
---|
New file |
Property changes: |
Added: svn:ignore |
+.buildpath |
+.project |
+.settings |
+framework.php |