Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1176 → Rev 1177

/branches/v5.2-lasegue/modules/resultat/squelettes/onglets.tpl.html
New file
0,0 → 1,15
<ul class="onglets">
<?php if ($typeNom == 'nom_scientifique') : ?>
<?php foreach ($ongletsNs as $onglet) : ?>
<li <?=($typeResultat == $onglet ? 'class="menu_actif sci"': 'class="sci"')?> >
<a href="<?=$urls[$onglet]?>"><?=$i18n['ns'][$onglet]?></a>
</li>
<?php endforeach; ?>
<?php elseif ($typeNom == 'nom_vernaculaire') : ?>
<?php foreach ($ongletsNv as $onglet) : ?>
<li <?=($typeResultat == $onglet ? 'class="menu_actif verna"': 'class="verna"')?> >
<a href="<?=$urls[$onglet]?>"><?=$i18n['nv'][$onglet]?></a>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
/branches/v5.2-lasegue/modules/resultat/squelettes/decomposition.tpl.html
New file
0,0 → 1,66
<p>
Rechercher sur
<a href="http://www.theplantlist.org/tpl/search?q=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/tpl.png" alt="The Plant List"
title="Rechercher dans The Plant List"/>
</a>
<a href="http://www.ipni.org/ipni/simplePlantNameSearch.do?find_wholeName=<?=htmlentities($masqueRecherche)?>&amp;output_format=normal&amp;query_type=by_query&amp;back_page=query_ipni.html">
<img src="<?=$baseUrlIco?>presentations/images/sites/ipni.png" alt="IPNI" title="Rechercher dans IPNI"/>
</a>
<a href="http://plants.jstor.org/search?plantName=%22<?=htmlentities($masqueRecherche)?>%22&amp;syn=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/jstor.png" alt="JSTOR Plant Science" title="Rechercher dans JSTOR Plant Science" />
</a>
<a href="http://coldb.mnhn.fr/Consultation?filtre=motif&amp;motif=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/mnhn.png" alt="Muséum national d'Histoire naturelle" title="Rechercher dans Muséum national d'Histoire naturelle" />
</a>
<a href="http://www.anbg.gov.au/cgi-bin/apni?TAXON_NAME=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/anbg.png" alt="Australian Plant Name Index" title="Rechercher dans Australian Plant Name Index" />
</a>
<a href="http://sweetgum.nybg.org/vh/specimen_list.php?QueryName=BasicQuery&amp;QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&amp;Restriction=NybRecordType+%3D+%27Specimen%27&amp;StartAt=1&amp;any=SummaryData%7CAdmWebMetadata&amp;QueryOption=any&amp;Submit=Search&amp;QueryTerms=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/nybg.png" alt="NYBG Virtual Herbarium" title="Rechercher dans NYBG Virtual Herbarium" />
</a>
<a href="http://collections.mnh.si.edu/search/botany/?qt=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/si.png" alt="Type Specimen Register of the U.S. National Herbarium" title="Rechercher dans Type Specimen Register of the U.S. National Herbarium" />
</a>
<a href="http://herbarium.univie.ac.at/database/search.php?taxon=<?=htmlentities($masqueRecherche)?>&amp;search=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/vha.png" alt="Virtual Herbaria Austria" title="Rechercher dans Virtual Herbaria Austria" />
</a>
<a href="http://swbiodiversity.org/seinet/taxa/index.php?taxon=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/seinet.png" alt="SEINet" title="Rechercher dans SEINet" />
</a>
<a href="http://www.ville-ge.ch/musinfo/bd/cjb/africa/resultat.php?efFamille=&amp;projet%5B%5D=FSA&amp;projet%5B%5D=FTA&amp;projet%5B%5D=FNA&amp;projet%5B%5D=BDM&amp;langue=en&amp;pbRecherche=Rechercher&amp;efNom=<?=htmlentities($masqueRecherche)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/cjb.png" alt="African Plants Database" title="Rechercher dans African Plants Database du Jardin Botanique de Genève" />
</a>
</p>
<table id="ef-resultats-decomposition">
<thead>
<tr>
<th id="col-ns">Nom scientifique</th>
<th>Auteur</th>
<th>Année</th>
<th>Référence bibliographique</th>
<th title="Commentaires nomenclaturaux ou taxonomiques concernant le nom scientifique">Nom addendum</th>
<th title="Identifiant numérique du nom scientifique">N° nom</th>
</tr>
</thead>
<tbody>
<? $i = 1 ?>
<? foreach ($noms as $nom) : ?>
<tr
class="<?=$nom['retenu'] === 'true' ? 'retenu' : 'synonyme' ?>"
title="Ligne #<?=$i++?>">
<td>
<? if ($nom['retenu'] !== 'absent') : ?>
<a href="<?=$nom['urlFiche']?>"><?=$nom['nomSci']?></a>
<? else : ?><?=$nom['nomSci']?>
<? endif; ?>
</td>
<td><?=$nom['auteur']?></td>
<td><?=$nom['annee']?></td>
<td><?=$nom['biblio']?></td>
<td><?=$nom['addendum']?></td>
<td><?=$nom['nn']?></td>
</tr>
<? endforeach; ?>
</tbody>
</table>
/branches/v5.2-lasegue/modules/resultat/squelettes/liste_noms.tpl.html
New file
0,0 → 1,17
<ol>
<? foreach ($noms as $id => $nom) : ?>
<li>
<?php if ($nom['retenu'] == 'absent') : ?>
<?=$nom['nomSci']?>
<?php else : ?>
<a href="<?=$nom['urlFiche']?>">
<?php if ($nom['retenu'] == 'true') : ?>
<strong class="nom-sci-retenu"><?=$nom['nomSci']?></strong>
<?php else : ?>
<?=$nom['nomSci']?>
<?php endif; ?>
</a>
<?php endif; ?>
</li>
<? endforeach; ?>
</ol>
/branches/v5.2-lasegue/modules/resultat/squelettes/determination_verna.tpl.html
New file
0,0 → 1,87
<?php if ($noms) : ?>
<ul id="ef-resultats-nv-determination">
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li class="zone-resultat">
<table >
<tbody >
<tr><td class="nom">
<?php if (isset($nom['nomVerna'])) : ?>
<?php $nbrNomVerna = count($nom['nomVerna']) ?>
<ul class="synonymes" style="width:100%;">
<?php for ($i = 0; ($i < 3); $i++) : ?>
<?php if (isset($nom['nomVerna'][$i])) : ?>
<li><?=$nom['nomVerna'][$i]['nom_vernaculaire']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrNomVerna === 4) : ?>
<?php if (isset($nom['nomVerna'][3])) : ?>
<li><?=$nom['nomVerna'][3]['nom_vernaculaire']?></li>
<?php endif; ?>
<?php endif; ?>
<?php if ($nbrNomVerna > 3 && $nbrNomVerna != 4) : ?>
<li class="synonymes-autres">
<ul>
<?php for ($i = 3; $i < $nbrNomVerna; $i++) : ?>
<li><?=$nom['nomVerna'][$i]['nom_vernaculaire']?></li>
<? endfor; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>
</td><td class="nom">
<a class="lien_fiche_eflore" href="<?=$nom['urlFiche']?>" ><?=$nom['nomSci']?></a>
</td>
<td>
<?php if (isset($imagesCoste[$taxons[$nom['nomSci']]][0])) : ?>
<img class="illustration_resultat_coste" src="<?=htmlentities($imagesCoste[$taxons[$nom['nomSci']]][0])?>" alt="illustration de Coste" />
<?php else : ?>
<div class="vide"></div>
<?php endif; ?>
</td>
<td>
<?php if (isset($imagesUrls[$nnTaxon])) : ?>
<img class="illustration_resultat_cel" src="<?=htmlentities($imagesUrls[$nnTaxon][0])?>" data-num-nom="<?= $nnTaxon; ?>" title="<?= $nnTaxon; ?>" alt="Images issues du CEL" style="width:100px;height:100px;display:block;float:right;"/>
<?php else : ?>
<p class="absent">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</p>
<?php endif; ?>
</td>
<td >
<?php if (isset($repartition['urls'][$nnTaxon])) : ?>
<img src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="Carte de répartition" class="repartition_vignette illustration_resultat_choro"/>
<?php else : ?>
<div class="absent">Pas de carte</div>
<?php endif; ?>
</td></tr>
</tbody>
</table>
</li>
<? endforeach; ?>
</ul>
<?php endif; ?>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
ajouterToggleSynonymesAutres();
});
function ajouterToggleSynonymesAutres() {
$("ul#ef-resultats-nv-determination li").each(function(index) {
$(this).find('.synonymes-autres').prepend('<a id="bascule-'+index+'" href="#">et plus...</a>');
$(this).find('.synonymes-autres ul').css('display', 'none');
$(this).find('.synonymes-autres ul').attr('id', 'sa-'+index);
$('#bascule-'+index).on('click', function() {
$('#sa-'+index).toggle('blind', {}, 500);
return false;
});
});
}
//]]>
</script>
/branches/v5.2-lasegue/modules/resultat/squelettes/determination.tpl.html
New file
0,0 → 1,94
<ul id="ef-resultats-determination">
<?php if ($noms) : ?>
<? foreach ($noms as $nnTaxon => $nom) : ?>
<li class="zone-resultat">
<div class="nom-sci">
<a class="lien_fiche_eflore" href="<?=$nom['urlFiche']?>" >
<strong class="nom-sci-retenu"><?=$nom['nomSciRetenu']?></strong>
</a>
</div>
<?php if (isset($repartition)) : ?>
<?php if (isset($repartition['urls'][$nnTaxon]) ) : ?>
<img class="illustration_resultat_choro" src="<?=htmlentities($repartition['urls'][$nnTaxon])?>" alt="Carte de répartition" />
<?php else : ?>
<div class="absent">Pas de carte</div>
<?php endif;endif; ?>
<?php if ($nom['rang'] != 'Famille' && $nom['rang'] != 'Genre' && $nom['rang'] != 'Ordre') : ?>
<?php if (isset($imagesUrls[$nnTaxon])) : ?>
<img class="illustration_resultat_cel" src="<?=htmlentities($imagesUrls[$nnTaxon][0])?>" data-num-nom="<?= $nnTaxon; ?>" title="<?= $nnTaxon; ?>" alt="Image provenant du CEL" style="width:100px;height:100px;display:block;float:right;"/>
<?php else : ?>
<p class="absent">Pas de photo<br />
<a href="<?=$urlWidget?>"
title="Ajouter une photographie au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</p>
<?php endif; ?>
<?php if (isset($dessins) && isset($dessins[$taxons[$nnTaxon]][0])) : ?>
<img class="illustration_resultat_coste" src="<?=htmlentities($dessins[$taxons[$nnTaxon]][0])?>" alt="illustration de Coste" />
<?php endif; ?>
<?php endif; ?>
<?php if (isset($synonymes[$nnTaxon])) : ?>
<?php $nbrSynonymes = count($synonymes[$nnTaxon]) ?>
<ul class="synonymes" style="width:100%;">
<?php for ($i = 0; ($i < 3); $i++) : ?>
<?php if (isset($synonymes[$nnTaxon][$i])) : ?>
<li><b>syn.</b> <?=$synonymes[$nnTaxon][$i]['nomSci']?></li>
<?php endif; ?>
<? endfor; ?>
<?php if ($nbrSynonymes === 4) : ?>
<?php if (isset($synonymes[$nnTaxon][3])) : ?>
<li><b>syn.</b> <?=$synonymes[$nnTaxon][3]['nomSci']?></li>
<?php endif; ?>
<?php endif; ?>
<?php if ($nbrSynonymes > 3 && $nbrSynonymes != 4) : ?>
<li class="synonymes-autres">
<ul>
<?php for ($i = 3; $i < $nbrSynonymes; $i++) : ?>
<li><b>syn.</b> <?=$synonymes[$nnTaxon][$i]['nomSci']?></li>
<? endfor; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>
</li>
<? endforeach; ?>
<?php endif; ?>
<?php if ($nomsSansCorrespondance) : ?>
<li class="zone-resultat" title="Aucun nom retenu n'a été trouvé pour ces noms scientifiques">
<strong>Noms sans correspondance</strong>
<ul class="noms-ss-correspondance">
<?php foreach ($nomsSansCorrespondance as $nomSC) : ?>
<li><?=$nomSC?></li>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>
</ul>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
ajouterToggleSynonymesAutres();
});
function ajouterToggleSynonymesAutres() {
$("ul#ef-resultats-determination li").each(function(index) {
$(this).find('.synonymes-autres').prepend('<a id="bascule-'+index+'" href="#">et plus...</a>');
$(this).find('.synonymes-autres ul').css('display', 'none');
$(this).find('.synonymes-autres ul').attr('id', 'sa-'+index);
$('#bascule-'+index).on('click', function() {
$('#sa-'+index).toggle('blind', {}, 500);
return false;
});
});
}
//]]>
</script>
/branches/v5.2-lasegue/modules/resultat/squelettes/resultat.tpl.html
New file
0,0 → 1,3
<?=$ongletsHtml?>
<p style="float:right;"><?=$nbreTaxons?> noms trouvés.</p>
<?=$nomsHtml?>
/branches/v5.2-lasegue/modules/resultat/squelettes/liste_noms_verna.tpl.html
New file
0,0 → 1,18
<? if ($noms) : ?>
<table>
<tr>
<th>n°</th>
<th>langue</th>
<th>nom commun</th>
<th>nom latin</th>
</tr>
<? $i = 1; foreach ($noms as $id => $valeurs) : ?>
<tr>
<td><?=$i++?></td>
<td><?= $valeurs['langue']?></td>
<td><?= $valeurs['nomVerna']?></td>
<td><a href="<?= $valeurs['urlFiche']?>"><?= $valeurs['nomSci']?></a></td>
</tr>
<? endforeach; ?>
</table>
<? endif; ?>
/branches/v5.2-lasegue/modules/resultat/ParametresResultats.php
New file
0,0 → 1,9
<?php
class ParametresResultats {
public $typeResultat = 'determination';
public $typeNom = '';
public $masqueRecherche = '';
public $reftaxCourant = 'bdtfx';
public $projetImg = 'cel';
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/nom_vernaculaire/AlphabVernaFormateur.php
New file
0,0 → 1,113
<?php
class AlphabVernaFormateur implements Formateur {
 
const TPL_VUE = 'liste_noms_verna';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
private function supprimerCodeReftaxAvecNn($nn) {
$codeReftax = Registre::get('parametres.referentiel').'.nn:';
return str_replace($codeReftax, '', $nn);
}
private function renvoyerInfoVerna($nn, $valeurs) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $valeurs['taxon'];
$infosDuNom['nomVerna'] = $valeurs['nom_vernaculaire'];
$infosDuNom['langue'] = $valeurs['code_langue'];
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($nn, $this->parametres->typeNom, $this->parametres->masqueRecherche);
return $infosDuNom ;
}
 
function supprimerAccents($chaine){
return strtr($chaine,array('à' => 'a','á' => 'a','â' => 'a','ã' => 'a','ä' => 'a',
'ç' => 'c',
'è' => 'e','é' => 'e','ê' => 'e','ë' => 'e',
'ì' => 'i','í' => 'i','î' => 'i','ï' => 'i',
'ñ' => 'n',
'ò' => 'o', 'ó' => 'o' , 'ô' => 'o', 'õ' => 'o', 'ö' => 'o',
'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u',
'ý' => 'y', 'ÿ' => 'y'));
}
public function formater() {
$nomVerna = array();
foreach ($this->noms as $id => $nom) {
$nn = $this->supprimerCodeReftaxAvecNn($nom['nom_retenu.code']);
$nom_min = strtolower($nom['nom_vernaculaire']);
$nom_ss_accent = $this->supprimerAccents($nom_min);
if (preg_match('/^'.strtolower($this->parametres->masqueRecherche).' |^'.strtolower($this->parametres->masqueRecherche).'$/', $nom_ss_accent)) {
$nomVerna[0][$id] = $this->renvoyerInfoVerna($nn, $nom);
} else {
$nomVerna[1][$id] = $this->renvoyerInfoVerna($nn, $nom);
}
}
ksort($nomVerna);
$this->infosPourTpl['noms'] = isset($nomVerna) ? $nomVerna : false;
}
 
public function trier() {
$verna = array();
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs) {
$verna += $this->classerAlphabetiquement('nomVerna', $valeurs);
}
$this->infosPourTpl['noms'] = $verna;
}
private function classerAlphabetiquement($champs, $valeurs) {
$this->trieur->setTableau($valeurs);
$this->trieur->setChampsEtOrdres(array($champs => 'nat'));
return $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
$this->infosPourTpl['noms'][$idNom]['nomVerna'] = $this->surlignerMotsMasqueRecherche($nom['nomVerna']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
 
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/nom_vernaculaire/DeterminationVernaFormateur.php
New file
0,0 → 1,228
<?php
class DeterminationVernaFormateur implements Formateur {
 
const TPL_VUE = 'determination_verna';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
private $conteneur = null;
private $apiCartes = null;
 
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
$this->conteneur = new Conteneur();
$this->apiCartes = $this->conteneur->getApiCartes();
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->obtenirUrlsDessins();
$this->obtenirUrlsPhotos();
$this->chargerRepartition();
$this->extraireInfosNomsPourTplDetermination();
}
private function obtenirUrlsDessins() {
if (Config::get(Registre::get('parametres.referentiel').'.baseDessins') != "") {
$this->extraireInfosTaxons();
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins'));
$tax = implode(',', $this->infosPourTpl['taxons']);
$this->imagesService->setNnTaxon($tax);
$costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
if (!empty($costeImg)) {
foreach ($costeImg as $infos) {
$num_taxon = $infos['num_taxonomique'];
$images[$num_taxon][] = $infos['binaire.href'];
$this->infosPourTpl['imagesCoste'] = $images;
}
}
}
}
private function extraireInfosTaxons() {
foreach ($this->noms as $id => $nom ) {
if (array_key_exists('num_taxon', $nom)
&& array_key_exists('taxon', $nom)) {
$this->infosPourTpl['taxons'][$nom['taxon']] = $nom['num_taxon'];
}
}
}
 
private function obtenirUrlsPhotos() {
if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") {
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages'));
$nns = $this->extraireNnDesNoms();
$urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($nns);
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesUrls($urls);
}
}
 
private function extraireNnDesNoms() {
$nns = array();
foreach ($this->noms as $id => $nom) {
if (array_key_exists('nom_retenu.code', $nom)) {
if (in_array($nom['nom_retenu.code'], $nns) == false) {
$idAAjouter = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
if (is_numeric($idAAjouter)) {
$nns[] = $idAAjouter;
}
}
}
}
return $nns;
}
 
private function supprimerCodeReferentielDesUrls($urls) {
$urlsNettoyees = array();
foreach ($urls as $id => $url) {
$id = $this->supprimerCodeReferentiel($id);
$urlsNettoyees[$id] = $url;
}
return $urlsNettoyees;
}
 
private function supprimerCodeReferentiel($chaine) {
$codeReferentiel = $this->parametres->referentielCourant.'.';
$chaine = str_replace($codeReferentiel, '', $chaine);
return $chaine;
}
private function chargerRepartition() {
// $numsNomsASynonymes = $this->extraireNumerosNomSynonymes();
if (Config::get(Registre::get('parametres.referentiel').'.baseRepartition') == "") {
return;
}
 
$this->apiCartes->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition'));
$this->apiCartes->setLargeur('108x101');
$urls = array();
foreach ($this->noms as $nom) {
if (array_key_exists('nom_retenu.code', $nom)) {
$id = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
$this->apiCartes->setId("nn:" . $id); // . ',' . implode(',', array_keys($numsNomsASynonymes[$id])));
if (array_key_exists($id, $urls) == false) {
$urls[$id] = $this->apiCartes->getUrlPng();
}
}
}
$this->infosPourTpl['repartition']['urls'] = $urls;
}
private function extraireNumerosNomSynonymes() {
$numNomsASynonyme = array();
foreach ($this->noms as $id => $nom) {
$num_nom_retenu = $this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']);
// faux
$numNomsASynonyme[$num_nom_retenu][$id] = TRUE;
}
return $numNomsASynonyme;
}
private function extraireInfosNomsPourTplDetermination() {
$taxons = array();
foreach ($this->noms as $idNomCourant => $nom) {
$nn = intval($this->supprimerCodeReferentielAvecNn($nom['nom_retenu.code']));
$nomV = iconv('UTF-8', 'ASCII//TRANSLIT', strtolower($nom['nom_vernaculaire']));
if (preg_match('/^'.strtolower($this->parametres->masqueRecherche).'(?: |$)/', $nomV)) {
// au moins un debute par la requête
if (isset($taxons) && array_key_exists($nn, $taxons[0]) == false) {
$taxons[0][$nn] = $this->renvoyerInfosTaxon($nom['taxon'], $nn);
}
$taxons[0][$nn]['nomVerna'][] = $this->renvoyerInfosNomVerna($nom);
} else {
// contient
if (isset($taxons) && (!isset($taxons[1]) || array_key_exists($nn, $taxons[1]) == false)) {
$taxons[1][$nn] = $this->renvoyerInfosTaxon($nom['taxon'], $nn);
}
$taxons[1][$nn]['nomVerna'][] = $this->renvoyerInfosNomVerna($nom);
}
}
$this->infosPourTpl['noms'] = isset($taxons) ? $taxons : false;
}
private function renvoyerInfosNomVerna($valeurs) {
$nom_verna = array();
$nom_verna['nn'] = $valeurs['id'];
$nom_verna['nom_vernaculaire'] = $valeurs['nom_vernaculaire'];
return $nom_verna;
}
private function renvoyerInfosTaxon($nomSci, $nn) {
$taxon = array();
$taxon['nomSci'] = $nomSci;
$taxon['urlFiche'] = $this->urls->obtenirUrlFiche($nn, $this->parametres->typeNom, $this->parametres->masqueRecherche);
$this->chargerRepartition($nn);
$taxon['repartition_vignette'] = $this->infosPourTpl['repartition']['urls'];
return $taxon;
}
 
private function supprimerCodeReferentielAvecNn($nn) {
return str_replace($this->parametres->referentielCourant.'.nn:', '', $nn);
}
 
//tri alphabétique des noms scientifiques par catégorie (débute par , contient )
public function trier() {
$verna = array();
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs) {
$verna += $this->classerAlphabetiquement('nomSci', $valeurs);
}
$this->infosPourTpl['noms'] = $verna;
}
private function classerAlphabetiquement($champs, $valeurs) {
$this->trieur->setTableau($valeurs);
$this->trieur->setChampsEtOrdres(array($champs => 'nat'));
return $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
foreach ($nom['nomVerna'] as $idVerna => $nomVerna) {
$nom['nomVerna'][$idVerna]['nom_vernaculaire'] = $this->surlignerMotsMasqueRecherche($nomVerna['nom_vernaculaire']);
}
$this->infosPourTpl['noms'][$idNom] = $nom;
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
 
}
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/Formateur.php
New file
0,0 → 1,10
<?php
interface Formateur {
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null);
public function getTplInfos();
public function getTplNom();
public function formater();
public function trier();
public function surligner();
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/ResultatFormateurFabrique.php
New file
0,0 → 1,13
<?php
class ResultatFormateurFabrique {
 
public static function creer(ParametresResultats $parametres, Array $resultats){
$typeResultat = ucwords($parametres->typeResultat);
$typeNom = ($parametres->typeNom == 'nom_vernaculaire') ? 'Verna' : '';
$Classe = $typeResultat.$typeNom.'Formateur';
$ResultatFormateur = null;
if (class_exists($Classe)) return new $Classe($parametres, $resultats);
throw new Exception("La classe '$Classe' est introuvable.");
}
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/nom_scientifique/DeterminationFormateur.php
New file
0,0 → 1,274
<?php
class DeterminationFormateur implements Formateur {
 
const TPL_VUE = 'determination';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
private $manipulateurDeChaine = null;
private $imagesService = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
public function __construct(ParametresResultats $parametres, Array $resultats,
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null,
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) {
 
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->manipulateurDeChaine = is_null($manipulateurDeChaine) ? new ChaineManipulateur() : $manipulateurDeChaine;
$this->imagesService = is_null($imagesService) ? new Images($this->parametres->projetImg) : $imagesService;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->obtenirUrlsDessins();
$this->obtenirUrlsPhotos();
$this->chargerRepartition();
$this->extraireInfosNomsPourTplDetermination();
$this->infosPourTpl['urlWidget'] = Config::get('base_url_widget')."?referentiel=".Registre::get('parametres.referentiel');
}
private function obtenirUrlsDessins() {
if (Config::get(Registre::get('parametres.referentiel').'.baseDessins') != "") {
$this->extraireInfosTaxons();
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseDessins'));
$tax = implode(',', $this->infosPourTpl['taxons']);
$this->imagesService->setNnTaxon($tax);
$costeImg = $this->imagesService->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
if (!empty($costeImg)) {
foreach ($costeImg as $infos) {
$num_taxon = $infos['num_taxonomique'];
$images[$num_taxon][] = $infos['binaire.href'];
$this->infosPourTpl['dessins'] = $images;
}
}
}
}
private function extraireInfosTaxons() {
foreach ($this->noms as $id => $nom ) {
if (array_key_exists('num_taxonomique', $nom)) {
$this->infosPourTpl['taxons'][$id] = $nom['num_taxonomique'];
}
}
}
private function obtenirUrlsPhotos() {
if (Config::get(Registre::get('parametres.referentiel').'.baseImages') != "") {
$this->imagesService->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseImages'));
$ids = $this->extraireIdDesNoms();
$urls = $this->imagesService->setApi(Eflore::API_EFLORE)->getUrlsImagesParIdsNoms($ids);
$this->infosPourTpl['imagesUrls'] = $this->supprimerCodeReferentielDesIds($urls);
}
}
private function extraireIdDesNoms() {
$ids = array();
foreach ($this->noms as $id => $nom) {
$idAAjouter = $id;
if (is_numeric($idAAjouter)) {
$ids[] = $idAAjouter;
}
if (array_key_exists('nom_retenu.id', $nom)) {
if (in_array($nom['nom_retenu.id'], $ids) == false) {
$idAAjouter = $nom['nom_retenu.id'];
if (is_numeric($idAAjouter)) {
$ids[] = $idAAjouter;
}
}
}
}
return $ids;
}
private function extraireNumerosNomSynonymes() {
$numNomsASynonyme = array();
foreach ($this->noms as $id => $nom) {
// certains taxons requêtés via /bdtfx/noms?masque= n'ont pas de num_tax ni de num_nom_retenu
if(!isset($nom['nom_retenu.id'])) continue;
$num_nom_retenu = $nom['nom_retenu.id'];
if(!isset($numNomsASynonyme[$num_nom_retenu])) {
$numNomsASynonyme[$num_nom_retenu] = array();
}
$numNomsASynonyme[$num_nom_retenu][] = $id;
if($num_nom_retenu != $id) {
$numNomsASynonyme[$id] = $numNomsASynonyme[$num_nom_retenu];
}
}
return $numNomsASynonyme;
}
private function supprimerCodeReferentielDesIds($urls) {
$urlsNettoyees = array();
foreach ($urls as $id => $url) {
$id = $this->supprimerCodeReferentiel($id);
$urlsNettoyees[$id] = $url;
}
return $urlsNettoyees;
}
private function supprimerCodeReferentiel($chaine) {
$codeReferentiel = Registre::get('parametres.referentiel').'.';
$chaine = str_replace($codeReferentiel, '', $chaine);
return $chaine;
}
// TODO : utiliser le conteneur pour charger tous les objets de cette classe
private function chargerRepartition() {
if (Config::get(Registre::get('parametres.referentiel').'.baseRepartition') != "") {
$conteneur = new Conteneur();
$cartesWs = $conteneur->getApiCartes();
$cartesWs->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition'));
$cartesWs->setLargeur('108x101');
$urls = array();
$numsNomsASynonymes = $this->extraireNumerosNomSynonymes();
foreach ($this->noms as $id => $nom) {
if (array_key_exists('nom_retenu.id', $nom)) {
$id = $nom['nom_retenu.id'];
$idsNoms = $numsNomsASynonymes[$id];
$cartesWs->setId("nn:".implode(',',$idsNoms)."");
if (array_key_exists($id, $urls) == false) {
$urls[$id] = $cartesWs->getUrlPng();
}
}
}
$this->infosPourTpl['repartition']['urls'] = $urls;
}
}
 
private function extraireInfosNomsPourTplDetermination() {
$tri = $this->diviserResultats();
$this->infosPourTpl['nomsSansCorrespondance'] = isset($tri['sansCorres']) ? $tri['sansCorres'] : false;
$this->infosPourTpl['noms'] = isset($tri['retenus']) ? $tri['retenus'] : false;
$this->infosPourTpl['synonymes'] = isset($tri['synonymes'] ) ? $tri['synonymes'] : false;
}
/**
* division ordonnée par
* 1 - noms retenus qui commencent par la requete
* 2 - requete contenue dans un synonyme dont le nom retenu ne contient pas la requete
* 3 - requete contenue dans un hybride retenu
* 4 - requete contenue dans un nom retenu mais pas au début
* 5 - requete contenue dans un nom sans correspondance
*
*/
private function diviserResultats() {
$tri = array();
$sansCorres = array();
$synonymes = array();
$retenus = array();
foreach ($this->noms as $cle => $valeurs) {
if ($valeurs['nom_retenu.libelle'] == null) {//sans correspondances
$sansCorres[$cle] = $valeurs['nom_sci_complet'];
} elseif ($valeurs['retenu'] == 'true') { // retenus
if (preg_match('/ x |^x /',$valeurs['nom_sci'] ) ) {
//hybrides
$retenus[2][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
} elseif (strripos($valeurs['nom_sci_complet'], $this->parametres->masqueRecherche) === 0) {//preg_match('/^'.strtolower($this->parametres->masqueRecherche).' |^'.strtolower($this->parametres->masqueRecherche).'$/', strtolower($valeurs['nom_sci']) ) ) {
//commence par
$retenus[0][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
} else {
//contient
$retenus[3][$cle] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_sci_complet'], $valeurs['rang.libelle']);
}
} else {//synonymes
$idNomRetenu = $valeurs['nom_retenu.id'];
if (in_array($valeurs['nom_retenu.id'], array_keys($this->noms)) == false) {
//synonymes dont le nom retenu n'est pas un résultat de recherche
$retenus[1][$idNomRetenu] = $this->retournerInfosNomRetenu($cle,$valeurs['nom_retenu.libelle'], $valeurs['rang.libelle']);
$this->infosPourTpl['taxons'][$idNomRetenu] = $valeurs['num_taxonomique']; //num taxon pour images coste
}
$synonymes[$idNomRetenu][] = $this->retournerInfosSynonyme($cle, $valeurs);
}
}
ksort($retenus);
$tri['retenus'] = $retenus;
$tri['synonymes'] = $synonymes;
$tri['sansCorres'] = $sansCorres;
return $tri;
}
private function retournerInfosNomRetenu($cle, $nom_sci, $rang) {
$infos = array();
$infos['nomSciRetenu'] = $nom_sci;
$infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, strtolower($this->parametres->masqueRecherche), $nom_sci);
$infos['rang'] = $rang;
return $infos;
}
private function retournerInfosSynonyme($cle, $valeurs) {
$infos = array();
$infos['nn'] = $cle;
$infos['nomSci'] = $valeurs['nom_sci_complet'];
$infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, $this->parametres->masqueRecherche, $valeurs['nom_retenu.libelle']);
return $infos;
}
public function trier() {
$nomsRetenus = array();
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs ) { //classement alpha par groupes
$nomsRetenus += $this->classerAlphabetiquement('nomSciRetenu', $valeurs);
}
$this->infosPourTpl['noms'] = $nomsRetenus;
$this->infosPourTpl['nomsSansCorrespondance'] =
$this->classerAlphabetiquement('nomSciRetenu', $this->infosPourTpl['nomsSansCorrespondance'] );
}
private function ajouterAuxNomsScoreSimilariteAvec($masque) {
$nom_demande_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($masque));
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$nom_flou_ss = strtolower($this->manipulateurDeChaine->supprimerAccents($nom['nomSciRetenu']));
$stat = array();
// Prime pour la ressemblance globale :
$score = 500 - levenshtein($nom_flou_ss, $nom_demande_ss);
// On affine
$score = $score + (similar_text($nom_demande_ss, $nom_flou_ss) * 3);
$nom['score'] = $score;
$this->infosPourTpl['noms'][$id] = $nom;
}
}
private function classerAlphabetiquement($champs, $valeurs) {
$this->trieur->setTableau($valeurs);
$this->trieur->setChampsEtOrdres(array($champs => 'nat'));
return $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) {
$this->infosPourTpl['noms'][$idNom]['nomSciRetenu'] = $this->surlignerMotsMasqueRecherche($nom['nomSciRetenu']);
if (isset($this->infosPourTpl['synonymes'][$idNom])) {
foreach ($this->infosPourTpl['synonymes'][$idNom] as $idSyn => $synonyme) {
$this->infosPourTpl['synonymes'][$idNom][$idSyn]['nomSci'] = $this->surlignerMotsMasqueRecherche($synonyme['nomSci']);
}
}
}
}
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/nom_scientifique/RetenuFormateur.php
New file
0,0 → 1,88
<?php
class RetenuFormateur implements Formateur {
 
const TPL_VUE = 'liste_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $fusioneur = null;
 
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null,
Trieur $trieur = null, AppUrls $urls = null, TableauManipulateur $tableau = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
$this->fusioneur = (is_null($tableau)) ? new TableauManipulateur() : $tableau;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci_complet'];
$infosDuNom['retenu'] = $nom['retenu'];
$nom_retenu = $nom['retenu'] == 'true' ? $nom['nom_sci'] : '';
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id, $this->parametres->typeNom, $this->parametres->masqueRecherche);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$nomsRetenus = array();
$nomsSynonymes = array();
 
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
if ($nom['retenu'] == 'true') {
$nomsRetenus[$id] = $nom;
} else {
$nomsSynonymes[$id] = $nom;
}
}
 
$this->trieur->setTableau($nomsRetenus);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$nomsRetenus = $this->trieur->trier();
 
$this->trieur->setTableau($nomsSynonymes);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$nomsSynonymes = $this->trieur->trier();
 
$this->fusioneur->setTableau($nomsRetenus);
$this->fusioneur->etendreAvec($nomsSynonymes);
$this->infosPourTpl['noms'] = $this->fusioneur->getTableau();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/nom_scientifique/DecompoFormateur.php
New file
0,0 → 1,72
<?php
class DecompoFormateur implements Formateur {
 
const TPL_VUE = 'decomposition';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
$this->infosPourTpl['masqueRecherche'] = rawurlencode($this->parametres->masqueRecherche);
$this->infosPourTpl['baseUrlIco'] = $this->urls->obtenirUrlBaseDossier();
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci'];
$infosDuNom['retenu'] = $nom['retenu'];
$infosDuNom['auteur'] = is_null($nom['auteur']) ? '' : $nom['auteur'];
$infosDuNom['annee'] = is_null($nom['annee']) ? '' : $nom['annee'];
$infosDuNom['biblio'] = is_null($nom['biblio_origine']) ? '' : $nom['biblio_origine'];
$infosDuNom['addendum'] = is_null($nom['nom_addendum']) ? '' : $nom['nom_addendum'];
$infosDuNom['nn'] = $id;
$nom_retenu = $nom['retenu'] == 'true' ? $nom['nom_sci'] : '';
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id, $this->parametres->typeNom, $this->parametres->masqueRecherche);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$this->trieur->setTableau($this->infosPourTpl['noms']);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$this->infosPourTpl['noms'] = $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.2-lasegue/modules/resultat/formateurs/nom_scientifique/AlphabFormateur.php
New file
0,0 → 1,65
<?php
class AlphabFormateur implements Formateur {
 
const TPL_VUE = 'liste_noms';
 
private $parametres = null;
private $surligneur = null;
private $trieur = null;
private $urls = null;
private $motsASurligner = array();
private $noms = array();
private $infosPourTpl = array();
 
public function __construct(ParametresResultats $parametres, Array $resultats, Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null) {
$this->parametres = $parametres;
$this->noms = $resultats['resultat'];
$this->surligneur = (is_null($surligneur)) ? new Surligneur() : $surligneur;
$this->trieur = (is_null($trieur)) ? new Trieur() : $trieur;
$this->urls = (is_null($urls)) ? new AppUrls() : $urls;
}
 
public function getTplInfos() {
return $this->infosPourTpl;
}
 
public function getTplNom() {
return self::TPL_VUE;
}
 
public function formater() {
foreach ($this->noms as $id => $nom) {
$infosDuNom = array();
$infosDuNom['nomSci'] = $nom['nom_sci_complet'];
$infosDuNom['retenu'] = $nom['retenu'];
$nom_retenu = $nom['retenu'] == 'true' ? $nom['nom_sci'] : '';
$infosDuNom['urlFiche'] = $this->urls->obtenirUrlFiche($id, $this->parametres->typeNom, $this->parametres->masqueRecherche);
 
$this->infosPourTpl['noms'][$id] = $infosDuNom;
}
}
 
public function trier() {
$this->trieur->setTableau($this->infosPourTpl['noms']);
$this->trieur->setChampsEtOrdres(array('nomSci' => SORT_ASC));
$this->infosPourTpl['noms'] = $this->trieur->trier();
}
 
public function surligner() {
$this->definirMotsASurligner();
foreach ($this->infosPourTpl['noms'] as $id => $nom) {
$this->infosPourTpl['noms'][$id]['nomSci'] = $this->surlignerMotsMasqueRecherche($nom['nomSci']);
}
}
 
private function definirMotsASurligner() {
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche);
}
 
private function surlignerMotsMasqueRecherche($nom) {
$this->surligneur->setTexte($nom);
$nom = $this->surligneur->surlignerMots($this->motsASurligner);
return $nom;
}
}
?>
/branches/v5.2-lasegue/modules/resultat/Resultat.php
New file
0,0 → 1,206
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Resultat extends aControleur {
 
private $parametres = null;
private $resultats = null;
private $donneesTpl = array();
private $i18n = array();
private $parametresAvancesGeneriques = array('gen','fam','nn','nt','sp','ssp','type','sto','sti','stc');
 
public function initialiser() {
spl_autoload_register(array($this, 'chargerClassesResultat'));
$this->parametres = new ParametresResultats();
$this->capturerParametres();
$this->capturerParametresAvances();
$this->parametres->referentielCourant = Registre::get('parametres.referentiel');
$this->parametres->projetImg = Config::get($this->parametres->referentielCourant.'.baseImages');
$this->resultats = Registre::get('resultats');
$this->i18n = I18n::get('Recherche-form-avancee');
}
 
private function chargerClassesResultat($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'formateurs'.DS;
$cheminFormateursNs = $cheminFormateurs.'nom_scientifique'.DS;
$cheminFormateursNv = $cheminFormateurs.'nom_vernaculaire'.DS;
$dossiers = array($base, $cheminFormateurs, $cheminFormateursNs, $cheminFormateursNv);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function capturerParametres() {
$this->parametres->masqueRecherche = "";
if (isset($_GET['resultat'])) {
$this->parametres->typeResultat = $_GET['resultat'];
}
if (isset($_GET['nom'])) {
$this->parametres->masqueRecherche = trim($_GET['nom']);
}
//recherche avancee type
if (isset($_GET['fam'])) {
$this->parametres->masqueRecherche .= trim($_GET['fam']);
}
if (isset($_GET['gen'])) {
$this->parametres->masqueRecherche .= trim($_GET['gen']);
}
if (isset($_GET['sp'])) {
$this->parametres->masqueRecherche .= trim($_GET['sp']);
}
if (isset($_GET['ssp'])) {
$this->parametres->masqueRecherche .= trim($_GET['ssp']);
}
if (isset($_GET['and'])) {
$this->parametres->masqueRecherche .= trim($_GET['and']);
}
if (isset($_GET['anf'])) {
$this->parametres->masqueRecherche .= trim($_GET['anf']);
}
if (isset($_GET['au'])) {
$this->parametres->masqueRecherche .= trim($_GET['au']);
}
if (isset($_GET['bib'])) {
$this->parametres->masqueRecherche .= trim($_GET['bib']);
}
if (isset($_GET['type_nom'])) {
$this->parametres->typeNom = $_GET['type_nom'];
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
}
private function capturerParametresAvances() {
$this->capturerParametresAvancesGeneriques();
$this->capturerParametresAvancesDependantsLangage();
$this->capturerParametresAvancesPresenceSpecifiques();
}
private function capturerParametresAvancesGeneriques() {
foreach($this->parametresAvancesGeneriques as $param) {
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = urldecode($_GET[$param]);
}
}
}
private function capturerParametresAvancesDependantsLangage() {
if (isset($_GET['au']) && $_GET['au'] != ''
&& $_GET['au'] != urlencode($this->i18n['valeur-form-auteur'])) {
$this->param['au'] = urldecode($_GET['au']);
}
if (isset($_GET['bib']) && $_GET['bib'] != ''
&& $_GET['bib'] != urlencode($this->i18n['valeur-form-bib'])) {
$this->param['bib'] = urldecode($_GET['bib']);
}
if (isset($_GET['and']) && $_GET['and'] != ''
&& $_GET['and'] != urlencode($this->i18n['valeur-form-date'])) {
$this->param['and'] = urldecode($_GET['and']);
}
if (isset($_GET['anf']) && $_GET['anf'] != ''
&& $_GET['anf'] != urlencode($this->i18n['valeur-form-date'])) {
$this->param['anf'] = urldecode($_GET['anf']);
}
}
private function capturerParametresAvancesPresenceSpecifiques() {
$champs_presence = $this->obtenirChampsPresence();
foreach($champs_presence as $champ) {
$param = $champ['param'];
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = urldecode($_GET[$param]);
}
}
}
private function obtenirChampsPresence() {
$tableau_champs_presence = array();
$referentiel = Registre::get('parametres.referentiel');
$champs_presence = Config::get($referentiel.'.champsPresence');
$champs_presence_spl = explode('|', $champs_presence);
foreach($champs_presence_spl as $champ) {
$label_param_champ = explode(':', $champ);
if(count($label_param_champ) >= 2) {
$tableau_champs_presence[] = array('param' => $label_param_champ[1],
'label' => $label_param_champ[0]);
}
}
return $tableau_champs_presence;
}
 
public function executerActionParDefaut() {
$this->executerResultat();
}
 
public function executerResultat() {
$this->chargerOnglets();
$this->chargerNbreDeTaxons();
$this->chargerNomsFormates();
$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $this->donneesTpl));
}
 
private function chargerOnglets() {
$donnees = array();
$donnees['typeResultat'] = $this->parametres->typeResultat;
$donnees['typeNom'] = $this->parametres->typeNom;
$donnees['ongletsNs'] = array('determination', 'retenu', 'decompo');
$donnees['ongletsNv'] = array('determination', 'alphab');
if (@$_GET['action'] == 'rechercheAvancee') {
$donnees['urls']['alphab'] = $this->urls->obtenirUrlResultatAvanceOnglets('alphab', $this->param);
$donnees['urls']['retenu'] = $this->urls->obtenirUrlResultatAvanceOnglets('retenu', $this->param);
$donnees['urls']['determination'] = $this->urls->obtenirUrlResultatAvanceOnglets('determination',$this->param);
$donnees['urls']['decompo'] = $this->urls->obtenirUrlResultatAvanceOnglets('decompo',$this->param);
} else {
$donnees['urls']['alphab'] = $this->urls->obtenirUrlResultatAlphab();
$donnees['urls']['retenu'] = $this->urls->obtenirUrlResultatRetenu();
$donnees['urls']['determination'] = $this->urls->obtenirUrlResultatDetermination();
$donnees['urls']['decompo'] = $this->urls->obtenirUrlResultatDecompo();
}
$donnees['i18n']['nv'] = I18n::get('Resultat-onglets-nv');
$donnees['i18n']['ns'] = I18n::get('Resultat-onglets-ns');
$this->donneesTpl['ongletsHtml'] = $this->getVue('onglets', $donnees);
}
 
private function chargerNbreDeTaxons() {
$this->donneesTpl['nbreTaxons'] = $this->resultats['entete']['total'];
}
 
private function chargerNomsFormates() {
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt mise en forme des noms");
$formateur = ResultatFormateurFabrique::creer($this->parametres, $this->resultats);
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt formatage des noms");
$formateur->formater();
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt triage des noms");
$formateur->trier();
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt surlignage des noms");
$formateur->surligner();
if (Config::get('benchmark_chrono')) Chronometre::chrono("Avt création de la vue");
$this->donneesTpl['nomsHtml'] = $this->getVue($formateur->getTplNom(), $formateur->getTplInfos());
if (Config::get('benchmark_chrono')) Chronometre::chrono("Après mise en forme des noms");
}
}
?>
/branches/v5.2-lasegue/modules/mobile/presentations/icones/zoom.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.2-lasegue/modules/mobile/presentations/icones/zoom.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.2-lasegue/modules/mobile/presentations/icones/altitude.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.2-lasegue/modules/mobile/presentations/icones/altitude.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.2-lasegue/modules/mobile/presentations/logos/tela.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.2-lasegue/modules/mobile/presentations/logos/tela.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.2-lasegue/modules/mobile/presentations/logos/tela_transparent.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v5.2-lasegue/modules/mobile/presentations/logos/tela_transparent.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v5.2-lasegue/modules/mobile/presentations/less/gentiana.less
New file
0,0 → 1,155
@import "functions.less";
 
.couleur1-bg { background: @orange; }
.couleur2-bg { background: @vert-moyen; }
.bordered { border: 1px solid @vert-fonce; }
 
.accordion {
h4 {
margin-left: -1em;
}
}
.accordion-group {
margin: 0pt;
}
.accordion-heading {
padding-left: 1em;
}
.btn-large {
padding: 10px;
font-size: 17px;
}
 
body {
color: black;
background: white;
}
 
header {
.couleur2-bg;
color: white;
#tela {
background: url("../logos/tela_transparent.png") no-repeat 2px 6px;
}
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
.shadow(@orange);
}
}
.gradient-bas {
@top: left top;
@bottom: left bottom;
.gradient(@vert-moyen, @top, white, @bottom);
}
 
footer {
display: none;
}
 
 
.sci {
font-style: italic;
}
 
#principal {
margin-bottom: -1em;
padding-left: 0.5em;
a:hover {
text-decoration: none;
}
h4 {
font-size: 17px;
color: @orange;
.shadow(white, 2px, 1px, 1px);
}
}
 
#canvas_fleur, #canvas_fruit {
width: 100%;
}
#floraison_value, #fructification_value {
display: none;
}
 
 
.wrapper {
@square: 120px;
width: @square;
height: @square;
.margin-center;
overflow: hidden;
img {
height: @square;
width: auto;
}
ul {
margin: 0pt;
}
}
 
.wrapper_carte {
.margin-center;
ul {
margin: 0pt;
}
 
#galerie_carte {
img {
.bordered;
}
}
}
 
.wrapper_demi {
height: 59px;
}
 
#galerie_carte {
list-style-type: none;
}
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
.en-savoir-plus {
margin-left: 0.2em;
float: left;
.couleur2-bg;
color: white;
text-shadow: 0pt 0pt 0pt black;
}
.en-savoir-plus:hover, .en-savoir-plus:visited {
text-decoration: none;
}
 
 
.haut-de-page {
margin-right: 0.2em;
float: right;
background: black;
color: white;
}
.haut-de-page:hover, .haut-de-page:visited {
text-decoration: none;
}
 
 
/branches/v5.2-lasegue/modules/mobile/presentations/less/README
New file
0,0 → 1,6
1./ Installer les paquets de LESS (sous Mageia: ruby-less)
Dans la description, il doit y avoir une mention du mot "CSS".
 
2./ En ligne de commande, se déplacer dans le dossier contenant les fichiers LESS.
Pour convertir le fichier "fichier.less" en "fichier.css", la commande est :
lessc fichier.less > fichier.css
/branches/v5.2-lasegue/modules/mobile/presentations/less/functions.less
New file
0,0 → 1,45
@gris: #6B7071;
@orange: #ED7826;
@orange-moyen: #F3B88F;
@rouge: rgb(225, 96, 57);
@vert-fonce: #256226;
@vert-moyen: #88AB1C;
@violet: rgb(176, 77, 255);
 
.align-center { text-align: center; }
.margin-center {
margin-left: auto;
margin-right: auto;
}
.margin-bottom-05em { margin-bottom: 0.5em; }
.margin-right-05em { margin-right: 0.5em; }
.margin-top-05em { margin-top: 0.5em; }
 
.padding-05em { padding: 0.5em; }
.padding-left-1em { padding-left: 1em; }
.padding-left-01em { padding-left: 0.1em; }
 
.small-caps { font-variant:small-caps; }
 
.gradient(@color_start:'', @position_start:'', @color_end:'', @position_end:'') {
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
 
background-image: -webkit-gradient(linear, @position_start, @position_end, color-stop(0, @color_start), color-stop(1, @color_end));
 
height: 16px;
display: block;
}
 
.shadow(@color:'', @decalage-x: 0pt, @decalage-y: 1px, @fondu: 1px) {
text-shadow: @decalage-x @decalage-y @fondu @color;
}
 
.border-radius(@radius: 2em) {
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.2-lasegue/modules/mobile/presentations/less/pyracantha_blanc.less
New file
0,0 → 1,94
@import "pyracantha.less";
 
.couleur1-bg { background: white; }
.couleur2-bg { background: white; }
 
 
body {
background: white;
}
 
 
header {
background: @vert-moyen;
}
 
 
.tela {
img {
@width: 60px;
width: @width;
max-width: @width;
}
}
 
 
.titre {
color: white;
.shadow(@orange);
}
 
 
.infos {
 
.bg {
padding: 0.2em;
border-radius: 0pt 0pt 1em 1em;
}
.btn {
padding: 0pt;
border-radius: 1em 1em 0pt 0pt;
}
.collapse {
width: 100%;
}
h4 {
color: @orange;
}
.textes {
padding: 0.5em 1em;
.border-radius(2em);
-webkit-overflow-scrolling: touch;
h4 {
color: @vert-fonce;
.shadow(@vert-moyen, 2px, 1px, 1px);
}
}
}
 
 
.resume {
color: black;
}
 
 
.gradient-bas {
@top: left top;
@bottom: left bottom;
@color_start: @vert-moyen;
@color_end: white;
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-gradient(linear, @top, @bottom, color-stop(0, @color_start), color-stop(1, @color_end));
}
 
.en-savoir-plus {
color: white;
background: @vert-moyen;
}
 
.haut-de-page {
color: white;
background: black;
}
/branches/v5.2-lasegue/modules/mobile/presentations/less/pyracantha.less
New file
0,0 → 1,166
@import "functions.less";
 
.gradient-bas {
height: 16px;
display: block;
}
 
footer {
height: 60px;
width: 100%;
left: 0;
right: 0;
bottom: 0;
position: fixed;
z-index: 1000;
color: white;
background: black;
a, a:visited {
color: white;
}
}
 
.tela {
margin-right: 0.5em;
}
 
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
 
.sci {
font-style: italic;
}
 
#div-infos-latin, #div-infos-famille {
.margin-center;
.btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
a {
font-size: 16px;
}
}
 
#div-infos-famille {
margin-top: -1em;
}
#div-illustrations {
.border-radius(2em);
background: white;
margin-top: -1em;
padding-top: 20px;
padding-bottom: 20px;
}
 
 
#galerie_carte {
list-style-type: none;
}
 
@height: 260px;
#slider-pictures {
max-width: 320px;
.margin-center;
.carousel {
margin-bottom: 0pt;
}
.carousel-control {
background: none;
}
 
 
.carousel-inner > .item > img {
width: 320px;
max-height: 310px;
}
.carousel-indicators {
li {
background: @vert-fonce;
}
.active {
background: @orange;
}
}
.carousel-caption {
padding: 10px;
position: static;
h4 {
font-size: 100%;
}
p {
font-size: 90%;
}
}
 
img {
.margin-center;
}
}
 
 
#gstn-img {
max-height: 120px;
margin: 0.5em 0pt 1em 0pt;
display: inline-block;
img {
border: #EAEAEA 2px solid;
width: 100px;
}
 
 
.zoom {
margin-top: 40px;
width: 20px;
border: none;
}
}
 
 
.resume {
.align-center;
margin-top: 1em;
margin-bottom: 1em;
font-size: 16px;
}
 
 
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
 
.en-savoir-plus {
float: left;
text-shadow: 0pt 0pt 0pt black;
}
 
.haut-de-page {
float: right;
}
/branches/v5.2-lasegue/modules/mobile/presentations/less/pyracantha_vert.less
New file
0,0 → 1,92
@import "pyracantha.less";
 
.couleur1-bg { background: #9ac342; }
.couleur2-bg { background: #88ab1c; }
 
 
body {
background: white;
}
 
 
header {
background: @vert-moyen;
}
 
 
.tela {
img {
@width: 60px;
width: @width;
max-width: @width;
}
}
 
 
.titre {
color: white;
.shadow(@orange);
}
 
 
.infos {
 
.bg {
padding: 0.2em;
border-radius: 0pt 0pt 1em 1em;
}
.btn {
padding: 0pt;
border-radius: 1em 1em 0pt 0pt;
}
.collapse {
width: 100%;
}
.textes {
padding: 0.5em 1em;
.border-radius(2em);
background: white;
-webkit-overflow-scrolling: touch;
h4 {
color: @vert-fonce;
.shadow(@vert-moyen, 2px, 1px, 1px);
}
}
}
 
 
.resume {
color: black;
}
 
 
.gradient-bas {
@top: left top;
@bottom: left bottom;
@color_start: @vert-moyen;
@color_end: white;
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-gradient(linear, @top, @bottom, color-stop(0, @color_start), color-stop(1, @color_end));
}
 
.en-savoir-plus {
color: white;
background: @violet;
}
 
.haut-de-page {
color: white;
background: black;
}
/branches/v5.2-lasegue/modules/mobile/presentations/less/pyracantha_tela.less
New file
0,0 → 1,97
@import "pyracantha.less";
 
.couleur1-bg { background: @orange; }
.couleur2-bg { background: @vert-moyen; }
 
 
body {
background: @vert-fonce;
}
 
 
header {
background: white;
}
 
 
.tela {
img {
@width: 80px;
width: @width;
max-width: @width;
}
}
 
 
.titre {
color: black;
.shadow(@orange);
}
 
 
.infos {
 
.bg {
padding: 1em;
.border-radius(2em);
}
.btn {
padding: 0pt;
.border-radius(2em);
}
.collapse {
width: 100%;
}
@max-height: 220px;
.textes {
padding: 1em;
.border-radius(2em);
max-height: @max-height;
overflow: auto;
background: @orange-moyen;
-webkit-overflow-scrolling: touch;
h4 {
color: @vert-fonce;
.shadow(@vert-moyen, 2px, 1px, 1px);
}
}
}
 
 
 
.resume {
color: white;
}
 
 
.gradient-bas {
@top: left top;
@bottom: left bottom;
@color_start: white;
@color_end: @vert-fonce;
background-image: linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -o-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -moz-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -ms-linear-gradient(top, @color_start 0%, @color_end 100%);
background-image: -webkit-gradient(linear, @top, @bottom, color-stop(0, @color_start), color-stop(1, @color_end));
}
 
.en-savoir-plus {
color: white;
background: @violet;
}
 
.haut-de-page {
color: white;
background: black;
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.2-lasegue/modules/mobile/presentations/css/pyracantha_tela.css
New file
0,0 → 1,187
.align-center { text-align: center; }
.margin-center {
margin-left: auto;
margin-right: auto;
}
.margin-bottom-05em { margin-bottom: 0.5em; }
.margin-right-05em { margin-right: 0.5em; }
.margin-top-05em { margin-top: 0.5em; }
.padding-05em { padding: 0.5em; }
.padding-left-1em { padding-left: 1em; }
.small-caps { font-variant: small-caps; }
.btn-large {
padding: 10px;
font-size: 17px;
}
.gradient-bas {
height: 16px;
display: block;
}
footer {
height: 60px;
width: 100%;
left: 0;
right: 0;
bottom: 0;
position: fixed;
z-index: 1000;
color: white;
background: black;
}
footer a { color: white; }
footer a:visited { color: white; }
.tela { margin-right: 0.5em; }
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.sci { font-style: italic; }
#div-infos { background: white; }
#div-infos-latin {
margin-left: auto;
margin-right: auto;
}
#div-infos-latin .btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
#div-infos-latin a { font-size: 16px; }
#div-infos-famille {
margin-left: auto;
margin-right: auto;
}
#div-infos-famille .btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
#div-infos-famille a { font-size: 16px; }
#div-infos-famille { margin-top: -1em; }
#div-illustrations {
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
background: white;
margin-top: -1em;
padding-top: 20px;
padding-bottom: 20px;
}
#galerie_carte { list-style-type: none; }
#slider-pictures {
max-width: 320px;
margin-left: auto;
margin-right: auto;
}
#slider-pictures .carousel { margin-bottom: 0pt; }
#slider-pictures .carousel-control { background: none; }
#slider-pictures .carousel-inner > .item > img {
width: 320px;
max-height: 310px;
}
#slider-pictures .carousel-indicators li { background: #256226; }
#slider-pictures .carousel-indicators .active { background: #ed7826; }
#slider-pictures .carousel-caption {
padding: 10px;
position: static;
}
#slider-pictures .carousel-caption h4 { font-size: 100%; }
#slider-pictures .carousel-caption p { font-size: 90%; }
#slider-pictures img {
margin-left: auto;
margin-right: auto;
}
#gstn-img {
max-height: 120px;
margin: 0.5em 0pt 1em 0pt;
display: inline-block;
}
#gstn-img img {
border: #eaeaea 2px solid;
width: 100px;
}
#gstn-img .zoom {
margin-top: 40px;
width: 20px;
border: none;
}
.resume {
text-align: center;
margin-top: 1em;
margin-bottom: 1em;
font-size: 16px;
}
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
.en-savoir-plus {
float: left;
text-shadow: 0pt 0pt 0pt black;
}
.haut-de-page { float: right; }
.couleur1-bg { background: #ed7826; }
.couleur2-bg { background: #88ab1c; }
body { background: #256226; }
header { background: white; }
.tela img {
width: 80px;
max-width: 80px;
}
.titre {
color: black;
text-shadow: 0pt 1px 1px #ed7826;
}
.infos .bg {
padding: 1em;
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
}
.infos .btn {
padding: 0pt;
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
}
.infos .collapse { width: 100%; }
.infos .textes {
padding: 1em;
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
max-height: 220px;
overflow: auto;
background: #f3b88f;
-webkit-overflow-scrolling: touch;
}
.infos .textes h4 {
color: #256226;
text-shadow: 2px 1px 1px #88ab1c;
}
.resume { color: white; }
.gradient-bas {
background-image: linear-gradient(top, white 0%, #256226 100%);
background-image: -o-linear-gradient(top, white 0%, #256226 100%);
background-image: -moz-linear-gradient(top, white 0%, #256226 100%);
background-image: -webkit-linear-gradient(top, white 0%, #256226 100%);
background-image: -ms-linear-gradient(top, white 0%, #256226 100%);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, white), color-stop(1, #256226));
}
.en-savoir-plus {
margin-left: 0.2em;
float: left;
color: white;
background: #b04dff;
}
.haut-de-page {
margin-right: 0.2em;
float: right;
color: white;
background: black;
}
/branches/v5.2-lasegue/modules/mobile/presentations/css/gentiana.css
New file
0,0 → 1,102
.align-center { text-align: center; }
.margin-center {
margin-left: auto;
margin-right: auto;
}
.margin-bottom-05em { margin-bottom: 0.5em; }
.margin-right-05em { margin-right: 0.5em; }
.margin-top-05em { margin-top: 0.5em; }
.padding-05em { padding: 0.5em; }
.padding-left-1em { padding-left: 1em; }
.padding-left-01em { padding-left: 0.1em; }
.small-caps { font-variant: small-caps; }
.couleur1-bg { background: #ed7826; }
.couleur2-bg { background: #88ab1c; }
.bordered { border: 1px solid #256226; }
.accordion h4 { margin-left: -1em; }
.accordion-group { margin: 0pt; }
.accordion-heading { padding-left: 1em; }
.btn-large {
padding: 10px;
font-size: 17px;
}
body {
color: black;
background: white;
}
header {
background: #88ab1c;
color: white;
}
header #tela { background: url("../logos/tela_transparent.png") no-repeat 2px 6px; }
header .titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
text-shadow: 0pt 1px 1px #ed7826;
}
.gradient-bas {
background-image: linear-gradient(top, '' 0%, '' 100%);
background-image: -o-linear-gradient(top, '' 0%, '' 100%);
background-image: -moz-linear-gradient(top, '' 0%, '' 100%);
background-image: -webkit-linear-gradient(top, '' 0%, '' 100%);
background-image: -ms-linear-gradient(top, '' 0%, '' 100%);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #88ab1c), color-stop(1, white));
height: 16px;
display: block;
}
footer { display: none; }
.sci { font-style: italic; }
#principal {
margin-bottom: -1em;
padding-left: 0.5em;
}
#principal a:hover { text-decoration: none; }
#principal h4 {
font-size: 17px;
color: #ed7826;
text-shadow: 2px 1px 1px white;
}
#canvas_fleur, #canvas_fruit { width: 100%; }
#floraison_value, #fructification_value { display: none; }
.wrapper {
width: 120pp;
height: 120px;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
.wrapper img {
height: 120px;
width: auto;
}
.wrapper_demi { height: 59px; }
.wrapper ul { margin: 0pt; }
.wrapper_carte {
margin-left: auto;
margin-right: auto;
}
.wrapper_carte ul { margin: 0pt; }
.wrapper_carte #galerie_carte img { border: 1px solid #256226; }
#galerie_carte { list-style-type: none; }
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
.en-savoir-plus {
margin-left: 0.2em;
float: left;
background: #88ab1c;
color: white;
text-shadow: 0pt 0pt 0pt black;
}
.en-savoir-plus:hover { text-decoration: none; }
.en-savoir-plus:visited { text-decoration: none; }
.haut-de-page {
margin-right: 0.2em;
float: right;
background: black;
color: white;
}
.haut-de-page:hover { text-decoration: none; }
.haut-de-page:visited { text-decoration: none; }
/branches/v5.2-lasegue/modules/mobile/presentations/css/pyracantha_blanc.css
New file
0,0 → 1,179
.align-center { text-align: center; }
.margin-center {
margin-left: auto;
margin-right: auto;
}
.margin-bottom-05em { margin-bottom: 0.5em; }
.margin-right-05em { margin-right: 0.5em; }
.margin-top-05em { margin-top: 0.5em; }
.padding-05em { padding: 0.5em; }
.padding-left-1em { padding-left: 1em; }
.small-caps { font-variant: small-caps; }
.btn-large {
padding: 10px;
font-size: 17px;
}
.gradient-bas {
height: 16px;
display: block;
}
footer {
height: 60px;
width: 100%;
left: 0;
right: 0;
bottom: 0;
position: fixed;
z-index: 1000;
color: white;
background: black;
}
footer a { color: white; }
footer a:visited { color: white; }
.tela { margin-right: 0.5em; }
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.sci { font-style: italic; }
#div-infos { background: #88ab1c; }
#div-infos-latin {
margin-left: auto;
margin-right: auto;
}
#div-infos-latin .btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
#div-infos-latin a { font-size: 16px; }
#div-infos-famille {
margin-left: auto;
margin-right: auto;
}
#div-infos-famille .btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
#div-infos-famille a { font-size: 16px; }
#div-infos-famille { margin-top: -1em; }
#div-illustrations {
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
background: white;
margin-top: -1em;
padding-top: 20px;
padding-bottom: 20px;
}
#galerie_carte { list-style-type: none; }
#slider-pictures {
max-width: 320px;
margin-left: auto;
margin-right: auto;
}
#slider-pictures .carousel { margin-bottom: 0pt; }
#slider-pictures .carousel-control { background: none; }
#slider-pictures .carousel-inner > .item > img {
width: 320px;
max-height: 310px;
}
#slider-pictures .carousel-indicators li { background: #256226; }
#slider-pictures .carousel-indicators .active { background: #ed7826; }
#slider-pictures .carousel-caption {
padding: 10px;
position: static;
}
#slider-pictures .carousel-caption h4 { font-size: 100%; }
#slider-pictures .carousel-caption p { font-size: 90%; }
#slider-pictures img {
margin-left: auto;
margin-right: auto;
}
#gstn-img {
max-height: 120px;
margin: 0.5em 0pt 1em 0pt;
display: inline-block;
}
#gstn-img img {
border: #eaeaea 2px solid;
width: 100px;
}
#gstn-img .zoom {
margin-top: 40px;
width: 20px;
border: none;
}
.resume {
text-align: center;
margin-top: 1em;
margin-bottom: 1em;
font-size: 16px;
}
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
.en-savoir-plus {
float: left;
text-shadow: 0pt 0pt 0pt black;
}
.haut-de-page { float: right; }
.couleur1-bg, .couleur2-bg, body { background: white; }
header { background: #88ab1c; }
.tela img {
width: 60px;
max-width: 60px;
}
.titre {
color: white;
text-shadow: 0pt 1px 1px #ed7826;
}
.infos .bg {
padding: 0.2em;
border-radius: 0pt 0pt 1em 1em;
}
.infos .btn {
padding: 0pt;
border-radius: 1em 1em 0pt 0pt;
}
.infos .collapse { width: 100%; }
.infos h4 { color: #ed7826; }
.infos .textes {
padding: 0.5em 1em;
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
-webkit-overflow-scrolling: touch;
}
.infos .textes h4 {
color: #256226;
text-shadow: 2px 1px 1px #88ab1c;
}
.resume { color: black; }
.gradient-bas {
background-image: linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -o-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -moz-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -webkit-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -ms-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #88ab1c), color-stop(1, white));
}
.en-savoir-plus {
margin-left: 0.2em;
float: left;
color: white;
background: #88ab1c;
}
.haut-de-page {
margin-right: 0.2em;
float: right;
color: white;
background: black;
}
/branches/v5.2-lasegue/modules/mobile/presentations/css/pyracantha_vert.css
New file
0,0 → 1,181
.align-center { text-align: center; }
.margin-center {
margin-left: auto;
margin-right: auto;
}
.margin-bottom-05em { margin-bottom: 0.5em; }
.margin-right-05em { margin-right: 0.5em; }
.margin-top-05em { margin-top: 0.5em; }
.padding-05em { padding: 0.5em; }
.padding-left-1em { padding-left: 1em; }
.small-caps { font-variant: small-caps; }
.btn-large {
padding: 10px;
font-size: 17px;
}
.gradient-bas {
height: 16px;
display: block;
}
footer {
height: 60px;
width: 100%;
left: 0;
right: 0;
bottom: 0;
position: fixed;
z-index: 1000;
color: white;
background: black;
}
footer a { color: white; }
footer a:visited { color: white; }
.tela { margin-right: 0.5em; }
.titre {
font-style: italic;
font-size: 130%;
font-weight: bold;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.sci { font-style: italic; }
#div-infos { background: #88ab1c; }
#div-infos-latin {
margin-left: auto;
margin-right: auto;
}
#div-infos-latin .btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
#div-infos-latin a { font-size: 16px; }
#div-infos-famille {
margin-left: auto;
margin-right: auto;
}
#div-infos-famille .btn {
width: 99%;
padding-left: 0pt;
padding-right: 0pt;
box-shadow: 0pt 2px 3px black;
}
#div-infos-famille a { font-size: 16px; }
#div-infos-famille { margin-top: -1em; }
#div-illustrations {
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
background: white;
margin-top: -1em;
padding-top: 20px;
padding-bottom: 20px;
}
#galerie_carte { list-style-type: none; }
#slider-pictures {
max-width: 320px;
margin-left: auto;
margin-right: auto;
}
#slider-pictures .carousel { margin-bottom: 0pt; }
#slider-pictures .carousel-control { background: none; }
#slider-pictures .carousel-inner > .item > img {
width: 320px;
max-height: 310px;
}
#slider-pictures .carousel-indicators li { background: #256226; }
#slider-pictures .carousel-indicators .active { background: #ed7826; }
#slider-pictures .carousel-caption {
padding: 10px;
position: static;
}
#slider-pictures .carousel-caption h4 { font-size: 100%; }
#slider-pictures .carousel-caption p { font-size: 90%; }
#slider-pictures img {
margin-left: auto;
margin-right: auto;
}
#gstn-img {
max-height: 120px;
margin: 0.5em 0pt 1em 0pt;
display: inline-block;
}
#gstn-img img {
border: #eaeaea 2px solid;
width: 100px;
}
#gstn-img .zoom {
margin-top: 40px;
width: 20px;
border: none;
}
.resume {
text-align: center;
margin-top: 1em;
margin-bottom: 1em;
font-size: 16px;
}
.bas-de-page {
margin-top: 1em;
margin-bottom: 1em;
}
.en-savoir-plus {
float: left;
text-shadow: 0pt 0pt 0pt black;
}
.haut-de-page { float: right; }
.couleur1-bg { background: #9ac342; }
.couleur2-bg { background: #88ab1c; }
body { background: white; }
header { background: #88ab1c; }
.tela img {
width: 60px;
max-width: 60px;
}
.titre {
color: white;
text-shadow: 0pt 1px 1px #ed7826;
}
.infos .bg {
padding: 0.2em;
border-radius: 0pt 0pt 1em 1em;
}
.infos .btn {
padding: 0pt;
border-radius: 1em 1em 0pt 0pt;
}
.infos .collapse { width: 100%; }
.infos .textes {
padding: 0.5em 1em;
border-radius: 2em;
-moz-border-radius: 2em;
-webkit-border-radius: 2em;
background: white;
-webkit-overflow-scrolling: touch;
}
.infos .textes h4 {
color: #256226;
text-shadow: 2px 1px 1px #88ab1c;
}
.resume { color: black; }
.gradient-bas {
background-image: linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -o-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -moz-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -webkit-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -ms-linear-gradient(top, #88ab1c 0%, white 100%);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #88ab1c), color-stop(1, white));
}
.en-savoir-plus {
margin-left: 0.2em;
float: left;
color: white;
background: #b04dff;
}
.haut-de-page {
margin-right: 0.2em;
float: right;
color: white;
background: black;
}
/branches/v5.2-lasegue/modules/mobile/presentations/js/mobile.js
New file
0,0 → 1,165
$(document).ready(function() {
// Popover
$('.btn-pop').popover();
// CSS switcher
$('.toggle-button').click(function(e) {
$('link#custom-css').attr('href', $(this).attr('CssUrl'));
return false;
});
// Slider images : photoswipe
if (document.getElementById('galerie_carte')) {
var psc = $('#galerie_carte a').photoSwipe({
enableMouseWheel: false ,
enableKeyboard: false,
preventSlideshow: true
});
}
if (document.getElementById('galerie_images')) {
var psi = $('#galerie_images a').photoSwipe({
enableMouseWheel: false ,
enableKeyboard: false ,
captionAndToolbarAutoHideDelay: 0
});
}
// Slider images : bootstrap
if (document.getElementById('slider-pictures')) {
$('#slider-pictures').hide();
$('#slider-pictures').swiperight(function() {
$('#slider-pictures').carousel('prev');
});
$('#slider-pictures').swipeleft(function() {
$('#slider-pictures').carousel('next');
});
}
});
 
/*----------------------------------------------------------------------------------------------------------*/
// POPOVER
var nbrPopup = 0,
popupOuverte = false;
 
function gestionPopover() {
if (popupOuverte && nbrPopup != 0) {
$('.btn-pop').popover('hide');
popupOuverte = false;
}
nbrPopup++;
}
 
function resetPopover() {
nbrPopup = 0;
popupOuverte = true;
}
 
/*----------------------------------------------------------------------------------------------------------*/
// SLIDER BOOTSTRAP
function gestionSlider() {
if ($('#slider-pictures').is(':visible')) {
$('#gstn-img').show();
$('#slider-pictures').hide();
} else {
$('#gstn-img').hide();
$('#slider-pictures').show();
}
}
 
/*----------------------------------------------------------------------------------------------------------*/
// CANVAS FLORAISON, FRUCTIFICATION
var moisAbbr = new Array('J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D', ''),
intervalle = false;
 
function dessinCanvas(canvas, color, valeur) {
var ctx = canvas.getContext('2d'),
i = 0,
arr = getTableauMois(valeur),
index0 = arr[0],
index1 = -1,
size = canvas.width;
if (intervalle) {
index1 = arr[arr.length - 1];
}
for (var abscisse = 10; abscisse < size; abscisse += (size/13)) {
ctx.beginPath();
ctx.moveTo(abscisse, 0);
ctx.lineTo(abscisse, 55);
ctx.stroke();
 
if (in_array(i, arr)) {
if (i == index0 && index1 != -1) {
var linearGradient = ctx.createLinearGradient(abscisse, 10, abscisse+30, 10);
linearGradient.addColorStop(0, "#fff");
linearGradient.addColorStop(1, color);
ctx.beginPath();
ctx.fillStyle = linearGradient;
ctx.moveTo(abscisse, 25);
ctx.lineTo(abscisse+(size/13), 25);
ctx.lineTo(abscisse+(size/13), 10);
ctx.lineTo(abscisse, 25);
ctx.fill();
} else {
if (i == index1) {
var linearGradient = ctx.createLinearGradient(abscisse, 10, abscisse+25, 10);
 
linearGradient.addColorStop(0, color);
linearGradient.addColorStop(1, "#fff");
ctx.beginPath();
ctx.fillStyle = linearGradient;
ctx.moveTo(abscisse, 10);
ctx.lineTo(abscisse, 25);
ctx.lineTo(abscisse+(size/13), 25);
ctx.lineTo(abscisse, 10);
ctx.fill();
} else {
ctx.fillStyle = color;
ctx.fillRect(abscisse, 10, (size/13), 15);
}
}
}
ctx.font = '20px Georgia';
ctx.fillStyle = '#000';
ctx.fillText(moisAbbr[i++], abscisse + 5, 50);
}
}
 
function getTableauMois(elt) {
var arr = new Array(),
temp = elt.split('-');
 
if (typeof temp[1] === 'undefined') {
arr.push(elt);
} else {
intervalle = true;
temp[0] = parseInt(temp[0]);
temp[1] = parseInt(temp[1]);
if (temp[0] < temp[1]) {
for (var c = temp[0]; c <= temp[1]; c++) {
arr.push(c);
}
} else {
for (var c = temp[0]; c < 12; c++) {
arr.push(c);
}
for (var c = 0; c <= temp[1]; c++) {
arr.push(c);
}
}
}
return arr;
}
 
function in_array(needle, haystack) {
var inArray = 0;
for (var i in haystack) {
if (haystack[i] == needle) {
inArray++;
}
}
return (inArray != 0);
}
/branches/v5.2-lasegue/modules/mobile/squelettes/fiche.tpl.html
New file
0,0 → 1,61
<!DOCTYPE html>
<html>
<head>
<title>Smart'Flore</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="content-language" content="fr" />
<meta http-equiv="cache-control" content="no-cache">
<!-- Favicones -->
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/favicon.ico" />
<!-- Viewport -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
 
<!-- CSS -->
<link href="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/photoswipe.css" type="text/css" rel="stylesheet" />
<link href="http://www.tela-botanica.org/commun/bootstrap/2.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="<?= $css ?>" rel="stylesheet" type="text/css" id="custom-css" />
 
<!-- Javascript -->
<script src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.min.js"></script>
<script src="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/klass.min.js"></script>
<script src="http://www.tela-botanica.org/commun/jquery/photoswipe/3.0.5/code.photoswipe.jquery-3.0.5.min.js"></script>
<script src="http://www.tela-botanica.org/commun/bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script src="modules/mobile/presentations/js/mobile.js"></script>
<style>
.btn {border-radius:2em;}
.container-fluid {padding: 0px;}
[class*="span"] {margin-left: 0px;}
.accordion {margin-top: 1em;}
.accordion-heading .accordion-toggle {padding: 0pt 10px;}
</style>
</head>
 
 
<body class="container-fluid">
<div id="up">
<?= $contenu_onglet; ?>
 
<div class="row-fluid bas-de-page">
<a href="<?= $permalien_num_nom; ?>" class="btn btn-large en-savoir-plus">
En savoir plus
<i class="icon-share"></i>
</a>
<a href="#up" class="btn btn-large haut-de-page">
<i class="icon-chevron-up icon-white"></i>
Haut de page
</a>
<div class="clearfix"></div>
</div>
 
</div> <!-- Fin du bloc 'Haut de Page' -->
</body>
</html>
/branches/v5.2-lasegue/modules/mobile/squelettes/theme_gentiana_niveau1.tpl.html
New file
0,0 → 1,176
<?
$txt_latin = "Le nom latin est utilisé en sciences pour nommer un être vivant,
ou un groupe d'êtres vivants. On l'appelle aussi nom scientifique ou encore
nom savant, car il n'est pas employé couramment et parfois difficile à
retenir.";
$txt_famille = "Une famille rassemble des êtres vivants proches, qui se ressemblent, malgré leurs
différences. Les familles botaniques sont ainsi utilisées pour classer les végétaux et pour
estimer les similitudes ou affinités qu'il peut y avoir entre différentes plantes.";
 
$icones = array('icon-eye-open', 'icon-book', 'icon-certificate', 'icon-home', 'icon-flag');
$index_icones = 0;
$nb_onglets = 0;
?>
<header class="row-fluid">
<div id="tela" class="padding-05em">
<div class="text-center titre">
<? if (isset($texte['nom-commun'])) : ?>
<?= $texte['nom-commun']; ?>
<? elseif ($nomsCommuns[0]['nom_vernaculaire'] != '') : ?>
<?= $nomsCommuns[0]['nom_vernaculaire'] ?>
<? else : ?>
<? if ($texte['titre'][0] != '') : ?>
<?= $texte['titre'][0]; ?>
<? else : ?>
Aucun nom commun défini.
<? endif; ?>
<? endif; ?>
</div>
<div class="align-center">
<? if ($nom_retenu != '') : ?>
<?= $nom_retenu; ?>
<? else : ?>
Aucun nom scientifique.
<? endif; ?>
<? if ($famille != '') : ?>
(<span class="small-caps"><?= $famille; ?>)</span>
<? endif; ?>
</div>
</div>
</header>
<span class="gradient-bas"></span>
<div id="" class="row-fluid">
<div class="span6">
<div class="wrapper">
<ul id="galerie_images" class="gallery">
<? if (count($illustrations) != 0) : ?>
<? for($i = 0; $i < count($illustrations); $i++) : ?>
<? if (trim($illustrations[$i]['legende']['texte']) != '&nbsp;') : ?>
<? $alt = $illustrations[$i]['legende']['titre'].' ('.$illustrations[$i]['legende']['texte'].')'; ?>
<? else : ?>
<? $alt = $illustrations[$i]['legende']['titre']; ?>
<? endif; ?>
<li>
<a href="<?= $illustrations[$i]['src'] ?>" rel="external">
<img src="<?= $illustrations[$i]['src'] ?>" alt="<?= $alt; ?>" />
</a>
</li>
<? endfor; ?>
<? endif; ?>
</ul>
</div>
</div>
<div class="span6">
<div class="wrapper_carte">
<ul id="galerie_carte" class="gallery">
<li>
<a href="<?= $repartition['chorodep'] ?>" rel="external">
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" />
</a>
</li>
</ul>
</div>
</div>
</div>
<? if ($floraison['floraison'] != -1) : ?>
<div class="row-fluid margin-top-05em padding-left-01em">
<div class="span12 bordered">
<i class="margin-top-03em margin-left-03em icon-leaf pull-left"></i>
<div class="margin-left-05em pull-left">Floraison</div>
<canvas id="canvas_fleur" height="60"></canvas>
<span id="floraison_value"><?= $floraison['floraison'] ?></span>
</div>
</div>
<? endif; ?>
 
<? if ($floraison['fructification'] != -1) : ?>
<div class="row-fluid margin-top-05em padding-left-01em">
<div class="span12 bordered">
<i class="margin-top-03em margin-left-03em icon-asterisk pull-left"></i>
<div class="margin-left-05em pull-left">Fructification</div>
<canvas id="canvas_fruit" height="60"></canvas>
<span id="fructification_value"><?= $floraison['fructification'] ?></span>
</div>
</div>
<? endif; ?>
<script type="text/javascript">
var fleur = document.getElementById('floraison_value'),
fruit = document.getElementById('fructification_value');
if (fleur) {
dessinCanvas(document.getElementById('canvas_fleur'), '#00F', fleur.innerHTML);
}
if (fruit) {
dessinCanvas(document.getElementById('canvas_fruit'), '#F00', fruit.innerHTML);
}
</script>
 
<div class="clearfix"></div>
<div id="principal">
<? if (count($texte['corps']) > 1) : ?>
<?= $texte['corps'][2]; ?>
<div class="accordion" id="accordion2">
<? for($c = 3; $c < count($texte['corps'])-1; $c+=2) : ?>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse_<?= $c; ?>">
<h4>
<i class="<?= $icones[$index_icones++]; ?> margin-left-1em margin-top-03em"></i>
<?= $texte['corps'][$c]; ?>
</h4>
</a>
</div>
<div id="collapse_<?= $c; ?>" class="accordion-body collapse">
<div class="accordion-inner">
<?= $texte['corps'][$c+1]; ?>
</div>
</div>
</div>
<? endfor; ?>
</div>
<? else : ?>
<? if (isset($repartition['chorodep'])) /* affichage de la chorologie quand même, en l'absence de fiche Smartflore */ : ?>
<div class="row-fluid infos">
<div data-target="#c9" data-toggle="collapse" class="btn btn-block couleur1-bg">
<h4 class="padding-left-1em">
<i class="icon-home pull-left"></i>
Écologie &amp; habitat</h4>
</div>
<div class="in collapse" id="c9" style="height: auto;">
<div class="bg couleur1-bg">
<div class="textes">
<div class="span6 margin-right-05em"> Carte de répartition <br>
<ul class="gallery style-none margin-center" id="galerie_carte">
<li>
<a href="<?= $repartition['chorodep'] ?>" rel="external">
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" />
</a>
</li>
</ul>
</div>
<div class="clearfix"></div>
</div><!-- Fin de la zone de texte -->
</div>
</div><!-- Fin de la zone déroulante -->
</div>
<? endif; ?>
 
 
<? if ($floraison['coste']['description']['texte'] != '') : ?>
<?= $floraison['coste']['description']['texte']; ?>
<? else : ?>
<? if (count($floraison['baseflor']) > 1) : ?>
<? foreach ($floraison['baseflor'] as $index => $texte) : ?>
<? if ($floraison['baseflor'][$index] != '') : ?>
<?= $index.' : '.$texte; ?> <br />
<? endif; ?>
<? endforeach; ?>
<? else : ?>
<?= $txt_vide; ?>
<? endif; ?>
<? endif; ?>
<? endif; ?>
</div>
/branches/v5.2-lasegue/modules/mobile/squelettes/theme_gentiana2_niveau1.tpl.html
New file
0,0 → 1,193
<?
$txt_latin = "Le nom latin est utilisé en sciences pour nommer un être vivant,
ou un groupe d'êtres vivants. On l'appelle aussi nom scientifique ou encore
nom savant, car il n'est pas employé couramment et parfois difficile à
retenir.";
$txt_famille = "Une famille rassemble des êtres vivants proches, qui se ressemblent, malgré leurs
différences. Les familles botaniques sont ainsi utilisées pour classer les végétaux et pour
estimer les similitudes ou affinités qu'il peut y avoir entre différentes plantes.";
 
$icones = array('icon-eye-open', 'icon-book', 'icon-certificate', 'icon-home', 'icon-flag');
$index_icones = 0;
 
$nb_onglets = 0;
?>
<header class="row-fluid">
<div id="tela" class="padding-05em">
<div class="text-center titre">
<? if (isset($texte['nom-commun'])) : ?>
<?= $texte['nom-commun']; ?>
<? elseif ($nomsCommuns[0]['nom_vernaculaire'] != '') : ?>
<?= $nomsCommuns[0]['nom_vernaculaire'] ?>
<? else : ?>
Aucun nom commun défini.
<? endif; ?>
</div>
<div class="align-center">
<? if ($nom_retenu != '') : ?>
<?= $nom_retenu; ?>
<? else : ?>
Aucun nom scientifique.
<? endif; ?>
<? if ($famille != '') : ?>
(<span class="small-caps"><?= $famille; ?>)</span>
<? endif; ?>
</div>
</div>
</header>
<span class="gradient-bas"></span>
 
<div class="row-fluid">
<div class="span12">
<div class="row-fluid">
<div class="span5 margin-bottom-05em margin-center margin-right-05em">
<div class="row-fluid margin-top-05em padding-left-01em" id="icons">
<div class="span6">
<div class="wrapper_carte">
<ul id="galerie_carte" class="gallery">
<li>
<a href="<?= $repartition['chorodep'] ?>" rel="external">
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" />
</a>
</li>
</ul>
</div>
</div>
<div class="span6 bordered">
<div class="wrapper wrapper_demi">
<ul id="galerie_images" class="gallery">
<? if (count($illustrations) != 0) : ?>
<? for($i = 0; $i < count($illustrations); $i++) : ?>
<? if (trim($illustrations[$i]['legende']['texte']) != '&nbsp;') : ?>
<? $alt = $illustrations[$i]['legende']['titre'].' ('.$illustrations[$i]['legende']['texte'].')'; ?>
<? else : ?>
<? $alt = $illustrations[$i]['legende']['titre']; ?>
<? endif; ?>
<li>
<a href="<?= $illustrations[$i]['src'] ?>" rel="external">
<img src="<?= $illustrations[$i]['src'] ?>" alt="<?= $alt; ?>" />
</a>
</li>
<? endfor; ?>
<? else: ?>
Aucune image.
<? endif; ?>
</ul>
</div>
</div>
</div>
<? if ($floraison['floraison'] != -1) : ?>
<div class="row-fluid margin-top-05em padding-left-01em">
<div class="span12 bordered">
<i class="margin-top-03em margin-left-03em icon-leaf pull-left"></i>
<div class="margin-left-05em pull-left">Floraison</div>
<canvas id="canvas_fleur" height="60"></canvas>
<span id="floraison_value"><?= $floraison['floraison'] ?></span>
</div>
</div>
<? endif; ?>
 
<? if ($floraison['fructification'] != -1) : ?>
<div class="row-fluid margin-top-05em padding-left-01em">
<div class="span12 bordered">
<i class="margin-top-03em margin-left-03em icon-asterisk pull-left"></i>
<div class="margin-left-05em pull-left">Fructification</div>
<canvas id="canvas_fruit" height="60"></canvas>
<span id="fructification_value"><?= $floraison['fructification'] ?></span>
</div>
</div>
<? endif; ?>
</div>
<script type="text/javascript">
var fleur = document.getElementById('floraison_value'),
fruit = document.getElementById('fructification_value');
if (fleur) {
dessinCanvas(document.getElementById('canvas_fleur'), '#00F', fleur.innerHTML);
}
if (fruit) {
dessinCanvas(document.getElementById('canvas_fruit'), '#F00', fruit.innerHTML);
}
</script>
<div id="principal">
<? if (count($texte['corps']) > 1) : ?>
<?= $texte['corps'][2]; ?>
<div class="clearfix">
<h4>
<i class="<?= $icones[$index_icones++]; ?> margin-left-1em margin-top-03em"></i>
<?= $texte['corps'][3]; ?>
</h4>
<?= $texte['corps'][4]; ?>
</div>
<div class="accordion" id="accordion2">
<? for($c = 3; $c < count($texte['corps'])-1; $c+=2) : ?>
<? if ($c != 3) : ?>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse_<?= $c; ?>">
<h4>
<i class="<?= $icones[$index_icones++]; ?> margin-left-1em margin-top-03em"></i>
<?= $texte['corps'][$c]; ?>
</h4>
</a>
</div>
<div id="collapse_<?= $c; ?>" class="accordion-body collapse">
<div class="accordion-inner">
<?= $texte['corps'][$c+1]; ?>
</div>
</div>
</div>
<? endif; ?>
<? endfor; ?>
</div>
<? else : ?>
 
<? if (isset($repartition['chorodep'])) /* affichage de la chorologie quand même, en l'absence de fiche Smartflore */ : ?>
<div class="row-fluid infos">
<div data-target="#c9" data-toggle="collapse" class="btn btn-block couleur1-bg">
<h4 class="padding-left-1em">
<i class="icon-home pull-left"></i>
Écologie &amp; habitat</h4>
</div>
<div class="in collapse" id="c9" style="height: auto;">
<div class="bg couleur1-bg">
<div class="textes">
<div class="span6 margin-right-05em"> Carte de répartition <br>
<ul class="gallery style-none margin-center" id="galerie_carte">
<li>
<a href="<?= $repartition['chorodep'] ?>" rel="external">
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" />
</a>
</li>
</ul>
</div>
<div class="clearfix"></div>
</div><!-- Fin de la zone de texte -->
</div>
</div><!-- Fin de la zone déroulante -->
</div>
<? endif; ?>
 
<? if ($floraison['coste']['description']['texte'] != '') : ?>
<?= $floraison['coste']['description']['texte']; ?>
<? else : ?>
<? if (count($floraison['baseflor']) > 1) : ?>
<? foreach ($floraison['baseflor'] as $index => $texte) : ?>
<? if ($floraison['baseflor'][$index] != '') : ?>
<?= $index.' : '.$texte; ?> <br />
<? endif; ?>
<? endforeach; ?>
<? else : ?>
<?= $txt_vide; ?>
<? endif; ?>
<? endif; ?>
<? endif; ?>
</div>
</div>
</div> <!-- span12 englobant -->
</div>
/branches/v5.2-lasegue/modules/mobile/squelettes/theme_pyracantha_niveau1.tpl.html
New file
0,0 → 1,202
<?
$txt_latin = "<div onclick='gestionPopover();'>
Le nom latin est utilisé en sciences pour nommer un être vivant,
ou un groupe d'êtres vivants. On l'appelle aussi nom scientifique ou encore
nom savant, car il n'est pas employé couramment et parfois difficile à retenir.
</div>";
$txt_famille = "<div onclick='gestionPopover();'>
Une famille rassemble des êtres vivants proches, qui se ressemblent, malgré leurs
différences. Les familles botaniques sont ainsi utilisées pour classer les végétaux et pour
estimer les similitudes ou affinités qu'il peut y avoir entre différentes plantes.
</div>";
 
$icones = array('icon-eye-open', 'icon-book', 'icon-certificate', 'icon-home', 'icon-flag');
$index_icones = 0;
 
$txt_vide = "Aucune donnée disponible.";
$nb_onglets = 0;
?>
<div onclick="gestionPopover();">
<header class="row-fluid">
<div class="padding-05em">
<div class="tela pull-left">
<a href="http://tela-botanica.org" rel="external" title="Retour à Tela-Botanica.org">
<img src="modules/mobile/presentations/logos/tela.png" alt="Logo Tela" />
</a>
</div>
<div class="text-center titre">
<? if (isset($texte['nom-commun'])) : ?>
<?= $texte['nom-commun']; ?>
<? elseif ($nomsCommuns[0]['nom_vernaculaire'] != '') : ?>
<?= $nomsCommuns[0]['nom_vernaculaire'] ?>
<? else : ?>
<? if ($texte['titre'][0] != '') : ?>
<?= $texte['titre'][0]; ?>
<? else : ?>
Aucun nom commun défini.
<? endif; ?>
<? endif; ?>
</div>
</div>
</header>
<div id="div-infos">
<div id="div-infos-latin" class="row-fluid">
<div class="align-center">
<a href="<?= $url_absolue ?>#div-infos-latin" class="btn btn-large btn-pop"
data-content="<?= $txt_latin; ?>" data-html="true"
data-placement="bottom" data-toggle="popover"
data-original-title="<div onclick='gestionPopover();'>Pourquoi un nom latin ?</div>"
onclick="resetPopover();">
<? if ($nom_retenu != '') : ?>
<?= $nom_retenu; ?>
<? else : ?>
Aucun nom scientifique.
<? endif; ?>
</a>
</div>
</div>
<div id="div-illustrations" class="row-fluid">
<? if (count($illustrations) != 0) : ?>
<div class="align-center" onclick="gestionSlider();">
<a href="#btn-latin" class="" id="gstn-img">
<img src="<?= $illustrations[0]['src'] ?>" alt="Miniature" class="pull-left">
<img src="modules/mobile/presentations/icones/zoom.png" class="zoom pull-left"/>
<img src="<?= $illustrations[1]['src'] ?>" alt="Miniature" class="pull-left">
</a>
</div>
<div id="slider-pictures" class="carousel slide margin-top-05em">
<button class="btn btn-large" onclick="gestionSlider();">
<i class="icon-remove pull-left"></i>
</button>
<ol class="carousel-indicators">
<? for($i = 0; $i < count($illustrations); $i++) : ?>
<li data-target="#slider-pictures" data-slide-to="<?= $i ?>" class="<?= ($i == 0) ? 'active' : ''; ?>"></li>
<? endfor; ?>
</ol>
<div class="carousel-inner">
<? for($i = 0; $i < count($illustrations); $i++) : ?>
<div class="item <?= ($i == 0) ? ' active' : ''; ?>">
<img src="<?= $illustrations[$i]['src'] ?>" alt="Image_<?= $i ?>" >
<div class="carousel-caption">
<h4><?= $illustrations[$i]['legende']['titre'] ?></h4>
<p><?= $illustrations[$i]['legende']['texte'] ?></p>
</div>
</div>
<? endfor; ?>
</div>
<a class="left carousel-control" href="#slider-pictures" data-slide="prev">&lsaquo;</a>
<a class="right carousel-control" href="#slider-pictures" data-slide="next">&rsaquo;</a>
</div>
<? endif; ?>
</div>
<div id="div-infos-famille" class="row-fluid">
<div class="align-center">
<a href="#div-infos-famille" class="btn btn-large btn-pop" data-content="<?= $txt_famille; ?>"
data-placement="bottom" data-toggle="popover" data-html="true"
data-original-title="<div onclick='gestionPopover();'>Pourquoi une famille de plante ?</div>"
onclick="resetPopover();">
<? if ($famille != '') : ?>
Famille des <span class="small-caps"><?= $famille; ?></span>
<? else : ?>
<span class="none">En savoir plus sur les familles de plante</span>
<? endif; ?>
</a>
</div>
</div>
</div>
<span class="gradient-bas"></span>
<?= $floraison['coste']['texte']; ?>
 
<div class="resume">
<? if (count($texte['corps']) > 1) : ?>
<?= $texte['corps'][2]; ?>
</div>
<? for($index = 3; $index < count($texte['corps'])-1; $index+=2) : ?>
<? if (isset($texte['corps'][$c+1])) :
$nb_onglets++;
$class = ($nb_onglets % 2 == 0) ? "couleur1-bg" : "couleur2-bg";
?>
<div class="row-fluid infos">
<div class="btn btn-block <?= $class ?>" data-toggle="collapse" data-target="#c<?= $index ?>">
<h4 class="padding-left-1em">
<i class="<?= $icones[$index_icones++]; ?> pull-left"></i>
<?= $texte['corps'][$index]; ?>
</h4>
</div>
<div id="c<?= $index ?>" class="collapse">
<div class="bg <?= $class ?>">
<div class="textes">
<? if (stristr($texte['corps'][$index], 'cologie') != false || stristr($texte['corps'][$index], 'cologie') != false) : ?>
<div class="span6 margin-right-05em">
Carte de répartition <br />
<ul id="galerie_carte" class="gallery style-none margin-center">
<li>
<a href="<?= $repartition['chorodep'] ?>" rel="external">
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" />
</a>
</li>
</ul>
</div>
<div class="">
<?= $texte['corps'][$index+1]; ?>
</div>
<div class="clearfix"></div>
<? else : ?>
<?= $texte['corps'][$index+1]; ?>
<? endif; ?>
</div> <!-- Fin de la zone de texte -->
</div>
</div> <!-- Fin de la zone déroulante -->
</div> <!-- Fin du bloc infos -->
<? endif; ?>
<? endfor; ?>
<? else : ?>
 
<? if (isset($repartition['chorodep'])) /* affichage de la chorologie quand même, en l'absence de fiche Smartflore */ : ?>
<div class="row-fluid infos">
<div data-target="#c9" data-toggle="collapse" class="btn btn-block couleur1-bg">
<h4 class="padding-left-1em">
<i class="icon-home pull-left"></i>
Écologie &amp; habitat</h4>
</div>
<div class="in collapse" id="c9" style="height: auto;">
<div class="bg couleur1-bg">
<div class="textes">
<div class="span6 margin-right-05em"> Carte de répartition <br>
<ul class="gallery style-none margin-center" id="galerie_carte">
<li>
<a href="<?= $repartition['chorodep'] ?>" rel="external">
<img style="width:190px; height:178px" src="<?= $repartition['chorodep'] ?>" class="" title="Carte de répartition" alt="Carte de répartition" />
</a>
</li>
</ul>
</div>
<div class="clearfix"></div>
</div><!-- Fin de la zone de texte -->
</div>
</div><!-- Fin de la zone déroulante -->
</div>
<? endif; ?>
 
<? if ($floraison['coste']['description']['texte'] != '') : ?>
<?= $floraison['coste']['description']['texte']; ?>
<? else : ?>
<? if (count($floraison['baseflor']) > 1) : ?>
<? foreach ($floraison['baseflor'] as $index => $texte) : ?>
<? if ($floraison['baseflor'][$index] != '') : ?>
<?= $index.' : '.$texte; ?> <br />
<? endif; ?>
<? endforeach; ?>
<? else : ?>
<?= $txt_vide; ?>
<? endif; ?>
<? endif; ?>
</div>
<? endif; ?>
/branches/v5.2-lasegue/modules/mobile/sources/NomsCommuns.php
New file
0,0 → 1,40
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class NomsCommuns extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $nomsVernaculaires = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
$this->referentiel = $this->conteneur->getParametre('referentiel');
}
public function getDonnees() {
$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$projet = Config::get($this->referentiel.'.referentielVerna');
if ($projet != '') {
$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($projet, $nt);
$this->donnees = (isset($nomsVerna['resultat']) && is_array($nomsVerna['resultat'])) ? array_slice($nomsVerna['resultat'], 0, 1) : array();
}
return $this->donnees;
}
}
?>
/branches/v5.2-lasegue/modules/mobile/sources/Repartition.php
New file
0,0 → 1,47
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Repartition extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $donnees = array();
private $cartes;
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->cartes = $this->conteneur->getApiCartes();
}
 
public function getDonnees() {
$donnees['chorodep'] = $this->getChorodepMiniature();
return $donnees;
}
private function getChorodepMiniature() {
$this->cartes->setProjet('chorodep');
$this->cartes->setLargeur('570x534');
//TODO: démochir ce code
// Chargement des nn des synonymes pour obtenir une carte plus complète
$noms = $this->conteneur->getApiNoms();
$syns = $noms->getSynonymes($this->nomCourant->getNnr());
$nns_syns = array_keys($syns['resultat']);
$nns_syns[] = $this->nomCourant->getNnr();
$id = 'nn:'.implode(',', $nns_syns);
$this->cartes->setId($id);
return $this->cartes->getUrlDataSvg();
}
}
?>
/branches/v5.2-lasegue/modules/mobile/sources/Texte.php
New file
0,0 → 1,108
<?php
// declare(encoding='UTF-8');
/**
* Classe Mobile Wikini.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Isabelle NEMBROT <isabelle.nembrot@tela-botanica.org>
* @copyright 2013 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Texte extends aControleur {
 
private $conteneur = null;
private $donnees = array();
private $format = "text/html";
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
parent::__construct();
}
public function getDonnees() {
$url_wiki = $this->obtenirUrlWikini();
$obj = json_decode(file_get_contents($url_wiki));
$this->donnees['corps'] = $obj->{'texte'};
if (strpos($this->format, "html") != false) {
$this->obtenirCorpsHtml();
} else {
$this->obtenirCorpsPlain();
}
if ($this->donnees['corps'] != "") {
$this->donnees['corps'] = preg_split('/===/', $this->donnees['corps'], -1, PREG_SPLIT_NO_EMPTY);
$this->donnees['titre'] = $this->donnees['corps'][0];
if (strpos($this->format, "html") != false) {
$this->obtenirTitreHtml();
} else {
$this->obtenirTitrePlain();
}
}
return $this->donnees;
}
//formater pour AppUrls ?
public function obtenirUrlWikini() {
$titre = urlencode("Fiche simplifiée Smart'flore");
$url_wiki = "http://www.tela-botanica.org/wikini/eFloreRedaction/api/rest/0.5/pages/SmartFlore"
.strtoupper($this->conteneur->getParametre('referentiel'))."nt".$this->nomCourant->getNomSelectionne()->get('num_taxonomique')
."?txt.format=".$this->format."&txt.section.titre=".$titre;
return ($url_wiki);
}
private function obtenirCorpsHtml() {
$a_remplacer = array('<h3>', '</h3>');
$this->donnees['corps'] = str_replace($a_remplacer, "===", $this->donnees['corps']);
}
private function obtenirCorpsPlain() {
$a_enlever = array(Chr(10).'=', '='.Chr(10), Chr(10).''.Chr(10));
$this->donnees['corps'] = str_replace($a_enlever, '', $this->donnees['corps']);
$this->donnees['corps'] = str_replace(Chr(10), '<br />', $this->donnees['corps']);
}
private function obtenirTitreHtml() {
$a_remplacer = array('<b>', '</b>', '(<br />', '<br />)');
$this->donnees['titre'] = str_replace($a_remplacer, '<br />', $this->donnees['titre']);
$a_enlever = array(Chr(10).'<br />', '<br />'.Chr(10), Chr(10).''.Chr(10), '<br />'.Chr(10).'<br />'.Chr(10));
$this->donnees['titre'] = str_replace($a_enlever, '', $this->donnees['titre']);
$this->separer_NomCommun_NomSci();
}
 
private function separer_NomCommun_NomSci() {
$this->donnees['titre'] = str_replace('<br />', '::', $this->donnees['titre']);
$this->donnees['titre'] = preg_split("/::/", $this->donnees['titre'], -1, PREG_SPLIT_NO_EMPTY);
$this->donnees['nom-commun'] = $this->donnees['titre'][0]; // sauf erreur ? parser le wikini serait peut-être plus adapté
}
private function obtenirTitrePlain() {
$this->donnees['titre'] = str_replace('**', '<br />', $this->donnees['titre']);
$a_remplacer = array('(<br />', '<br />)', '<br /><br />');
$this->donnees['titre'] = str_replace($a_remplacer, '<br />', $this->donnees['titre']);
$this->separer_NomCommun_NomSci();
$this->separer_NomSci_NomAuteur();
}
 
private function separer_NomSci_NomAuteur() {
$nom_sci = str_replace('//', '::', $this->donnees['titre'][1]);
$nom_sci = preg_split("/::/", $nom_sci, -1, PREG_SPLIT_NO_EMPTY);
$this->donnees['titre'][1] = "<i>".$nom_sci[0]."</i> ".$nom_sci[1];
}
}
?>
/branches/v5.2-lasegue/modules/mobile/sources/Floraison.php
New file
0,0 → 1,196
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Floraison extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $textes = null;
private $meta = null;
private $wikini = null;
private $informations = null;
private $mois = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août',
'septembre', 'octobre', 'novembre', 'décembre');
private $CosteFormate;
private $CosteTexte;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->textes = $this->conteneur->getApiTextes();
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->informations = $this->conteneur->getApiInformations();
$this->appUrls = $this->conteneur->getAppUrls();
}
public function getDonnees() {
$this->getCoste();
if (isset($this->CosteFormate['floraison'])) {
$this->donnees['floraison'] = $this->getIndiceMois($this->CosteFormate['floraison']);
} else {
$this->getFloraisonBaseflor();
}
if (isset($this->CosteFormate['fructification'])) {
$this->donnees['fructification'] = $this->getIndiceMois($this->CosteFormate['fructification']);
} else {
$this->donnees['fructification'] = -1;
}
return $this->donnees;
}
private function getCoste() {
$coste = array();
$this->textes->setProjet('coste');
$this->textes->setId('bdtfx.nn:'.$this->nomCourant->getNnr());
$texte = $this->textes->getTexte();
$texte = array_pop($texte['resultats']);
if ($texte) {
$coste['titre'] = $texte['titre'];
// TODO: réintroduire les modif' effectuées sur modules/fiche/formateurs/Description.php
// -les joies du code copié/collé-
$coste['description'] = $this->mettreEnFormeCoste($texte['texte']);
}
$this->donnees['coste'] = $coste;
}
private function getIndiceMois($elt) {
$mois = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août',
'septembre', 'octobre', 'novembre', 'décembre');
$indice_mois = -1;
$elt = $this->nettoyerTexte($elt);
$arr = preg_split('/-/', $elt, -1, PREG_SPLIT_NO_EMPTY);
if (isset($arr[1])) {
$mois1 = $this->getIndiceMois($arr[0]);
$mois2 = $this->getIndiceMois($arr[1]);
$indice_mois = $mois1.'-'.$mois2;
} else {
for ($i = 0; $i < count($mois); $i++) {
if ($elt == $mois[$i]) {
$indice_mois = $i;
}
}
}
return $indice_mois;
}
private function nettoyerTexte($texte) {
$texte = trim($texte);
$a_effacer = array('.', ' ', 'de');
$texte = str_replace($a_effacer, '', $texte);
 
$texte = strtolower($texte);
return $texte;
}
 
private function getFloraisonBaseflor() {
$baseflor = array();
$this->informations->setProjet('baseflor');
$this->informations->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations->setNum_nom($this->conteneur->getParametre('num_nom'));
$informations = $this->informations->getInformationsDescription();
if ($informations){
$baseflor['chorologie'] = isset($informations['chorologie']) ? $informations['chorologie'] : '';
$baseflor['inflorescence'] = isset($informations['inflorescence']) ? $informations['inflorescence'] : '';
$baseflor['sexualite'] = isset($informations['sexualite']) ? $informations['sexualite'] : '';
$baseflor['ordre_maturation'] = isset($informations['ordre_maturation']) ? $informations['ordre_maturation'] : '';
$baseflor['pollinisation'] = isset($informations['pollinisation']) ? $informations['pollinisation'] : '';
$baseflor['dissemination'] = isset($informations['dissemination']) ? $informations['dissemination'] : '';
$baseflor['fruit'] = isset($informations['fruit']) ? $informations['fruit'] : '';
$baseflor['couleur_fleur'] = isset($informations['couleur_fleur']) ? $informations['couleur_fleur'] : '';
$baseflor['macule'] = isset($informations['macule']) ? $informations['macule'] : '';
$baseflor['type_bio'] = isset($informations['type_bio']) ? $informations['type_bio'] : '';
$baseflor['form_vegetale'] = isset($informations['form_vegetale']) ? $informations['form_vegetale'] : '';
$baseflor['floraison'] = isset($informations['floraison']) ? $informations['floraison'] : '';
}
$this->donnees['baseflor'] = $baseflor;
$this->donnees['floraison'] = $baseflor['floraison'];
}
 
 
public function mettreEnFormeCoste($texte){
$this->CosteFormate = array();
$this->CosteTexte = $texte;
//decouper elements remarquables avant le texte
$this->separerNomScientifique_a_NomCommun();
$this->CosteTexte = preg_replace('/\//','',$this->CosteTexte);
//decouper elements remarquables après le texte
$this->separerEcologie_a_Usages();
//le morceau qui reste est le gros de la description
$this->CosteTexte = str_replace(';','<br /> -','- '.$this->CosteTexte);
$this->CosteTexte = str_replace('–','',$this->CosteTexte);
$this->CosteFormate['texte'] = htmlspecialchars_decode(htmlentities($this->CosteTexte, ENT_NOQUOTES, 'UTF-8'), ENT_NOQUOTES);
return $this->CosteFormate;
}
 
public function separerNomScientifique_a_NomCommun(){
if ( preg_match('/\*\*(.+)\*\*([^–]*)–/', $this->CosteTexte, $retour)){
/* !! attention on enlève un tiret cadratin – pas un trait d'union - !! */
$a_enlever = array('/–/','/\./' );
$this->CosteFormate['nom_scientifique'] = preg_replace($a_enlever,'',$retour[1]);
if(preg_match('/\((.+)\)/',$retour[2],$synonymes)){
$this->CosteFormate['synonymes'] = $synonymes[1];
} else {
$this->CosteFormate['nom_scientifique'] .= $retour[2];
}
$this->CosteTexte = str_replace($retour[0],'',$this->CosteTexte);
}
/* !! attention il y a un espace avant les // du début !! */
if ( preg_match('/^ \/\/([^\/\/]+)\/\//', $this->CosteTexte, $retour)){
$a_enlever = array('/–/','/\./' );
$this->CosteFormate['nom_commun'] = preg_replace($a_enlever,'',$retour[1]);
$this->CosteTexte = str_replace($retour[0],'',$this->CosteTexte);
}
}
 
public function separerEcologie_a_Usages(){
if ( preg_match('/\.[ ]*([A-ZÉÀÈ].+)$/',$this->CosteTexte, $retour)){
$this->CosteFormate['ecologie'] = $retour[1];
$this->CosteTexte = str_replace($retour[0],'.',$this->CosteTexte);
if (isset($this->CosteFormate['ecologie']) && preg_match('/–(.+)/', $this->CosteFormate['ecologie'] , $retour)){
$this->CosteFormate['repartition'] = $retour[1];
$this->CosteFormate['ecologie'] = str_replace($retour[0],'',$this->CosteFormate['ecologie']);
}
if (isset($this->CosteFormate['repartition']) && preg_match('/=(.+)$/', $this->CosteFormate['repartition'], $retour)){
$this->CosteFormate['floraison'] = $retour[1];
$this->CosteFormate['repartition'] = str_replace($retour[0],'',$this->CosteFormate['repartition']);
}
if (isset($this->CosteFormate['floraison']) && preg_match('/–(.+)$|\n(.+)$/',$this->CosteFormate['floraison'], $retour)){
$this->CosteFormate['usages'] = isset($retour[1]) ? $retour[1] : $retour[2];
$this->CosteFormate['floraison'] = str_replace($retour[0],'.',$this->CosteFormate['floraison']);
}
if (isset($this->CosteFormate['floraison']) && preg_match('/([Ff]l\.) (.+)/',$this->CosteFormate['floraison'], $retour)){
$this->CosteFormate['floraison'] = $retour[2];
$this->CosteFormate['floraison'] = str_replace($retour[1],'',$this->CosteFormate['floraison']);
}
if (isset($this->CosteFormate['floraison']) && preg_match('/([Ff]r\.) (.+)/',$this->CosteFormate['floraison'], $retour)){
$this->CosteFormate['fructification'] = $retour[2];
$this->CosteFormate['floraison'] = str_replace($retour[0],'',$this->CosteFormate['floraison']);
$this->CosteFormate['floraison'] = str_replace(',','',$this->CosteFormate['floraison']);
$this->CosteFormate['fructification'] = str_replace($retour[1],'',$this->CosteFormate['fructification']);
$this->CosteFormate['fructification'] = str_replace('.','',$this->CosteFormate['fructification']);
}
}
}
}
?>
/branches/v5.2-lasegue/modules/mobile/sources/Illustrations.php
New file
0,0 → 1,114
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Illustrations extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $images = null;
private $appUrls = null;
private $meta = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
$this->meta = $this->conteneur->getApiMetaDonnees();
 
$this->images->setApi(Images::API_DEL);
}
 
public function getDonnees() {
$this->donnees = array();
$this->getPhotos();
$dessin = $this->addDessin();
if (!empty($dessin)) {
array_push($this->donnees, $dessin);
}
 
return $this->donnees;
}
 
public function getPhotos() {
$listePhotos = $this->images->getInfosImagesGalerieMobile($this->nomCourant->getNnr());
foreach($listePhotos as $index) {
$this->formaterListePhotos($index);
}
}
 
private function formaterListePhotos($images) {
$infosImg['src'] = $images['binaire.href'];
 
$obs = $images['observation'];
if ($obs['auteur.nom'] != '') {
$infosImg['legende']['titre'] = $obs['auteur.nom'];
if ($obs['auteur.prenom'] != '') {
$infosImg['legende']['titre'] .= ' '.$obs['auteur.prenom'];
}
} else {
$infosImg['legende']['titre'] = "Anonyme";
}
 
if ($obs['date_observation'] != '') {
$infosImg['legende']['titre'] .= ", le ".$this->formaterDateImg($obs['date_observation']);
}
 
if ($obs['zone_geo'] != '') {
$infosImg['legende']['texte'] = $obs['zone_geo'];
if ($obs['lieudit'] != '') {
$infosImg['legende']['texte'] .= ' ('.$obs['lieudit'].')';
}
} else {
$infosImg['legende']['texte'] = "&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);
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
$this->images->setApi(Eflore::API_DEL);
 
if (count($costeImg) != 0) {
$img['src'] = $costeImg[key($costeImg)]['binaire.href'];
$img['legende']['titre'] = "Illustration de Coste";
$img['legende']['texte'] = "&nbsp;";
}
}
 
return $img;
}
}
?>
/branches/v5.2-lasegue/modules/mobile/Mobile.php
New file
0,0 → 1,108
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Mobile.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Mobile extends aControleur {
 
private $theme = 'pyracantha';
private $parametres = array();
private $conteneur = null;
private $num_nom = 0;
private $nom_courant = null;
private $nom_retenu = '';
private $url;
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->url = $this->conteneur->getAppUrls();
$this->nomCourant = $this->conteneur->getNomCourant();
$this->nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu();
spl_autoload_register(array($this, 'chargerClassesSources'));
}
 
private function chargerClassesSources($classe) {
$base = dirname(__FILE__).DS;
$cheminSources = $base.'sources'.DS;
$dossiers = array($base, $cheminSources);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function capturerParametres() {
$this->parametres['num_nom'] = isset($_GET['num_nom']) ? $_GET['num_nom'] : '';
$this->parametres['nom'] = isset($_GET['nom']) ? $_GET['nom'] : '';
$this->parametres['type_nom'] = isset($_GET['type_nom']) ? $_GET['type_nom'] : 'nom_scientifique';
$this->theme = isset($_GET['theme']) ? $_GET['theme'] : $this->theme;
 
$referentiel = isset($_GET['referentiel']) ? $_GET['referentiel'] : '';
Registre::set('parametres.referentiel', $referentiel);
$this->parametres['referentiel'] = $referentiel;
 
$niveau = isset($_GET['niveau']) ? $_GET['niveau'] : '1';
Registre::set('parametres.niveau', $niveau);
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
$niveau = Registre::get('parametres.niveau');
$squelette = "theme_{$this->theme}_niveau{$niveau}";
 
$donnees = $this->parametres;
$donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci_html').' '.$this->nom_retenu->get('auteur');
$donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180');
$donnees = array_merge($this->obtenirDonnees(), $donnees);
$donnees['css'] = $this->obtenirLienCss();
$donnees['url_absolue'] = "http://".$_SERVER['SERVER_NAME'].'/'.$_SERVER['REQUEST_URI'];
$donnees['contenu_onglet'] = $this->getVue($squelette, $donnees);
$donnees['lien'] = $this->url->obtenirUrlMobile($this->parametres['num_nom']);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche', $donnees), true);
//print_r($donnees);
}
 
public function obtenirDonnees() {
$donnees = array();
$num_nom = $this->nomCourant->getNns();
$referentiel = $this->conteneur->getParametre('referentiel');
 
$taxons = new Taxons($this->conteneur);
$donnees['permalien_num_nom'] = $taxons->getUrlPermalienNumNom($referentiel, 1, $num_nom);
 
$sources = array('illustrations', 'repartition', 'texte', 'floraison', 'nomsCommuns');
foreach ($sources as $source) {
$nom_classe = ucfirst($source);
$classe = new $nom_classe($this->conteneur);
$donnees[$source] = $classe->getDonnees();
}
 
return $donnees;
}
 
private function obtenirLienCss() {
$theme = $this->theme;
if (strcmp($this->theme, 'pyracantha') >= 0) {
$theme = 'pyracantha_blanc';
}
$lien = "modules/mobile/presentations/css/$theme.css";
return $lien;
}
}
?>
/branches/v5.2-lasegue/modules/niveau/Niveau.php
New file
0,0 → 1,59
<?php
class Niveau extends aControleur {
public function executerActionParDefaut() {
$this->afficherMoteurNiveau();
}
public function afficherMoteurNiveau() {
$this->setSortie(self::RENDU_CORPS, $this->afficherNiveau());
}
public function afficherNiveau() {
$donnees['parametres'] = $this->capturerParametres();
$donnees['url_form'] = $this->urls->obtenirUrlBase();
$donnees['i18n'] = I18n::get('Niveau');
$donnees['niveau'] = Registre::get('parametres.niveau');
return $this->getVue('niveau', $donnees);
}
private function capturerParametres() {
$parametre['referentiel'] = (isset($_GET['referentiel'])) ? $_GET['referentiel'] : Config::get('referentiel_defaut');
$parametre['module'] = (isset($_GET['module'])) ? $_GET['module'] : Config::get('module_defaut');
$parametre['action'] = (isset($_GET['action'])) ? $_GET['action'] : Config::get('action_defaut');
if (isset($_GET['type_nom'])) {
$parametre['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['nom'])) {
$parametre['nom'] = $_GET['nom'];
}
if (isset($_GET['num_nom'])) {
$parametre['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom_retenu'])) {
$parametre['nom_retenu'] = $_GET['nom_retenu'];
}
if (isset($_GET['resultat'])) {
$parametre['resultat'] = $_GET['resultat'];
}
$url = "?";
foreach ($parametre as $variable => $valeur) {
$url .= $variable."=".$valeur.'&';
}
$url = rtrim($url, '&');
$parametre['url'] = $this->urls->obtenirUrlBase().$url;
$niveau = '2';
if (isset($_GET['niveau'])) {
$niveau = $_GET['niveau'];
}
Registre::set('parametres.niveau', $niveau);
$parametre['niveau'] = $niveau;
return $parametre;
}
}
?>
/branches/v5.2-lasegue/modules/niveau/squelettes/niveau.tpl.html
New file
0,0 → 1,69
<!-- DEBUT FORM_NIVEAU -->
<script type="text/javascript">
function gestionBiblio() {
$('.nom').each(function () {
if ($(this).children('.plus').length == 0) {
html = $(this).html();
posCrochetGauche = html.indexOf('[');
if (posCrochetGauche > 0) {
nom = html.substr(0, posCrochetGauche);
biblio = html.substr(posCrochetGauche, html.length);
$(this).html(nom);
imagettePlus = document.createElement('div');
$(imagettePlus).addClass('imagettePlus');
$(this).prepend($(imagettePlus));
plus = document.createElement('span');
$(plus).addClass('plus');
$(plus).html(biblio);
$(plus).hide();
$(this).click(function(e) {
// test pour ne réagir que sur le clic sur le + ou -
// TODO: fusionner ce bout de code en doublon avec synthese.js
if($(e.target).hasClass("imagettePlus") || $(e.target).hasClass("imagetteMoins")) {
if (!$(this).children('.plus').is(':visible')) {
$(this).children('.imagettePlus').removeClass('imagettePlus').addClass('imagetteMoins');
$(this).children('.plus').css('display', 'inline');
} else {
$(this).children('.imagetteMoins').removeClass('imagetteMoins').addClass('imagettePlus');
$(this).children('.plus').css('display', 'none');
}
}
});
$(this).append($(plus));
}
}
});
}
 
$(document).ready(function() {
$( "#radio" ).buttonset();
$('#eflore_niveau_submit').hide();
$(".zone-choix-niveau input").click(function() {
$('#eflore_niveau_submit').click();
});
gestionBiblio();
});
</script>
 
<div class="choixNiveau">
<span class="choix-niveau">
<a href="<?=$parametres['url']?>&niveau=1" class="niveau1<?=$parametres['niveau'] == 1? ' actif' : ''?>">Débutant</a>
</span>
<span class="choix-niveau">
<a href="<?=$parametres['url']?>&niveau=2" class="niveau2<?=$parametres['niveau'] == 2? ' actif' : ''?>">Intermédiaire</a>
</span>
<span class="choix-niveau">
<a href="<?=$parametres['url']?>&niveau=3" class="niveau3<?=$parametres['niveau'] == 3? ' actif' : ''?>">Expert</a>
</span>
</div>
 
 
 
<!-- FIN FORM_NOM -->
/branches/v5.2-lasegue/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-synonymes.tpl.html
New file
0,0 → 1,14
<div>
 
<h3>Liste des synonymes de ce syntaxon :</h3>
<? if (!empty($liste)) : ?>
<?php foreach ($liste as $cle => $element ) : ?>
<ul>
<li><?=$element['syntaxon']?> </li>
</ul>
<?endforeach;?>
<? else : ?>
Pas de données.
<? endif; ?>
</div>
/branches/v5.2-lasegue/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-ref.tpl.html
New file
0,0 → 1,25
<div>
 
<h3> Références bibliographiques concernant ce syntaxon :</h3>
<span class="italique">Dernière référence : </span><br/>
<ul>
<li>
<?=empty($liste) ? "Pas de données" : $liste['der']?>
</li>
</ul>
<br/>
<?if (!empty($liste['anteriorites'])): ?>
<span class="italique">Références Antérieures: </span><br/>
<?foreach ($liste['anteriorites'] as $ref) : ?>
<ul>
<li>
<?=$ref?>
</li>
</ul>
<?endforeach ; ?>
<?endif ; ?>
 
</div>
/branches/v5.2-lasegue/modules/liste_fancy_box_phytosocio/squelettes/liste-fancy-box-taxons.tpl.html
New file
0,0 → 1,16
<div>
 
<h3>Liste des taxons ayant le même code catminat. (<?=$catminat?>)</h3>
Ils ont la même écologie que le taxon consulté. On les rencontre souvent ensemble sur le terrain (en fonction de leur répartition respective).
<? if (!empty($liste)) : ?>
<?php foreach ($liste as $cle => $element ) : ?>
<ul>
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($element['num_nomen'],'nom_scientifique'); ?>">
<li><?=$element['idiotaxon']?> </li>
</a>
</ul>
<?endforeach;?>
<? else : ?>
Pas de données.
<? endif; ?>
</div>
/branches/v5.2-lasegue/modules/liste_fancy_box_phytosocio/ListeFancyBoxPhytosocio.php
New file
0,0 → 1,148
<?php
/**
* Cette classe est le contrôleur pour l'affichage de listes dans des fenêtre fancy box.(fenêtres phytosociologie)
*
* @category PHP 5.2
* @package eflore-consultation
* @author Mathilde Salthun-lassalle <mathilde@tela-botanica.org>
* @copyright 2012 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
 
 
class ListeFancyBoxPhytosocio extends aControleur {
private $type = '';
private $informations;
private $appUrls;
private $conteneur;
private $referentiel;
private $num_nom;
private $catminat;
public function __construct() {
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->informations = $this->conteneur->getApiInformations();
$this->syntaxons = $this->conteneur->getApiSyntaxons();
$this->appUrls = $this->conteneur->getAppUrls();
}
private function capturerParametres() {
if (isset($_GET['type'])) {
$this->type = $_GET['type'];
}
if (isset($_GET['referentiel'])) {
$this->referentiel = $_GET['referentiel'];
}
if (isset($_GET['num_nom'])) {
$this->num_nom = $_GET['num_nom'];
}
if (isset($_GET['catminat'])) {
$this->catminat= trim(urldecode($_GET['catminat']));
}
}
public function executerActionParDefaut() {
$this->executerLister();
}
public function executerLister($donnees) {
header('Content-type: text/html');
$html = $this->chargerListeHtml();
echo $html;
exit;
}
public function chargerListeHtml() {
$donnees['liste'] = '';
$html = '';
$squelette = dirname(__FILE__).'/squelettes/liste-fancy-box';
if ($this->type == 'catminat_taxons') {
$donnees = $this->getListeCatminatTaxons();
$squelette .= '-taxons';
} elseif ($this->type == 'catminat_synonymes') {
$donnees = $this->getListeCatminatSynonymes();
$squelette .= '-synonymes';
} elseif ($this->type == 'catminat_ref') {
$donnees = $this->getListeCatminatRef();
$squelette .= '-ref';
} elseif ($this->type == 'catminat_taxons_sup') {
$donnees = $this->getListeCatminatTaxonsSup();
$squelette .= '-taxons';
}
if ($donnees['liste'] !== '') {
$donnees['urls'] = $this->appUrls;
$html = $this->getVue($squelette, $donnees);
}
return $html;
}
public function getListeCatminatTaxons() {
$Catminat = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setDepart(0);
$this->informations ->setLimite('500');
$this->informations ->setBdnt($this->referentiel);
$this->informations ->setNum_nom($this->num_nom);
$informations = $this->informations->getInformationsRelationCatminat();
if($informations != ""){
$Catminat['liste'] = $informations['resultat'];
$Catminat['catminat'] = $informations['resultat'][0]['catminat_code'];
}
return $Catminat;
}
public function getListeCatminatTaxonsSup() {
$Catminat = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setDepart(0);
$this->informations ->setLimite('500');
$this->informations ->setCatminat($this->catminat);
$informations = $this->informations->getInformationsMasqueCatminat();
if($informations != ""){
$Catminat['liste'] = $informations['resultats'];
$Catminat['catminat'] = str_replace('-','/',$this->catminat);
}
return $Catminat;
}
public function getListeCatminatSynonymes() {
$Catminat = array();
$this->syntaxons->setProjet('baseveg');
$this->syntaxons->setCatminat($this->catminat);
$syntaxons = $this->syntaxons->getSyntaxonsSynonymes();
if (is_array($syntaxons)) {
$Catminat['liste'] = $syntaxons['resultat'];
$Catminat['catminat'] = $syntaxons['resultat'][0]['code_catminat'];
}
return $Catminat;
}
public function getListeCatminatRef() {
$ref = array();
$this->syntaxons->setProjet('baseveg');
$this->syntaxons->setCatminat($this->catminat);
$syntaxons = $this->syntaxons->getSyntaxonsCatminat();
if (is_array($syntaxons)) {
$ref['liste']['der'] = $syntaxons['resultat'][0]['ref_der_biblio'];
if ($syntaxons['resultat'][0]['ref_anteriorite_deux'] != '') {
$ref['liste']['anteriorites'][0] = $syntaxons['resultat'][0]['ref_anteriorite_deux'];
}
if ($syntaxons['resultat'][0]['ref_anteriorite_trois'] != '') {
$ref['liste']['anteriorites'][1]= $syntaxons['resultat'][0]['ref_anteriorite_trois'];
}
if ($syntaxons['resultat'][0]['ref_anteriorite_quatre'] != '') {
$ref['liste']['anteriorites'][2] = $syntaxons['resultat'][0]['ref_anteriorite_quatre'];
}
}
return $ref;
}
}
?>
/branches/v5.2-lasegue/modules/recherche/Recherche.php
New file
0,0 → 1,321
<?php
class Recherche extends aControleur {
//+----------------------------------------------------------------------------------------------------------------+
// Méthodes
protected $nom = null;
protected $type_nom = 'nom_scientifique';
protected $type_resultat = '';
protected $submit = '';
protected $acces_fiche = false;
private $recherche_avancee;
private $param;
private $i18n = array();
private $parametresAvancesGeneriques = array('gen','fam','nn','nt','sp','ssp','type','sto','sti','stc');
public function initialiser() {
$this->capturerParametres();
$this->capturerParametresAvances();
$this->i18n = I18n::get('Recherche-form-avancee');
}
/**
* Fonction d'affichage par défaut
*/
public function executerActionParDefaut() {
$this->executerAccueil();
}
public function executerAccueil($donneesMoteur = array()) {
$meta = new MetaDonnees();
$meta->setProjet(Registre::get('parametres.referentiel'));
$metadonnees = $meta->getMetaDonnees();
$donneesMoteur['metadonnees_referentiel'] = $metadonnees[0];
$niveau = new Niveau();
$donnees['form_niveau'] = $niveau->afficherNiveau();
$recherchesimple = new RechercheSimple();
$donnees['form_nom'] = $recherchesimple->executerFormulaireNom($donneesMoteur);
if (Registre::get('parametres.niveau') != 1) {
$recherche_avancee = new RechercheAvancee();
$donnees['form_recherche_av'] = $recherche_avancee->executerFormulaireRechercheAv($donneesMoteur);
}
$donnees['description'] = "";
 
// le descriptif du référentiel est affiché lorsque seul le moteur est affiché (donc ni résultats, ni fiche)
if(Registre::get('parametres.module') == 'recherche' &&
Registre::get('parametres.action') == 'action-par-defaut' &&
!Registre::get('resultats')) {
$referentiel = Registre::get('parametres.referentiel');
$wiki = new Wikini();
$description = $wiki->getDescriptionReferentielFormate($referentiel);
$donnees['description'] = $description;
}
$this->afficherAccueil($donnees);
}
private function afficherAccueil($donnees) {
$donnees['i18n'] = I18n::get('Recherche-accueil');
$this->setSortie(self::RENDU_CORPS, $this->getVue('recherche_accueil', $donnees), true);
}
 
//+---------------------------------------------recherche avancee-------------------------------------+
public function executerRechercheAvancee() {
$this->param = $this->nettoyerParametresDefautRechercheAvancee($this->param);
$donnees['param'] = $this->param;
$presence = $this->rechercherCriteresDemandes();
if (empty($presence) && !empty($this->param)) {
$donnees['message_av']['attention'] = 'info_res_vide';
}
$this->executerAccueil($donnees);
if (Registre::get('resultats')) {
$_GET['resultat'] = $this->type_resultat;
$this->executerAction('Resultat', 'executerResultat');
}
}
 
private function nettoyerParametresDefautRechercheAvancee($params) {
$params_nettoyes = array();
foreach ($params as $cle => $param) {
if(!preg_match("#^\(.*\)$#", $param)) {
$params_nettoyes[$cle] = $param;
}
}
return $params_nettoyes;
}
public function rechercherCriteresDemandes() {
$noms = new Noms(Registre::get('parametres.referentiel'));
$res = $noms->getRechercheAvancee($this->param);
if ($res != false || $res['entete']['total'] != 0) {
if ($res['entete']['total'] == 1 ) {
$ids = array_keys($res['resultat']);
$nom = $res['resultat'][$ids[0]]['nom_sci'];
$url = $this->urls->obtenirUrlFiche($ids[0], 'nom_scientifique', $nom);
$this->redirigerVers($url);
} else {
$res['type'] = $this->type_nom;
Registre::set('resultats', $res);
}
} else {
$res = '';
}
return $res;
}
//+---------------------------------------------recherche simple-------------------------------------+
/*
grep-friendly: ICI->executerRechercheSimple()
En effet, cette méthode n'est jamais invoquée explicitement.
Le processus est le suivant:
* URL = index.php?type_nom=...&referentiel=..&module=recherche&action=rechercheSimple
* AppControleur::initialiser()
* `-> AppControleur::$parametres['action'] = $_GET['action']
* `-> AppControleur::executerModule()
* `-> effecture $module->$action()
* qui nous appelle ici
*/
public function executerRechercheSimple() {
$donnees['type_nom'] = $this->type_nom;
$donnees['nom'] = $this->nom;
if (strlen($donnees['nom']) < 3) {
$donnees['message']['attention'] = 'info_nb_lettres';
} else {
$presence = $this->rechercherNom();
if ($presence == '') { // s'il n'y a pas de nom
$donnees['message']['attention'] = 'info_sp_abs';
} elseif ($presence == 'sans_correspondance') {
$res = Registre::get('resultats');
$id = array_keys($res['resultat']);
$donnees['message']['nom_ss_corresp']['id'] = $id[0];
$nom = array_shift($res['resultat']);
$donnees['message']['nom_ss_corresp']['nom'] = $nom['nom_sci'];
} elseif ($presence != 'ok') { // s'il y a des noms approchés
if (!Registre::get('resultats')) { // s'il n'y a aucun nom exact
$donnees['message']['attention'] = 'info_sp_abs';
}
$donnees['message']['nom_approche'] = $presence;
}
}
 
$this->executerAccueil($donnees);
if (Registre::get('resultats')) {
$_GET['resultat'] = $this->type_resultat;
$this->executerAction('Resultat', 'executerResultat');
}
}
// regarde si il y a des résultats correspondant au nom recherché sinon recherche un nom approché
// $noms classe métier nom ou nom
private function rechercherNom() {
$noms = ($this->type_nom == 'nom_vernaculaire')
? new NomsVernaculaires(Config::get(Registre::get('parametres.referentiel').'.referentielVerna'))
: new Noms(Registre::get('parametres.referentiel'));
$approche = '';
$res = $noms->getRechercheEtendue($this->nom, $this->type_resultat);
$form = I18n::get('Recherche-form-nom');
if ($res == false || $res['entete']['total'] == 0) { // recherche nom approché
$approche = $this->rechercherNomApproche($noms);
} elseif ($res['entete']['total'] == 1 || $this->acces_fiche) { // renvoie à la fiche
$approche = $this->traiterAccesFiche($res);
} else { // affiche les résultats
$res['type'] = $this->type_nom;
Registre::set('resultats', $res);
$approche = 'ok';
if ($res['entete']['total'] < 3) { // si moins de 16 noms affiche en plus un nom approché
$approche = $this->rechercherNomApproche($noms);
}
}
return $approche;
}
private function traiterAccesFiche($res) {
$ids = array_keys($res['resultat']);
if ($this->type_nom == 'nom_vernaculaire') {
$id = explode(':',$res['resultat'][$ids[0]]['nom_retenu.code']);
$id = $id[1];
} else {
if ($res['resultat'][$ids[0]]['retenu'] == 'absent') { // dans le cas d'un nom sans correspondance
$res['type'] = $this->type_nom;
Registre::set('resultats', $res);
$approche = 'sans_correspondance';
return $approche;
} else {
$id = $ids[0];
}
}
$url = $this->urls->obtenirUrlFiche($id, $this->type_nom, $this->nom);
$this->redirigerVers($url);
}
private function rechercherNomApproche($noms) {
$approche = '';
$res = $noms->getRechercheFloue($this->nom);
if (!($res == false || $res['entete']['total'] == 0)) {
for ($i = 0; $i < 3; $i++) {
$nom_proche = array_shift($res['resultat']);
$approche[$i]['nom'] = ($this->type_nom == 'nom_vernaculaire') ? $nom_proche['nom'] : $nom_proche['nom_sci'];
$approche[$i]['url_nom_approche'] = $this->urls->obtenirUrlRechercheSimple($approche[$i]['nom'], $this->type_nom);
}
}
return $approche;
}
//+-----------------------------------------------méthodes utiles---------------------------------+
private function capturerParametres() {
if (isset($_REQUEST['nom'])) {
$this->nom = $this->convertirEncodageEntree(urldecode($_REQUEST['nom']));
}
if (isset($_GET['type_nom'])) {
$this->type_nom = $this->convertirEncodageEntree(urldecode($_GET['type_nom']));
}
if (isset($_GET['submit'])) {
$this->submit = $this->convertirEncodageEntree(urldecode($_GET['submit']));
}
if(isset($_GET['acces_fiche'])) {
$this->acces_fiche = true;
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $this->convertirEncodageEntree($_GET['niveau']));
}
if (isset($_GET['resultat'])) {
$this->type_resultat = $this->convertirEncodageEntree(urldecode($_GET['resultat']));
} else {
$onglet_resultat = $this->recupererTableauConfig('affich_resultats');
$this->type_resultat = $onglet_resultat[Registre::get('parametres.niveau').'_'.$this->type_nom];
}
}
private function capturerParametresAvances() {
$this->capturerParametresAvancesGeneriques();
$this->capturerParametresAvancesDependantsLangage();
$this->capturerParametresAvancesPresenceSpecifiques();
}
private function capturerParametresAvancesGeneriques() {
foreach($this->parametresAvancesGeneriques as $param) {
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = $this->convertirEncodageEntree(urldecode($_GET[$param]));
}
}
}
private function capturerParametresAvancesDependantsLangage() {
if (isset($_GET['au']) && $_GET['au'] != ''
&& $_GET['au'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-auteur']))) {
$this->param['au'] = $this->convertirEncodageEntree(urldecode($_GET['au']));
}
if (isset($_GET['bib']) && $_GET['bib'] != ''
&& $_GET['bib'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-bib']))) {
$this->param['bib'] = $this->convertirEncodageEntree(urldecode($_GET['bib']));
}
if (isset($_GET['and']) && $_GET['and'] != ''
&& $_GET['and'] != $this->convertirEncodageEntree(urlencode($this->i18n['valeur-form-date']))) {
$this->param['and'] = $this->convertirEncodageEntree(urldecode($_GET['and']));
}
if (isset($_GET['anf']) && $_GET['anf'] != ''
&& $_GET['anf'] != urlencode($this->i18n['valeur-form-date'])) {
$this->param['anf'] = $this->convertirEncodageEntree(urldecode($_GET['anf']));
}
}
private function capturerParametresAvancesPresenceSpecifiques() {
$champs_presence = $this->obtenirChampsPresence();
foreach($champs_presence as $champ) {
$param = $champ['param'];
if (isset($_GET[$param]) && $_GET[$param] != '') {
$this->param[$param] = $this->convertirEncodageEntree(urldecode($_GET[$param]));
}
}
}
private function obtenirChampsPresence() {
$tableau_champs_presence = array();
$referentiel = Registre::get('parametres.referentiel');
$champs_presence_spl = explode('|', Config::get($referentiel.'.champsPresence'));
foreach($champs_presence_spl as $champ) {
$label_param_champ = explode(':', $champ);
if(count($label_param_champ) >= 2) {
$tableau_champs_presence[] = array('param' => $label_param_champ[1],
'label' => $label_param_champ[0]);
}
}
return $tableau_champs_presence;
}
protected function recupererTableauConfig($param) {
$tableau = array();
$tableauPartiel = explode(',', Config::get($param));
$tableauPartiel = array_map('trim', $tableauPartiel);
foreach ($tableauPartiel as $champ) {
if (strpos($champ, '=') === false) {
$tableau[] = $champ;
} else {
list($cle, $val) = explode('=', $champ);
$tableau[$cle] = $val;
}
}
return $tableau;
}
 
 
/**
* Convertion des valeurs de requête dans l'encodage de l'application (voir fichier config.ini : appli_encodage),
* A cause d'un bug en cours d'investigation, celle ci utilise des paramètres différents de la fonction de conversion
* D'encodage de sortie
* Cette convertion a lieu seulement si les formats sont différents.
*/
private function convertirEncodageEntree($contenu) {
if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
$contenu = mb_convert_encoding($contenu, Config::get('appli_encodage'), Config::get('sortie_encodage'));
}
return $contenu;
}
}
?>
/branches/v5.2-lasegue/modules/recherche/squelettes/recherche_accueil.tpl.html
New file
0,0 → 1,13
<div id="bloc-recherche" class="importance1">
<h1><?=$i18n['titre-nom'];?></h1>
<?=$form_niveau;?>
<?=$form_nom;?>
<!-- niveau expert : recherche avancée -->
<?= isset($form_recherche_av) ? $form_recherche_av : '' ;?>
</div>
 
<div class="description-referentiel">
<span class="description-referentiel-texte">
<?=$description;?>
</span>
</div>
/branches/v5.2-lasegue/modules/pagination/squelettes/pagination.tpl.html
New file
0,0 → 1,40
<?php if($nb_resultats > 0) {?>
 
<?php if($nb_pages > 1) {?>
Pages &nbsp;&nbsp;
<?php } ?>
 
<?php if(($page_en_cours >= $pages_debut_intervalle) && (($page_en_cours != 1)) && ($nb_pages != 1)) { ?>
<a class="premiere_page" href="<?= $url_base_pagination.'0' ?>" title="Première page">[1]</a> ...
<?php } ?>
 
<?php if($page_en_cours > 1) { ?>
<a class="page_prededente" href="<?= $url_base_pagination.(($page_en_cours - 2)*$taille_page) ?>" title="Page précedente">&lt;&lt;</a>&nbsp;&nbsp;
<?php } ?>
 
<?php if($nb_pages > 1) { ?>
<span class="pages">
<?php for($i = $pages_debut_intervalle; ($i < $pages_debut_intervalle+$pages_taille_intervalle) && $i <= $nb_pages ; $i++) : ?>
<?php if($page_en_cours == $i) { ?>
<span class="page_courante">
<?php } else { ?>
<span>
<?php } ?>
<a class="premiere_page" href="<?= $url_base_pagination.(($i - 1)*$taille_page) ?>" title="Page numéro <?= $i ?>"><?= $i ?></a>
</span>&nbsp;&nbsp;
<?php endfor; ?>
</span>
<?php } ?>
 
<?php if($page_en_cours < $nb_pages) { ?>
<a class="page_prededente" href="<?= $url_base_pagination.(($page_en_cours)*$taille_page) ?>" title="Page suivante">&gt;&gt;</a>
<?php } ?>
 
<?php if(($page_en_cours != $nb_pages) && ($nb_pages > $pages_taille_intervalle)) { ?>
... <a class="derniere_page" href="<?= $url_base_pagination.(($nb_pages-1)*$taille_page) ?>" title="Dernière page">[<?= $nb_pages; ?>]</a> &nbsp;
<?php } ?>
 
<span class="nb_resultats"> Résultats <?= $intervalle_min.' - '.$intervalle_max ?> sur <?= $nb_resultats; ?></span>
 
<?php } ?>
<hr style="clear:both;visibility:hidden;" />
/branches/v5.2-lasegue/modules/pagination/Pagination.php
New file
0,0 → 1,80
<?php
Class Pagination extends aControleur {
private $depart = 0;
private $limite = 30;
private $total = 1;
private $taille_page = 25;
protected $urls = null;
public function Pagination() {
$this->initialiser();
}
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->urls = $this->conteneur->getAppUrls();
}
private function capturerParametres() {
if (isset($_GET['navigation_depart'])) {
$this->depart = $_GET['navigation_depart'];
unset($_GET['navigation_depart']);
}
if (isset($_GET['navigation_limite'])) {
$this->limite = $_GET['navigation_limite'];
unset($_GET['navigation_limite']);
}
$this->total = Registre::get('navigation.total');
if (isset($_GET['navigation_taille_page'])) {
$this->taille_page = $_GET['navigation_taille_page'];
unset($_GET['navigation_taille_page']);
}
}
public function getPagination() {
$donnees = array();
if ($this->depart == 0) {
$page_en_cours = 1;
} else if ($this->total != 0) {
$page_en_cours = floor(($this->depart + 1)/$this->limite + 1);
}
$pages_avant_apres = 7;
$pages_debut_intervalle = 0;
$nb_pages = 0;
if ($page_en_cours < $pages_avant_apres) {
$pages_debut_intervalle = 1;
} else {
$pages_debut_intervalle = $page_en_cours - $pages_avant_apres + 2;
}
$pages_a_afficher = $this->taille_page;
$intervalle_max = (($page_en_cours) * $this->limite);
$donnees['url_base_pagination'] = '?'.http_build_query($_GET).'&navigation.limite='.$this->limite.'&navigation.depart=';
$nb_pages = ceil($this->total/$this->limite);
if ($page_en_cours == $nb_pages) {
$intervalle_max = $this->total;
}
$donnees['pages_taille_intervalle'] = $pages_avant_apres;
$donnees['pages_debut_intervalle'] = $pages_debut_intervalle;
$donnees['page_en_cours'] = $page_en_cours;
$donnees['intervalle_min'] = (($page_en_cours-1) * $this->limite);
$donnees['intervalle_max'] = $intervalle_max;
$donnees['nb_resultats'] = $this->total;
$donnees['nb_pages'] = $nb_pages;
$donnees['taille_page'] = $this->limite;
$vue = $this->getVue('/home/aurelien/web/eflore-consultation/modules/pagination/squelettes/pagination', $donnees);
return $vue;
}
}
?>
/branches/v5.2-lasegue/modules/pdf_export/pdf_export.txt
New file
0,0 → 1,32
A LIRE
 
- pour utiliser wkhtmltopdf en local télécharger la version static binaire linux (avec patch QT) à l'adresse
http://code.google.com/p/wkhtmltopdf/downloads/list
(cette version peut fonctionner sans server x11 et permet plus de fonctionnalités)
décompresser et mettre dans /usr/local/bin/ ou /usr/bin
-dans le fichier de config :
changer les valeurs de :
; chemin vers outil de conversion pdf
WKHTMLTOPDF = ""
(sur le serveur c'est 'wkhtmltopdf' mais en local il faut parfois le chemin complet)
et
; chemin de stockage temporaire pour les Html & les PDF
dossier_pdf = ""
les fichiers html et pdf créés pour une même fiche peuvent être différents d'un utilisateur
à un autre car chacun peut personnaliser sa fiche. Ainsi, les fichiers créés sont détruits
après avoir été envoyés au navigateur.
 
-lors de l'appel de wkhtmltopdf avec exec() :
* mettre le --encoding utf-8 avant toute page html
* si utilisation de --replace : mettre guillemets simples : ex :--replace 'nom_parametre' '$nom'
* ne pas mettre de guillemets pour les chemins vers une page html
-les appels aux méthodes obtenirDonneesExport() pour récupérer les données, servent à sélectionner
uniquement les infos nécéssaires lors de l'export pour augmenter les performances.
 
-pour autoriser les éléments html coupés entre deux pages ou les interdire utiliser le css
(page-break-inside : avoid ou auto)
 
- ne pas renommer footer.html en footer.tpl.html
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/branches/v5.2-lasegue/modules/pdf_export/squelettes/footer.html
New file
0,0 → 1,36
<!-- ne pas renommer en .tpl.html SINON il ne sera pas ajouté au pied de page pdf-->
<html>
<head>
<script>
function subst() {
var vars={};
var x=document.location.search.substring(1).split('&');
for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
var x=['frompage','topage','page','webpage','section','subsection','subsubsection', 'nom'];
for (var i in x) {
var y = document.getElementsByClassName(x[i]);
for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
}
}
</script>
</head>
<body style="border: 0; margin: 0;" onload="subst()">
<table style="width: 100%; font-size: 10px;">
<!-- les valeurs de page, section, subsection,...(passées en paramètres) peuvent être affichées
grâce aux class, on peut aussi en créer de nouvelles (ex: date) et leur affecter une valeur
grâce à --replace : -->
<tr>
<td style=" border:none; text-align: left; width: 30%;">
www.tela-botanica.org
</td>
<td style="border:none; text-align: center; width: 50%; ">
fiche eFlore de <span style="font-style:italic;" class="nom"></span>
</td>
<td style="border:none; text-align: right; width: 20%; " >
<span class="page"></span>/<span class="topage"></span>
</td>
</tr>
</table>
</body>
</html>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_statuts.tpl.html
New file
0,0 → 1,49
<!-- STATUTS de protection -->
<div class="bloc <? if ($premier == 'statuts') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<h2 class= "categorie">Statuts de protection</h2>
<!-- STATUTS -->
<?php if(!empty($statuts['statuts'])) : ?>
<table class="liste_statuts_protection no-break">
<tr>
<th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th>
</tr>
<?php foreach ($statuts['statuts'] as $statut) : ?>
<tr>
<td>
<?= $statut['zone_application']; ?>
</td>
<td>
<?= $statut['regle']; ?>
</td>
<td>
<?= $statut['texte']; ?>
(<?= $statut['statut']; ?>)
</td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
 
<!-- WIKI -->
<? if(!empty($statuts['wikini']['statuts_de_protection'])) : ?>
<div class="no-break">
<h2>Vos compléments sur les statuts de protection :</h2>
<span>Données collaboratives sur les statuts de protection. </span>
<div class="allow-break wiki" title="statuts de protection">
<?=$statuts['wikini']['statuts_de_protection']?>
</div>
</div>
<? endif;?>
<!-- VIDE DE DONNEES -->
<? if (empty($statuts['wikini']['statuts_de_protection']) && empty($statuts['statuts']) ): ?>
Pas de protection connue.
<? endif;?>
</div>
<br/>
<br/>
 
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_header.tpl.html
New file
0,0 → 1,26
<!doctype html>
<html>
<!-- ici est le style et l'en-tête de la première page.
pour un en-tête sur chaque page avec wkhtmltopdf utiliser --header.* -->
<head>
<link href="<?=$donnees_pdf['chemin_css'] ?>" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- EN TETE de la première page -->
<table style="width: 100%; background-color:#9AC343;">
<tr>
<td style="border:none; text-align: left; width: 20%; height:20mm; margin-left:10mm; margin-right:10mm; ">
<img style="height:15mm;" src="http://www.tela-botanica.org/sites/botanique/generique/images/graphisme/logo_tela_fond_vert.png" alt="Tela Botanica"/>
</td>
<td style=" border:none; text-align: center; vertical-align: bottom ; padding-bottom:5px;" >
<span style="font-size:20px; color:white;">
<?=$donnees_pdf['nom']?>
</span> <br/><br/>
eFlore, la flore électronique de Tela Botanica.
<span class="version"><?=$donnees_pdf['version']?></span>
</td>
</tr>
</table>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_illustrations.tpl.html
New file
0,0 → 1,51
<!-- ILLUSTRATIONS -->
<div class="bloc no-break">
<div class="categorie">Illustrations</div>
 
<!-- COSTE toutes -->
<?php if (empty($illustrations['coste']['images']) == false) :?>
<div class="deux-colonnes">
<h2>Illustration de la flore de Coste</h2>
<span class="citation"><?= $illustrations['coste']['meta']['citation']?></span><br/>
<div id="illustrations">
<ul class="liste-illustrations allow-break">
<?php foreach($illustrations['coste']['images'] as $url) : ?>
<li>
<img src="<?= $url; ?>" alt="illustration de la flore de coste" />
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
</div>
</div>
<?php endif;?>
<!-- CEL la première image -->
<?php if (isset($illustrations['cel']['images'])) : ?>
<div class="deux-colonnes">
<h2>Carnet En Ligne (CEL)</h2>
<span class="citation"><?= $illustrations['cel']['meta']['citation']?></span><br/>
<div id="illustrations">
<ul class="liste-illustrations allow-break">
<li>
<img src="<?= $illustrations['cel']['images']['src']; ?>" />
<p>
à <strong class="localisation"><?= $illustrations['cel']['images']['commune']; ?></strong><br />
observée le <strong class="date-creation"><?= $illustrations['cel']['images']['date']; ?></strong><br/>
par <strong class="auteur"><?= $illustrations['cel']['images']['auteur']; ?></strong>
</p>
</li>
</ul>
<hr class="nettoyage" />
</div>
</div>
<?php endif; ?>
<hr class="nettoyage" />
<!-- VIDE DE DONNEES -->
<?php if (!isset($illustrations['cel']['images']) && empty($illustrations['coste']['images']) ) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_nomenclature.tpl.html
New file
0,0 → 1,148
<!-- NOMENCLATURE -->
<div class="bloc <?if ($premier == 'nomenclature') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<div class="categorie"> Nomenclature </div>
<!-- NOM RETENU -->
<?php if(!empty($nomenclature['basionyme_nom_retenu']) || !empty($nomenclature['nom_selectionne'])
|| !empty($nomenclature['nom_retenu']) || !empty($nomenclature['nom_retenu_formate'])) :?>
<div class="no-break">
<h2>Nom retenu</h2>
<span class="citation"><?= $nomenclature['synonymes']['meta']['citation']?></span>
<div style="float:right">
<div class="legende">
<b>Légende</b><br />
<span class="legende_nom_retenu couleur_legende" style="margin:8px 5px 0 0"></span><span>Nom sélectionné</span>
</div>
</div>
<div class="onglet_marge_gauche">
<span class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate'] ?>
</span>
</div>
<div class="nom onglet_marge_gauche basionyme_complet">
Basionyme :
<?= $nomenclature['basionyme_nom_retenu'] ?>
</div>
 
<?php if($nomenclature['referentiel'] != 'bdtxa'): // cf http://referentiels.tela-botanica.org/referentiel/index.php?ref=bdtxa&module=FicheTaxon&num_nom=14610 ?>
<div class="onglet_marge_gauche"> Dernière date de modification du nom : <?= $nomenclature['date_maj'] ?> </div>
<? endif; ?>
</div>
<hr class="nettoyage" />
<?php endif; ?>
<!-- WIKI -->
<? if (!empty($nomenclature['wikini']['nomenclature'])) :?>
<div class="no-break">
<span> Données collaboratives sur ce nom. </span>
<div title="statuts de protection" class="wiki allow-break">
<?=$nomenclature['wikini']['nomenclature']?>
</div>
</div>
<? endif; ?>
<!-- SYNONYMES -->
<?php if(is_array($nomenclature['synonymes']['noms']) && count($nomenclature['synonymes']['noms']) > 0) { ?>
<div class="no-break">
<h2>Synonymes</h2>
<span class="citation"><?= $nomenclature['synonymes']['meta']['citation']?></span>
<?php foreach ($nomenclature['synonymes']['noms'] as $id => $synonyme) : ?>
<ul class="allow-break">
<li class="item_nomenclature">
<span class="nom <?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci']) ? 'surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet'] ?>
</span>
<span class="nom basionyme_complet">
<?= ($synonyme['basionyme_html_complet']) ? "Basionyme : ".$synonyme['basionyme_html_complet'] : ''; ?>
</span>
</li>
</ul>
<?php endforeach; ?>
<hr class="nettoyage" />
</div>
<?php } ?>
<div class="no-break">
<?php if (!empty($nomenclature['taxons_sup'])) : ?>
<h2> Place du taxon dans la classification </h2>
<span class="citation"><?= $nomenclature['meta']['citation']?></span>
<table class="allow-break">
<tr>
<th>Rang</th><th>Nom Scientifique</th><th>Num Nom</th>
</tr>
<?php foreach ($nomenclature['taxons_sup'] as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td><?= $taxon['nom_sci'] ?></td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<tr class="surlignage">
<td><?= $nomenclature['taxon_courant']['rang.libelle'] ?></td>
<td><?= $nomenclature['taxon_courant']['nom_sci'] ?></td>
<td><?= $nomenclature['taxon_courant']['num_nom'] ?></td>
</tr>
<?php if (!empty($nomenclature['taxons_inf'])) : ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td><?= $taxon['nom_sci'] ?></td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<?php endif; ?>
</div>
<!-- VIDE DE DONNEES -->
<?php if ( empty($nomenclature['taxons_sup']) && empty($nomenclature['taxon_inf'] ) ) : ?>
Aucune donnée.
<?php endif; ?>
<br/>
<!-- FLORES -->
<?php if(is_array($nomenclature['flores_synonymes']) && count($nomenclature['flores_synonymes']) > 0) { ?>
<div class="no-break">
<h2>Flores</h2>
<span class="citation"><?= $nomenclature['synonymes']['meta']['citation']?></span>
<?php foreach ($nomenclature['flores_synonymes'] as $num_nom_syn => $infos_flore) : ?>
<?php foreach ($infos_flore as $code => $flore) : ?>
<ul class="allow-break">
<li class="item_nomenclature">
<div class="nom">
Dans la flore <em><?= $flore['nom_flore'] ?></em>,
ce taxon porte le nom de <em><?= $flore['nom_sci'] ?></em>
et le code <b><?= $flore['id'] ?></b><br />
</div>
</li>
</ul>
<?php endforeach; ?>
<?php endforeach; ?>
</div>
<hr class="nettoyage" />
<?php } ?>
<!-- num type -->
<?php if($nomenclature['num_type'] != null) { ?>
<h3> Autres </h3>
<ul>
<li class="item_nomenclature">
<span class="nom">Numéro du type : <?= $nomenclature['num_type'] ?></span>
</li>
</ul>
<?php } ?>
<!-- VIDE DE DONNEES -->
<?php if ( empty($nomenclature['basionyme_nom_retenu']) && empty($nomenclature['nom_retenu_formate'] )
&& empty($nomenclature['nom_selectionne'] ) && empty($nomenclature['synonymes']['noms'] )
&& empty($nomenclature['nom_retenu']) && empty($nomenclature['flores_synonymes'])
&& empty($nomenclature['num_type'])) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_bibliographie.tpl.html
New file
0,0 → 1,49
<!-- BIBLIOGRAPHIE -->
<div class="bloc <? if ($premier == 'bibliographie') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<div class="categorie">Bibliographie</div>
<!-- FLORE -->
<? if(!empty($bibliographie['flores']['liste_flores'])) : ?>
<div class ="no-break">
<h2 > Flores </h2>
<span class='citation'><?= $bibliographie['flores']['meta']['citation']?></span>
<ul class="liste_biblio_flores allow-break">
<?php foreach($bibliographie['flores']['liste_flores'] as $flore) : ?>
<li class="item_biblio_flore"><span class="nom"> <?= $flore ?></span></li>
<?php endforeach; ?>
</ul>
</div>
<? endif; ?>
 
<!-- REFERENCES BIBLIOGRAPĤIQUES-->
<? if(!empty($bibliographie['bibliobota']['references'] )) : ?>
<div class ="no-break allow-break">
<h2> Références bibliographiques </h2>
<ul class="references_bibliographiques">
<?php foreach($bibliographie['bibliobota']['references'] as $reference) : ?>
<li class="item_biblio_flore"><span class="nom"><?=$reference['reference_html']?></span></li>
<?php endforeach; ?>
</ul>
</div>
<? endif; ?>
<!-- WIKI-->
<? if (!empty($bibliographie['wikini']['biblio'])): ?>
<h2> Bibliographie collaborative : </h2>
<span> Rédaction collaborative de cette bibliograpĥie. </span>
<div class="wiki allow-break" title="biblio">
<?=$bibliograhie['wikini']['biblio']?>
</div>
<? endif; ?>
<!-- VIDE DE DONNEES -->
<?php if ( empty($bibliographie['flores']['liste_flores'])
&& empty($bibliographie['bibliobota']['references'] )
&& empty($bibliographie['wikini']['biblio'])) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_repartition.tpl.html
New file
0,0 → 1,56
<!-- REPARTITION -->
<div class="bloc no-break">
<div class="categorie"> Répartition </div>
 
<!-- CHOROLOGIE DEPARTEMENTALE -->
<? if (!empty($repartition['chorodep']['svgUrl']) && !empty($repartition['chorodep']['legende']) ) : ?>
<div class="deux-colonnes">
<h2>Chorologie départementale</h2>
<div class="repartition_observations allow-break">
<!--version svg laisser attribut alt au cas où svg ne marche pas -->
<object style=" height:200px;" type="image/svg+xml" data="<?=$repartition['chorodep']['svgUrl']?>" alt="<?=$repartition['min']['chorodep']?>">
</object>
<!-- version png --><!-- <img src="<?=$repartition['min']['chorodep']?>" />-->
</div>
<div class="legende_r allow-break">
<? foreach ($repartition['chorodep']['legende'] as $id => $details) :?>
<div style="clear:left; ">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div class="texte_legende_repartition"><b><?=$details['nom']?></b></div>
</div>
<? endforeach; ?>
</div>
</div>
<?php endif; ?>
<!-- OBSERVATIONS -->
<? if (!empty($repartition['eflore']['min']) && !empty($repartition['eflore']['legende'])) : ?>
<div class="deux-colonnes">
<h2>Observations</h2>
<div class="repartition_observations allow-break" >
<img src="<?=$repartition['eflore']['min']?>" />
</div>
<div class="legende_r allow-break">
<? foreach ($repartition['eflore']['legende'] as $id => $details) :?>
<div style="clear:left;">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div class="texte_legende_repartition" ><b><?=$details['nom']?> : </b><?=$details['description']?></div>
</div>
<? endforeach; ?>
</div>
</div>
<?php endif; ?>
<hr class="nettoyage" />
<!-- VIDE DE DONNEES -->
<?php if (empty($repartition['chorodep']['svgUrl'])
&& empty($repartition['chorodep']['legende'])
&& empty($repartition['eflore']['min'])
&& empty($repartition['eflore']['legende'])) : ?>
Aucune donnée.
<?php endif; ?>
</div>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_description.tpl.html
New file
0,0 → 1,179
<!-- DESCRIPTION -->
<div class="bloc <?if ($premier == 'description') : echo 'allow-break'; else : echo 'no-break' ; endif; ?>">
 
<div class="categorie">Description</div>
<!-- COSTE -->
<? if (!empty($description['coste']['description'])) : ?>
<div class="no-break">
<h2> Description de Coste </h2>
<span class="citation"><?=$description['coste']['meta']['citation']?></span>
<div>
<table class="desc">
<tr>
<td>
<?if ($description['coste']['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['coste']['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['coste']['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['coste']['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($description['coste']['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['coste']['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['coste']['description']['texte'] != '') : ?>
<?=$description['coste']['description']['texte']; ?>
<? endif; ?>
</td>
</tr>
<?if ($description['coste']['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['coste']['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['coste']['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['coste']['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['coste']['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['coste']['description']['floraison']; ?>
<?if ($description['coste']['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['coste']['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['coste']['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['coste']['description']['usages']; ?>
</td>
</tr>
<? endif;?>
</table>
</div>
</div>
<br/>
<? endif; ?>
<!-- BASEFLOR -->
<? if (!empty($description['baseflor'])) : ?>
<div class="no-break">
<h2>Description Baseflor </h2>
<span class="citation"><?=$description['baseflor']['meta']['citation']?> </span>
<div>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['baseflor']['type_bio'] != '') : ?>
<span class="titre">Type Biologique : </span>
<?=$description['baseflor']['type_bio']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($description['baseflor']['form_vegetale'] != '') :?>
<span class="titre">Formation végétale : </span>
<?=$description['baseflor']['form_vegetale']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($description['baseflor']['chorologie'] != '') :?>
<span class="titre">Chorologie : </span>
<?=$description['baseflor']['chorologie'] ?>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<?if ($description['baseflor']['inflorescence'] != '') :?>
<span class="titre">Inflorescence :</span>
<?=$description['baseflor']['inflorescence'];?> <br/>
<? endif; ?>
<?if ($description['baseflor']['fruit'] != '') :?>
<span class="titre">Fruit :</span>
<?=$description['baseflor']['fruit']; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['couleur_fleur'] != '') :?>
<span class="titre">Couleur de la fleur : </span>
<?=$description['baseflor']['couleur_fleur'];?> <br/>
<? endif; ?>
<?if ($description['baseflor']['macule'] != '') :?>
<span class="titre">Macule : </span>
<?=$description['baseflor']['macule']; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['floraison'] != '') :?>
<span class="titre">Floraison : </span>
<?=$description['baseflor']['floraison']; ?> <br/>
<? endif; ?>
</td>
<td>
<?if ($description['baseflor']['sexualite'] != '') :?>
<span class="titre">sexualité : </span>
<?=$description['baseflor']['sexualite'] ; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['ordre_maturation'] != '') :?>
<span class="titre">Ordre de maturation : </span>
<?=$description['baseflor']['ordre_maturation']; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['pollinisation'] != '') :?>
<span class="titre">Pollinisation : </span>
<?=$description['baseflor']['pollinisation'] ; ?> <br/>
<? endif; ?>
<?if ($description['baseflor']['dissemination'] != '') :?>
<span class="titre">Dissémination : </span>
<?=$description['baseflor']['dissemination'] ;?> <br/>
<? endif; ?>
</td>
</tr>
</table>
</div>
</div>
<? endif; ?>
<br/>
<!-- WIKI -->
<? if (!empty($description['wikini']['description'])) : ?>
<div class="no-break">
<h2> Description collaborative </h2>
<div class="wiki allow-break" title="description">
<?=$description['wikini']['description']?>
</div>
</div>
<? endif; ?>
<!-- VIDE DE DONNEES -->
<? if (empty($description['wikini']['description']) && empty($description['coste']['description']) && empty($description['baseflor']) ) : ?>
Aucune Donnée.
<? endif; ?>
</div>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_ethnobotanique.tpl.html
New file
0,0 → 1,91
<!-- ETHNOBOTANIQUE-->
<div class="bloc <? if ($premier == 'ethnobotanique') : echo 'allow-break'; else : echo 'no-break'; endif; ?>">
<div class="categorie">Ethnobotanique</div>
<!-- NOMS COMMUNS -->
<?php if($ethnobotanique['nvjfl']['noms'] != array()) : ?>
<div class="no-break">
<h2>Noms communs</h2>
<span class="citation"><?=$ethnobotanique['nvjfl']['meta']['citation']?></span>
<table class="allow-break">
<tr>
<th>Langue</th><th>Nom</th><th>Genre et Nombre</th><th>Conseil d'emploi</th><th>Notes</th>
</tr>
<?php foreach($ethnobotanique['nvjfl']['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
<td><?= $nom_verna['genre'] ?></td>
<td><?= $nom_verna['conseil_emploi'] ?></td>
<td><?= $nom_verna['notes'] ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
<?php endif; ?>
<!-- WIKI -->
<?php if (!empty($ethnobotanique['wikini']['noms_communs'])) : ?>
<div class="no-break">
<span> Noms communs et étymologies proposés par les membres du réseau : </span>
<div title="noms_communs" class="wiki allow-break">
<?=$ethnobotanique['wikini']['noms_communs']?>
</div>
</div>
<?php endif; ?>
<!-- STATUTS -->
<?php if($ethnobotanique['chorologie']['donnees'] != array()) : ?>
<div class="no-break">
<h2>Statuts</h2>
<span class="citation"><?=$ethnobotanique['chorologie']['meta']['citation']?></span>
<table class="liste_statuts allow-break">
<tr>
<th></th>
<? foreach($ethnobotanique['chorologie']['colonnes'] as $colonne) : ?>
<th><?=$colonne ?></th>
<?php endforeach; ?>
</tr>
<? foreach($ethnobotanique['chorologie']['donnees'] as $type => $donnee) : ?>
<tr>
<td><?=$type ?></td>
<? foreach($ethnobotanique['chorologie']['colonnes'] as $colonne) : ?>
<td><?= (isset($donnee[$colonne])) ? $donnee[$colonne] : '' ?></td>
<? endforeach; ?>
</tr>
<? endforeach; ?>
</table>
</div>
<? endif; ?>
<!-- USAGE -->
<? if (!empty($ethnobotanique['wikini']['usage'])) : ?>
<div class="no-break">
<h2> Usage : </h2>
<span> Rédaction collaborative. </span>
<div title="usage" class="wiki allow-break">
<?=$ethnobotanique['wikini']['usage']?>
</div>
</div>
<? endif; ?>
<!-- CULTURE ET ARTS -->
<? if (!empty($ethnobotanique['wikini']['usage'])) : ?>
<div class="no-break">
<h2> Culture et arts : </h2>
<span> Rédaction collaborative. </span>
<div title="culture et arts" class="wiki allow-break">
<?=$ethnobotanique['wikini']['culture_et_arts']?>
</div>
</div>
<? endif; ?>
<!-- VIDE DE DONNEES -->
<? if (empty($ethnobotanique['wikini']) && empty($ethnobotanique['chorologie']) && empty($ethnobotanique['nvjfl']) ) : ?>
Aucune Donnée.
<? endif; ?>
</div>
<br/>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/squelettes/pdf_ecologie.tpl.html
New file
0,0 → 1,99
<!-- ECOLOGIE -->
<div class="bloc no-break">
<!-- ECOLOGIE -->
<div class="categorie">Ecologie</div>
<? if (!isset($ecologie['baseflor']['aucune'])) : ?>
<div class="no-break">
<h2>Optimum écologique</h2>
<span class="citation"><?=$ecologie['baseflor']['meta']['citation']?></span>
<div class="fond_graphique">
<? if($ecologie['baseflor']['climat_url']) : ?>
<div class="no-break">
<div class="graphique">
<span class="titre">caractéristiques climatiques</span>
<br/>
<!-- laisser attribut alt au cas où svg ne marche pas -->
<object class="svg_clim" type="image/svg+xml" data="<?=$ecologie['baseflor']['climat_url']?>" alt="<?=$ecologie['baseflor']['climat_url_png']?>">
</object>
</div>
</div>
<? endif; ?>
<? if($ecologie['baseflor']['sol_url']) : ?>
<div class="no-break">
<div class="graphique">
<span class="titre centrer">caractéristiques du sol</span>
<br/>
<!-- laisser attribut alt au cas où svg ne marche pas -->
<object type="image/svg+xml" data="<?=$ecologie['baseflor']['sol_url']?>" class="svg_sol" alt="<?=$ecologie['baseflor']['sol_url_png']?>">
</object>
</div>
<br/>
<img src="<?=$ecologie['baseflor']['legende_eco']?>" class="legende_formes"/>
</div>
</div>
<? endif; ?>
</div>
<? endif; ?>
<!-- PHYTOSOCIOLOGIE -->
<div class="no-break">
<? if (isset($ecologie['baseveg']['baseflor']['catminat'])) : ?>
<h2>Phytosociologie</h2>
<span class="citation"><?=$ecologie['baseveg']['meta']['citation']?></span>
<? if (isset($ecologie['baseveg']['syntaxons-sup']) || isset($ecologie['baseveg']['syntaxons-sup'])) : ?>
<br/>
Le code catminat de ce taxon est <span class="gras"> <?=$ecologie['baseveg']['baseflor']['catminat'] ?></span> </br>
Il est caractéristique du syntaxon de niveau <span class="gras"><?=$ecologie['baseveg']['syntaxon-courant'][0]['niveau.libelle']?></span> présenté
dans le tableau ci-dessous avec ses niveaux supérieurs.
<table>
<?php foreach ($ecologie['baseveg']['syntaxons-sup'] as $cle => $valeurs ) : ?>
<tr>
<td>
<span class="gras">
<?=$valeurs['code_catminat']?>
</span></br>
<?=$valeurs['niveau.libelle']?>
</td>
<td>
<span class="gras">
<?=$valeurs['syntaxon']?>
</span> </br>
<span >
<?=$valeurs['physio_biotype']?>
</span> </br>
<?= !empty($valeurs['repartition_france']) ? 'répartition : '.$valeurs['repartition_france'] : '' ?>
</br>
Réf. <?=$valeurs['ref_der_biblio']?>
</td>
</tr>
<? endforeach; ?>
<tr class="surlignage">
<td>
<span class="gras">
<?=$ecologie['baseveg']['syntaxon-courant'][0]['code_catminat']?>
</span></br>
<?=$ecologie['baseveg']['syntaxon-courant'][0]['niveau.libelle']?>
</td>
<td>
<span class="gras">
<?=$ecologie['baseveg']['syntaxon-courant'][0]['syntaxon']?>
</span> </br>
<span >
<?=$ecologie['baseveg']['syntaxon-courant'][0]['physio_biotype']?>
</span> </br>
<?= !empty($ecologie['baseveg']['syntaxon-courant'][0]['repartition_france']) ? 'rép.'.$ecologie['baseveg']['syntaxon-courant'][0]['repartition_france'] : ''?>
</br>
Réf. <?=$ecologie['baseveg']['syntaxon-courant'][0]['ref_der_biblio']?>
</td>
</tr>
</table>
<?endif;?>
<?endif;?>
</div>
 
<!-- VIDE DE DONNEES -->
<? if (isset($ecologie['baseflor']['aucune'])) : ?>
Aucune donnée.
<? endif; ?>
</div>
<br/>
/branches/v5.2-lasegue/modules/pdf_export/PdfExport.php
New file
0,0 → 1,226
<?php
/**
* Classe PdfExport, réalise des exportations pdf des fiches de taxons.
* Les fonctionnalités proposées sont l'export de toutes les parties de la fiche pdf
* ou bien des parties choisies.
* (voir le squelette fiche_pdf_lien.tpl.html pour le formulaire dans le module fiche.)
*
* manuel wkhtmltopdf : http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0_rc2-doc.html
* pour changer de librairie : changer la fonction transformerHtmlEnPdf()
*
* @category php 5.2
* @package eflore-consultation
* @author Mathilde Salthun-Lassalle <mathilde@tela-botanica.org>
* @copyright 2012 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
 
class PdfExport extends aControleur {
 
const DUREE_DE_VIE_PDF = 86400;// 3600 * 24 * 2 = 172 800
const DUREE_DE_VIE_HTML = 60;
 
private $Conteneur;
private $parametres = array();
private $chemin_pdf;
private $html;
private $wkhtml;
private $piedepage;
private $fichier_pdf;
private $blocs = array();
 
private $Desc;
private $Ecolo;
private $Ethno;
private $Illus;
private $Nomen;
private $Reparti;
private $Stat;
private $Biblio;
 
public function initialiser() {
spl_autoload_register(array($this, 'chargerClassesOnglets'));
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->chemin_pdf = Config::get('dossier_pdf');
$this->wkhtml = Config::get('WKHTMLTOPDF');
$this->Desc = new Description($this->conteneur);
$this->Ecolo = new Ecologie($this->conteneur);
$this->Ethno = new Ethnobotanique($this->conteneur);
$this->Illus = new Illustrations($this->conteneur);
$this->Nomen = new Nomenclature($this->conteneur);
$this->Stat = new Statut($this->conteneur);
$this->Biblio = new Bibliographie($this->conteneur);
$this->Reparti = new Repartition($this->conteneur);
$this->piedepage = Config::get('chemin_modules').'pdf_export/squelettes/footer.html';
}
 
private function chargerClassesOnglets($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'../fiche/formateurs'.DS;
$dossiers = array($base, $cheminFormateurs);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function getNomRetenu() {
$nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
return $nom_retenu;
}
 
private function getNomRetenuHTML() {
$nom_retenu = '<span class="italique">'
.$this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci')
.'</span> '.$this->conteneur->getNomCourant()->getNomRetenu()->get('auteur');
return $nom_retenu;
}
 
private function getNomFichierValide(){
$nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
$nom_retenu = str_replace(' ','_',$nom_retenu );
$nom_retenu = preg_replace('/[\(\)\.\[\]]/','',$nom_retenu );
return $nom_retenu;
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->parametres['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom'])) {
$this->parametres['nom'] = $_GET['nom'];
}
if (isset($_GET['type_nom'])) {
$this->parametres['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['referentiel'])) {
$this->parametres['referentiel'] = $_GET['referentiel'];
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
if (isset($_GET['onglet'])) {
$this->onglet = $_GET['onglet'];
}
}
 
private function capturerParametresFormulaire() {
$this->blocs = array('description', 'ecologie', 'ethnobotanique', 'statuts', 'illustrations',
'bibliographie', 'repartition', 'nomenclature');
if (!empty($_POST['bloc'])) {
$this->blocs = $_POST['bloc'];
}
}
 
public function executerActionParDefaut() {
$this->executerPdfExport();
}
 
public function executerPdfExport(){
$this->capturerParametresFormulaire();
$hash = crc32($this->parametres['referentiel'].'-'.implode('-', $this->blocs));
$nom_fichier = $this->getNomFichierValide().'-'.$hash;
 
$this->fichier_html = $this->chemin_pdf.''.$nom_fichier.'.html';
$this->fichier_pdf = $this->chemin_pdf.''.$nom_fichier.'.pdf';
 
if (file_exists($this->fichier_pdf) == false) {
$donnees = $this->obtenirDonnees();
$this->construireHtml($donnees);
if ($this->transformerHtmlEnPdf() == false) {
die('Erreur de generation du fichier PDF');
}
}
$this->envoyerPdfAuNavigateur();
$this->nettoyerFichiersTmp();
// ATTENTION : on doit stopper l'exécution de Papyrus sinon du HTML inutile est ajouté à la fin du fichier PDF
exit;
}
 
private function construireHtml($donnees) {
$this->html = $this->getVue('pdf_header', $donnees);
foreach ($this->blocs as $bloc) {
$this->ajouterHtml($bloc, $donnees);
}
$this->html .= '</body></html>';
}
 
private function ajouterHtml($bloc, $donnees) {
if (!empty($donnees[$bloc])) {
$this->html .= $this->getVue('pdf_'.$bloc, $donnees);
}
}
 
//+-------------------------------------récupération des données---------------------------------------------+
private function obtenirDonnees() {
$donnees = array();
$version = $this->Nomen->obtenirVersionDonnees();
$donnees['donnees_pdf'] = array(
'nom' => $this->getNomRetenuHTML(),
'chemin_css' => Config::get('url_css_pdf'),
'version' => $version['version']);
$donnees['description'] = $this->Desc->obtenirDonneesExport();
$donnees['ecologie'] = $this->Ecolo->obtenirDonneesExport();
$donnees['statuts'] = $this->Stat->obtenirDonnees();
$donnees['ethnobotanique'] = $this->Ethno->obtenirDonnees();
$donnees['illustrations'] = $this->Illus->obtenirDonneesExport();
$donnees['nomenclature'] = $this->Nomen->obtenirDonnees();
$donnees['repartition'] = $this->Reparti->obtenirDonneesExport();
$donnees['bibliographie'] = $this->Biblio->obtenirDonnees();
$donnees['premier'] = $this->blocs[0];// pour page-break : éviter 1ere page vide si bloc trop long
return $donnees;
}
 
//+------------------------------------------------export en pdf---------------------------------------------+
private function envoyerPdfAuNavigateur() {
$nom_fichier = $this->getNomFichierValide();
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$nom_fichier.'.pdf');
readfile($this->fichier_pdf);
}
 
private function nettoyerFichiersTmp() {
$dossierStockage = $this->chemin_pdf;
if (is_dir($dossierStockage)) {
$objets = scandir($dossierStockage);
if ($objets !== false) {
foreach ($objets as $objet) {
$chemin = $dossierStockage.$objet;
if (is_file($chemin)) {
$filemtime = @filemtime($chemin);
if ($filemtime !== false) {
if (substr($chemin, -5) == '.html') {
$suppression = (time() - $filemtime >= self::DUREE_DE_VIE_HTML) ? true : false;
} else {
$suppression = (time() - $filemtime >= self::DUREE_DE_VIE_PDF) ? true : false;
}
if ($suppression === true) {
unlink($chemin);
}
}
}
}
}
}
}
 
//version WKHTMLtoPDF en ligne de commande
private function transformerHtmlEnPdf() {
$nom = $this->getNomRetenu();
file_put_contents($this->fichier_html, $this->html);
$commande = "{$this->wkhtml} --replace 'nom' '$nom' --encoding utf-8 --footer-html {$this->piedepage} {$this->fichier_html} {$this->fichier_pdf}";
$ret = -1;
$debug = array();
exec($commande, $debug, $ret);
//print_r( $debug ); echo $ret;
$ok = ($ret == 0 || $ret == 2) ? true : false;
return $ok;
}
}
?>
/branches/v5.2-lasegue/modules/recherche_avancee/squelettes/form_recherche_av.tpl.html
New file
0,0 → 1,285
<!-- DEBUT FORM_AVANCE -->
<script>
<!--
var AUTOCOMPLETION_ELEMENTS_NBRE = 50;
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI = "<?=$url_base_completion_noms_sci?>";
var REFERENTIEL = "<?= Registre::get('parametres.referentiel');?>";
$(document).ready(function(){
$('#bloc_recherche_av').hide();
$('#recherche_av').click(function(event) {
$('#bloc_recherche_av').slideToggle();
event.preventDefault();
return false;
});
});
-->
</script>
 
<a href="" id="recherche_av" name="recherche_av"> Recherche avancée dans la base de données <?= strtoupper(Registre::get('parametres.referentiel')); ?> version <?= $metadonnees_referentiel['version'] ?>. </a>
<hr class="nettoyage"/>
<div id="bloc_recherche_av">
<form id="recherche_av_form" method="get" action="<?=$lien?>" >
<fieldset class="numero_form">
<label for="nn">Numéro nomenclatural </label>
<input id="nn" type="text" name="nn" class="largeur-01" value="<?=isset($param['nn'])? $param['nn'] : ''?>"/>
<label for="nt">Numéro taxonomique </label>
<input type="text" id="nt" name="nt" class="largeur-01" value="<?=isset($param['nt'])? $param['nt'] : ''?>"/>
</fieldset>
<fieldset class="classification_form">
<legend> Classification </legend>
<br/>
<label for="fam"> Famille </label>
<input type="text" id="fam" name="fam" class="champ_autocomplete" value="<?=isset($param['fam'])? $param['fam'] : ''?>" />
<label for="gen"> Genre </label>
<input type="text" id="gen" name="gen" class="champ_autocomplete" value="<?=isset($param['gen'])? $param['gen'] : ''?>" />
<label for="sp">Epithète sp.</label>
<input type="text" id="sp" name="sp" class="champ_autocomplete" value="<?=isset($param['sp'])? $param['sp'] : ''?>" />
<br/><br/>
<? $type = ''; if (isset($param['type'])){ $type = $param['type']; } ?>
<label for="type">Type épithète infra </label>
<select name="type">
<option value="" <?=($type == '') ? 'selected="selected"' : '' ?> >
</option>
<option value="subsp." <?=($type == 'subsp.') ? 'selected="selected"' : '' ?> >
sous-espèce
</option>
<option value="infra-sp." <?=($type == 'infra-sp.') ? 'selected="selected"' : '' ?> >
infra-espèce
</option>
<option value="var." <?=($type == 'var.') ? 'selected="selected"' : '' ?> >
variété
</option>
<option value="subvar." <?=($type == 'subvar.') ? 'selected="selected"' : '' ?> >
sous-variété
</option>
<option value="f." <?=($type == 'f.') ? 'selected="selected"' : '' ?> >
forme
</option>
<option value="subf." <?=($type == 'subf.') ? 'selected="selected"' : '' ?> >
sous-forme
</option>
<option value="f. sp." <?=($type == 'f. sp.') ? 'selected="selected"' : '' ?> >
forma species
</option>
<option value="race" <?=($type == 'race') ? 'selected="selected"' : '' ?> >
race
</option>
<option value="proles" <?=($type == 'proles') ? 'selected="selected"' : '' ?> >
proles
</option>
</select>
<label for="ssp">Epithète infra spé.</label>
<input class="champ_autocomplete" type="text" id="ssp" name="ssp" value="<?=isset($param['ssp'])? $param['ssp'] : ''?>" />
</fieldset>
<br/>
<fieldset class="publication_form">
<legend> Publication </legend>
<br/>
<label> décrit entre </label>
<input placeholder="<?=$i18n['valeur-form-date']?>" type="text" name="and" id="and" value="<? if (isset($param['and'])){echo $param['and'] ;}?>" class="largeur-01"/>
<label style="width:20px;"> et </label>
<input placeholder="<?=$i18n['valeur-form-date']?>" type="text" id="anf" name="anf" value="<? if (isset($param['anf'])){echo $param['anf'] ;}?>" class="largeur-01"/>
<label style="width:50px;"> par </label>
<input placeholder="<?=$i18n['valeur-form-auteur']?>" class="champ_autocomplete" style="width:150px;" id="au" type="text" name="au" value="<? if (isset($param['au'])){ echo $param['au']; } ?>"/> <br/><br/>
<label> dans </label>
<input placeholder="<?=$i18n['valeur-form-bib']?>" class="champ_autocomplete largeur-06" id="bib" type="text" name="bib" value="<? if(isset($param['bib'])){echo $param['bib'] ;}?>" "/>
</fieldset>
<? if(count($champs_presence) > 0) { ?>
<fieldset class="presence_form">
<legend> Présence </legend>
<br/>
<? foreach($champs_presence as $presence) : ?>
<? $nom_param_presence = $presence['param'] ?>
<? $param_presence = ''; if (isset($param[$nom_param_presence])){ $param_presence = $param[$nom_param_presence]; }?>
<label for="<?= $nom_param_presence ?>"><?= $presence['label'] ?></label>
<select name="<?= $nom_param_presence ?>">
<option value="" <?=($param_presence == '') ? 'selected="selected"' : '' ?> >
</option>
<option value="0" <?=($param_presence == '0') ? 'selected="selected"' : '' ?> >
pas d'information
</option>
<option value="P" <?=($param_presence == 'P') ? 'selected="selected"' : '' ?> >
présent
</option>
<option value="S" <?=($param_presence == 'S') ? 'selected="selected"' : '' ?> >
supposé présent
</option>
<option value="D" <?=($param_presence == 'D') ? 'selected="selected"' : '' ?>>
présence douteuse
</option>
<option value="E" <?=($param_presence == 'E') ? 'selected="selected"' : '' ?>>
éteint </option>
<option value="F" <?=($param_presence == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme présent
</option>
<option value="A" <?=($param_presence == 'A') ? 'selected="selected"' : '' ?>>
absent
</option>
<option value="-" <?=($param_presence == '-') ? 'selected="selected"' : '' ?>>
autre statut de présence
</option>
<option value="E-W" <?=($param_presence == 'E-W') ? 'selected="selected"' : '' ?>>
disparu
</option>
<option value="P-B" <?=($param_presence == 'P-B') ? 'selected="selected"' : '' ?>>
présence accidentelle
</option>
<option value="E-F" <?=($param_presence == 'E-F') ? 'selected="selected"' : '' ?>>
trouvé en fouille
</option>
</select>
<br/> <br/>
<? endforeach; ?>
</fieldset>
<?php } ?>
<fieldset class="statuts_form">
<legend> Statuts </legend>
<br/>
<? $sto = ''; if (isset($param['sto'])){ $sto = $param['sto']; }?>
<label for="sto"> statut d'origine </label>
<select name="sto">
<option value="" <?=($sto == '') ? 'selected="selected"' : '' ?>>
</option>
<option value="0" <?=($sto == '0') ? 'selected="selected"' : '' ?>>
pas d'information
</option>
<option value="N" <?=($sto == 'N') ? 'selected="selected"' : '' ?>>
natif (=indigène)
</option>
<option value="S" <?=($sto == 'S') ? 'selected="selected"' : '' ?>>
supposé natif
</option>
<option value="D" <?=($sto == 'D') ? 'selected="selected"' : '' ?>>
origine douteuse
</option>
<option value="E" <?=($sto == 'E') ? 'selected="selected"' : '' ?>>
anciennement natif (éteint)
</option>
<option value="F" <?=($sto == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme natif
</option>
<option value="A" <?=($sto == 'A') ? 'selected="selected"' : '' ?>>
non natif
</option>
<option value="X" <?=($sto == 'X') ? 'selected="selected"' : '' ?>>
inapplicable
</option>
<option value="-" <?=($sto == '-') ? 'selected="selected"' : '' ?>>
autre statut d'origine
</option>
<option value="N-E" <?=($sto == 'N-E') ? 'selected="selected"' : '' ?>>
endémique
</option>
<option value="N-S" <?=($sto == 'N-S') ? 'selected="selected"' : '' ?>>
sub-endémique
</option>
<option value="S-C" <?=($sto == 'S-C') ? 'selected="selected"' : '' ?>>
supposé natif cryptogène
</option>
</select>
<br/> <br/>
<? $sti = ''; if (isset($param['sti'])){ $sti = $param['sti']; }?>
<label for="sti"> statut d'introduction </label>
<select name="sti">
<option value="" <?=($sti == '') ? 'selected="selected"' : '' ?>>
</option>
<option value="0" <?=($sti == '0') ? 'selected="selected"' : '' ?> >
pas d'information
</option>
<option value="I" <?=($sti == 'I') ? 'selected="selected"' : '' ?>>
introduit
</option>
<option value="S" <?=($sti == 'S') ? 'selected="selected"' : '' ?>>
supposé introduit
</option>
<option value="D" <?=($sti == 'D') ? 'selected="selected"' : '' ?>>
introduction douteuse
</option>
<option value="E" <?=($sti == 'E') ? 'selected="selected"' : '' ?>>
anciennement introduit (éteint)
</option>
<option value="F" <?=($sti == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme introduit
</option>
<option value="A" <?=($sti == 'A') ? 'selected="selected"' : '' ?>>
non introduit
</option>
<option value="X" <?=($sti == 'X') ? 'selected="selected"' : '' ?>>
inapplicable
</option>
<option value="-" <?=($sti == '-') ? 'selected="selected"' : '' ?>>
autre statut d'introduction
</option>
<option value="I-J" <?=($sti == 'I-J') ? 'selected="selected"' : '' ?>>
introduit envahissant
</option>
<option value="I-M" <?=($sti == 'I-M') ? 'selected="selected"' : '' ?>>
domestique, introduit non-établi
</option>
<option value="S-C" <?=($sti == 'S-C') ? 'selected="selected"' : '' ?>>
supposé introduit cryptogène
</option>
</select>
<br/> <br/>
<label for="stc"> statut de culture </label>
<? $stc = ''; if (isset($param['stc'])){ $stc = $param['stc']; }?>
<select name="stc">
<option value="" <?=($stc == '') ? 'selected="selected"' : '' ?>>
</option>
<option value="0" <?=($stc == '0') ? 'selected="selected"' : '' ?>>
pas d'information
</option>
<option value="C" <?=($stc == 'C') ? 'selected="selected"' : '' ?>>
cultivé en extérieur
</option>
<option value="I" <?=($stc == 'I') ? 'selected="selected"' : '' ?>>
cultivé en intérieur
</option>
<option value="S" <?=($stc == 'S') ? 'selected="selected"' : '' ?>>
supposé cultivé
</option>
<option value="D" <?=($stc == 'D') ? 'selected="selected"' : '' ?>>
culture douteuse
</option>
<option value="E" <?=($stc == 'E') ? 'selected="selected"' : '' ?>>
anciennement cultivé (éteint)
</option>
<option value="F" <?=($stc == 'F') ? 'selected="selected"' : '' ?>>
cité par erreur comme cultivé
</option>
<option value="X" <?=($stc == 'X') ? 'selected="selected"' : '' ?>>
inapplicable
</option>
<option value="-" <?=($stc == '-') ? 'selected="selected"' : '' ?>>
autre statut de culture
</option>
<option value="A" <?=($stc == 'A') ? 'selected="selected"' : '' ?>>
non cultivé
</option>
</select>
</fieldset>
<input id="eflore_nomenclature_referentiel" name="referentiel" type="hidden" value="<?=Registre::get('parametres.referentiel')?>" />
<input id="eflore_nomenclature_niveau" name="niveau" type="hidden" value="<?=Registre::get('parametres.niveau')?>" />
<input id="eflore_nomenclature_module" name="module" type="hidden" value="recherche" />
<input id="eflore_nomenclature_action" name="action" type="hidden" value="rechercheAvancee" />
<input type="hidden" name="type_nom" value="nom_scientifique" />
<input type="submit" class="rech" value="Lancer la recherche avancée"/>
</form>
<hr class="nettoyage"/>
</div>
 
<? if (isset($message_av)) : ?>
<p class="attention">
<?= $i18n[$message_av['attention']] ?>
</p>
<? endif; ?>
 
<!-- FIN FORM_AVANCE -->
/branches/v5.2-lasegue/modules/recherche_avancee/RechercheAvancee.php
New file
0,0 → 1,30
<?php
class RechercheAvancee extends aControleur {
 
public function executerFormulaireRechercheAv($donnees= array()) {
$donnees['lien'] = (isset($donnees['params'])) ? $this->urls->obtenirUrlRechercheAvancee($donnees['params'])
: $this->urls->obtenirUrlRechercheAvancee();
$donnees['i18n'] = I18n::get('Recherche-form-avancee');
$donnees['referentiel'] = Registre::get('parametres.referentiel');
$donnees['url_base_completion_noms_sci'] = str_replace('{projet}', $donnees['referentiel'], Config::get('nomsTpl'));
$donnees['champs_presence'] = $this->obtenirChampsPresence();
$donnees['url_form'] = $this->urls->obtenirUrlBase();
return $this->getVue('form_recherche_av', $donnees);
}
private function obtenirChampsPresence() {
$tableau_champs_presence = array();
$referentiel = Registre::get('parametres.referentiel');
$champs_presence = Config::get($referentiel.'.champsPresence');
$champs_presence_spl = explode('|', $champs_presence);
foreach($champs_presence_spl as $champ) {
$label_param_champ = explode(':', $champ);
if(count($label_param_champ) >= 2) {
$tableau_champs_presence[] = array('param' => $label_param_champ[1],
'label' => $label_param_champ[0]);
}
}
return $tableau_champs_presence;
}
}
?>
/branches/v5.2-lasegue/modules/popup_galerie/squelettes/popup_galerie_illustrations.tpl.html
New file
0,0 → 1,243
<script type="text/javascript">
<!--
var urls = [<?= '"'.implode($urls, '","').'"'; ?>];
var ids = [<?= '"'.implode($ids, '","').'"'; ?>];
var meta = new Array();
var indexImage = 0;
var urlImage = "<?= $url_image; ?>";
var tailleMaxHauteur = 580;
var tailleMaxlargeur = 680;
var titre = "<?= $titre; ?>";
var urlMeta = "<?= $url_meta; ?>";
var urlContact = "<?= $url_contact; ?>";
var referentiel = "<?= Registre::get('parametres.referentiel'); ?>";
var metadonneesOuvertes = false;
var hauteurSansMeta = null;
function redimensionnerImage(objet) {
objet.removeAttr("width");
objet.removeAttr("height");
var hauteurImage = objet.height();
var largeurImage = objet.width();
var rapport = 1;
if(largeurImage > hauteurImage && largeurImage > tailleMaxlargeur) {
rapport = hauteurImage/largeurImage;
if(screen.width < 800) {
largeurImage = 540;
configurerAffichagePetiteTaille();
}
hauteurImage = largeurImage*rapport;
$('#illustration').attr("height", hauteurImage);
$('#illustration').attr("width", largeurImage);
}
 
if(hauteurImage > largeurImage && hauteurImage > tailleMaxHauteur) {
rapport = largeurImage/hauteurImage;
if(screen.height < 800) {
hauteurImage = 340;
configurerAffichagePetiteTaille();
} else {
hauteurImage = 580;
$("#info-img-galerie").height('100%');
}
largeurImage = hauteurImage*rapport;
$('#illustration').attr("height", hauteurImage);
$('#illustration').attr("width", largeurImage);
}
 
var facteurResize = 90;
if($(window).height() < 800) {
facteurResize = 10;
}
hauteurSansMeta = hauteurImage+facteurResize;
window.resizeTo(largeurImage+260,hauteurImage+facteurResize+90);
}
 
function configurerAffichagePetiteTaille() {
$("#info-img-galerie").height('100%');
$('html').css('height', '100%');
$('body').css('height', '100%');
$("#zone-corps").height('100%');
$("#zone-conteneur").height('100%');
}
function imageSuivante() {
indexImage++;
if(indexImage >= urls.length) {
indexImage = 0;
}
cacherMetadonnees();
$('#illustration').attr('src', urls[indexImage]);
}
function imagePrecedente() {
indexImage--;
if(indexImage <= 0) {
indexImage = urls.length - 1;
}
cacherMetadonnees();
$('#illustration').attr('src', urls[indexImage]);
}
function ouvrirFenetreIllustrationResultat(url, titre) {
var fenetre = window.open('', titre+" - zoom ");
var tmp = fenetre.document;
tmp.write('<html><head><title>'+titre+" - zoom "+'</title>');
tmp.write('</head><body>');
tmp.write('<p style="height="100%";text-align:center;line-height="100%"><img id="image_agrandie" style="vertical-align:middle;" src="'+url+'" /></p>');
tmp.write('</body></html>');
tmp.clos();
}
function obtenirUrlContact(idImage, IdAuteur) {
return urlContact.replace('{id_auteur}',IdAuteur).replace('{id_img}',idImage);
}
function formaterDate(string) {
var date = new Date();
var parts = String(string).split(/[- :]/);
date.setFullYear(parts[0]);
date.setMonth(parts[1] - 1);
date.setDate(parts[2]);
date.setHours(parts[3]);
date.setMinutes(parts[4]);
date.setSeconds(parts[5]);
date.setMilliseconds(0);
return (("0" + date.getDate()).slice(-2))+"/"+(("0"+(date.getMonth()+1)).slice(-2))+"/"+date.getFullYear();
}
function formaterMetadonnees(data) {
data.contact_url = obtenirUrlContact(ids[indexImage], data['auteur.id']);
data.id = ids[indexImage];
data.date = formaterDate(data.date);
return data;
}
function chargerEtAfficherMetadonnees() {
$('#info-obs-meta').remove();
if(meta[ids[indexImage]] == null) {
var urlMetaImage = urlMeta.replace('{projet}','cel').replace('{id}',ids[indexImage]).replace('{referentiel}',referentiel);
$.get(urlMetaImage, function(data) {
data = formaterMetadonnees(data);
afficherMetadonnees(data);
meta[ids[indexImage]] = data;
});
} else {
afficherMetadonnees(meta[ids[indexImage]]);
}
}
function afficherMetadonnees(data) {
$("#tpl-obs-meta").tmpl(data).appendTo('.img-cadre');
//if($(window).height() > 800) {
window.resizeTo($(window).width(),hauteurSansMeta+300);
//}
$("#lien-voir-meta").html('Cacher les informations');
}
function cacherMetadonnees() {
//if($(window).height() > 800) {
window.resizeTo($(window).width(),hauteurSansMeta);
//}
$('#info-obs-meta').remove();
$("#lien-voir-meta").html('Informations sur cette image / Contacter l\'auteur');
metadonneesOuvertes = false;
}
$(document).ready(function() {
$('#precedent').click(function() {
imagePrecedente();
});
$('#suivant').click(function() {
imageSuivante();
});
 
if(!Array.indexOf){
Array.indexOf = function(array, search){
for(var i=0; i<array.length; i++){
if(array[i]==search){
return i;
}
}
return -1;
}
}
if(urlImage != "null" && urlImage != "") {
indexImage = Array.indexOf(urls, urlImage);
$('#illustration').attr('src', urls[indexImage]);
}
$('#illustration').load(function() {
redimensionnerImage($(this));
});
$('#illustration').click(function() {
ouvrirFenetreIllustrationResultat($(this).attr("src").replace("L","X3L"), titre);
});
$("#lien-voir-meta").click(function() {
metadonneesOuvertes = !metadonneesOuvertes;
if(metadonneesOuvertes) {
chargerEtAfficherMetadonnees();
} else {
cacherMetadonnees();
}
});
$("body").keydown(function(e) {
if(e.keyCode == 37) { // gauche
imagePrecedente();
}
else if(e.keyCode == 39) { // droite
imageSuivante();
}
});
$('#zone-pied').hide();
});
// -->
</script>
 
<!-- Squelette du contenu du tableau des observation -->
<script id="tpl-obs-meta" type="text/x-jquery-tmpl">
<div id="info-obs-meta" class="importance1">
<dl>
<dt>Photo n°</dt><dd>${id}</dd>
<dt>Titre</dt><dd>${$data["determination.nom_sci"]}</dd>
<dt>Description</dt><dd>${$data['determination.libelle']}</dd>
<dt>Localisation</dt><dd>${$data['station.commune']}</dd>
<dt>Auteur</dt>
<dd>
${$data['auteur.libelle']}
<a class="mailto" href="${contact_url}">(Contacter ...)</a>
</dd>
<dt>Date d'observation</dt><dd>${date}</dd>
<dt>Licence</dt><dd><a class="lien-externe" href="http://www.tela-botanica.org/page:licence">CC-BY-SA</a></dd>
</dl>
</div>
</script>
 
<div id="info-img-galerie">
<div class="conteneur-precedent">
<a id="precedent" href="#" title="cliquez ici ou utilisez la flèche gauche pour afficher l'image précédente">
<img style="border:none" src="http://www.tela-botanica.org/sites/commun/generique/images/flecheGauche.jpg" alt="&lt;" />
</a>
</div>
<div class="img-cadre">
<img id="illustration" src="<?=$urls[0]?>" alt="" title="cliquez pour voir cette image dans son format original" /><br />
<a id="lien-voir-meta" href="#" title="cliquez ici pour voir les métadonnées de l'image et contacter l'auteur">Informations sur cette image / Contacter l'auteur</a>
</div>
<div class="conteneur-suivant">
<a id="suivant" href="#" title="cliquez ici ou utilisez la flèche droite pour afficher l'image suivante">
<img style="border:none" src="http://www.tela-botanica.org/sites/commun/generique/images/flecheDroite.jpg" alt="&gt;" />
</a>
</div>
<hr class="nettoyage" />
</div>
/branches/v5.2-lasegue/modules/popup_galerie/PopupGalerie.php
New file
0,0 → 1,92
<?php
// declare(encoding='UTF-8');
/**
* Affiche un pop-up avec une galerie d'illustrations.
*
* @category php 5.2
* @package eFlore-consultation
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
 
class PopupGalerie extends aControleur {
private $conteneur = null;
private $urlImage = null;
private $images = null;
private $appUrls = null;
private $titre = '';
private $formats_possibles = array("O","CRX2S","CRS","CXS","CS","XS","S","M","L","XL","X2L","X3L");
private $format_agrandi = 'L';
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->num_nom = $_GET['num_nom'];
}
if (isset($_GET['url_image'])) {
$this->urlImage = urldecode($_GET['url_image']);
}
if (isset($_GET['format'])) {
$this->format = $_GET['format'];
}
if (isset($_GET['titre'])) {
$this->titre = $_GET['titre'];
}
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
$infos = array();
$this->images->setProjet('cel');
$urls = $this->images->getUrlsImagesOrganesParIdsNom($this->num_nom);
$urls = $urls[Registre::get('parametres.referentiel').'.'.$this->num_nom];
$ids = array();
foreach($urls as $index => $url) {
$urls[$index] = str_replace($this->formats_possibles, $this->format_agrandi, $url);
$ids[$index] = $this->extraireIdDeUrl($url);
}
$infos['urls'] = $urls;
$infos['ids'] = $ids;
$infos['num_nom'] = $this->num_nom;
$infos['referentiel'] = Registre::get('parametres.referentiel');
$infos['url_image'] = str_replace($this->formats_possibles, $this->format_agrandi, $this->urlImage);
$infos['titre'] = $this->titre;
$infos['url_meta'] = Config::get('imagesPopupTpl');
$infos['url_contact'] = $this->appUrls->obtenirUrlPopUpContact("{id_auteur}", "{id_img}");
$this->setSortie(self::META_TITRE,$this->titre, true);
$this->setSortie(self::RENDU_CORPS, $this->getVue('popup_galerie_illustrations', $infos));
}
private function extraireIdDeUrl($url) {
$matches = array();
$formats = implode("|", $this->formats_possibles);
//preg_match('#cel-img:([0-9]*)('.$formats.')#', $url, $matches);
preg_match('#img:([0-9]*)('.$formats.')#', $url, $matches); // expèrons que ça va marcher
return ltrim($matches[1],'0');
}
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
$dateFmt = 'inconnue';
} else {
$dateFmt = strftime('%e %B %Y', strtotime($date));
}
return $dateFmt;
}
 
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Bibliographie.php
New file
0,0 → 1,131
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Bibliographie extends aControleur {
private $apiBiblioBota;
private $conteneur;
private $nomCourant;
private $meta;
private $appUrls;
private $wikini;
private $referentiel = 'bdtfx';
private $donnees = array();
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
}
public function obtenirDonnees() {
$this->getFlores();
$this->donnees['bibliobota']['references'] = $this->getBiblioBota();
$this->meta->setProjet('bibliobota');
$meta = $this->meta->getMetaDonnees();
$this->donnees['bibliobota']['meta'] = $meta[0];
$this->donnees['bibliobota']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bibliobota');
$this->donnees['wikini'] = $this->getWikini();
return $this->donnees;
}
public function getBloc() {
$this->getFloresBloc();
$references = $this->getBiblioBota();
$this->donnees['references'] = array_slice($references, 0, 3);
foreach ($this->donnees['references'] as $id=>$reference) {
preg_match('/.*<strong>(.*)<\/strong>.*/', $reference['reference_html'], $titre);
$this->donnees['references'][$id]['reference_html'] = $titre[1];
}
$this->donnees['autresReferences'] = count($references) - 3;
if ($this->donnees['flores'] == array() && $this->donnees['references'] == array()) {
$this->donnees['wikini'] = $this->getWikini();
}
return $this->donnees;
}
// Récupération des données flores présentes dans le référentiel
private function getFlores() {
if (Config::get($this->referentiel.'.baseFloresRef') != "") {
$flores = $this->nomCourant->getNomRetenu()->get('flores');
$flores = explode(',', $flores);
$this->donnees['flores']['liste_flores'] = $this->remplacerCorrespondancesFlores($flores);
$this->meta->setProjet($this->referentiel);
$meta = $this->meta->getMetaDonnees();
$this->donnees['flores']['meta'] = $meta[0];
$this->donnees['flores']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel);
}
}
private function getFloresBloc() {
$flores = $this->nomCourant->getNomRetenu()->get('flores');
$flores = explode(',', $flores);
$flores = $this->remplacerCorrespondancesFlores($flores);
$this->donnees['flores'] = array_slice($flores, 0, 3);
$this->donnees['autresFlores'] = count($flores) - 3;
}
//Obtention des données issues de biblio_bota
private function getBiblioBota() {
$this->apiBiblioBota = $this->conteneur->getApiBiblioBota();
$this->apiBiblioBota->setProjet('bibliobota');
$interrogation = $this->nomCourant->getNomSelectionne()->get('nom_sci');
$references = $this->apiBiblioBota->getReferences($interrogation);
return $references['resultats'];
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['biblio'] = $this->wikini->getTexteFormate($page_wiki, 'biblio');
return $wikini;
}
//TODO: faire une ontologie mais pas de tache prévue dans ce sprint
private function getCorrespondancesBiblio() {
$correspondance = array(
'1' => 'BONNIER & LAYENS, 1894. Tables synoptiques des plantes vasculaires de la flore de France.',
'2' => 'COSTE, 1899-1906. Flore illustrée France, (3 vol.).',
'3' => 'FOURNIER, 1934-1940. Quatre Flores de France.',
'3*' => 'FOURNIER, additions dans l\'édition de 1961.',
'4' => 'TUTIN & al., 1964-1980. Flora Europaea, (5 vol.).',
'4*' => 'Flora Europaea, édition 2 (Vol. 1), voir TUTIN & al. (1993), abrégée en FE2. L\'indication est surtout donnée quand la citation n\'a pas été faite dans 4 (supplémentaire ou modifiée).',
'5' => 'GUINOCHET & VILMORIN, 1973-1984. Flore de France, éd. C.N.R.S., (5 vol.).',
'6' => 'KERGUÉLEN, 1993. Liste synonymique de la flore de France.'
);
return $correspondance;
}
private function remplacerCorrespondancesFlores($flores) {
$correspondance_code_flores = $this->getCorrespondancesBiblio();
$flores_texte = array();
foreach($flores as $code_flore) {
$code_flore = trim($code_flore);
if(isset($correspondance_code_flores[$code_flore])) {
$flores_texte[] = $correspondance_code_flores[$code_flore];
}
}
return $flores_texte;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Repartition.php
New file
0,0 → 1,160
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Repartition extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $referentiel = 'bdtfx';
private $donnees = array();
private $tailleBloc = "190x178";
private $serviceChorodep = null;
private $cartes;
private $meta;
private $appUrls;
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->cartes = $this->conteneur->getApiCartes();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
public function obtenirDonnees() {
$this->getRepartition();
$this->getMoissonnage();
$this->donnees['widget']['nt'] = $this->nomCourant->getNt();
$this->donnees['widget']['nn'] = $this->nomCourant->getNnr();
$this->donnees['widget']['referentiel'] = $this->referentiel;
return $this->donnees;
}
 
public function obtenirDonneesExport() {
$this->getRepartition();
$donnees['chorodep'] = $this->donnees['repartition'];
$this->getMoissonnageExport();
// TODO: renommer l'index "eflore" en moissonnage
// et renommer dans pdf_export/squelettes/pdf_repartition.tpl.html
$donnees['eflore'] = $this->donnees['moissonnage'];
return $donnees;
}
private function getRepartition() {
$projetRepartition = Config::get($this->referentiel.'.baseRepartition');
// eg: eflore ou chorodep
// cf: bdtfx.ini, bdtxa.ini
if ($projetRepartition != "") {
$this->cartes->setProjet($projetRepartition);
$this->cartes->setLargeur('630');
//TODO: démochir ce code
// Chargement des nn des synonymes pour obtenir une carte plus complète
$noms = $this->conteneur->getApiNoms();
$syns = $noms->getSynonymes($this->nomCourant->getNnr());
$nns_syns = array_keys($syns['resultat']);
$nns_syns[] = $this->nomCourant->getNnr();
$id = 'nn:'.implode(',', $nns_syns);
$this->cartes->setId($id);
$repartition['svgUrl'] = $this->cartes->getUrlDataSvg();
$repartition['pngUrl'] = $this->cartes->getUrlPng();
$repartition['legende'] = $this->cartes->getLegendeId();
$this->meta->setProjet($projetRepartition);
$meta = $this->meta->getMetaDonnees();
$repartition['meta'] = $meta[0];
$repartition['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projetRepartition);
$this->donnees['repartition'] = $repartition;
}
}
private function getMoissonnage() {
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
if (! $projetMoissonnage) return;
$this->cartes->setProjet('moissonnage');
$this->cartes->setLargeur('600');
$this->cartes->setInfoNom($this->nomCourant->getNt());
$this->cartes->setInfoReferentiel($this->referentiel);
$eflore['mapUrl'] = $this->cartes->getUrlMapSvg();
$eflore['mapTelechargementUrls'] = array('png' => $this->cartes->getUrlTelechargementMapPng(),
'html' => $this->cartes->getUrlTelechargementMapHtml());
$eflore['legende'] = $this->cartes->getLegende();
$this->donnees['moissonnage'] = $eflore;
}
private function getMoissonnageExport() {
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
if (! $projetMoissonnage) return;
$this->cartes->setProjet($projetMoissonnage);
$this->cartes->setLargeur('min');
$this->cartes->setInfoNom($this->nomCourant->getNomRetenu());
$eflore['min'] = $this->cartes->getUrlEflorePng();
$eflore['legende'] = $this->cartes->getLegende();
$this->donnees['moissonnage'] = $eflore;
}
 
public function getBloc() {
$donnees['chorodep'] = $this->getChorodepMiniature();
$donnees['eflore'] = $this->getMoissonnageMiniature();
 
// TODO: moche, comment gérer le fait que l'onglet "synthèse", en "bdtxa", doive
// afficher la carte chorologie, et non la carte chorodep.
// workaround: écrasement de l'URL dans ['répartition']['chorodep']:
if($this->referentiel == 'bdtxa') {
$syns = $this->conteneur->getApiNoms()->getSynonymes($this->nomCourant->getNnr());
$nns_syns = array_keys($syns['resultat']);
$nns_syns[] = $this->nomCourant->getNnr();
$donnees['chorodep'] = Cartes::getCarteUrlPng(Config::get($this->referentiel.'.baseRepartition'),
'nn:'.implode(',', $nns_syns),
'190x178');
}
 
return $donnees;
}
private function getChorodepMiniature() {
$projetRepartition = Config::get($this->referentiel.'.baseRepartition');
$url = null;
if ($projetRepartition != "") {
$this->cartes->setProjet($projetRepartition);
$this->cartes->setProjet('chorodep');
$this->cartes->setLargeur('190x178');
//TODO: démochir ce code
// Chargement des nn des synonymes pour obtenir une carte plus complète
$noms = $this->conteneur->getApiNoms();
$syns = $noms->getSynonymes($this->nomCourant->getNnr());
$nns_syns = array_keys($syns['resultat']);
$nns_syns[] = $this->nomCourant->getNnr();
$id = 'nn:'.implode(',', $nns_syns);
$this->cartes->setId($id);
$url = $this->cartes->getUrlPng();
}
return $url;
}
private function getMoissonnageMiniature() {
$projetMoissonnage = Config::get($this->referentiel.'.baseMoissonnage');
$url = null;
if ($projetRepartition != "") {
$this->cartes->setProjet('moissonnage');
$this->cartes->setLargeur('190');
$this->cartes->setInfoReferentiel($this->referentiel);
$this->cartes->setInfoNom($this->nomCourant->getNt());
$url = $this->cartes->getUrlMapPng();
}
return $url;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Synthese.php
New file
0,0 → 1,64
<?php
// declare(encoding='UTF-8');
/**
* Classe Onglet Synthese.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Grégoire DUCHÉ <gregoire@tela-botanica.org>
* @author Raphaël Droz <raphael@tela-botanica.org>
* @copyright 2011, 2013 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @used by modules/fiche/Fiche.php::obtenirDonnees()
*/
class Synthese /* aControleur inutilisé à ce jour */ {
 
private $conteneur = null;
private $nomCourant = null;
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
}
 
public function obtenirDonnees() {
$donnees = array();
$num_nom = $this->nomCourant->getNns();
$blocs = array(
'illustrations', // grep-friendly: new Illustrations()
'repartition', // grep-friendly: new Repartition()
'nomenclature', // grep-friendly: new Nomenclature()
'description', // grep-friendly: new Description()
'ethnobotanique', // grep-friendly: new Ethnobotanique()
'bibliographie', // grep-friendly: new Bibliographie()
'statut', // grep-friendly: new Statut()
'ecologie' // grep-friendly: new Ecologie()
);
$cache = array();
$nt = $this->conteneur->getNomCourant()->getNomRetenu()->get('num_taxonomique');
$donnees['infos'] = array('referentiel' => $this->conteneur->getParametre('referentiel'), 'num_tax' => $nt);
$referentiel = $this->conteneur->getParametre('referentiel');
foreach ($blocs as $bloc) {
// TODO: unserialize() pourrait aussi légitimement retourner FALSE
$cache_bloc = unserialize($this->conteneur->getCache()->charger($bloc.'/bloc/'.$referentiel.'_'.$num_nom));
if($cache_bloc) {
$donnees[$bloc] = $cache_bloc;
} else {
$nom_classe = ucfirst($bloc);
$classe = new $nom_classe($this->conteneur);
$donnees[$bloc] = $classe->getBloc();
if($donnees[$bloc]) {
$this->conteneur->getCache()->sauver(serialize($donnees[$bloc]),
$bloc.'/bloc/'.$referentiel.'_'.$num_nom);
}
}
}
return $donnees;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Description.php
New file
0,0 → 1,263
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Description extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $textes = null;
private $meta = null;
private $wikini = null;
private $informations = null;
static $mois = array(
'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet',
'août', 'septembre', 'octobre', 'novembre', 'décembre');
private $CosteFormate;
private $CosteTexte;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->textes = $this->conteneur->getApiTextes();
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->informations = $this->conteneur->getApiInformations();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
public function obtenirDonnees() {
$donnees = array();
$this->getWikipedia();
$this->getWikini();
$this->getDescriptionsDependantesReferentiel($this->referentiel);
return $this->donnees;
}
public function obtenirDonneesExport() {
$donnees = array();
$this->getWikini();
$this->getDescriptionsDependantesReferentiel($this->referentiel);
return $this->donnees;
}
private function getDescriptionsDependantesReferentiel($ref) {
if(trim(Config::get($ref . '.baseDescription')) != "") {
// eg: [bdtfx]baseDescription = coste,baseflor dans bdtfx.ini
$bases_descriptions = explode(',', Config::get($ref . '.baseDescription'));
foreach ($bases_descriptions as $base) {
$fonction = 'get'.ucfirst($base);
$this->$fonction();
}
}
}
public function getBloc() {
// prend la première description disponible dans l'ordre indiqué dans le fichier
// de config, et prend la description wiki sinon
if(Config::get($this->referentiel.'.baseDescription') != "") {
$bases_descriptions = explode(',', Config::get($this->referentiel.'.baseDescription'));
foreach ($bases_descriptions as $base) {
$fonction = 'get'.ucfirst($base);
$this->$fonction();
if(empty($this->donnees[$base]['description'])) {
unset($this->donnees[$base]);
continue;
}
 
$this->donnees['type'] = $base;
$this->donnees['titre'] = "Description de ".ucfirst($base);
$this->donnees['description'] = $this->donnees[$base]['description'];
unset($this->donnees[$base]);
return $this->donnees;
}
}
if (empty($this->donnees['description'])) {
$this->getWikini();
$this->donnees['description'] = $this->donnees['wikini']['description'];
$this->donnees['titre'] = "Description collaborative";
$this->donnees['type'] = 'wikini';
unset($this->donnees['wikini']);
}
 
return $this->donnees;
}
 
private function getBaseflor() {
$baseflor = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations ->setNum_nom($this->nomCourant->getNnr());
$informations = $this->informations->getInformationsDescription();
if ($informations){
$baseflor['chorologie'] = isset($informations['chorologie']) ? $informations['chorologie'] : '';
$baseflor['inflorescence'] = isset($informations['inflorescence']) ? $informations['inflorescence'] : '';
$baseflor['sexualite'] = isset($informations['sexualite']) ? $informations['sexualite'] : '';
$baseflor['ordre_maturation'] = isset($informations['ordre_maturation']) ? $informations['ordre_maturation'] : '';
$baseflor['pollinisation'] = isset($informations['pollinisation']) ? $informations['pollinisation'] : '';
$baseflor['dissemination'] = isset($informations['dissemination']) ? $informations['dissemination'] : '';
$baseflor['fruit'] = isset($informations['fruit']) ? $informations['fruit'] : '';
$baseflor['couleur_fleur'] = isset($informations['couleur_fleur']) ? $informations['couleur_fleur'] : '';
$baseflor['macule'] = isset($informations['macule']) ? $informations['macule'] : '';
$baseflor['floraison'] = isset($informations['floraison']) ? self::changerFloraisonEnChaine($informations['floraison']) : '';
//récupérer dans ontologies
$baseflor['type_bio'] = isset($informations['type_bio']) ? $informations['type_bio'] : '';
$baseflor['form_vegetale'] = isset($informations['form_vegetale']) ? $informations['form_vegetale'] : '';
$baseflor['description']=$baseflor;
$this->meta->setProjet('baseflor');
$meta = $this->meta->getMetaDonnees();
$baseflor['meta'] = $meta[0];
$baseflor['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseflor');
}
$this->donnees['baseflor'] = $baseflor;
}
 
static function changerFloraisonEnChaine($floraison){
$chaine = "";
if ($floraison != ""){
$mois_fleurs=preg_match('/-/',$floraison) ? preg_split('/-/',$floraison) : $floraison;
if (is_array($mois_fleurs)){
$chaine = "de ".self::$mois[(int)$mois_fleurs[0]]." à ".self::$mois[(int)$mois_fleurs[1]];
 
}else { $chaine = "en ".self::$mois[(int)$mois_fleurs];
}
}
return $chaine;
}
public function getUrlWikipedia() {
if(!isset($this->donnees['wp'])) {
$this->getWikipedia();
}
return $this->donnees['wp'];
}
 
public function getWikipedia() {
$wp = array();
$this->textes->setProjet('wikipedia');
$this->textes->setId(self::getIdWp($this->nomCourant->getNomRetenu()->get('nom_sci')));
$wp['titre'] = $donnees['titre'] = "Description de wikipedia";
$wp['lien'] = $this->textes->getPageUrl();
$wp['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('wikipedia');
$this->donnees['wp'] = $wp;
}
 
private static function getIdWp($nomSci) {
return urlencode(str_replace(' ', '_', $nomSci));
}
 
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['description'] = $this->wikini->getTexteFormate($page_wiki, 'description');
$this->donnees['wikini'] = $wikini;
}
public function getLienWikini() {
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
return $this->wikini->getUrlPageWiki($referentiel, $num_tax);
}
 
private function getCoste() {
$coste = array();
$this->textes->setProjet('coste');
$this->textes->setId('bdtfx.nn:'.$this->nomCourant->getNnr());
$texte = $this->textes->getTexte();
$texte = array_pop($texte['resultats']);
if ($texte) {
$coste['titre'] = $texte['titre'];
$coste['description'] = self::mettreEnFormeCoste($texte['texte']);
}
$this->meta->setProjet('coste');
$meta = $this->meta->getMetaDonnees();
$coste['meta'] = $meta[0];
$coste['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('coste');
$this->donnees['coste'] = $coste;
}
 
static function mettreEnFormeCoste($texte) {
$txt_fmt = array();
//decouper elements remarquables avant le texte
self::separerNomScientifique_a_NomCommun($texte, $txt_fmt);
$texte = preg_replace('/\//','',$texte);
//decouper elements remarquables après le texte
self::separerEcologie_a_Usages($texte, $txt_fmt);
//le morceau qui reste est le gros de la description
$texte = str_replace(';','</br> -','- '.$texte);
$texte = str_replace('–','',$texte);
$txt_fmt['texte'] = $texte;
return $txt_fmt;
}
 
 
static function separerNomScientifique_a_NomCommun(&$txt, &$txt_fmt){
if ( preg_match('/\*\*(.+)\*\*([^–]*)–/', $txt, $retour)){
/* !! attention on enlève un tiret cadratin – pas un trait d'union - !! */
$a_enlever = array('/–/','/\./' );
$txt_fmt['nom_scientifique'] = preg_replace($a_enlever,'',$retour[1]);
if(preg_match('/\((.+)\)/',$retour[2],$synonymes)){
$txt_fmt['synonymes'] = $synonymes[1];
} else {
$txt_fmt['nom_scientifique'] .= $retour[2];
}
$txt = str_replace($retour[0],'',$txt);
}
/* !! attention il y a un espace avant les // du début !! */
if ( preg_match('/^ \/\/([^\/\/]+)\/\//', $txt, $retour)){
$a_enlever = array('/–/','/\./' );
$txt_fmt['nom_commun'] = preg_replace($a_enlever,'',$retour[1]);
$txt = str_replace($retour[0],'',$txt);
}
}
 
 
static function separerEcologie_a_Usages(&$txt, &$txt_fmt) {
if (preg_match('/\.\s*([A-ZÉÀÈ].+)$/',$txt, $retour)) {
$txt_fmt['ecologie'] = $retour[1];
$txt = str_replace($retour[0],'.',$txt);
if (isset($txt_fmt['ecologie']) && preg_match('/–(.+)/', $txt_fmt['ecologie'] , $retour)){
$txt_fmt['repartition'] = $retour[1];
$txt_fmt['ecologie'] = str_replace($retour[0],'',$txt_fmt['ecologie']);
}
if (isset($txt_fmt['repartition']) && preg_match('/=(.+)$/', $txt_fmt['repartition'], $retour)){
$txt_fmt['floraison'] = $retour[1];
$txt_fmt['repartition'] = str_replace($retour[0],'',$txt_fmt['repartition']);
}
if (isset($txt_fmt['floraison']) && preg_match('/–(.+)$|\n(.+)$/',$txt_fmt['floraison'], $retour)){
$txt_fmt['usages'] = isset($retour[1]) ? $retour[1] : $retour[2];
$txt_fmt['floraison'] = str_replace($retour[0],'.',$txt_fmt['floraison']);
}
if (isset($txt_fmt['floraison']) && preg_match('/([Ff]l\.) (.+)/',$txt_fmt['floraison'], $retour)){
$txt_fmt['floraison'] = $retour[2];
$txt_fmt['floraison'] = str_replace($retour[1],'',$txt_fmt['floraison']);
}
if (isset($txt_fmt['floraison']) && preg_match('/([Ff]r\.) (.+)/',$txt_fmt['floraison'], $retour)){
$txt_fmt['fructification'] = $retour[2];
$txt_fmt['floraison'] = str_replace($retour[0],'',$txt_fmt['floraison']);
$txt_fmt['floraison'] = str_replace(',','',$txt_fmt['floraison']);
$txt_fmt['fructification'] = str_replace($retour[1],'',$txt_fmt['fructification']);
$txt_fmt['fructification'] = str_replace('.','',$txt_fmt['fructification']);
}
}
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Statut.php
New file
0,0 → 1,104
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Statut extends aControleur {
private $conteneur = null;
private $nomCourant = null;
private $wikini = null;
private $statuts = null;
private $meta;
private $referentiel = null;
private $appUrls;
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->wikini = $this->conteneur->getApiWikini();
$this->statuts = $this->conteneur->getApiStatuts();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->appUrls = $this->conteneur->getAppUrls();
}
public function getBloc() {
$donnees = array();
$donnees['statuts'] = $this->getStatutsZoneGeo();
if(empty($donnees['statuts'])) {
$donnees['wikini'] = $this->getWikini();
}
$donnees['liste_rouge'] = $this->getCategorieListeRouge();
return $donnees;
}
public function obtenirDonnees() {
$donnees = array();
$donnees['wikini'] = $this->getWikini();
$donnees['statuts'] = $this->getStatuts();
$donnees['liste_rouge'] = $this->getCategorieListeRouge();
return $donnees;
}
private function getStatuts() {
$statuts = "";
$projet = Config::get($this->referentiel.'.baseStatuts');
if ($projet != "") {
$nnr = $this->nomCourant->getNnr();
$statuts = $this->statuts->getStatuts($projet, $nnr);
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$statuts['meta'] = $meta[0];
$statuts['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
return $statuts;
}
private function getStatutsZoneGeo() {
$statuts = "";
$projet = Config::get($this->referentiel.'.baseStatuts');
if ($projet != "") {
$nnr = $this->nomCourant->getNnr();
$statuts = $this->statuts->getStatutsZoneGeo($projet, $nnr);
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$statuts['meta'] = $meta[0];
$statuts['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
return $statuts;
}
private function getCategorieListeRouge() {
$liste_rouge = "";
$projet = Config::get($this->referentiel.'.baseListeRouge');
if ($projet != "") {
$nnr = $this->nomCourant->getNnr();
$liste_rouge = $this->statuts->getCategorieListeRouge($projet, $nnr);
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$liste_rouge['meta'] = $meta[0];
$liste_rouge['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
return $liste_rouge;
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['statuts_de_protection'] = $this->wikini->getTexteFormate($page_wiki, 'statuts de protection');
return $wikini;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Ethnobotanique.php
New file
0,0 → 1,160
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Ethnobotanique extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $nomsVernaculaires = null;
private $wikini;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->wikini = $this->conteneur->getApiWikini();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
public function obtenirDonnees() {
$this->getNomsVernaculaires('.referentielVerna');
$this->getNomsVernaculaires('.referentielVernaGrec');
$this->getChorologie();
$this->donnees['wikini'] = $this->getWikini();
return $this->donnees;
}
 
private function getNomsVernaculaires($projet) {
$projet = Config::get($this->referentiel.$projet);
if ($projet != "") {
$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$nomsVerna = $this->nomsVernaculaires->getRechercheComplete($projet, $nt);
$this->donnees[$projet]['noms'] = $nomsVerna['resultat'];
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$this->donnees[$projet]['meta'] = $meta[0];
$this->donnees[$projet]['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
}
public function getBloc() {
$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$projet = Config::get($this->referentiel.'.referentielVerna');
if ($projet != "") {
$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($projet, $nt);
$this->donnees['nomsVerna'] = (isset($nomsVerna['resultat']) && is_array($nomsVerna['resultat'])) ? array_slice($nomsVerna['resultat'], 0, 3) : array();
$this->donnees['autresNomsVerna'] = count($nomsVerna['resultat']) - 3;
}
$this->donnees['wikini'] = $this->getWikini();
return $this->donnees;
}
private function getChorologie() {
$infos_choro = $this->nomCourant->getNomRetenu()->getInfos();
$this->donnees['chorologie'] = $this->traiterTableauChorologie($infos_choro);
$this->meta->setProjet($this->referentiel);
$meta = $this->meta->getMetaDonnees();
$this->donnees['chorologie']['meta'] = $meta[0];
$this->donnees['chorologie']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel);
}
private function traiterTableauChorologie($infos_choro) {
$donnees_choro = array();
$colonnes = array();
foreach ($infos_choro as $param => $valeur) {
if(strncmp($param, 'presence', 8) == 0) {
$lieu = self::obtenirLieuPourCodePresence($this->referentiel, $param);
if($lieu) {
$donnees_choro['Présence'][$lieu] = $valeur;
$colonnes[] = $lieu;
}
} else {
$donnees_choro = self::traiterChampsStatuts($this->referentiel, $donnees_choro, $param, $valeur);
}
}
 
ksort($donnees_choro);
$donnees = array('colonnes' => array_unique($colonnes), 'donnees' => $donnees_choro);
return $donnees;
}
static function traiterChampsStatuts($ref, $tableau_donnees, $code, $valeur) {
if ($code == 'statut_origine.libelle') {
$tableau_donnees['Statut d\'origine'][self::obtenirIntituleLieuPourReferentiel($ref)] = $valeur;
} elseif ($code == 'statut_introduction.libelle') {
$tableau_donnees['Statut d\'introduction'][self::obtenirIntituleLieuPourReferentiel($ref)] = $valeur;
} elseif ($code == 'statut_culture.libelle') {
$tableau_donnees['Statut de culture'][self::obtenirIntituleLieuPourReferentiel($ref)] = $valeur;
}
return $tableau_donnees;
}
 
/* eg:
* - presence.libelle
* - presence_Guadeloupe.code */
static function obtenirLieuPourCodePresence($ref, $str) {
// ignore les paramètres JSON de présence qui ne contiennent pas le libellé
// (= présence en toutes lettres)
if(substr($str, -7) != 'libelle') return NULL;
@list($prefixe, $lieu) = explode('_', $str, 2);
 
if($str == 'presence.libelle') {
return self::obtenirIntituleLieuPourReferentiel($ref);
}
 
list($lieu, $param) = explode('.', $lieu, 2);
if (strtolower($lieu) == 'ga') {
return 'France (Hors Corse)';
} elseif (strtolower($lieu) == 'co') {
return 'France (Corse)';
} elseif($lieu) {
return $lieu;
}
return NULL;
}
private static function obtenirIntituleLieuPourReferentiel($ref) {
$lieu = '';
switch($ref) {
case 'bdtfx':
$lieu = 'France';
break;
case 'bdtxa':
$lieu = 'Antilles';
case 'isfan':
$lieu = 'Afrique du Nord';
break;
}
return $lieu;
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['noms_communs'] = $this->wikini->getTexteFormate($page_wiki, 'noms communs');
$wikini['culture_et_arts'] = $this->wikini->getTexteFormate($page_wiki, 'culture et arts');
$wikini['usage'] = $this->wikini->getTexteFormate($page_wiki, 'usage');
return $wikini;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Ecologie.php
New file
0,0 → 1,210
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Mathilde Salthun-lassalle <mathilde@tela-botanica.org>
* @author Raphaël Droz <raphael@tela-botanica.org>
* @copyright 2011, 2013 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @used by modules/pdf_export/PdfExport.php::initialiser()
* @used by modules/fiche/formateurs/Synthese.php::obtenirDonnees()
*/
class Ecologie extends aControleur {
private $referentiel = 'bdtfx';
private $donnees = array();
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->informations = $this->conteneur->getApiInformations();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->wikini = $this->conteneur->getApiWikini();
$this->appUrls = $this->conteneur->getAppUrls();
$this->graphique = $this->conteneur->getApiGraphiques();
$this->syntaxons = $this->conteneur->getApiSyntaxons();
parent::__construct();
}
public function obtenirDonnees() {
$donnees = array();
$this->getWikini();
$this->getBaseflor();
$this->getBaseveg();
$this->donnees['urls'] = $this->appUrls;
return $this->donnees;
}
public function obtenirDonneesExport() {
$donnees['wikini'] = $this->getWikini();
$donnees['baseflor'] = $this->getBaseflorExport();
$donnees['baseveg'] = $this->getBaseveg();
return $donnees;
}
public function getBaseflorCatminat($depart, $limite) {
$baseflorCatminat = array();
$this->informations->setProjet('baseflor');
$this->informations->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations->setNum_nom($this->nomCourant->getNnr());
$this->informations->setDepart($depart);
$this->informations->setLimite($limite);
$informations = $this->informations->getInformationsRelationCatminat();
if($informations != ""){
$baseflorCatminat['catminat'] = $informations['resultat'][0]['catminat_code'];
$baseflorCatminat['lien-liste-fancy'] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_taxons',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$baseflorCatminat['catminat']);
} else {
$baseflorCatminat['aucune'] = 'Aucune donnée';
}
return $baseflorCatminat;
}
private function getBaseveg() {
if (Config::get($this->referentiel.'.basePhytosocio') != "") {
$baseveg = array();
$baseflor = $this->getBaseflorCatminat(0,500);
$baseveg['baseflor'] = $baseflor;
if (isset($baseflor['catminat'])) {
$this->syntaxons->setProjet('baseveg');
$catminat = str_replace('/','-',$baseflor['catminat']);
$this->syntaxons->setCatminat($catminat);
$syntaxonsSup = $this->syntaxons->getSyntaxonsSuperieurs();
$baseveg['syntaxons-sup'] = $syntaxonsSup['resultat'];
$syntaxonsCourant = $this->syntaxons->getSyntaxonsCatminat();
$baseveg['syntaxon-courant'] = $syntaxonsCourant['resultat'];
foreach ($baseveg['syntaxons-sup'] as $cle => $valeurs) {
$catminat_sup = str_replace('/','-',$valeurs['code_catminat']);
$baseveg['synonymes']['lien-liste-fancy'][$valeurs['code_catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_synonymes',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat_sup);
$baseveg['ref']['lien-liste-fancy'][$valeurs['code_catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_ref',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat_sup);
$baseveg['taxons']['lien-liste-fancy'][$valeurs['code_catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_taxons_sup',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat_sup);
}
$baseveg['synonymes']['lien-liste-fancy'][$baseflor['catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_synonymes',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat);
$baseveg['ref']['lien-liste-fancy'][$baseflor['catminat']] = $this->appUrls->obtenirUrlListeFancyBoxPhytosocio('catminat_ref',$this->conteneur->getParametre('referentiel'),$this->nomCourant->getNnr(),$catminat);
$this->meta->setProjet('baseveg');
$meta = $this->meta->getMetaDonnees();
$baseveg['meta'] = $meta[0];
$baseveg['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseveg');
}else {
$baseveg['aucune'] = 'Aucune donnée';
}
$this->donnees['baseveg'] = $baseveg;
}
}
private function getBasevegSyntaxonCourant() {
$baseveg = array();
$baseflor = $this->getBaseflorCatminat(0,500);
if (isset($baseflor['catminat'])) {
$this->syntaxons->setProjet('baseveg');
$catminat = str_replace('/','-',$baseflor['catminat']);
$this->syntaxons->setCatminat($catminat);
$syntaxonsCourant = $this->syntaxons->getSyntaxonsCatminat();
$baseveg['description'] = $syntaxonsCourant['resultat'];
}
return $baseveg;
}
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$referentiel = $this->conteneur->getParametre('referentiel');
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
$wikini['ecologie'] = $this->wikini->getTexteFormate($page_wiki, 'ecologie');
$this->donnees['wikini'] = $wikini;
}
public function getBloc() {
$donnees = array();
$this->getBaseflor(false);
$this->donnees['graph'] = $this->donnees['baseflor'];
$this->donnees['graph']['titre'] = 'Optimum écologique';
$this->donnees['phytosocio'] = $this->getBasevegSyntaxonCourant();
return $this->donnees;
}
private function getBaseflorExport() {
$baseflor = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations ->setNum_nom($this->nomCourant->getNnr());
$informations = $this->informations->getInformationsEcologie();
if(is_array($informations)){
$baseflor['climat_url'] = $informations['graphique_climat']['href']."?retour.format=500";
$baseflor['sol_url'] = $informations['graphique_sol']['href']."?retour.format=500";
$baseflor['climat_url_png'] = $informations['graphique_climat']['href']."?retour=image/png";
$baseflor['sol_url_png'] = $informations['graphique_sol']['href']."?retour=image/png";
$this->graphique -> setProjet('baseflor');
$baseflor['legende_eco'] = $this->urls->obtenirUrlBaseDossier() . Config::get('dossier_images') . '/legende_formes.png';
$this->meta->setProjet('baseflor');
$meta = $this->meta->getMetaDonnees();
$baseflor['meta']= $meta[0];
}else {
$baseflor['aucune'] = 'Aucune donnée';
}
return $baseflor;
}
private function getBaseflor($inclure_legende = true) {
if (Config::get($this->referentiel.'.baseEcologie')) {
$referentiel = $this->conteneur->getParametre('referentiel');
$num_nom = $this->nomCourant->getNnr();
 
// TODO: unserialize() pourrait aussi légitimement retourner FALSE
$cache = unserialize($this->conteneur->getCache()->charger('baseflor/graphique/'.$referentiel.'_'.$num_nom));
if($cache) {
$baseflor = $cache;
$this->graphique ->setProjet('baseflor');
$graphique = $this->graphique->getLegendeGraphique();
$baseflor['legende'] = $graphique ;
} else {
$baseflor = array();
$this->informations ->setProjet('baseflor');
$this->informations ->setBdnt($this->conteneur->getParametre('referentiel'));
$this->informations ->setNum_nom($this->nomCourant->getNnr());
$informations = $this->informations->getInformationsEcologie();
if(is_array($informations)){
if (isset($informations['graphique_climat'])) {
$baseflor['climat_url'] = $informations['graphique_climat']['href']."?retour.format=500";
$baseflor['climat_url_png'] = $informations['graphique_climat']['href']."?retour=image/png";
$baseflor['description']['climat_url'] = $informations['graphique_climat']['href']."?retour.format=420";
$baseflor['description']['climat_url_png'] = $informations['graphique_climat']['href']."?retour.format=420&retour=image/png";
}
if (isset($informations['graphique_sol'])) {
$baseflor['sol_url'] = $informations['graphique_sol']['href']."?retour.format=500";
$baseflor['sol_url_png'] = $informations['graphique_sol']['href']."?retour=image/png";
$baseflor['description']['sol_url'] = $informations['graphique_sol']['href']."?retour.format=420";
$baseflor['description']['sol_url_png'] = $informations['graphique_sol']['href']."?retour.format=420&retour=image/png";
}
if($inclure_legende) {
$this->graphique ->setProjet('baseflor');
$graphique = $this->graphique->getLegendeGraphique();
$baseflor['legende'] = $graphique ;
}
$this->meta->setProjet('baseflor');
$meta = $this->meta->getMetaDonnees();
$baseflor['meta'] = $meta[0];
$baseflor['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('baseflor');
$this->conteneur->getCache()->sauver(serialize($baseflor),
'baseflor/graphique/'.$referentiel.'_'.$num_nom);
} else {
$baseflor['aucune'] = 'Aucune donnée';
}
}
$this->donnees['baseflor'] = $baseflor;
}
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Illustrations.php
New file
0,0 → 1,304
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Illustrations extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $images = null;
private $appUrls = null;
private $meta = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
$this->meta = $this->conteneur->getApiMetaDonnees();
}
 
public function obtenirDonnees() {
$this->donnees['nt'] = $this->nomCourant->getNt();
$this->donnees['nnr'] = $this->nomCourant->getNnr();
$this->donnees['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html');
$infosNomRetenu = $this->nomCourant->getNomRetenu()->getInfos();
$this->donnees['nomComplet'] = $infosNomRetenu['nom_complet'];
$this->getPhotos();
$this->getDessin();
//$this->getPhotosOrganes();
$this->getPhotosCaracteresIdentification();
$pso = $this->getPhotosSixOrganes();
// reconstruction de getPhotosOrganes à partir des données de getPhotosSixOrganes
/*$this->donnees['organes'] = array();
foreach ($pso as $organe => $images) {
$clefs = array_keys($images);
$image = $images[$clefs[0]];
// changement de format - en dur, cracra !
$image['binaire.href'] = str_replace('CRX2S', 'CRS', $image['binaire.href']);
$this->donnees['organes'][$organe] = $image;
}*/
// --
$this->setCheminSquelette('modules/fiche/squelettes/'); // @FIXME le chemin devrait déjà être défini correctement !?
$params = array('organes' => $pso, 'nnr' => $this->donnees['nnr'], 'nomComplet' => $this->donnees['nomComplet']);
$this->donnees['illustrationsOrganes'] = $this->getVue('fiche_illustrations_organes',$params);
// chemins
$this->donnees['base_url_widget'] = Config::get('base_url_widget');
$this->donnees['base_url_del'] = Config::get('base_url_del');
return $this->donnees;
}
public function obtenirDonneesExport() {
$this->donnees['nt'] = $this->nomCourant->getNt();
$this->donnees['nomSciRetenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html');
$this->donnees['cel'] = $this->getCelExport();
$this->donnees['coste'] = $this->getCoste();
return $this->donnees;
}
 
public function getBloc() {
$this->donnees = $this->images->getInfosMeilleureImageParPrioriteTags($nnr = $this->nomCourant->getNnr(), array(
'fleur', 'feuille', 'fruit', 'ecorce', 'port', 'rameau'));
if (empty($this->donnees)) {
$this->donnees = $this->getPhoto('cel');
if (empty($this->donnees)) {
$infos_image = $this->getDessin();
if (empty($infos_image) == false ) {
$this->donnees['imageUrl'] = array_shift($infos_image['images']);
}
}
} else {
// extraction de l'url
$this->donnees = array('imageUrl' => $this->donnees['binaire.href']);
}
if (empty($this->donnees)) {
$this->donnees = $this->getPhoto('photoflora');
}
return $this->donnees;
}
public function getPhoto($source) {
$donnees = array();
$this->images->setProjet($source);
$nnr = $this->nomCourant->getNnr();
$infos_image = $this->images->setApi(Eflore::API_EFLORE)->getInfosPremiereImageParIdsNoms(array($nnr));
if ($infos_image != array()) {
$image = array_shift($infos_image);
$donnees['imageUrl'] = $image['binaire.href'];
}
return $donnees;
}
 
public function getCoste() {
$coste = array();
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$this->images->setProjet('coste');
$this->images->setNnTaxon($tax);
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
foreach ($costeImg as $infos) {
$coste['images'][] = $infos['binaire.href'];
}
$this->meta->setProjet('coste');
$meta = $this->meta->getMetaDonnees();
$coste['meta'] = $meta[0];
$coste['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('coste');
return $coste;
}
 
public function getDessin() {
$projet = Config::get($this->referentiel.'.baseDessins');
if ($projet != "") {
$dessin = array();
$tax = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
$this->images->setProjet($projet);
$this->images->setNnTaxon($tax);
$costeImg = $this->images->setApi(Eflore::API_EFLORE)->getInfosImagesTaxons();
foreach ($costeImg as $infos) {
$dessin['images'][] = $infos['binaire.href'];
}
$this->meta->setProjet('coste');
$meta = $this->meta->getMetaDonnees();
$dessin['meta'] = $meta[0];
$dessin['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
$this->donnees['coste'] = $dessin;
}
}
public function getPhotos() {
$projets[] = Config::get($this->referentiel.'.baseImages');
$projets[] = Config::get($this->referentiel.'.baseImagesSupp');
foreach ($projets as $projet) {
if ($projet != "") {
if ($projet == "cel") {
$this->images->setApi(Eflore::API_EFLORE); // prêt à passer à API_DEL
} else {
$this->images->setApi(Eflore::API_EFLORE);
}
$images = $this->initialiserPhotos($projet);
$this->formaterListePhotos($projet, $images);
$this->formaterMetaPhotos($projet);
}
}
}
public function getPhotosSixOrganes() {
$organes = $this->getOrganes();
$nnr = $this->nomCourant->getNnr();
$infosOrganes = $this->images->getInfosMeilleuresImagesParTag($nnr, array_keys($organes), Eflore::PROTOCOLE_CAPITALISATION, 6, 'CRX2S');
$vide = true;
foreach ($infosOrganes as $tag => $organe) {
$organes[$tag] = $organe;
$nbImages = count($organe);
if ($nbImages != 0) {
$vide = false;
for ($i = 6; $i > $nbImages; $i--) {
$organes[$tag][] = null;
}
}
}
if ($vide) {
$organes = array();
}
return $organes;
}
public function getPhotosOrganes() {
$organes = $this->getOrganes();
$nnr = $this->nomCourant->getNnr();
$infosOrganes = $this->images->getInfosMeilleuresImagesParTag($nnr, array_keys($organes), Eflore::PROTOCOLE_CAPITALISATION, 1);
$vide = true;
foreach ($infosOrganes as $tag => $organe) {
$nbImages = count($organe);
// une image par organe seulement
$organes[$tag] = array_pop($organe);
if ($nbImages != 0) {
$vide = false;
}
}
if ($vide) {
$organes = array();
}
$this->donnees['organes'] = $organes;
}
public function getPhotosCaracteresIdentification() {
$caracteres = array();
$nnr = $this->nomCourant->getNnr();
// pas de tag: on cherche les mieux votées pour ce protocole sans tenir compte des tags
$infosCaracteres = $this->images->getInfosMeilleuresImagesParTag($nnr, '', Eflore::PROTOCOLE_CARACTERES, 3);
if (! empty($infosCaracteres) && ! empty($infosCaracteres[''])) { // le tag est vide, ici
$caracteres = $infosCaracteres[''];
}
$this->donnees['caracteres'] = $caracteres;
}
private function getOrganes() {
return array(
'fleur' => array(),
'feuille' => array(),
'fruit' => array(),
'ecorce' => array(),
'port' => array(),
'rameau' => array());
}
 
// XXX: webservice:
// /service:eflore:0.1/cel/images?masque.nn=XXX&referentiel=bdtfx&retour.format=CS&navigation.limite=801
private function initialiserPhotos($projet) {
$this->images->setProjet($projet);
$nnr = $this->nomCourant->getNnr();
$ret = $this->images->getInfosImagesParIdsNoms(array($nnr));
return $ret;
}
private function formaterListePhotos($projet, $images) {
foreach ($images as $idImg => $img) {
$infosImg = array();
$infosImg['src'] = $img['binaire.href'];
$infosImg['nomSci'] = $img['determination.nom_sci'];
$infosImg['station'] = $img['station.libelle'];
$infosImg['date'] = $this->formaterDateImg($img['date']);
$infosImg['auteur'] = $img['auteur.libelle'];
$infosImg['auteur.id'] = $img['auteur.id'];
if ($projet == "cel") {
$infosImg['urlDetailImg'] = $this->appUrls->obtenirUrlPopUpIllustrations($idImg);
$infosImg['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($img['auteur.id'], $idImg);
$infosImg['urlProfil'] = $this->appUrls->obtenirUrlProfilAnnuaire($img['auteur.id']);
$infosImg['urlMauvaiseIdentification'] = $this->appUrls->obtenirUrlMauvaiseIdentification($img['observation.id']);
}
$this->donnees[$projet]['images'][$idImg] = $infosImg;
}
}
private function formaterMetaPhotos($projet) {
$this->meta->setProjet($projet);
$meta = $this->meta->getMetaDonnees();
$titreMeta = $meta[0];
$this->donnees[$projet]['meta'] = $titreMeta;
$this->donnees[$projet]['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
}
public function getCelExport() {
$cel = array();
$this->images->setProjet('cel');
$nnr = $this->nomCourant->getNnr();
$img = $this->images->getUrlPremiereImageParIdsNoms(array($nnr));
if($img) {
$img = array_values($img);
$cel['images']['src'] = $img[0]['binaire.href'];
$cel['images']['nomSci'] = $img[0]['determination.nom_sci'];
$cel['images']['station'] = $img[0]['station.libelle'];
$cel['images']['date'] = $this->formaterDateImg($img[0]['date']);
$cel['images']['auteur'] = $img[0]['auteur.libelle'];
$this->meta->setProjet('cel');
$meta = $this->meta->getMetaDonnees();
$cel['meta'] = $meta[0];
$cel['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('cel');
}
return $cel;
}
 
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '' || $date == null || $date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
return 'inconnue';
}
$time = strtotime($date);
if(!$time) {
/* TODO: php -r "echo strtotime('1891-00-00 00:00:00');"
TODO: fixer le template pour affiche "en l'année X", plutôt que "le X"
si FALSE pour avant 1901: problème php
On retourne alors simplement l'année.
si correction, ne pas oublier modules/popup_illustrations/PopupIllustrations.php */
$dateFmt = explode('-', $date);
return $dateFmt[0];
}
return strftime('%e %B %Y', strtotime($date));
}
 
private function formaterNomSci($nom) {
$nomFmt = $nom;
if (is_null($nom) || $nom == '') {
$nomFmt = 'inconnu';
}
return $nomFmt;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/formateurs/Nomenclature.php
New file
0,0 → 1,134
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Nomenclature extends aControleur {
 
private $conteneur = null;
private $nomCourant = null;
private $noms = null;
private $meta = null;
private $referentiel = 'bdtfx';
private $donnees = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
$this->nomCourant = $this->conteneur->getNomCourant();
$this->referentiel = $this->conteneur->getParametre('referentiel');
$this->taxons = $this->conteneur->getApiTaxons();
$this->noms = $this->conteneur->getApiNoms();
$this->meta = $this->conteneur->getApiMetaDonnees();
$this->appUrls = $this->conteneur->getAppUrls();
$this->wikini = $this->conteneur->getApiWikini();
//print_r($_GET['niveau']);
//Registre::set('parametres.niveau', 2);
}
 
public function obtenirDonnees() {
$this->donnees['baseUrlIco'] = $this->appUrls->obtenirUrlBaseDossier();
$this->donnees['referentiel'] = $this->referentiel;
$this->getFlores();
$this->donnees['synonymes']['noms'] = $this->getSynonymes();
$this->donnees['date_maj'] = $this->nomCourant->getNomRetenu()->get('maj_modif');
$meta = $this->meta->getMetaDonnees();
$this->donnees['synonymes']['meta'] = $meta[0];
$this->donnees['synonymes']['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($this->referentiel);
$this->donnees['num_type'] = $this->nomCourant->getNomSelectionne()->get('num_type');
$this->donnees['urls'] = $this->appUrls;
$this->donnees['nom_retenu_formate'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html_complet');
$this->donnees['nom_retenu_nn'] = $this->nomCourant->getNomRetenu()->get('nom_retenu.id');
$this->donnees['basionyme_nom_retenu'] = $this->nomCourant->getNomRetenu()->get('basionyme_html_complet');
$this->donnees['basionyme_nom_retenu_nn'] = $this->nomCourant->getNomRetenu()->get('basionyme.id');
$this->donnees['nom_selectionne'] = $this->nomCourant->getNomSelectionne()->get('nom_sci_html');
$this->donnees['nom_retenu'] = $this->nomCourant->getNomRetenu()->get('nom_sci');
$this->donnees['wikini'] = $this->getWikini();
$this->donnees['hybride_parent_01'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_01_html_complet');
$this->donnees['hybride_parent_02'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_02_html_complet');
$this->donnees['hybride_parent_01_nn'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_01.id');
$this->donnees['hybride_parent_02_nn'] = $this->nomCourant->getNomRetenu()->get('hybride.parent_02.id');
$this->donnees['taxons_sup'] = $this->nomCourant->taxons_sup;
$this->donnees['taxon_courant']['rang.libelle'] = $this->nomCourant->getNomRetenu()->get('rang.libelle');
$this->donnees['taxon_courant']['nom_sci'] = $this->nomCourant->getNomRetenu()->get('nom_sci');
$this->donnees['taxon_courant']['num_nom'] = $this->nomCourant->getNomRetenu()->get('id');
$this->donnees['taxons_inf'] = $this->getTaxonsInferieurs();
return $this->donnees;
}
private function getTaxonsInferieurs() {
$num_nom = $this->nomCourant->getNomRetenu()->get('id');
$resultat = $this->taxons->getTaxonsInf($num_nom);
// TODO: le webservice retourne le taxon demandé comme l'un des taxon inférieurs
// workaround: on le supprime ici car l'on ignore si d'autre app' dépendent de ce comportement
unset($resultat[$num_nom][$num_nom]);
return $resultat[$num_nom];
}
public function obtenirVersionDonnees() {
$meta = $this->meta->getMetaDonnees();
$this->donnees['version'] = $meta[0]['code'].' v.'.$meta[0]['version'];
return $this->donnees;
}
 
public function getBloc() {
$this->donnees['urls'] = $this->appUrls;
$this->donnees['nom_selectionne'] = $this->nomCourant->getNomSelectionne()->get('nom_sci_html_complet');
$this->donnees['nom_retenu_formate'] = $this->nomCourant->getNomRetenu()->get('nom_sci_html_complet');
$this->donnees['basionyme_nom_retenu'] = $this->nomCourant->getNomRetenu()->get('basionyme_html_complet');
$synonymes = $this->getSynonymes();
$this->donnees['synonymes'] = array_slice($synonymes, 0, 3);
$this->donnees['autresSynonymesNbre'] = count($synonymes) - 3;
$this->donnees['taxons_sup'] = $this->nomCourant->taxons_sup;
$this->donnees['taxons_inf'] = $this->getTaxonsInferieurs();
$this->donnees['taxons_sup'] = is_array($this->donnees['taxons_sup']) ? array_slice($this->donnees['taxons_sup'], -3 , 3) : array();
$this->donnees['taxons_inf'] = is_array($this->donnees['taxons_inf']) ? array_slice($this->donnees['taxons_inf'], 0 , 3) : array();
return $this->donnees;
}
 
private function getFlores() {
if (Config::get($this->referentiel.'.baseFloresRef') != "") {
$nnr = $this->nomCourant->getNnr();
$flores = $this->noms->getFlores($nnr);
$this->donnees['flores_synonymes'] = (isset($flores['resultat']) && is_array($flores['resultat'])) ? $flores['resultat'] : array();
}
}
 
private function getSynonymes() {
$nns = $this->nomCourant->getNns();
$synonymesReponse = $this->noms->getSynonymes($nns);
 
$synonymes = array();
if (isset($synonymesReponse['resultat']) && is_array($synonymesReponse['resultat'])) {
$synonymes = $synonymesReponse['resultat'];
if (array_key_exists($this->nomCourant->getNnr(), $synonymes)) {
unset($synonymes[$this->nomCourant->getNnr()]);
}
}
return $synonymes;
}
 
private function getWikini() {
$wikini = array();
$wikini['titre'] = 'Wikini';
$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($this->referentiel, $num_tax);
$wikini['nomenclature'] = $this->wikini->getTexteFormate($page_wiki, 'nomenclature');
return $wikini;
}
}
?>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_ethnobotanique.tpl.html
New file
0,0 → 1,122
<div id="ethnobotanique">
<? if (isset($nvjfl)) : ?>
<h2>Noms communs</h2>
<?php if($nvjfl['noms'] != array()) { ?>
<table class="liste_noms_vernaculaires">
<tr>
<th>Langue</th><th>Nom</th><th>Genre et Nombre</th><th>Conseil d'emploi</th><th>Notes</th>
</tr>
<?php foreach($nvjfl['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
<td><?= $nom_verna['genre'] ?></td>
<td><?= $nom_verna['conseil_emploi'] ?></td>
<td><?= $nom_verna['notes'] ?></td>
</tr>
<?php endforeach; ?>
<?php if($nvps['noms'] != array()) { ?>
<?php foreach($nvps['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
<td><?= $nom_verna['genre'] ?></td>
<td></td>
<td><?= $nom_verna['notes'] ?></td>
</tr>
<?php endforeach; ?>
<?php } ?>
</table>
<?php } else { ?>
<h3 class="aucune_info">Aucun nom vernaculaire référencé</h3>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?=$nvjfl['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?=$nvjfl['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div><div class="conteneur_lien_metadonnees">
<?=$nvps['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?=$nvps['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? endif ; ?>
<? if (isset($nva)) : ?>
<h2>Noms communs</h2>
<?php if($nva['noms'] != array()) { ?>
<table class="liste_noms_vernaculaires">
<tr>
<th>Langue</th><th>Nom</th>
</tr>
<?php foreach($nva['noms'] as $nom_verna) : ?>
<tr>
<td><?= $nom_verna['code_langue'] ?></td>
<td><?= $nom_verna['nom_vernaculaire'] ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php } else { ?>
<h3 class="aucune_info">Aucun nom vernaculaire référencé</h3>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?=$nva['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?=$nva['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? endif ; ?>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini">Proposez vos noms communs et vos étymologies</span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="noms communs">
<?=$wikini['noms_communs']?>
</div>
</div>
<h2>Statuts</h2>
<?php if($chorologie['donnees']) { ?>
<table class="liste_statuts">
<tr>
<th></th>
<?php foreach($chorologie['colonnes'] as $colonne) : ?>
<th><?= $colonne ?></th>
<?php endforeach; ?>
</tr>
<?php foreach($chorologie['donnees'] as $type => $donnee) : ?>
<tr>
<td><?= $type ?></td>
<?php foreach($chorologie['colonnes'] as $colonne) : ?>
<td><?= (isset($donnee[$colonne])) ? $donnee[$colonne] : '' ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
<?php } else { ?>
<h3 class="aucune_info">Aucun statut référencé</h3>
<?php } ?>
<div class="conteneur_lien_metadonnees">
<?= $chorologie['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $chorologie['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<h2> Usage :</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction de ces données ethnobota, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="usage">
<?=$wikini['usage']?>
</div>
</div>
<h2> Culture et arts :</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction de ces données ethnobota, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="culture et arts">
<?=$wikini['culture_et_arts']?>
</div>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_ecologie.tpl.html
New file
0,0 → 1,234
<div id="ecologie">
<?php if(isset($baseflor)) : ?>
<h2>Optimum écologique</h2>
<? if (!isset($baseflor['aucune'])) : ?>
<div class="fond_graphique">
<div class="bloc_graph">
<? if (isset($baseflor['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object class="ecologie_svg" type="image/svg+xml" data="<?=$baseflor['climat_url']?>" class="svg" alt="<?=$baseflor['climat_url_png']?>">
</object>
</div>
<button class="voir"> voir la légende </button>
<button class="cacher">masquer la légende </button>
<br/>
<div class="legende_graphique">
<table>
<tr>
<td class="largeur-02" >
<span class="titre">Lumière </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEL'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre">Température </span>
</td>
<td>
<? foreach ($baseflor['legende']['VET'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre">Humidité atmosphérique </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEHA'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre">Continentalité </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEC'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
</table>
</div>
<? endif; ?>
</div>
<br /><br />
<div class="bloc_graph">
<? if (isset($baseflor['sol_url'])) : ?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object class="ecologie_svg" type="image/svg+xml" data="<?=$baseflor['sol_url']?>" class="svg" alt="<?=$baseflor['sol_url_png']?>">
</object>
</div>
<div class="legende_formes">
</div>
<button class="voir"> voir la légende </button>
<button class="cacher">masquer la légende </button>
<br/>
<div class="legende_graphique">
<table>
<tr>
<td class="largeur-02">
<span class="titre"> Réaction (pH) </span>
</td>
<td>
<? foreach ($baseflor['legende']['VER'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Humidité </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEHE'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Texture </span>
</td>
<td>
<? foreach ($baseflor['legende']['VETX'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Nutriments </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEN'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Salinité </span>
</td>
<td>
<? foreach ($baseflor['legende']['VES'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
<tr>
<td>
<span class="titre"> Matière Organique </span>
</td>
<td>
<? foreach ($baseflor['legende']['VEMO'] as $code => $infos ) : ?>
<?=$code ?> : <?=$infos['nom'] ?>
<? endforeach; ?>
</td>
</tr>
</table>
</div>
<? endif; ?>
</div>
</div>
<div class="conteneur_lien_metadonnees">
<?=$baseflor['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup " href="<?= $baseflor['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<?else : ?>
<?=$baseflor['aucune']?>
<br />
<? endif; ?>
<? endif; ?>
<?php if(isset($baseflor)) : ?>
<h2>Phytosociologie</h2>
<? if (isset($baseveg['syntaxons-sup']) || isset($baseveg['syntaxons-sup'])) : ?>
<br/>
Le code catminat de ce taxon est <span class="gras"> <?=$baseveg['baseflor']['catminat'] ?></span> </br>
Il est caractéristique du syntaxon de niveau <span class="gras"><?=$baseveg['syntaxon-courant'][0]['niveau.libelle']?></span> présenté
dans le tableau ci-dessous avec ses niveaux supérieurs. [ <a href="http://philippe.julve.pagesperso-orange.fr/catminat.htm" target="_blank">Voir le site Catminat pour en savoir plus.</a> ]
<table>
<?php foreach ($baseveg['syntaxons-sup'] as $cle => $valeurs ) : ?>
<tr>
<td>
<span class="gras"><?=$valeurs['code_catminat']?></span></br>
<?=$valeurs['niveau.libelle']?>
</td>
<td>
<span class="gras"><?=$valeurs['syntaxon']?></span> </br>
<span ><?=$valeurs['physio_biotype']?></span> </br>
<?= !empty($valeurs['repartition_france']) ? 'répartition : '.$valeurs['repartition_france'] : '' ?>
</td>
<td>
<a class="lien_popup" href="<?=$baseveg['ref']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Réf.</a> </br>
<a class="lien_popup" href="<?=$baseveg['synonymes']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Syn.</a> </br>
<a class="lien_popup" href="<?=$baseveg['taxons']['lien-liste-fancy'][$valeurs['code_catminat']]?>">Taxons</a>
</td>
</tr>
<? endforeach; ?>
<tr class="surlignage">
<td>
<span class="gras"><?=$baseveg['syntaxon-courant'][0]['code_catminat']?></span></br>
<?=$baseveg['syntaxon-courant'][0]['niveau.libelle']?>
</td>
<td>
<span class="gras"><?=$baseveg['syntaxon-courant'][0]['syntaxon']?></span> </br>
<span ><?=$baseveg['syntaxon-courant'][0]['physio_biotype']?></span> </br>
<?= !empty($baseveg['syntaxon-courant'][0]['repartition_france']) ? 'rép.'.$baseveg['syntaxon-courant'][0]['repartition_france'] : ''?>
</td>
<td>
<a class="lien_popup" href="<?=$baseveg['ref']['lien-liste-fancy'][$baseveg['syntaxon-courant'][0]['code_catminat']]?>">Réf.</a> </br>
<a class="lien_popup" href="<?=$baseveg['synonymes']['lien-liste-fancy'][$baseveg['syntaxon-courant'][0]['code_catminat']]?>">Syn.</a></br>
<a class="lien_popup" href="<?=$baseveg['baseflor']['lien-liste-fancy']?>">Taxons</a>
</td>
</tr>
</table>
<div class="conteneur_lien_metadonnees">
<?=$baseveg['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup " href="<?= $baseveg['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? else : ?>
Aucune donnée.
<? endif; ?>
<br/>
<?php endif; ?>
 
<br/>
<br/>
<h2>Vos compléments sur l'écologie</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction collaborative, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="ecologie">
<?=$wikini['ecologie']?>
</div>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_illustrations_organes.tpl.html
New file
0,0 → 1,74
<? if (isset($organes) && (empty($organes) == false)) : ?>
<div id="galerie-organes">
<ul class="liste-illustrations">
<?php foreach($organes as $tag => $image) : ?>
<li class="icone-organe">
<a class="lien-images-organes <? if (empty($image)) : ?>non-<? endif ?>fourni" data-tag="<?= $tag; ?>"
title="<? if (empty($image)) : ?>Aucune photo pour <? endif ?><?= $tag ?>">
<img class="icone-organe" src="/eflore/consultation/presentations/images/icones_tags/<?= $tag; ?>.png" alt="<?= $tag ?>" />
<?= $tag; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<div id="galerie-organes-contenu" style="display: none;">
<? foreach($organes as $tag => $image) : ?>
<div class="onglet-organe" data-tag="<?= $tag; ?>">
<?php if (empty($organes[$tag]) == false) :?>
<ul class="liste-illustrations">
<?php foreach($organes[$tag] as $image) : ?>
<li class="miniature-organe">
<?php if ($image != null) : ?>
<a class="lien-grande-image-organe"
data-id-image="<?= $image['id_image'] ?>" data-titre="<?= $image['observation']['determination.ns'] ?>"
data-description="<?= $image['determination.libelle'] ?>" data-localisation="<?= $image['station.libelle'] ?>"
data-auteur="<?= $image['auteur.libelle'] ?>" data-id-destinataire="<?= $image['auteur.id'] ?>"
data-date="<?= $image['date'] ?>">
<img class="miniature-organe" src="<?= $image['binaire.href']; ?>" alt="<?= $image['binaire.href']; ?>" />
</a>
<?php else: ?>
<p class="absent absent-mini">
Pas de photo
<br>
<a class="contribuer" onclick="window.open(this.href); return false;"
title="Ajouter une photographie au moyen du Carnet en Ligne"
href="http://www.tela-botanica.org/widget:cel:saisie?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=Ajout d'une photo de <?= $nomComplet ?>">
Contribuer
</a>
</p>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<?php else: ?>
Aucune illustration pour l'organe "<?= $tag ?>"
<?php endif; ?>
</div>
<?php endforeach; ?>
<div id="grande-image-organe">
<a class="lien-image-cel" href="">
<img src="" alt="Grande image" />
</a>
</div>
<div id="grande-image-legende">
<div>
<dl>
<dt>Photo n°</dt><dd id="grande-image-legende-id-image"></dd>
<dt>Titre</dt><dd id="grande-image-legende-titre"><br></dd>
<dt>Description</dt><dd id="grande-image-legende-description"><br></dd>
<dt>Localisation</dt><dd id="grande-image-legende-localisation"><br></dd>
<dt>Auteur</dt>
<dd>
<a id="grande-image-legende-auteur" href=""></a>
<a id="grande-image-legende-id-destinataire" href="" class="mailto">(Contacter ...)</a>
</dd>
<dt>Date d'observation</dt><dd id="grande-image-legende-date"><br></dd>
<dt>Licence</dt><dd><a href="http://www.tela-botanica.org/page:licence" class="lien-externe">CC-BY-SA</a></dd>
</dl>
</div>
</div>
</div>
</div>
<? endif ?>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_synthese_niveau1.tpl.html
New file
0,0 → 1,459
<!-- Fichier débutant -->
<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<script type="text/javascript">
//<![CDATA[
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>";
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>";
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>";
var pageWikiTaxon = "<?= strtoupper($infos['referentiel']); ?>nt<?= $infos['num_tax']; ?>";
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>";
//]]>
</script>
<div class="synthese">
<div class="colonne deuxtiers">
<!-- Description -->
<div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description">Description</a>
</h3>
<div id="contenu-1" class="contenu">
<h4><?= $description['titre']?></h4>
<? if ($description['description'] != '') : ?>
<? if($description['type'] == 'baseflor') : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['description']['type_bio'] != '') : ?>
<span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['form_vegetale'] != '') : ?>
<span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['chorologie'] != ''): ?>
<span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<? if ($description['description']['inflorescence'] != '') : ?>
<span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
<? endif; ?>
<? if ($description['description']['fruit'] != '') : ?>
<span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
<? endif; ?>
<? if ($description['description']['couleur_fleur'] != '') : ?>
<span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
<? endif; ?>
<? if ($description['description']['macule'] != '') : ?>
<span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
<? endif; ?>
<? if ($description['description']['floraison'] != '') : ?>
<span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
<? endif; ?>
</td>
<td>
<? if ($description['description']['sexualite'] != '') : ?>
<span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
<? endif; ?>
<?if ($description['description']['ordre_maturation'] != '') : ?>
<span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
<? endif; ?>
<? if ($description['description']['pollinisation'] != '') : ?>
<span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
<? endif; ?>
<? if ($description['description']['dissemination'] != '') : ?>
<span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
<? endif; ?>
</td>
</tr>
</table>
<? elseif($description['titre'] == 'Description de Coste') : ?>
<table class="desc">
<tr>
<td>
<?if ($description['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if (@$description['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['description']['texte'] != '') : ?>
<?=$description['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if (@$description['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['description']['floraison']; ?>
<?if ($description['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if (@$description['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<? else : ?>
<?=$description['description'];?>
<? endif;?>
<? endif;?>
<a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ethnobotanique -->
<div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique">Ethnobotanique</a>
</h3>
<div id="contenu-4" class="contenu">
<h4>Noms communs</h4>
<?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
Aucun nom vernaculaire<br /><br />
<? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? } else { echo $ethnobotanique['wikini']['noms_communs']; } ?>
<?php } else { ?>
<?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
<div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
<?php endforeach; ?>
<?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $ethnobotanique['autresNomsVerna'] ?>
autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
</a><br />
<?php }?>
<?php }?>
<h4>Usages</h4>
<? if ($ethnobotanique['wikini']['usage'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? } else { echo $ethnobotanique['wikini']['usage'];} ?>
<h4>Culture et arts</h4>
<? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
<br />
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ecologie -->
<div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie">Ecologie</a>
</h3>
<div id="contenu-8" class="contenu">
<h4><?= $ecologie['graph']['titre'] ?></h4>
<? if (empty($ecologie['graph']['description'])) : ?>
<? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
Rajouter vos données.
</a>
<? else : echo $ecologie['graph']['wikini']['ecologie'];?>
<? endif; ?>
<? else : ?>
<div class="fond_graphique">
<? if (isset($ecologie['graph']['description']['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
</object>
</div>
<? endif; ?>
<? if (isset($ecologie['graph']['description']['sol_url'])) :?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
class="svg" class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" > >
</object>
</div>
<? endif; ?>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
Voir les références
</a>
</div>
<? endif; ?>
<? if (!empty($ecologie['phytosocio']['description'])) : ?>
<h4>Phytosociologie</h4>
<span class="gras">
<?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
<?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
</span> <br/>
<?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
<span class="italique">
<?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
</span>
<? endif; ?>
<br/>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Nomenclature -->
<div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature">Classification</a>
</h3>
<div id="contenu-6" class="contenu">
<h4>Taxons supérieurs</h4>
<?php if($nomenclature['taxons_sup'] != array()) { ?>
<?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon supérieur référencé </div>
<?php } ?>
<h4>Nom retenu</h4>
<div>
<div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate']; ?>
</div>
<?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
<div class="nom"> <span class="nomenclature_basionyme">Basionyme</span> : <?= $nomenclature['basionyme_nom_retenu']; ?></div>
<?php } ?>
</div>
<h4>Synonymes</h4>
<?php if($nomenclature['synonymes'] == array()) { ?>
Aucun synonyme
<? } else { ?>
<?php foreach (@$nomenclature['synonymes'] as $synonyme) : ?>
<div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet']; ?>
</div>
<?php endforeach; ?>
<?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
<a href="<?=$url;?>nomenclature" style="float:right;" class="lien_ouverture_onglet_parent" >et
<?= $nomenclature['autresSynonymesNbre'] ?>
autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
</a>
<?php }} ?>
<h4>Taxons inférieurs</h4>
<?php if($nomenclature['taxons_inf'] != array()) { ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon inférieur référencé </div>
<?php } ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Bibliographie -->
<div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie">Bibliographie</a>
</h3>
<div id="contenu-2" class="contenu">
<?php if (isset($bibliographie['wikini'])) { ?>
<?= ($bibliographie['wikini']['biblio'] == '') ?
'<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Ajoutez votre bibliographie sur ce taxon</a>'
: $bibliographie['wikini']['biblio'].
'<br /><br /><a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Rajouter vos données.</a>'; ?>
<?php } else { ?>
<h4>Flores</h4>
<?php if ($bibliographie['flores'] == array()) { ?>
Aucune flore indiquée
<?php } else { ?>
<?php foreach ($bibliographie['flores'] as $flore) : ?>
<div> - <?= $flore; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresFlores'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id=alignement-droite>
et <?= htmlentities($bibliographie['autresFlores']) ?>
autre<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?>
flore<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?>
</a>
<?php } } ?><br />
<h4>Références</h4>
<?php if ($bibliographie['references'] == array()) { ?>
Aucune référence bibliographique
<?php } else { ?>
<?php foreach ($bibliographie['references'] as $reference) : ?>
<div> - <?= $reference['reference_html']; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresReferences'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id=alignement-droite>
et <?= $bibliographie['autresReferences'] ?>
autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
</a>
<?php } } ?>
<?php }?>
<hr class="nettoyage" />
<a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id=alignement-droite>
Voir +/Compléter
</a>
</div>
</div>
</div>
<div class="colonne">
<!-- Illustrations -->
<div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations">Illustrations</a>
</h3>
<div id="contenu-0" class="contenu">
<?php if (empty($illustrations['imageUrl']) == false) : ?>
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?='Illustration de '.$nom_retenu.' '.$nom_vernaculaire;?>"
src="<?=$illustrations['imageUrl']?>" alt="Image de <?=$nom_retenu?> issue du cel, du site photoflora ou de la flore de Coste"
style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
<?php else : ?>
<span class="absent" style="float:none; margin-left:55px">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</span>
<?php endif; ?> <br />
<a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Répartition -->
<div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition">Répartition</a>
</h3>
<div id="contenu-3" class="contenu">
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
<h4>Observations</h4>
<img src="<?=htmlentities($repartition['eflore'])?>" alt="Carte des observations" style="margin-left: 11px; width: 190px;" />
<? endif; ?>
<? if ($repartition['chorodep'] != null) : ?>
<h4>Répartition départementale</h4>
<img src="<?=htmlentities($repartition['chorodep'])?>" alt="Carte de répartition"/>
<? endif; ?>
<br/>
<a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Statut de protection -->
<div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut">Protection</a>
</h3>
<div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
<? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
Attention ce taxon est protégé dans les zones suivantes : <br />
<?php foreach($statut['statuts'] as $statut_zone) : ?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= @$statut_zone['zone_application']; ?><br />
</a>
<?php endforeach; ?>
<? } else if (@$statut['wikini']['statuts_de_protection'] != '' ) { ?>
<?= $statut['wikini']['statuts_de_protection'];?>
<? } ?>
<? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
Ce taxon est classé dans la liste rouge dans la catégorie : <br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
</a>
<? } ?>
<? if (@$statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
<span class="pas_de_protection">Pas de protection connue</span>
<? }?>
<br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div>
<hr class="nettoyage" />
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_synthese_niveau2.tpl.html
New file
0,0 → 1,459
<!-- Fichier intermédiaire -->
<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<script type="text/javascript">
//<![CDATA[
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>";
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>";
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>";
var pageWikiTaxon = "<?= strtoupper($infos['referentiel']); ?>nt<?= $infos['num_tax']; ?>";
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>";
//]]>
</script>
<div class="synthese">
<div class="colonne deuxtiers">
<!-- Description -->
<div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description">Description</a>
</h3>
<div id="contenu-1" class="contenu">
<h4><?= $description['titre']?></h4>
<? if ($description['description'] != '') : ?>
<? if($description['type'] == 'baseflor') : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['description']['type_bio'] != '') : ?>
<span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['form_vegetale'] != '') : ?>
<span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['chorologie'] != ''): ?>
<span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<? if ($description['description']['inflorescence'] != '') : ?>
<span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
<? endif; ?>
<? if ($description['description']['fruit'] != '') : ?>
<span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
<? endif; ?>
<? if ($description['description']['couleur_fleur'] != '') : ?>
<span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
<? endif; ?>
<? if ($description['description']['macule'] != '') : ?>
<span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
<? endif; ?>
<? if ($description['description']['floraison'] != '') : ?>
<span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
<? endif; ?>
</td>
<td>
<? if ($description['description']['sexualite'] != '') : ?>
<span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
<? endif; ?>
<?if ($description['description']['ordre_maturation'] != '') : ?>
<span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
<? endif; ?>
<? if ($description['description']['pollinisation'] != '') : ?>
<span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
<? endif; ?>
<? if ($description['description']['dissemination'] != '') : ?>
<span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
<? endif; ?>
</td>
</tr>
</table>
<? elseif($description['titre'] == 'Description de Coste') : ?>
<table class="desc">
<tr>
<td>
<?if ($description['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['description']['texte'] != '') : ?>
<?=$description['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['description']['floraison']; ?>
<?if ($description['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<? else : ?>
<?=$description['description']?>
<? endif;?>
<? endif;?><br />
<a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ethnobotanique -->
<div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique">Ethnobotanique</a>
</h3>
<div id="contenu-4" class="contenu">
<h4>Noms communs</h4>
<?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
Aucun nom vernaculaire<br /><br />
<? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['noms_communs'];} ?>
<?php } else { ?>
<?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
<div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
<?php endforeach; ?>
<?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $ethnobotanique['autresNomsVerna'] ?>
autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
</a><br />
<?php }?>
<?php }?>
<h4>Usages</h4>
<? if ($ethnobotanique['wikini']['usage'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['usage']; } ?>
<h4>Culture et arts</h4>
<? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
<br />
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ecologie -->
<div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie">Ecologie</a>
</h3>
<div id="contenu-8" class="contenu">
<h4><?= $ecologie['graph']['titre'] ?></h4>
<? if (empty($ecologie['graph']['description'])) : ?>
<? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? else : echo $ecologie['graph']['wikini']['ecologie'];?>
<? endif; ?>
<? else : ?>
<div class="fond_graphique">
<? if (isset($ecologie['graph']['description']['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
</object>
</div>
<? endif;?>
<? if (isset($ecologie['graph']['description']['sol_url'])) :?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" >
</object>
</div>
<? endif;?>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
Voir les références
</a>
</div>
<? endif; ?>
<? if (!empty($ecologie['phytosocio']['description'])) : ?>
<h4>Phytosociologie</h4>
<span class="gras">
<?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
<?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
</span> <br/>
<?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
<span class="italique">
<?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
</span>
<? endif; ?>
<br/>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Nomenclature -->
<div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature">Classification</a>
</h3>
<div id="contenu-6" class="contenu">
<h4>Taxons supérieurs</h4>
<?php if($nomenclature['taxons_sup'] != array()) { ?>
<?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon supérieur référencé </div>
<?php } ?>
<h4>Nom retenu</h4>
<div>
<div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate']; ?>
</div>
<?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
<div class="nom"> <span class="nomenclature_basionyme">Basionyme : <?= $nomenclature['basionyme_nom_retenu']; ?></span></div>
<?php } ?>
</div>
<h4>Synonymes</h4>
<?php if($nomenclature['synonymes'] == array()) { ?>
Aucun synonyme
<? } else { ?>
<?php foreach ($nomenclature['synonymes'] as $synonyme) : ?>
<div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet']; ?>
</div>
<?php endforeach; ?>
<?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
<a href="<?=$url;?>nomenclature" style="float:right;" class="lien_ouverture_onglet_parent" >et
<?= $nomenclature['autresSynonymesNbre'] ?>
autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
</a>
<?php }} ?>
<h4>Taxons inférieurs</h4>
<?php if($nomenclature['taxons_inf'] != array()) { ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon inférieur référencé </div>
<?php } ?>
<br/>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Bibliographie -->
<div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie">Bibliographie</a>
</h3>
<div id="contenu-2" class="contenu">
<?php if (isset($bibliographie['wikini'])) { ?>
<?= ($bibliographie['wikini']['biblio'] == '') ?
'<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Rajouter vos données.</a>'
: $bibliographie['wikini']['biblio'].
'<br /><br /><a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Compléter cette bibliographie</a>'; ?>
<?php } else { ?>
<h4>Flores</h4>
<?php if ($bibliographie['flores'] == array()) { ?>
Aucune flore indiquée
<?php } else { ?>
<?php foreach ($bibliographie['flores'] as $flore) : ?>
<div> - <?= $flore; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresFlores'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= htmlentities($bibliographie['autresFlores']) ?>
autre<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?>
flore<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?>
</a>
<?php } } ?><br />
<h4>Références</h4>
<?php if ($bibliographie['references'] == array()) { ?>
Aucune référence bibliographique
<?php } else { ?>
<?php foreach ($bibliographie['references'] as $reference) : ?>
<div> - <?= $reference['reference_html']; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresReferences'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $bibliographie['autresReferences'] ?>
autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
</a>
<?php } } ?>
<?php }?>
<hr class="nettoyage" />
<a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div><div class="colonne">
<!-- Illustrations -->
<div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations">Illustrations</a>
</h3>
<div id="contenu-0" class="contenu">
<?php if ($illustrations['imageUrl'] != '') : ?>
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?='Illustration de '.$nom_retenu.' '.$nom_vernaculaire;?>"
src="<?=$illustrations['imageUrl']?>" alt="Image de <?=$nom_retenu?> issue du cel, du site photoflora ou de la flore de Coste"
style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
<?php else : ?>
<span class="absent" style="float:none; margin-left:55px">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</span>
<?php endif; ?>
<br/>
<a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Répartition -->
<div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition">Répartition</a>
</h3>
<div id="contenu-3" class="contenu">
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
<h4>Observations</h4>
<img src="<?=htmlentities($repartition['eflore'])?>" alt="Carte des observations" style="margin-left: 11px; width: 190px;" />
<? endif; ?>
<? if ($repartition['chorodep'] != null) : ?>
<h4>Répartition départementale</h4>
<img src="<?=htmlentities($repartition['chorodep'])?>" alt="Carte de répartition"/>
<? endif; ?>
<br/>
<a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Statut de protection -->
<div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut">Protection</a>
</h3>
<div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
<? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
Attention ce taxon est protégé dans les zones suivantes : <br />
<?php foreach($statut['statuts'] as $statut_zone) : ?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut_zone['zone_application']; ?><br />
</a>
<?php endforeach; ?>
<? } else if ($statut['wikini']['statuts_de_protection'] != '' ) { ?>
<?= $statut['wikini']['statuts_de_protection'];?>
<? } ?>
<? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
Ce taxon est classé dans la liste rouge dans la catégorie : <br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
</a>
<? } ?>
<? if ($statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
<span class="pas_de_protection">Pas de protection connue</span>
<? }?>
<br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div>
<hr class="nettoyage" />
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_synthese_niveau3.tpl.html
New file
0,0 → 1,454
<!-- Fichier expert -->
<? $url = htmlentities('?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<script type="text/javascript">
//<![CDATA[
var urlTexteBrutSectionWikiTpl = "<?= Config::get('texteBrutSectionWikiTpl'); ?>";
var urlEditionSectionWikiTpl = "<?= Config::get('editionSectionWikiTpl'); ?>";
var urlTexteFormateSectionWikiTpl = "<?= Config::get('texteFormateSectionWikiTpl'); ?>";
var pageWikiTaxon = "<?= strtoupper($infos['referentiel']); ?>nt<?= $infos['num_tax']; ?>";
var urlPopup = "<?= Config::get('base_url_application_popup'); ?>";
//]]>
</script>
<div class="synthese">
<div class="colonne deuxtiers">
<!-- Nomenclature -->
<div id="synthese_nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-6">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>nomenclature">Classification</a>
</h3>
<div id="contenu-6" class="contenu">
<h4>Taxons supérieurs</h4>
<?php if($nomenclature['taxons_sup'] != array()) { ?>
<?php foreach($nomenclature['taxons_sup'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon supérieur référencé </div>
<?php } ?>
<h4>Nom retenu</h4>
<div>
<div class="nom retenu <?= ($nomenclature['nom_selectionne'] == $nomenclature['nom_retenu_formate']) ? 'surlignage' : '' ?>">
<?= $nomenclature['nom_retenu_formate']; ?>
</div>
<?php if($nomenclature['basionyme_nom_retenu'] != '') { ?>
<div class="nom"> <span class="nomenclature_basionyme">Basionyme : <?= $nomenclature['basionyme_nom_retenu']; ?></span></div>
<?php } ?>
</div>
<h4>Synonymes</h4>
<?php if($nomenclature['synonymes'] == array()) { ?>
Aucun synonyme
<? } else { ?>
<?php foreach ($nomenclature['synonymes'] as $synonyme) : ?>
<div class="nomenclature_synonyme nom<?= ($nomenclature['nom_selectionne'] == $synonyme['nom_sci_complet']) ? ' surlignage' : '' ?>">
<?= $synonyme['nom_sci_complet']; ?>
</div>
<?php endforeach; ?>
<?php if($nomenclature['autresSynonymesNbre'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement_droite">
et <?= $nomenclature['autresSynonymesNbre'] ?>
autre<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
synonyme<?= ($nomenclature['autresSynonymesNbre'] > 1) ? 's' : '' ?>
</a>
<?php }} ?>
<h4>Taxons inférieurs</h4>
<?php if($nomenclature['taxons_inf'] != array()) { ?>
<?php foreach($nomenclature['taxons_inf'] as $taxon) : ?>
<div>
<a title="Voir la fiche de ce nom" href="<?= $nomenclature['urls']->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['rang.libelle']; ?> : <?= $taxon['nom_sci']; ?>
</a>
</div>
<?php endforeach; ?>
<?php } else { ?>
<div>Aucun taxon inférieur référencé </div>
<?php } ?>
<a href="<?=$url;?>classification" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Description -->
<div id="synthese_description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>description">Description</a>
</h3>
<div id="contenu-1" class="contenu">
<h4><?= $description['titre']?></h4>
<? if ($description['description'] != '') : ?>
<? if($description['type'] == 'baseflor') : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($description['description']['type_bio'] != '') : ?>
<span class="titre">Type Biologique :</span> <?=$description['description']['type_bio']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['form_vegetale'] != '') : ?>
<span class="titre">Formation végétale :</span> <?=$description['description']['form_vegetale']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<? if ($description['description']['chorologie'] != ''): ?>
<span class="titre">Chorologie : </span> <?=$description['description']['chorologie']; ?><br/>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<? if ($description['description']['inflorescence'] != '') : ?>
<span class="titre">Inflorescence :</span> <?=$description['description']['inflorescence']; ?><br/>
<? endif; ?>
<? if ($description['description']['fruit'] != '') : ?>
<span class="titre">Fruit :</span> <?=$description['description']['fruit']; ?><br/>
<? endif; ?>
<? if ($description['description']['couleur_fleur'] != '') : ?>
<span class="titre">Couleur de la fleur : </span> <?=$description['description']['couleur_fleur']; ?><br/>
<? endif; ?>
<? if ($description['description']['macule'] != '') : ?>
<span class="titre">Macule :</span> <?=$description['description']['macule']; ?><br/>
<? endif; ?>
<? if ($description['description']['floraison'] != '') : ?>
<span class="titre">Floraison :</span> <?=$description['description']['floraison']; ?><br/>
<? endif; ?>
</td>
<td>
<? if ($description['description']['sexualite'] != '') : ?>
<span class="titre">Sexualité : </span> <?=$description['description']['sexualite']; ?><br/>
<? endif; ?>
<?if ($description['description']['ordre_maturation'] != '') : ?>
<span class="titre">Ordre de maturation : </span> <?=$description['description']['ordre_maturation']; ?><br/>
<? endif; ?>
<? if ($description['description']['pollinisation'] != '') : ?>
<span class="titre">Pollinisation : </span> <?=$description['description']['pollinisation']; ?><br/>
<? endif; ?>
<? if ($description['description']['dissemination'] != '') : ?>
<span class="titre">Dissémination : </span><?=$description['description']['dissemination']; ?><br/>
<? endif; ?>
</td>
</tr>
</table>
<? elseif($description['titre'] == 'Description de Coste') : ?>
<table class="desc">
<tr>
<td>
<?if ($description['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$description['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($description['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$description['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$description['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($description['description']['texte'] != '') : ?>
<?=$description['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($description['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$description['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$description['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$description['description']['floraison']; ?>
<?if ($description['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$description['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($description['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$description['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<? else : ?>
<?=$description['description'];?>
<? endif;?>
<? endif;?>
<br/>
<a href="<?=$url;?>description" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ecologie -->
<div id="synthese_ecologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ecologie">Ecologie</a>
</h3>
<div id="contenu-8" class="contenu">
<h4><?=$ecologie['graph']['titre']?></h4>
<? if (empty($ecologie['graph']['description'])) : ?>
<? if ($ecologie['graph']['wikini']['ecologie'] == '') :?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? else : echo $ecologie['graph']['wikini']['ecologie'];?>
<? endif; ?>
<? else : ?>
<div class="fond_graphique">
<? if (isset($ecologie['graph']['description']['climat_url'])) :?>
<span class="titre">caractéristiques climatiques</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['climat_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['climat_url_png']?>" >
</object>
</div>
<?endif;?>
<? if (isset($ecologie['graph']['description']['sol_url'])) :?>
<span class="titre">caractéristiques du sol</span>
<div class="graphique">
<object type="image/svg+xml" data="<?=$ecologie['graph']['description']['sol_url']?>"
class="svg" alt="<?=$ecologie['graph']['description']['sol_url_png']?>" >
</object>
</div>
<?endif;?>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent">
Voir les références
</a>
</div>
<? endif; ?>
<? if (!empty($ecologie['phytosocio']['description'])) : ?>
<h4>Phytosociologie</h4>
<span class="gras">
<?=$ecologie['phytosocio']['description'][0]['niveau.libelle']?> -
<?=$ecologie['phytosocio']['description'][0]['code_catminat']?>
</span> <br/>
<?=$ecologie['phytosocio']['description'][0]['syntaxon']?> -
<span class="italique">
<?=$ecologie['phytosocio']['description'][0]['physio_biotype']?>
</span>
<? endif; ?>
<br/>
<a href="<?=$url;?>ecologie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Ethnobotanique -->
<div id="synthese_ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>ethnobotanique">Ethnobotanique</a>
</h3>
<div id="contenu-4" class="contenu">
<h4>Noms communs</h4>
<?php if ($ethnobotanique['nomsVerna'] == array()) { ?>
Aucun nom vernaculaire
<? if ($ethnobotanique['wikini']['noms_communs'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['noms_communs'];} ?>
<?php } else { ?>
<?php foreach ($ethnobotanique['nomsVerna'] as $nom_verna) : ?>
<div> - <?= $nom_verna['nom_vernaculaire'].' ('.$nom_verna['code_langue'].')'; ?> </div>
<?php endforeach; ?>
<?php if($ethnobotanique['autresNomsVerna'] > 0) { ?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $ethnobotanique['autresNomsVerna'] ?>
autre<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
nom<?= ($ethnobotanique['autresNomsVerna'] > 1) ? 's' : '' ?>
</a><br />
<?php }?>
<?php }?>
<h4>Usages</h4>
<? if ($ethnobotanique['wikini']['usage'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['usage'];} ?>
<h4>Culture et arts</h4>
<? if ($ethnobotanique['wikini']['culture_et_arts'] == '') {?>
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" >
Rajouter vos informations.
</a>
<? } else { echo $ethnobotanique['wikini']['culture_et_arts']; } ?>
<br />
<a href="<?=$url;?>ethnobotanique" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Bibliographie -->
<div id="synthese_bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>bibliographie">Bibliographie</a>
</h3>
<div id="contenu-2" class="contenu">
<?php if (isset($bibliographie['wikini'])) { ?>
<?= ($bibliographie['wikini']['biblio'] == '') ?
'<a href="'.$url.'description" class="lien_ouverture_onglet_parent" >
Ajoutez votre bibliographie sur ce taxon</a>'
: $bibliographie['wikini']['biblio'] ?>
<?php } else { ?>
<h4>Flores</h4>
<?php if ($bibliographie['flores'] == array()) { ?>
Aucune flore indiquée
<?php } else { ?>
<?php foreach ($bibliographie['flores'] as $flore) : ?>
<div> - <?= $flore; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresFlores'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= htmlentities($bibliographie['autresFlores']) ?>
autre<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?>
flore<?= ($bibliographie['autresFlores'] > 1) ? 's' : '' ?>
</a>
<?php } } ?><br />
<h4>Références</h4>
<?php if ($bibliographie['references'] == array()) { ?>
Aucune référence bibliographique
<?php } else { ?>
<?php foreach ($bibliographie['references'] as $reference) : ?>
<div> - <?= $reference['reference_html']; ?> </div>
<?php endforeach; ?>
<?php if($bibliographie['autresReferences'] > 0) { ?>
<a href="<?=$url;?>nomenclature" class="lien_ouverture_onglet_parent" id="alignement-droite">
et <?= $bibliographie['autresReferences'] ?>
autre<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
référence<?= ($bibliographie['autresReferences'] > 1) ? 's' : '' ?>
</a>
<?php } } ?>
<?php }?>
<hr class="nettoyage" />
<a href="<?=$url;?>bibliographie" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div><div class="colonne">
<!-- Illustrations -->
<div id="synthese_illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>illustrations">Illustrations</a>
</h3>
<div id="contenu-0" class="contenu">
<?php if ($illustrations['imageUrl'] != '') : ?>
<img class="illustration_cel" data-num-nom="<?= $num_nom; ?>" title="<?='Illustration de '.$nom_retenu.' '.$nom_vernaculaire;?>"
src="<?=$illustrations['imageUrl']?>" alt="Image de <?=$nom_retenu?> issue du cel, du site photoflora ou de la flore de Coste"
style="margin-bottom: 0px; margin-left: -2px; width: 210px;"/>
<?php else : ?>
<span class="absent" style="float:none; margin-left:55px">
Pas de photo<br />
<a href="http://www.tela-botanica.org/page:cel"
title="Ajouter une photographie de <?= $nom_retenu ?> au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="contribuer">
Contribuer
</a>
</span>
<?php endif; ?>
<a href="<?=$url;?>illustrations" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Répartition -->
<div id="synthese_repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>repartition">Répartition</a>
</h3>
<div id="contenu-3" class="contenu">
<? if ($referentiel != "bdtxa" && $repartition['eflore'] != null) : ?>
<h4>Observations</h4>
<img src="<?=htmlentities($repartition['eflore'])?>" alt="Carte des observations" style="margin-left: 11px; width: 190px;" />
<? endif; ?>
<? if ($repartition['chorodep'] != null) : ?>
<h4>Répartition départementale</h4>
<img src="<?=htmlentities($repartition['chorodep'])?>" alt="Carte de répartition"/>
<? endif; ?>
<br/>
<a href="<?=$url;?>repartition" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
<!-- Statut de protection -->
<div id="synthese_statut" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">
<a class="titreOnglet lien-onglet-synthese" href="<?=$url;?>statut">Protection</a>
</h3>
<div id="contenu-7" class="contenu <?= (isset($statut['statuts'][0]) || isset($statut['liste_rouge'][0])) ? 'attention' : ''; ?>">
<? if (!empty($statut['statuts']) && isset($statut['statuts'][0])) { ?>
Attention ce taxon est protégé dans les zones suivantes : <br />
<?php foreach($statut['statuts'] as $statut_zone) : ?>
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut_zone['zone_application']; ?><br />
</a>
<?php endforeach; ?>
<? } else if ($statut['wikini']['statuts_de_protection'] != '' ) { ?>
<?= $statut['wikini']['statuts_de_protection'];?>
<? } ?>
<? if (!empty($statut['liste_rouge']) && isset($statut['liste_rouge'][0])) { ?>
Ce taxon est classé dans la liste rouge dans la catégorie : <br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" >
<?= $statut['liste_rouge'][0][num_categorie].' - '.$statut['liste_rouge'][0][categorie]; ?><br />
</a>
<? } ?>
<? if ($statut['wikini']['statuts_de_protection'] == '' && !isset($statut['statuts'][0]) && !isset($statut['liste_rouge'][0])) {?>
<span class="pas_de_protection">Pas de protection connue</span>
<? }?>
<br />
<a href="<?=$url;?>statut" class="lien_ouverture_onglet_parent" id="alignement-droite">
Voir +/Compléter
</a>
</div>
</div>
</div>
<hr class="nettoyage" />
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_nomenclature.tpl.html
New file
0,0 → 1,214
<div id="nomenclature">
<h2>Nom retenu <?php if (trim($date_maj) != "") : ?> (taxon modifié le : <?= $date_maj ?>)<? endif; ?></h2>
<div style="float:right">
<div class="legende">
<b>Légende</b><br />
<span class="legende_nom_retenu couleur_legende" style="margin:8px 5px 0 0"></span><span>Nom sélectionné</span>
<br />
<div class="imagettePlus"></div>Afficher la biblio
<br />
<div class="imagetteMoins"></div>Masquer la biblio
</div>
<div style="padding:5px 10px; display:none" id="plieur">
<a class="lien_tout_deplier" href="#">Tout déplier</a> | <a class="lien_tout_plier" href="#">Tout plier</a>
</div>
</div>
<div class="onglet_marge_gauche">
<span class="nom retenu <?= ($nom_selectionne == $nom_retenu_formate) ? 'surlignage' : '' ?>">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($nom_retenu_nn,'nom_scientifique'); ?>">
<?= $nom_retenu_formate ?>
</a>
</span>
</div>
<?php if($basionyme_nom_retenu != null && $basionyme_nom_retenu != '') { ?>
<div class="nom onglet_marge_gauche basionyme_complet">
Basionyme :
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($basionyme_nom_retenu_nn,'nom_scientifique'); ?>">
<?= $basionyme_nom_retenu ?>
</a>
</div>
<?php } ?>
<?php if($hybride_parent_01 != null && $hybride_parent_01 != '') { ?>
Hybride de :<br />
Parent 1 : <span class="nom">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($hybride_parent_01_nn,'nom_scientifique'); ?>">
<?= $hybride_parent_01 ?>
</a>
</span><br />
Parent 2 : <span class="nom">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($hybride_parent_02_nn,'nom_scientifique'); ?>">
<?= $hybride_parent_02 ?>
</a>
</span>
<?php } ?>
<h2>Synonymes</h2>
<?php if(is_array($synonymes['noms']) && count($synonymes['noms']) > 0) { ?>
<ul>
<?php foreach ($synonymes['noms'] as $id => $synonyme) : ?>
<li class="item_nomenclature">
<span class="nom<?= ($nom_selectionne == $synonyme['nom_sci']) ? ' surlignage' : '' ?>">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($id,'nom_scientifique'); ?>"> <?= $synonyme['nom_sci_complet'] ?></a>
</span>
<span class="nom basionyme_complet">
<a title="cliquez pour accéder à la fiche de ce taxon" href="<?= $urls->obtenirUrlFiche($synonyme['basionyme.id'],'nom_scientifique'); ?>">
<?= isset($synonyme['basionyme_html_complet']) ? "Basionyme : ".$synonyme['basionyme_html_complet'] : ''; ?>
</a>
</span>
</li>
<?php endforeach; ?>
</ul><hr class="nettoyage" />
<?php } else { ?>
<h3 class="aucune_info"> Aucun synonyme référencé pour ce nom </h3>
<?php } ?>
<? if (isset($flores_synonymes)) : ?>
<h2>Dénomination dans les flores usuelles</h2>
<?php if(is_array($flores_synonymes) && count($flores_synonymes) > 0) { ?>
<ul>
<?php foreach ($flores_synonymes as $num_nom_syn => $infos_flore) : ?>
<?php foreach ($infos_flore as $code => $flore) : ?>
<li class="item_nomenclature">
<div>
Dans la flore <em><?= $flore['nom_flore'] ?></em>,
ce taxon porte le nom de <em><?= $flore['nom_sci'] ?></em>
et le code <b><?= $flore['id'] ?></b><br />
</div>
</li>
<?php endforeach; ?>
<?php endforeach; ?>
</ul><hr class="nettoyage" />
<?php } else { ?>
<h3 class="aucune_info"> Aucune information floristique référencée pour ce nom </h3>
<?php } ?>
<?php if($num_type != null) { ?>
<h3> Autres </h3>
<!-- On utilise une liste au cas où d'autres informations viendraient se greffer à cet endroit -->
<ul>
<li class="item_nomenclature"> Numéro du type : <?= $num_type ?></li>
</ul>
<?php } ?>
<? endif; ?>
<hr class="nettoyage" />
<div class="conteneur_lien_metadonnees">
<?= $synonymes['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $synonymes['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<a class="acceder-outil gauche" href="http://referentiels.tela-botanica.org/referentiel/index.php?ref=<?=$referentiel;?>&module=FicheTaxon&num_nom=<?=$nom_retenu_nn;?>">
Consultez ce nom dans le référentiel en cours de mise à jour</a><br /><br />
<div class="acceder-outil gauche">Recherchez ce nom sur les sites
<a href="http://inpn.mnhn.fr/espece/listeEspeces/<?=htmlentities($nom_retenu)?>/">
<img src="<?=$baseUrlIco?>presentations/images/sites/inpn.png" alt="INPN" title="Rechercher dans Inventaire National du Patrimoine Naturel" />
</a>
<a href="http://www.theplantlist.org/tpl/search?q=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/tpl.png" alt="The Plant List"
title="Rechercher dans The Plant List"/>
</a>
<a href="http://www.ipni.org/ipni/simplePlantNameSearch.do?find_wholeName=<?=htmlentities($nom_retenu)?>&amp;output_format=normal&amp;query_type=by_query&amp;back_page=query_ipni.html">
<img src="<?=$baseUrlIco?>presentations/images/sites/ipni.png" alt="IPNI" title="Rechercher dans IPNI"/>
</a>
<a href="http://plants.jstor.org/search?plantName=%22<?=htmlentities($nom_retenu)?>%22&amp;syn=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/jstor.png" alt="JSTOR Plant Science" title="Rechercher dans JSTOR Plant Science" />
</a>
<a href="http://www.anbg.gov.au/cgi-bin/apni?TAXON_NAME=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/anbg.png" alt="Australian Plant Name Index" title="Rechercher dans Australian Plant Name Index" />
</a>
<a href="http://sweetgum.nybg.org/vh/specimen_list.php?QueryName=BasicQuery&amp;QueryPage=http%3A%2F%2Fsciweb.nybg.org%2Fscience2%2Fvii2.asp&amp;Restriction=NybRecordType+%3D+%27Specimen%27&amp;StartAt=1&amp;any=SummaryData%7CAdmWebMetadata&amp;QueryOption=any&amp;Submit=Search&amp;QueryTerms=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/nybg.png" alt="NYBG Virtual Herbarium" title="Rechercher dans NYBG Virtual Herbarium" />
</a>
<a href="http://collections.mnh.si.edu/search/botany/?qt=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/si.png" alt="Type Specimen Register of the U.S. National Herbarium" title="Rechercher dans Type Specimen Register of the U.S. National Herbarium" />
</a>
<a href="http://herbarium.univie.ac.at/database/search.php?taxon=<?=htmlentities($nom_retenu)?>&amp;search=1">
<img src="<?=$baseUrlIco?>presentations/images/sites/vha.png" alt="Virtual Herbaria Austria" title="Rechercher dans Virtual Herbaria Austria" />
</a>
<a href="http://swbiodiversity.org/seinet/taxa/index.php?taxon=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/seinet.png" alt="SEINet" title="Rechercher dans SEINet" />
</a>
<a href="http://www.ville-ge.ch/musinfo/bd/cjb/africa/resultat.php?efFamille=&amp;projet%5B%5D=FSA&amp;projet%5B%5D=FTA&amp;projet%5B%5D=FNA&amp;projet%5B%5D=BDM&amp;langue=en&amp;pbRecherche=Rechercher&amp;efNom=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/cjb.png" alt="African Plants Database" title="Rechercher dans African Plants Database du Jardin Botanique de Genève" />
</a>
<a href="http://www.tropicos.org/NameSearch.aspx?name=<?=htmlentities($nom_retenu)?>">
<img src="<?=$baseUrlIco?>presentations/images/sites/tropicos.png" alt="Tropicos" title="Rechercher dans Tropicos" />
</a>
<a href="http://www.sfo-asso.com/pages/connaissances.php?parent=6&id=195">
<img src="<?=$baseUrlIco?>presentations/images/sites/sfo.png" alt="SFO" title="Rechercher dans Société Française d'Orchidophilie" />
</a>
<a href="http://coldb.mnhn.fr/Consultation">
<img src="<?=$baseUrlIco?>presentations/images/sites/mnhn.png" alt="MNHN" title="Rechercher dans Muséum national d'Histoire naturelle" />
</a>
<? if ($referentiel == "bdtxa") : ?>
<a href="http://collections.antilles.inra.fr/initCard.do?idEntityValue1=<?=htmlentities($nom_retenu);?>&idEntityValue2=&idEntityValue3=&idEntity=21">
<img src="<?=$baseUrlIco?>presentations/images/sites/antilles.png" alt="INRA Antilles" title="Rechercher dans collections INRA Antilles" />
</a>
<? endif; ?>
</div>
<hr class="nettoyage" />
<span class="aide_wikini"> Partagez vos infos complémentaires sur ce nom, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="nomenclature">
<?=$wikini['nomenclature']?>
</div>
</div>
<h2>Place du taxon dans la classification APG III</h2>
<table class="liste_taxons_superieurs">
<tr>
<th>Rang</th><th>Nom Scientifique</th><th>Num Nom</th>
</tr>
<?php if ($taxons_sup != array()) : ?>
<?php foreach ($taxons_sup as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td><a title="Voir la fiche de ce nom" href="<?= $urls->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['nom_sci'] ?>
</a>
</td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
<tr class='surlignage'>
<td><?= $taxon_courant['rang.libelle'] ?></td>
<td><?= $taxon_courant['nom_sci'] ?></td>
<td><?= $taxon_courant['num_nom'] ?></td>
</tr>
<?php if ($taxons_inf != array()) : ?>
<?php foreach($taxons_inf as $taxon) : ?>
<tr>
<td><?= $taxon['rang.libelle'] ?></td>
<td>
<a title="Voir la fiche de ce nom" href="<?= $urls->obtenirUrlFiche($taxon['num_nom'],'nom_scientifique', $taxon['nom_sci']); ?>">
<?= $taxon['nom_sci'] ?>
</a>
</td>
<td><?= $taxon['num_nom'] ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<div class="conteneur_lien_metadonnees">
<?= $synonymes['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $synonymes['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<script type="text/Javascript">
$('#plieur').show();
gestionBiblio($('#nomenclature'));
</script>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_accueil_niveau1.tpl.html
New file
0,0 → 1,68
<!--
// inclusion du dictionnaire si celui-ci est installé, à décommenter en production pour l'activer
// le script est inclus ici pour ne déclencher le dictionnaire que dans la recherche
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.config.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.js"></script>
<link media="screen" href="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.css" type="text/css" rel="stylesheet" />
-->
<script type="text/Javascript">
var ongletsDefaut = [<?= $blocs; ?>];
var base_url_application_onglets = "<?= $base_url_onglets; ?>";
</script>
<div id="bloc-fiche" class="importance4">
<h1><span class="nomenclature"><?=$nom_retenu_html?></span>
<span class="famille nomenclature" style="float: right;"><?=($famille != '') ? $famille : '';?></span>
<br/>
<?php if($nom_appele_html): ?>
<span class="redirige_depuis">Nom retenu du nom recherché <strong><?= $nom_appele_html ?></strong></span>
<br/>
<?php endif; ?>
<span class="vernaculaire"><?=$nom_vernaculaire;?></span></h1>
<hr class="nettoyage" />
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li id="onglet_synthese" title="<?=$i18n['onglet-descr-synth']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" href="<?=$url;?>synthese">
<?=$i18n["onglet-nom-synth"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>description">
<?=$i18n["onglet-nom-descr"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet"href="<?=$url;?>ethnobotanique">
<?=$i18n["onglet-nom-ethnobota"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ecologie">
<?=$i18n["onglet-nom-eco"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>nomenclature">
<?=$i18n["onglet-nom-classif"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>bibliographie">
<?=$i18n["onglet-nom-biblio"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>illustrations">
<?=$i18n["onglet-nom-illustra"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>repartition">
<?=$i18n["onglet-nom-repart"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>statut">
<?=$i18n["onglet-nom-protect"]?></a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
<span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_accueil_niveau2.tpl.html
New file
0,0 → 1,68
<!--
// inclusion du dictionnaire si celui-ci est installé, à décommenter en production pour l'activer
// le script est inclus ici pour ne déclencher le dictionnaire que dans la recherche
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.config.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.js"></script>
<link media="screen" href="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.css" type="text/css" rel="stylesheet" />
-->
<script type="text/Javascript">
var ongletsDefaut = [<?= $blocs; ?>];
var base_url_application_onglets = "<?= $base_url_onglets; ?>";
</script>
<div id="bloc-fiche" class="importance4">
<h1><span class="nomenclature"><?=$nom_retenu_html?></span>
<span class="famille nomenclature" style="float: right;"><?=($famille != '') ? $famille : '';?></span>
<br/>
<?php if($nom_appele_html): ?>
<span class="redirige_depuis">Nom retenu du nom recherché <strong><?= $nom_appele_html ?></strong></span>
<br/>
<?php endif; ?>
<span class="vernaculaire"><?=$nom_vernaculaire;?></span></h1>
<hr class="nettoyage" />
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li title="<?=$i18n['onglet-descr-synth']?>" id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" href="<?=$url;?>synthese">
<?=$i18n["onglet-nom-synth"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>description">
<?=$i18n["onglet-nom-descr"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ethnobotanique">
<?=$i18n["onglet-nom-ethnobota"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ecologie">
<?=$i18n["onglet-nom-eco"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>nomenclature">
<?=$i18n["onglet-nom-classif"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>bibliographie">
<?=$i18n["onglet-nom-biblio"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>illustrations">
<?=$i18n["onglet-nom-illustra"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>repartition">
<?=$i18n["onglet-nom-repart"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>statut">
<?=$i18n["onglet-nom-protect"]?></a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
<span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_accueil_niveau3.tpl.html
New file
0,0 → 1,68
<!--
// inclusion du dictionnaire si celui-ci est installé, à décommenter en production pour l'activer
// le script est inclus ici pour ne déclencher le dictionnaire que dans la recherche
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.config.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.js"></script>
<link media="screen" href="http://www.tela-botanica.org/commun/dictionnaire/scripts/dictionnaire.css" type="text/css" rel="stylesheet" />
-->
<script type="text/Javascript">
var ongletsDefaut = [<?= $blocs; ?>];
var base_url_application_onglets = "<?= $base_url_onglets; ?>";
</script>
<div id="bloc-fiche" class="importance4">
<h1><span class="nomenclature"><?=$nom_retenu_html?></span>
<span class="famille nomenclature" style="float: right;"><?=($famille != '') ? $famille : '';?></span>
<br/>
<?php if($nom_appele_html): ?>
<span class="redirige_depuis">Nom retenu du nom recherché <strong><?= $nom_appele_html ?></strong></span>
<br/>
<?php endif; ?>
<span class="vernaculaire"><?=$nom_vernaculaire;?></span></h1>
<hr class="nettoyage" />
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel='.Registre::get('parametres.referentiel').'&niveau='.Registre::get('parametres.niveau').'&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li title="<?=$i18n['onglet-descr-synth']?>" id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" href="<?=$url;?>synthese">
<?=$i18n["onglet-nom-synth"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-classif']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>nomenclature">
<?=$i18n["onglet-nom-classif"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-descr']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>description">
<?=$i18n["onglet-nom-descr"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-eco']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ecologie">
<?=$i18n["onglet-nom-eco"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-ethnobota']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ethnobotanique">
<?=$i18n["onglet-nom-ethnobota"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-biblio']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>bibliographie">
<?=$i18n["onglet-nom-biblio"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-illustra']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>illustrations">
<?=$i18n["onglet-nom-illustra"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-repart']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>repartition">
<?=$i18n["onglet-nom-repart"]?></a>
</li>
<li title="<?=$i18n['onglet-descr-protect']?>" class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>statut">
<?=$i18n["onglet-nom-protect"]?></a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
<span><a class="lien-onglet lien-statique lien_retour_synthese" href="<?=$url;?>synthese">Retour à l'onglet Synthèse</a></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_bibliographie.tpl.html
New file
0,0 → 1,36
<div id="bibliographie">
<? if (isset($flores)) : ?>
<h2> Flores </h2>
<ul class="liste_biblio_flores">
<?php foreach($flores['liste_flores'] as $flore) : ?>
<li class="item_biblio_flore"> <?= $flore ?></li>
<?php endforeach; ?>
</ul><hr class="nettoyage" />
<div class="conteneur_lien_metadonnees">
<?= $flores['meta']['titre']?>
<a class="lien_metadonnees lien_popup" href="<?= $flores['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<? endif; ?>
<h2> Références bibliographiques </h2>
<ul class="references_bibliographiques">
<?php foreach($bibliobota['references'] as $reference) : ?>
<li><?=$reference['reference_html']?></li>
<?php endforeach; ?>
</ul>
<a class="acceder-outil" href="http://www.tela-botanica.org/page:accueil_biblio">Participez aux projets collaboratifs liés à la bibliothèque</a>
<div class="conteneur_lien_metadonnees">
<?= $bibliobota['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $bibliobota['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<h2> Bibliographie collaborative : </h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini"> Participez à la rédaction collaborative de cette bibliograpĥie, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="biblio">
<?=$wikini['biblio']?>
</div>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_repartition.tpl.html
New file
0,0 → 1,63
<div id="repartition">
<? if (isset($repartition)) : ?>
<div id="repartition">
<h2>Chorologie départementale</h2>
<object class="chorodep_svg" type="image/svg+xml" data="<?=$repartition['svgUrl']?>" class="svg" alt="<?=$repartition['pngUrl']?>">
</object>
<div id="legende" style="position:absolute; margin-top:-250px;margin-left:20px;">
<h3>Légende</h3><br />
<? foreach ($repartition['legende'] as $id => $details) :?>
<div style="clear:left; ">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div class="texte_legende_repartition"><b><?=$details['nom']?></b></div>
</div>
<? endforeach; ?>
</div>
<div class="conteneur_lien_metadonnees">
<?=$repartition['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $repartition['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<a href="http://www.tela-botanica.org/page:liste_projets?id_projet=9&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>
<object id="repartition_observations" type="text/html" data="<?=$moissonnage['mapUrl']?>" class="svg" alt="<?=$moissonnage['mapUrl']?>" style="width:620px; height:620px; overflow:none;">
</object>
<div id="legende" style="padding:15px;margin-top:-25px;">
<? foreach ($moissonnage['legende'] as $id => $details) :?>
<div style="clear:left;">
<div class="bloc_legende_repartition" style="background:<?=$details['couleur']?>"></div>
<div ><b><?=$details['nom']?> : </b><?=$details['description']?></div>
</div>
<? endforeach; ?>
</div>
<div id="carte_telechargement">
<span>Télécharger la carte au format </span>
<a href="<?=$moissonnage['mapTelechargementUrls']['png']; ?>">png</a>&nbsp;
<a href="<?=$moissonnage['mapTelechargementUrls']['html']; ?>">html</a>
</div>
</div>
<hr class="nettoyage" />
<?endif;?>
<div id="cel">
<h2>Observations du carnet en ligne</h2>
<iframe style="width:100%;height:500px" src="http://www.tela-botanica.org/widget:cel:cartoPoint?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>"></iframe>
<a href="http://www.tela-botanica.org/widget:cel:cartoPoint?num_taxon=<?=$widget['nt']?>&referentiel=<?=$widget['referentiel']; ?>">Consultez les données du carnet en ligne sur le widget carto</a>
<hr class="nettoyage" />
<div>
<a href="http://www.tela-botanica.org/widget:cel:saisie?num_nom=<?=$widget['nn']?>&referentiel=<?=$widget['referentiel'] ?>" title="Ajouter une observation au moyen du Carnet en Ligne"
onclick="window.open(this.href); return false;" class="acceder-outil">
Rajouter une observation
</a>
</div>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_accueil.tpl.html
New file
0,0 → 1,51
<script type="text/Javascript">
var ongletsDefaut = [<?= $blocs; ?>];
</script>
<div id="bloc-fiche" class="importance1">
<h1><span ><?=$nom_retenu?></span><span class="famille" style="float: right;"><?=($famille != '') ? $famille : '';?></span></h1>
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<? $url = htmlentities('index.php?referentiel=bdtfx&niveau=1&module=fiche&action=fiche&num_nom='.$num_nom.'&type_nom='.$type_nom.'&nom='.$nom.'&onglet=');?>
<ul id="onglets" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li id="onglet_synthese" class="ui-state-default ui-corner-top <?= ($onglet == 'synthese') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet lien-statique" href="<?=$url;?>synthese">Accueil</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'illustrations') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>illustrations">Illustrations</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'description') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>description">Description</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'bibliographie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>bibliographie">Bibliographie</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'repartitio') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>repartition">Répartition</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'ethnobotanique') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ethnobotanique">Ethnobotanique</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'classification') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>classification">Classification</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'nomenclature') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>nomenclature">Nomenclature</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'statut') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>statut">Statut de protection</a>
</li>
<li class="ui-state-default ui-corner-top <?= ($onglet == 'ecologie') ? 'ui-tabs-selected ui-state-active' : '' ;?>">
<a class="lien-onglet" href="<?=$url;?>ecologie">Ecologie</a>
</li>
<li id="ongletEtPlus" class="ui-state-default ui-corner-top">
<a id="lienOngletEtPlus" class="lien-statique" href="#etPlus" title="Ajouter d'autres fiches">
+
</a>
</li>
</ul>
<span id="conteneurMenuOnglets"></span>
</div>
<div id="zone_contenu_fiche">
<?= $contenu_onglet ?>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_illustrations.tpl.html
New file
0,0 → 1,192
<div id="illustrations">
<? if (isset($coste)) : ?>
<h2>Illustration de la flore de Coste</h2>
<div id="illustrations-coste">
<?php if (empty($coste['images']) == false) :?>
<ul class="liste-illustrations">
<?php foreach($coste['images'] as $url) : ?>
<li>
<a class="lien-image-coste" href="<?= $url; ?>" >
<img src="<?= $url; ?>" alt="illustration de la flore de coste" />
</a>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<div class="conteneur_lien_metadonnees">
<?= $coste['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $coste['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<?php else : echo ' <br/> Aucune illustration. <br/> <br/>'; endif;?>
</div>
<? endif; ?>
 
<h2>Flora Data - Organes</h2>
<? if (isset($organes)) : ?>
 
<div id="illustrations-organes">
<? if (empty($organes) == false) :?>
<ul class="liste-illustrations">
<? foreach($organes as $tag => $image) : ?>
<? if ($image && $image['binaire.href']) : ?>
<li class="organe-moyen">
<?= ucfirst($tag); ?>
<a class="lien-image-cel" href="/eflore/consultation/popup.php?module=popup-illustrations&action=fiche&referentiel=bdtfx&id=<?= $image['id_image'] ?>">
<img title="<?= $image['id_image'] ?>" data-num-nom="<?= $image['id_image'] ?>"
alt="Photographie n°<?= $image['id_image'] ?> du taxon <?= $image['observation']['determination.ns'] ?>"
src="<?= $image['binaire.href'] ?>" />
</a>
</li>
<? endif ?>
<? endforeach ?>
</ul>
<? endif ?>
<hr class="nettoyage" />
<a class="acceder-outil-vert lien-externe"
href="<?= $base_url_widget ?>?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=Ajout d'une photo de <?= $nomComplet ?>"
title="Ajouter une photographie au moyen du Carnet en Ligne">
Ajouter une photo
</a>
<? if (empty($organes) == false) : ?>
<span class="separator"></span>
<a class="acceder-outil-vert lien-externe" href="<?= $base_url_del ?>?masque.ns=<?= $nomComplet ?>#page_recherche_images~3"
title="Participer au choix des photos d'organes">
Participer au choix
</a>
<? endif ?>
<br/><br/>
</div>
<? endif ?>
 
<!-- sous-squelette -->
<?= $illustrationsOrganes ?>
<br/>
 
<? if (isset($caracteres)) : ?>
<h2>Flora Data - Aide à la détermination</h2>
 
<div id="illustrations-caracteres">
<? if (empty($caracteres) == false) : ?>
<ul class="liste-illustrations">
<? foreach($caracteres as $image) : ?>
<li class="caractere-moyen">
<? if ($image != null) : ?>
<a class="lien-image-cel" href="/eflore/consultation/popup.php?module=popup-illustrations&action=fiche&referentiel=bdtfx&id=<?= $image['id_image'] ?>">
<img title="<?= $image['id_image'] ?>" data-num-nom="<?= $image['id_image'] ?>"
alt="Photographie n°<?= $image['id_image'] ?> du taxon <?= $image['observation']['determination.ns'] ?>"
src="<?= $image['binaire.href'] ?>" />
</a>
<? endif ?>
</li>
<? endforeach ?>
</ul>
<? endif ?>
<hr class="nettoyage" />
<a class="acceder-outil-vert lien-externe"
href="<?= $base_url_widget ?>?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=Ajout d'une photo de <?= $nomComplet ?>"
title="Ajouter une photographie au moyen du Carnet en Ligne">
Ajouter une photo
</a>
<? if (empty($caracteres) == false) : ?>
<span class="separator"></span>
<a class="acceder-outil-vert lien-externe" href="<?= $base_url_del ?>?masque.ns=<?= $nomComplet ?>#page_recherche_images~1"
title="Participer au choix des photos d'organes">
Participer au choix
</a>
<? endif ?>
<br/><br/>
</div>
<br/>
<? endif ?>
 
<? if (isset($cel)) : ?>
<h2>Flora Data - Tout</h2>
 
<div id="illustrations-cel">
<?php if (isset($cel['images'])) : ?>
<ul class="liste-illustrations">
<?php foreach($cel['images'] as $id => $image) : ?>
<li><div>
<a class="lien-image-cel" href="<?=$image['urlDetailImg'];?>">
<img src="<?= $image['src']; ?>" alt="Photographie n°<?=$id;?> du taxon <?=$image['nomSci']?>" data-num-nom="<?=$id;?>" title="<?=$id;?>" />
</a>
<p>
<strong class="localisation"><?= $image['station']; ?></strong> - <strong class="date-creation"><?= $image['date']; ?></strong><br />
par
<? if ($image['auteur.id']) : ?>
<a target="_blank" title="Voir le profil de cet utilisateur (nécessite d'être identifié)" href="<?= $image['urlProfil']; ?>">
<strong class="auteur"><?= $image['auteur'] ?></strong>
</a>&nbsp;&nbsp;
<a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)" class="mailto" href="<?= $image['urlContact']; ?>">
(Contacter ...)
</a>
<? else : ?>
<strong class="auteur"><?= $image['auteur'] ?></strong>
&nbsp;&nbsp;(profil indisponible)
<? endif ?><br />
<a title="Proposer une autre détermination via l'outil identiplante" target="_blank" class="signaler-mauvaise-identification" href="<?= $image['urlMauvaiseIdentification']; ?>">
Mauvaise identification ?
</a>
</p>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<hr class="nettoyage" />
</div>
<div class="conteneur_lien_metadonnees">
<?= $cel['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $cel['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<a class="acceder-outil-vert lien-externe"
href="<?= $base_url_widget ?>?referentiel=bdtfx&num_nom=<?= $nnr ?>&titre=Ajout d'une photo de <?= $nomComplet ?>"
title="Ajouter une photographie au moyen du Carnet en Ligne">
Ajouter une photo
</a>
<br/><br/><br/>
<? endif ?>
<? if (isset($photoflora)) : ?>
<h2>Photoflora </h2>
<p id="intro-photoflora">
Ces images sont fournies par le site <a href="http://photoflora.free.fr/" class="lien-externe">Photoflora</a>.<br>
Des informations complémentaires sur l'auteur, la localité... sont diponibles sur la
<a href="http://photoflora.free.fr/FiTax.php?NumTaxon=<?= $nt ?>" class="lien-externe">
page du taxon <span class="nom-sci"><?= $nomSciRetenu ?></span>
</a>.
</p>
<div id="illustrations-photoflora">
<?php if (isset($photoflora['images'])) : ?>
<ul class="liste-illustrations">
<?php foreach($photoflora['images'] as $id => $image) : ?>
<li>
<a class="lien-externe img-cadre" href="http://photoflora.free.fr/UneFoto.php?NumTaxon=<?= $nt ?>&NumPhoto=<?= $id ?>.jpg">
<div class="img-cadre-fond">
<img src="<?= $image['src'] ?>" alt="Photographie n°<?=$id;?> du taxon <?= $image['nomSci']; ?>" />
</div>
</a>
<p>
à <strong class="localisation"><?= $image['station']; ?></strong><br />
le <strong class="date-creation"><?= $image['date']; ?></strong><br />
par <strong class="auteur"><?= $image['auteur']; ?></strong>
</p>
</li>
<?php endforeach; ?>
</ul>
<hr class="nettoyage" />
<? endif; ?>
</div>
<div class="conteneur_lien_metadonnees">
<?= $photoflora['meta']['citation']?>
<a class="lien_metadonnees lien_popup" href="<?= $photoflora['meta']['url']; ?>">Voir toutes les metadonnées</a>
</div>
<?php endif; ?>
 
<script type="text/javascript">
$.event.trigger('ongletIllustrationsCharge');
</script>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_pied_page.tpl.html
New file
0,0 → 1,61
<div class="importance1">
<div class="gauche telechargements_pdf">
<h2>Téléchargements</h2>
<div class="conteneur_telechargements">
<?= $export_pdf; ?>
</div>
<h2>Fiche mobile SmartFlore :</h2>
<div class="conteneur_permalien_mobile">
<span>Fiche mobile SmartFlore :</span>
<span class="description">
<a class="lien_externe" href="<?= $mobile; ?>" title="voir la version mobile de ce taxon (s'ouvre dans une nouvelle fenêtre)">
Version nomade
</a>
</span>
</div>
<div class="conteneur_permalien_mobile">
<span>QR code :</span>
<a class="lien_telechargement_qr_code" href="<?= $qr_code_png; ?>">QR code</a>
</div>
</div>
<div class="droite infos_liens_permanents">
<h2>Informations :</h2>
<div class="conteneur_permalien">Numéro nomenclatural : <?= $nn ?></div>
<div class="conteneur_permalien">Numéro taxonomique : <?= $nt ?></div>
<h2>Liens permanents :</h2>
<div class="conteneur_permalien">
<span>Nom sélectionné :</span>
<span class="conteneur_permalien">
<a class="lien_externe" href="<?=htmlentities($permalien_num_nom)?>" title="Lien permanent vers <?=$nom_retenu;?>">
<?=htmlentities($permalien_num_nom)?>
</a>
</span>
</div>
<!-- <div class="conteneur_permalien">
<span class="titre_lien_permanent">Taxon :</span>
<span>
<a class="lien_externe" href="<?=htmlentities($permalien_taxon)?>" title="Lien permanent vers ce taxon">
<?=htmlentities($permalien_taxon)?>
</a>
</span>
</div> -->
<div class="conteneur_permalien">
<span>Fiche wikipedia :</span>
<span class="description conteneur_permalien">
<a class="lien_externe" href="<?=htmlentities($wikipedia['lien'])?>" title="voir la page de ce taxon sur wikipedia (s'ouvre dans une nouvelle fenêtre)">
<?=htmlentities($wikipedia['lien'])?>
</a>
</span>
</div>
<div class="conteneur_permalien">
<span>Fiche wikini :</span>
<span class="description conteneur_permalien">
<a class="lien_externe" href="<?=htmlentities($wiki)?>" title="voir la page de ce taxon sur le wiki flora (s'ouvre dans une nouvelle fenêtre)">
<?=htmlentities($wiki)?>
</a>
</span>
</div>
</div>
<hr class="nettoyage" />
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_pdf_lien.tpl.html
New file
0,0 → 1,35
<!-- cadre de bas de la fiche contient les liens pour export pdf. -->
<script>
<!--
$(document).ready(function(){
$('#bloc_export_choix').hide();
$('#export_choix').click(function(event) {
$('#bloc_export_choix').slideToggle();
event.preventDefault();
return false;
});
});
-->
</script>
<div>
<a href="<?=$lien?>" class="lien_export_pdf"> Télécharger la fiche au format PDF </a>
<div class="avertissement_telechargement">(Peut durer jusqu'à 30 secondes)</div><br />
<a href="" id="export_choix" name="export_choix">Personnaliser la fiche</a>
<div id="bloc_export_choix">
<form id="export_pdf" method="post" action="<?=$lien?>" >
<br/>
<span>Cocher les sections à télécharger :</span>
<fieldset>
<label> Description </label> <input type="checkbox" name="bloc[]" value="description" />
<label> Ethnobotanique </label> <input type="checkbox" name="bloc[]" value="ethnobotanique" />
<label> Ecologie </label> <input type="checkbox" name="bloc[]" value="ecologie" />
<label> Statuts de protection </label> <input type="checkbox" name="bloc[]" value="statuts" />
<label> Nomenclature </label> <input type="checkbox" name="bloc[]" value="nomenclature" />
<label> Bibliographie </label> <input type="checkbox" name="bloc[]" value="bibliographie" />
<label> Illustrations </label> <input type="checkbox" name="bloc[]" value="illustrations" />
<label> Répartition </label> <input type="checkbox" name="bloc[]" value="repartition" />
</fieldset>
<input type="submit" name="choix" value="Télécharger la fiche."/>
</form>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_description.tpl.html
New file
0,0 → 1,184
<div id="description">
<?php if(isset($coste) && isset($coste['titre'])) : ?>
<h2>Description de Coste : <?=$coste['titre']?></h2>
<div class="description coste">
<? if (!empty($coste['description'])) : ?>
<table class="desc">
<tr>
<td>
<?if ($coste['description']['nom_scientifique'] != '') : ?>
<span class="gras">
<?=$coste['description']['nom_scientifique']; ?>
</span>
<? endif; ?>
<?if ($coste['description']['nom_commun'] != '') : ?>
<span class="italique">
<?=$coste['description']['nom_commun']; ?>
</span>
<? endif; ?>
</td>
</tr>
<?if ($coste['description']['synonymes'] != '') : ?>
<tr>
<td>
<span class="titre">Synonymes </span>
<?=$coste['description']['synonymes']; ?>
</td>
</tr>
<? endif; ?>
<tr>
<td>
<?if ($coste['description']['texte'] != '') : ?>
<?=$coste['description']['texte']; ?>
<br/>
<? endif; ?>
</td>
</tr>
<?if ($coste['description']['ecologie'] != '') : ?>
<tr>
<td>
<span class="titre">Écologie </span>
<?=$coste['description']['ecologie']; ?>
</td>
</tr>
<? endif; ?>
<?if ($coste['description']['repartition'] != '') : ?>
<tr>
<td>
<span class="titre">Répartition </span>
<?=$coste['description']['repartition']; ?>
</td>
</tr>
<? endif; ?>
<?if ($coste['description']['floraison'] != '') : ?>
<tr>
<td>
<span class="titre">Floraison </span>
<?=$coste['description']['floraison']; ?>
<?if ($coste['description']['fructification'] != '') : ?>
<span class="titre">Fructification </span>
<?=$coste['description']['fructification']; ?>
<? endif; ?>
</td>
</tr>
<? endif; ?>
<?if ($coste['description']['usages'] != '') : ?>
<tr>
<td>
<span class="titre">Usages</span>
<?=$coste['description']['usages']; ?>
</td>
</tr>
<? endif; ?>
</table>
<div class="conteneur_lien_metadonnees">
<?=$coste['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $coste['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? else : ?>
Aucune donnée.
<? endif; ?>
</div>
<? endif; ?>
<?php if(isset($baseflor)) : ?>
<h2>Description Baseflor : </h2>
<div class="description baseflor">
<? if (!empty($baseflor)) : ?>
<table class="desc">
<tr>
<td colspan="2">
<?if ($baseflor['type_bio'] != '') : ?>
<span class="titre">Type Biologique : </span><?=$baseflor['type_bio']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($baseflor['form_vegetale'] != '') :?>
<span class="titre">Formation végétale : </span> <?=$baseflor['form_vegetale']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td colspan="2">
<?if ($baseflor['chorologie'] != '') :?>
<span class="titre">Chorologie : </span>&nbsp<?=$baseflor['chorologie']; ?>
<? endif; ?>
</td>
</tr>
<tr>
<td >
<?if ($baseflor['inflorescence'] != '') :?>
<span class="titre">Inflorescence :</span> <?=$baseflor['inflorescence'];?> <br/>
<? endif; ?>
<?if ($baseflor['fruit'] != '') :?>
<span class="titre">Fruit :</span><?=$baseflor['fruit']; ?> <br/>
<? endif; ?>
<?if ($baseflor['couleur_fleur'] != '') :?>
<span class="titre">Couleur de la fleur : </span><?=$baseflor['couleur_fleur'] ;?> <br/>
<? endif; ?>
<?if ($baseflor['macule'] != '') :?>
<span class="titre">Macule : </span><?=$baseflor['macule']; ?> <br/>
<? endif; ?>
<?if ($baseflor['floraison'] != '') :?>
<span class="titre">Floraison : </span><?=$baseflor['floraison']; ?> <br/>
<? endif; ?>
</td>
<td>
<?if ($baseflor['sexualite'] != '') :?>
<span class="titre">sexualité : </span><?=$baseflor['sexualite']; ?> <br/>
<? endif; ?>
<?if ($baseflor['ordre_maturation'] != '') :?>
<span class="titre">Ordre de maturation : </span><?=$baseflor['ordre_maturation']; ?> <br/>
<? endif; ?>
<?if ($baseflor['pollinisation'] != '') :?>
<span class="titre">Pollinisation : </span><?=$baseflor['pollinisation']; ?> <br/>
<? endif; ?>
<?if ($baseflor['dissemination'] != '') :?>
<span class="titre">Dissémination : </span><?=$baseflor['dissemination'] ;?> <br/>
<? endif; ?>
</td>
</tr>
</table>
<div class="conteneur_lien_metadonnees">
<?=$baseflor['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup " href="<?= $baseflor['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<? else : ?>
Aucune donnée.
<? endif; ?>
</div>
<? endif; ?>
<br />
<?php if(isset($wikini)) : ?>
<h2> Description collaborative : </h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<div class="description baseflor">
<span class="aide_wikini"> Participez à la rédaction collaborative de cette description, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="description">
<?=$wikini['description']?>
</div>
</div>
</div>
<hr class="nettoyage"/>
<br />
<? endif; ?>
<?php if(isset($wp)) : ?>
<h2>Fiche wikipedia : <?=$wp['titre']?></h2>
<div class="description wp">
<a class="lien_externe" href="<?=htmlentities($wp['lien'])?>" title="voir la page de ce taxon sur wikipedia (s'ouvre dans une nouvelle fenêtre)">
<?=htmlentities($wp['lien'])?>
</a>
</div>
<? endif; ?>
<hr class="nettoyage"/>
</div>
/branches/v5.2-lasegue/modules/fiche/squelettes/fiche_statut.tpl.html
New file
0,0 → 1,59
<div id="statut">
<h2>Statuts de protection</h2>
<?php if(!empty($statuts) && isset($statuts[0])) { ?>
<table class="liste_statuts_protection">
<tr>
<th>Zone géographique</th><th>Règle appliquée</th><th>Texte</th>
</tr>
<?php if ($statuts != array()) : ?>
<?php foreach ($statuts as $index => $statut) : ?>
<?php if(is_numeric($index)) { ?>
<tr>
<td><?= $statut['zone_application']; ?></td>
<td><?= $statut['regle']; ?></td>
<td><a class="lien_externe" title="Voir le texte de loi relatif" href="<?= $statut['hyperlien_legifrance']; ?>">
<?= $statut['texte']; ?>
</a>
(<?= $statut['statut']; ?>)
</td>
</tr>
<?php } ?>
<?php endforeach; ?>
<?php endif; ?>
</table>
<div class="conteneur_lien_metadonnees">
<?=$statuts['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $statuts['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<?php } else { ?>
<h3 class="aucune_info"> Aucun statut de protection connu </h3>
<?php } ?>
<h2>Liste rouge</h2>
<?php if(!empty($liste_rouge) && isset($liste_rouge[0])) { ?>
<ul>
<li>
<span class="infos_liste_rouge">Catégorie <?= $liste_rouge[0]['num_categorie'].' - '.$liste_rouge[0]['categorie']; ?></span> <a target="_blank" href="http://www.uicn.fr/-Aires-protegees-.html" >(Plus d'informations)</a>
</li>
</ul>
<div class="conteneur_lien_metadonnees">
<?=$liste_rouge['meta']['citation']?>
<span class="conteneur_lien_metadonnees">
<a class="lien_metadonnees lien_popup" href="<?= $liste_rouge['meta']['url']; ?>">Voir toutes les metadonnées</a>
</span>
</div>
<?php } else { ?>
<h3 class="aucune_info"> Aucune information de la liste rouge connue </h3>
<?php } ?>
 
<h2>Vos compléments sur les statuts de protection</h2>
<!-- TODO: cette phrase d'aide devrait être ajoutée avec javascript mais le système des onglets ajax nous en empêche -->
<span class="aide_wikini">Complétez nos données sur les statuts de protection, un double clic dans le cadre suffit pour compléter ou corriger la page </span>
<div class="contenu_editable">
<div class="description wikini editable_sur_clic" title="statuts de protection">
<?=$wikini['statuts_de_protection']?>
</div>
</div>
</div>
/branches/v5.2-lasegue/modules/fiche/Fiche.php
New file
0,0 → 1,171
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Fiche extends aControleur {
 
private $onglet = 'synthese';
private $parametres = array();
private $conteneur = null;
private $num_nom = 0;
private $nom_retenu = '';
private $nom_selectionne = null;
private $nom_appele_html = null; // le nom et l'auteur par lesquels on est arrivés sur la fiche, en cas de synonymie
private $url;
 
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$nom_courant = $this->conteneur->getNomCourant();
$this->nom_selectionne = $nom_courant->getNomSelectionne();
$this->url = $this->conteneur->getAppUrls();
$this->nom_retenu = $nom_courant->getNomRetenu();
if ($this->nom_retenu->get('id') != $this->nom_selectionne->get('id')) {
$this->nom_appele_html = $this->nom_selectionne->get('nom_sci_html').' '.$this->nom_selectionne->get('auteur');
}
spl_autoload_register(array($this, 'chargerClassesOnglets'));
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->parametres['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom'])) {
$this->parametres['nom'] = $_GET['nom'];
}
if (isset($_GET['type_nom'])) {
$this->parametres['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['referentiel'])) {
$this->parametres['referentiel'] = $_GET['referentiel'];
Registre::set('parametres.referentiel', $_GET['referentiel']);
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
if (isset($_GET['onglet'])) {
$this->onglet = $_GET['onglet'];
}
}
 
private function chargerClassesOnglets($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'formateurs'.DS;
$dossiers = array($base, $cheminFormateurs);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
 
$squelette = 'fiche_'.$this->onglet;
 
//Gestion du niveau
$niveau = isset($_GET['niveau']) ? $_GET['niveau'] : 2;
if ($this->onglet == 'synthese' && $niveau != null) {
$squelette .= '_niveau'.$niveau;
}
 
// Récupération parametres et données
$donnees = array_merge($this->obtenirDonnees(), $this->parametres);
$donnees['i18n'] = I18n::get('Fiche');
$verna = isset($donnees['ethnobotanique']['nomsVerna']) && count($donnees['ethnobotanique']['nomsVerna']) ? $donnees['ethnobotanique']['nomsVerna'][0]['nom_vernaculaire'] : "";
 
// titre, description et tag de la page
$this->setSortie('titre', $this->nom_retenu->get('nom_sci'));
// ( <meta name="description" ...> )
$this->setSortie('description', sprintf("Fiche descriptive de %s %s (%s)", $this->nom_retenu->get('nom_sci'), $verna ? ('/ ' . $verna) : '', $donnees['description']['titre']));
 
$this->setSortie('tags', $this->nom_retenu->get('nom_sci').",".$verna.
",botanique,plante,description,ecologie,reconnaitre,fiche espece");
 
// titre de la fiche
$donnees['nom_retenu_html'] = $this->nom_retenu->get('nom_sci_html').' '.$this->nom_retenu->get('auteur');
$donnees['nom_retenu'] = $this->nom_retenu->get('nom_sci');
$donnees['nom_appele_html'] = $this->nom_appele_html;
$donnees['famille'] = $this->nom_retenu->getTaxonSupRang('180');
$donnees['nom_vernaculaire'] = $verna;
 
// moteur de recherche
$this->executerAction('Recherche', 'executerAccueil', $this->parametres);
 
// page synthese
$blocs_niveaux = $this->conteneur->getParametreTableau('blocs_fiche_defaut');
$donnees['blocs'] = '"'.str_replace('|', '","', $blocs_niveaux[Registre::get('parametres.niveau')]).'"';
 
// onglet
$donnees['onglet'] = $this->onglet;
$donnees['contenu_onglet'] = $this->getVue($squelette, $donnees);
$donnees['base_url_onglets'] = Config::get('base_url_application_onglets');
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_accueil_niveau'.$niveau, $donnees), true);
$this->ajouterPiedDePage();
}
 
public function ajouterLienModuleExport() {
$donnees['lien'] = $this->url->obtenirUrlPdfExport($this->parametres['num_nom']);
$export = $this->getVue('fiche_pdf_lien', $donnees);
return $export;
}
 
public function ajouterPiedDePage() {
$description = new Description($this->conteneur);
$taxons = new Taxons();
$referentiel = $this->conteneur->getParametre('referentiel');
$urlMobile = $this->url->obtenirUrlMobile($this->parametres['num_nom']);
$donnees = array('wikipedia' => $description->getUrlWikipedia(),
'export_pdf' => $this->ajouterLienModuleExport(),
'permalien_num_nom' => $taxons->getUrlPermalienNumNom($referentiel, 1, $this->conteneur->getNomCourant()->getNns()),
'permalien_taxon' => $taxons->getUrlPermalienTaxon($referentiel, 1, $this->conteneur->getNomCourant()->getNt()),
'nn' => $this->conteneur->getNomCourant()->getNns(),
'nt' => $this->conteneur->getNomCourant()->getNt(),
'wiki' => $description->getLienWikini(),
'nom_retenu' => $this->nom_retenu->get('nom_sci'),
'mobile' => $urlMobile,
'qr_code_png' => $this->obtenirUrlQrCode($urlMobile)
);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_pied_page', $donnees), true);
}
 
private function obtenirUrlQrCode($urlMobile) {
$qr = $this->conteneur->getQrCode();
$qr->setUrl(htmlspecialchars_decode($urlMobile));
$idQrCode = $this->conteneur->getNomCourant()->getNns();
$urlQrCode = $qr->dessiner($idQrCode);
return $urlQrCode;
}
 
public function executerOnglet(){
$this->viderSorties();
$donnees = $this->obtenirDonnees();
header('Content-type: text/html');
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_'.$this->onglet, $donnees));
}
 
private function obtenirDonnees() {
$classe = ucfirst($this->onglet);
$onglet = new $classe($this->conteneur); // grep-friendly: new Synthese()
return $onglet->obtenirDonnees();
}
}
?>
/branches/v5.2-lasegue/modules/popup_contact/presentations/styles/identification.css
New file
0,0 → 1,6
@CHARSET "UTF-8";
/*----------------------------------------------------------------------------------------------------------*/
/* Balises */
input[type="checkbox"]{
margin:2px 5px;
}
/branches/v5.2-lasegue/modules/popup_contact/presentations/scripts/identification.js
New file
0,0 → 1,96
$(document).ready(function() {
$("#connexion").on('click', connecter);
});
 
function connecter() {
var erreurMsg = "";
var urlWs = URL_WS_UTILISATEUR;
var courriel = $("#courriel").val();
var mdp = $("#mdp").val();
var persistance = $('#persistance').is(':checked');
var donnees = {'methode':'connexion', 'courriel':courriel, 'mdp':mdp, 'persistance':persistance};
$.ajax({
type : "PUT",
cache : false,
url : urlWs,
data : donnees,
beforeSend : nettoyerMsg,
success : function(data) {
if (data.identifie) {
rechargerPage();
} else {
afficherErreur(data.message);
}
},
error : function(jqXHR, textStatus, errorThrown) {
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
erreurMsg += extraireInfosReponse(jqXHR);
afficherErreur('Une erreur est survenue lors de la connexion.');
if (DEBUG) {
console.log('Erreur : '+erreurMsg);
}
},
complete : function(jqXHR, textStatus) {
var debugMsg = extraireEnteteDebug(jqXHR);
if (DEBUG) {
console.log('Débogage : '+debugMsg);
}
}
});
return false;
}
 
function nettoyerMsg() {
$(".msg").remove();
}
 
function rechargerPage() {
window.location.reload();
}
 
function extraireInfosReponse(jqXHR) {
var erreurMsg = '';
try {
reponse = jQuery.parseJSON(jqXHR.responseText);
if (reponse != null) {
$.each(reponse, function (cle, valeur) {
erreurMsg += valeur + "\n";
});
}
} catch(e) {
erreurMsg += "L'erreur n'était pas en JSON.";
}
return erreurMsg;
}
 
function extraireEnteteDebug(jqXHR) {
var debugMsg = '';
if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
if (debugInfos != null) {
$.each(debugInfos, function (cle, valeur) {
debugMsg += valeur + "\n";
});
}
}
return debugMsg;
}
 
function afficherErreur(msg) {
afficherTxt(msg, 'attention');
}
 
function afficherInfo(msg) {
afficherTxt(msg, 'information');
}
 
function afficherMsg(msg) {
afficherTxt(msg);
}
 
function afficherTxt(msg, type) {
type = type ? ' '+type : '';
nettoyerMsg();
$("#zone-dialogue").append('<pre class="msg'+type+'">'+msg+'</pre>');
}
/branches/v5.2-lasegue/modules/popup_contact/presentations/scripts/contact.js
New file
0,0 → 1,121
$(document).ready(function() {
$("#annuler").on('click', fermerFenetre);
$("#effacer").on('click', effacerFomulaire);
$("#envoyer").on('click', envoyerCourriel);
});
 
function fermerFenetre() {
window.open('', '_self', '');// BUG : Chrome
window.close();
}
 
function effacerFomulaire() {
$("#sujet").attr('value', $("#sujet_defaut").val());
$("#message").text($("#message_defaut").val());
}
 
function envoyerCourriel(event) {
if (verifierFormContact()) {
if($("#type_envoi").val() == "non-inscrit") {
var destinataireId = $("#destinataire_id").val();
var urlMessage = URL_WS_MESSAGE_CEL+"/"+destinataireId;
} else {
var destinataireId = $("#destinataire_id").val();
var urlMessage = URL_WS_UTILISATEUR+"/"+destinataireId+"/message";
}
var erreurMsg = "";
var sujet = $("#sujet").val()+" - Carnet en ligne - Tela Botanica";
var message = $("#message").val()+"\n--\n"+
"Ce message vous est envoyé par l'intermédiaire de l'application eFlore du réseau Tela Botanica.\n"+
"http://www.tela-botanica.org/eflore";
var donnees = new Array();
donnees[0] = {'name':'sujet','value':sujet};
donnees[1] = {'name':'message','value':message};
donnees[2] = {'name':'utilisateur_courriel','value':$("#utilisateur_courriel").val()};
donnees[3] = {'name':'copies','value':$("#copies").val()};
donnees[4] = {'name':'destinataire_id','value':$("#destinataire_id").val()};
 
$.ajax({
type : "POST",
cache : false,
url : urlMessage,
data : donnees,
beforeSend : function() {
nettoyerMsg();
},
success : function(data) {
afficherInfo(data.message);
},
error : function(jqXHR, textStatus, errorThrown) {
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
reponse = jQuery.parseJSON(jqXHR.responseText);
if (reponse != null) {
$.each(reponse, function (cle, valeur) {
erreurMsg += valeur + "\n";
});
}
},
complete : function(jqXHR, textStatus) {
var debugMsg = '';
if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
if (debugInfos != null) {
$.each(debugInfos, function (cle, valeur) {
debugMsg += valeur + "\n";
});
}
}
if (erreurMsg != '') {
afficherMsg('Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
'Vous pouvez signaler le disfonctionnement à <a href="'+
'mailto:cel@tela-botanica.org'+'?'+
'subject=Disfonctionnement du formulaire de contact'+
"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
'">eflore_remarques@tela-botanica.org</a>.');
}
if (DEBUG) {
console.log('Débogage : '+debugMsg);
}
}
});
} else {
afficherInfo('Veuillez saisir un message');
}
event.preventDefault();
return false;
}
 
function afficherInfo(msg) {
afficherTxt(msg, 'information');
}
 
function afficherMsg(msg) {
afficherTxt(msg);
}
 
function afficherTxt(msg, type) {
type = type ? ' '+type : '';
nettoyerMsg();
$("#zone-dialogue").append('<pre class="msg'+type+'">'+msg+'</pre>');
}
 
function nettoyerMsg() {
$(".msg").remove();
}
 
function verifierFormContact() {
var valide = true;
var msg = trim($("#message").val());
var msgDefaut = trim($("#message_defaut").val());
if (msg == msgDefaut) {
valide = false;
}
return valide;
}
 
function trim(chaine) {
return chaine.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
/branches/v5.2-lasegue/modules/popup_contact/squelettes/form_identification.tpl.html
New file
0,0 → 1,22
<div class="importance1">
<div id="zone-dialogue">
<p class="msg attention">
Vous n'êtes pas identifié sur le site de Tela Botanica.<br />
Veuillez vous identifier afin d'accéder au formulaire de contact.
</p>
</div>
<form id="form-connexion" action="<?= $urlPopUp ?>" method="post">
<h3>Identifiez vous</h3>
<label for="courriel">Courriel : </label>
<input type="text" id="courriel" name="courriel" maxlength="80" value="" />
<label for="mdp">Mot de passe : </label>
<input type="password" id="mdp" name="mdp" maxlength="80" value="" />
<p>
<input type="submit" id="connexion" class="gauche btn" name="connexion" value="Connexion" />
<input id="persistance" class="gauche" name="persistance" type="checkbox" value="o" />
<label for="persistance">Rester connecté</label>
</p>
</form>
</div>
/branches/v5.2-lasegue/modules/popup_contact/squelettes/form_contact.tpl.html
New file
0,0 → 1,28
<div class="importance1">
<div id="zone-dialogue"></div>
<form id="form-contact" method="post" action="<?= $urlPopUp ?>">
<div class="champ">
<label for="sujet">Sujet</label>
<input id="sujet" name="sujet" value="<?= $sujet ?>"/>
</div>
<div class="champ">
<label for="message">Message</label>
<textarea id="message" name="message" rows="10"><?= $message ?></textarea>
</div>
<div>
<input id="sujet_defaut" name="sujet_defaut" type="hidden" value="<?= $sujet ?>" />
<input id="message_defaut" name="message_defaut" type="hidden" value="<?= $message ?>" />
<input id="destinataire_id" name="destinataire_id" type="hidden" value="<?= $idDestinataire ?>" />
<input id="copies" name="copies" type="hidden" value="eflore_remarques@tela-botanica.org" />
<input id="utilisateur_courriel" name="utilisateur_courriel" type="hidden" value="<?= $utilisateurCourriel ?>"/>
<input id="type_envoi" name="type_envoi" type="hidden" value="<?= $typeEnvoi ?>"/>
<button id="annuler" class="btn" type="submit">Annuler</button>
<button id="effacer" class="btn" type="reset">Effacer</button>
<button id="envoyer" class="droite btn" type="submit">Envoyer</button>
</div>
</form>
</div>
/branches/v5.2-lasegue/modules/popup_contact/squelettes/contact_entete.tpl.html
New file
0,0 → 1,14
<!-- CSS -->
<? if ($formType != 'contact') : ?>
<link href="modules/popup_contact/presentations/styles/<?= $formType ?>.css" rel="stylesheet" type="text/css"/>
<? endif; ?>
 
<!-- JavaScript -->
<script type="text/javascript">
//<![CDATA[
var DEBUG = false;
var URL_WS_UTILISATEUR = "<?= $urlWsUtilisateur ?>";
var URL_WS_MESSAGE_CEL = "<?= $urlWsMessageCel ?>";
//]]>
</script>
<script type="text/Javascript" src="modules/popup_contact/presentations/scripts/<?= $formType ?>.js"></script>
/branches/v5.2-lasegue/modules/popup_contact/PopupContact.php
New file
0,0 → 1,105
<?php
// declare(encoding='UTF-8');
/**
* Affiche un formulaire de contact d'utilisateur.
*
* @category php 5.2
* @package eFlore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
 
class PopupContact extends aControleur {
 
private $conteneur = null;
private $imagesApi = null;
private $utilisateur = null;
private $appUrls = null;
private $id_destinataire = '';
private $id_image = '';
private $urlWsCelTpl = '';
private $urlWsAnnuaireUtilisateurTpl = '';
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->imagesApi = $this->conteneur->getApiImages();
$this->utilisateur = $this->conteneur->getUtilisateur();
$this->appUrls = $this->conteneur->getAppUrls();
$this->urlWsAnnuaireUtilisateurTpl = $this->conteneur->getParametre('baseUrlServicesAnnuaireTpl');
$this->urlWsCelTpl = $this->conteneur->getParametre('baseUrlServicesCelTpl');
}
 
private function capturerParametres() {
if (isset($_GET['id_destinataire'])) {
$this->id_destinataire = $_GET['id_destinataire'];
}
if (isset($_GET['id_img'])) {
$this->id_image = $_GET['id_img'];
}
}
 
public function executerActionParDefaut() {
$this->executerForm();
}
 
public function executerForm() {
if ($this->utilisateur->etreIdentifie()) {
$this->afficherFormContact();
} else {
$this->afficherFormIdentification();
}
}
 
private function afficherFormContact() {
$this->setSortie(self::META_TITRE, 'Contactez un membre du réseau');
$entete = array();
$entete['formType'] = 'contact';
$entete['urlWsMessageCel'] = sprintf($this->urlWsCelTpl, 'celMessage/image');
$entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur');
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
 
$infos = array();
// cas d'une obs saisie par une personne non inscrite
// le message doit être envoyé au cel qui fournira le courriel de l'auteur
if(trim($this->id_destinataire) == "") {
$infos['idDestinataire'] = $this->id_image;
$infos['typeEnvoi'] = 'non-inscrit';
} else {
$infos['idDestinataire'] = $this->id_destinataire;
$infos['typeEnvoi'] = 'inscrit';
}
$infos['idImage'] = $this->id_image;
$infos['utilisateurCourriel'] = $this->utilisateur->getCourriel();
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
 
$this->imagesApi->setProjet('cel');
$imageInfos = $this->imagesApi->setApi(Eflore::API_DEL)->getInfosImageParIdImage($this->id_image); // prêt à passer à API_DEL
$idObs = $imageInfos['observation.id'];
$nomSci = $imageInfos['determination.nom_sci'];
$date = $imageInfos['date'];
$lieu = $imageInfos['station.libelle'];
 
$infos['sujet'] = "Observation #$idObs de $nomSci";
$infos['message'] = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de $nomSci du $date au lieu $lieu";
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_contact', $infos));
}
 
private function afficherFormIdentification() {
$this->setSortie(self::META_TITRE, 'Identification');
$entete = array();
$entete['formType'] = 'identification';
$entete['urlWsUtilisateur'] = sprintf($this->urlWsAnnuaireUtilisateurTpl, 'utilisateur');
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
 
$infos = array();
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_identification', $infos));
}
}
?>
/branches/v5.2-lasegue/modules/popup_illustrations/squelettes/popup_fiche_illustrations.tpl.html
New file
0,0 → 1,31
<div id="info-img">
<div class="img-cadre">
<img src="<?=$image['binaire.href']?>" alt="<?=$id?>" />
</div>
<div class="importance1">
<dl>
<dt>Photo n°</dt><dd><?=$id?></dd>
<dt>Titre</dt><dd><?= $image['determination.nom_sci'] ?><br /></dd>
<dt>Description</dt><dd><?= $image['determination.libelle'] ?><br /></dd>
<dt>Localisation</dt><dd><?=$image['station.commune'] ?><br /></dd>
<dt>Auteur</dt>
<dd>
<? if ($image['auteur.id']) : ?>
<a href="http://tela-botanica.org/profil:<?= $image['auteur.id'] ?>"
title="Voir le profil de cet utilisateur (nécessite d'être identifié)">
<?= $image['auteur.libelle'] ?>
</a>
<a title="Envoyer un message à l'auteur à propos de cette image (nécessite d'être identifié)"
class="mailto" href="<?= $urlContact ?>">
(Contacter ...)
</a>
<? else : ?>
<?= $image['auteur.libelle'] ?>
- (profil indisponible)
<? endif ?>
</dd>
<dt>Date d'observation</dt><dd><?= $image['date'] ?><br /></dd>
<dt>Licence</dt><dd><a class="lien-externe" href="http://www.tela-botanica.org/page:licence">CC-BY-SA</a></dd>
</dl>
</div>
</div>
/branches/v5.2-lasegue/modules/popup_illustrations/PopupIllustrations.php
New file
0,0 → 1,67
<?php
// declare(encoding='UTF-8');
/**
* Affiche un pop-up avec les infos d'une illustration.
*
* @category php 5.2
* @package eFlore-consultation
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
 
class PopupIllustrations extends aControleur {
private $conteneur = null;
private $id_image = '';
private $images = null;
private $appUrls = null;
 
public function initialiser() {
$this->capturerParametres();
$this->conteneur = new Conteneur();
$this->images = $this->conteneur->getApiImages();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
private function capturerParametres() {
if (isset($_GET['id'])) {
$this->id_image = $_GET['id'];
}
}
 
public function executerActionParDefaut() {
$this->executerFiche();
}
 
public function executerFiche(){
$infos = array();
$this->images->setProjet('cel');
$img = $this->images->setApi(Eflore::API_EFLORE)->getInfosImageParIdImage($this->id_image); // prêt à passer à API_DEL
$infos['id'] = $this->id_image;
$img['date'] = $this->formaterDateImg($img['date']);
$infos['image'] = $img;
$infos['urlContact'] = $this->appUrls->obtenirUrlPopUpContact($img['auteur.id'], $this->id_image);
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('popup_fiche_illustrations', $infos));
}
private function formaterDateImg($date) {
$dateFmt = $date;
if ($date == '0000-00-00' || $date == '1970-01-01 01:01:01') {
return 'inconnue';
}
$time = strtotime($date);
if(!$time) {
/* TODO: php -r "echo strtotime('1891-00-00 00:00:00');"
si FALSE pour avant 1901: problème php
On retourne alors simplement l'année. */
$dateFmt = explode('-', $date);
return $dateFmt[0];
}
return strftime('%e %B %Y', strtotime($date));
}
}
?>
/branches/v5.2-lasegue/modules/fiche_metadonnees/squelettes/metadonnees.tpl.html
New file
0,0 → 1,85
<div>
<a id="lien_metadonnees_resume" href="#metadonnees_resume">Résumé</a>
<a id="lien_metadonnees" href="#metadonnees_resume">Détails</a>
<div id="metadonnees_resume">
<br />
<span class="intitule_metadonnee">Ces données proviennent de la base "</span><?= $metadonnees_resume['titre']; ?>" <br />
<span class="intitule_metadonnee">de</span> <?= $metadonnees_resume['auteurs']['noms'] ?><br /><br />
<span class="intitule_metadonnee">Description :</span>
<span class="metadonnees_resume_description"><?= $metadonnees_resume['description']; ?></span><br />
<span class="intitule_metadonnee">Citation : </span> "<?= $metadonnees_resume['citation'] ?>"<br /><br />
<span class="intitule_metadonnee">Mise à jour le</span> <?= $metadonnees_resume['date']; ?>
<br/>
<?php if($metadonnees_resume['url'] != "") { ?>
<span class="intitule_metadonnee">Url du projet : </span><a href="<?= $metadonnees_resume['url']; ?>"><?= $metadonnees_resume['url']; ?></a><br />
<? } ?>
<?php if($metadonnees_resume['auteurs']['contacts'] != "") { ?>
<span class="intitule_metadonnee">Contact du ou des auteurs du projet : </span><?= $metadonnees_resume['auteurs']['contacts']; ?>
<? } ?>
</div>
 
<div id="metadonnees">
<ul>
<? foreach ($metadonnees as $donnee) : ?>
<? foreach ($donnee as $cle => $valeur) : ?>
<li>
<?php if(is_array($valeur)) { ?>
<? foreach ($valeur[0] as $sous_cle => $sous_valeur) : ?>
<ul class="sous-liste-metadonnees">
<li>
<?php if(trim($sous_cle) != '') { ?>
<span class="intitule_metadonnee"><?= $i18n[$sous_cle] ?> :</span>
<? } ?>
<span class="valeur_metadonnee"><?= $sous_valeur ?></span>
</li>
</ul>
<? endforeach; ?>
<?php } else { ?>
<?php if(trim($cle) != '') { ?>
<span class="intitule_metadonnee"><?= $i18n[$cle] ?> :</span>
<? } ?>
<span class="valeur_metadonnee"><?= $valeur ?></span>
<?php } ?>
</li>
<? endforeach; ?>
<? endforeach; ?>
</ul>
</div>
</div>
<script>
function redimensionnerFancyBox() {
$('#fancybox-inner').width("auto");
$('#fancybox-outer').width("auto");
$('#fancybox-content').width("auto");
}
 
function afficherResumeMetadonnees() {
$('#lien_metadonnees_resume').addClass("lien_metadonnees_affiche");
$('#lien_metadonnees').removeClass("lien_metadonnees_affiche");
$('#metadonnees_resume').show();
$('#metadonnees').hide();
}
function afficherMetadonneesCompletes() {
$('#lien_metadonnees').addClass("lien_metadonnees_affiche");
$('#lien_metadonnees_resume').removeClass("lien_metadonnees_affiche");
$('#metadonnees_resume').hide();
$('#metadonnees').show();
}
 
$(document).ready(function() {
afficherResumeMetadonnees();
$('#lien_metadonnees').click(function(event) {
afficherMetadonneesCompletes();
redimensionnerFancyBox();
event.preventDefault();
});
$('#lien_metadonnees_resume').click(function(event) {
afficherResumeMetadonnees();
redimensionnerFancyBox();
event.preventDefault();
});
});
</script>
/branches/v5.2-lasegue/modules/fiche_metadonnees/FicheMetadonnees.php
New file
0,0 → 1,119
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module fiche metadonnées.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Aurélien Peronnet <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class FicheMetadonnees extends aControleur {
 
private $projet = '';
private $serviceMetaDonnees;
 
public function __construct($metadonnees = null) {
$this->capturerParametres();
$this->serviceMetaDonnees = (is_null($this->serviceMetaDonnees)) ? new MetaDonnees($this->projet) : $metadonnees;
}
 
public function executerActionParDefaut() {
$this->executerAffichageMetaDonnees();
}
 
public function chargerMetadonneesHtml() {
$meta = $this->serviceMetaDonnees->getMetaDonnees();
$meta_resume = $this->formaterResumeMetadonnees($meta[0]);
$donnees['i18n'] = I18n::get('Metadonnees');
foreach ($meta as $index => $metadonnees) {
$meta[$index] = $this->formaterClesMetadonnees($metadonnees);
}
$donnees['metadonnees'] = $meta;
$donnees['metadonnees_resume'] = $meta_resume;
$html = $this->getVue(dirname(__FILE__).'/squelettes/metadonnees', $donnees);
return $html;
}
private function formaterResumeMetadonnees($meta) {
return array('auteurs' => $this->formaterAuteurs($meta),
'url' => $this->formaterUrl($meta),
'description' => $meta['description'],
'citation' => $meta['citation'],
'titre' => $meta['titre'],
'date' => strftime("%d/%m/%Y", strtotime($meta['date_creation']))
);
}
private function formaterAuteurs($meta) {
$contacts = array();
$noms = array();
if(isset($meta['createurs.details'])) {
foreach($meta['createurs.details'] as $createur_detail) {
$auteur_nom_fmt = isset($createur_detail["p.nom"]) ? $createur_detail["p.nom"] : "";
$auteur_prenom_fmt = isset($createur_detail["p.prenom"]) ? $createur_detail["p.prenom"] : "";
$structure_fmt = isset($createur_detail["o.nom"]) ? $createur_detail["o.nom"] : "";
$auteur_contact = isset($createur_detail["p.courriel"]) ? $createur_detail["p.courriel"] : "";
if($auteur_prenom_fmt != "" || $auteur_nom_fmt != "") {
$nom_prenom_structure_fmt = $auteur_prenom_fmt.' '.$auteur_nom_fmt;
if($structure_fmt != "") {
$nom_prenom_structure_fmt .= " (".$structure_fmt.")";
}
$noms[] = $nom_prenom_structure_fmt;
}
if($auteur_contact != "") {
$contacts[] = $auteur_contact;
}
}
}
$createurs = array('noms' => implode(", ", $noms), 'contacts' => implode(", ", $contacts));
return $createurs;
}
private function formaterUrl($meta) {
return $meta['url_projet'];
}
 
public function executerAffichageMetaDonnees($donnees) {
header('Content-type: text/html; charset=UTF-8');
$html = $this->chargerMetadonneesHtml();
echo $html;
exit;
}
 
private function capturerParametres() {
if (isset($_GET['projet'])) {
$this->projet = $_GET['projet'];
}
}
private function formaterClesMetadonnees($metadonnees) {
$meta_fmt = array();
foreach ($metadonnees as $cle => $metadonnee) {
$cle_fmt = str_replace('.', '_', $cle);
if(is_array($metadonnee)) {
$metadonnee = $this->formaterClesMetadonnees($metadonnee);
} elseif($this->estUnLien($metadonnee)) {
$metadonnee = $this->formaterLienMetadonnee($metadonnee);
}
$meta_fmt[$cle_fmt] = $metadonnee;
}
return $meta_fmt;
}
private function estUnLien($valeur) {
// le test du pauvre, mais ça suffit ici
// car nous controlons le format des métadonnées
return strpos($valeur, "http://") !== false;
}
private function formaterLienMetadonnee($lien) {
return '<a href="'.$lien.'" target="_blank">'.$lien.'</a>';
}
}
?>
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/branches/v5.2-lasegue/modules/liste/Liste.php
New file
0,0 → 1,137
<?php
// declare(encoding='UTF-8');
/**
* Classe mère du module Liste.
*
* @category PHP 5.2
* @package eflore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright 2011 Tela-Botanica
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id$
*/
class Liste extends aControleur {
private $alphabet = null;
protected $rang = null;
protected $lettre = null;
private $rangsCorrespondance = array('F' => 'Famille', 'G' => 'Genre');
public function initialiser() {
$this->capturerParametres();
}
public function executerActionParDefaut() {
$this->executerListe();
}
public function executerListe() {
$this->initialiserAlphabet();
$this->initialiserLettre();
$couleurs = $this->creerColoration($this->alphabet);
$taxons = $this->getListeTaxons();
 
$donnees = array();
$donnees['i18n'] = I18n::get('Liste');
$donnees['lettre'] = $this->lettre;
$donnees['rang'] = $this->rang;
$donnees['rangCodes'] = array_keys($this->rangsCorrespondance);
$donnees['initiales'] = $this->alphabet;
$donnees['lettreCorrespondance'] = $this->chargerCorrespondanceSpeciale();
$donnees['couleurs'] = $couleurs;
$donnees['taxons'] = $taxons;
$donnees['nbreTaxons'] = $this->getEfloreTaxons()->getEnteteTotal();
$donnees['urlFiltre'] = $this->obtenirUrlBase();
$donnees['referentiel'] = Registre::get('parametres.referentiel');
$donnees['module'] = strtolower(get_class($this));
$donnees['action'] = 'liste';
$this->setSortie(self::RENDU_CORPS, $this->getVue('liste', $donnees));
}
private function capturerParametres() {
if (isset($_GET['rang'])) {
$this->rang = $_GET['rang'];
}
if (isset($_GET['lettre'])) {
$this->lettre = $_GET['lettre'];
}
}
private function initialiserAlphabet() {
if (!isset($this->alphabet)) {
$this->alphabet = $this->getStatsInitiales();
}
ksort($this->alphabet);
}
 
private function initialiserLettre() {
if (empty($this->lettre)) {
if (!is_null($this->alphabet)) {
$this->lettre = key($this->alphabet);
} else {
$m = "Aucune lettre n'a pu être initialiser car l'alphabet vaut null.";
trigger_error($m, E_USER_WARNING);
}
}
}
private function chargerCorrespondanceSpeciale() {
return array('chimere' => '+', 'hybride' => '×');
}
private function getStatsInitiales() {
$nomRang = $this->getNomCodeRang();
$stats = array();
if ($nomRang) {
$methode = 'getStatsInitiales'.$nomRang;
$stats = $this->getEfloreTaxons()->$methode();
}
return $stats;
}
private function getListeTaxons() {
$taxons = false;
if (isset($this->lettre)) {
$nomRang = $this->getNomCodeRang();
if ($nomRang) {
$methode = "getListe{$nomRang}ParInitiale";
$taxons = $this->getEfloreTaxons()->$methode($this->lettre);
}
}
return $taxons;
}
private function getNomCodeRang() {
$nom = false;
if (array_key_exists($this->rang, $this->rangsCorrespondance)) {
$nom = $this->rangsCorrespondance[$this->rang];
} else {
$m = "Ce code de rang '{$this->rang}' est inconnu. Codes disponibles : ".implode(', ', $this->rangsCorrespondance);
trigger_error($m, E_USER_WARNING);
}
return $nom;
}
/**
* Gestion de la coloration de l'alphabet en fonction du nombre de résultat
*/
private function creerColoration($alphabet) {
$debut = explode(',', Config::get('couleur_alphabet_debut')); // Tableau RGB de départ
$fin = explode(',', Config::get('couleur_alphabet_fin')); // Tableau RGB d'arrivée
$rvbAbreviations = array('R','V','B');
$nbreLettres = count($alphabet);
$valeurMax = max($alphabet);
$couleurs = array();
foreach ($alphabet as $lettre => $nbre) {
foreach ($rvbAbreviations as $index => $rvb) { //Pour faire le Rouge, Vert, Bleu
$couleurs[$nbre][$rvb] = round($debut[$index] - (($debut[$index]-$fin[$index]) / $valeurMax * $nbre) , 0);
}
}
return $couleurs;
}
}
?>
/branches/v5.2-lasegue/modules/liste/squelettes/liste.tpl.html
New file
0,0 → 1,53
<form id="form_liste_alphabet" name="form_liste_alphabet" method="get" action="<?=$urlFiltre;?>">
<input id="referentiel" name="referentiel" type="hidden" value="<?=$referentiel?>"/>
<input id="module" name="module" type="hidden" value="<?=$module?>"/>
<input id="action" name="action" type="hidden" value="<?=$action?>"/>
<fieldset>
<h2>Choisissez un rang</h2>
<p>Vous pouvez choisir d'afficher la liste des noms retenus des taxons pour les rangs suivant :</p>
<label for="rang">Rang :</label>
<select id="rang" name="rang">
<? foreach ($rangCodes as $codeRang) : ?>
<option
<?= ($codeRang == $rang) ? 'selected="selected"' : '' ?>
value="<?=$codeRang?>">
<?=$i18n['rang'.$codeRang]?>
</option>
<? endforeach; ?>
</select>
<button id="rang-submit" name="lettre" type="submit" value="<?=$lettre?>">OK</button>
</fieldset>
<fieldset>
<h2>Consultez les <?=strtolower($i18n['rang'.$rang])?>s par ordre alphabétique</h2>
<p>Plus la couleur de fond de la lettre est foncée plus, elle contient de taxons. Son survol avec la souris fait apparaitre le nombre de taxons présents.</p>
<p id="alphabet">
<? foreach ($initiales as $initiale => $nbre) : ?>
<button name="lettre" type="submit"
title="<?=$nbre?> taxons"
value="<?=isset($lettreCorrespondance[$initiale]) ? $lettreCorrespondance[$initiale] : $initiale?>"
<?=($initiale == $lettre) ? 'disabled="disabled"' : ''?>
style="background-color:rgb(<?=$couleurs[$nbre]['R']?>,<?=$couleurs[$nbre]['V']?>,<?=$couleurs[$nbre]['B']?>);color:black;">
<?=$initiale?>
</button>
<? endforeach; ?>
</p>
</fieldset>
</form>
 
<?php if ($taxons) : ?>
<h1>Taxons trouvés : <?=$nbreTaxons?></h1>
<ol>
<? foreach ($taxons as $id => $taxon) : ?>
<li>
<a href="#">
<?=$taxon['nom_sci']?>
</a>
</li>
<? endforeach; ?>
</ol>
<?php else : ?>
<p>Aucun taxon n'a été trouvé pour la lettre <?=$lettre?>.</p>
<?php endif; ?>
/branches/v5.2-lasegue/modules/recherche_simple/RechercheSimple.php
New file
0,0 → 1,40
<?php
class RechercheSimple extends aControleur {
 
//+----------------------------------------------------------------------------------------------------------------+
// Méthodes
/**
* Fonction d'affichage par défaut
*/
public function executerActionParDefaut() {
$this->afficherMoteurSimple();
}
 
private function afficherMoteurSimple() {
$donnees['form_nom'] = $this->executerFormulaireNom();
$this->setSortie(self::RENDU_CORPS, $donnees['form_nom']);
}
 
 
public function executerFormulaireNom($donnees = array()) {
$donnees['url_base_completion_noms_verna'] = "";
if (Config::get(Registre::get('parametres.referentiel').'.referentielVerna')) {
if (!isset($donnees['type_nom'])) {
$donnees['type_nom'] = (Registre::get('parametres.niveau') == 1) ? 'nom_vernaculaire' : 'nom_scientifique';
}
$donnees['nom_verna'] = true;
$donnees['referentielVerna'] = Config::get(Registre::get('parametres.referentiel').'.referentielVerna');
$donnees['url_base_completion_noms_verna'] = str_replace('{projet}', $donnees['referentielVerna'], Config::get('nomsVernaTpl'));
}
$donnees['referentiel'] = Registre::get('parametres.referentiel');
 
// nécessaire pour une autocomplétion indépendante, pour ne pas avoir à modifier le javascript
$donnees['url_base_completion_noms_sci'] = str_replace('{projet}', $donnees['referentiel'], Config::get('nomsTpl'));
$donnees['url_base_fiche_taxon'] = str_replace('&amp;', '&', $this->urls->obtenirUrlFiche('{num_taxon}', 'nom_scientifique'));
 
$donnees['url_form'] = $this->urls->obtenirUrlBase();
$donnees['i18n'] = I18n::get('Recherche-form-nom');
return $this->getVue('form_nom', $donnees);
}
}
?>
/branches/v5.2-lasegue/modules/recherche_simple/squelettes/form_nom.tpl.html
New file
0,0 → 1,63
<!-- DEBUT FORM_NOM -->
<script type="text/javascript">
<!--
var AUTOCOMPLETION_ELEMENTS_NBRE = 50;
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI = "<?=$url_base_completion_noms_sci?>";
var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA = "<?=$url_base_completion_noms_verna?>";
var VALEUR_DEFAUT_NOM_SCI = "<?= $i18n['valeur-form-nom-sci']; ?>";
var VALEUR_DEFAUT_NOM_VERNA = "<?= $i18n['valeur-form-nom-verna']; ?>";
var VALEUR_DEFAUT_AU = "<?=$i18n['valeur-form-auteur']?>";
var VALEUR_DEFAUT_BIB = "<?=$i18n['valeur-form-bib']?>";
var VALEUR_DEFAUT_DATE = "<?=$i18n['valeur-form-date']?>";
var URL_BASE_FICHE_TAXON = "<?=$url_base_fiche_taxon?>";
var URL_BASE_POPUP = "<?=Config::get('base_url_application_popup');?>";
var REFERENTIEL = "<?= Registre::get('parametres.referentiel');?>";
// -->
</script>
<form id="ef-form-nomenclature" name="ef-form-nomenclature" action="<?=$url_form;?>" method="get">
<fieldset>
<span class="zone-choix-type-nom">
<?php if (isset($nom_verna)) { ?>
<span class="type-nom">
<input id="type_nom_scientifique" name="type_nom" value="nom_scientifique" type="radio" <?=($type_nom == 'nom_scientifique') ? 'checked="checked"': '';?> />
<label for="type_nom_scientifique"><?=$i18n['ns'];?></label>
</span>
<span class="type-nom">
<input id="type_nom_vernaculaire" name="type_nom" value="nom_vernaculaire" type="radio" <?=($type_nom == 'nom_vernaculaire') ? 'checked="checked"': '';?> />
<label for="type_nom_vernaculaire" title="(en français, allemand, anglais, catalan, espagnol, italien ou néerlandais)"><?=$i18n['nv'];?></label>
</span>
<?php } else {?>
<input id="type-nom-scientifique" name="type_nom" type="hidden" value="nom_scientifique" />
<?=$i18n['ns'];?>
<?php } ?>
</span>
<input id="nom" name="nom" class="champ" size="30" maxlength="255" type="text" <?php if(isset($nom)) echo 'value="'.$nom.'"';?> />
<span id="zone-liens-recherche">
<input id="eflore_nomenclature_referentiel" name="referentiel" type="hidden" value="<?=Registre::get('parametres.referentiel')?>" />
<input id="eflore_nomenclature_niveau" name="niveau" type="hidden" value="<?=Registre::get('parametres.niveau')?>" />
<input id="eflore_nomenclature_module" name="module" type="hidden" value="recherche" />
<input id="eflore_nomenclature_action" name="action" type="hidden" value="rechercheSimple" />
<input id="eflore_nomenclature_submit" name="submit" type="submit" value="<?=$i18n['recherche'];?>" class="ok"/>
<input id="eflore_nomenclature_fiche" name="acces_fiche" type="submit" value="<?=$i18n['fiche'];?>" />
</span>
</fieldset>
</form>
 
 
<?php if (isset($message)) : ?>
<p class="<?= (isset($message['attention'])) ? 'attention' : 'information'; ?>">
<?= (isset($message['attention'])) ? $i18n[$message['attention']] : ''; ?>
<?= (isset($message['nom_ss_corresp'])) ? $message['nom_ss_corresp']['nom'].$i18n['nom_ss_corresp'].
'<a href="http://referentiels.tela-botanica.org/referentiel/index.php?ref=bdtfx&module=FicheTaxon&num_nom='.$message['nom_ss_corresp']['id'].'">'.
$i18n['reftax'].'</a>' : ''; ?>
<?php if (isset($message['nom_approche'])) : ?>
<?=$i18n['orthographe'];?>
<?php foreach ($message['nom_approche'] as $cle => $nom) :?>
<a href="<?=$nom['url_nom_approche']?>"><?=$nom['nom'];?></a>
<?= (isset($message['nom_approche'][$cle+1]['nom'])) ? ' ou ' : ''; ?>
<?php endforeach; ?>
<?php endif; ?>
</p>
<?php endif; ?>
<!-- FIN FORM_NOM -->