Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1195 → Rev 1261

/branches/v5.6-bureau/modules/pdf_export/PdfExport.php
New file
0,0 → 1,233
<?php
/**
* Classe PdfExport, réalise des exportations pdf des fiches de taxons.
* Les fonctionnalités proposées sont l'export de toutes les parties de la fiche pdf
* ou bien des parties choisies.
* (voir le squelette fiche_pdf_lien.tpl.html pour le formulaire dans le module fiche.)
*
* manuel wkhtmltopdf : http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0_rc2-doc.html
* pour changer de librairie : changer la fonction transformerHtmlEnPdf()
*
* @category php 5.2
* @package eflore-consultation
* @author Mathilde Salthun-Lassalle <mathilde@tela-botanica.org>
* @copyright 2012 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
 
class PdfExport extends aControleur {
 
const DUREE_DE_VIE_PDF = 86400;// 3600 * 24 * 2 = 172 800
const DUREE_DE_VIE_HTML = 60;
 
private $Conteneur;
private $parametres = array();
private $chemin_pdf;
private $html;
private $wkhtml;
private $piedepage;
private $fichier_pdf;
private $blocs = array();
 
private $Desc;
private $Ecolo;
private $Ethno;
private $Illus;
private $Nomen;
private $Reparti;
private $Stat;
private $Biblio;
 
public function initialiser() {
spl_autoload_register(array($this, 'chargerClassesOnglets'));
$this->capturerParametres();
$this->conteneur = new Conteneur($this->parametres);
$this->chemin_pdf = Config::get('dossier_pdf');
$this->wkhtml = Config::get('WKHTMLTOPDF');
$this->Desc = new Description($this->conteneur);
$this->Ecolo = new Ecologie($this->conteneur);
$this->Ethno = new Ethnobotanique($this->conteneur);
$this->Illus = new Illustrations($this->conteneur);
$this->Nomen = new Nomenclature($this->conteneur);
$this->Stat = new Statut($this->conteneur);
$this->Biblio = new Bibliographie($this->conteneur);
$this->Reparti = new Repartition($this->conteneur);
$this->piedepage = Config::get('chemin_modules').'pdf_export/squelettes/footer.html';
}
 
private function chargerClassesOnglets($classe) {
$base = dirname(__FILE__).DS;
$cheminFormateurs = $base.'../fiche/formateurs'.DS;
$dossiers = array($base, $cheminFormateurs);
foreach ($dossiers as $chemin) {
$fichierATester = $chemin.$classe.'.php';
if (file_exists($fichierATester)) {
include_once $fichierATester;
return null;
}
}
}
 
private function getNomRetenu() {
$nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
return $nom_retenu;
}
 
private function getNomRetenuHTML() {
$nom_retenu = '<span class="italique">'
.$this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci')
.'</span> '.$this->conteneur->getNomCourant()->getNomRetenu()->get('auteur');
return $nom_retenu;
}
 
private function getNomFichierValide(){
$nom_retenu = $this->conteneur->getNomCourant()->getNomRetenu()->get('nom_sci');
$nom_retenu = str_replace(' ','_',$nom_retenu );
$nom_retenu = preg_replace('/[\(\)\.\[\]]/','',$nom_retenu );
return $nom_retenu;
}
 
private function capturerParametres() {
if (isset($_GET['num_nom'])) {
$this->parametres['num_nom'] = $_GET['num_nom'];
}
if (isset($_GET['nom'])) {
$this->parametres['nom'] = $_GET['nom'];
}
if (isset($_GET['type_nom'])) {
$this->parametres['type_nom'] = $_GET['type_nom'];
}
if (isset($_GET['referentiel'])) {
$this->parametres['referentiel'] = $_GET['referentiel'];
}
if (isset($_GET['niveau'])) {
Registre::set('parametres.niveau', $_GET['niveau']);
}
if (isset($_GET['onglet'])) {
$this->onglet = $_GET['onglet'];
}
}
 
private function capturerParametresFormulaire() {
$this->blocs = array('description', 'ecologie', 'ethnobotanique', 'statuts', 'illustrations',
'bibliographie', 'repartition', 'nomenclature');
if (!empty($_POST['bloc'])) {
$this->blocs = $_POST['bloc'];
}
}
 
public function executerActionParDefaut() {
$this->executerPdfExport();
}
 
public function executerPdfExport(){
$this->capturerParametresFormulaire();
$hash = crc32($this->parametres['referentiel'].'-'.implode('-', $this->blocs));
$nom_fichier = $this->getNomFichierValide().'-'.$hash;
// le dossier cache existe normalement, mais le sous dossier pdf
// est parfois effacé par erreur lors des suppressions de cache
// il vaut mieux donc le recréer s'il n'existe pas
if(!file_exists($this->chemin_pdf)) {
mkdir($this->chemin_pdf, 0755, true);
}
 
$this->fichier_html = $this->chemin_pdf.''.$nom_fichier.'.html';
$this->fichier_pdf = $this->chemin_pdf.''.$nom_fichier.'.pdf';
 
if (file_exists($this->fichier_pdf) == false) {
$donnees = $this->obtenirDonnees();
$this->construireHtml($donnees);
if ($this->transformerHtmlEnPdf() == false) {
die('Erreur de generation du fichier PDF');
}
}
$this->envoyerPdfAuNavigateur();
$this->nettoyerFichiersTmp();
// ATTENTION : on doit stopper l'exécution de Papyrus sinon du HTML inutile est ajouté à la fin du fichier PDF
exit;
}
 
private function construireHtml($donnees) {
$this->html = $this->getVue('pdf_header', $donnees);
foreach ($this->blocs as $bloc) {
$this->ajouterHtml($bloc, $donnees);
}
$this->html .= '</body></html>';
}
 
private function ajouterHtml($bloc, $donnees) {
if (!empty($donnees[$bloc])) {
$this->html .= $this->getVue('pdf_'.$bloc, $donnees);
}
}
 
//+-------------------------------------récupération des données---------------------------------------------+
private function obtenirDonnees() {
$donnees = array();
$version = $this->Nomen->obtenirVersionDonnees();
$donnees['donnees_pdf'] = array(
'nom' => $this->getNomRetenuHTML(),
'chemin_css' => Config::get('url_css_pdf'),
'version' => $version['version']);
$donnees['description'] = $this->Desc->obtenirDonneesExport();
$donnees['ecologie'] = $this->Ecolo->obtenirDonneesExport();
$donnees['statuts'] = $this->Stat->obtenirDonnees();
$donnees['ethnobotanique'] = $this->Ethno->obtenirDonnees();
$donnees['illustrations'] = $this->Illus->obtenirDonneesExport();
$donnees['nomenclature'] = $this->Nomen->obtenirDonnees();
$donnees['repartition'] = $this->Reparti->obtenirDonneesExport();
$donnees['bibliographie'] = $this->Biblio->obtenirDonnees();
$donnees['premier'] = $this->blocs[0];// pour page-break : éviter 1ere page vide si bloc trop long
return $donnees;
}
 
//+------------------------------------------------export en pdf---------------------------------------------+
private function envoyerPdfAuNavigateur() {
$nom_fichier = $this->getNomFichierValide();
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename='.$nom_fichier.'.pdf');
readfile($this->fichier_pdf);
}
 
private function nettoyerFichiersTmp() {
$dossierStockage = $this->chemin_pdf;
if (is_dir($dossierStockage)) {
$objets = scandir($dossierStockage);
if ($objets !== false) {
foreach ($objets as $objet) {
$chemin = $dossierStockage.$objet;
if (is_file($chemin)) {
$filemtime = @filemtime($chemin);
if ($filemtime !== false) {
if (substr($chemin, -5) == '.html') {
$suppression = (time() - $filemtime >= self::DUREE_DE_VIE_HTML) ? true : false;
} else {
$suppression = (time() - $filemtime >= self::DUREE_DE_VIE_PDF) ? true : false;
}
if ($suppression === true) {
unlink($chemin);
}
}
}
}
}
}
}
 
//version WKHTMLtoPDF en ligne de commande
private function transformerHtmlEnPdf() {
$nom = $this->getNomRetenu();
file_put_contents($this->fichier_html, $this->html);
$commande = "{$this->wkhtml} --replace 'nom' '$nom' --encoding utf-8 --footer-html {$this->piedepage} {$this->fichier_html} {$this->fichier_pdf}";
$ret = -1;
$debug = array();
exec($commande, $debug, $ret);
//print_r( $debug ); echo $ret;
$ok = ($ret == 0 || $ret == 2) ? true : false;
return $ok;
}
}
?>
/branches/v5.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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.6-bureau/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/>