Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 1394 → Rev 1427

/tags/v5.10-vilmorin/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:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: v5.10-vilmorin/livraison
===================================================================
--- v5.10-vilmorin/livraison (revision 0)
+++ v5.10-vilmorin/livraison (revision 1427)
/v5.10-vilmorin/livraison
Property changes:
Added: svn:ignore
## -0,0 +1 ##
+consultation.tar.gz
Index: v5.10-vilmorin/modules/fiche/Fiche.php
===================================================================
--- v5.10-vilmorin/modules/fiche/Fiche.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/Fiche.php (revision 1427)
@@ -0,0 +1,278 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Fiche extends aControleur {
+
+ private $onglet = 'synthese';
+ private $parametres = array();
+ private $conteneur = null;
+ private $num_nom = 0;
+ private $nom_retenu = '';
+ private $nom_selectionne = null;
+ private $nom_appele_html = null; // le nom et l'auteur par lesquels on est arrivés sur la fiche, en cas de synonymie
+ private $url;
+
+
+ public function initialiser() {
+ $this->capturerParametres();
+ $this->conteneur = new Conteneur($this->parametres);
+ $nom_courant = $this->conteneur->getNomCourant();
+ $this->nom_selectionne = $nom_courant->getNomSelectionne();
+ $this->url = $this->conteneur->getAppUrls();
+ $this->nom_retenu = $nom_courant->getNomRetenu();
+ if ($this->nom_retenu->get('id') != $this->nom_selectionne->get('id')) {
+ $this->nom_appele_html = $this->nom_selectionne->get('nom_sci_html').' '.$this->nom_selectionne->get('auteur');
+ }
+ spl_autoload_register(array($this, 'chargerClassesOnglets'));
+ }
+
+ private function capturerParametres() {
+ if (isset($_GET['num_nom'])) {
+ $this->parametres['num_nom'] = $_GET['num_nom'];
+ }
+ if (isset($_GET['nom'])) {
+ $this->parametres['nom'] = $_GET['nom'];
+ }
+ if (isset($_GET['type_nom'])) {
+ $this->parametres['type_nom'] = $_GET['type_nom'];
+ }
+ if (isset($_GET['referentiel'])) {
+ $this->parametres['referentiel'] = $_GET['referentiel'];
+ Registre::set('parametres.referentiel', $_GET['referentiel']);
+ }
+ if (isset($_GET['niveau'])) {
+ Registre::set('parametres.niveau', $_GET['niveau']);
+ }
+ if (isset($_GET['onglet'])) {
+ $this->onglet = $_GET['onglet'];
+ }
+ }
+
+ private function chargerClassesOnglets($classe) {
+ $base = dirname(__FILE__).DS;
+ $cheminFormateurs = $base.'formateurs'.DS;
+ $dossiers = array($base, $cheminFormateurs);
+ foreach ($dossiers as $chemin) {
+ $fichierATester = $chemin.$classe.'.php';
+ if (file_exists($fichierATester)) {
+ include_once $fichierATester;
+ return null;
+ }
+ }
+ }
+
+ public function executerActionParDefaut() {
+ $this->executerFiche();
+ }
+
+ public function executerFiche(){
+
+ $squelette = 'fiche_'.$this->onglet;
+
+ //Gestion du niveau
+ $niveau = isset($_GET['niveau']) ? $_GET['niveau'] : 2;
+ if ($this->onglet == 'synthese' && $niveau != null) {
+ $squelette .= '_niveau'.$niveau;
+ }
+
+ // Récupération parametres et données
+ $donnees = array_merge($this->obtenirDonnees(), $this->parametres);
+ $donnees['i18n'] = I18n::get('Fiche');
+ $verna = isset($donnees['ethnobotanique']['nomsVerna']) && count($donnees['ethnobotanique']['nomsVerna']) ? $donnees['ethnobotanique']['nomsVerna'][0]['nom_vernaculaire'] : "";
+
+ // titre, description et tag de la page
+ $this->setSortie('titre', $this->nom_retenu->get('nom_sci'));
+ // ( <meta name="description" ...> )
+ $this->setSortie('description', sprintf("Fiche descriptive de %s %s (%s)", $this->nom_retenu->get('nom_sci'), $verna ? ('/ ' . $verna) : '', $donnees['description']['titre']));
+
+ $this->setSortie('tags', $this->nom_retenu->get('nom_sci').",".$verna.
+ ",botanique,plante,description,ecologie,reconnaitre,fiche espece");
+
+ $nom_sci_html = $this->nom_retenu->get('nom_sci_html');
+ // la recherche avancée à partir du clic sur le nom ne fonctionne pas sur les hybrides
+ $nom_sci_html = strpos($nom_sci_html, 'class="hyb"') === false ?
+ $this->formaterLiensNomsHtml($nom_sci_html) : $nom_sci_html;
+
+ // titre de la fiche
+ $donnees['nom_retenu_html'] = $nom_sci_html.' '.$this->nom_retenu->get('auteur');
+
+ $donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci');
+ $donnees['num_tax'] = $this->nom_selectionne->get('num_taxonomique');
+ $donnees['nom_appele_html'] = $this->nom_appele_html;
+ $famille = $this->nom_retenu->getTaxonSupRang('180');
+ $donnees['lien_recherche_famille'] = html_entity_decode($this->url->obtenirUrlRechercheAvancee(array("fam" => $famille)));
+ $donnees['famille'] = $famille;
+
+ $donnees['nom_vernaculaire'] = $verna;
+
+ // moteur de recherche
+ $this->executerAction('Recherche', 'executerAccueil', $this->parametres);
+
+ // page synthese
+ $blocs_niveaux = $this->conteneur->getParametreTableau('blocs_fiche_defaut');
+ $donnees['blocs'] = '"'.str_replace('|', '","', $blocs_niveaux[Registre::get('parametres.niveau')]).'"';
+
+ // onglet
+ $donnees['onglet'] = $this->onglet;
+ $donnees['niveau'] = $niveau;
+ $donnees['base_url_onglets'] = Config::get('base_url_application_onglets');
+
+ $taxons = new Taxons();
+ $referentiel = $this->conteneur->getParametre('referentiel');
+
+ $donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns());
+ $donnees['entete'] = $this->getVue('fiche_entete', $donnees);
+ $donnees['contenu_onglet'] = $this->getVue($squelette, $donnees);
+
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_accueil_niveau'.$niveau, $donnees), true);
+ $this->ajouterPiedDePage();
+ }
+
+ public function executerTemplateAjax() {
+ $classe = ucfirst($this->onglet);
+ $onglet = new $classe($this->conteneur);
+ $action = 'obtenir'.ucfirst($_GET['sous_action']);
+ $html_ajax = $onglet->$action();
+ header('Content-type : text/html');
+ echo $html_ajax;
+ exit;
+ }
+
+ private function formaterLiensNomsHtml($nom_sci_html) {
+ $app_urls = new AppUrls();
+ $params = array();
+ $classes_recherche = array("fam" => "fam", "gen" => "gen", "sp" => "sp", "infra-sp" => "ssp");
+
+ $doc = new DOMDocument();
+ $doc->loadHTML($nom_sci_html);
+ $spans = $doc->getElementsByTagName('span');
+ $abbrs = $doc->getElementsByTagName('abbr');
+
+ $params_subsp = array();
+
+ $i18n = I18n::get('Fiche');
+
+ //TODO: c'est un peu moche, la fonction est surement factorisable
+ if ($spans->length > 0) {
+ foreach($spans as $span) {
+ $classe = $span->getAttribute('class');
+ if(in_array($classe, array_keys($classes_recherche))) {
+
+ $params[$classes_recherche[$classe]] = $span->nodeValue;
+ if($classe == "sp") {
+ $params_subsp = $params;
+ }
+ $lien_tpl = html_entity_decode($this->url->obtenirUrlRechercheAvancee($params));
+ $texte_lien = $span->nodeValue;
+
+ $span->nodeValue = "";
+ $text = $doc->createElement('a', $texte_lien);
+ $text->setAttribute('href', $lien_tpl);
+ $text->setAttribute('title', $i18n["lien-recherche-hier-".$classe]);
+ $text->setAttribute('class', 'lien_recherche_hier');
+ $span->appendChild($text);
+ }
+ }
+ }
+
+ if ($abbrs->length > 0) {
+ foreach($abbrs as $abbr) {
+ $classe = $abbr->getAttribute('class');
+ $params_subsp["type"] = $abbr->nodeValue;
+ $lien_tpl = html_entity_decode($this->url->obtenirUrlRechercheAvancee($params_subsp));
+ $texte_lien = $abbr->nodeValue;
+
+ $abbr->nodeValue = "";
+ $text = $doc->createElement('a', $texte_lien);
+ $text->setAttribute('href', $lien_tpl);
+ $text->setAttribute('title', $i18n["lien-recherche-hier-ssp"]);
+ $text->setAttribute('class', 'lien_recherche_hier');
+ $abbr->appendChild($text);
+ }
+ }
+
+ return $doc->SaveXml();
+ }
+
+ private function formaterLienRechercheSurPartieNomSci(&$noeud, &$params) {
+
+ }
+
+ public function ajouterLienModuleExport() {
+ $donnees['lien'] = $this->url->obtenirUrlPdfExport($this->parametres['num_nom']);
+ $export = $this->getVue('fiche_pdf_lien', $donnees);
+ return $export;
+ }
+
+ public function ajouterPiedDePage() {
+ $description = new Description($this->conteneur);
+ $taxons = new Taxons();
+ $referentiel = $this->conteneur->getParametre('referentiel');
+ $urlMobile = $this->url->obtenirUrlMobile($this->parametres['num_nom']);
+ $donnees = array('wikipedia' => $description->getUrlWikipedia(),
+ 'export_pdf' => $this->ajouterLienModuleExport(),
+ 'permalien_num_nom' => $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns()),
+ 'permalien_taxon' => $taxons->getUrlPermalienTaxon($referentiel, 1, $this->conteneur->getNomCourant()->getNt()),
+ 'nn' => $this->conteneur->getNomCourant()->getNns(),
+ 'nt' => $this->conteneur->getNomCourant()->getNt(),
+ 'nnr' => $this->conteneur->getNomCourant()->getNnr(),
+ 'inpn' => $this->conteneur->getNomCourant()->getInpn(),
+ 'wiki' => $description->getLienWikini(),
+ 'nom_retenu' => $this->nom_retenu->get('nom_sci'),
+ 'mobile' => $urlMobile,
+ 'qr_code_png' => $this->obtenirUrlQrCode($urlMobile)
+ );
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_pied_page', $donnees), true);
+ }
+
+ private function obtenirUrlQrCode($urlMobile) {
+ $qr = $this->conteneur->getQrCode();
+ $qr->setUrl(htmlspecialchars_decode($urlMobile));
+ $idQrCode = $this->conteneur->getParametre('referentiel') . '-' .$this->conteneur->getNomCourant()->getNns();
+ $urlQrCode = $qr->dessiner($idQrCode);
+ return $urlQrCode;
+ }
+
+ public function executerOnglet(){
+ $this->viderSorties();
+ $donnees = $this->obtenirDonnees();
+ $squelette_onglet = $this->onglet;
+ // onglet
+ $donnees['i18n'] = I18n::get('Fiche');
+ $donnees['onglet'] = $this->onglet;
+ $taxons = new Taxons();
+ $referentiel = $this->conteneur->getParametre('referentiel');
+ $donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns());
+ // cas particulier de l'onglet synthese qui possède 3 niveaux
+ // et dont le nom n'est donc pas directement celui de son squelette
+ if($this->onglet == "synthese") {
+ $niveau = isset($_GET['niveau']) ? $_GET['niveau'] : 2;
+ $squelette_onglet .= '_niveau'.$niveau;
+ $entete = $this->getVue('fiche_entete', $donnees);
+ $vue = $entete.$this->getVue('fiche_'.$squelette_onglet, $donnees);
+ } else {
+ $vue = $this->getVue('fiche_'.$squelette_onglet, $donnees);
+ }
+
+ header('Content-type: text/html');
+ $this->setSortie(self::RENDU_CORPS, $vue);
+ }
+
+ private function obtenirDonnees() {
+ $classe = ucfirst($this->onglet);
+ $onglet = new $classe($this->conteneur); // grep-friendly: new Synthese()
+ return $onglet->obtenirDonnees();
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Ethnobotanique.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Ethnobotanique.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Ethnobotanique.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Ecologie.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Ecologie.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Ecologie.php (revision 1427)
@@ -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;
+ }
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Illustrations.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Illustrations.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Illustrations.php (revision 1427)
@@ -0,0 +1,369 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Illustrations extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $images = null;
+ private $appUrls = null;
+ private $meta = null;
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->images = $this->conteneur->getApiImages();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+ }
+
+ public function obtenirDonnees() {
+ $this->donnees['nt'] = $this->nomCourant->getNt();
+ $this->donnees['nnr'] = $this->nomCourant->getNnr();
+ $this->donnees['referentiel'] = $this->referentiel;
+ $this->donnees['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html');
+ $infosNomRetenu = $this->nomCourant->getNomRetenu()->getInfos();
+ $this->donnees['nomComplet'] = $infosNomRetenu['nom_complet'];
+ $this->getPhotos();
+ $this->getDessin();
+
+ $this->getPhotosCaracteresIdentification();
+ $pso = $this->getPhotosSixOrganes();
+
+ // Le framework n'avait pas prévu l'inclusion de sous squelettes dans les modules
+ // en attendant, on utilise un chemin complet vers le fichier de squelette
+ $chemin_sous_squelette = Config::get('chemin_modules').AppControleur::getNomDossierDepuisClasse('Fiche').DS.Config::get('dossier_squelettes').DS;
+ $params = array('organes' => $pso, 'referentiel' => $this->referentiel,
+ 'nnr' => $this->donnees['nnr'],
+ 'nomComplet' => $this->donnees['nomComplet']);
+ $this->donnees['illustrationsOrganes'] = $this->getVue($chemin_sous_squelette.'fiche_illustrations_organes.tpl.html',$params);
+ $this->donnees['organes'] = $pso;
+
+ // chemins
+ $this->donnees['base_url_widget_saisie'] = Config::get('base_url_widget_saisie');
+ $this->donnees['base_url_pictoflora'] = Config::get('base_url_pictoflora');
+ return $this->donnees;
+ }
+
+ public function obtenirDonneesExport() {
+ $this->donnees['nt'] = $this->nomCourant->getNt();
+ $this->donnees['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html');
+ $this->donnees['cel'] = $this->getCelExport();
+ if ($this->referentiel == 'bdtfx') {
+ $this->donnees['coste'] = $this->getCoste();
+ }
+ return $this->donnees;
+ }
+
+ public function getBloc() {
+ $this->donnees = $this->images->getInfosMeilleureImageParPrioriteTags($nnr = $this->nomCourant->getNnr(), array(
+ 'fleur', 'feuille', 'fruit', 'ecorce', 'port', 'rameau'));
+ if (empty($this->donnees)) {
+ $this->donnees = $this->getPhoto('cel');
+ if (empty($this->donnees)) {
+ $infos_image = $this->getDessin();
+ if (empty($infos_image) == false ) {
+ $this->donnees['imageUrl'] = array_shift($infos_image['images']);
+ }
+ }
+ } else {
+ // extraction de l'url
+ $this->donnees = array('imageUrl' => $this->donnees['binaire.href']);
+ }
+ // Photoflora (alias Copyrightflora alias Egoflora) n'est dispo que pour BDTFX
+ if (empty($this->donnees) && $this->referentiel == "bdtfx") {
+ $this->donnees = $this->getPhoto('photoflora');
+ }
+ return $this->donnees;
+ }
+
+ public function obtenirPhotoCelTpl() {
+ $images = $this->initialiserPhotos('cel');
+ $this->formaterListePhotos('cel', $images);
+ $this->formaterMetaPhotos('cel');
+ $chemin_sous_squelette = Config::get('chemin_modules').AppControleur::getNomDossierDepuisClasse('Fiche').DS.Config::get('dossier_squelettes').DS;
+ $donnees = array('cel' => array('images' => $this->donnees['cel']['images'], 'meta' => $this->donnees['cel']['meta'] ));
+ $html_tpl = $this->getVue($chemin_sous_squelette.'fiche_illustrations_cel.tpl.html', $donnees);
+ return $html_tpl;
+ }
+
+ //TODO: factoriser les deux fonctions ci dessous et ci dessus
+ public function obtenirTranchesCelTpl($projet) {
+ // On ne prend que la tranche des images (12)
+ $images = $this->initialiserTranchePhotos($projet);
+ $this->formaterListePhotos($projet, $images);
+ $this->formaterMetaPhotos($projet);
+ $chemin_sous_squelette = Config::get('chemin_modules').AppControleur::getNomDossierDepuisClasse('Fiche').DS.Config::get('dossier_squelettes').DS;
+ $donnees = array('cel' => array('images' => $this->donnees['cel']['images'], 'meta' => $this->donnees[$projet]['meta'] ));
+ $html_tpl = $this->getVue($chemin_sous_squelette.'fiche_illustrations_cel.tpl.html', $donnees);
+ $this->donnees[$projet]['illustrationsCel'] = $html_tpl;
+ $this->donnees[$projet]['cel_present'] = count($images) > 0;
+ // Ensuite on fait juste un lien qui permettra de les charger
+ $this->donnees[$projet]['ajax_url'] = $this->formaterUrlAjaxPhotoCel();
+ }
+
+ public function getPhoto($source) {
+ $donnees = array();
+ $this->images->setProjet($source);
+ $nnr = $this->nomCourant->getNnr();
+ $infos_image = $this->images->setApi(Eflore::API_EFLORE)->getInfosPremiereImageParIdsNoms(array($nnr));
+ if ($infos_image != array()) {
+ $image = array_shift($infos_image);
+ $donnees['imageUrl'] = $image['binaire.href'];
+ }
+ return $donnees;
+ }
+
+ public function getCoste() {
+ $coste = array();
+ $tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
+ $this->images->setProjet('coste');
+ $this->images->setNnTaxon($tax);
+ $costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
+ foreach ($costeImg as $infos) {
+ $coste['images'][] = $infos['binaire.href'];
+ }
+ $this->meta->setProjet('coste');
+ $meta = $this->meta->getMetaDonnees();
+ $coste['meta'] = $meta[0];
+ $coste['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('coste');
+ return $coste;
+ }
+
+ public function getDessin() {
+ $projet = Config::get($this->referentiel.'.baseDessins');
+ if ($projet != "") {
+ $dessin = array();
+ $tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
+ $this->images->setProjet($projet);
+ $this->images->setNnTaxon($tax);
+ $costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
+ foreach ($costeImg as $infos) {
+ $dessin['images'][] = $infos['binaire.href'];
+ }
+ $this->meta->setProjet($projet);
+ $meta = $this->meta->getMetaDonnees();
+ $dessin['meta'] = $meta[0];
+ $dessin['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
+ $this->donnees[$projet] = $dessin;
+ }
+ }
+
+ public function getPhotos() {
+ $projets[] = Config::get($this->referentiel.'.baseImages');
+ $projets[] = Config::get($this->referentiel.'.baseImagesSupp');
+ foreach ($projets as $projet) {
+ if ($projet != "") {
+ if ($projet == "cel") {
+ // Chargement des 10 premieres images + un lien pour en afficher plus
+ $this->obtenirTranchesCelTpl($projet);
+ } else {
+ $this->images->setApi(Eflore::API_EFLORE);
+ $images = $this->initialiserPhotos($projet);
+ $this->formaterListePhotos($projet, $images);
+ $this->formaterMetaPhotos($projet);
+ }
+ }
+ }
+ }
+
+ private function formaterUrlAjaxPhotoCel() {
+ $infos = array('referentiel' => $this->referentiel,
+ 'module' => 'fiche',
+ 'action' => 'templateAjax',
+ 'sous_action' => 'photoCelTpl',
+ 'num_nom' => $this->nomCourant->getNnr(),
+ 'onglet' => 'illustrations');
+ return Config::get('base_url_application_onglets').'?'.http_build_query($infos);
+ }
+
+ public function getPhotosSixOrganes() {
+ $organes = $this->getOrganes();
+ $nnr = $this->nomCourant->getNnr();
+ $infosOrganes = $this->images->getInfosMeilleuresImagesParTag($nnr, array_keys($organes), Eflore::PROTOCOLE_CAPITALISATION, 6, 'CRX2S');
+
+ $vide = true;
+ foreach ($infosOrganes as $tag => $organe) {
+ foreach ($organe as $id_image => &$image) {
+ $image['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($image['observation']['id_observation']);
+ }
+ $organes[$tag] = $organe;
+ $nbImages = count($organe);
+ if ($nbImages != 0) {
+ $vide = false;
+ for ($i = 6; $i > $nbImages; $i--) {
+ $organes[$tag][] = null;
+ }
+ }
+ }
+ if ($vide) {
+ $organes = array();
+ }
+
+ return $organes;
+ }
+
+ public function getPhotosOrganes() {
+ $organes = $this->getOrganes();
+ $nnr = $this->nomCourant->getNnr();
+ $infosOrganes = $this->images->getInfosMeilleuresImagesParTag($nnr, array_keys($organes), Eflore::PROTOCOLE_CAPITALISATION, 1);
+ $vide = true;
+ foreach ($infosOrganes as $tag => $organe) {
+ $nbImages = count($organe);
+ // une image par organe seulement
+ $organes[$tag] = array_pop($organe);
+ if ($nbImages != 0) {
+ $vide = false;
+ }
+ }
+ if ($vide) {
+ $organes = array();
+ }
+ $this->donnees['organes'] = $organes;
+ }
+
+ public function getPhotosCaracteresIdentification() {
+ $caracteres = array();
+ $nnr = $this->nomCourant->getNnr();
+ // pas de tag: on cherche les mieux votées pour ce protocole sans tenir compte des tags
+ $infosCaracteres = $this->images->getInfosMeilleuresImagesParTag($nnr, '', Eflore::PROTOCOLE_CARACTERES, 3);
+ if (! empty($infosCaracteres) && ! empty($infosCaracteres[''])) { // le tag est vide, ici
+ $caracteres = $infosCaracteres[''];
+ }
+ foreach($caracteres as $id_image => &$caractere) {
+ $caractere['urlDetailImg'] = $this->appUrls->obtenirUrlPopUpIllustrations($id_image);
+ $caractere['urlImgGrandFormat'] = $this->obtenirUrlImageGrandFormatCel($id_image);
+ $caractere['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($caractere['auteur.id'], $id_image);
+ $caractere['urlProfil'] = $this->appUrls->obtenirUrlProfilAnnuaire($caractere['auteur.id']);
+ $caractere['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($caractere['observation']['id_observation']);
+ }
+ $this->donnees['caracteres'] = $caracteres;
+ }
+
+ private function getOrganes() {
+ return array(
+ 'fleur' => array(),
+ 'feuille' => array(),
+ 'fruit' => array(),
+ 'ecorce' => array(),
+ 'port' => array(),
+ 'rameau' => array());
+ }
+
+ // XXX: webservice:
+ // /service:eflore:0.1/cel/images?masque.nn=XXX&referentiel=bdtfx&retour.format=CS&navigation.limite=801
+ private function initialiserPhotos($projet) {
+ $this->images->setProjet($projet);
+ $nnr = $this->nomCourant->getNnr();
+ $ret = $this->images->getInfosImagesParIdsNoms(array($nnr));
+ return $ret;
+ }
+
+ private function initialiserTranchePhotos($projet) {
+ $this->images->setProjet($projet);
+ $nnr = $this->nomCourant->getNnr();
+ $ret = $this->images->getInfosTrancheImagesParIdsNoms(array($nnr), Config::get('nbTrancheImagesResultatsDeterminationAffichees'));
+ return $ret;
+ }
+
+ private function formaterListePhotos($projet, $images) {
+ foreach ($images as $idImg => $img) {
+ $infosImg = array();
+ $infosImg['src'] = $img['binaire.href'];
+ $infosImg['nomSci'] = $img['determination.nom_sci'];
+ $infosImg['station'] = $img['station.libelle'];
+ $infosImg['date'] = $this->formaterDateImg($img['date']);
+ $infosImg['auteur'] = $img['auteur.libelle'];
+ $infosImg['auteur.id'] = $img['auteur.id'];
+ if ($projet == "cel") {
+ $infosImg['urlDetailImg'] = $this->appUrls->obtenirUrlPopUpIllustrations($idImg);
+ $infosImg['urlImgGrandFormat'] = $this->obtenirUrlImageGrandFormatCel($idImg);
+ $infosImg['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($img['auteur.id'], $idImg);
+ $infosImg['urlProfil'] = $this->appUrls->obtenirUrlProfilAnnuaire($img['auteur.id']);
+ $infosImg['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($img['observation.id']);
+ }
+ $this->donnees[$projet]['images'][$idImg] = $infosImg;
+ }
+ }
+
+ public static function obtenirUrlImageGrandFormatCel($id, $format = "O") {
+ $tpl = Config::get('baseUrlImageCelTpl');
+ return sprintf($tpl, str_pad($id, 9, '0', STR_PAD_LEFT).$format.'.jpg');
+ }
+
+ // XXX: public static pour être injecté dans le squelette d'entete
+ public static function obtenirTemplateUrlImageGrandFormatOrganes($format = "O") {
+ return $tpl = sprintf(Config::get('baseUrlImageCelTpl').$format.'.jpg', '{id_image}');
+ }
+
+ private function formaterMetaPhotos($projet) {
+ $this->meta->setProjet($projet);
+ $meta = $this->meta->getMetaDonnees();
+ $titreMeta = $meta[0];
+ $this->donnees[$projet]['meta'] = $titreMeta;
+ $this->donnees[$projet]['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
+ }
+
+
+
+ public function getCelExport() {
+ $cel = array();
+ $this->images->setProjet('cel');
+ $nnr = $this->nomCourant->getNnr();
+ $img = $this->images->getUrlPremiereImageParIdsNoms(array($nnr));
+ if($img) {
+ $img = array_values($img);
+ $cel['images']['src'] = $img[0]['binaire.href'];
+ $cel['images']['nomSci'] = $img[0]['determination.nom_sci'];
+ $cel['images']['station'] = $img[0]['station.libelle'];
+ $cel['images']['date'] = $this->formaterDateImg($img[0]['date']);
+ $cel['images']['auteur'] = $img[0]['auteur.libelle'];
+ $this->meta->setProjet('cel');
+ $meta = $this->meta->getMetaDonnees();
+ $cel['meta'] = $meta[0];
+ $cel['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('cel');
+ }
+ return $cel;
+ }
+
+ private function formaterDateImg($date) {
+ $dateFmt = $date;
+ if ($date == '' || $date == null || strpos($date, '0000-00-00') !== false || $date == '1970-01-01 01:01:01') {
+ return 'inconnue';
+ }
+ $time = strtotime($date);
+ if(!$time) {
+ /* TODO: php -r "echo strtotime('1891-00-00 00:00:00');"
+ TODO: fixer le template pour affiche "en l'année X", plutôt que "le X"
+ si FALSE pour avant 1901: problème php
+ On retourne alors simplement l'année.
+ si correction, ne pas oublier modules/popup_illustrations/PopupIllustrations.php */
+ $dateFmt = explode('-', $date);
+ return $dateFmt[0];
+ }
+ return strftime('%e %B %Y', strtotime($date));
+ }
+
+ private function formaterNomSci($nom) {
+ $nomFmt = $nom;
+ if (is_null($nom) || $nom == '') {
+ $nomFmt = 'inconnu';
+ }
+ return $nomFmt;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Nomenclature.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Nomenclature.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Nomenclature.php (revision 1427)
@@ -0,0 +1,170 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Nomenclature extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $noms = null;
+ private $meta = null;
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->taxons = $this->conteneur->getApiTaxons();
+ $this->noms = $this->conteneur->getApiNoms();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ $this->wikini = $this->conteneur->getApiWikini();
+ //print_r($_GET['niveau']);
+ //Registre::set('parametres.niveau', 2);
+ }
+
+ public function obtenirDonnees() {
+ $this->donnees['baseUrlIco'] = $this->appUrls->obtenirUrlBaseDossier();
+ $this->donnees['referentiel'] = $this->referentiel;
+ $this->getFlores();
+ $this->donnees['synonymes']['noms'] = $this->trierSynonymesParBasionyme($this->getSynonymes());
+ $this->donnees['date_maj'] = $this->nomCourant->getNomRetenu()->get('maj_modif');
+ $meta = $this->meta->getMetaDonnees();
+ $this->donnees['synonymes']['meta'] = $meta[0];
+ $this->donnees['synonymes']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel);
+ $this->donnees['num_type'] = $this->nomCourant->getNomSelectionne()->get('num_type');
+ $this->donnees['urls'] = $this->appUrls;
+ $this->donnees['nom_retenu_formate'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html_complet');
+ $this->donnees['nom_retenu_nn'] = $this->nomCourant->getNomRetenu()->get('nom_retenu.id');
+ $this->donnees['nom_retenu_source'] = $this->nomCourant->getNomRetenu()->get('source_biblio');
+ $this->donnees['basionyme_nom_retenu'] = $this->nomCourant->getNomRetenu()->get('basionyme_html_complet');
+ $this->donnees['basionyme_nom_retenu_nn'] = $this->nomCourant->getNomRetenu()->get('basionyme.id');
+ $this->donnees['nom_selectionne'] = $this->nomCourant->getNomSelectionne()->get('nom_sci_html_complet');
+ $this->donnees['nom_retenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci');
+ $this->donnees['wikini'] = $this->getWikini();
+ $this->donnees['hybride_parent_01'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_01_html_complet');
+ $this->donnees['hybride_parent_02'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_02_html_complet');
+ $this->donnees['hybride_parent_01_nn'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_01.id');
+ $this->donnees['hybride_parent_02_nn'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_02.id');
+
+
+
+ $this->donnees['taxons_sup'] = $this->nomCourant->taxons_sup;
+ $this->donnees['taxon_courant']['rang.libelle'] = $this->nomCourant->getNomRetenu()->get('rang.libelle');
+ $this->donnees['taxon_courant']['nom_sci'] = $this->nomCourant->getNomRetenu()->get('nom_sci');
+ $this->donnees['taxon_courant']['num_nom'] = $this->nomCourant->getNomRetenu()->get('id');
+ $this->donnees['taxons_inf'] = $this->getTaxonsInferieurs();
+
+ return $this->donnees;
+ }
+
+ private function trierSynonymesParBasionyme($synonymes) {
+ $synonymes_t = array();
+ $basionyme_inconnu = array();
+ foreach($synonymes as $num_nom => $syn) {
+ if($syn['num_type'] != "") {
+ $index = $syn['num_type'];
+ // regroupement sous le 1er basionyme (num_type == num_nom)
+ if(!isset($synonymes_t[$index]['infos_basionyme'])) {
+ $synonymes_t[$index]['infos_basionyme'] = $this->extraireInfosBasionymeDuSynonyme($syn);
+ }
+ $synonymes_t[$index]['synonymes'][$num_nom] = $syn;
+ } else {
+ $basionyme_inconnu['synonymes'][$num_nom] = $syn;
+ }
+ }
+ // mise à la fin du tableau des noms sans basionymes
+ if(!empty($basionyme_inconnu)) {
+ $synonymes_t['basionyme_inconnu'] = $basionyme_inconnu;
+ }
+
+ return $synonymes_t;
+ }
+
+ private function extraireInfosBasionymeDuSynonyme($synonyme) {
+ return array(
+ 'basionyme.id' => $synonyme['basionyme.id'],
+ 'basionyme.libelle' => $synonyme['basionyme.libelle'],
+ 'basionyme_html' => $synonyme['basionyme_html'],
+ 'basionyme_complet' => $synonyme['basionyme_complet'],
+ 'basionyme_html_complet' => $synonyme['basionyme_html_complet'],
+ 'basionyme.href' => $synonyme['basionyme.href']
+ );
+ }
+
+ private function getTaxonsInferieurs() {
+ $num_nom = $this->nomCourant->getNomRetenu()->get('id');
+ $resultat = $this->taxons->getTaxonsInf($num_nom);
+ // TODO: le webservice retourne le taxon demandé comme l'un des taxon inférieurs
+ // workaround: on le supprime ici car l'on ignore si d'autre app' dépendent de ce comportement
+ unset($resultat[$num_nom][$num_nom]);
+ return $resultat[$num_nom];
+ }
+
+ public function obtenirVersionDonnees() {
+ $meta = $this->meta->getMetaDonnees();
+ $this->donnees['version'] = $meta[0]['code'].' v.'.$meta[0]['version'];
+ return $this->donnees;
+ }
+
+
+ public function getBloc() {
+ $this->donnees['urls'] = $this->appUrls;
+ $this->donnees['nom_selectionne'] = $this->nomCourant->getNomSelectionne()->get('nom_sci_html_complet');
+ $this->donnees['nom_retenu_formate'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html_complet');
+ $this->donnees['basionyme_nom_retenu'] = $this->nomCourant->getNomRetenu()->get('basionyme_html_complet');
+ $synonymes = $this->getSynonymes();
+ $this->donnees['synonymes'] = array_slice($synonymes, 0, 3);
+ $this->donnees['autresSynonymesNbre'] = count($synonymes) - 3;
+
+ $this->donnees['taxons_sup'] = $this->nomCourant->taxons_sup;
+ $this->donnees['taxons_inf'] = $this->getTaxonsInferieurs();
+ $this->donnees['taxons_sup'] = is_array($this->donnees['taxons_sup']) ? array_slice($this->donnees['taxons_sup'], -3 , 3) : array();
+ $this->donnees['taxons_inf'] = is_array($this->donnees['taxons_inf']) ? array_slice($this->donnees['taxons_inf'], 0 , 3) : array();
+
+ return $this->donnees;
+ }
+
+ private function getFlores() {
+ if (Config::get($this->referentiel.'.baseFloresRef') != "") {
+ $nnr = $this->nomCourant->getNnr();
+ $flores = $this->noms->getFlores($nnr);
+ $this->donnees['flores_synonymes'] = (isset($flores['resultat']) && is_array($flores['resultat'])) ? $flores['resultat'] : array();
+ }
+ }
+
+ private function getSynonymes() {
+ $nns = $this->nomCourant->getNns();
+ $synonymesReponse = $this->noms->getSynonymes($nns);
+
+ $synonymes = array();
+ if (isset($synonymesReponse['resultat']) && is_array($synonymesReponse['resultat'])) {
+ $synonymes = $synonymesReponse['resultat'];
+ if (array_key_exists($this->nomCourant->getNnr(), $synonymes)) {
+ unset($synonymes[$this->nomCourant->getNnr()]);
+ }
+ }
+ return $synonymes;
+ }
+
+ private function getWikini() {
+ $wikini = array();
+ $wikini['titre'] = 'Wikini';
+ $num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
+ $page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($this->referentiel, $num_tax);
+ $wikini['nomenclature'] = $this->wikini->getTexteFormate($page_wiki, 'nomenclature');
+ return $wikini;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Bibliographie.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Bibliographie.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Bibliographie.php (revision 1427)
@@ -0,0 +1,83 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Bibliographie extends aControleur {
+
+ private $apiBiblioBota;
+ private $conteneur;
+ private $nomCourant;
+ private $meta;
+ private $appUrls;
+ private $wikini;
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->wikini = $this->conteneur->getApiWikini();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ }
+
+ public function obtenirDonnees() {
+ $this->donnees['bibliobota']['references'] = $this->getBiblioBota();
+ $this->meta->setProjet('bibliobota');
+ $meta = $this->meta->getMetaDonnees();
+ $this->donnees['bibliobota']['meta'] = $meta[0];
+ $this->donnees['bibliobota']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bibliobota');
+
+ $this->donnees['wikini'] = $this->getWikini();
+ return $this->donnees;
+ }
+
+ public function getBloc() {
+ $references = $this->getBiblioBota();
+ $this->donnees['references'] = array_slice($references, 0, 3);
+ foreach ($this->donnees['references'] as $id=>$reference) {
+ preg_match('/.*<strong>(.*)<\/strong>.*/', $reference['reference_html'], $titre);
+ $this->donnees['references'][$id]['reference_html'] = $titre[1];
+ }
+ $this->donnees['autresReferences'] = count($references) - 3;
+ if ($this->donnees['references'] == array()) {
+ $this->donnees['wikini'] = $this->getWikini();
+ }
+ return $this->donnees;
+ }
+
+
+ //Obtention des données issues de biblio_bota
+ private function getBiblioBota() {
+ $this->apiBiblioBota = $this->conteneur->getApiBiblioBota();
+ $this->apiBiblioBota->setProjet('bibliobota');
+ $interrogation = $this->nomCourant->getNomSelectionne()->get('nom_sci');
+ $references = $this->apiBiblioBota->getReferences($interrogation);
+ return $references['resultats'];
+ }
+
+ private function getWikini() {
+ $wikini = array();
+ $wikini['titre'] = 'Wikini';
+ $referentiel = $this->conteneur->getParametre('referentiel');
+ $num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
+ $page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
+ $wikini['biblio'] = $this->wikini->getTexteFormate($page_wiki, 'biblio');
+ return $wikini;
+ }
+
+
+
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Repartition.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Repartition.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Repartition.php (revision 1427)
@@ -0,0 +1,162 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Repartition extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+ private $cartes;
+ private $meta;
+ private $appUrls;
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->cartes = $this->conteneur->getApiCartes();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ }
+
+ public function obtenirDonnees() {
+ $this->getRepartition();
+ $this->getMoissonnage();
+ $this->getFloreProbable();
+ $this->donnees['widget']['nt'] = $this->nomCourant->getNt();
+ $this->donnees['widget']['nn'] = $this->nomCourant->getNnr();
+ $this->donnees['widget']['referentiel'] = $this->referentiel;
+ return $this->donnees;
+ }
+
+ public function obtenirDonneesExport() {
+ $this->getRepartition();
+ $donnees['chorodep'] = $this->donnees['repartition'];
+ $this->getMoissonnageExport();
+ // TODO: renommer l'index "eflore" en moissonnage
+ // et renommer dans pdf_export/squelettes/pdf_repartition.tpl.html
+ $donnees['eflore'] = $this->donnees['moissonnage'];
+ return $donnees;
+ }
+
+ private function getRepartition() {
+ $projetRepartition = Config::get("{$this->referentiel}.baseRepartition");
+ // eg: eflore ou chorodep
+ // cf: bdtfx.ini, bdtxa.ini
+ if ($projetRepartition != '') {
+ $this->cartes->setProjet($projetRepartition);
+ $this->cartes->setLargeur('630');
+ $nt = $this->nomCourant->getNt();
+ $this->cartes->setId("{$this->referentiel}.nt:$nt");
+ $repartition['svgUrl'] = $this->cartes->getUrlDataSvg();
+ $repartition['pngUrl'] = $this->cartes->getUrlPng();
+ $repartition['legende'] = $this->cartes->getLegendeId();
+ $this->meta->setProjet($projetRepartition);
+ $meta = $this->meta->getMetaDonnees();
+ $repartition['meta'] = $meta[0];
+ $repartition['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projetRepartition);
+ $this->donnees['repartition'] = $repartition;
+ }
+ }
+
+ private function getMoissonnage() {
+ $projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
+ if (! $projetMoissonnage) return;
+ $this->cartes->setProjet('moissonnage');
+ $this->cartes->setLargeur('600');
+ $this->cartes->setInfoNom($this->nomCourant->getNt());
+ $this->cartes->setInfoReferentiel($this->referentiel);
+ $eflore['mapUrl'] = $this->cartes->getUrlMapSvg();
+ $eflore['mapTelechargementUrls'] = array('png' => $this->cartes->getUrlTelechargementMapPng(),
+ 'html' => $this->cartes->getUrlTelechargementMapHtml());
+ $eflore['legende'] = $this->cartes->getLegende();
+ $this->donnees['moissonnage'] = $eflore;
+ }
+
+ private function getMoissonnageExport() {
+ $projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
+ if (! $projetMoissonnage) return;
+ $this->cartes->setProjet($projetMoissonnage);
+ $this->cartes->setLargeur('min');
+ $this->cartes->setInfoNom($this->nomCourant->getNomRetenu());
+ $eflore['min'] = $this->cartes->getUrlEflorePng();
+ $eflore['legende'] = $this->cartes->getLegende();
+ $this->donnees['moissonnage'] = $eflore;
+ }
+
+ private function getFloreProbable() {
+ $projetFloreProbable = Config::get($this->referentiel.'.baseFloreProbable');
+ if (! $projetFloreProbable) return;
+ $this->cartes->setProjet($projetFloreProbable);
+ $this->meta->setProjet($projetFloreProbable);
+ $this->cartes->setId($this->referentiel.'.nt:'.$this->nomCourant->getNt());
+ // TODO: url téléchargement de la carte lorsqu'on sera sur que c'est possible
+ // dans ['carte']['telechargement'] par exemple
+ $this->donnees['flore_probable'] = array('carte' => array(), 'meta' => array());
+ $this->meta->setProjet($projetFloreProbable);
+ $meta = $this->meta->getMetaDonnees();
+ $this->donnees['flore_probable']['meta'] = $meta[0];
+ $this->donnees['flore_probable']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projetFloreProbable);
+ $this->donnees['flore_probable']['carte']['url'] = $this->cartes->getUrlFloreProbablePng();
+ }
+
+ public function getBloc() {
+ $donnees['chorodep'] = $this->getChorodepMiniature();
+ $donnees['eflore'] = $this->getMoissonnageMiniature();
+
+ // TODO: moche, comment gérer le fait que l'onglet "synthèse", en "bdtxa", doive
+ // afficher la carte chorologie, et non la carte chorodep.
+ // workaround: écrasement de l'URL dans ['répartition']['chorodep']:
+ if ($this->referentiel == 'bdtxa') {
+ $nt = $this->nomCourant->getNt();
+ $idCarte = "{$this->referentiel}.nt:$nt";
+ $urlCarte = Config::get("{$this->referentiel}.baseRepartition");
+
+ $donnees['chorodep'] = Cartes::getCarteUrlPng($urlCarte, $idCarte, '190x178');
+ }
+
+ return $donnees;
+ }
+
+ private function getChorodepMiniature() {
+ $projetRepartition = Config::get("{$this->referentiel}.baseRepartition");
+ $url = null;
+ if ($projetRepartition != '') {
+ $this->cartes->setProjet($projetRepartition);
+ $this->cartes->setProjet('chorodep');
+ $this->cartes->setLargeur('190x178');
+
+ $nt = $this->nomCourant->getNt();
+ $this->cartes->setId("{$this->referentiel}.nt:$nt");
+
+ $url = $this->cartes->getUrlPng();
+ }
+ return $url;
+ }
+
+ private function getMoissonnageMiniature() {
+ $projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
+ $url = null;
+ if ($projetMoissonnage != '') {
+ $this->cartes->setProjet('moissonnage');
+ $this->cartes->setLargeur('190');
+ $this->cartes->setInfoReferentiel($this->referentiel);
+ $this->cartes->setInfoNom($this->nomCourant->getNt());
+ $url = $this->cartes->getUrlMapPng();
+ }
+ return $url;
+ }
+}
+?>
\ No newline at end of file
/v5.10-vilmorin/modules/fiche/formateurs/Repartition.php
Property changes:
Added: svnkit:entry:sha1-checksum
## -0,0 +1 ##
+14e91034608691b894071e3f1724d66014a9373f
\ No newline at end of property
Index: v5.10-vilmorin/modules/fiche/formateurs/Synthese.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Synthese.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Synthese.php (revision 1427)
@@ -0,0 +1,66 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe Onglet Synthese.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @author Grégoire DUCHÉ <gregoire@tela-botanica.org>
+ * @author Raphaël Droz <raphael@tela-botanica.org>
+ * @copyright 2011, 2013 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @used by modules/fiche/Fiche.php::obtenirDonnees()
+ */
+class Synthese /* aControleur inutilisé à ce jour */ {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ }
+
+ public function obtenirDonnees() {
+ $donnees = array();
+ $num_nom = $this->nomCourant->getNns();
+
+ $nom = $this->conteneur->getApiNoms()->getNom($num_nom);
+
+ $blocs = array(
+ 'illustrations', // grep-friendly: new Illustrations()
+ 'repartition', // grep-friendly: new Repartition()
+ 'nomenclature', // grep-friendly: new Nomenclature()
+ 'description', // grep-friendly: new Description()
+ 'ethnobotanique', // grep-friendly: new Ethnobotanique()
+ 'bibliographie', // grep-friendly: new Bibliographie()
+ 'statut', // grep-friendly: new Statut()
+ 'ecologie' // grep-friendly: new Ecologie()
+ );
+ $cache = array();
+
+ $nt = $this->conteneur->getNomCourant()->getNomRetenu()->get('num_taxonomique');
+ $donnees['infos'] = array('referentiel' => $this->conteneur->getParametre('referentiel'), 'num_tax' => $nt, 'nom_sci' => $nom['nom_complet']);
+ $referentiel = $this->conteneur->getParametre('referentiel');
+ foreach ($blocs as $bloc) {
+ // TODO: unserialize() pourrait aussi légitimement retourner FALSE
+ $cache_bloc = unserialize($this->conteneur->getCache()->charger($bloc.'/bloc/'.$referentiel.'_'.$num_nom));
+ if($cache_bloc) {
+ $donnees[$bloc] = $cache_bloc;
+ } else {
+ $nom_classe = ucfirst($bloc);
+ $classe = new $nom_classe($this->conteneur);
+ $donnees[$bloc] = $classe->getBloc();
+ if($donnees[$bloc]) {
+ $this->conteneur->getCache()->sauver(serialize($donnees[$bloc]),
+ $bloc.'/bloc/'.$referentiel.'_'.$num_nom);
+ }
+ }
+ }
+ return $donnees;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/formateurs/Description.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Description.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Description.php (revision 1427)
@@ -0,0 +1,266 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Description extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $textes = null;
+ private $meta = null;
+ private $wikini = null;
+ private $informations = null;
+ static $mois = array(
+ 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet',
+ 'août', 'septembre', 'octobre', 'novembre', 'décembre');
+ private $CosteFormate;
+ private $CosteTexte;
+
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->textes = $this->conteneur->getApiTextes();
+ $this->wikini = $this->conteneur->getApiWikini();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+ $this->informations = $this->conteneur->getApiInformations();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ }
+
+ public function obtenirDonnees() {
+ $donnees = array();
+ $this->getWikipedia();
+ $this->getWikini();
+ $this->getDescriptionsDependantesReferentiel($this->referentiel);
+ if ($this->referentiel == 'bdtfx') {
+ $this->getCoste();
+ }
+ return $this->donnees;
+ }
+
+ public function obtenirDonneesExport() {
+ $donnees = array();
+ $this->getWikini();
+ $this->getDescriptionsDependantesReferentiel($this->referentiel);
+ return $this->donnees;
+ }
+
+ private function getDescriptionsDependantesReferentiel($ref) {
+ if(trim(Config::get($ref . '.baseDescription')) != "") {
+ // eg: [bdtfx]baseDescription = coste,baseflor dans bdtfx.ini
+ $bases_descriptions = explode(',', Config::get($ref . '.baseDescription'));
+ foreach ($bases_descriptions as $base) {
+ $fonction = 'get'.ucfirst($base);
+ $this->$fonction();
+ }
+ }
+ }
+
+ public function getBloc() {
+ // prend la première description disponible dans l'ordre indiqué dans le fichier
+ // de config, et prend la description wiki sinon
+ if(Config::get($this->referentiel.'.baseDescription') != "") {
+ $bases_descriptions = explode(',', Config::get($this->referentiel.'.baseDescription'));
+ foreach ($bases_descriptions as $base) {
+ $fonction = 'get'.ucfirst($base);
+ $this->$fonction();
+ if(empty($this->donnees[$base]['description'])) {
+ unset($this->donnees[$base]);
+ continue;
+ }
+
+ $this->donnees['type'] = $base;
+ $this->donnees['titre'] = "Description de ".ucfirst($base);
+ $this->donnees['description'] = $this->donnees[$base]['description'];
+ unset($this->donnees[$base]);
+ return $this->donnees;
+ }
+ }
+
+ if (empty($this->donnees['description'])) {
+ $this->getWikini();
+ $this->donnees['description'] = $this->donnees['wikini']['description'];
+ $this->donnees['titre'] = "Description collaborative";
+ $this->donnees['type'] = 'wikini';
+ unset($this->donnees['wikini']);
+ }
+
+ return $this->donnees;
+ }
+
+ private function getBaseflor() {
+ $baseflor = array();
+ $this->informations ->setProjet('baseflor');
+ $this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
+ $this->informations ->setNum_nom($this->nomCourant->getNnr());
+ $informations = $this->informations->getInformationsDescription();
+ if ($informations){
+ $baseflor['chorologie'] = isset($informations['chorologie']) ? $informations['chorologie'] : '';
+ $baseflor['inflorescence'] = isset($informations['inflorescence']) ? $informations['inflorescence'] : '';
+ $baseflor['sexualite'] = isset($informations['sexualite']) ? $informations['sexualite'] : '';
+ $baseflor['ordre_maturation'] = isset($informations['ordre_maturation']) ? $informations['ordre_maturation'] : '';
+ $baseflor['pollinisation'] = isset($informations['pollinisation']) ? $informations['pollinisation'] : '';
+ $baseflor['dissemination'] = isset($informations['dissemination']) ? $informations['dissemination'] : '';
+ $baseflor['fruit'] = isset($informations['fruit']) ? $informations['fruit'] : '';
+ $baseflor['couleur_fleur'] = isset($informations['couleur_fleur']) ? $informations['couleur_fleur'] : '';
+ $baseflor['macule'] = isset($informations['macule']) ? $informations['macule'] : '';
+ $baseflor['floraison'] = isset($informations['floraison']) ? self::changerFloraisonEnChaine($informations['floraison']) : '';
+ //récupérer dans ontologies
+ $baseflor['type_bio'] = isset($informations['type_bio.libelle']) ? $informations['type_bio.libelle'] : '';
+ $baseflor['form_vegetale'] = isset($informations['form_vegetale']) ? $informations['form_vegetale'] : '';
+ $baseflor['description']=$baseflor;
+ $this->meta->setProjet('baseflor');
+ $meta = $this->meta->getMetaDonnees();
+ $baseflor['meta'] = $meta[0];
+ $baseflor['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseflor');
+ }
+ $this->donnees['baseflor'] = $baseflor;
+ }
+
+ static function changerFloraisonEnChaine($floraison){
+ $chaine = "";
+ if ($floraison != ""){
+ $mois_fleurs=preg_match('/-/',$floraison) ? preg_split('/-/',$floraison) : $floraison;
+ if (is_array($mois_fleurs)){
+ $chaine = "de ".self::$mois[(int)$mois_fleurs[0]]." à ".self::$mois[(int)$mois_fleurs[1]];
+
+ }else { $chaine = "en ".self::$mois[(int)$mois_fleurs];
+ }
+ }
+ return $chaine;
+ }
+
+ public function getUrlWikipedia() {
+ if(!isset($this->donnees['wp'])) {
+ $this->getWikipedia();
+ }
+ return $this->donnees['wp'];
+ }
+
+ public function getWikipedia() {
+ $wp = array();
+ $this->textes->setProjet('wikipedia');
+ $this->textes->setId(self::getIdWp($this->nomCourant->getNomRetenu()->get('nom_sci')));
+ $wp['titre'] = $donnees['titre'] = "Description de wikipedia";
+ $wp['lien'] = $this->textes->getPageUrl();
+ $wp['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('wikipedia');
+ $this->donnees['wp'] = $wp;
+ }
+
+ private static function getIdWp($nomSci) {
+ return urlencode(str_replace(' ', '_', $nomSci));
+ }
+
+ private function getWikini() {
+ $wikini = array();
+ $wikini['titre'] = 'Wikini';
+ $referentiel = $this->conteneur->getParametre('referentiel');
+ $num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
+ $page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
+ $wikini['description'] = $this->wikini->getTexteFormate($page_wiki, 'description');
+ $this->donnees['wikini'] = $wikini;
+ }
+
+ public function getLienWikini() {
+ $referentiel = $this->conteneur->getParametre('referentiel');
+ $num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
+ return $this->wikini->getUrlPageWiki($referentiel, $num_tax);
+ }
+
+ private function getCoste() {
+ $coste = array();
+ $this->textes->setProjet('coste');
+ $this->textes->setId('bdtfx.nt:'.$this->nomCourant->getNt());
+ $texte = $this->textes->getTexte();
+ $texte = array_pop($texte['resultats']);
+ if ($texte) {
+ $coste['titre'] = $texte['titre'];
+ $coste['description'] = self::mettreEnFormeCoste($texte['texte']);
+ }
+ $this->meta->setProjet('coste');
+ $meta = $this->meta->getMetaDonnees();
+ $coste['meta'] = $meta[0];
+ $coste['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('coste');
+ $this->donnees['coste'] = $coste;
+ }
+
+ static function mettreEnFormeCoste($texte) {
+ $txt_fmt = array();
+ //decouper elements remarquables avant le texte
+ self::separerNomScientifique_a_NomCommun($texte, $txt_fmt);
+ $texte = preg_replace('/\//','',$texte);
+ //decouper elements remarquables après le texte
+ self::separerEcologie_a_Usages($texte, $txt_fmt);
+ //le morceau qui reste est le gros de la description
+ $texte = str_replace(';','</br> -','- '.$texte);
+ $texte = str_replace('–','',$texte);
+ $txt_fmt['texte'] = $texte;
+ return $txt_fmt;
+ }
+
+
+ static function separerNomScientifique_a_NomCommun(&$txt, &$txt_fmt){
+ if ( preg_match('/\*\*(.+)\*\*([^–]*)–/', $txt, $retour)){
+ /* !! attention on enlève un tiret cadratin – pas un trait d'union - !! */
+ $a_enlever = array('/–/','/\./' );
+ $txt_fmt['nom_scientifique'] = preg_replace($a_enlever,'',$retour[1]);
+ if(preg_match('/\((.+)\)/',$retour[2],$synonymes)){
+ $txt_fmt['synonymes'] = $synonymes[1];
+ } else {
+ $txt_fmt['nom_scientifique'] .= $retour[2];
+ }
+ $txt = str_replace($retour[0],'',$txt);
+ }
+ /* !! attention il y a un espace avant les // du début !! */
+ if ( preg_match('/^ \/\/([^\/\/]+)\/\//', $txt, $retour)){
+ $a_enlever = array('/–/','/\./' );
+ $txt_fmt['nom_commun'] = preg_replace($a_enlever,'',$retour[1]);
+ $txt = str_replace($retour[0],'',$txt);
+ }
+ }
+
+
+ static function separerEcologie_a_Usages(&$txt, &$txt_fmt) {
+ if (preg_match('/\.\s*([A-ZÉÀÈ].+)$/',$txt, $retour)) {
+ $txt_fmt['ecologie'] = $retour[1];
+ $txt = str_replace($retour[0],'.',$txt);
+ if (isset($txt_fmt['ecologie']) && preg_match('/–(.+)/', $txt_fmt['ecologie'] , $retour)){
+ $txt_fmt['repartition'] = $retour[1];
+ $txt_fmt['ecologie'] = str_replace($retour[0],'',$txt_fmt['ecologie']);
+ }
+ if (isset($txt_fmt['repartition']) && preg_match('/=(.+)$/', $txt_fmt['repartition'], $retour)){
+ $txt_fmt['floraison'] = $retour[1];
+ $txt_fmt['repartition'] = str_replace($retour[0],'',$txt_fmt['repartition']);
+ }
+ if (isset($txt_fmt['floraison']) && preg_match('/–(.+)$|\n(.+)$/',$txt_fmt['floraison'], $retour)){
+ $txt_fmt['usages'] = isset($retour[1]) ? $retour[1] : $retour[2];
+ $txt_fmt['floraison'] = str_replace($retour[0],'.',$txt_fmt['floraison']);
+ }
+ if (isset($txt_fmt['floraison']) && preg_match('/([Ff]l\.) (.+)/',$txt_fmt['floraison'], $retour)){
+ $txt_fmt['floraison'] = $retour[2];
+ $txt_fmt['floraison'] = str_replace($retour[1],'',$txt_fmt['floraison']);
+ }
+ if (isset($txt_fmt['floraison']) && preg_match('/([Ff]r\.) (.+)/',$txt_fmt['floraison'], $retour)){
+ $txt_fmt['fructification'] = $retour[2];
+ $txt_fmt['floraison'] = str_replace($retour[0],'',$txt_fmt['floraison']);
+ $txt_fmt['floraison'] = str_replace(',','',$txt_fmt['floraison']);
+ $txt_fmt['fructification'] = str_replace($retour[1],'',$txt_fmt['fructification']);
+ $txt_fmt['fructification'] = str_replace('.','',$txt_fmt['fructification']);
+ }
+ }
+ }
+}
+?>
\ No newline at end of file
/v5.10-vilmorin/modules/fiche/formateurs/Description.php
Property changes:
Added: svn:mergeinfo
Merged /branches/v5.4-decaisne/modules/fiche/formateurs/Description.php:r1226-1227
Merged /branches/v5.2-lasegue/modules/fiche/formateurs/Description.php:r1183
Merged /branches/v5.7-duchartre/modules/fiche/formateurs/Description.php:r1286,1294,1296,1325,1333-1334
Merged /branches/v5.3-cordier/modules/fiche/formateurs/Description.php:r1206
Merged /branches/v5.8-seynes/modules/fiche/formateurs/Description.php:r1344-1345,1347,1351,1356
Index: v5.10-vilmorin/modules/fiche/formateurs/Statut.php
===================================================================
--- v5.10-vilmorin/modules/fiche/formateurs/Statut.php (revision 0)
+++ v5.10-vilmorin/modules/fiche/formateurs/Statut.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations.tpl.html (revision 1427)
@@ -0,0 +1,209 @@
+<div class="onglet_contenu" id="illustrations">
+ <? if (isset($coste)) : ?>
+ <h2>Illustration de la flore de Coste</h2>
+
+ <div id="illustrations-coste">
+ <?php if (empty($coste['images']) == false) :?>
+ <ul class="liste-illustrations">
+ <?php foreach($coste['images'] as $url) : ?>
+ <li>
+ <a class="lien-image-coste" data-num-image="<?= $url; ?>" href="<?= $url; ?>" >
+ <img src="<?= $url; ?>" alt="<?= $nomComplet ?> - illustration de coste" />
+ </a>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+ <hr class="nettoyage" />
+ <div class="conteneur_lien_metadonnees">
+ <?= $coste['meta']['citation']?>
+ <a class="lien_metadonnees lien_popup" href="<?= $coste['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </div>
+ <?php else : echo ' <br/> Aucune illustration. <br/> <br/>'; endif;?>
+ </div>
+ <? endif; ?>
+
+ <? if (isset($organes) || $illustrationsOrganes != null) : ?>
+ <h2>Flora Data - Organes</h2>
+ <? endif ?>
+
+ <? if (isset($organes)) : ?>
+
+ <div id="illustrations-organes">
+ <? if (empty($organes) == false) :?>
+ <ul class="liste-illustrations">
+ <? foreach($organes as $tag => $image) : ?>
+ <? if ($image && $image['binaire.href']) : ?>
+ <li class="organe-moyen">
+ <?= ucfirst($tag); ?>
+ <a class="lien_grand_format" target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="<?= Illustrations::obtenirUrlImageGrandFormatCel($image['id_image']); ?>" data-num-image="<?= $image['id_image'] ?>">
+ <img data-num-image="<?= $image['id_image'] ?>"
+ alt="Photographie n°<?= $image['id_image'] ?> du taxon <?= $image['observation']['determination.ns'] ?>"
+ src="<?= $image['binaire.href'] ?>" />
+ </a>
+ </li>
+ <? endif ?>
+ <? endforeach ?>
+ </ul>
+ <? endif ?>
+ <hr class="nettoyage" />
+ <a class="acceder-outil-vert lien-externe"
+ href="<?= $base_url_widget_saisie ?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>"
+ title="Ajouter une photographie au moyen du Carnet en Ligne">
+ Ajouter une photo
+ </a>
+ <? if (empty($organes) == false) : ?>
+ <span class="separator"></span>
+ <a class="acceder-outil-vert lien-externe" href="<?= $base_url_pictoflora ?>?masque.referentiel=<?= $referentiel; ?>&protocole=3&masque.ns=<?= $nomComplet ?>"
+ title="Participer au choix des photos d'organes">
+ Participer au choix
+ </a>
+ <? endif ?>
+ <br/><br/>
+ </div>
+ <? endif ?>
+
+ <!-- sous-squelette -->
+ <?= $illustrationsOrganes ?>
+ <br/>
+
+ <? if (isset($caracteres)) : ?>
+ <h2>Flora Data - Aide à la détermination</h2>
+
+ <div id="illustrations-caracteres">
+ <? if (empty($caracteres) == false) : ?>
+ <ul class="liste-illustrations">
+ <? foreach($caracteres as $image) : ?>
+ <li class="caractere-moyen">
+ <? if ($image != null) : ?>
+ <a class="lien_grand_format" target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="<?= Illustrations::obtenirUrlImageGrandFormatCel($image['id_image']); ?>" data-num-image="<?= $image['id_image'] ?>">
+ <img data-num-image="<?= $image['id_image'] ?>"
+ alt="<?= $image['auteur'] ?> - <?= $image['observation']['determination.ns'] ?>"
+ src="<?= $image['binaire.href'] ?>" />
+ </a>
+ <? if ($image['auteur.id']) : ?>
+ <a target="_blank" title="Voir le profil de cet utilisateur (nécessite d'être identifié)" href="<?= $image['urlProfil']; ?>">
+ <strong class="auteur"><?= $image['auteur'] ?></strong>
+ </a>&nbsp;&nbsp;
+ <div class="liste_actions_ill">
+ <a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)" class="mailto" href="<?= $image['urlContact']; ?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>contact.png" />
+ </a>
+ <a title="Télécharger cette image dans différents formats" class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$image['id_image']?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
+ </a>
+ <a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?=$image['id_image']?>" href="<?=$image['urlDetailImg'];?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$image['id_image']?>" />
+ </a>
+ <a title="Signaler une mauvaise identification ou en proposer une autre via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
+ </a>
+ </div>
+ <? else : ?>
+ <strong class="auteur"><?= $image['auteur'] ?></strong>
+ &nbsp;&nbsp;(profil indisponible)
+ <div class="liste_actions_ill">
+ <a class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$image['id_image']?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
+ </a>
+ <a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?= $image['id_image'] ?>" href="<?=$image['urlDetailImg'];?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$image['id_image'];?>" />
+ </a>
+ <a title="Proposer une autre détermination via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
+ </a>
+ </div>
+ <? endif ?><br />
+ <? endif ?>
+ </li>
+ <? endforeach ?>
+ </ul>
+ <? endif ?>
+ <hr class="nettoyage" />
+ <div class="ajouter-participer-choix">
+ <a class="acceder-outil-vert lien-externe"
+ href="<?= $base_url_widget_saisie ?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>"
+ title="Ajouter une photographie au moyen du Carnet en Ligne">
+ Ajouter une photo
+ </a>
+ <? if (empty($caracteres) == false) : ?>
+ <span class="separator"></span>
+ <a class="acceder-outil-vert lien-externe" href="<?= $base_url_pictoflora ?>?masque.referentiel=<?= $referentiel; ?>&masque.ns=<?= $nomComplet ?>#page_recherche_images~1"
+ title="Participer au choix des photos d'organes">
+ Participer au choix
+ </a>
+ <? endif ?>
+ </div>
+ </div>
+ <br/>
+ <? endif ?>
+
+ <? if (isset($cel)) : ?>
+ <h2>Flora Data - Tout</h2>
+ <br/><br/>
+ <div id="illustrations-cel">
+ <? if ($cel['cel_present']) { ?>
+ <div class="lien-ajax-tpl">
+ <!-- sous-squelette -->
+ <?= $cel['illustrationsCel'] ?>
+ <br/>
+ <span>Seules les <?= Config::get('nbTrancheImagesResultatsDeterminationAffichees') ?> premières images sont affichées : </span>
+ <a href="<?= $cel['ajax_url']; ?>" class="lien-ajax-tpl-chargement">
+ <strong>Cliquez ici pour charger toutes les illustrations disponibles pour ce taxon</strong>
+ </a>
+ </div>
+ <br/>
+ <div class="conteneur_lien_metadonnees">
+ <?= $cel['meta']['citation']?>
+ <a class="lien_metadonnees lien_popup" href="<?= $cel['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </div>
+ <?php } else { echo ' <br/> Aucune illustration. <br/> <br/>'; } ?>
+ <a class="acceder-outil-vert lien-externe"
+ href="<?= $base_url_widget_saisie ?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>"
+ title="Ajouter une photographie au moyen du Carnet en Ligne">
+ Ajouter une photo
+ </a>
+ </div>
+ <br/><br/><br/>
+ <? endif ?>
+
+ <? if (isset($photoflora)) : ?>
+ <h2>Photoflora </h2>
+ <p id="intro-photoflora">
+ Ces images sont fournies par le site <a href="http://photoflora.free.fr/" class="lien-externe">Photoflora</a>.<br>
+ Des informations complémentaires sur l'auteur, la localité... sont diponibles sur la
+ <a href="http://photoflora.free.fr/FiTax.php?NumTaxon=<?= $nt ?>" class="lien-externe">
+ page du taxon <span class="nom-sci"><?= $nomSciRetenu ?></span>
+ </a>.
+ </p>
+ <div id="illustrations-photoflora">
+ <?php if (isset($photoflora['images'])) : ?>
+ <ul class="liste-illustrations">
+ <?php foreach($photoflora['images'] as $id => $image) : ?>
+ <li>
+ <a class="lien-externe img-cadre" href="http://photoflora.free.fr/UneFoto.php?NumTaxon=<?= $nt ?>&NumPhoto=<?= $id ?>.jpg">
+ <div class="img-cadre-fond">
+ <img src="<?= $image['src'] ?>" alt="Photographie n°<?=$id;?> du taxon <?= $image['nomSci']; ?>" />
+ </div>
+ </a>
+ <p>
+ à <strong class="localisation"><?= $image['station']; ?></strong><br />
+ le <strong class="date-creation"><?= $image['date']; ?></strong><br />
+ par <strong class="auteur"><?= $image['auteur']; ?></strong>
+ </p>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+ <hr class="nettoyage" />
+ <? endif; ?>
+ </div>
+
+ <div class="conteneur_lien_metadonnees">
+ <?= $photoflora['meta']['citation']?>
+ <a class="lien_metadonnees lien_popup" href="<?= $photoflora['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </div>
+ <?php endif; ?>
+
+ <script type="text/javascript">
+ $.event.trigger('ongletIllustrationsCharge');
+ </script>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_pied_page.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_pied_page.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_pied_page.tpl.html (revision 1427)
@@ -0,0 +1,71 @@
+<div class="importance1">
+ <div class="gauche telechargements_pdf">
+ <h2>Téléchargements</h2>
+ <div class="conteneur_telechargements">
+ <?= $export_pdf; ?>
+ </div>
+ <h2>Fiche mobile SmartFlore :</h2>
+ <div class="conteneur_permalien_mobile">
+ <span>Fiche mobile SmartFlore :</span>
+ <span class="description">
+ <a class="lien_externe" href="<?= $mobile; ?>" title="voir la version mobile de ce taxon (s'ouvre dans une nouvelle fenêtre)">
+ Version nomade
+ </a>
+ </span>
+ </div>
+ <div class="conteneur_permalien_mobile">
+ <span>QR code :</span>
+ <a class="lien_telechargement_qr_code" target="_blank" href="<?= $qr_code_png; ?>">QR code</a>
+ </div>
+ </div>
+ <div class="droite infos_liens_permanents">
+ <h2>Informations :</h2>
+ <div class="gauche telechargements_pdf">
+ <div class="conteneur_permalien">Numéro nomenclatural : <?= $nn ?></div>
+ <div class="conteneur_permalien">Numéro taxonomique : <?= $nt ?></div>
+ </div>
+ <div class="droite infos_liens_permanents">
+ <div class="conteneur_permalien">Numéro nomenclatural du nom retenu : <?= $nnr ?></div>
+ <?php if(isset($inpn) && $inpn != "0") : ?><div class="conteneur_permalien">Numéro INPN : <?= $inpn ?></div><? endif; ?>
+ </div>
+ <hr class="nettoyage" />
+
+ <h2>Liens permanents :</h2>
+ <div class="conteneur_permalien">
+ <span>Nom sélectionné :</span>
+ <span class="conteneur_permalien">
+ <a id="permalien_num_nom" class="lien_externe" href="<?=htmlentities($permalien_num_nom)?>" title="Lien permanent vers <?=$nom_retenu;?>">
+ <?=htmlentities($permalien_num_nom)?>
+ </a>
+ </span>
+ </div>
+ <!-- <div class="conteneur_permalien">
+ <span class="titre_lien_permanent">Taxon :</span>
+ <span>
+ <a class="lien_externe" href="<?=htmlentities($permalien_taxon)?>" title="Lien permanent vers ce taxon">
+ <?=htmlentities($permalien_taxon)?>
+ </a>
+ </span>
+ </div> -->
+ <div class="conteneur_permalien">
+ <span>Fiche wikipedia :</span>
+ <span class="description conteneur_permalien">
+ <a id="permalien_wikipedia" class="lien_externe" href="<?=htmlentities($wikipedia['lien'])?>" title="voir la page de ce taxon sur wikipedia (s'ouvre dans une nouvelle fenêtre)">
+ <?=htmlentities($wikipedia['lien'])?>
+ </a>
+ </span>
+ </div>
+ <div class="conteneur_permalien">
+ <span>Fiche wikini :</span>
+ <span class="description conteneur_permalien">
+ <a id="permalien_wikini" class="lien_externe" href="<?=htmlentities($wiki)?>" title="voir la page de ce taxon sur le wiki flora (s'ouvre dans une nouvelle fenêtre)">
+ <?=htmlentities($wiki)?>
+ </a>
+ </span>
+ </div>
+ </div>
+ <hr class="nettoyage" />
+ <script type="text/javascript">
+ $.event.trigger('ficheSyntheseChargee');
+ </script>
+</div>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_pdf_lien.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_pdf_lien.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_pdf_lien.tpl.html (revision 1427)
@@ -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>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_description.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_description.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_description.tpl.html (revision 1427)
@@ -0,0 +1,184 @@
+<div class="onglet_contenu" id="description">
+ <?php if(isset($coste) && isset($coste['titre'])) : ?>
+ <h2>Description de Coste : <?=$coste['titre']?></h2>
+ <div class="description coste">
+ <? if (!empty($coste['description'])) : ?>
+ <table class="desc">
+ <tr>
+ <td>
+ <?if ($coste['description']['nom_scientifique'] != '') : ?>
+ <span class="gras">
+ <?=$coste['description']['nom_scientifique']; ?>
+ </span>
+ <? endif; ?>
+ <?if ($coste['description']['nom_commun'] != '') : ?>
+ <span class="italique">
+ <?=$coste['description']['nom_commun']; ?>
+ </span>
+
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($coste['description']['synonymes'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Synonymes </span>
+ <?=$coste['description']['synonymes']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td>
+ <?if ($coste['description']['texte'] != '') : ?>
+ <?=$coste['description']['texte']; ?>
+ <br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($coste['description']['ecologie'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Écologie </span>
+ <?=$coste['description']['ecologie']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($coste['description']['repartition'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Répartition </span>
+ <?=$coste['description']['repartition']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($coste['description']['floraison'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Floraison </span>
+ <?=$coste['description']['floraison']; ?>
+ <?if ($coste['description']['fructification'] != '') : ?>
+ <span class="titre">Fructification </span>
+ <?=$coste['description']['fructification']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($coste['description']['usages'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Usages</span>
+ <?=$coste['description']['usages']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ </table>
+
+ <div class="conteneur_lien_metadonnees">
+ <?=$coste['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $coste['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <? else : ?>
+ Aucune donnée.
+ <? endif; ?>
+ </div>
+ <? endif; ?>
+ <?php if(isset($baseflor)) : ?>
+ <h2>Description Baseflor : </h2>
+ <div class="description baseflor">
+ <? if (!empty($baseflor)) : ?>
+ <table class="desc">
+ <tr>
+ <td colspan="2">
+ <?if ($baseflor['type_bio'] != '') : ?>
+ <span class="titre">Type Biologique : </span><?=$baseflor['type_bio']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <?if ($baseflor['form_vegetale'] != '') :?>
+ <span class="titre">Formation végétale : </span> <?=$baseflor['form_vegetale']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <?if ($baseflor['chorologie'] != '') :?>
+ <span class="titre">Chorologie : </span>&nbsp<?=$baseflor['chorologie']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td >
+ <?if ($baseflor['inflorescence'] != '') :?>
+ <span class="titre">Inflorescence :</span> <?=$baseflor['inflorescence'];?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['fruit'] != '') :?>
+ <span class="titre">Fruit :</span><?=$baseflor['fruit']; ?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['couleur_fleur'] != '') :?>
+ <span class="titre">Couleur de la fleur : </span><?=$baseflor['couleur_fleur'] ;?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['macule'] != '') :?>
+ <span class="titre">Macule : </span><?=$baseflor['macule']; ?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['floraison'] != '') :?>
+ <span class="titre">Floraison : </span><?=$baseflor['floraison']; ?> <br/>
+ <? endif; ?>
+ </td>
+ <td>
+ <?if ($baseflor['sexualite'] != '') :?>
+ <span class="titre">sexualité : </span><?=$baseflor['sexualite']; ?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['ordre_maturation'] != '') :?>
+ <span class="titre">Ordre de maturation : </span><?=$baseflor['ordre_maturation']; ?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['pollinisation'] != '') :?>
+ <span class="titre">Pollinisation : </span><?=$baseflor['pollinisation']; ?> <br/>
+ <? endif; ?>
+ <?if ($baseflor['dissemination'] != '') :?>
+ <span class="titre">Dissémination : </span><?=$baseflor['dissemination'] ;?> <br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ </table>
+
+ <div class="conteneur_lien_metadonnees">
+ <?=$baseflor['meta']['citation']?>
+
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup " href="<?= $baseflor['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <? else : ?>
+ Aucune donnée.
+ <? endif; ?>
+ </div>
+ <? endif; ?>
+ <br />
+ <?php if(isset($wikini)) : ?>
+ <h2> Description collaborative : </h2>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <div class="description baseflor">
+ <span class="aide_wikini"> Participez à la rédaction collaborative de cette description, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="description">
+ <?=$wikini['description']?>
+ </div>
+ </div>
+ </div>
+ <hr class="nettoyage"/>
+ <br />
+ <? endif; ?>
+ <?php if(isset($wp)) : ?>
+ <h2>Fiche wikipedia : <?=$wp['titre']?></h2>
+ <div class="description wp">
+ <a class="lien_externe" href="<?=htmlentities($wp['lien'])?>" title="voir la page de ce taxon sur wikipedia (s'ouvre dans une nouvelle fenêtre)">
+ <?=htmlentities($wp['lien'])?>
+ </a>
+ </div>
+ <? endif; ?>
+ <hr class="nettoyage"/>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_entete.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_entete.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_entete.tpl.html (revision 1427)
@@ -0,0 +1,25 @@
+<script type="text/Javascript">
+ var ongletsDefaut = [<?= $blocs; ?>];
+ var base_url_application_onglets = "<?= $base_url_onglets; ?>";
+</script>
+<script type="text/javascript">
+//<![CDATA[
+ var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>";
+ var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>";
+ var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>";
+ var pageWikiTaxon = "<?= strtoupper($donnees['referentiel']); ?>nt<?= $donnees['num_tax']; ?>";
+ var urlPopup = "<?= Config::get('base_url_application_popup'); ?>";
+ var urlBaseWidget = "<?= Config::get('base_url_widget'); ?>";
+ var urlCssImages = "<?=Config::get('url_css_images')?>";
+ var urlImagesOrganesMoyenFormatTpl = "<?= Illustrations::obtenirTemplateUrlImageGrandFormatOrganes('L') ?>";
+ var urlImagesOrganesGrandFormatTpl = "<?= Illustrations::obtenirTemplateUrlImageGrandFormatOrganes('O') ?>";
+ var permalienNumNom = "<?= $permalien_num_nom; ?>";
+ var onglet = "<?= $onglet; ?>";
+//]]>
+</script>
+<?php if(Config::get('utiliserDictionnaire') && Config::get('utiliserDictionnaireNiveau'.$niveau)) { ?>
+ <script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/helpers.js"></script>
+ <script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.config.js"></script>
+ <script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.js"></script>
+ <link media="screen" href="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.css" type="text/css" rel="stylesheet" />
+<?php } ?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_statut.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_statut.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_statut.tpl.html (revision 1427)
@@ -0,0 +1,80 @@
+<div class="onglet_contenu" id="statut">
+ <h2>Statuts de protection</h2>
+ <?php if(!empty($statuts) && is_array($statuts)) { ?>
+ <?php if(isset($statuts[0])) { ?>
+ <table class="liste_statuts_protection">
+ <tr>
+ <th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th>
+ </tr>
+ <?php if ($statuts != array()) : ?>
+ <?php foreach ($statuts as $index => $statut) : ?>
+ <?php if(is_numeric($index)) { ?>
+ <tr>
+ <td><?= $statut['zone_application']; ?></td>
+ <td><?= $statut['regle']; ?></td>
+ <td><a class="lien_externe" title="Voir le texte de loi relatif" href="<?= $statut['hyperlien_legifrance']; ?>">
+ <?= $statut['texte']; ?>
+ </a>
+ (<?= $statut['statut']; ?>)
+ </td>
+ </tr>
+ <?php } ?>
+ <?php endforeach; ?><?php endif; ?>
+ </table>
+ <?php } else { ?>
+ <table class="liste_statuts_protection largeur-11">
+ <tr>
+ <th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th><th class="largeur-01">Nom</th>
+ </tr>
+ <?php if ($statuts != array()) : ?>
+ <?php foreach ($statuts as $za => $lois) : ?>
+ <?php if($za != "meta") : ?>
+ <?php foreach ($lois as $loi) : ?>
+ <tr>
+ <td><?= $za; ?></td>
+ <td><?= $loi['regle']; ?></td>
+ <td><?= $loi['texte']; ?> (<?= $loi['statut']; ?>)</td>
+ <td><i><?php foreach ($loi['nom_sci'] as $nom_sci) { echo "- ".$nom_sci."<br /><br />"; } ?></i></td>
+ </tr>
+ <?php endforeach; ?>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ <?php endif; ?>
+ </table>
+ <?php } ?>
+ <div class="conteneur_lien_metadonnees">
+ <?=$statuts['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $statuts['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <?php } else { ?>
+ <h3 class="aucune_info"> Aucun statut de protection connu </h3>
+ <?php } ?>
+
+ <h2>Liste rouge</h2>
+ <?php if(!empty($liste_rouge) && isset($liste_rouge[0])) { ?>
+ <ul>
+ <li>
+ <span class="infos_liste_rouge">Catégorie <?= $liste_rouge[0]['num_categorie'].' - '.$liste_rouge[0]['categorie']; ?></span> <a target="_blank" href="http://www.uicn.fr/-Aires-protegees-.html" >(Plus d'informations)</a>
+ </li>
+ </ul>
+ <div class="conteneur_lien_metadonnees">
+ <?=$liste_rouge['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $liste_rouge['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <?php } else { ?>
+ <h3 class="aucune_info"> Aucune information de la liste rouge connue </h3>
+ <?php } ?>
+
+ <h2>Vos compléments sur les statuts de protection</h2>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <span class="aide_wikini">Complétez nos données sur les statuts de protection, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="statuts de protection">
+ <?=$wikini['statuts_de_protection']?>
+ </div>
+ </div>
+</div>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_ethnobotanique.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_ethnobotanique.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_ethnobotanique.tpl.html (revision 1427)
@@ -0,0 +1,122 @@
+<div class="onglet_contenu" id="ethnobotanique">
+ <? if (isset($nvjfl)) : ?>
+ <h2>Noms communs</h2>
+ <?php if($nvjfl['noms'] != array()) { ?>
+ <table class="liste_noms_vernaculaires">
+ <tr>
+ <th>Langue</th><th>Nom</th><th>Genre et Nombre</th><th>Conseil d'emploi</th><th>Notes</th>
+ </tr>
+ <?php foreach($nvjfl['noms'] as $nom_verna) : ?>
+ <tr>
+ <td><?= $nom_verna['code_langue'] ?></td>
+ <td><?= $nom_verna['nom_vernaculaire'] ?></td>
+ <td><?= $nom_verna['genre'] ?></td>
+ <td><?= $nom_verna['conseil_emploi'] ?></td>
+ <td><?= $nom_verna['notes'] ?></td>
+ </tr>
+ <?php endforeach; ?>
+ <?php if($nvps['noms'] != array()) { ?>
+ <?php foreach($nvps['noms'] as $nom_verna) : ?>
+ <tr>
+ <td><?= $nom_verna['code_langue'] ?></td>
+ <td><?= $nom_verna['nom_vernaculaire'] ?></td>
+ <td><?= $nom_verna['genre'] ?></td>
+ <td></td>
+ <td><?= $nom_verna['notes'] ?></td>
+ </tr>
+ <?php endforeach; ?>
+ <?php } ?>
+ </table>
+ <?php } else { ?>
+ <h3 class="aucune_info">Aucun nom vernaculaire référencé</h3>
+ <?php } ?>
+ <div class="conteneur_lien_metadonnees">
+ <?=$nvjfl['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?=$nvjfl['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div><div class="conteneur_lien_metadonnees">
+ <?=$nvps['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?=$nvps['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <? endif ; ?>
+ <? if (isset($nva)) : ?>
+ <h2>Noms communs</h2>
+ <?php if($nva['noms'] != array()) { ?>
+ <table class="liste_noms_vernaculaires">
+ <tr>
+ <th>Langue</th><th>Nom</th>
+ </tr>
+ <?php foreach($nva['noms'] as $nom_verna) : ?>
+ <tr>
+ <td><?= $nom_verna['code_langue'] ?></td>
+ <td><?= $nom_verna['nom_vernaculaire'] ?></td>
+ </tr>
+ <?php endforeach; ?>
+ </table>
+ <?php } else { ?>
+ <h3 class="aucune_info">Aucun nom vernaculaire référencé</h3>
+ <?php } ?>
+ <div class="conteneur_lien_metadonnees">
+ <?=$nva['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?=$nva['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <? endif ; ?>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <span class="aide_wikini">Proposez vos noms communs et vos étymologies</span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="noms communs">
+ <?=$wikini['noms_communs']?>
+ </div>
+ </div>
+
+ <h2>Statuts</h2>
+ <?php if($chorologie['donnees']) { ?>
+ <table class="liste_statuts">
+ <tr>
+ <th></th>
+ <?php foreach($chorologie['colonnes'] as $colonne) : ?>
+ <th><?= $colonne ?></th>
+ <?php endforeach; ?>
+ </tr>
+ <?php foreach($chorologie['donnees'] as $type => $donnee) : ?>
+ <tr>
+ <td><?= $type ?></td>
+ <?php foreach($chorologie['colonnes'] as $colonne) : ?>
+ <td><?= (isset($donnee[$colonne])) ? $donnee[$colonne] : '' ?></td>
+ <?php endforeach; ?>
+ </tr>
+ <?php endforeach; ?>
+ </table>
+ <?php } else { ?>
+ <h3 class="aucune_info">Aucun statut référencé</h3>
+ <?php } ?>
+ <div class="conteneur_lien_metadonnees">
+ <?= $chorologie['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $chorologie['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+
+ <h2> Usage :</h2>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <span class="aide_wikini"> Participez à la rédaction de ces données ethnobota, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="usage">
+ <?=$wikini['usage']?>
+ </div>
+ </div>
+
+ <h2> Culture et arts :</h2>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <span class="aide_wikini"> Participez à la rédaction de ces données ethnobota, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="culture et arts">
+ <?=$wikini['culture_et_arts']?>
+ </div>
+ </div>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_ecologie.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_ecologie.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_ecologie.tpl.html (revision 1427)
@@ -0,0 +1,246 @@
+<div class="onglet_contenu" id="ecologie">
+ <?php if(isset($baseflor)) : ?>
+ <h2>Optimum écologique</h2>
+ <? if (!isset($baseflor['aucune'])) : ?>
+ <div class="fond_graphique">
+ <div class="bloc_graph">
+ <? if (isset($baseflor['climat_url'])) :?>
+ <span class="titre">caractéristiques climatiques</span>
+
+ <div class="graphique">
+ <object class="ecologie_svg" type="image/svg+xml" data="<?=$baseflor['climat_url']?>" class="svg" alt="<?=$baseflor['climat_url_png']?>">
+ </object>
+ </div>
+
+ <button class="voir"> voir la légende </button>
+ <button class="cacher">masquer la légende </button>
+ <br/>
+ <div class="legende_graphique">
+ <table>
+ <tr>
+ <td class="largeur-02" >
+ <span class="titre">Lumière </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VEL'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre">Température </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VET'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre">Humidité atmosphérique </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VEHA'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre">Continentalité </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VEC'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <? endif; ?>
+ </div>
+ <br /><br />
+ <div class="bloc_graph">
+ <? if (isset($baseflor['sol_url'])) : ?>
+ <span class="titre">caractéristiques du sol</span>
+
+ <div class="graphique">
+ <object class="ecologie_svg" type="image/svg+xml" data="<?=$baseflor['sol_url']?>" class="svg" alt="<?=$baseflor['sol_url_png']?>">
+ </object>
+ </div>
+ <div class="legende_formes">
+ </div>
+ <button class="voir"> voir la légende </button>
+ <button class="cacher">masquer la légende </button>
+ <br/>
+ <div class="legende_graphique">
+ <table>
+ <tr>
+ <td class="largeur-02">
+ <span class="titre"> Réaction (pH) </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VER'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre"> Humidité </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VEHE'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre"> Texture </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VETX'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre"> Nutriments </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VEN'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre"> Salinité </span>
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VES'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre"> Matière Organique </span>
+
+ </td>
+ <td>
+ <? foreach ($baseflor['legende']['VEMO'] as $code => $infos ) : ?>
+ <?=$code ?> : <?=$infos['nom'] ?>
+ <? endforeach; ?>
+ </td>
+ </tr>
+ </table>
+
+ </div>
+ <? endif; ?>
+ </div>
+ </div>
+ <div class="conteneur_lien_metadonnees">
+
+ <?=$baseflor['meta']['citation']?>
+
+
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup " href="<?= $baseflor['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <?else : ?>
+ <?=$baseflor['aucune']?>
+ <br />
+ <? endif; ?>
+ <? endif; ?>
+
+
+ <?php if(isset($baseflor)) : ?>
+ <h2>Phytosociologie</h2>
+ <? if (isset($baseveg['syntaxons-sup']) || isset($baseveg['syntaxons-sup'])) : ?>
+ <br/>
+ Le code catminat de ce taxon est
+ <span class="gras">
+ <a href="http://eveg.fr/index.php?catminat='<?=$baseveg['baseflor']['catminat'] ?>'" target="_blank" title="Voir le détail sur eVeg">
+ <?=$baseveg['baseflor']['catminat'] ?>
+ </a>
+ </span> </br>
+ Il est caractéristique du syntaxon de niveau <span class="gras"><?=$baseveg['syntaxon-courant'][0]['niveau.libelle']?></span> présenté
+ dans le tableau ci-dessous avec ses niveaux supérieurs. [ <a href="http://philippe.julve.pagesperso-orange.fr/catminat.htm" target="_blank">Voir le site Catminat pour en savoir plus.</a> ]
+ <table>
+ <?php foreach ($baseveg['syntaxons-sup'] as $cle => $valeurs ) : ?>
+ <tr>
+ <td>
+ <span class="gras">
+ <a href="http://eveg.fr/index.php?catminat='<?=$valeurs['code_catminat'] ?>'" target="_blank" title="Voir le détail sur eVeg">
+ <?=$valeurs['code_catminat']?>
+ </a>
+ </span></br>
+ <?=$valeurs['niveau.libelle']?>
+
+ </td>
+ <td>
+ <span class="gras"><?=$valeurs['syntaxon']?></span> </br>
+ <span ><?=$valeurs['physio_biotype']?></span> </br>
+ <?= !empty($valeurs['repartition_france']) ? 'répartition : '.$valeurs['repartition_france'] : '' ?>
+ </td>
+ <td>
+
+ <a class="lien_popup" href="<?=$baseveg['ref']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Réf.</a> </br>
+ <a class="lien_popup" href="<?=$baseveg['synonymes']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Syn.</a> </br>
+ <a class="lien_popup" href="<?=$baseveg['taxons']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Taxons</a>
+ </td>
+ </tr>
+ <? endforeach; ?>
+ <tr class="surlignage">
+ <td>
+ <span class="gras">
+ <a href="http://eveg.fr/index.php?catminat='<?=$baseveg['syntaxon-courant'][0]['code_catminat'] ?>'" target="_blank" title="Voir le détail sur eVeg">
+ <?=$baseveg['syntaxon-courant'][0]['code_catminat']?>
+ </a>
+ </span><br/>
+ <?=$baseveg['syntaxon-courant'][0]['niveau.libelle']?>
+ </td>
+ <td>
+ <span class="gras"><?=$baseveg['syntaxon-courant'][0]['syntaxon']?></span> </br>
+ <span ><?=$baseveg['syntaxon-courant'][0]['physio_biotype']?></span> </br>
+ <?= !empty($baseveg['syntaxon-courant'][0]['repartition_france']) ? 'rép.'.$baseveg['syntaxon-courant'][0]['repartition_france'] : ''?>
+ </td>
+ <td>
+ <a class="lien_popup" href="<?=$baseveg['ref']['lien-liste-fancy'][$baseveg['syntaxon-courant'][0]['code_catminat']]?>">Réf.</a> </br>
+ <a class="lien_popup" href="<?=$baseveg['synonymes']['lien-liste-fancy'][$baseveg['syntaxon-courant'][0]['code_catminat']]?>">Syn.</a></br>
+ <a class="lien_popup" href="<?=$baseveg['baseflor']['lien-liste-fancy']?>">Taxons</a>
+
+ </td>
+ </tr>
+ </table>
+ <div class="conteneur_lien_metadonnees">
+
+ <?=$baseveg['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup " href="<?= $baseveg['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+
+ <? else : ?>
+ Aucune donnée.
+ <? endif; ?>
+ <br/>
+ <?php endif; ?>
+
+ <br/>
+ <br/>
+ <h2>Vos compléments sur l'écologie</h2>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <span class="aide_wikini"> Participez à la rédaction collaborative, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="ecologie">
+ <?=$wikini['ecologie']?>
+ </div>
+ </div>
+</div>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau1.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau1.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau1.tpl.html (revision 1427)
@@ -0,0 +1,440 @@
+<!-- Fichier débutant -->
+<!-- Variables js communes injectées dans fiche_entete.tpl.tml -->
+<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
+<div class="synthese onglet_contenu" id="synthese">
+ <div class="colonne deuxtiers">
+
+ <!-- Description -->
+ <div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description"><?=$i18n["onglet-nom-descr"]?></a>
+ </h3>
+ <div id="contenu-1" class="contenu">
+ <h4><?= $description['titre']?></h4>
+ <? if ($description['description'] != '') : ?>
+ <? if($description['type'] == 'baseflor') : ?>
+ <table class="desc">
+ <tr>
+ <td colspan="2">
+ <?if ($description['description']['type_bio'] != '') : ?>
+ <span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <? if ($description['description']['form_vegetale'] != '') : ?>
+ <span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <? if ($description['description']['chorologie'] != ''): ?>
+ <span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td >
+ <? if ($description['description']['inflorescence'] != '') : ?>
+ <span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['fruit'] != '') : ?>
+ <span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['couleur_fleur'] != '') : ?>
+ <span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['macule'] != '') : ?>
+ <span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['floraison'] != '') : ?>
+ <span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
+ <? endif; ?>
+ </td>
+ <td>
+ <? if ($description['description']['sexualite'] != '') : ?>
+ <span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
+ <? endif; ?>
+ <?if ($description['description']['ordre_maturation'] != '') : ?>
+ <span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['pollinisation'] != '') : ?>
+ <span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['dissemination'] != '') : ?>
+ <span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ </table>
+ <? elseif($description['titre'] == 'Description de Coste') : ?>
+ <table class="desc">
+ <tr>
+ <td>
+ <?if ($description['description']['nom_scientifique'] != '') : ?>
+ <span class="gras">
+ <?=$description['description']['nom_scientifique']; ?>
+ </span>
+ <? endif; ?>
+ <?if ($description['description']['nom_commun'] != '') : ?>
+ <span class="italique">
+ <?=$description['description']['nom_commun']; ?>
+ </span>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if (@$description['description']['synonymes'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Synonymes </span>
+ <?=$description['description']['synonymes']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td>
+ <?if ($description['description']['texte'] != '') : ?>
+ <?=$description['description']['texte']; ?>
+ <br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($description['description']['ecologie'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Écologie </span>
+ <?=$description['description']['ecologie']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['repartition'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Répartition </span>
+ <?=$description['description']['repartition']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if (@$description['description']['floraison'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Floraison </span>
+ <?=$description['description']['floraison']; ?>
+ <?if ($description['description']['fructification'] != '') : ?>
+ <span class="titre">Fructification </span>
+ <?=$description['description']['fructification']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if (@$description['description']['usages'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Usages</span>
+ <?=$description['description']['usages']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ </table>
+ <? else : ?>
+ <?=$description['description'];?>
+ <? endif;?>
+ <? endif;?>
+ <a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Ethnobotanique -->
+ <div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique"><?=$i18n["onglet-nom-ethnobota"]?></a>
+ </h3>
+ <div id="contenu-4" class="contenu">
+ <h4>Noms communs</h4>
+ <?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
+ Aucun nom vernaculaire<br /><br />
+ <? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos données.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['noms_communs']; } ?>
+ <?php } else { ?>
+ <?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
+ <div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
+ <?php endforeach; ?>
+ <?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ et <?= $ethnobotanique['autresNomsVerna'] ?>
+ autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
+ nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
+ </a><br />
+ <?php }?>
+ <?php }?>
+ <h4>Usages</h4>
+ <? if ($ethnobotanique['wikini']['usage'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos données.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['usage'];} ?>
+ <h4>Culture et arts</h4>
+ <? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos données.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
+ <br />
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+
+ <!-- Ecologie -->
+ <div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie"><?=$i18n["onglet-nom-eco"]?></a>
+ </h3>
+ <div id="contenu-8" class="contenu">
+ <h4><?= $ecologie['graph']['titre'] ?></h4>
+ <? if (empty($ecologie['graph']['description'])) : ?>
+ <? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ Rajouter vos données.
+ </a>
+ <? else : echo $ecologie['graph']['wikini']['ecologie'];?>
+ <? endif; ?>
+ <? else : ?>
+ <div class="fond_graphique">
+ <? if (isset($ecologie['graph']['description']['climat_url'])) :?>
+ <span class="titre">caractéristiques climatiques</span>
+ <div class="graphique">
+ <object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
+ class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
+ </object>
+ </div>
+ <? endif; ?>
+ <? if (isset($ecologie['graph']['description']['sol_url'])) :?>
+ <span class="titre">caractéristiques du sol</span>
+ <div class="graphique">
+ <object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
+ class="svg" class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" > >
+ </object>
+ </div>
+ <? endif; ?>
+ <a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
+ Voir les références
+ </a>
+ </div>
+ <? endif; ?>
+ <? if (!empty($ecologie['phytosocio']['description'])) : ?>
+ <h4>Phytosociologie</h4>
+ <span class="gras">
+ <?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
+ <?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
+ </span> <br/>
+ <?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
+ <span class="italique">
+ <?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
+ </span>
+ <? endif; ?>
+ <br/>
+ <a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+
+ <!-- Nomenclature -->
+ <div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature"><?=$i18n["onglet-nom-classif"]?></a>
+ </h3>
+ <div id="contenu-6" class="contenu">
+ <h4>Taxons supérieurs</h4>
+ <?php if($nomenclature['taxons_sup'] != array()) { ?>
+ <?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
+ <div>
+ <a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
+ </a>
+ </div>
+ <?php endforeach; ?>
+ <?php } else { ?>
+ <div>Aucun taxon supérieur référencé </div>
+ <?php } ?>
+ <h4>Nom retenu</h4>
+ <div>
+ <div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
+ <?= $nomenclature['nom_retenu_formate']; ?>
+ </div>
+ <?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
+ <div class="nom"> <span class="nomenclature_basionyme">Basionyme</span> : <?= $nomenclature['basionyme_nom_retenu']; ?></div>
+ <?php } ?>
+ </div>
+
+ <h4>Synonymes</h4>
+ <?php if($nomenclature['synonymes'] == array()) { ?>
+ Aucun synonyme
+ <? } else { ?>
+ <?php foreach (@$nomenclature['synonymes'] as $synonyme) : ?>
+ <div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
+ <?= $synonyme['nom_sci_complet']; ?>
+ </div>
+ <?php endforeach; ?>
+ <?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
+ <a href="<?=$url;?>nomenclature" style="float:right;" class="lien_ouverture_onglet_parent" >et
+ <?= $nomenclature['autresSynonymesNbre'] ?>
+ autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
+ synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
+ </a>
+ <?php }} ?>
+ <h4>Taxons inférieurs</h4>
+ <?php if($nomenclature['taxons_inf'] != array()) { ?>
+ <?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
+ <div>
+ <a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
+ </a>
+ </div>
+ <?php endforeach; ?>
+ <?php } else { ?>
+ <div>Aucun taxon inférieur référencé </div>
+ <?php } ?>
+ <a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+
+ <!-- Bibliographie -->
+ <div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie"><?=$i18n["onglet-nom-biblio"]?></a>
+ </h3>
+ <div id="contenu-2" class="contenu">
+ <?php if (isset($bibliographie['wikini'])) { ?>
+ <?= ($bibliographie['wikini']['biblio'] == '') ?
+ '<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
+ Ajoutez votre bibliographie sur ce taxon</a>'
+ : $bibliographie['wikini']['biblio'].
+ '<br /><br /><a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
+ Rajouter vos données.</a>'; ?>
+ <?php } else { ?>
+ <h4>Références</h4>
+ <?php if ($bibliographie['references'] == array()) { ?>
+ Aucune référence bibliographique
+ <?php } else { ?>
+ <?php foreach ($bibliographie['references'] as $reference) : ?>
+ <div> - <?= $reference['reference_html']; ?> </div>
+ <?php endforeach; ?>
+ <?php if($bibliographie['autresReferences'] > 0) { ?>
+ <a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id=alignement-droite>
+ et <?= $bibliographie['autresReferences'] ?>
+ autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
+ référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
+ </a>
+ <?php } } ?>
+ <?php }?>
+ <hr class="nettoyage" />
+ <a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id=alignement-droite>
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="colonne">
+
+ <!-- Illustrations -->
+ <div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations"><?=$i18n["onglet-nom-illustra"]?></a>
+ </h3>
+ <div id="contenu-0" class="contenu">
+ <?php if (empty($illustrations['imageUrl']) == false) : ?>
+ <img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
+ src="<?=$illustrations['imageUrl']?>" alt="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
+ style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
+ <?php else : ?>
+ <span class="absent" style="float:none; margin-left:55px">
+ Pas de photo<br />
+ <a href="http://www.tela-botanica.org/page:cel"
+ title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
+ onclick="window.open(this.href); return false;" class="contribuer">
+ Contribuer
+ </a>
+ </span>
+ <?php endif; ?> <br />
+ <a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Répartition -->
+ <div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition"><?=$i18n["onglet-nom-repart"]?></a>
+ </h3>
+ <div id="contenu-3" class="contenu">
+ <? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
+ <h4>Observations</h4>
+ <img src="<?=htmlentities($repartition['eflore'])?>" alt="<?= $infos['nom_sci'] ?> - carte des observations" style="margin-left: 11px; width: 190px;" />
+ <? endif; ?>
+ <? if ($repartition['chorodep'] != null) : ?>
+ <h4>Répartition départementale</h4>
+ <img src="<?=htmlentities($repartition['chorodep'])?>" alt="<?= $infos['nom_sci'] ?> - carte de répartition"/>
+ <? endif; ?>
+ <br/>
+ <a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Statut de protection -->
+ <div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut"><?=$i18n["onglet-nom-protect"]?></a>
+ </h3>
+ <div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
+ <? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
+ Attention ce taxon est protégé dans les zones suivantes : <br />
+ <?php foreach($statut['statuts'] as $statut_zone) : ?>
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ <?= @$statut_zone['zone_application']; ?><br />
+ </a>
+ <?php endforeach; ?>
+ <? } else if (@$statut['wikini']['statuts_de_protection'] != '' ) { ?>
+ <?= $statut['wikini']['statuts_de_protection'];?>
+ <? } ?>
+ <? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
+ Ce taxon est classé dans la liste rouge dans la catégorie : <br />
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ <?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
+ </a>
+ <? } ?>
+ <? if (@$statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
+ <span class="pas_de_protection">Pas de protection connue</span>
+ <? }?>
+ <br />
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ </div>
+ <hr class="nettoyage" />
+ <script type="text/javascript">
+ $.event.trigger('ongletSyntheseCharge');
+ </script>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_organes.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_organes.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_organes.tpl.html (revision 1427)
@@ -0,0 +1,78 @@
+<? if (isset($organes) && (empty($organes) == false)) : ?>
+<div id="galerie-organes">
+ <ul class="liste-illustrations">
+ <?php foreach($organes as $tag => $image) : ?>
+ <li class="icone-organe">
+ <a class="lien-images-organes <? if (empty($image)) : ?>non-<? endif ?>fourni" data-tag="<?= $tag; ?>"
+ title="<? if (empty($image)) : ?>Aucune photo pour <? endif ?><?= $tag ?>">
+ <img class="icone-organe" src="<?=Config::get('url_css_images')?>icones_tags/<?= $tag; ?>.png" alt="<?= $tag ?>" />
+ <?= $tag; ?>
+ </a>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+ <hr class="nettoyage" />
+ <div id="galerie-organes-contenu" style="display: none;">
+ <? foreach($organes as $tag => $image) : ?>
+ <div class="onglet-organe" data-tag="<?= $tag; ?>">
+ <?php if (empty($organes[$tag]) == false) :?>
+ <ul class="liste-illustrations">
+ <?php foreach($organes[$tag] as $image) : ?>
+ <li class="miniature-organe">
+ <?php if ($image != null) : ?>
+ <a class="lien-grande-image-organe"
+ data-id-observation="<?= $image['observation']['id_observation'] ?>"
+ data-url-mauvaise-ident="<?= $image['urlMauvaiseIdentification'] ?>"
+ data-id-image="<?= $image['id_image'] ?>" data-titre="<?= $image['observation']['determination.ns'] ?>"
+ data-description="<?= $image['determination.libelle'] ?>" data-localisation="<?= $image['station.libelle'] ?>"
+ data-auteur="<?= $image['auteur.libelle'] ?>" data-id-destinataire="<?= $image['auteur.id'] ?>"
+ data-date="<?= $image['date'] ?>">
+ <img class="miniature-organe" src="<?= $image['binaire.href']; ?>" alt="<?= $image['auteur.libelle'] . ' - ' . $image['observation']['determination.ns'] ?>" />
+ </a>
+ <?php else: ?>
+ <p class="absent absent-mini">
+ Pas de photo
+ <br>
+ <a class="contribuer" onclick="window.open(this.href); return false;"
+ title="Ajouter une photographie au moyen du Carnet en Ligne"
+ href="<?= Config::get('base_url_widget_saisie');?>?referentiel=<?= $referentiel; ?>&num_nom=<?= $nnr ?>&titre=<?= urlencode("Ajout d'une photo de ".$nomComplet); ?>">
+ Contribuer
+ </a>
+ </p>
+ <?php endif; ?>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+ <hr class="nettoyage" />
+ <?php else: ?>
+ Aucune illustration pour l'organe "<?= $tag ?>"
+ <?php endif; ?>
+ </div>
+ <?php endforeach; ?>
+ <div id="grande-image-organe">
+ <a target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="">
+ <img src="" alt="Grande image" />
+ </a>
+ </div>
+ <div id="grande-image-legende">
+ <div>
+ <dl>
+ <dt>Photo n°</dt><dd id="grande-image-legende-id-image"></dd>
+ <dt>Titre</dt><dd id="grande-image-legende-titre"><br></dd>
+ <dt>Description</dt><dd id="grande-image-legende-description"><br></dd>
+ <dt>Localisation</dt><dd id="grande-image-legende-localisation"><br></dd>
+ <dt>Auteur</dt>
+ <dd>
+ <a id="grande-image-legende-auteur" href=""></a>
+ <a id="grande-image-legende-id-destinataire" href="" class="mailto">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>contact.png" />
+ </a>
+ </dd>
+ <dt>Date d'observation</dt><dd id="grande-image-legende-date"><br></dd>
+ <dt>Licence</dt><dd><a href="http://www.tela-botanica.org/page:licence" class="lien-externe">CC-BY-SA</a></dd>
+ </dl>
+ </div>
+ </div>
+ </div>
+</div>
+<? endif ?>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau2.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau2.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau2.tpl.html (revision 1427)
@@ -0,0 +1,440 @@
+<!-- Fichier intermédiaire -->
+<!-- Variables js commune injectée dans fiche_entete.tpl.tml -->
+<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
+<div class="synthese onglet_contenu" id="synthese">
+ <div class="colonne deuxtiers">
+
+ <!-- Description -->
+ <div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description"><?=$i18n["onglet-nom-descr"]?></a>
+ </h3>
+ <div id="contenu-1" class="contenu">
+ <h4><?= $description['titre']?></h4>
+ <? if ($description['description'] != '') : ?>
+ <? if($description['type'] == 'baseflor') : ?>
+ <table class="desc">
+ <tr>
+ <td colspan="2">
+ <?if ($description['description']['type_bio'] != '') : ?>
+ <span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <? if ($description['description']['form_vegetale'] != '') : ?>
+ <span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <? if ($description['description']['chorologie'] != ''): ?>
+ <span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td >
+ <? if ($description['description']['inflorescence'] != '') : ?>
+ <span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['fruit'] != '') : ?>
+ <span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['couleur_fleur'] != '') : ?>
+ <span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['macule'] != '') : ?>
+ <span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['floraison'] != '') : ?>
+ <span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
+ <? endif; ?>
+ </td>
+ <td>
+ <? if ($description['description']['sexualite'] != '') : ?>
+ <span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
+ <? endif; ?>
+ <?if ($description['description']['ordre_maturation'] != '') : ?>
+ <span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['pollinisation'] != '') : ?>
+ <span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['dissemination'] != '') : ?>
+ <span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ </table>
+ <? elseif($description['titre'] == 'Description de Coste') : ?>
+ <table class="desc">
+ <tr>
+ <td>
+ <?if ($description['description']['nom_scientifique'] != '') : ?>
+ <span class="gras">
+ <?=$description['description']['nom_scientifique']; ?>
+ </span>
+ <? endif; ?>
+ <?if ($description['description']['nom_commun'] != '') : ?>
+ <span class="italique">
+ <?=$description['description']['nom_commun']; ?>
+ </span>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($description['description']['synonymes'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Synonymes </span>
+ <?=$description['description']['synonymes']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td>
+ <?if ($description['description']['texte'] != '') : ?>
+ <?=$description['description']['texte']; ?>
+ <br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($description['description']['ecologie'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Écologie </span>
+ <?=$description['description']['ecologie']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['repartition'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Répartition </span>
+ <?=$description['description']['repartition']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['floraison'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Floraison </span>
+ <?=$description['description']['floraison']; ?>
+ <?if ($description['description']['fructification'] != '') : ?>
+ <span class="titre">Fructification </span>
+ <?=$description['description']['fructification']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['usages'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Usages</span>
+ <?=$description['description']['usages']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ </table>
+ <? else : ?>
+ <?=$description['description']?>
+
+ <? endif;?>
+
+ <? endif;?><br />
+ <a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Ethnobotanique -->
+ <div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique"><?=$i18n["onglet-nom-ethnobota"]?></a>
+ </h3>
+ <div id="contenu-4" class="contenu">
+ <h4>Noms communs</h4>
+ <?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
+ Aucun nom vernaculaire<br /><br />
+ <? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['noms_communs'];} ?>
+ <?php } else { ?>
+ <?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
+ <div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
+ <?php endforeach; ?>
+ <?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ et <?= $ethnobotanique['autresNomsVerna'] ?>
+ autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
+ nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
+ </a><br />
+ <?php }?>
+ <?php }?>
+ <h4>Usages</h4>
+ <? if ($ethnobotanique['wikini']['usage'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['usage']; } ?>
+ <h4>Culture et arts</h4>
+ <? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
+ <br />
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Ecologie -->
+ <div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie"><?=$i18n["onglet-nom-eco"]?></a>
+ </h3>
+ <div id="contenu-8" class="contenu">
+ <h4><?= $ecologie['graph']['titre'] ?></h4>
+ <? if (empty($ecologie['graph']['description'])) : ?>
+ <? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? else : echo $ecologie['graph']['wikini']['ecologie'];?>
+ <? endif; ?>
+ <? else : ?>
+ <div class="fond_graphique">
+ <? if (isset($ecologie['graph']['description']['climat_url'])) :?>
+ <span class="titre">caractéristiques climatiques</span>
+ <div class="graphique">
+ <object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
+ class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
+ </object>
+ </div>
+ <? endif;?>
+ <? if (isset($ecologie['graph']['description']['sol_url'])) :?>
+ <span class="titre">caractéristiques du sol</span>
+ <div class="graphique">
+ <object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
+ class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" >
+ </object>
+ </div>
+ <? endif;?>
+ <a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
+ Voir les références
+ </a>
+ </div>
+ <? endif; ?>
+ <? if (!empty($ecologie['phytosocio']['description'])) : ?>
+ <h4>Phytosociologie</h4>
+ <span class="gras">
+ <?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
+ <?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
+ </span> <br/>
+ <?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
+ <span class="italique">
+ <?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
+ </span>
+ <? endif; ?>
+ <br/>
+ <a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Nomenclature -->
+ <div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature"><?=$i18n["onglet-nom-classif"]?></a>
+ </h3>
+ <div id="contenu-6" class="contenu">
+ <h4>Taxons supérieurs</h4>
+ <?php if($nomenclature['taxons_sup'] != array()) { ?>
+ <?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
+ <div>
+ <a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
+ </a>
+ </div>
+ <?php endforeach; ?>
+ <?php } else { ?>
+ <div>Aucun taxon supérieur référencé </div>
+ <?php } ?>
+ <h4>Nom retenu</h4>
+ <div>
+ <div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
+ <?= $nomenclature['nom_retenu_formate']; ?>
+ </div>
+ <?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
+ <div class="nom"> <span class="nomenclature_basionyme">Basionyme : <?= $nomenclature['basionyme_nom_retenu']; ?></span></div>
+ <?php } ?>
+ </div>
+
+ <h4>Synonymes</h4>
+ <?php if($nomenclature['synonymes'] == array()) { ?>
+ Aucun synonyme
+ <? } else { ?>
+ <?php foreach ($nomenclature['synonymes'] as $synonyme) : ?>
+ <div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
+ <?= $synonyme['nom_sci_complet']; ?>
+ </div>
+ <?php endforeach; ?>
+ <?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
+ <a href="<?=$url;?>nomenclature" style="float:right;" class="lien_ouverture_onglet_parent" >et
+ <?= $nomenclature['autresSynonymesNbre'] ?>
+ autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
+ synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
+ </a>
+ <?php }} ?>
+ <h4>Taxons inférieurs</h4>
+ <?php if($nomenclature['taxons_inf'] != array()) { ?>
+ <?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
+ <div>
+ <a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
+ </a>
+ </div>
+ <?php endforeach; ?>
+ <?php } else { ?>
+ <div>Aucun taxon inférieur référencé </div>
+ <?php } ?>
+ <br/>
+ <a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+
+ <!-- Bibliographie -->
+ <div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie"><?=$i18n["onglet-nom-biblio"]?></a>
+ </h3>
+ <div id="contenu-2" class="contenu">
+ <?php if (isset($bibliographie['wikini'])) { ?>
+ <?= ($bibliographie['wikini']['biblio'] == '') ?
+ '<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
+ Rajouter vos données.</a>'
+ : $bibliographie['wikini']['biblio'].
+ '<br /><br /><a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
+ Compléter cette bibliographie</a>'; ?>
+ <?php } else { ?>
+ <h4>Références</h4>
+ <?php if ($bibliographie['references'] == array()) { ?>
+ Aucune référence bibliographique
+ <?php } else { ?>
+ <?php foreach ($bibliographie['references'] as $reference) : ?>
+ <div> - <?= $reference['reference_html']; ?> </div>
+ <?php endforeach; ?>
+ <?php if($bibliographie['autresReferences'] > 0) { ?>
+ <a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ et <?= $bibliographie['autresReferences'] ?>
+ autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
+ référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
+ </a>
+ <?php } } ?>
+ <?php }?>
+ <hr class="nettoyage" />
+ <a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ </div><div class="colonne">
+
+ <!-- Illustrations -->
+ <div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations"><?=$i18n["onglet-nom-illustra"]?></a>
+ </h3>
+ <div id="contenu-0" class="contenu">
+ <?php if ($illustrations['imageUrl'] != '') : ?>
+ <img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
+ src="<?=$illustrations['imageUrl']?>" alt="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
+ style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
+ <?php else : ?>
+ <span class="absent" style="float:none; margin-left:55px">
+ Pas de photo<br />
+ <a href="http://www.tela-botanica.org/page:cel"
+ title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
+ onclick="window.open(this.href); return false;" class="contribuer">
+ Contribuer
+ </a>
+ </span>
+ <?php endif; ?>
+ <br/>
+ <a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Répartition -->
+ <div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition"><?=$i18n["onglet-nom-repart"]?></a>
+ </h3>
+ <div id="contenu-3" class="contenu">
+ <? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
+ <h4>Observations</h4>
+ <img src="<?=htmlentities($repartition['eflore'])?>" alt="<?= $infos['nom_sci'] ?> - carte des observations" style="margin-left: 11px; width: 190px;" />
+ <? endif; ?>
+ <? if ($repartition['chorodep'] != null) : ?>
+ <h4>Répartition départementale</h4>
+ <img src="<?=htmlentities($repartition['chorodep'])?>" alt="<?= $infos['nom_sci'] ?> - carte de répartition"/>
+ <? endif; ?>
+ <br/>
+ <a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Statut de protection -->
+ <div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut"><?=$i18n["onglet-nom-protect"]?></a>
+ </h3>
+ <div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
+ <? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
+ Attention ce taxon est protégé dans les zones suivantes : <br />
+ <?php foreach($statut['statuts'] as $statut_zone) : ?>
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ <?= $statut_zone['zone_application']; ?><br />
+ </a>
+ <?php endforeach; ?>
+ <? } else if ($statut['wikini']['statuts_de_protection'] != '' ) { ?>
+ <?= $statut['wikini']['statuts_de_protection'];?>
+ <? } ?>
+ <? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
+ Ce taxon est classé dans la liste rouge dans la catégorie : <br />
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ <?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
+ </a>
+ <? } ?>
+ <? if ($statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
+ <span class="pas_de_protection">Pas de protection connue</span>
+ <? }?>
+ <br />
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ </div>
+ <hr class="nettoyage" />
+ <script type="text/javascript">
+ $.event.trigger('ongletSyntheseCharge');
+ </script>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau3.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau3.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_synthese_niveau3.tpl.html (revision 1427)
@@ -0,0 +1,434 @@
+<!-- Fichier expert -->
+<!-- Variables js communes injectée dans fiche_entete.tpl.tml -->
+<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
+<div class="synthese onglet_contenu" id="synthese">
+ <div class="colonne deuxtiers">
+ <!-- Nomenclature -->
+ <div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature"><?=$i18n["onglet-nom-classif"]?></a>
+ </h3>
+ <div id="contenu-6" class="contenu">
+ <h4>Taxons supérieurs</h4>
+ <?php if($nomenclature['taxons_sup'] != array()) { ?>
+ <?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
+ <div>
+ <a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
+ </a>
+ </div>
+ <?php endforeach; ?>
+ <?php } else { ?>
+ <div>Aucun taxon supérieur référencé </div>
+ <?php } ?>
+ <h4>Nom retenu</h4>
+ <div>
+ <div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
+ <?= $nomenclature['nom_retenu_formate']; ?>
+ </div>
+ <?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
+ <div class="nom"> <span class="nomenclature_basionyme">Basionyme : <?= $nomenclature['basionyme_nom_retenu']; ?></span></div>
+ <?php } ?>
+ </div>
+ <h4>Synonymes</h4>
+ <?php if($nomenclature['synonymes'] == array()) { ?>
+ Aucun synonyme
+ <? } else { ?>
+ <?php foreach ($nomenclature['synonymes'] as $synonyme) : ?>
+ <div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
+ <?= $synonyme['nom_sci_complet']; ?>
+ </div>
+ <?php endforeach; ?>
+ <?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
+ <a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement_droite">
+ et <?= $nomenclature['autresSynonymesNbre'] ?>
+ autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
+ synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
+ </a>
+ <?php }} ?>
+
+ <h4>Taxons inférieurs</h4>
+ <?php if($nomenclature['taxons_inf'] != array()) { ?>
+ <?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
+ <div>
+ <a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
+ </a>
+ </div>
+ <?php endforeach; ?>
+ <?php } else { ?>
+ <div>Aucun taxon inférieur référencé </div>
+ <?php } ?>
+ <a href="<?=$url;?>classification" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Description -->
+ <div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description"><?=$i18n["onglet-nom-descr"]?></a>
+ </h3>
+ <div id="contenu-1" class="contenu">
+ <h4><?= $description['titre']?></h4>
+ <? if ($description['description'] != '') : ?>
+ <? if($description['type'] == 'baseflor') : ?>
+ <table class="desc">
+ <tr>
+ <td colspan="2">
+ <?if ($description['description']['type_bio'] != '') : ?>
+ <span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <? if ($description['description']['form_vegetale'] != '') : ?>
+ <span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <? if ($description['description']['chorologie'] != ''): ?>
+ <span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td >
+ <? if ($description['description']['inflorescence'] != '') : ?>
+ <span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['fruit'] != '') : ?>
+ <span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['couleur_fleur'] != '') : ?>
+ <span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['macule'] != '') : ?>
+ <span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['floraison'] != '') : ?>
+ <span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
+ <? endif; ?>
+ </td>
+ <td>
+ <? if ($description['description']['sexualite'] != '') : ?>
+ <span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
+ <? endif; ?>
+ <?if ($description['description']['ordre_maturation'] != '') : ?>
+ <span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['pollinisation'] != '') : ?>
+ <span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
+ <? endif; ?>
+ <? if ($description['description']['dissemination'] != '') : ?>
+ <span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ </table>
+ <? elseif($description['titre'] == 'Description de Coste') : ?>
+ <table class="desc">
+ <tr>
+ <td>
+ <?if ($description['description']['nom_scientifique'] != '') : ?>
+ <span class="gras">
+ <?=$description['description']['nom_scientifique']; ?>
+ </span>
+ <? endif; ?>
+ <?if ($description['description']['nom_commun'] != '') : ?>
+ <span class="italique">
+ <?=$description['description']['nom_commun']; ?>
+ </span>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($description['description']['synonymes'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Synonymes </span>
+ <?=$description['description']['synonymes']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td>
+ <?if ($description['description']['texte'] != '') : ?>
+ <?=$description['description']['texte']; ?>
+ <br/>
+ <? endif; ?>
+ </td>
+ </tr>
+ <?if ($description['description']['ecologie'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Écologie </span>
+ <?=$description['description']['ecologie']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['repartition'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Répartition </span>
+ <?=$description['description']['repartition']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['floraison'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Floraison </span>
+ <?=$description['description']['floraison']; ?>
+ <?if ($description['description']['fructification'] != '') : ?>
+ <span class="titre">Fructification </span>
+ <?=$description['description']['fructification']; ?>
+ <? endif; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ <?if ($description['description']['usages'] != '') : ?>
+ <tr>
+ <td>
+ <span class="titre">Usages</span>
+ <?=$description['description']['usages']; ?>
+ </td>
+ </tr>
+ <? endif; ?>
+ </table>
+ <? else : ?>
+ <?=$description['description'];?>
+ <? endif;?>
+ <? endif;?>
+ <br/>
+ <a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Ecologie -->
+ <div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie"><?=$i18n["onglet-nom-eco"]?></a>
+ </h3>
+ <div id="contenu-8" class="contenu">
+ <h4><?=$ecologie['graph']['titre']?></h4>
+ <? if (empty($ecologie['graph']['description'])) : ?>
+ <? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? else : echo $ecologie['graph']['wikini']['ecologie'];?>
+ <? endif; ?>
+ <? else : ?>
+ <div class="fond_graphique">
+ <? if (isset($ecologie['graph']['description']['climat_url'])) :?>
+ <span class="titre">caractéristiques climatiques</span>
+ <div class="graphique">
+ <object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
+ class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
+ </object>
+ </div>
+ <?endif;?>
+ <? if (isset($ecologie['graph']['description']['sol_url'])) :?>
+ <span class="titre">caractéristiques du sol</span>
+ <div class="graphique">
+ <object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
+ class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" >
+ </object>
+ </div>
+ <?endif;?>
+ <a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
+ Voir les références
+ </a>
+ </div>
+ <? endif; ?>
+ <? if (!empty($ecologie['phytosocio']['description'])) : ?>
+ <h4>Phytosociologie</h4>
+ <span class="gras">
+ <?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
+ <?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
+ </span> <br/>
+ <?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
+ <span class="italique">
+ <?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
+ </span>
+ <? endif; ?>
+ <br/>
+ <a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Ethnobotanique -->
+ <div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique"><?=$i18n["onglet-nom-ethnobota"]?></a>
+ </h3>
+ <div id="contenu-4" class="contenu">
+ <h4>Noms communs</h4>
+ <?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
+ Aucun nom vernaculaire
+ <? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['noms_communs'];} ?>
+ <?php } else { ?>
+ <?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
+ <div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
+ <?php endforeach; ?>
+ <?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ et <?= $ethnobotanique['autresNomsVerna'] ?>
+ autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
+ nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
+ </a><br />
+ <?php }?>
+ <?php }?>
+ <h4>Usages</h4>
+ <? if ($ethnobotanique['wikini']['usage'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['usage'];} ?>
+ <h4>Culture et arts</h4>
+ <? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
+ Rajouter vos informations.
+ </a>
+ <? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
+ <br />
+ <a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Bibliographie -->
+ <div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie"><?=$i18n["onglet-nom-biblio"]?></a>
+ </h3>
+ <div id="contenu-2" class="contenu">
+ <?php if (isset($bibliographie['wikini'])) { ?>
+ <?= ($bibliographie['wikini']['biblio'] == '') ?
+ '<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
+ Ajoutez votre bibliographie sur ce taxon</a>'
+ : $bibliographie['wikini']['biblio'] ?>
+ <?php } else { ?>
+
+ <h4>Références</h4>
+ <?php if ($bibliographie['references'] == array()) { ?>
+ Aucune référence bibliographique
+ <?php } else { ?>
+ <?php foreach ($bibliographie['references'] as $reference) : ?>
+ <div> - <?= $reference['reference_html']; ?> </div>
+ <?php endforeach; ?>
+ <?php if($bibliographie['autresReferences'] > 0) { ?>
+ <a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ et <?= $bibliographie['autresReferences'] ?>
+ autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
+ référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
+ </a>
+ <?php } } ?>
+ <?php }?>
+ <hr class="nettoyage" />
+ <a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+
+ </div><div class="colonne">
+
+ <!-- Illustrations -->
+ <div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations"><?=$i18n["onglet-nom-illustra"]?></a>
+ </h3>
+ <div id="contenu-0" class="contenu">
+ <?php if ($illustrations['imageUrl'] != '') : ?>
+ <img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
+ src="<?=$illustrations['imageUrl']?>" alt="<?= $infos['nom_sci'] . ($nom_vernaculaire != '' ? ' ('.$nom_vernaculaire.')' : '') ?>"
+ style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
+ <?php else : ?>
+ <span class="absent" style="float:none; margin-left:55px">
+ Pas de photo<br />
+ <a href="http://www.tela-botanica.org/page:cel"
+ title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
+ onclick="window.open(this.href); return false;" class="contribuer">
+ Contribuer
+ </a>
+ </span>
+ <?php endif; ?>
+ <a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Répartition -->
+ <div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition"><?=$i18n["onglet-nom-repart"]?></a>
+ </h3>
+ <div id="contenu-3" class="contenu">
+ <? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
+ <h4>Observations</h4>
+ <img src="<?=htmlentities($repartition['eflore'])?>" alt="<?= $infos['nom_sci'] ?> - carte des observations" style="margin-left: 11px; width: 190px;" />
+ <? endif; ?>
+ <? if ($repartition['chorodep'] != null) : ?>
+ <h4>Répartition départementale</h4>
+ <img src="<?=htmlentities($repartition['chorodep'])?>" alt="<?= $infos['nom_sci'] ?> - carte de répartition"/>
+ <? endif; ?>
+ <br/>
+ <a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+
+ <!-- Statut de protection -->
+ <div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+ <h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
+ <a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut"><?=$i18n["onglet-nom-protect"]?></a>
+ </h3>
+ <div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
+ <? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
+ Attention ce taxon est protégé dans les zones suivantes : <br />
+ <?php foreach($statut['statuts'] as $statut_zone) : ?>
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ <?= $statut_zone['zone_application']; ?><br />
+ </a>
+ <?php endforeach; ?>
+ <? } else if ($statut['wikini']['statuts_de_protection'] != '' ) { ?>
+ <?= $statut['wikini']['statuts_de_protection'];?>
+ <? } ?>
+ <? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
+ Ce taxon est classé dans la liste rouge dans la catégorie : <br />
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
+ <?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
+ </a>
+ <? } ?>
+ <? if ($statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
+ <span class="pas_de_protection">Pas de protection connue</span>
+ <? }?>
+ <br />
+ <a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
+ Voir +/Compléter
+ </a>
+ </div>
+ </div>
+ </div>
+ <hr class="nettoyage" />
+ <script type="text/javascript">
+ $.event.trigger('ongletSyntheseCharge');
+ </script>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_nomenclature.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_nomenclature.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_nomenclature.tpl.html (revision 1427)
@@ -0,0 +1,248 @@
+<div class="onglet_contenu" id="nomenclature">
+ <h2>Nom retenu <?php if (trim($date_maj) != "") : ?> (taxon modifié le : <?= $date_maj ?>)<? endif; ?></h2>
+ <div style="float:right">
+ <div class="legende">
+ <b>Légende</b><br />
+ <span class="legende_nom_retenu couleur_legende" style="margin:8px 5px 0 0"></span><span>Nom sélectionné</span>
+ <br />
+ <img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />Lien vers diagnose
+ <br />
+ <div class="imagettePlus"></div>Afficher la biblio
+ <br />
+ <div class="imagetteMoins"></div>Masquer la biblio
+ </div>
+ <div style="padding:5px 10px; display:none" id="plieur">
+ <a class="lien_tout_deplier" href="#">Tout déplier</a> | <a class="lien_tout_plier" href="#">Tout plier</a>
+ </div>
+ </div>
+ <div class="onglet_marge_gauche">
+ <span class="nom retenu <?= ($nom_selectionne == $nom_retenu_formate) ? 'surlignage' : '' ?>">
+ <?if ($nom_retenu_source != '') { ?>
+ <a class="lien_biblio_ext" href="<?=$nom_retenu_source?>" target="_blank" title="Voir la diagnose en ligne">
+ <img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />
+ </a>
+ <? } ?>
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($nom_retenu_nn,'nom_scientifique'); ?>">
+ <?= $nom_retenu_formate ?>
+ </a>
+ </span>
+ </div>
+ <?php if($basionyme_nom_retenu != null && $basionyme_nom_retenu != '') { ?>
+ <div class="nom onglet_marge_gauche basionyme_complet">
+ Basionyme :
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($basionyme_nom_retenu_nn,'nom_scientifique'); ?>">
+ <?= $basionyme_nom_retenu ?>
+ </a>
+ </div>
+ <?php } ?>
+
+ <?php if($hybride_parent_01 != null && $hybride_parent_01 != '') { ?>
+ Hybride de :<br />
+ Parent 1 : <span class="nom">
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($hybride_parent_01_nn,'nom_scientifique'); ?>">
+ <?= $hybride_parent_01 ?>
+ </a>
+ </span><br />
+ Parent 2 : <span class="nom">
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($hybride_parent_02_nn,'nom_scientifique'); ?>">
+ <?= $hybride_parent_02 ?>
+ </a>
+ </span>
+ <?php } ?>
+
+ <h2>Synonymes</h2>
+ <br />
+ <?php if(is_array($synonymes['noms']) && count($synonymes['noms']) > 0) { ?>
+ <?php foreach ($synonymes['noms'] as $id_b => $basionyme) : ?>
+ <span class="nom basionyme_complet">
+ <?php if($id_b != 'basionyme_inconnu') { ?>
+ <?if ($basionyme['source_biblio'] != '') { ?>
+ <a class="lien_biblio_ext" href="<?=$basionyme['source_biblio']?>" target="_blank" title="Voir la diagnose en ligne">
+ <img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />
+ </a>
+ <? } ?>
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($basionyme['infos_basionyme']['basionyme.id'],'nom_scientifique'); ?>">
+ <?= isset($basionyme['infos_basionyme']['basionyme_html_complet']) ? "Basionyme : ".$basionyme['infos_basionyme']['basionyme_html_complet'] : ''; ?>
+ </a>
+ <?php } else { ?>
+ Noms dont le basionyme est inconnu
+ <?php } ?>
+ </span>
+ <ul class="liste_synonymes_basionyme">
+ <?php foreach ($basionyme['synonymes'] as $id => $synonyme) : ?>
+ <?php if($id_b != $id) { ?>
+ <li class="item_nomenclature">
+ <?if ($synonyme['source_biblio'] != '') { ?>
+ <a class="lien_biblio_ext" href="<?=$synonyme['source_biblio']?>" target="_blank" title="Voir la diagnose en ligne">
+ <img src="<?=$baseUrlIco?>presentations/images/bib_en_ligne.png" alt="diagnose" title="Voir la diagnose en ligne" />
+ </a>
+ <? } ?>
+ <span class="nom<?= ($nom_selectionne == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($id,'nom_scientifique'); ?>"> <?= $synonyme['nom_sci_complet'] ?></a>
+ </span>
+ </li>
+ <?php } ?>
+ <?php endforeach; ?>
+ </ul>
+ <?php endforeach; ?>
+ <hr class="nettoyage" />
+ <?php } else { ?>
+ <h3 class="aucune_info"> Aucun synonyme référencé pour ce nom </h3>
+ <?php } ?>
+
+ <? if (isset($flores_synonymes)) : ?>
+ <h2>Dénomination dans les flores usuelles</h2>
+ <?php if(is_array($flores_synonymes) && count($flores_synonymes) > 0) { ?>
+ <ul>
+ <?php foreach ($flores_synonymes as $infos_flore) : ?>
+ <li class="item_nomenclature">
+ <div>
+ Ce taxon est noté dans la flore <em><?= $infos_flore['nom_flore'] ?></em>
+ <?php if(isset($infos_flore['num'])) { ?>
+ sous :<br /><ul>
+ <?php foreach ($infos_flore['num'] as $code => $flore) : ?>
+ <li>le nom de <em><?= $flore['nom_sci'] ?></em>
+ et <?=$infos_flore['type']?> <b><?= $flore['id'] ?></b><?=($flore['statut']) ? ' en tant que '.$flore['statut'] : ''?><br /></li>
+
+ <?php endforeach; ?>
+ </ul>
+ <?php } else { ?>
+
+ <?php } ?>
+ </div>
+ </li>
+ <?php endforeach; ?>
+ </ul><hr class="nettoyage" />
+ <?php } else { ?>
+ <h3 class="aucune_info"> Aucune information floristique référencée pour ce nom </h3>
+ <?php } ?>
+ <?php if($num_type != null) { ?>
+ <h3> Autres </h3>
+ <!-- On utilise une liste au cas où d'autres informations viendraient se greffer à cet endroit -->
+ <ul>
+ <li class="item_nomenclature"> Numéro du type : <?= $num_type ?></li>
+ </ul>
+ <?php } ?>
+ <? endif; ?>
+ <hr class="nettoyage" />
+ <div class="conteneur_lien_metadonnees">
+ <?= $synonymes['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $synonymes['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+
+ <a class="acceder-outil gauche" href="http://referentiels.tela-botanica.org/referentiel/index.php?ref=<?=$referentiel;?>&module=FicheTaxon&num_nom=<?=$nom_retenu_nn;?>">
+ Consultez ce nom dans le référentiel en cours de mise à jour</a><br /><br />
+ <div class="acceder-outil gauche">Recherchez ce nom sur les sites
+ <a href="http://inpn.mnhn.fr/espece/listeEspeces/<?=htmlentities($nom_retenu)?>/">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/inpn.png" alt="INPN" title="Rechercher dans Inventaire National du Patrimoine Naturel" />
+ </a>
+ <a href="http://www.theplantlist.org/tpl/search?q=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/tpl.png" alt="The Plant List"
+ title="Rechercher dans The Plant List"/>
+ </a>
+ <a href="http://www.ipni.org/ipni/simplePlantNameSearch.do?find_wholeName=<?=htmlentities($nom_retenu)?>&amp;output_format=normal&amp;query_type=by_query&amp;back_page=query_ipni.html">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/ipni.png" alt="IPNI" title="Rechercher dans IPNI"/>
+ </a>
+ <a href="http://plants.jstor.org/search?plantName=%22<?=htmlentities($nom_retenu)?>%22&amp;syn=1">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/jstor.png" alt="JSTOR Plant Science" title="Rechercher dans JSTOR Plant Science" />
+ </a>
+ <a href="http://www.anbg.gov.au/cgi-bin/apni?TAXON_NAME=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/anbg.png" alt="Australian Plant Name Index" title="Rechercher dans Australian Plant Name Index" />
+ </a>
+ <a href="http://sweetgum.nybg.org/vh/specimen_list.php?QueryName=BasicQuery&amp;QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&amp;Restriction=NybRecordType+%3D+%27Specimen%27&amp;StartAt=1&amp;any=SummaryData%7CAdmWebMetadata&amp;QueryOption=any&amp;Submit=Search&amp;QueryTerms=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/nybg.png" alt="NYBG Virtual Herbarium" title="Rechercher dans NYBG Virtual Herbarium" />
+ </a>
+ <a href="http://collections.mnh.si.edu/search/botany/?qt=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/si.png" alt="Type Specimen Register of the U.S. National Herbarium" title="Rechercher dans Type Specimen Register of the U.S. National Herbarium" />
+ </a>
+ <a href="http://herbarium.univie.ac.at/database/search.php?taxon=<?=htmlentities($nom_retenu)?>&amp;search=1">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/vha.png" alt="Virtual Herbaria Austria" title="Rechercher dans Virtual Herbaria Austria" />
+ </a>
+ <a href="http://swbiodiversity.org/seinet/taxa/index.php?taxon=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/seinet.png" alt="SEINet" title="Rechercher dans SEINet" />
+ </a>
+ <a href="http://www.ville-ge.ch/musinfo/bd/cjb/africa/resultat.php?efFamille=&amp;projet%5B%5D=FSA&amp;projet%5B%5D=FTA&amp;projet%5B%5D=FNA&amp;projet%5B%5D=BDM&amp;langue=en&amp;pbRecherche=Rechercher&amp;efNom=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/cjb.png" alt="African Plants Database" title="Rechercher dans African Plants Database du Jardin Botanique de Genève" />
+ </a>
+ <a href="http://www.tropicos.org/NameSearch.aspx?name=<?=htmlentities($nom_retenu)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/tropicos.png" alt="Tropicos" title="Rechercher dans Tropicos" />
+ </a>
+
+ <a href="http://www.sfo-asso.com/pages/connaissances.php?parent=6&id=195">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/sfo.png" alt="SFO" title="Rechercher dans Société Française d'Orchidophilie" />
+ </a>
+ <a href="http://coldb.mnhn.fr/Consultation">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/mnhn.png" alt="MNHN" title="Rechercher dans Muséum national d'Histoire naturelle" />
+ </a>
+ <? if ($referentiel == "bdtxa") : ?>
+ <a href="http://collections.antilles.inra.fr/initCard.do?idEntityValue1=<?=htmlentities($nom_retenu);?>&idEntityValue2=&idEntityValue3=&idEntity=21">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/antilles.png" alt="INRA Antilles" title="Rechercher dans collections INRA Antilles" />
+ </a>
+ <? endif; ?>
+ </div>
+ <hr class="nettoyage" />
+
+ <span class="aide_wikini"> Partagez vos infos complémentaires sur ce nom, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="nomenclature">
+ <?=$wikini['nomenclature']?>
+ </div>
+ </div>
+
+
+
+
+
+ <h2>Place du taxon dans la classification APG III</h2>
+ <table class="liste_taxons_superieurs">
+ <tr>
+ <th>Rang</th><th>Nom Scientifique</th><th>Num Nom</th>
+ </tr>
+ <?php if ($taxons_sup != array()) : ?>
+ <?php foreach ($taxons_sup as $taxon) : ?>
+ <tr>
+ <td><?= $taxon['rang.libelle'] ?></td>
+ <td><a title="Voir la fiche de ce nom" href="<?= $urls->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['nom_sci'] ?>
+ </a>
+ </td>
+ <td><?= $taxon['num_nom'] ?></td>
+ </tr>
+ <?php endforeach; ?>
+ <?php endif; ?>
+ <tr class='surlignage'>
+ <td><?= $taxon_courant['rang.libelle'] ?></td>
+ <td><?= $taxon_courant['nom_sci'] ?></td>
+ <td><?= $taxon_courant['num_nom'] ?></td>
+ </tr>
+ <?php if ($taxons_inf != array()) : ?>
+ <?php foreach($taxons_inf as $taxon) : ?>
+ <tr>
+ <td><?= $taxon['rang.libelle'] ?></td>
+ <td>
+ <a title="Voir la fiche de ce nom" href="<?= $urls->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
+ <?= $taxon['nom_sci'] ?>
+ </a>
+ </td>
+ <td><?= $taxon['num_nom'] ?></td>
+ </tr>
+ <?php endforeach; ?>
+ <?php endif; ?>
+ </table>
+
+
+ <div class="conteneur_lien_metadonnees">
+ <?= $synonymes['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $synonymes['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+
+
+ <script type="text/Javascript">
+ $('#plieur').show();
+ gestionBiblio($('#nomenclature'));
+ </script>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau1.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau1.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau1.tpl.html (revision 1427)
@@ -0,0 +1,69 @@
+<?= $entete; ?>
+<div id="bloc-fiche" class="importance4">
+ <h1>
+ <span class="famille nomenclature" style="float: right;">
+ <?php if($famille != '') { ?>
+ <a class="lien_recherche_hier" title="<?= $i18n['lien-recherche-hier-fam']; ?>" href="<?= $lien_recherche_famille ?>"> <?= $famille; ?> </a>
+ <?php } ?>
+ </span>
+ <span class="nomenclature"><?=$nom_retenu_html?></span>
+ </h1>
+ <?php if($nom_vernaculaire): ?>
+ <h2 class="vernaculaire"><?=$nom_vernaculaire;?></h2>
+ <?php endif; ?>
+ <?php if($nom_appele_html): ?>
+ <h3 class="redirige_depuis">
+ <span class="label_redirige_depuis">Nom recherché :</span>
+ <span class="valeur_redirige_depuis"><?= $nom_appele_html ?></span>
+ </h3>
+ <?php endif; ?>
+
+ <hr class="nettoyage" />
+
+ <div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
+ <? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
+ <ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
+ <li id="onglet_synthese" title="<?=$i18n['onglet-descr-synth']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet lien-statique" rel="synthese" href="<?=$url;?>synthese">
+ <?=$i18n["onglet-nom-synth"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="description" href="<?=$url;?>description">
+ <?=$i18n["onglet-nom-descr"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="ethnobotanique" href="<?=$url;?>ethnobotanique">
+ <?=$i18n["onglet-nom-ethnobota"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="ecologie" href="<?=$url;?>ecologie">
+ <?=$i18n["onglet-nom-eco"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="nomenclature" href="<?=$url;?>nomenclature">
+ <?=$i18n["onglet-nom-classif"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="bibliographie" href="<?=$url;?>bibliographie">
+ <?=$i18n["onglet-nom-biblio"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="illustrations" href="<?=$url;?>illustrations">
+ <?=$i18n["onglet-nom-illustra"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartition') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="repartition" href="<?=$url;?>repartition">
+ <?=$i18n["onglet-nom-repart"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="statut" href="<?=$url;?>statut">
+ <?=$i18n["onglet-nom-protect"]?></a>
+ </li>
+ </ul>
+ <span id="conteneurMenuOnglets"></span>
+ <span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
+ </div>
+ <div id="zone_contenu_fiche">
+ <?= $contenu_onglet ?>
+ </div>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau2.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau2.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau2.tpl.html (revision 1427)
@@ -0,0 +1,69 @@
+<?= $entete; ?>
+<div id="bloc-fiche" class="importance4">
+ <h1>
+ <span class="famille nomenclature" style="float: right;">
+ <?php if($famille != '') { ?>
+ <a class="lien_recherche_hier" title="<?= $i18n['lien-recherche-hier-fam']; ?>" href="<?= $lien_recherche_famille ?>"> <?= $famille; ?> </a>
+ <?php } ?>
+ </span>
+ <span class="nomenclature"><?=$nom_retenu_html?></span>
+ </h1>
+ <?php if($nom_vernaculaire): ?>
+ <h2 class="vernaculaire"><?=$nom_vernaculaire;?></h2>
+ <?php endif; ?>
+ <?php if($nom_appele_html): ?>
+ <h3 class="redirige_depuis">
+ <span class="label_redirige_depuis">Nom recherché :</span>
+ <span class="valeur_redirige_depuis"><?= $nom_appele_html ?></span>
+ </h3>
+ <?php endif; ?>
+
+ <hr class="nettoyage" />
+
+ <div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
+ <? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
+ <ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
+ <li title="<?=$i18n['onglet-descr-synth']?>" id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet lien-statique" rel="synthese" href="<?=$url;?>synthese">
+ <?=$i18n["onglet-nom-synth"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="description" href="<?=$url;?>description">
+ <?=$i18n["onglet-nom-descr"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="ethnobotanique" href="<?=$url;?>ethnobotanique">
+ <?=$i18n["onglet-nom-ethnobota"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="ecologie" href="<?=$url;?>ecologie">
+ <?=$i18n["onglet-nom-eco"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="nomenclature" href="<?=$url;?>nomenclature">
+ <?=$i18n["onglet-nom-classif"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="bibliographie" href="<?=$url;?>bibliographie">
+ <?=$i18n["onglet-nom-biblio"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="illustrations" href="<?=$url;?>illustrations">
+ <?=$i18n["onglet-nom-illustra"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartition') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="repartition" href="<?=$url;?>repartition">
+ <?=$i18n["onglet-nom-repart"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="statut" href="<?=$url;?>statut">
+ <?=$i18n["onglet-nom-protect"]?></a>
+ </li>
+ </ul>
+ <span id="conteneurMenuOnglets"></span>
+ <span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
+ </div>
+ <div id="zone_contenu_fiche">
+ <?= $contenu_onglet ?>
+ </div>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau3.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau3.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil_niveau3.tpl.html (revision 1427)
@@ -0,0 +1,69 @@
+<?= $entete; ?>
+<div id="bloc-fiche" class="importance4">
+ <h1>
+ <span class="famille nomenclature" style="float: right;">
+ <?php if($famille != '') { ?>
+ <a class="lien_recherche_hier" title="<?= $i18n['lien-recherche-hier-fam']; ?>" href="<?= $lien_recherche_famille ?>"> <?= $famille; ?> </a>
+ <?php } ?>
+ </span>
+ <span class="nomenclature"><?=$nom_retenu_html?></span>
+ </h1>
+ <?php if($nom_vernaculaire): ?>
+ <h2 class="vernaculaire"><?=$nom_vernaculaire;?></h2>
+ <?php endif; ?>
+ <?php if($nom_appele_html): ?>
+ <h3 class="redirige_depuis">
+ <span class="label_redirige_depuis">Nom recherché :</span>
+ <span class="valeur_redirige_depuis"><?= $nom_appele_html ?></span>
+ </h3>
+ <?php endif; ?>
+
+ <hr class="nettoyage" />
+
+ <div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
+ <? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
+ <ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
+ <li title="<?=$i18n['onglet-descr-synth']?>" id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet lien-statique" rel="synthese" href="<?=$url;?>synthese">
+ <?=$i18n["onglet-nom-synth"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="nomenclature" href="<?=$url;?>nomenclature">
+ <?=$i18n["onglet-nom-classif"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="description" href="<?=$url;?>description">
+ <?=$i18n["onglet-nom-descr"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="ecologie" href="<?=$url;?>ecologie">
+ <?=$i18n["onglet-nom-eco"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="ethnobotanique" href="<?=$url;?>ethnobotanique">
+ <?=$i18n["onglet-nom-ethnobota"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="bibliographie" href="<?=$url;?>bibliographie">
+ <?=$i18n["onglet-nom-biblio"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="illustrations" href="<?=$url;?>illustrations">
+ <?=$i18n["onglet-nom-illustra"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartition') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="repartition" href="<?=$url;?>repartition">
+ <?=$i18n["onglet-nom-repart"]?></a>
+ </li>
+ <li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
+ <a class="lien-onglet" rel="statut" href="<?=$url;?>statut">
+ <?=$i18n["onglet-nom-protect"]?></a>
+ </li>
+ </ul>
+ <span id="conteneurMenuOnglets"></span>
+ <span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
+ </div>
+ <div id="zone_contenu_fiche">
+ <?= $contenu_onglet ?>
+ </div>
+</div>
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_cel.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_cel.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_illustrations_cel.tpl.html (revision 1427)
@@ -0,0 +1,54 @@
+<? if (isset($cel)) : ?>
+ <?php if (isset($cel['images'])) : ?>
+ <ul class="liste-illustrations">
+ <?php foreach($cel['images'] as $id => $image) : ?>
+ <li><div>
+ <a class="lien_grand_format" target="_blank" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" href="<?= $image['urlImgGrandFormat'] ?>">
+ <img src="<?= $image['src']; ?>" alt="Photographie n°<?=$id;?> du taxon <?=$image['nomSci']?>" data-num-image="<?=$id;?>" title="Voir cette image dans son format original (s'ouvre dans une nouvelle fenêtre)" />
+ </a>
+ <p>
+ <strong class="localisation"><?= $image['station']; ?></strong> - <strong class="date-creation"><?= $image['date']; ?></strong>
+ <br />par
+ <? if ($image['auteur.id']) : ?>
+ <a target="_blank" title="Voir le profil de cet utilisateur (nécessite d'être identifié)" href="<?= $image['urlProfil']; ?>">
+ <strong class="auteur"><?= $image['auteur'] ?></strong>
+ </a>&nbsp;&nbsp;
+ </p>
+ <div class="liste_actions_ill">
+ <a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)" class="mailto" href="<?= $image['urlContact']; ?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>contact.png" />
+ </a>
+ <a title="Télécharger cette image dans différents formats" class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$id?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
+ </a>
+ <a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?=$id;?>" href="<?=$image['urlDetailImg'];?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$id;?>" />
+ </a>
+ <a title="Signaler une mauvaise identification ou en proposer une autre via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
+ </a>
+ </div>
+ <? else : ?>
+ <strong class="auteur"><?= $image['auteur'] ?></strong>
+ &nbsp;&nbsp;(profil indisponible)
+ </p>
+ <div class="liste_actions_ill">
+ <a class="lien_telechargement_image" href="<?=Config::get('base_url_widget');?>telechargement?id_image=<?=$id?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>sauver.png" />
+ </a>
+ <a title="Voir plus d'informations sur cette image (s'ouvre dans un popup)" class="lien-image-cel" data-num-image="<?= $image['id_image'] ?>" href="<?=$image['urlDetailImg'];?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>infos_image.png" data-num-image="<?=$id;?>" />
+ </a>
+ <a title="Proposer une autre détermination via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
+ <img class="icone_action_ill" src="<?=Config::get('url_css_images')?>mauvaise_id.png" />
+ </a>
+ </div>
+ <? endif ?><br />
+ </div>
+ </li>
+ <?php endforeach; ?>
+
+ </ul>
+ <?php endif; ?>
+ <hr class="nettoyage" />
+<? endif ?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_bibliographie.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_bibliographie.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_bibliographie.tpl.html (revision 1427)
@@ -0,0 +1,36 @@
+<div class="onglet_contenu" id="bibliographie">
+ <? if (isset($flores)) : ?>
+ <h2> Flores </h2>
+ <ul class="liste_biblio_flores">
+ <?php foreach($flores['liste_flores'] as $flore) : ?>
+ <li class="item_biblio_flore"> <?= $flore ?></li>
+ <?php endforeach; ?>
+ </ul><hr class="nettoyage" />
+ <div class="conteneur_lien_metadonnees">
+ <?= $flores['meta']['titre']?>
+ <a class="lien_metadonnees lien_popup" href="<?= $flores['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </div>
+ <? endif; ?>
+
+ <h2> Références bibliographiques </h2>
+ <ul class="references_bibliographiques">
+ <?php foreach($bibliobota['references'] as $reference) : ?>
+ <li><?=$reference['reference_html']?></li>
+ <?php endforeach; ?>
+ </ul>
+ <a class="acceder-outil" href="http://www.tela-botanica.org/page:accueil_biblio">Participez aux projets collaboratifs liés à la bibliothèque</a>
+ <div class="conteneur_lien_metadonnees">
+ <?= $bibliobota['meta']['citation']?>
+ <a class="lien_metadonnees lien_popup" href="<?= $bibliobota['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </div>
+
+
+ <h2> Bibliographie collaborative : </h2>
+ <!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
+ <span class="aide_wikini"> Participez à la rédaction collaborative de cette bibliograpĥie, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
+ <div class="contenu_editable">
+ <div class="description wikini editable_sur_clic" title="biblio">
+ <?=$wikini['biblio']?>
+ </div>
+ </div>
+</div>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_repartition.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_repartition.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_repartition.tpl.html (revision 1427)
@@ -0,0 +1,92 @@
+<div class="onglet_contenu" id="repartition">
+ <? if (isset($repartition)) : ?>
+ <div id="repartition">
+ <h2>Chorologie départementale</h2>
+ <object class="chorodep_svg" type="image/svg+xml" data="<?=$repartition['svgUrl']?>" class="svg" alt="<?=$repartition['pngUrl']?>">
+ </object>
+ <div id="legende" style="position:absolute; margin-top:-250px;margin-left:20px;">
+ <h3>Légende</h3><br />
+ <? foreach ($repartition['legende'] as $id => $details) :?>
+ <div style="clear:left; ">
+ <div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
+ <div class="texte_legende_repartition"><b><?=$details['nom']?></b></div>
+ </div>
+ <? endforeach; ?>
+ </div>
+ <div class="conteneur_lien_metadonnees">
+ <?=$repartition['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $repartition['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ </div>
+ <a href="http://www.tela-botanica.org/page:liste_projets?id_projet=9&amp;act=description"
+ title="Carte en cours d'élaboration. Participez au projet" onclick="window.open(this.href); return false;"
+ class="acceder-outil">Participez au projet</a>
+ </div>
+ <? endif; ?>
+ <hr class="nettoyage" />
+
+ <? if (isset($moissonnage)) : ?>
+ <div id="moissonnage">
+ <h2>Observations</h2>
+ <div class="conteneur_repartition_observations" >
+ <object id="repartition_observations" type="text/html" data="<?=$moissonnage['mapUrl']?>" class="svg" alt="<?=$moissonnage['mapUrl']?>" style="width:620px; height:620px; overflow:none;">
+ </object>
+ </div>
+ <div id="legende" style="padding:15px;margin-top:-25px;">
+ <? foreach ($moissonnage['legende'] as $id => $details) :?>
+ <div style="clear:left;">
+ <div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
+ <div ><b><?=$details['nom']?> : </b><?=$details['description']?></div>
+ </div>
+ <? endforeach; ?>
+ </div>
+ <div id="carte_recalculer">
+ <span>Une fois générée, cette carte est mise en cache.</span>
+ <a href="#" id="lien_recalculer_carte">Recalculer la carte</a>
+ </div>
+ <div id="carte_telechargement">
+ <span>Télécharger la carte au format </span>
+ <a href="<?=$moissonnage['mapTelechargementUrls']['png']; ?>">png</a>&nbsp;
+ <a href="<?=$moissonnage['mapTelechargementUrls']['html']; ?>">html</a>
+ </div>
+ </div>
+ <hr class="nettoyage" />
+ <?endif;?>
+
+ <? if (isset($flore_probable)) : ?>
+ <div id="flore_probable">
+ <h2>Carte de la flore probable</h2>
+ <? if ($flore_probable['carte']['url'] != null) { ?>
+ <div class="conteneur_flore_probable">
+ <img id="carte_flore_probable" alt="Carte de la flore probable pour ce taxon" src="<?= $flore_probable['carte']['url'] ?>" />
+ </div>
+ <hr class="nettoyage" />
+ <?=$flore_probable['meta']['citation']?>
+ <span class="conteneur_lien_metadonnees">
+ <a class="lien_metadonnees lien_popup" href="<?= $flore_probable['meta']['url']; ?>">Voir toutes les metadonnées</a>
+ </span>
+ <? } else { ?>
+ <h3 class="aucune_info"> Aucune carte de flore probable pour ce taxon </h3>
+ <?php } ?>
+ </div>
+ <hr class="nettoyage" />
+ <?endif;?>
+
+ <div id="cel">
+ <h2>Observations du carnet en ligne</h2>
+ <iframe style="width:100%;height:500px" src="<?= Config::get('base_url_widget_carto'); ?>?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>"></iframe>
+ <a href="<?= Config::get('base_url_widget_carto'); ?>?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>">Consultez les données du carnet en ligne sur le widget carto</a>
+ <hr class="nettoyage" />
+ <div>
+ <a href="<?= Config::get('base_url_widget_saisie'); ?>?num_nom=<?=$widget['nn']?>&referentiel=<?=$widget['referentiel'] ?>" title="Ajouter une observation au moyen du Carnet en Ligne"
+ onclick="window.open(this.href); return false;" class="acceder-outil">
+ Rajouter une observation
+ </a>
+ </div>
+ </div>
+
+ <script type="text/javascript">
+ $.event.trigger('ongletRepartitionCharge');
+ </script>
+</div>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche/squelettes/fiche_accueil.tpl.html (revision 1427)
@@ -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>
Index: v5.10-vilmorin/modules/popup_contact/PopupContact.php
===================================================================
--- v5.10-vilmorin/modules/popup_contact/PopupContact.php (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/PopupContact.php (revision 1427)
@@ -0,0 +1,108 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Affiche un formulaire de contact d'utilisateur.
+ *
+ * @category php 5.2
+ * @package eFlore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
+ * @version $Id$
+ */
+
+class PopupContact extends aControleur {
+
+ private $conteneur = null;
+ private $imagesApi = null;
+ private $utilisateur = null;
+ private $appUrls = null;
+ private $id_destinataire = '';
+ private $id_image = '';
+ private $urlWsCelTpl = '';
+ private $urlWsAnnuaireUtilisateurTpl = '';
+
+ public function initialiser() {
+ $this->capturerParametres();
+ $this->conteneur = new Conteneur();
+ $this->imagesApi = $this->conteneur->getApiImages();
+ $this->utilisateur = $this->conteneur->getUtilisateur();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ $this->urlWsAnnuaireUtilisateurTpl = $this->conteneur->getParametre('baseUrlServicesAnnuaireTpl');
+ $this->urlWsCelTpl = $this->conteneur->getParametre('baseUrlServicesCelTpl');
+ }
+
+ private function capturerParametres() {
+ if (isset($_GET['id_destinataire'])) {
+ $this->id_destinataire = $_GET['id_destinataire'];
+ }
+ if (isset($_GET['id_img'])) {
+ $this->id_image = $_GET['id_img'];
+ }
+ }
+
+ public function executerActionParDefaut() {
+ $this->executerForm();
+ }
+
+ public function executerForm() {
+ if ($this->utilisateur->etreIdentifie()) {
+ $this->afficherFormContact();
+ } else {
+ $this->afficherFormIdentification();
+ }
+ }
+
+ private function afficherFormContact() {
+ $this->setSortie(self::META_TITRE, 'Contactez un membre du réseau');
+ $entete = array();
+ $entete['formType'] = 'contact';
+ $entete['urlWsMessageCel'] = sprintf($this->urlWsCelTpl, 'celMessage/image');
+ $entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur');
+
+ $this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
+
+ $infos = array();
+ // cas d'une obs saisie par une personne non inscrite
+ // le message doit être envoyé au cel qui fournira le courriel de l'auteur
+ if(trim($this->id_destinataire) == "") {
+ $infos['idDestinataire'] = $this->id_image;
+ $infos['typeEnvoi'] = 'non-inscrit';
+ } else {
+ $infos['idDestinataire'] = $this->id_destinataire;
+ $infos['typeEnvoi'] = 'inscrit';
+ }
+ $infos['idImage'] = $this->id_image;
+ $infos['utilisateurCourriel'] = $this->utilisateur->getCourriel();
+ $infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
+
+ $this->imagesApi->setProjet('cel');
+ // prêt à passer à API_DEL
+ // TODO: voir pourquoi la forme service:del:images/#id_image ne fonctionne pas
+ // et s'il est vraiment utile d'appeler DEL ici
+ $imageInfos = $this->imagesApi->setApi(Eflore::API_EFLORE)->getInfosImageParIdImage($this->id_image);
+ $idObs = $imageInfos['observation.id'];
+ $nomSci = $imageInfos['determination.nom_sci'];
+ $date = $imageInfos['date'];
+ $lieu = $imageInfos['station.libelle'];
+
+ $infos['sujet'] = "Observation #$idObs de $nomSci";
+ $infos['message'] = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de $nomSci du $date au lieu $lieu";
+
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('form_contact', $infos));
+ }
+
+ private function afficherFormIdentification() {
+ $this->setSortie(self::META_TITRE, 'Identification');
+ $entete = array();
+ $entete['formType'] = 'identification';
+ $entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur');
+ $this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
+
+ $infos = array();
+ $infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('form_identification', $infos));
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_contact/presentations/styles/identification.css
===================================================================
--- v5.10-vilmorin/modules/popup_contact/presentations/styles/identification.css (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/presentations/styles/identification.css (revision 1427)
@@ -0,0 +1,6 @@
+@CHARSET "UTF-8";
+/*----------------------------------------------------------------------------------------------------------*/
+/* Balises */
+input[type="checkbox"]{
+ margin:2px 5px;
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_contact/presentations/scripts/identification.js
===================================================================
--- v5.10-vilmorin/modules/popup_contact/presentations/scripts/identification.js (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/presentations/scripts/identification.js (revision 1427)
@@ -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>');
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_contact/presentations/scripts/contact.js
===================================================================
--- v5.10-vilmorin/modules/popup_contact/presentations/scripts/contact.js (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/presentations/scripts/contact.js (revision 1427)
@@ -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, '');
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_contact/squelettes/form_identification.tpl.html
===================================================================
--- v5.10-vilmorin/modules/popup_contact/squelettes/form_identification.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/squelettes/form_identification.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_contact/squelettes/form_contact.tpl.html
===================================================================
--- v5.10-vilmorin/modules/popup_contact/squelettes/form_contact.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/squelettes/form_contact.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_contact/squelettes/contact_entete.tpl.html
===================================================================
--- v5.10-vilmorin/modules/popup_contact/squelettes/contact_entete.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/popup_contact/squelettes/contact_entete.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_illustrations/PopupIllustrations.php
===================================================================
--- v5.10-vilmorin/modules/popup_illustrations/PopupIllustrations.php (revision 0)
+++ v5.10-vilmorin/modules/popup_illustrations/PopupIllustrations.php (revision 1427)
@@ -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));
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/popup_illustrations/squelettes/popup_fiche_illustrations.tpl.html
===================================================================
--- v5.10-vilmorin/modules/popup_illustrations/squelettes/popup_fiche_illustrations.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/popup_illustrations/squelettes/popup_fiche_illustrations.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/fiche_metadonnees/FicheMetadonnees.php
===================================================================
--- v5.10-vilmorin/modules/fiche_metadonnees/FicheMetadonnees.php (revision 0)
+++ v5.10-vilmorin/modules/fiche_metadonnees/FicheMetadonnees.php (revision 1427)
@@ -0,0 +1,125 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module fiche metadonnées.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Aurélien Peronnet <aurelien@tela-botanica.org>
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class FicheMetadonnees extends aControleur {
+
+ private $projet = '';
+ private $serviceMetaDonnees;
+
+ public function __construct($metadonnees = null) {
+ $this->capturerParametres();
+ $this->serviceMetaDonnees = (is_null($this->serviceMetaDonnees)) ? new MetaDonnees($this->projet) : $metadonnees;
+ }
+
+ public function executerActionParDefaut() {
+ $this->executerAffichageMetaDonnees();
+ }
+
+ public function chargerMetadonneesHtml() {
+ $meta = $this->serviceMetaDonnees->getMetaDonnees();
+ $meta_resume = $this->formaterResumeMetadonnees($meta[0]);
+ $donnees['i18n'] = I18n::get('Metadonnees');
+ foreach ($meta as $index => $metadonnees) {
+ $meta[$index] = $this->formaterClesMetadonnees($metadonnees);
+ }
+ $donnees['metadonnees'] = $meta;
+ $donnees['metadonnees_resume'] = $meta_resume;
+ $html = $this->getVue(dirname(__FILE__).'/squelettes/metadonnees', $donnees);
+ return $html;
+ }
+
+ private function formaterResumeMetadonnees($meta) {
+ // tentative de retrouver une date de mise à jour
+ $dateCreationOuMaj = null;
+ if (! empty($meta['date_creation'])) {
+ $dateCreationOuMaj = strftime("%d/%m/%Y", strtotime($meta['date_creation']));
+ }
+ // retour
+ return array('auteurs' => $this->formaterAuteurs($meta),
+ 'url' => $this->formaterUrl($meta),
+ 'description' => $meta['description'],
+ 'citation' => $meta['citation'],
+ 'titre' => $meta['titre'],
+ 'date' => $dateCreationOuMaj
+ );
+ }
+
+ private function formaterAuteurs($meta) {
+ $contacts = array();
+ $noms = array();
+ if(isset($meta['createurs.details'])) {
+ foreach($meta['createurs.details'] as $createur_detail) {
+ $auteur_nom_fmt = isset($createur_detail["p.nom"]) ? $createur_detail["p.nom"] : "";
+ $auteur_prenom_fmt = isset($createur_detail["p.prenom"]) ? $createur_detail["p.prenom"] : "";
+ $structure_fmt = isset($createur_detail["o.nom"]) ? $createur_detail["o.nom"] : "";
+ $auteur_contact = isset($createur_detail["p.courriel"]) ? $createur_detail["p.courriel"] : "";
+ if($auteur_prenom_fmt != "" || $auteur_nom_fmt != "") {
+ $nom_prenom_structure_fmt = $auteur_prenom_fmt.' '.$auteur_nom_fmt;
+ if($structure_fmt != "") {
+ $nom_prenom_structure_fmt .= " (".$structure_fmt.")";
+ }
+ $noms[] = $nom_prenom_structure_fmt;
+ }
+ if($auteur_contact != "") {
+ $contacts[] = $auteur_contact;
+ }
+ }
+ }
+ $createurs = array('noms' => implode(", ", $noms), 'contacts' => implode(", ", $contacts));
+ return $createurs;
+ }
+
+ private function formaterUrl($meta) {
+ return $meta['url_projet'];
+ }
+
+ public function executerAffichageMetaDonnees($donnees) {
+ header('Content-type: text/html; charset=UTF-8');
+ $html = $this->chargerMetadonneesHtml();
+ echo $html;
+ exit;
+ }
+
+ private function capturerParametres() {
+ if (isset($_GET['projet'])) {
+ $this->projet = $_GET['projet'];
+ }
+ }
+
+ private function formaterClesMetadonnees($metadonnees) {
+ $meta_fmt = array();
+ foreach ($metadonnees as $cle => $metadonnee) {
+ $cle_fmt = str_replace('.', '_', $cle);
+ if(is_array($metadonnee)) {
+ $metadonnee = $this->formaterClesMetadonnees($metadonnee);
+ } elseif($this->estUnLien($metadonnee)) {
+ $metadonnee = $this->formaterLienMetadonnee($metadonnee);
+ }
+ $meta_fmt[$cle_fmt] = $metadonnee;
+ }
+ return $meta_fmt;
+ }
+
+ private function estUnLien($valeur) {
+ // le test du pauvre, mais ça suffit ici
+ // car nous controlons le format des métadonnées
+ return strpos($valeur, "http://") !== false;
+ }
+
+ private function formaterLienMetadonnee($lien) {
+ return '<a href="'.$lien.'" target="_blank">'.$lien.'</a>';
+ }
+}
+?>
\ No newline at end of file
/v5.10-vilmorin/modules/fiche_metadonnees/FicheMetadonnees.php
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: v5.10-vilmorin/modules/fiche_metadonnees/squelettes/metadonnees.tpl.html
===================================================================
--- v5.10-vilmorin/modules/fiche_metadonnees/squelettes/metadonnees.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/fiche_metadonnees/squelettes/metadonnees.tpl.html (revision 1427)
@@ -0,0 +1,87 @@
+<div>
+ <a id="lien_metadonnees_resume" href="#metadonnees_resume">Résumé</a>
+ <a id="lien_metadonnees" href="#metadonnees_resume">Détails</a>
+
+ <div id="metadonnees_resume">
+ <br />
+ <span class="intitule_metadonnee">Ces données proviennent de la base "</span><?= $metadonnees_resume['titre']; ?>" <br />
+ <span class="intitule_metadonnee">de</span> <?= $metadonnees_resume['auteurs']['noms'] ?><br /><br />
+ <span class="intitule_metadonnee">Description :</span>
+ <span class="metadonnees_resume_description"><?= $metadonnees_resume['description']; ?></span><br />
+ <span class="intitule_metadonnee">Citation : </span> "<?= $metadonnees_resume['citation'] ?>"<br /><br />
+ <?php if ($metadonnees_resume['date'] != null): ?>
+ <span class="intitule_metadonnee">Mise à jour le</span> <?= $metadonnees_resume['date']; ?>
+ <?php endif; ?>
+ <br/>
+ <?php if($metadonnees_resume['url'] != "") { ?>
+ <span class="intitule_metadonnee">Url du projet : </span><a href="<?= $metadonnees_resume['url']; ?>"><?= $metadonnees_resume['url']; ?></a><br />
+ <? } ?>
+ <?php if($metadonnees_resume['auteurs']['contacts'] != "") { ?>
+ <span class="intitule_metadonnee">Contact du ou des auteurs du projet : </span><?= $metadonnees_resume['auteurs']['contacts']; ?>
+ <? } ?>
+ </div>
+
+ <div id="metadonnees">
+ <ul>
+ <? foreach ($metadonnees as $donnee) : ?>
+ <? foreach ($donnee as $cle => $valeur) : ?>
+ <li>
+ <?php if(is_array($valeur)) { ?>
+ <? foreach ($valeur[0] as $sous_cle => $sous_valeur) : ?>
+ <ul class="sous-liste-metadonnees">
+ <li>
+ <?php if(trim($sous_cle) != '') { ?>
+ <span class="intitule_metadonnee"><?= $i18n[$sous_cle] ?> :</span>
+ <? } ?>
+ <span class="valeur_metadonnee"><?= $sous_valeur ?></span>
+ </li>
+ </ul>
+ <? endforeach; ?>
+ <?php } else { ?>
+ <?php if(trim($cle) != '') { ?>
+ <span class="intitule_metadonnee"><?= $i18n[$cle] ?> :</span>
+ <? } ?>
+ <span class="valeur_metadonnee"><?= $valeur ?></span>
+ <?php } ?>
+ </li>
+ <? endforeach; ?>
+ <? endforeach; ?>
+ </ul>
+ </div>
+</div>
+<script>
+ function redimensionnerFancyBox() {
+ $('#fancybox-inner').width("auto");
+ $('#fancybox-outer').width("auto");
+ $('#fancybox-content').width("auto");
+ }
+
+ function afficherResumeMetadonnees() {
+ $('#lien_metadonnees_resume').addClass("lien_metadonnees_affiche");
+ $('#lien_metadonnees').removeClass("lien_metadonnees_affiche");
+ $('#metadonnees_resume').show();
+ $('#metadonnees').hide();
+ }
+
+ function afficherMetadonneesCompletes() {
+ $('#lien_metadonnees').addClass("lien_metadonnees_affiche");
+ $('#lien_metadonnees_resume').removeClass("lien_metadonnees_affiche");
+ $('#metadonnees_resume').hide();
+ $('#metadonnees').show();
+ }
+
+ $(document).ready(function() {
+ afficherResumeMetadonnees();
+ $('#lien_metadonnees').click(function(event) {
+ afficherMetadonneesCompletes();
+ redimensionnerFancyBox();
+ event.preventDefault();
+ });
+
+ $('#lien_metadonnees_resume').click(function(event) {
+ afficherResumeMetadonnees();
+ redimensionnerFancyBox();
+ event.preventDefault();
+ });
+ });
+</script>
\ No newline at end of file
Index: v5.10-vilmorin/modules/liste/Liste.php
===================================================================
--- v5.10-vilmorin/modules/liste/Liste.php (revision 0)
+++ v5.10-vilmorin/modules/liste/Liste.php (revision 1427)
@@ -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;
+ }
+
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/liste/squelettes/liste.tpl.html
===================================================================
--- v5.10-vilmorin/modules/liste/squelettes/liste.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/liste/squelettes/liste.tpl.html (revision 1427)
@@ -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; ?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/recherche_simple/RechercheSimple.php
===================================================================
--- v5.10-vilmorin/modules/recherche_simple/RechercheSimple.php (revision 0)
+++ v5.10-vilmorin/modules/recherche_simple/RechercheSimple.php (revision 1427)
@@ -0,0 +1,40 @@
+<?php
+class RechercheSimple extends aControleur {
+
+ //+----------------------------------------------------------------------------------------------------------------+
+ // Méthodes
+ /**
+ * Fonction d'affichage par défaut
+ */
+ public function executerActionParDefaut() {
+ $this->afficherMoteurSimple();
+ }
+
+ private function afficherMoteurSimple() {
+ $donnees['form_nom'] = $this->executerFormulaireNom();
+ $this->setSortie(self::RENDU_CORPS, $donnees['form_nom']);
+ }
+
+
+ public function executerFormulaireNom($donnees = array()) {
+ $donnees['url_base_completion_noms_verna'] = "";
+ if (Config::get(Registre::get('parametres.referentiel').'.referentielVerna')) {
+ if (!isset($donnees['type_nom'])) {
+ $donnees['type_nom'] = (Registre::get('parametres.niveau') == 1) ? 'nom_vernaculaire' : 'nom_scientifique';
+ }
+ $donnees['nom_verna'] = true;
+ $donnees['referentielVerna'] = Config::get(Registre::get('parametres.referentiel').'.referentielVerna');
+ $donnees['url_base_completion_noms_verna'] = str_replace('{projet}', $donnees['referentielVerna'], Config::get('nomsVernaTpl'));
+ }
+ $donnees['referentiel'] = Registre::get('parametres.referentiel');
+
+ // nécessaire pour une autocomplétion indépendante, pour ne pas avoir à modifier le javascript
+ $donnees['url_base_completion_noms_sci'] = str_replace('{projet}', $donnees['referentiel'], Config::get('nomsTpl'));
+ $donnees['url_base_fiche_taxon'] = str_replace('&amp;', '&', $this->urls->obtenirUrlFiche('{num_taxon}', 'nom_scientifique'));
+
+ $donnees['url_form'] = $this->urls->obtenirUrlBase();
+ $donnees['i18n'] = I18n::get('Recherche-form-nom');
+ return $this->getVue('form_nom', $donnees);
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/recherche_simple/squelettes/form_nom.tpl.html
===================================================================
--- v5.10-vilmorin/modules/recherche_simple/squelettes/form_nom.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/recherche_simple/squelettes/form_nom.tpl.html (revision 1427)
@@ -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 -->
Index: v5.10-vilmorin/modules/resultat/squelettes/determination.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/determination.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/determination.tpl.html (revision 1427)
@@ -0,0 +1,94 @@
+<!-- onglet "Vignettes" -->
+<ul id="ef-resultats-determination">
+ <?php if ($noms) : ?>
+
+ <? foreach ($noms as $nnTaxon => $nom) : ?>
+ <li class="zone-resultat">
+ <div class="nom-sci">
+ <a class="lien_fiche_eflore" href="<?=$nom['urlFiche']?>" >
+ <strong class="nom-sci-retenu"><?=$nom['nomSciRetenuSurligne']?></strong>
+ </a>
+ </div>
+
+ <?php if (isset($repartition)) : ?>
+ <?php if (isset($repartition['urls'][$nnTaxon]) ) : ?>
+ <img class="illustration_resultat_choro" src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="<?= $nom['nomSciRetenu'] ?> - Carte de répartition" />
+ <?php else : ?>
+ <div class="absent">Pas de carte</div>
+ <?php endif;endif; ?>
+
+ <?php if ($nom['rang'] != 'Famille' && $nom['rang'] != 'Genre' && $nom['rang'] != 'Ordre') : ?>
+ <?php if (isset($imagesUrls[$nnTaxon])) : ?>
+ <img class="illustration_resultat_cel" src="<?=htmlentities($imagesUrls[$nnTaxon][0])?>" data-num-nom="<?= $nnTaxon; ?>" title="<?= $nnTaxon; ?>" alt="<?= $nom['nomSciRetenu'] ?> (image CeL)" style="width:100px;height:100px;display:block;float:right;"/>
+ <?php else : ?>
+ <p class="absent">Pas de photo<br />
+ <a href="<?=$urlWidget.'&num_nom='.$nnTaxon?>"
+ title="Ajouter une photographie au moyen du Carnet en Ligne"
+ onclick="window.open(this.href); return false;" class="contribuer">
+ Contribuer
+ </a>
+ </p>
+ <?php endif; ?>
+
+ <?php if (isset($dessins) && isset($dessins[$taxons[$nnTaxon]][0])) : ?>
+ <img class="illustration_resultat_coste" src="<?=htmlentities($dessins[$taxons[$nnTaxon]][0])?>" alt="<?= $nom['nomSciRetenu'] ?> (illustration de Coste)" />
+ <?php endif; ?>
+ <?php endif; ?>
+
+ <?php if (isset($synonymes[$nnTaxon])) : ?>
+ <?php $nbrSynonymes = count($synonymes[$nnTaxon]) ?>
+ <ul class="synonymes" style="width:100%;">
+ <?php for ($i = 0; ($i < 3); $i++) : ?>
+ <?php if (isset($synonymes[$nnTaxon][$i])) : ?>
+ <li><b>syn.</b> <?=$synonymes[$nnTaxon][$i]['nomSci']?></li>
+ <?php endif; ?>
+ <? endfor; ?>
+ <?php if ($nbrSynonymes === 4) : ?>
+ <?php if (isset($synonymes[$nnTaxon][3])) : ?>
+ <li><b>syn.</b> <?=$synonymes[$nnTaxon][3]['nomSci']?></li>
+ <?php endif; ?>
+ <?php endif; ?>
+ <?php if ($nbrSynonymes > 3 && $nbrSynonymes != 4) : ?>
+ <li class="synonymes-autres">
+ <ul>
+ <?php for ($i = 3; $i < $nbrSynonymes; $i++) : ?>
+ <li><b>syn.</b> <?=$synonymes[$nnTaxon][$i]['nomSci']?></li>
+ <? endfor; ?>
+ </ul>
+ </li>
+ <?php endif; ?>
+ </ul>
+ <?php endif; ?>
+ </li>
+ <? endforeach; ?>
+ <?php endif; ?>
+ <?php if ($nomsSansCorrespondance) : ?>
+ <li class="zone-resultat" title="Aucun nom retenu n'a été trouvé pour ces noms scientifiques">
+ <strong>Noms sans correspondance</strong>
+ <ul class="noms-ss-correspondance">
+ <?php foreach ($nomsSansCorrespondance as $nomSC) : ?>
+ <li><?=$nomSC?></li>
+ <?php endforeach; ?>
+ </ul>
+ </li>
+ <?php endif; ?>
+</ul>
+<script type="text/javascript">
+ //<![CDATA[
+ $(document).ready(function() {
+ ajouterToggleSynonymesAutres();
+ });
+ function ajouterToggleSynonymesAutres() {
+ $("ul#ef-resultats-determination li").each(function(index) {
+ $(this).find('.synonymes-autres').prepend('<a id="bascule-'+index+'" href="#">et plus...</a>');
+ $(this).find('.synonymes-autres ul').css('display', 'none');
+ $(this).find('.synonymes-autres ul').attr('id', 'sa-'+index);
+
+ $('#bascule-'+index).on('click', function() {
+ $('#sa-'+index).toggle('blind', {}, 500);
+ return false;
+ });
+ });
+ }
+ //]]>
+</script>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/squelettes/resultat.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/resultat.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/resultat.tpl.html (revision 1427)
@@ -0,0 +1,22 @@
+<?php if($typeNom == "nom_scientifique"): ?>
+ <?php if ($rang == null): ?>
+ Cet affichage montre tous les résultats.
+ <a href="<?php echo $urlInverse; ?>">Cliquez ici pour afficher seulement les espèces</a>
+ <?php else: ?>
+ <!-- Cet affichage ne montre que le rang "<?php echo $rang; ?>".-->
+ Cet affichage ne montre que les espèces.
+ <a href="<?php echo $urlInverse; ?>">Cliquez ici pour afficher tous les taxons</a>
+ <?php endif; ?>
+ <br/><br/>
+<?php endif; ?>
+
+<?=$ongletsHtml?>
+
+<p style="float:right;">
+ <?php if($typeNom == "nom_scientifique"): ?>
+ <?= $nombreTaxonsAffiches ?> nom<?php echo $nombreTaxonsAffiches > 1 ? 's' : ''; ?> affiché<?php echo $nombreTaxonsAffiches > 1 ? 's' : ''; ?> /
+ <?php endif; ?>
+ <?=$nbreTaxons?> nom<?php echo $nbreTaxons > 1 ? 's' : ''; ?> trouvé<?php echo $nbreTaxons > 1 ? 's' : ''; ?>.
+</p>
+
+<?=$nomsHtml?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/squelettes/liste_noms_verna.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/liste_noms_verna.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/liste_noms_verna.tpl.html (revision 1427)
@@ -0,0 +1,19 @@
+<!-- onglet "Tableau multilingue" -->
+<? if ($noms) : ?>
+ <table>
+ <tr>
+ <th>n°</th>
+ <th>langue</th>
+ <th>nom commun</th>
+ <th>nom latin</th>
+ </tr>
+ <? $i = 1; foreach ($noms as $id => $valeurs) : ?>
+ <tr>
+ <td><?=$i++?></td>
+ <td><?= $valeurs['langue']?></td>
+ <td><?= $valeurs['nomVerna']?></td>
+ <td><a href="<?= $valeurs['urlFiche']?>"><?= $valeurs['nomSci']?></a></td>
+ </tr>
+ <? endforeach; ?>
+ </table>
+<? endif; ?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/squelettes/onglets.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/onglets.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/onglets.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/squelettes/decomposition.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/decomposition.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/decomposition.tpl.html (revision 1427)
@@ -0,0 +1,67 @@
+<!-- onglet "Tableau" -->
+<p>
+Rechercher sur
+ <a href="http://www.theplantlist.org/tpl/search?q=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/tpl.png" alt="The Plant List"
+ title="Rechercher dans The Plant List"/>
+ </a>
+ <a href="http://www.ipni.org/ipni/simplePlantNameSearch.do?find_wholeName=<?=htmlentities($masqueRecherche)?>&amp;output_format=normal&amp;query_type=by_query&amp;back_page=query_ipni.html">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/ipni.png" alt="IPNI" title="Rechercher dans IPNI"/>
+ </a>
+ <a href="http://plants.jstor.org/search?plantName=%22<?=htmlentities($masqueRecherche)?>%22&amp;syn=1">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/jstor.png" alt="JSTOR Plant Science" title="Rechercher dans JSTOR Plant Science" />
+ </a>
+ <a href="http://coldb.mnhn.fr/Consultation?filtre=motif&amp;motif=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/mnhn.png" alt="Muséum national d'Histoire naturelle" title="Rechercher dans Muséum national d'Histoire naturelle" />
+ </a>
+ <a href="http://www.anbg.gov.au/cgi-bin/apni?TAXON_NAME=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/anbg.png" alt="Australian Plant Name Index" title="Rechercher dans Australian Plant Name Index" />
+ </a>
+ <a href="http://sweetgum.nybg.org/vh/specimen_list.php?QueryName=BasicQuery&amp;QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&amp;Restriction=NybRecordType+%3D+%27Specimen%27&amp;StartAt=1&amp;any=SummaryData%7CAdmWebMetadata&amp;QueryOption=any&amp;Submit=Search&amp;QueryTerms=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/nybg.png" alt="NYBG Virtual Herbarium" title="Rechercher dans NYBG Virtual Herbarium" />
+ </a>
+ <a href="http://collections.mnh.si.edu/search/botany/?qt=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/si.png" alt="Type Specimen Register of the U.S. National Herbarium" title="Rechercher dans Type Specimen Register of the U.S. National Herbarium" />
+ </a>
+ <a href="http://herbarium.univie.ac.at/database/search.php?taxon=<?=htmlentities($masqueRecherche)?>&amp;search=1">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/vha.png" alt="Virtual Herbaria Austria" title="Rechercher dans Virtual Herbaria Austria" />
+ </a>
+ <a href="http://swbiodiversity.org/seinet/taxa/index.php?taxon=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/seinet.png" alt="SEINet" title="Rechercher dans SEINet" />
+ </a>
+ <a href="http://www.ville-ge.ch/musinfo/bd/cjb/africa/resultat.php?efFamille=&amp;projet%5B%5D=FSA&amp;projet%5B%5D=FTA&amp;projet%5B%5D=FNA&amp;projet%5B%5D=BDM&amp;langue=en&amp;pbRecherche=Rechercher&amp;efNom=<?=htmlentities($masqueRecherche)?>">
+ <img src="<?=$baseUrlIco?>presentations/images/sites/cjb.png" alt="African Plants Database" title="Rechercher dans African Plants Database du Jardin Botanique de Genève" />
+ </a>
+</p>
+<table id="ef-resultats-decomposition">
+ <thead>
+ <tr>
+ <th id="col-ns">Nom scientifique</th>
+ <th>Auteur</th>
+ <th>Année</th>
+ <th>Référence bibliographique</th>
+ <th title="Commentaires nomenclaturaux ou taxonomiques concernant le nom scientifique">Nom addendum</th>
+ <th title="Identifiant numérique du nom scientifique">N° nom</th>
+ </tr>
+ </thead>
+ <tbody>
+ <? $i = 1 ?>
+ <? foreach ($noms as $nom) : ?>
+ <tr
+ class="<?=$nom['retenu'] === 'true' ? 'retenu' : 'synonyme' ?>"
+ title="Ligne #<?=$i++?>">
+ <td>
+ <? if ($nom['retenu'] !== 'absent') : ?>
+ <a href="<?=$nom['urlFiche']?>"><?=$nom['nomSci']?></a>
+ <? else : ?><?=$nom['nomSci']?>
+ <? endif; ?>
+ </td>
+ <td><?=$nom['auteur']?></td>
+ <td><?=$nom['annee']?></td>
+ <td><?=$nom['biblio']?></td>
+ <td><?=$nom['addendum']?></td>
+ <td><?=$nom['nn']?></td>
+ </tr>
+ <? endforeach; ?>
+ </tbody>
+</table>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/squelettes/liste_noms.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/liste_noms.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/liste_noms.tpl.html (revision 1427)
@@ -0,0 +1,18 @@
+<!-- onglet "Liste" -->
+<ol>
+ <? foreach ($noms as $id => $nom) : ?>
+ <li>
+ <?php if ($nom['retenu'] == 'absent') : ?>
+ <?=$nom['nomSci']?>
+ <?php else : ?>
+ <a href="<?=$nom['urlFiche']?>">
+ <?php if ($nom['retenu'] == 'true') : ?>
+ <strong class="nom-sci-retenu"><?=$nom['nomSci']?></strong>
+ <?php else : ?>
+ <?=$nom['nomSci']?>
+ <?php endif; ?>
+ </a>
+ <?php endif; ?>
+ </li>
+ <? endforeach; ?>
+</ol>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/squelettes/determination_verna.tpl.html
===================================================================
--- v5.10-vilmorin/modules/resultat/squelettes/determination_verna.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/resultat/squelettes/determination_verna.tpl.html (revision 1427)
@@ -0,0 +1,88 @@
+<!-- onglet "Vignettes noms français" -->
+<?php if ($noms) : ?>
+ <ul id="ef-resultats-nv-determination">
+ <? foreach ($noms as $nnTaxon => $nom) : ?>
+ <li class="zone-resultat">
+ <table >
+ <tbody >
+ <tr><td class="nom">
+ <?php if (isset($nom['nomVerna'])) : ?>
+ <?php $nbrNomVerna = count($nom['nomVerna']) ?>
+ <ul class="synonymes" style="width:100%;">
+ <?php for ($i = 0; ($i < 3); $i++) : ?>
+ <?php if (isset($nom['nomVerna'][$i])) : ?>
+ <li><?=$nom['nomVerna'][$i]['nom_vernaculaire']?></li>
+ <?php endif; ?>
+ <? endfor; ?>
+ <?php if ($nbrNomVerna === 4) : ?>
+ <?php if (isset($nom['nomVerna'][3])) : ?>
+ <li><?=$nom['nomVerna'][3]['nom_vernaculaire']?></li>
+ <?php endif; ?>
+ <?php endif; ?>
+ <?php if ($nbrNomVerna > 3 && $nbrNomVerna != 4) : ?>
+ <li class="synonymes-autres">
+ <ul>
+ <?php for ($i = 3; $i < $nbrNomVerna; $i++) : ?>
+ <li><?=$nom['nomVerna'][$i]['nom_vernaculaire']?></li>
+ <? endfor; ?>
+ </ul>
+ </li>
+ <?php endif; ?>
+ </ul>
+ <?php endif; ?>
+ </td><td class="nom">
+ <a class="lien_fiche_eflore" href="<?=$nom['urlFiche']?>" ><?=$nom['nomSci']?></a>
+ </td>
+ <td>
+ <?php if (isset($imagesCoste[$taxons[$nom['nomSci']]][0])) : ?>
+ <img class="illustration_resultat_coste" src="<?=htmlentities($imagesCoste[$taxons[$nom['nomSci']]][0])?>" alt="illustration de Coste" />
+ <?php else : ?>
+ <div class="vide"></div>
+ <?php endif; ?>
+ </td>
+ <td>
+ <?php if (isset($imagesUrls[$nnTaxon])) : ?>
+ <img class="illustration_resultat_cel" src="<?=htmlentities($imagesUrls[$nnTaxon][0])?>" data-num-nom="<?= $nnTaxon; ?>" title="<?= $nnTaxon; ?>" alt="Images issues du CEL" style="width:100px;height:100px;display:block;float:right;"/>
+ <?php else : ?>
+ <p class="absent">
+ Pas de photo<br />
+ <a href="<?=$urlWidget.'&num_nom='.$nnTaxon?>"
+ title="Ajouter une photographie au moyen du Carnet en Ligne"
+ onclick="window.open(this.href); return false;" class="contribuer">
+ Contribuer
+ </a>
+ </p>
+ <?php endif; ?>
+ </td>
+ <td >
+ <?php if (isset($repartition['urls'][$nnTaxon])) : ?>
+ <img src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="Carte de répartition" class="repartition_vignette illustration_resultat_choro"/>
+ <?php else : ?>
+ <div class="absent">Pas de carte</div>
+ <?php endif; ?>
+ </td></tr>
+ </tbody>
+ </table>
+ </li>
+ <? endforeach; ?>
+ </ul>
+<?php endif; ?>
+<script type="text/javascript">
+ //<![CDATA[
+ $(document).ready(function() {
+ ajouterToggleSynonymesAutres();
+ });
+ function ajouterToggleSynonymesAutres() {
+ $("ul#ef-resultats-nv-determination li").each(function(index) {
+ $(this).find('.synonymes-autres').prepend('<a id="bascule-'+index+'" href="#">et plus...</a>');
+ $(this).find('.synonymes-autres ul').css('display', 'none');
+ $(this).find('.synonymes-autres ul').attr('id', 'sa-'+index);
+
+ $('#bascule-'+index).on('click', function() {
+ $('#sa-'+index).toggle('blind', {}, 500);
+ return false;
+ });
+ });
+ }
+ //]]>
+</script>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/ParametresResultats.php
===================================================================
--- v5.10-vilmorin/modules/resultat/ParametresResultats.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/ParametresResultats.php (revision 1427)
@@ -0,0 +1,11 @@
+<?php
+class ParametresResultats {
+ public $typeResultat = 'determination';
+ public $typeNom = '';
+ public $masqueRecherche = '';
+ public $reftaxCourant = 'bdtfx';
+ public $projetImg = 'cel';
+ /** Si "null", montre tous les résultats. Sinon, ne montre que le rang spécifié, par défaut les espèces (290). */
+ public $rang = null;
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DecompoFormateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DecompoFormateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DecompoFormateur.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/AlphabFormateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/AlphabFormateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/AlphabFormateur.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php (revision 1427)
@@ -0,0 +1,258 @@
+<?php
+class DeterminationFormateur implements Formateur {
+
+ const TPL_VUE = 'determination';
+
+ private $parametres = null;
+ private $surligneur = null;
+ private $trieur = null;
+ private $urls = null;
+ private $fusioneur = null;
+ private $manipulateurDeChaine = null;
+ private $imagesService = null;
+
+ private $motsASurligner = array();
+ private $noms = array();
+ private $infosPourTpl = array();
+
+ public function __construct(ParametresResultats $parametres, Array $resultats,
+ Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
+ ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
+
+ $this->parametres = $parametres;
+ $this->noms = $resultats['resultat'];
+ $this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
+ $this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
+ $this->urls = (is_null($urls)) ? new AppUrls() : $urls;
+ $this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
+ $this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
+ }
+
+ public function getTplInfos() {
+ return $this->infosPourTpl;
+ }
+
+ public function getTplNom() {
+ return self::TPL_VUE;
+ }
+
+ public function formater() {
+ $this->extraireInfosTaxons();
+
+ $this->obtenirUrlsDessins();
+ $this->obtenirUrlsPhotos();
+ $this->chargerRepartition();
+
+ $this->extraireInfosNomsPourTplDetermination();
+ $this->infosPourTpl['urlWidget'] = Config::get('base_url_widget_saisie')."?referentiel=".Registre::get('parametres.referentiel');
+ }
+
+ private function obtenirUrlsDessins() {
+ if (Config::get(Registre::get('parametres.referentiel').'.baseDessins') != "") {
+ $this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins'));
+ $tax = implode(',', $this->infosPourTpl['taxons']);
+ $this->imagesService->setNnTaxon($tax);
+ $costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
+ if (!empty($costeImg)) {
+ foreach ($costeImg as $infos) {
+ $num_taxon = $infos['num_taxonomique'];
+ $images[$num_taxon][] = $infos['binaire.href'];
+ $this->infosPourTpl['dessins'] = $images;
+ }
+ }
+ }
+ }
+
+ private function extraireInfosTaxons() {
+ foreach ($this->noms as $id => $nom ) {
+ if (array_key_exists('num_taxonomique', $nom)) {
+ $this->infosPourTpl['taxons'][$id] = $nom['num_taxonomique'];
+ }
+ }
+ }
+
+ private function obtenirUrlsPhotos() {
+ if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") {
+ $this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages'));
+ $ids = $this->extraireIdDesNoms();
+ $urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($ids);
+ $this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesIds($urls);
+ }
+ }
+
+ private function extraireIdDesNoms() {
+ $ids = array();
+ foreach ($this->noms as $id => $nom) {
+ $idAAjouter = $id;
+ if (is_numeric($idAAjouter)) {
+ $ids[] = $idAAjouter;
+ }
+ if (array_key_exists('nom_retenu.id', $nom)) {
+ if (in_array($nom['nom_retenu.id'], $ids) == false) {
+ $idAAjouter = $nom['nom_retenu.id'];
+ if (is_numeric($idAAjouter)) {
+ $ids[] = $idAAjouter;
+ }
+ }
+ }
+ }
+ return $ids;
+ }
+
+ private function supprimerCodeReferentielDesIds($urls) {
+ $urlsNettoyees = array();
+ foreach ($urls as $id => $url) {
+ $id = $this->supprimerCodeReferentiel($id);
+ $urlsNettoyees[$id] = $url;
+ }
+ return $urlsNettoyees;
+ }
+
+ private function supprimerCodeReferentiel($chaine) {
+ $codeReferentiel = Registre::get('parametres.referentiel').'.';
+ $chaine = str_replace($codeReferentiel, '', $chaine);
+ return $chaine;
+ }
+
+ // TODO : utiliser le conteneur pour charger tous les objets de cette classe
+ private function chargerRepartition() {
+ $referentiel = Registre::get('parametres.referentiel');
+ if (Config::get("$referentiel.baseRepartition") != '') {
+ $conteneur = new Conteneur();
+ $cartesWs = $conteneur->getApiCartes();
+ $cartesWs->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition'));
+ $cartesWs->setLargeur('108x101');
+ $urls = array();
+ foreach ($this->noms as $id => $nom) {
+ if (array_key_exists('num_taxonomique', $nom)) {
+ $nt = $nom['num_taxonomique'];
+ $cartesWs->setId("$referentiel.nt:$nt");
+ if (array_key_exists($id, $urls) == false) {
+ $urls[$id] = $cartesWs->getUrlPng();
+ }
+ }
+ }
+ $this->infosPourTpl['repartition']['urls'] = $urls;
+ }
+ }
+
+ private function extraireInfosNomsPourTplDetermination() {
+ $tri = $this->diviserResultats();
+ $this->infosPourTpl['nomsSansCorrespondance'] = isset($tri['sansCorres']) ? $tri['sansCorres'] : false;
+ $this->infosPourTpl['noms'] = isset($tri['retenus']) ? $tri['retenus'] : false;
+ $this->infosPourTpl['synonymes'] = isset($tri['synonymes'] ) ? $tri['synonymes'] : false;
+ }
+
+ /**
+ * division ordonnée par
+ * 1 - noms retenus qui commencent par la requete
+ * 2 - requete contenue dans un synonyme dont le nom retenu ne contient pas la requete
+ * 3 - requete contenue dans un hybride retenu
+ * 4 - requete contenue dans un nom retenu mais pas au début
+ * 5 - requete contenue dans un nom sans correspondance
+ *
+ */
+ private function diviserResultats() {
+ $tri = array();
+ $sansCorres = array();
+ $synonymes = array();
+ $retenus = array();
+ foreach ($this->noms as $cle => $valeurs) {
+ if ($valeurs['nom_retenu.libelle'] == null) {//sans correspondances
+ $sansCorres[$cle] = $valeurs['nom_sci_complet'];
+ } elseif ($valeurs['retenu'] == 'true') { // retenus
+ if (preg_match('/ x |^x /',$valeurs['nom_sci'] ) ) {
+ //hybrides
+ $retenus[2][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
+ } elseif (strripos($valeurs['nom_sci_complet'], $this->parametres->masqueRecherche) === 0) {//preg_match('/^'.strtolower($this->parametres->masqueRecherche).' |^'.strtolower($this->parametres->masqueRecherche).'$/', strtolower($valeurs['nom_sci']) ) ) {
+ //commence par
+ $retenus[0][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
+ } else {
+ //contient
+ $retenus[3][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
+ }
+ } else {//synonymes
+ $idNomRetenu = $valeurs['nom_retenu.id'];
+ if (in_array($valeurs['nom_retenu.id'], array_keys($this->noms)) == false) {
+ //synonymes dont le nom retenu n'est pas un résultat de recherche
+ $retenus[1][$idNomRetenu] = $this->retournerInfosNomRetenu($idNomRetenu,$valeurs['nom_retenu.libelle'], $valeurs['rang.libelle']);
+ $this->infosPourTpl['taxons'][$idNomRetenu] = $valeurs['num_taxonomique']; //num taxon pour images coste
+ }
+ $synonymes[$idNomRetenu][] = $this->retournerInfosSynonyme($cle, $valeurs);
+ }
+ }
+ ksort($retenus);
+ $tri['retenus'] = $retenus;
+ $tri['synonymes'] = $synonymes;
+ $tri['sansCorres'] = $sansCorres;
+ return $tri;
+ }
+
+ private function retournerInfosNomRetenu($cle, $nom_sci, $rang) {
+ $infos = array();
+ $infos['nomSciRetenu'] = $nom_sci;
+ $infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, strtolower($this->parametres->masqueRecherche), $nom_sci);
+ $infos['rang'] = $rang;
+ return $infos;
+ }
+
+ private function retournerInfosSynonyme($cle, $valeurs) {
+ $infos = array();
+ $infos['nn'] = $cle;
+ $infos['nomSci'] = $valeurs['nom_sci_complet'];
+ $infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, $this->parametres->masqueRecherche, $valeurs['nom_retenu.libelle']);
+ return $infos;
+ }
+
+ public function trier() {
+ $nomsRetenus = array();
+ foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs ) { //classement alpha par groupes
+ $nomsRetenus += $this->classerAlphabetiquement('nomSciRetenu', $valeurs);
+ }
+ $this->infosPourTpl['noms'] = $nomsRetenus;
+ $this->infosPourTpl['nomsSansCorrespondance'] =
+ $this->classerAlphabetiquement('nomSciRetenu', $this->infosPourTpl['nomsSansCorrespondance'] );
+ }
+
+ private function ajouterAuxNomsScoreSimilariteAvec($masque) {
+ $nom_demande_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($masque));
+ foreach ($this->infosPourTpl['noms'] as $id => $nom) {
+ $nom_flou_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($nom['nomSciRetenu']));
+ $stat = array();
+ // Prime pour la ressemblance globale :
+ $score = 500 - levenshtein($nom_flou_ss, $nom_demande_ss);
+ // On affine
+ $score = $score + (similar_text($nom_demande_ss, $nom_flou_ss) * 3);
+ $nom['score'] = $score;
+ $this->infosPourTpl['noms'][$id] = $nom;
+ }
+ }
+
+ private function classerAlphabetiquement($champs, $valeurs) {
+ $this->trieur->setTableau($valeurs);
+ $this->trieur->setChampsEtOrdres(array($champs => 'nat'));
+ return $this->trieur->trier();
+ }
+
+ public function surligner() {
+ $this->definirMotsASurligner();
+ foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
+ $this->infosPourTpl['noms'][$idNom]['nomSciRetenuSurligne'] = $this->surlignerMotsMasqueRecherche($nom['nomSciRetenu']);
+ if (isset($this->infosPourTpl['synonymes'][$idNom])) {
+ foreach ($this->infosPourTpl['synonymes'][$idNom] as $idSyn => $synonyme) {
+ $this->infosPourTpl['synonymes'][$idNom][$idSyn]['nomSci'] = $this->surlignerMotsMasqueRecherche($synonyme['nomSci']);
+ }
+ }
+ }
+ }
+
+ private function definirMotsASurligner() {
+ $this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
+ }
+ private function surlignerMotsMasqueRecherche($nom) {
+ $this->surligneur->setTexte($nom);
+ $nom = $this->surligneur->surlignerMots($this->motsASurligner);
+ return $nom;
+ }
+}
+?>
\ No newline at end of file
/v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php
Property changes:
Added: svnkit:entry:sha1-checksum
## -0,0 +1 ##
+b308b575b63824443e3ba51a065e27a97843a2d9
\ No newline at end of property
Index: v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/RetenuFormateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/RetenuFormateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/nom_scientifique/RetenuFormateur.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php (revision 1427)
@@ -0,0 +1,229 @@
+<?php
+class DeterminationVernaFormateur implements Formateur {
+
+ const TPL_VUE = 'determination_verna';
+
+ private $parametres = null;
+ private $surligneur = null;
+ private $trieur = null;
+ private $urls = null;
+ private $fusioneur = null;
+ private $manipulateurDeChaine = null;
+ private $imagesService = null;
+
+ private $motsASurligner = array();
+ private $noms = array();
+ private $infosPourTpl = array();
+
+ private $conteneur = null;
+ private $apiCartes = null;
+
+ public function __construct(ParametresResultats $parametres, Array $resultats,
+ Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
+ ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
+
+ $this->parametres = $parametres;
+ $this->noms = $resultats['resultat'];
+ $this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
+ $this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
+ $this->urls = (is_null($urls)) ? new AppUrls() : $urls;
+ $this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
+ $this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
+
+ $this->conteneur = new Conteneur();
+ $this->apiCartes = $this->conteneur->getApiCartes();
+ }
+
+ public function getTplInfos() {
+ return $this->infosPourTpl;
+ }
+
+ public function getTplNom() {
+ return self::TPL_VUE;
+ }
+
+ public function formater() {
+ $this->obtenirUrlsDessins();
+ $this->obtenirUrlsPhotos();
+ $this->chargerRepartition();
+ $this->extraireInfosNomsPourTplDetermination();
+ $this->infosPourTpl['urlWidget'] = Config::get('base_url_widget_saisie')."?referentiel=".Registre::get('parametres.referentiel');
+ }
+
+ private function obtenirUrlsDessins() {
+ if (Config::get(Registre::get('parametres.referentiel').'.baseDessins') != "") {
+ $this->extraireInfosTaxons();
+ $this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins'));
+ $tax = implode(',', $this->infosPourTpl['taxons']);
+ $this->imagesService->setNnTaxon($tax);
+ $costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
+ if (!empty($costeImg)) {
+ foreach ($costeImg as $infos) {
+ $num_taxon = $infos['num_taxonomique'];
+ $images[$num_taxon][] = $infos['binaire.href'];
+ $this->infosPourTpl['imagesCoste'] = $images;
+ }
+ }
+ }
+ }
+
+ private function extraireInfosTaxons() {
+ foreach ($this->noms as $id => $nom ) {
+ if (array_key_exists('num_taxon', $nom)
+ && array_key_exists('taxon', $nom)) {
+ $this->infosPourTpl['taxons'][$nom['taxon']] = $nom['num_taxon'];
+ }
+ }
+ }
+
+ private function obtenirUrlsPhotos() {
+ if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") {
+ $this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages'));
+ $nns = $this->extraireNnDesNoms();
+ $urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($nns);
+ $this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesUrls($urls);
+ }
+ }
+
+ private function extraireNnDesNoms() {
+ $nns = array();
+ foreach ($this->noms as $id => $nom) {
+ if (array_key_exists('nom_retenu.code', $nom)) {
+ if (in_array($nom['nom_retenu.code'], $nns) == false) {
+ $idAAjouter = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
+ if (is_numeric($idAAjouter)) {
+ $nns[] = $idAAjouter;
+ }
+ }
+ }
+ }
+ return $nns;
+ }
+
+ private function supprimerCodeReferentielDesUrls($urls) {
+ $urlsNettoyees = array();
+ foreach ($urls as $id => $url) {
+ $id = $this->supprimerCodeReferentiel($id);
+ $urlsNettoyees[$id] = $url;
+ }
+ return $urlsNettoyees;
+ }
+
+ private function supprimerCodeReferentiel($chaine) {
+ $codeReferentiel = $this->parametres->referentielCourant.'.';
+ $chaine = str_replace($codeReferentiel, '', $chaine);
+ return $chaine;
+ }
+
+ private function chargerRepartition() {
+ // $numsNomsASynonymes = $this->extraireNumerosNomSynonymes();
+ if (Config::get(Registre::get('parametres.referentiel').'.baseRepartition') == "") {
+ return;
+ }
+
+ $this->apiCartes->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition'));
+ $this->apiCartes->setLargeur('108x101');
+ $urls = array();
+ foreach ($this->noms as $nom) {
+ if (array_key_exists('nom_retenu.code', $nom)) {
+ $id = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
+ $this->apiCartes->setId("nn:" . $id); // . ',' . implode(',', array_keys($numsNomsASynonymes[$id])));
+ if (array_key_exists($id, $urls) == false) {
+ $urls[$id] = $this->apiCartes->getUrlPng();
+ }
+ }
+ }
+ $this->infosPourTpl['repartition']['urls'] = $urls;
+ }
+
+ private function extraireNumerosNomSynonymes() {
+ $numNomsASynonyme = array();
+ foreach ($this->noms as $id => $nom) {
+ $num_nom_retenu = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
+ // faux
+ $numNomsASynonyme[$num_nom_retenu][$id] = TRUE;
+ }
+ return $numNomsASynonyme;
+ }
+
+ private function extraireInfosNomsPourTplDetermination() {
+ $taxons = array();
+ foreach ($this->noms as $idNomCourant => $nom) {
+ $nn = intval($this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']));
+ $nomV = iconv('UTF-8', 'ASCII//TRANSLIT', strtolower($nom['nom_vernaculaire']));
+ if (preg_match('/^'.strtolower($this->parametres->masqueRecherche).'(?: |$)/', $nomV)) {
+ // au moins un debute par la requête
+ if (isset($taxons) && array_key_exists($nn, $taxons[0]) == false) {
+ $taxons[0][$nn] = $this->renvoyerInfosTaxon($nom['taxon'], $nn);
+ }
+ $taxons[0][$nn]['nomVerna'][] = $this->renvoyerInfosNomVerna($nom);
+ } else {
+ // contient
+ if (isset($taxons) && (!isset($taxons[1]) || array_key_exists($nn, $taxons[1]) == false)) {
+ $taxons[1][$nn] = $this->renvoyerInfosTaxon($nom['taxon'], $nn);
+ }
+ $taxons[1][$nn]['nomVerna'][] = $this->renvoyerInfosNomVerna($nom);
+ }
+ }
+ $this->infosPourTpl['noms'] = isset($taxons) ? $taxons : false;
+ }
+
+ private function renvoyerInfosNomVerna($valeurs) {
+ $nom_verna = array();
+ $nom_verna['nn'] = $valeurs['id'];
+ $nom_verna['nom_vernaculaire'] = $valeurs['nom_vernaculaire'];
+ return $nom_verna;
+ }
+
+ private function renvoyerInfosTaxon($nomSci, $nn) {
+ $taxon = array();
+ $taxon['nomSci'] = $nomSci;
+ $taxon['urlFiche'] = $this->urls->obtenirUrlFiche($nn, $this->parametres->typeNom, $this->parametres->masqueRecherche);
+ $this->chargerRepartition($nn);
+ $taxon['repartition_vignette'] = $this->infosPourTpl['repartition']['urls'];
+ return $taxon;
+ }
+
+ private function supprimerCodeReferentielAvecNn($nn) {
+ return str_replace($this->parametres->referentielCourant.'.nn:', '', $nn);
+ }
+
+ //tri alphabétique des noms scientifiques par catégorie (débute par , contient )
+ public function trier() {
+ $verna = array();
+ foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs) {
+ $verna += $this->classerAlphabetiquement('nomSci', $valeurs);
+ }
+ $this->infosPourTpl['noms'] = $verna;
+ }
+
+ private function classerAlphabetiquement($champs, $valeurs) {
+ $this->trieur->setTableau($valeurs);
+ $this->trieur->setChampsEtOrdres(array($champs => 'nat'));
+ return $this->trieur->trier();
+ }
+
+
+
+ public function surligner() {
+ $this->definirMotsASurligner();
+ foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
+ foreach ($nom['nomVerna'] as $idVerna => $nomVerna) {
+ $nom['nomVerna'][$idVerna]['nom_vernaculaire'] = $this->surlignerMotsMasqueRecherche($nomVerna['nom_vernaculaire']);
+ }
+ $this->infosPourTpl['noms'][$idNom] = $nom;
+ }
+ }
+
+ private function definirMotsASurligner() {
+ $this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
+
+ }
+
+ private function surlignerMotsMasqueRecherche($nom) {
+ $this->surligneur->setTexte($nom);
+ $nom = $this->surligneur->surlignerMots($this->motsASurligner);
+ return $nom;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/AlphabVernaFormateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/AlphabVernaFormateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/nom_vernaculaire/AlphabVernaFormateur.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/Formateur.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/Formateur.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/Formateur.php (revision 1427)
@@ -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();
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/formateurs/ResultatFormateurFabrique.php
===================================================================
--- v5.10-vilmorin/modules/resultat/formateurs/ResultatFormateurFabrique.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/formateurs/ResultatFormateurFabrique.php (revision 1427)
@@ -0,0 +1,16 @@
+<?php
+class ResultatFormateurFabrique {
+
+ public static function creer(ParametresResultats $parametres, Array $resultats){
+ $typeResultat = ucwords($parametres->typeResultat);
+ $typeNom = ($parametres->typeNom == 'nom_vernaculaire') ? 'Verna' : '';
+ $Classe = $typeResultat.$typeNom.'Formateur';
+ $ResultatFormateur = null;
+ if (class_exists($Classe)) {
+ return new $Classe($parametres, $resultats);
+ } else {
+ throw new Exception("La classe '$Classe' est introuvable.");
+ }
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/resultat/Resultat.php
===================================================================
--- v5.10-vilmorin/modules/resultat/Resultat.php (revision 0)
+++ v5.10-vilmorin/modules/resultat/Resultat.php (revision 1427)
@@ -0,0 +1,264 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Resultat extends aControleur {
+
+ private $parametres = null;
+ private $resultats = null;
+ private $donneesTpl = array();
+ private $i18n = array();
+
+ private $parametresAvancesGeneriques = array('gen','fam','nn','nt','sp','ssp','type','sto','sti','stc');
+
+ public function initialiser() {
+ spl_autoload_register(array($this, 'chargerClassesResultat'));
+ $this->parametres = new ParametresResultats();
+ $this->capturerParametres();
+ $this->capturerParametresAvances();
+ $this->parametres->referentielCourant = Registre::get('parametres.referentiel');
+ $this->parametres->projetImg = Config::get($this->parametres->referentielCourant.'.baseImages');
+ $this->resultats = Registre::get('resultats');
+ $this->i18n = I18n::get('Recherche-form-avancee');
+ }
+
+ private function chargerClassesResultat($classe) {
+ $base = dirname(__FILE__).DS;
+ $cheminFormateurs = $base.'formateurs'.DS;
+ $cheminFormateursNs = $cheminFormateurs.'nom_scientifique'.DS;
+ $cheminFormateursNv = $cheminFormateurs.'nom_vernaculaire'.DS;
+ $dossiers = array($base, $cheminFormateurs, $cheminFormateursNs, $cheminFormateursNv);
+ foreach ($dossiers as $chemin) {
+ $fichierATester = $chemin.$classe.'.php';
+ if (file_exists($fichierATester)) {
+ include_once $fichierATester;
+ return null;
+ }
+ }
+ }
+
+ private function capturerParametres() {
+ $this->parametres->masqueRecherche = "";
+ if (isset($_GET['resultat'])) {
+ $this->parametres->typeResultat = $_GET['resultat'];
+ }
+ if (isset($_GET['nom'])) {
+ $this->parametres->masqueRecherche = trim($_GET['nom']);
+ }
+ //recherche avancee type
+ if (isset($_GET['fam'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['fam']);
+ }
+ if (isset($_GET['gen'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['gen']);
+ }
+ if (isset($_GET['sp'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['sp']);
+ }
+ if (isset($_GET['ssp'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['ssp']);
+ }
+ if (isset($_GET['and'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['and']);
+ }
+ if (isset($_GET['anf'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['anf']);
+ }
+ if (isset($_GET['au'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['au']);
+ }
+ if (isset($_GET['bib'])) {
+ $this->parametres->masqueRecherche .= trim($_GET['bib']);
+ }
+
+ // Si spécifié, seuls les résultats du niveau spécifié sont affichés.
+ // Passer "*" pour annuler le filtre par rang (le paramètre est mis à "null").
+ // Par défaut, seules les espèces sont affichées (paramètre par défaut).
+ if (isset($_GET['rang'])) {
+ $this->parametres->rang = ($_GET['rang'] == '*' ? null : $_GET['rang']);
+ }
+
+ if (isset($_GET['type_nom'])) {
+ $this->parametres->typeNom = $_GET['type_nom'];
+ }
+
+ if (isset($_GET['niveau'])) {
+ Registre::set('parametres.niveau', $_GET['niveau']);
+ }
+ }
+
+ private function capturerParametresAvances() {
+ $this->capturerParametresAvancesGeneriques();
+ $this->capturerParametresAvancesDependantsLangage();
+ $this->capturerParametresAvancesPresenceSpecifiques();
+ $this->capturerParametresAvancesRang();
+ }
+
+ private function capturerParametresAvancesRang() {
+ // rang à afficher
+ $this->param['rang'] = $this->parametres->rang;
+ if ($this->param['rang'] === null) {
+ $this->param['rang'] = '*';
+ }
+ }
+
+ private function capturerParametresAvancesGeneriques() {
+ foreach($this->parametresAvancesGeneriques as $param) {
+ if (isset($_GET[$param]) && $_GET[$param] != '') {
+ $this->param[$param] = urldecode($_GET[$param]);
+ }
+ }
+ }
+
+ private function capturerParametresAvancesDependantsLangage() {
+ if (isset($_GET['au']) && $_GET['au'] != ''
+ && $_GET['au'] != urlencode($this->i18n['valeur-form-auteur'])) {
+ $this->param['au'] = urldecode($_GET['au']);
+ }
+ if (isset($_GET['bib']) && $_GET['bib'] != ''
+ && $_GET['bib'] != urlencode($this->i18n['valeur-form-bib'])) {
+ $this->param['bib'] = urldecode($_GET['bib']);
+ }
+ if (isset($_GET['and']) && $_GET['and'] != ''
+ && $_GET['and'] != urlencode($this->i18n['valeur-form-date'])) {
+ $this->param['and'] = urldecode($_GET['and']);
+ }
+ if (isset($_GET['anf']) && $_GET['anf'] != ''
+ && $_GET['anf'] != urlencode($this->i18n['valeur-form-date'])) {
+ $this->param['anf'] = urldecode($_GET['anf']);
+ }
+ }
+
+ private function capturerParametresAvancesPresenceSpecifiques() {
+ $champs_presence = $this->obtenirChampsPresence();
+ foreach($champs_presence as $champ) {
+ $param = $champ['param'];
+ if (isset($_GET[$param]) && $_GET[$param] != '') {
+ $this->param[$param] = urldecode($_GET[$param]);
+ }
+ }
+ }
+
+ private function obtenirChampsPresence() {
+ $tableau_champs_presence = array();
+ $referentiel = Registre::get('parametres.referentiel');
+ $champs_presence = Config::get($referentiel.'.champsPresence');
+ $champs_presence_spl = explode('|', $champs_presence);
+ foreach($champs_presence_spl as $champ) {
+ $label_param_champ = explode(':', $champ);
+ if(count($label_param_champ) >= 2) {
+ $tableau_champs_presence[] = array('param' => $label_param_champ[1],
+ 'label' => $label_param_champ[0]);
+ }
+ }
+ return $tableau_champs_presence;
+ }
+
+
+ public function executerActionParDefaut() {
+ $this->executerResultat();
+ }
+
+ public function executerResultat() {
+ $this->chargerOnglets();
+ $this->chargerNbreDeTaxons();
+ $this->chargerNomsFormates();
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $this->donneesTpl));
+ }
+
+ private function chargerOnglets() {
+ $donnees = array();
+ $donnees['typeResultat'] = $this->parametres->typeResultat;
+ $donnees['typeNom'] = $this->parametres->typeNom;
+ $donnees['ongletsNs'] = array('determination', 'retenu', 'decompo');
+ $donnees['ongletsNv'] = array('determination', 'alphab');
+ if (@$_GET['action'] == 'rechercheAvancee') {
+ $donnees['urls']['alphab'] = $this->urls->obtenirUrlResultatAvanceOnglets('alphab', $this->param);
+ $donnees['urls']['retenu'] = $this->urls->obtenirUrlResultatAvanceOnglets('retenu', $this->param);
+ $donnees['urls']['determination'] = $this->urls->obtenirUrlResultatAvanceOnglets('determination',$this->param);
+ $donnees['urls']['decompo'] = $this->urls->obtenirUrlResultatAvanceOnglets('decompo',$this->param);
+ } else {
+ $donnees['urls']['alphab'] = $this->urls->obtenirUrlResultat('alphab', $this->param);
+ $donnees['urls']['retenu'] = $this->urls->obtenirUrlResultat('retenu', $this->param);
+ $donnees['urls']['determination'] = $this->urls->obtenirUrlResultat('determination', $this->param);
+ $donnees['urls']['decompo'] = $this->urls->obtenirUrlResultat('decompo', $this->param);
+ }
+ // Inversion du critère de filtrage de rang : espèces seulement VS tout (pas d'autre choix pour l'instant)
+ //echo "PARAMS: <pre>" . print_r($this->param, true) . "</pre><br/>";
+ $paramsAvecRangInverse = $this->param;
+ if (array_key_exists('rang', $paramsAvecRangInverse)) {
+ if ($paramsAvecRangInverse['rang'] == '*') {
+ $paramsAvecRangInverse['rang'] = 290;
+ } else {
+ unset ($paramsAvecRangInverse['rang']);
+ }
+ }
+ //echo "PARAMS INV: <pre>" . print_r($paramsAvecRangInverse, true) . "</pre><br/>";
+ $this->donneesTpl['urlInverse'] = $this->urls->obtenirUrlResultat($donnees['typeResultat'], $paramsAvecRangInverse);
+ //echo "URL INV: " . $this->donneesTpl['urlInverse'] . "<br/>";
+
+ $donnees['i18n']['nv'] = I18n::get('Resultat-onglets-nv');
+ $donnees['i18n']['ns'] = I18n::get('Resultat-onglets-ns');
+ $this->donneesTpl['ongletsHtml'] = $this->getVue('onglets', $donnees);
+ }
+
+ private function chargerNbreDeTaxons() {
+ $this->donneesTpl['nbreTaxons'] = $this->resultats['entete']['total'];
+ }
+
+ // Filtre selon le rang à afficher (espèce, genre... tout)
+ // et renvoie le nombre de taxons réellement affichés
+ private function filtrer() {
+ $nbTaxAff = 0;
+ if ($this->parametres->rang != null) {
+ foreach ($this->resultats['resultat'] as $c => $v) {
+ $numRang = substr($v['rang.code'], strrpos($v['rang.code'], ':') +1);
+ if ($numRang != $this->parametres->rang) {
+ unset($this->resultats['resultat'][$c]);
+ } else {
+ $nbTaxAff++;
+ }
+ }
+ } else {
+ $nbTaxAff = $this->resultats['entete']['total'];
+ }
+ return $nbTaxAff;
+ }
+
+ private function chargerNomsFormates() {
+ if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt mise en forme des noms");
+
+ // Filtre selon $this->parametres['rang'] pour afficher seulement un rang, ou bien tous
+ // Valable uniquement pour la recherche par nom scientifique
+ //echo "<pre>".print_r($this->parametres, true)."</pre>";
+ if ($this->parametres->typeNom == 'nom_scientifique') {
+ $this->donneesTpl['nombreTaxonsAffiches'] = $this->filtrer();
+ $this->donneesTpl['rang'] = $this->parametres->rang;
+ } else {
+ $this->donneesTpl['nombreTaxonsAffiches'] = $this->donneesTpl['nbreTaxons'];
+ }
+ $this->donneesTpl['typeNom'] = $this->parametres->typeNom;
+
+ $formateur = ResultatFormateurFabrique::creer($this->parametres, $this->resultats);
+ if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt formatage des noms");
+ $formateur->formater();
+ if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt triage des noms");
+ $formateur->trier();
+ if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt surlignage des noms");
+ $formateur->surligner();
+ if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt création de la vue");
+ $this->donneesTpl['nomsHtml'] = $this->getVue($formateur->getTplNom(), $formateur->getTplInfos());
+ if (Config::get('benchmark_chrono')) Chronometre::chrono("Après mise en forme des noms");
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png (revision 1427)
/v5.10-vilmorin/modules/mobile/presentations/icones/zoom.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png (revision 1427)
/v5.10-vilmorin/modules/mobile/presentations/icones/altitude.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/logos/tela.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: v5.10-vilmorin/modules/mobile/presentations/logos/tela.png
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/logos/tela.png (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/logos/tela.png (revision 1427)
/v5.10-vilmorin/modules/mobile/presentations/logos/tela.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/jpeg
Index: v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg (revision 1427)
/v5.10-vilmorin/modules/mobile/presentations/logos/logo-msjs.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+image/jpeg
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png (revision 1427)
/v5.10-vilmorin/modules/mobile/presentations/logos/tela_transparent.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/jpeg
Index: v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg (revision 1427)
/v5.10-vilmorin/modules/mobile/presentations/logos/logo-fondation-nd.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+image/jpeg
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_tela.less
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_tela.less (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_tela.less (revision 1427)
@@ -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;
+}
\ No newline at end of file
/v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_tela.less
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/less/gentiana.less
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/gentiana.less (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/gentiana.less (revision 1427)
@@ -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;
+}
+
+
Index: v5.10-vilmorin/modules/mobile/presentations/less/README
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/README (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/README (revision 1427)
@@ -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
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/presentations/less/functions.less
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/functions.less (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/functions.less (revision 1427)
@@ -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;
+}
/v5.10-vilmorin/modules/mobile/presentations/less/functions.less
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_blanc.less
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_blanc.less (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_blanc.less (revision 1427)
@@ -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;
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/presentations/less/pyracantha.less
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/pyracantha.less (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/pyracantha.less (revision 1427)
@@ -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;
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_vert.less
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_vert.less (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/less/pyracantha_vert.less (revision 1427)
@@ -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;
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/presentations/css/smartflore.css
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/css/smartflore.css (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/css/smartflore.css (revision 1427)
@@ -0,0 +1,226 @@
+#smartflore-fiche #smartflore-entete h1 {
+ font-size: 3.5em;
+ margin-top: 10px;
+ margin-bottom: -10px;
+}
+
+#smartflore-fiche .smartflore-titre-section {
+ background-color: #928B71;
+ color: #FFFFFF;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ margin-bottom: 20px;
+}
+
+#smartflore-fiche .smartflore-titre-section a {
+ font-size: 2em;
+ font-weight: bold;
+}
+
+#smartflore-fiche .smartflore-titre-section .panel-title {
+ text-align: center;
+}
+
+#smartflore-fiche .smartflore-titre-section-icone {
+ float: left;
+}
+
+#smartflore-fiche .smartflore-contenu-section {
+ margin: 20px;
+ font-size: 1.5em;
+ text-align: justify;
+}
+
+#smartflore-fiche #smartflore-entete {
+ text-align: center;
+}
+
+#smartflore-fiche .smart-flore-sf {
+ font-size: 2em;
+ color: #DE6E40;
+}
+
+#smartflore-fiche #smart-flore-logo-tela {
+ bottom: 15px;
+ height: 80px;
+ position: relative;
+}
+
+#smartflore-fiche #smartflore-footer .smartflore-footer-bouton {
+ text-align: center;
+}
+
+#smartflore-fiche #smartflore-footer .smartflore-footer-bouton .btn {
+ font-size: 2em;
+ background-color: #928B71;
+ color: #FFFFFF;
+}
+
+#smartflore-fiche #smartflore-noms h2 {
+ margin-top: 0px;
+ font-size: 1.5em;
+}
+
+#smartflore-illustrations {
+ background-color: #928B71;
+ padding-bottom: 10px;
+ padding-top: 10px;
+ margin-bottom: 20px;
+}
+
+#smartflore-illustrations .carousel-inner {
+ height: 40vh;
+ max-width: 100%;
+}
+
+#smartflore-illustrations .carousel-inner .item {
+ height: 100%;
+}
+
+#smartflore-illustrations .carousel-inner .item img {
+ height: 100%;
+ max-width: 100vw;
+}
+
+#smartflore-illustrations .carousel-control.right {
+ background-image : none;
+}
+
+#smartflore-illustrations .carousel-control.left {
+ background-image : none;
+}
+
+#smartflore-fiche #smartflore-noms h3, #smartflore-fiche #smartflore-noms h4 {
+ font-size: 1.1em;
+}
+
+#smartflore-fiche #smartflore-noms {
+ font-size: 2em;
+ color: #FFFFFF;
+ text-align: center;
+}
+
+#smartflore-fiche .smartflore-nom-verna {
+ margin-bottom: 0px;
+}
+
+#smartflore-fiche .smartflore-nom-sci, #smartflore-fiche .smartflore-famille {
+ margin-top: 5px;
+ display: inline-block;
+}
+
+#smartflore-fiche .smartflore-nom-sci {
+ font-style: italic;
+}
+
+#smartflore-footer #smartflore-sources {
+ display: none;
+}
+
+#smartflore-partenaires {
+ padding-left: 0px;
+ padding-right: 0px;
+ margin-top: 15px;
+}
+
+#smartflore-footer #smartflore-partenaires #smartflore-accordeon-partenaires {
+ background-color: #EEEEEE;
+ color: black;
+ font-size: 2em;
+ margin-bottom: 0;
+ text-align: center;
+ color: #666666;
+}
+
+#smartflore-footer #collapse-partenaires {
+ padding-bottom: 5px;
+ font-size: 0.8em;
+}
+
+#smartflore-footer #smartflore-partenaires #smartflore-accordeon-partenaires h4 {
+ font-size: 0.8em;
+}
+
+#smartflore-footer .smartflore-footer-partenaires-logo {
+ max-height: 30vh;
+ max-width: 40vw;
+}
+
+/**
+ *
+ * Media Queries
+ *
+*/
+@media screen and (max-width: 384px) {
+ #smartflore-fiche #smartflore-entete h1 {
+ font-size: 2.2em;
+ }
+
+ #smartflore-fiche .smartflore-contenu-section {
+ margin: 20px;
+ font-size: 1em;
+ }
+
+ #smartflore-fiche #smartflore-noms h2 {
+ font-size: 1.2em;
+ }
+
+ #smartflore-fiche #smartflore-noms h3, #smartflore-fiche #smartflore-noms h4 {
+ font-size: 0.6em;
+ }
+
+ #smartflore-fiche #smartflore-footer .smartflore-footer-bouton .btn, #smartflore-footer .smartflore-titre-partenaires {
+ font-size: 0.9em;
+ }
+
+ #smartflore-fiche .smartflore-titre-section a {
+ font-size: 1.5em;
+ }
+
+ #smartflore-illustrations-galerie-carousel .carousel-caption {
+ font-size: 0.83em;
+ bottom: 0px;
+ }
+
+ #smartflore-illustrations-galerie-carousel .carousel-indicators {
+ bottom: -10px;
+ }
+}
+
+@media all and (orientation:portrait) {
+ #smartflore-illustrations .carousel-inner {
+ height: 40vh;
+ }
+
+ #smartflore-fiche #smart-flore-logo-tela {
+ bottom: 13px;
+ height: 7vh;
+ position: relative;
+ min-height: 50px;
+ }
+
+ #smartflore-fiche #smartflore-entete h1 {
+ margin-top: -3px;
+ margin-bottom: -6px;
+ }
+}
+
+@media all and (orientation:landscape) {
+ #smartflore-illustrations .carousel-inner {
+ height: 90vh;
+ }
+
+ #smartflore-fiche #smartflore-entete h1 {
+ margin-top: -10px;
+ margin-bottom: -10px;
+ }
+
+ #smartflore-illustrations-galerie-carousel .carousel-caption {
+ font-size: 0.9em;
+ bottom: 2px;
+ }
+
+ #smartflore-illustrations-galerie-carousel .carousel-indicators {
+ bottom: -10px;
+ }
+}
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/presentations/js/mobile.js
===================================================================
--- v5.10-vilmorin/modules/mobile/presentations/js/mobile.js (revision 0)
+++ v5.10-vilmorin/modules/mobile/presentations/js/mobile.js (revision 1427)
@@ -0,0 +1,36 @@
+$(document).ready(function() {
+ // Activation du carousel d'images
+ $('#smartflore-illustrations-galerie-carousel').carousel();
+
+ // Pour que les sources s'affichent dans une nouvelle fenêtre
+ $('#smartflore-footer-button-sources').click(function() {
+ voirSources();
+ });
+
+ // Pas sur que window.innerWidth puisse jamais être indéfini mais on ne sait jamais
+ if(!!window.innerWidth) {
+ var largeurFenetre = window.innerWidth;
+ // Tablettes / écran moyens, On met du L
+ if(largeurFenetre > 500 && largeurFenetre < 1000) {
+ adapterTailleImages('L');
+ } else {
+ // Plus de 1000 px, XL est bien plus agréable
+ if(largeurFenetre >= 1000) {
+ adapterTailleImages('XL');
+ }
+ }
+ }
+
+ function voirSources() {
+ var w = window.open();
+ var html = $("#smartflore-sources").html();
+ $(w.document.body).html(html);
+ }
+
+ function adapterTailleImages(taille) {
+ $('#smartflore-illustrations-galerie-carousel img').each(function(index) {
+ var src = $(this).attr('src');
+ $(this).attr('src', src.replace('S', taille));
+ });
+ }
+});
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/squelettes/smartflore.tpl.html
===================================================================
--- v5.10-vilmorin/modules/mobile/squelettes/smartflore.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/mobile/squelettes/smartflore.tpl.html (revision 1427)
@@ -0,0 +1,186 @@
+<?php
+ $icones = array('glyphicon-eye-open', 'glyphicon-grain', 'glyphicon-home');
+ $index_icones = 0;
+?>
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Smart'Flore</title>
+
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
+ <meta http-equiv="content-style-type" content="text/css" />
+ <meta http-equiv="content-script-type" content="text/javascript" />
+ <meta http-equiv="content-language" content="fr" />
+ <meta http-equiv="cache-control" content="no-cache">
+
+ <!-- Favicones -->
+ <link rel="shortcut icon" type="image/x-icon" href="http://resources.tela-botanica.org/tb/img/16x16/favicon.ico" />
+
+ <!-- Viewport -->
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
+
+ <!-- CSS -->
+ <link href="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/photoswipe.css" type="text/css" rel="stylesheet" />
+ <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
+ <link href="<?= $css ?>" rel="stylesheet" type="text/css" id="custom-css" />
+ <link href="modules/mobile/presentations/css/smartflore.css" rel="stylesheet" type="text/css" id="smart-flore-css" />
+
+ <!-- Javascript -->
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
+ <script src="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/klass.min.js"></script>
+ <script src="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/code.photoswipe.jquery-3.0.5.min.js"></script>
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
+ <script src="modules/mobile/presentations/js/mobile.js"></script>
+
+ <style>
+ .btn {border-radius:2em;}
+ .container-fluid {padding: 0px;}
+ [class*="span"] {margin-left: 0px;}
+ .accordion {margin-top: 1em;}
+ .accordion-heading .accordion-toggle {padding: 0pt 10px;}
+ </style>
+ </head>
+
+ <body>
+ <div id="smartflore-fiche">
+ <div id="smartflore-entete">
+ <h1>
+ <img id="smart-flore-logo-tela" src="http://resources.tela-botanica.org/tb/img/128x128/logo_carre_officiel.png" /> <span class="smart-flore-sf">S</span>mart'<span class="smart-flore-sf">F</span>lore
+ </h1>
+ </div>
+
+ <div id="smartflore-illustrations">
+ <div id="smartflore-noms">
+ <h2 class="smartflore-nom-verna">
+ <?= $texte['titre'][0]; ?>
+ </h2>
+ <h3 class="smartflore-nom-sci">
+ <?= $texte['titre'][1]; ?>
+ </h3>
+ <h4 class="smartflore-famille">
+ Famille des <?= $texte['titre'][2]; ?>
+ </h4>
+ </div>
+
+ <div id="smartflore-illustrations-galerie">
+ <? if (count($illustrations) != 0) : ?>
+ <div id="smartflore-illustrations-galerie-carousel" class="carousel slide" data-ride="carousel" data-interval="false">
+ <!-- Indicators -->
+ <ol class="carousel-indicators">
+ <? for($ill = 0; $ill < count($illustrations); $ill++) { ?>
+ <li data-target="#smartflore-illustrations-galerie-carousel" data-slide-to="<?= $ill; ?>" class="<?= ($ill == 0) ? 'active' : ''; ?>"></li>
+ <?php } ?>
+ </ol>
+
+ <!-- Wrapper for slides -->
+ <div class="carousel-inner" role="listbox">
+ <? for($ill = 0; $ill < count($illustrations); $ill++) { ?>
+ <div class="item <?= ($ill == 0) ? 'active' : ''; ?>">
+ <? if (trim($illustrations[$ill]['legende']['texte']) != '&nbsp;') : ?>
+ <? $alt = $illustrations[$ill]['legende']['titre'].' ('.$illustrations[$ill]['legende']['texte'].')'; ?>
+ <? else : ?>
+ <? $alt = $illustrations[$ill]['legende']['titre']; ?>
+ <? endif; ?>
+ <img class="img-responsive center-block" src="<?= $illustrations[$ill]['src']; ?>" alt="<?= $alt; ?>">
+ <div class="carousel-caption">
+ <?= $alt; ?>
+ </div>
+ </div>
+ <?php } ?>
+ </div>
+
+ <!-- Controls -->
+ <a class="left carousel-control" href="#smartflore-illustrations-galerie-carousel" role="button" data-slide="prev">
+ <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="right carousel-control" href="#smartflore-illustrations-galerie-carousel" role="button" data-slide="next">
+ <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+ </div>
+ <? endif; ?>
+ </div>
+ </div>
+
+ <div id="smartflore-sections">
+ <div class="panel-group" id="smartflore-accordeon-sections" role="tablist" aria-multiselectable="true">
+ <div>
+ <? foreach($texte['corps'] as $titre_section => $texte_section) : ?>
+ <div class="panel-heading smartflore-titre-section" role="tab" id="heading<?= md5($titre_section); ?>">
+ <h4 class="panel-title">
+ <a data-toggle="collapse" data-parent="#smartflore-accordeon-sections" href="#collapse<?= md5($titre_section); ?>" aria-expanded="true" aria-controls="collapse<?= md5($titre_section); ?>">
+ <span class="glyphicon <?= $icones[$index_icones++]; ?> smartflore-titre-section-icone margin-left-1em margin-top-03em"></span>
+ <?= $titre_section; ?>
+ </a>
+ </h4>
+ </div>
+ <div id="collapse<?= md5($titre_section); ?>" class="panel-collapse collapse smartflore-contenu-section" role="tabpanel" aria-labelledby="heading<?= md5($titre_section); ?>">
+ <div class="panel-body">
+ <?= $texte_section; ?>
+ </div>
+ </div>
+ <? endforeach; ?>
+ </div>
+ </div>
+ </div>
+
+ <div id="smartflore-footer">
+ <div class="col-md-12">
+ <div class="col-md-4 col-xs-4 smartflore-footer-bouton">
+ <a href="<?= $lien_fiche; ?>" target="_blank">
+ <button type="button" class="btn btn-default" aria-label="Left Align">
+ En savoir plus
+ </button>
+ </a>
+ </div>
+
+ <div class="col-md-4 col-xs-4 smartflore-footer-bouton">
+ <button id="smartflore-footer-button-sources" type="button" class="btn btn-default" aria-label="Left Align">
+ Sources
+ </button>
+
+ <div id="smartflore-sources">
+ <?= $texte['sources']; ?>
+ </div>
+ </div>
+
+ <div class="col-md-4 col-xs-4 smartflore-footer-bouton">
+ <a href="<?= $lien_edition; ?>" target="_blank">
+ <button type="button" class="btn btn-default" aria-label="Left Align">
+ Modifier
+ </button>
+ </a>
+ </div>
+ </div>
+
+ <div class="clearfix"></div>
+
+ <div class="col-md-12" id="smartflore-partenaires">
+ <div class="panel-group" id="smartflore-accordeon-partenaires" role="tablist" aria-multiselectable="true">
+ <div class="panel-heading smartflore-titre-partenaires" role="tab" id="heading-partenaires">
+ <h4 class="panel-title">
+ <a data-toggle="collapse" data-parent="#smartflore-accordeon-partenaires" href="#collapse-partenaires" aria-expanded="true" aria-controls="collapse-partenaires">
+ <span class="glyphicon glyphicon-linkglyphicon glyphicon-link smartflore-titre-partenaires-icone margin-left-1em margin-top-03em"></span>
+ Partenaires
+ </a>
+ </h4>
+ </div>
+ <div id="collapse-partenaires" class="panel-collapse collapse smartflore-contenu-partenaires" role="tabpanel" aria-labelledby="heading-partenaires">
+ <div class="panel-body">
+ <div class="col-md-6 col-xs-6">
+ <img class="smartflore-footer-partenaires-logo" src="<?= $url_logos; ?>logo-msjs.jpg" />
+ </div>
+ <div class="col-md-6 col-xs-6">
+ <img class="smartflore-footer-partenaires-logo" src="<?= $url_logos; ?>logo-fondation-nd.jpg" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/sources/Repartition.php
===================================================================
--- v5.10-vilmorin/modules/mobile/sources/Repartition.php (revision 0)
+++ v5.10-vilmorin/modules/mobile/sources/Repartition.php (revision 1427)
@@ -0,0 +1,47 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Repartition extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $donnees = array();
+ private $referentiel = 'bdtfx';
+ private $cartes;
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->cartes = $this->conteneur->getApiCartes();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ }
+
+ public function getDonnees() {
+ $donnees['carte'] = $this->getChorodepMiniature();
+ return $donnees;
+ }
+
+ private function getChorodepMiniature() {
+ $url_carte = null;
+ if (Config::get($this->referentiel.'.baseRepartition') != null) {
+ $this->cartes->setProjet(Config::get($this->referentiel.'.baseRepartition'));
+ $this->cartes->setLargeur('570x534');
+ $nt = $this->nomCourant->getNt();
+ $this->cartes->setId("{$this->referentiel}.nt:$nt");
+ $url_carte = $this->cartes->getUrlDataSvg();
+ }
+ return $url_carte;
+ }
+}
+?>
\ No newline at end of file
/v5.10-vilmorin/modules/mobile/sources/Repartition.php
Property changes:
Added: svnkit:entry:sha1-checksum
## -0,0 +1 ##
+7e6935a1dae5a65376b5236b5be79756881600b7
\ No newline at end of property
Index: v5.10-vilmorin/modules/mobile/sources/Texte.php
===================================================================
--- v5.10-vilmorin/modules/mobile/sources/Texte.php (revision 0)
+++ v5.10-vilmorin/modules/mobile/sources/Texte.php (revision 1427)
@@ -0,0 +1,129 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe Mobile Wikini.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @author Isabelle NEMBROT <isabelle.nembrot@tela-botanica.org>
+ * @copyright 2013 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Texte extends aControleur {
+
+ private $conteneur = null;
+ private $donnees = array();
+ private $format = "text/html";
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+
+ parent::__construct();
+ }
+
+ public function getDonnees() {
+ $url_wiki = $this->obtenirUrlWikini();
+ $obj = json_decode(file_get_contents($url_wiki));
+
+ //echo '<pre>'.print_r($obj, true).'</pre>';exit;
+
+ $this->donnees['corps'] = $obj->{'texte'};
+ if (strpos($this->format, "html") != false) {
+ $this->obtenirCorpsHtml();
+ } else {
+ $this->obtenirCorpsPlain();
+ }
+
+ if ($this->donnees['corps'] != "") {
+ $this->donnees['corps'] = preg_split('/===/', $this->donnees['corps'], -1, PREG_SPLIT_NO_EMPTY);
+
+ $this->extraireInfosTableauCorps();
+
+ if (strpos($this->format, "html") != false) {
+ $this->obtenirTitreHtml();
+ } else {
+ $this->obtenirTitrePlain();
+ }
+ }
+
+ return $this->donnees;
+ }
+
+ private function extraireInfosTableauCorps() {
+
+ $this->donnees['titre'] = array_shift($this->donnees['corps']);
+ $this->donnees['sources'] = array_pop($this->donnees['corps']);
+ // array_pop "gratuit" pour supprimer la case qui ne contient que le terme "sources"
+ array_pop($this->donnees['corps']);
+
+ $corps_fmt = array();
+ // Le tableau contient un titre de section puis son contenu, puis le titre de la section suivante
+ // puis son contenu on dépile les éléments deux par deux pour faire un tableau associatif pas trop relou à afficher
+ for($i = 0; $i < count($this->donnees['corps']); $i = $i+2) {
+ $corps_fmt[$this->donnees['corps'][$i]] = $this->donnees['corps'][$i + 1];
+ }
+
+ $this->donnees['corps'] = $corps_fmt;
+ }
+
+
+ //formater pour AppUrls ?
+ public function obtenirUrlWikini() {
+ $titre = urlencode("Fiche simplifiée Smart'flore");
+ $base_url_wiki = Config::get('smartFloreWikiTpl');
+ $url_wiki = $base_url_wiki
+ .strtoupper($this->conteneur->getParametre('referentiel'))."nt".$this->nomCourant->getNomSelectionne()->get('num_taxonomique')
+ ."?txt.format=".$this->format."&txt.section.titre=".$titre;
+
+ return ($url_wiki);
+ }
+
+ private function obtenirCorpsHtml() {
+ $a_remplacer = array('<h3>', '</h3>');
+ $this->donnees['corps'] = str_replace($a_remplacer, "===", $this->donnees['corps']);
+ }
+
+ private function obtenirCorpsPlain() {
+ $a_enlever = array(Chr(10).'=', '='.Chr(10), Chr(10).''.Chr(10));
+ $this->donnees['corps'] = str_replace($a_enlever, '', $this->donnees['corps']);
+ $this->donnees['corps'] = str_replace(Chr(10), '<br />', $this->donnees['corps']);
+ }
+
+ private function obtenirTitreHtml() {
+ $a_remplacer = array('<b>', '</b>', '(<br />', '<br />)');
+ $this->donnees['titre'] = str_replace($a_remplacer, '<br />', $this->donnees['titre']);
+
+ $a_enlever = array(Chr(10).'<br />', '<br />'.Chr(10), Chr(10).''.Chr(10), '<br />'.Chr(10).'<br />'.Chr(10));
+ $this->donnees['titre'] = str_replace($a_enlever, '', $this->donnees['titre']);
+
+ $this->separer_NomCommun_NomSci();
+ }
+
+ private function separer_NomCommun_NomSci() {
+ $this->donnees['titre'] = str_replace('<br />', '::', $this->donnees['titre']);
+ $this->donnees['titre'] = preg_split("/::/", $this->donnees['titre'], -1, PREG_SPLIT_NO_EMPTY);
+ $this->donnees['nom-commun'] = $this->donnees['titre'][0]; // sauf erreur ? parser le wikini serait peut-être plus adapté
+ }
+
+ private function obtenirTitrePlain() {
+ $this->donnees['titre'] = str_replace('**', '<br />', $this->donnees['titre']);
+
+ $a_remplacer = array('(<br />', '<br />)', '<br /><br />');
+ $this->donnees['titre'] = str_replace($a_remplacer, '<br />', $this->donnees['titre']);
+
+ $this->separer_NomCommun_NomSci();
+ $this->separer_NomSci_NomAuteur();
+ }
+
+ private function separer_NomSci_NomAuteur() {
+ $nom_sci = str_replace('//', '::', $this->donnees['titre'][1]);
+ $nom_sci = preg_split("/::/", $nom_sci, -1, PREG_SPLIT_NO_EMPTY);
+ $this->donnees['titre'][1] = "<i>".$nom_sci[0]."</i> ".$nom_sci[1];
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/sources/Floraison.php
===================================================================
--- v5.10-vilmorin/modules/mobile/sources/Floraison.php (revision 0)
+++ v5.10-vilmorin/modules/mobile/sources/Floraison.php (revision 1427)
@@ -0,0 +1,198 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Floraison extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $textes = null;
+ private $meta = null;
+ private $wikini = null;
+ private $informations = null;
+ private $mois = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août',
+ 'septembre', 'octobre', 'novembre', 'décembre');
+ private $CosteFormate;
+ private $CosteTexte;
+
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->textes = $this->conteneur->getApiTextes();
+ $this->wikini = $this->conteneur->getApiWikini();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+ $this->informations = $this->conteneur->getApiInformations();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ }
+
+ public function getDonnees() {
+ if ($this->referentiel == 'bdtfx') {
+ $this->getCoste();
+ }
+ if (isset($this->CosteFormate['floraison'])) {
+ $this->donnees['floraison'] = $this->getIndiceMois($this->CosteFormate['floraison']);
+ } else {
+ $this->getFloraisonBaseflor();
+ }
+ if (isset($this->CosteFormate['fructification'])) {
+ $this->donnees['fructification'] = $this->getIndiceMois($this->CosteFormate['fructification']);
+ } else {
+ $this->donnees['fructification'] = -1;
+ }
+
+ return $this->donnees;
+ }
+
+ private function getCoste() {
+ $coste = array();
+ $this->textes->setProjet('coste');
+ $this->textes->setId('bdtfx.nn:'.$this->nomCourant->getNnr());
+ $texte = $this->textes->getTexte();
+ $texte = array_pop($texte['resultats']);
+ if ($texte) {
+ $coste['titre'] = $texte['titre'];
+ // TODO: réintroduire les modif' effectuées sur modules/fiche/formateurs/Description.php
+ // -les joies du code copié/collé-
+ $coste['description'] = $this->mettreEnFormeCoste($texte['texte']);
+ }
+
+ $this->donnees['coste'] = $coste;
+ }
+
+ private function getIndiceMois($elt) {
+ $mois = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août',
+ 'septembre', 'octobre', 'novembre', 'décembre');
+ $indice_mois = -1;
+ $elt = $this->nettoyerTexte($elt);
+ $arr = preg_split('/-/', $elt, -1, PREG_SPLIT_NO_EMPTY);
+ if (isset($arr[1])) {
+ $mois1 = $this->getIndiceMois($arr[0]);
+ $mois2 = $this->getIndiceMois($arr[1]);
+ $indice_mois = $mois1.'-'.$mois2;
+ } else {
+ for ($i = 0; $i < count($mois); $i++) {
+ if ($elt == $mois[$i]) {
+ $indice_mois = $i;
+ }
+ }
+ }
+
+ return $indice_mois;
+ }
+
+ private function nettoyerTexte($texte) {
+ $texte = trim($texte);
+
+ $a_effacer = array('.', ' ', 'de');
+ $texte = str_replace($a_effacer, '', $texte);
+
+ $texte = strtolower($texte);
+ return $texte;
+ }
+
+ private function getFloraisonBaseflor() {
+ $baseflor = array();
+ $this->informations->setProjet('baseflor');
+ $this->informations->setBdnt($this->conteneur->getParametre('referentiel'));
+ $this->informations->setNum_nom($this->conteneur->getParametre('num_nom'));
+ $informations = $this->informations->getInformationsDescription();
+
+ if ($informations){
+ $baseflor['chorologie'] = isset($informations['chorologie']) ? $informations['chorologie'] : '';
+ $baseflor['inflorescence'] = isset($informations['inflorescence']) ? $informations['inflorescence'] : '';
+ $baseflor['sexualite'] = isset($informations['sexualite']) ? $informations['sexualite'] : '';
+ $baseflor['ordre_maturation'] = isset($informations['ordre_maturation']) ? $informations['ordre_maturation'] : '';
+ $baseflor['pollinisation'] = isset($informations['pollinisation']) ? $informations['pollinisation'] : '';
+ $baseflor['dissemination'] = isset($informations['dissemination']) ? $informations['dissemination'] : '';
+ $baseflor['fruit'] = isset($informations['fruit']) ? $informations['fruit'] : '';
+ $baseflor['couleur_fleur'] = isset($informations['couleur_fleur']) ? $informations['couleur_fleur'] : '';
+ $baseflor['macule'] = isset($informations['macule']) ? $informations['macule'] : '';
+ $baseflor['type_bio'] = isset($informations['type_bio']) ? $informations['type_bio'] : '';
+ $baseflor['form_vegetale'] = isset($informations['form_vegetale']) ? $informations['form_vegetale'] : '';
+ $baseflor['floraison'] = isset($informations['floraison']) ? $informations['floraison'] : '';
+ }
+ $this->donnees['baseflor'] = $baseflor;
+ $this->donnees['floraison'] = $baseflor['floraison'];
+ }
+
+
+ public function mettreEnFormeCoste($texte){
+ $this->CosteFormate = array();
+ $this->CosteTexte = $texte;
+ //decouper elements remarquables avant le texte
+ $this->separerNomScientifique_a_NomCommun();
+ $this->CosteTexte = preg_replace('/\//','',$this->CosteTexte);
+ //decouper elements remarquables après le texte
+ $this->separerEcologie_a_Usages();
+ //le morceau qui reste est le gros de la description
+ $this->CosteTexte = str_replace(';','<br /> -','- '.$this->CosteTexte);
+ $this->CosteTexte = str_replace('–','',$this->CosteTexte);
+ $this->CosteFormate['texte'] = htmlspecialchars_decode(htmlentities($this->CosteTexte, ENT_NOQUOTES, 'UTF-8'), ENT_NOQUOTES);
+ return $this->CosteFormate;
+ }
+
+ public function separerNomScientifique_a_NomCommun(){
+ if ( preg_match('/\*\*(.+)\*\*([^–]*)–/', $this->CosteTexte, $retour)){
+ /* !! attention on enlève un tiret cadratin – pas un trait d'union - !! */
+ $a_enlever = array('/–/','/\./' );
+ $this->CosteFormate['nom_scientifique'] = preg_replace($a_enlever,'',$retour[1]);
+ if(preg_match('/\((.+)\)/',$retour[2],$synonymes)){
+ $this->CosteFormate['synonymes'] = $synonymes[1];
+ } else {
+ $this->CosteFormate['nom_scientifique'] .= $retour[2];
+ }
+ $this->CosteTexte = str_replace($retour[0],'',$this->CosteTexte);
+ }
+ /* !! attention il y a un espace avant les // du début !! */
+ if ( preg_match('/^ \/\/([^\/\/]+)\/\//', $this->CosteTexte, $retour)){
+ $a_enlever = array('/–/','/\./' );
+ $this->CosteFormate['nom_commun'] = preg_replace($a_enlever,'',$retour[1]);
+ $this->CosteTexte = str_replace($retour[0],'',$this->CosteTexte);
+ }
+ }
+
+ public function separerEcologie_a_Usages(){
+ if ( preg_match('/\.[ ]*([A-ZÉÀÈ].+)$/',$this->CosteTexte, $retour)){
+ $this->CosteFormate['ecologie'] = $retour[1];
+ $this->CosteTexte = str_replace($retour[0],'.',$this->CosteTexte);
+ if (isset($this->CosteFormate['ecologie']) && preg_match('/–(.+)/', $this->CosteFormate['ecologie'] , $retour)){
+ $this->CosteFormate['repartition'] = $retour[1];
+ $this->CosteFormate['ecologie'] = str_replace($retour[0],'',$this->CosteFormate['ecologie']);
+ }
+ if (isset($this->CosteFormate['repartition']) && preg_match('/=(.+)$/', $this->CosteFormate['repartition'], $retour)){
+ $this->CosteFormate['floraison'] = $retour[1];
+ $this->CosteFormate['repartition'] = str_replace($retour[0],'',$this->CosteFormate['repartition']);
+ }
+ if (isset($this->CosteFormate['floraison']) && preg_match('/–(.+)$|\n(.+)$/',$this->CosteFormate['floraison'], $retour)){
+ $this->CosteFormate['usages'] = isset($retour[1]) ? $retour[1] : $retour[2];
+ $this->CosteFormate['floraison'] = str_replace($retour[0],'.',$this->CosteFormate['floraison']);
+ }
+ if (isset($this->CosteFormate['floraison']) && preg_match('/([Ff]l\.) (.+)/',$this->CosteFormate['floraison'], $retour)){
+ $this->CosteFormate['floraison'] = $retour[2];
+ $this->CosteFormate['floraison'] = str_replace($retour[1],'',$this->CosteFormate['floraison']);
+ }
+ if (isset($this->CosteFormate['floraison']) && preg_match('/([Ff]r\.) (.+)/',$this->CosteFormate['floraison'], $retour)){
+ $this->CosteFormate['fructification'] = $retour[2];
+ $this->CosteFormate['floraison'] = str_replace($retour[0],'',$this->CosteFormate['floraison']);
+ $this->CosteFormate['floraison'] = str_replace(',','',$this->CosteFormate['floraison']);
+ $this->CosteFormate['fructification'] = str_replace($retour[1],'',$this->CosteFormate['fructification']);
+ $this->CosteFormate['fructification'] = str_replace('.','',$this->CosteFormate['fructification']);
+ }
+ }
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/sources/Illustrations.php
===================================================================
--- v5.10-vilmorin/modules/mobile/sources/Illustrations.php (revision 0)
+++ v5.10-vilmorin/modules/mobile/sources/Illustrations.php (revision 1427)
@@ -0,0 +1,115 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Liste.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
+ * @author Delphine CAUQUIL <delphine@tela-botanica.org>
+ * @copyright 2011 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Illustrations extends aControleur {
+
+ private $conteneur = null;
+ private $nomCourant = null;
+ private $images = null;
+ private $appUrls = null;
+ private $meta = null;
+ private $referentiel = 'bdtfx';
+ private $donnees = array();
+
+ public function __construct(Conteneur $conteneur) {
+ $this->conteneur = $conteneur;
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->referentiel = $this->conteneur->getParametre('referentiel');
+ $this->images = $this->conteneur->getApiImages();
+ $this->appUrls = $this->conteneur->getAppUrls();
+ $this->meta = $this->conteneur->getApiMetaDonnees();
+
+ $this->images->setApi(Images::API_DEL);
+ }
+
+ public function getDonnees() {
+ $this->donnees = array();
+ $this->getPhotos();
+ $dessin = $this->addDessin();
+ if (!empty($dessin)) {
+ array_push($this->donnees, $dessin);
+ }
+
+ return $this->donnees;
+ }
+
+ public function getPhotos() {
+ $listePhotos = $this->images->getInfosImagesGalerieMobile($this->nomCourant->getNnr());
+ foreach($listePhotos as $index) {
+ $this->formaterListePhotos($index);
+ }
+ }
+
+ private function formaterListePhotos($images) {
+ $infosImg['src'] = $images['binaire.href'];
+
+ $obs = $images['observation'];
+ if ($obs['auteur.nom'] != '') {
+ $infosImg['legende']['titre'] = $obs['auteur.nom'];
+ if ($obs['auteur.prenom'] != '') {
+ $infosImg['legende']['titre'] .= ' '.$obs['auteur.prenom'];
+ }
+ } else {
+ $infosImg['legende']['titre'] = "Anonyme";
+ }
+
+ if ($obs['date_observation'] != '') {
+ $infosImg['legende']['titre'] .= ", le ".$this->formaterDateImg($obs['date_observation']);
+ }
+
+ if ($obs['zone_geo'] != '') {
+ $infosImg['legende']['texte'] = $obs['zone_geo'];
+ if ($obs['lieudit'] != '') {
+ $infosImg['legende']['texte'] .= ' ('.$obs['lieudit'].')';
+ }
+ } else {
+ $infosImg['legende']['texte'] = "&nbsp;";
+ }
+
+ array_push($this->donnees, $infosImg);
+ }
+
+ private function formaterDateImg($date) {
+ $dateFmt = $date;
+ if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
+ $dateFmt = 'inconnue';
+ } else {
+ $dateFmt = strftime('%e %B %Y', strtotime($date));
+ }
+ return $dateFmt;
+ }
+
+ public function addDessin() {
+ $img = array();
+ $projet = Config::get($this->referentiel.'.baseDessins');
+ if ($projet != "") {
+ $dessin = array();
+ $tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
+ $this->images->setProjet($projet);
+ $this->images->setNnTaxon($tax);
+ if ($this->referentiel == 'bdtfx') {
+ $costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
+ $this->images->setApi(Eflore::API_DEL);
+ if (count($costeImg) != 0) {
+ $img['src'] = $costeImg[key($costeImg)]['binaire.href'];
+ $img['legende']['titre'] = "Illustration de Coste";
+ $img['legende']['texte'] = "&nbsp;";
+ }
+ }
+ }
+
+ return $img;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/sources/NomsCommuns.php
===================================================================
--- v5.10-vilmorin/modules/mobile/sources/NomsCommuns.php (revision 0)
+++ v5.10-vilmorin/modules/mobile/sources/NomsCommuns.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/mobile/Mobile.php
===================================================================
--- v5.10-vilmorin/modules/mobile/Mobile.php (revision 0)
+++ v5.10-vilmorin/modules/mobile/Mobile.php (revision 1427)
@@ -0,0 +1,100 @@
+<?php
+// declare(encoding='UTF-8');
+/**
+ * Classe mère du module Mobile.
+ *
+ * @category PHP 5.2
+ * @package eflore-consultation
+ * @author Isabelle NEMBROT
+ * @author Aurélien PERONNET <aurelien@tela-botanica.org>
+ * @copyright 2015 Tela-Botanica
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
+ * @version $Id$
+ */
+class Mobile extends aControleur {
+
+ private $parametres = array();
+ private $conteneur = null;
+ private $num_nom = 0;
+ private $nom_courant = null;
+ private $nom_retenu = '';
+ private $url;
+
+ public function initialiser() {
+ $this->capturerParametres();
+ $this->conteneur = new Conteneur($this->parametres);
+ $this->url = $this->conteneur->getAppUrls();
+ $this->nomCourant = $this->conteneur->getNomCourant();
+ $this->nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu();
+ spl_autoload_register(array($this, 'chargerClassesSources'));
+ }
+
+ private function chargerClassesSources($classe) {
+ $base = dirname(__FILE__).DS;
+ $cheminSources = $base.'sources'.DS;
+ $dossiers = array($base, $cheminSources);
+ foreach ($dossiers as $chemin) {
+ $fichierATester = $chemin.$classe.'.php';
+ if (file_exists($fichierATester)) {
+ include_once $fichierATester;
+ return null;
+ }
+ }
+ }
+
+ private function capturerParametres() {
+ $this->parametres['num_nom'] = isset($_GET['num_nom']) ? $_GET['num_nom'] : '';
+ $this->parametres['nom'] = isset($_GET['nom']) ? $_GET['nom'] : '';
+ $this->parametres['type_nom'] = isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique';
+
+ $referentiel = isset($_GET['referentiel']) ? $_GET['referentiel'] : '';
+ Registre::set('parametres.referentiel', $referentiel);
+ $this->parametres['referentiel'] = $referentiel;
+
+ $niveau = isset($_GET['niveau']) ? $_GET['niveau'] : '1';
+ Registre::set('parametres.niveau', $niveau);
+ }
+
+ public function executerActionParDefaut() {
+ $this->executerFiche();
+ }
+
+ public function executerFiche(){
+ $donnees = $this->parametres;
+ $donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci').' '.$this->nom_retenu->get('auteur');
+ $donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180');
+ $donnees = array_merge($this->obtenirDonnees(), $donnees);
+ $donnees['url_absolue'] = "http://".$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI'];
+
+ $donnees['url_logos'] = "modules/mobile/presentations/logos/";
+
+ $donnees['lien'] = $this->url->obtenirUrlMobile($this->parametres['num_nom']);
+ $donnees['lien_fiche'] = $this->url->obtenirUrlFiche($this->parametres['num_nom']);
+
+ $tpl_edition = Config::get('smartFloreEditionFormulaireUrlTpl');
+ $url_edition = sprintf($tpl_edition, strtoupper($this->parametres['referentiel']), $this->nom_retenu->get('num_taxonomique'));
+ $donnees['lien_edition'] = $url_edition;
+
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('smartflore', $donnees), true);
+ }
+
+ public function obtenirDonnees() {
+ $donnees = array();
+ $num_nom = $this->nomCourant->getNns();
+ $referentiel = $this->conteneur->getParametre('referentiel');
+
+ $taxons = new Taxons($this->conteneur);
+ $donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $num_nom);
+
+ $sources = array('illustrations', 'texte', 'nomsCommuns');
+ foreach ($sources as $source) {
+ $nom_classe = ucfirst($source);
+ $classe = new $nom_classe($this->conteneur);
+ $donnees[$source] = $classe->getDonnees();
+ }
+
+ return $donnees;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/niveau/Niveau.php
===================================================================
--- v5.10-vilmorin/modules/niveau/Niveau.php (revision 0)
+++ v5.10-vilmorin/modules/niveau/Niveau.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/niveau/squelettes/niveau.tpl.html
===================================================================
--- v5.10-vilmorin/modules/niveau/squelettes/niveau.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/niveau/squelettes/niveau.tpl.html (revision 1427)
@@ -0,0 +1,26 @@
+<!-- DEBUT FORM_NIVEAU -->
+<script type="text/javascript">
+ $(document).ready(function() {
+ $( "#radio" ).buttonset();
+ $('#eflore_niveau_submit').hide();
+ $(".zone-choix-niveau input").click(function() {
+ $('#eflore_niveau_submit').click();
+ });
+ });
+</script>
+
+<div class="choixNiveau">
+ <span class="choix-niveau">
+ <a href="<?=$parametres['url']?>&niveau=1" class="niveau1<?=$parametres['niveau'] == 1? ' actif' : ''?>">Débutant</a>
+ </span>
+ <span class="choix-niveau">
+ <a href="<?=$parametres['url']?>&niveau=2" class="niveau2<?=$parametres['niveau'] == 2? ' actif' : ''?>">Intermédiaire</a>
+ </span>
+ <span class="choix-niveau">
+ <a href="<?=$parametres['url']?>&niveau=3" class="niveau3<?=$parametres['niveau'] == 3? ' actif' : ''?>">Expert</a>
+ </span>
+</div>
+
+
+
+<!-- FIN FORM_NOM -->
\ No newline at end of file
Index: v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-ref.tpl.html
===================================================================
--- v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-ref.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-ref.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-taxons.tpl.html
===================================================================
--- v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-taxons.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-taxons.tpl.html (revision 1427)
@@ -0,0 +1,16 @@
+<div>
+
+ <h3>Liste des taxons ayant le même code catminat. (<?=$catminat?>)</h3>
+ Ils ont la même écologie que le taxon consulté. On les rencontre souvent ensemble sur le terrain (en fonction de leur répartition respective).
+ <? if (!empty($liste)) : ?>
+ <?php foreach ($liste as $cle => $element ) : ?>
+ <ul>
+ <a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($element['num_nomen'],'nom_scientifique'); ?>">
+ <li><?=$element['nom_sci']?> </li>
+ </a>
+ </ul>
+ <?endforeach;?>
+ <? else : ?>
+ Pas de données.
+ <? endif; ?>
+</div>
\ No newline at end of file
Index: v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-synonymes.tpl.html
===================================================================
--- v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-synonymes.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-synonymes.tpl.html (revision 1427)
@@ -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>
\ No newline at end of file
Index: v5.10-vilmorin/modules/liste_fancy_box_phytosocio/ListeFancyBoxPhytosocio.php
===================================================================
--- v5.10-vilmorin/modules/liste_fancy_box_phytosocio/ListeFancyBoxPhytosocio.php (revision 0)
+++ v5.10-vilmorin/modules/liste_fancy_box_phytosocio/ListeFancyBoxPhytosocio.php (revision 1427)
@@ -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;
+ }
+
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/recherche/Recherche.php
===================================================================
--- v5.10-vilmorin/modules/recherche/Recherche.php (revision 0)
+++ v5.10-vilmorin/modules/recherche/Recherche.php (revision 1427)
@@ -0,0 +1,335 @@
+<?php
+class Recherche extends aControleur {
+
+ //+----------------------------------------------------------------------------------------------------------------+
+ // Méthodes
+ protected $nom = null;
+ protected $type_nom = 'nom_scientifique';
+ protected $type_resultat = '';
+ protected $submit = '';
+ protected $acces_fiche = false;
+ private $recherche_avancee;
+ private $param;
+ private $i18n = array();
+
+ private $parametresAvancesGeneriques = array('gen','fam','nn','nt','sp','ssp','type','sto','sti','stc');
+
+ public function initialiser() {
+ $this->capturerParametres();
+ $this->capturerParametresAvances();
+ $this->i18n = I18n::get('Recherche-form-avancee');
+ }
+
+ /**
+ * Fonction d'affichage par défaut
+ */
+ public function executerActionParDefaut() {
+ $this->executerAccueil();
+ }
+
+ public function executerAccueil($donneesMoteur = array()) {
+
+ $meta = new MetaDonnees();
+ $meta->setProjet(Registre::get('parametres.referentiel'));
+ $metadonnees = $meta->getMetaDonnees();
+ $donneesMoteur['metadonnees_referentiel'] = $metadonnees[0];
+
+ $niveau = new Niveau();
+ $donnees['form_niveau'] = $niveau->afficherNiveau();
+ $recherchesimple = new RechercheSimple();
+ $donnees['form_nom'] = $recherchesimple->executerFormulaireNom($donneesMoteur);
+ if (Registre::get('parametres.niveau') != 1) {
+ $recherche_avancee = new RechercheAvancee();
+ $donnees['form_recherche_av'] = $recherche_avancee->executerFormulaireRechercheAv($donneesMoteur);
+ }
+ $donnees['description'] = "";
+
+ // le descriptif du référentiel est affiché lorsque seul le moteur est affiché (donc ni résultats, ni fiche)
+ if(Registre::get('parametres.module') == 'recherche' &&
+ Registre::get('parametres.action') == 'action-par-defaut' &&
+ !Registre::get('resultats')) {
+ $referentiel = Registre::get('parametres.referentiel');
+ $wiki = new Wikini();
+ $description = $wiki->getDescriptionReferentielFormate($referentiel);
+ $donnees['description'] = $description;
+ }
+ $this->afficherAccueil($donnees);
+ }
+
+ private function afficherAccueil($donnees) {
+ $donnees['i18n'] = I18n::get('Recherche-accueil');
+ $this->setSortie(self::RENDU_CORPS, $this->getVue('recherche_accueil', $donnees), true);
+ }
+
+
+ //+---------------------------------------------recherche avancee-------------------------------------+
+ public function executerRechercheAvancee() {
+ $this->param = $this->nettoyerParametresDefautRechercheAvancee($this->param);
+ $donnees['param'] = $this->param;
+ $presence = $this->rechercherCriteresDemandes();
+ if (empty($presence) && !empty($this->param)) {
+ $donnees['message_av']['attention'] = 'info_res_vide';
+ }
+ $this->executerAccueil($donnees);
+ if (Registre::get('resultats')) {
+ $_GET['resultat'] = $this->type_resultat;
+ $this->executerAction('Resultat', 'executerResultat');
+ }
+ }
+
+ private function nettoyerParametresDefautRechercheAvancee($params) {
+ $params_nettoyes = array();
+ foreach ($params as $cle => $param) {
+ if(!preg_match("#^\(.*\)$#", $param)) {
+ $params_nettoyes[$cle] = $param;
+ }
+ }
+ return $params_nettoyes;
+ }
+
+ public function rechercherCriteresDemandes() {
+ $noms = new Noms(Registre::get('parametres.referentiel'));
+ $res = $noms->getRechercheAvancee($this->param);
+ if ($res != false || $res['entete']['total'] != 0) {
+ if ($res['entete']['total'] == 1 ) {
+ $ids = array_keys($res['resultat']);
+ $nom = $res['resultat'][$ids[0]]['nom_sci'];
+ $url = $this->urls->obtenirUrlFiche($ids[0], 'nom_scientifique', $nom);
+ $this->redirigerVers($url);
+ } else {
+ $res['type'] = $this->type_nom;
+ Registre::set('resultats', $res);
+ }
+ } else {
+ $res = '';
+ }
+ return $res;
+ }
+
+ //+---------------------------------------------recherche simple-------------------------------------+
+ /*
+ grep-friendly: ICI->executerRechercheSimple()
+ En effet, cette méthode n'est jamais invoquée explicitement.
+ Le processus est le suivant:
+ * URL = index.php?type_nom=...&referentiel=..&module=recherche&action=rechercheSimple
+ * AppControleur::initialiser()
+ * `-> AppControleur::$parametres['action'] = $_GET['action']
+ * `-> AppControleur::executerModule()
+ * `-> effecture $module->$action()
+ * qui nous appelle ici
+ */
+ public function executerRechercheSimple() {
+ $donnees['type_nom'] = $this->type_nom;
+ $donnees['nom'] = $this->nom;
+ if (strlen($donnees['nom']) < 3) {
+ $donnees['message']['attention'] = 'info_nb_lettres';
+ } else {
+ $presence = $this->rechercherNom();
+ if ($presence == '') { // s'il n'y a pas de nom
+ $donnees['message']['attention'] = 'info_sp_abs';
+ } elseif ($presence == 'sans_correspondance') {
+ $res = Registre::get('resultats');
+ $id = array_keys($res['resultat']);
+ $donnees['message']['nom_ss_corresp']['id'] = $id[0];
+ $nom = array_shift($res['resultat']);
+ $donnees['message']['nom_ss_corresp']['nom'] = $nom['nom_sci'];
+ } elseif ($presence != 'ok') { // s'il y a des noms approchés
+ if (!Registre::get('resultats')) { // s'il n'y a aucun nom exact
+ $donnees['message']['attention'] = 'info_sp_abs';
+ }
+ $donnees['message']['nom_approche'] = $presence;
+ }
+ }
+
+ $this->executerAccueil($donnees);
+ if (Registre::get('resultats')) {
+ $_GET['resultat'] = $this->type_resultat;
+ $this->executerAction('Resultat', 'executerResultat');
+ }
+ }
+
+
+ // regarde si il y a des résultats correspondant au nom recherché sinon recherche un nom approché
+ // $noms classe métier nom ou nom
+ private function rechercherNom() {
+ $noms = ($this->type_nom == 'nom_vernaculaire')
+ ? new NomsVernaculaires(Config::get(Registre::get('parametres.referentiel').'.referentielVerna'))
+ : new Noms(Registre::get('parametres.referentiel'));
+ $approche = '';
+ $res = $noms->getRechercheEtendue($this->nom, $this->type_resultat);
+ $form = I18n::get('Recherche-form-nom');
+
+ if ($res == false || $res['entete']['total'] === 0) { // recherche nom approché
+ $approche = $this->rechercherNomApproche($noms);
+ } elseif ($res['entete']['total'] == 1 || $this->acces_fiche) { // renvoie à la fiche
+ $approche = $this->traiterAccesFiche($res);
+ } else { // affiche les résultats
+ $res['type'] = $this->type_nom;
+ Registre::set('resultats', $res);
+ $approche = 'ok';
+ if ($res['entete']['total'] < 3) { // si moins de 16 noms affiche en plus un nom approché
+ $approche = $this->rechercherNomApproche($noms);
+ }
+ }
+
+ // suppression des nomps en doublons + du nom déjà dans le moteur de recherche
+ // TODO: comprendre d'ou viennent les noms en doublons. Peut-être une histoire de noms similaires avec un nom d'auteur
+ // différent, qui une fois supprimé se retrouvent à être les même ?
+ if(is_array($approche)) {
+ $approche_sans_doublons = array();
+ foreach($approche as $element) {
+ if(!in_array($element, $approche_sans_doublons) && $element['nom'] != $this->nom) {
+ $approche_sans_doublons[] = $element;
+ }
+ }
+ $approche = $approche_sans_doublons;
+ }
+ return $approche;
+ }
+
+ private function traiterAccesFiche($res) {
+ $ids = array_keys($res['resultat']);
+ if ($this->type_nom == 'nom_vernaculaire') {
+ $id = explode(':',$res['resultat'][$ids[0]]['nom_retenu.code']);
+ $id = $id[1];
+ } else {
+ if ($res['resultat'][$ids[0]]['retenu'] == 'absent') { // dans le cas d'un nom sans correspondance
+ $res['type'] = $this->type_nom;
+ Registre::set('resultats', $res);
+ $approche = 'sans_correspondance';
+ return $approche;
+ } else {
+ $id = $ids[0];
+ }
+ }
+ $url = $this->urls->obtenirUrlFiche($id, $this->type_nom, $this->nom);
+ $this->redirigerVers($url);
+ }
+
+ private function rechercherNomApproche($noms) {
+ $approche = '';
+ $res = $noms->getRechercheFloue($this->nom);
+ if (!($res == false || $res['entete']['total'] === 0)) {
+ for ($i = 0; $i < 3; $i++) {
+ $nom_proche = array_shift($res['resultat']);
+ $approche[$i]['nom'] = ($this->type_nom == 'nom_vernaculaire') ? $nom_proche['nom'] : $nom_proche['nom_sci'];
+ $approche[$i]['url_nom_approche'] = $this->urls->obtenirUrlRechercheSimple($approche[$i]['nom'], $this->type_nom);
+ }
+ }
+ return $approche;
+ }
+
+ //+-----------------------------------------------méthodes utiles---------------------------------+
+
+ private function capturerParametres() {
+ if (isset($_REQUEST['nom'])) {
+ $this->nom = $this->convertirEncodageEntree(urldecode($_REQUEST['nom']));
+ }
+ if (isset($_GET['type_nom'])) {
+ $this->type_nom = $this->convertirEncodageEntree(urldecode($_GET['type_nom']));
+ }
+ if (isset($_GET['submit'])) {
+ $this->submit = $this->convertirEncodageEntree(urldecode($_GET['submit']));
+ }
+ if(isset($_GET['acces_fiche'])) {
+ $this->acces_fiche = true;
+ }
+ if (isset($_GET['niveau'])) {
+ Registre::set('parametres.niveau', $this->convertirEncodageEntree($_GET['niveau']));
+ }
+ if (isset($_GET['resultat'])) {
+ $this->type_resultat = $this->convertirEncodageEntree(urldecode($_GET['resultat']));
+ } else {
+ $onglet_resultat = $this->recupererTableauConfig('affich_resultats');
+ $this->type_resultat = $onglet_resultat[Registre::get('parametres.niveau').'_'.$this->type_nom];
+ }
+ }
+
+ private function capturerParametresAvances() {
+ $this->capturerParametresAvancesGeneriques();
+ $this->capturerParametresAvancesDependantsLangage();
+ $this->capturerParametresAvancesPresenceSpecifiques();
+ }
+
+ private function capturerParametresAvancesGeneriques() {
+ foreach($this->parametresAvancesGeneriques as $param) {
+ if (isset($_GET[$param]) && $_GET[$param] != '') {
+ $this->param[$param] = $this->convertirEncodageEntree(urldecode($_GET[$param]));
+ }
+ }
+ }
+
+ private function capturerParametresAvancesDependantsLangage() {
+ if (isset($_GET['au']) && $_GET['au'] != ''
+ && $_GET['au'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-auteur']))) {
+ $this->param['au'] = $this->convertirEncodageEntree(urldecode($_GET['au']));
+ }
+ if (isset($_GET['bib']) && $_GET['bib'] != ''
+ && $_GET['bib'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-bib']))) {
+ $this->param['bib'] = $this->convertirEncodageEntree(urldecode($_GET['bib']));
+ }
+ if (isset($_GET['and']) && $_GET['and'] != ''
+ && $_GET['and'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-date']))) {
+ $this->param['and'] = $this->convertirEncodageEntree(urldecode($_GET['and']));
+ }
+ if (isset($_GET['anf']) && $_GET['anf'] != ''
+ && $_GET['anf'] != urlencode($this->i18n['valeur-form-date'])) {
+ $this->param['anf'] = $this->convertirEncodageEntree(urldecode($_GET['anf']));
+ }
+ }
+
+ private function capturerParametresAvancesPresenceSpecifiques() {
+ $champs_presence = $this->obtenirChampsPresence();
+ foreach($champs_presence as $champ) {
+ $param = $champ['param'];
+ if (isset($_GET[$param]) && $_GET[$param] != '') {
+ $this->param[$param] = $this->convertirEncodageEntree(urldecode($_GET[$param]));
+ }
+ }
+ }
+
+ private function obtenirChampsPresence() {
+ $tableau_champs_presence = array();
+ $referentiel = Registre::get('parametres.referentiel');
+ $champs_presence_spl = explode('|', Config::get($referentiel.'.champsPresence'));
+ foreach($champs_presence_spl as $champ) {
+ $label_param_champ = explode(':', $champ);
+ if(count($label_param_champ) >= 2) {
+ $tableau_champs_presence[] = array('param' => $label_param_champ[1],
+ 'label' => $label_param_champ[0]);
+ }
+ }
+ return $tableau_champs_presence;
+ }
+
+ protected function recupererTableauConfig($param) {
+ $tableau = array();
+ $tableauPartiel = explode(',', Config::get($param));
+ $tableauPartiel = array_map('trim', $tableauPartiel);
+ foreach ($tableauPartiel as $champ) {
+ if (strpos($champ, '=') === false) {
+ $tableau[] = $champ;
+ } else {
+ list($cle, $val) = explode('=', $champ);
+ $tableau[$cle] = $val;
+ }
+ }
+ return $tableau;
+ }
+
+
+ /**
+ * Convertion des valeurs de requête dans l'encodage de l'application (voir fichier config.ini : appli_encodage),
+ * A cause d'un bug en cours d'investigation, celle ci utilise des paramètres différents de la fonction de conversion
+ * D'encodage de sortie
+ * Cette convertion a lieu seulement si les formats sont différents.
+ */
+ private function convertirEncodageEntree($contenu) {
+ if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
+ $contenu = mb_convert_encoding($contenu, Config::get('appli_encodage'), Config::get('sortie_encodage'));
+ }
+ return $contenu;
+ }
+
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/recherche/squelettes/recherche_accueil.tpl.html
===================================================================
--- v5.10-vilmorin/modules/recherche/squelettes/recherche_accueil.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/recherche/squelettes/recherche_accueil.tpl.html (revision 1427)
@@ -0,0 +1,15 @@
+<div id="bloc-recherche" class="importance1">
+<h1><?=$i18n['titre-nom'];?></h1>
+<?=$form_niveau;?>
+<?=$form_nom;?>
+<div id="conteneur_activation_definition">
+ <a href="#">&nbsp;</a>
+</div>
+<!-- niveau expert : recherche avancée -->
+<?= isset($form_recherche_av) ? $form_recherche_av : '' ;?>
+</div>
+<div class="description-referentiel">
+ <span class="description-referentiel-texte">
+ <?=$description;?>
+ </span>
+</div>
Index: v5.10-vilmorin/modules/pagination/Pagination.php
===================================================================
--- v5.10-vilmorin/modules/pagination/Pagination.php (revision 0)
+++ v5.10-vilmorin/modules/pagination/Pagination.php (revision 1427)
@@ -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;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/pagination/squelettes/pagination.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pagination/squelettes/pagination.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pagination/squelettes/pagination.tpl.html (revision 1427)
@@ -0,0 +1,40 @@
+<?php if($nb_resultats > 0) {?>
+
+ <?php if($nb_pages > 1) {?>
+ Pages &nbsp;&nbsp;
+ <?php } ?>
+
+<?php if(($page_en_cours >= $pages_debut_intervalle) && (($page_en_cours != 1)) && ($nb_pages != 1)) { ?>
+<a class="premiere_page" href="<?= $url_base_pagination.'0' ?>" title="Première page">[1]</a> ...
+<?php } ?>
+
+<?php if($page_en_cours > 1) { ?>
+<a class="page_prededente" href="<?= $url_base_pagination.(($page_en_cours - 2)*$taille_page) ?>" title="Page précedente">&lt;&lt;</a>&nbsp;&nbsp;
+<?php } ?>
+
+<?php if($nb_pages > 1) { ?>
+ <span class="pages">
+ <?php for($i = $pages_debut_intervalle; ($i < $pages_debut_intervalle+$pages_taille_intervalle) && $i <= $nb_pages ; $i++) : ?>
+ <?php if($page_en_cours == $i) { ?>
+ <span class="page_courante">
+ <?php } else { ?>
+ <span>
+ <?php } ?>
+ <a class="premiere_page" href="<?= $url_base_pagination.(($i - 1)*$taille_page) ?>" title="Page numéro <?= $i ?>"><?= $i ?></a>
+ </span>&nbsp;&nbsp;
+ <?php endfor; ?>
+ </span>
+<?php } ?>
+
+<?php if($page_en_cours < $nb_pages) { ?>
+<a class="page_prededente" href="<?= $url_base_pagination.(($page_en_cours)*$taille_page) ?>" title="Page suivante">&gt;&gt;</a>
+<?php } ?>
+
+<?php if(($page_en_cours != $nb_pages) && ($nb_pages > $pages_taille_intervalle)) { ?>
+ ... <a class="derniere_page" href="<?= $url_base_pagination.(($nb_pages-1)*$taille_page) ?>" title="Dernière page">[<?= $nb_pages; ?>]</a> &nbsp;
+<?php } ?>
+
+<span class="nb_resultats"> Résultats <?= $intervalle_min.' - '.$intervalle_max ?> sur <?= $nb_resultats; ?></span>
+
+<?php } ?>
+<hr style="clear:both;visibility:hidden;" />
\ No newline at end of file
Index: v5.10-vilmorin/modules/pdf_export/PdfExport.php
===================================================================
--- v5.10-vilmorin/modules/pdf_export/PdfExport.php (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/PdfExport.php (revision 1427)
@@ -0,0 +1,233 @@
+<?php
+/**
+ * Classe PdfExport, réalise des exportations pdf des fiches de taxons.
+ * Les fonctionnalités proposées sont l'export de toutes les parties de la fiche pdf
+ * ou bien des parties choisies.
+ * (voir le squelette fiche_pdf_lien.tpl.html pour le formulaire dans le module fiche.)
+ *
+ * manuel wkhtmltopdf : http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0_rc2-doc.html
+ * pour changer de librairie : changer la fonction transformerHtmlEnPdf()
+ *
+ * @category php 5.2
+ * @package eflore-consultation
+ * @author Mathilde Salthun-Lassalle <mathilde@tela-botanica.org>
+ * @copyright 2012 Tela-Botanica
+ * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
+ * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
+ * @version $Id$
+ */
+
+class PdfExport extends aControleur {
+
+ const DUREE_DE_VIE_PDF = 86400;// 3600 * 24 * 2 = 172 800
+ const DUREE_DE_VIE_HTML = 60;
+
+ private $Conteneur;
+ private $parametres = array();
+ private $chemin_pdf;
+ private $html;
+ private $wkhtml;
+ private $piedepage;
+ private $fichier_pdf;
+ private $blocs = array();
+
+ private $Desc;
+ private $Ecolo;
+ private $Ethno;
+ private $Illus;
+ private $Nomen;
+ private $Reparti;
+ private $Stat;
+ private $Biblio;
+
+ public function initialiser() {
+ spl_autoload_register(array($this, 'chargerClassesOnglets'));
+ $this->capturerParametres();
+ $this->conteneur = new Conteneur($this->parametres);
+ $this->chemin_pdf = Config::get('dossier_pdf');
+ $this->wkhtml = Config::get('WKHTMLTOPDF');
+ $this->Desc = new Description($this->conteneur);
+ $this->Ecolo = new Ecologie($this->conteneur);
+ $this->Ethno = new Ethnobotanique($this->conteneur);
+ $this->Illus = new Illustrations($this->conteneur);
+ $this->Nomen = new Nomenclature($this->conteneur);
+ $this->Stat = new Statut($this->conteneur);
+ $this->Biblio = new Bibliographie($this->conteneur);
+ $this->Reparti = new Repartition($this->conteneur);
+ $this->piedepage = Config::get('chemin_modules').'pdf_export/squelettes/footer.html';
+ }
+
+ private function chargerClassesOnglets($classe) {
+ $base = dirname(__FILE__).DS;
+ $cheminFormateurs = $base.'../fiche/formateurs'.DS;
+ $dossiers = array($base, $cheminFormateurs);
+ foreach ($dossiers as $chemin) {
+ $fichierATester = $chemin.$classe.'.php';
+ if (file_exists($fichierATester)) {
+ include_once $fichierATester;
+ return null;
+ }
+ }
+ }
+
+ private function getNomRetenu() {
+ $nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
+ return $nom_retenu;
+ }
+
+ private function getNomRetenuHTML() {
+ $nom_retenu = '<span class="italique">'
+ .$this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci')
+ .'</span> '.$this->conteneur->getNomCourant()->getNomRetenu()->get('auteur');
+ return $nom_retenu;
+ }
+
+ private function getNomFichierValide(){
+ $nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
+ $nom_retenu = str_replace(' ','_',$nom_retenu );
+ $nom_retenu = preg_replace('/[\(\)\.\[\]]/','',$nom_retenu );
+ return $nom_retenu;
+ }
+
+ private function capturerParametres() {
+ if (isset($_GET['num_nom'])) {
+ $this->parametres['num_nom'] = $_GET['num_nom'];
+ }
+ if (isset($_GET['nom'])) {
+ $this->parametres['nom'] = $_GET['nom'];
+ }
+ if (isset($_GET['type_nom'])) {
+ $this->parametres['type_nom'] = $_GET['type_nom'];
+ }
+ if (isset($_GET['referentiel'])) {
+ $this->parametres['referentiel'] = $_GET['referentiel'];
+ }
+ if (isset($_GET['niveau'])) {
+ Registre::set('parametres.niveau', $_GET['niveau']);
+ }
+ if (isset($_GET['onglet'])) {
+ $this->onglet = $_GET['onglet'];
+ }
+ }
+
+ private function capturerParametresFormulaire() {
+ $this->blocs = array('description', 'ecologie', 'ethnobotanique', 'statuts', 'illustrations',
+ 'bibliographie', 'repartition', 'nomenclature');
+ if (!empty($_POST['bloc'])) {
+ $this->blocs = $_POST['bloc'];
+ }
+ }
+
+ public function executerActionParDefaut() {
+ $this->executerPdfExport();
+ }
+
+ public function executerPdfExport(){
+ $this->capturerParametresFormulaire();
+ $hash = crc32($this->parametres['referentiel'].'-'.implode('-', $this->blocs));
+ $nom_fichier = $this->getNomFichierValide().'-'.$hash;
+
+ // le dossier cache existe normalement, mais le sous dossier pdf
+ // est parfois effacé par erreur lors des suppressions de cache
+ // il vaut mieux donc le recréer s'il n'existe pas
+ if(!file_exists($this->chemin_pdf)) {
+ mkdir($this->chemin_pdf, 0755, true);
+ }
+
+ $this->fichier_html = $this->chemin_pdf.''.$nom_fichier.'.html';
+ $this->fichier_pdf = $this->chemin_pdf.''.$nom_fichier.'.pdf';
+
+ if (file_exists($this->fichier_pdf) == false) {
+ $donnees = $this->obtenirDonnees();
+ $this->construireHtml($donnees);
+ if ($this->transformerHtmlEnPdf() == false) {
+ die('Erreur de generation du fichier PDF');
+ }
+ }
+ $this->envoyerPdfAuNavigateur();
+ $this->nettoyerFichiersTmp();
+ // ATTENTION : on doit stopper l'exécution de Papyrus sinon du HTML inutile est ajouté à la fin du fichier PDF
+ exit;
+ }
+
+ private function construireHtml($donnees) {
+ $this->html = $this->getVue('pdf_header', $donnees);
+ foreach ($this->blocs as $bloc) {
+ $this->ajouterHtml($bloc, $donnees);
+ }
+ $this->html .= '</body></html>';
+ }
+
+ private function ajouterHtml($bloc, $donnees) {
+ if (!empty($donnees[$bloc])) {
+ $this->html .= $this->getVue('pdf_'.$bloc, $donnees);
+ }
+ }
+
+//+-------------------------------------récupération des données---------------------------------------------+
+ private function obtenirDonnees() {
+ $donnees = array();
+ $version = $this->Nomen->obtenirVersionDonnees();
+ $donnees['donnees_pdf'] = array(
+ 'nom' => $this->getNomRetenuHTML(),
+ 'chemin_css' => Config::get('url_css_pdf'),
+ 'version' => $version['version']);
+ $donnees['description'] = $this->Desc->obtenirDonneesExport();
+ $donnees['ecologie'] = $this->Ecolo->obtenirDonneesExport();
+ $donnees['statuts'] = $this->Stat->obtenirDonnees();
+ $donnees['ethnobotanique'] = $this->Ethno->obtenirDonnees();
+ $donnees['illustrations'] = $this->Illus->obtenirDonneesExport();
+ $donnees['nomenclature'] = $this->Nomen->obtenirDonnees();
+ $donnees['repartition'] = $this->Reparti->obtenirDonneesExport();
+ $donnees['bibliographie'] = $this->Biblio->obtenirDonnees();
+ $donnees['premier'] = $this->blocs[0];// pour page-break : éviter 1ere page vide si bloc trop long
+ return $donnees;
+ }
+
+//+------------------------------------------------export en pdf---------------------------------------------+
+ private function envoyerPdfAuNavigateur() {
+ $nom_fichier = $this->getNomFichierValide();
+ header('Content-type: application/pdf');
+ header('Content-Disposition: attachment; filename='.$nom_fichier.'.pdf');
+ readfile($this->fichier_pdf);
+ }
+
+ private function nettoyerFichiersTmp() {
+ $dossierStockage = $this->chemin_pdf;
+ if (is_dir($dossierStockage)) {
+ $objets = scandir($dossierStockage);
+ if ($objets !== false) {
+ foreach ($objets as $objet) {
+ $chemin = $dossierStockage.$objet;
+ if (is_file($chemin)) {
+ $filemtime = @filemtime($chemin);
+ if ($filemtime !== false) {
+ if (substr($chemin, -5) == '.html') {
+ $suppression = (time() - $filemtime >= self::DUREE_DE_VIE_HTML) ? true : false;
+ } else {
+ $suppression = (time() - $filemtime >= self::DUREE_DE_VIE_PDF) ? true : false;
+ }
+ if ($suppression === true) {
+ unlink($chemin);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ //version WKHTMLtoPDF en ligne de commande
+ private function transformerHtmlEnPdf() {
+ $nom = $this->getNomRetenu();
+ file_put_contents($this->fichier_html, $this->html);
+ $commande = "{$this->wkhtml} --replace 'nom' '$nom' --encoding utf-8 --footer-html {$this->piedepage} {$this->fichier_html} {$this->fichier_pdf}";
+ $ret = -1;
+ $debug = array();
+ exec($commande, $debug, $ret);
+ //print_r( $debug ); echo $ret;
+ $ok = ($ret == 0 || $ret == 2) ? true : false;
+ return $ok;
+ }
+}
+?>
\ No newline at end of file
Index: v5.10-vilmorin/modules/pdf_export/pdf_export.txt
===================================================================
--- v5.10-vilmorin/modules/pdf_export/pdf_export.txt (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/pdf_export.txt (revision 1427)
@@ -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
\ No newline at end of file
/v5.10-vilmorin/modules/pdf_export/pdf_export.txt
Property changes:
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: v5.10-vilmorin/modules/pdf_export/squelettes/footer.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/footer.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/footer.html (revision 1427)
@@ -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>
+
\ No newline at end of file
/v5.10-vilmorin/modules/pdf_export/squelettes/footer.html
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_statuts.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_statuts.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_statuts.tpl.html (revision 1427)
@@ -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/>
+
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_header.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_header.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_header.tpl.html (revision 1427)
@@ -0,0 +1,26 @@
+<!doctype html>
+<html>
+<!-- ici est le style et l'en-tête de la première page.
+pour un en-tête sur chaque page avec wkhtmltopdf utiliser --header.* -->
+<head>
+<link href="<?=$donnees_pdf['chemin_css'] ?>" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<!-- EN TETE de la première page -->
+ <table style="width: 100%; background-color:#9AC343;">
+ <tr>
+ <td style="border:none; text-align: left; width: 20%; height:20mm; margin-left:10mm; margin-right:10mm; ">
+ <img style="height:15mm;" src="http://resources.tela-botanica.org/tb/img/135x102/logo_carre_officiel.png" alt="Tela Botanica"/>
+ </td>
+ <td style=" border:none; text-align: center; vertical-align: bottom ; padding-bottom:5px;" >
+ <span style="font-size:20px; color:white;">
+ <?=$donnees_pdf['nom']?>
+ </span> <br/><br/>
+ eFlore, la flore électronique de Tela Botanica.
+ <span class="version"><?=$donnees_pdf['version']?></span>
+ </td>
+ </tr>
+ </table>
+ <br/>
+ <br/>
+
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_illustrations.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_illustrations.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_illustrations.tpl.html (revision 1427)
@@ -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/>
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_nomenclature.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_nomenclature.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_nomenclature.tpl.html (revision 1427)
@@ -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/>
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_bibliographie.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_bibliographie.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_bibliographie.tpl.html (revision 1427)
@@ -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/>
\ No newline at end of file
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_repartition.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_repartition.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_repartition.tpl.html (revision 1427)
@@ -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/>
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_description.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_description.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_description.tpl.html (revision 1427)
@@ -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/>
\ No newline at end of file
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ethnobotanique.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ethnobotanique.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ethnobotanique.tpl.html (revision 1427)
@@ -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/>
\ No newline at end of file
Index: v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ecologie.tpl.html
===================================================================
--- v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ecologie.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/pdf_export/squelettes/pdf_ecologie.tpl.html (revision 1427)
@@ -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/>
Index: v5.10-vilmorin/modules/recherche_avancee/squelettes/form_recherche_av.tpl.html
===================================================================
--- v5.10-vilmorin/modules/recherche_avancee/squelettes/form_recherche_av.tpl.html (revision 0)
+++ v5.10-vilmorin/modules/recherche_avancee/squelettes/form_recherche_av.tpl.html (revision 1427)
@@ -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 val