Rev 36 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.3 |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of eFlore-chorologie. |
// | |
// | Foobar is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation; either version 2 of the License, or |
// | (at your option) any later version. |
// | |
// | Foobar is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// | GNU General Public License for more details. |
// | |
// | You should have received a copy of the GNU General Public License |
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: eflore_chorologie.php,v 1.13 2006-05-31 16:00:13 jp_milcent Exp $
/**
* Affichage des listes de noms de plantes par zones géographiques.
*
* Ce script fournit le code html correspondant aux listes de noms de plantes par zone géographique.
*
*@package eFlore
*@subpackage Chorologie
//Auteur original :
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.13 $ $Date: 2006-05-31 16:00:13 $
// +------------------------------------------------------------------------------------------------------+
*/
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier config de la base de données de l'application eflore-chorolgie. */
require_once GEN_CHEMIN_CLIENT.'eflore_chorologie/configuration/echoro_config_bdd.inc.php';
/** Inclusion du fichier config de l'application eflore-chorolgie. */
require_once GEN_CHEMIN_CLIENT.'eflore_chorologie/configuration/echoro_config.inc.php';
/** Inclusion du fichier de langue de l'application eflore-chorologie. */
require_once ECHORO_CHEMIN_LANGUE.'echoro_langue_'.ECHORO_LANGUE.'.inc.php';
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
require_once ECHORO_CHEMIN_API_PEAR.'HTML/QuickForm.php';
/** Inclusion de la bibliothèque PEAR de gestion des URL.*/
require_once ECHORO_CHEMIN_API_PEAR.'Net/URL.php';
// Ajout d'une feuille de style propre à eFlore.
GEN_stockerStyleExterne('echoro', ECHORO_CHEMIN_STYLE.'echoro.css');
/** Inclusion de la classe "form" de l'API Formulaire. */
require_once ECHORO_CHEMIN_API_FORMULAIRE.'FORM_formulaire.class.php';
/** Inclusion de la classe "Fragmenteur" de l'API Fragmenteur. */
require_once ECHORO_CHEMIN_API_FRAGMENTEUR.'FRAG_Fragmenteur.class.php';
/** Inclusion de la classe "Fragmenteur Session" de l'API Fragmenteur. */
require_once ECHORO_CHEMIN_API_FRAGMENTEUR.'FRAG_Fragmenteur_Session.class.php';
/** Inclusion des fonctions de l'API Fragmenteur. */
require_once ECHORO_CHEMIN_API_FRAGMENTEUR.'FRAG_fragmenteur.fonct.php';
/** Inclusion de la bibliothèque Cartographie. */
require_once ECHORO_CHEMIN_BIBLIO_CARTO.'carto_carte.class.php';
/** Inclusion du fichier comportant des fonctions communes aux applis du package eFlore-chorologie.*/
include_once ECHORO_CHEMIN_BIBLIO.'echoro_information.fonct.php';
/** Inclusion du fichier gérant les fonctions d'encodage. */
include_once ECHORO_CHEMIN_BIBLIO.'echoro_encodage.fonct.php';
/** Inclusion du fichier gérant les fonctions fournissant l'affichage en XHTML. */
include_once ECHORO_CHEMIN_BIBLIO.'echoro_affichage_xhtml.fonct.php';
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
function afficherContenuNavigation()
{
$sortie = '';
return $sortie;
}
function afficherContenuTete()
{
$sortie = '';
return $sortie;
}
function afficherContenuCorps()
{
// +--------------------------------------------------------------------------------------------------+
// Initialisation
$sortie = '';
global $choro_dep_TABLEAU_CHOIX_LIGNE_PAGE;
global $image_x;
global $image_y;
global $historique_cartes;
global $lettre;
global $departement;
global $nombre_taxon;
global $liste_zone_carte;
// +--------------------------------------------------------------------------------------------------+
// PARAMETRAGE des TABLEAUX de la FONCTION rechercheAlphabet()
$tablo_formatLigne['Class_pair'] = 'echoro_ligne_paire';
$tablo_formatLigne['Class_impair'] = 'echoro_ligne_impaire';
//Choix du contenu de la colonne affichant le nom du taxon.
$tab_valeur_colonne_nom_complet[0] = array(
'type' => 'texte',
'valeur' => ' <b> ');
$tab_valeur_colonne_nom_complet[1] = array(
'type' => 'colonne',
'valeur' => ENT_NOM_COMPLET_02);
$tab_valeur_colonne_nom_complet[2] = array(
'type' => 'texte',
'valeur' => ' [ <span class="echoro_num_nomen">');
$tab_valeur_colonne_nom_complet[3] = array(
'type' => 'colonne',
'valeur' => ENT_NUM_NOMEN);
$tab_valeur_colonne_nom_complet[4] = array(
'type' => 'texte',
'valeur' => '</span> - <span class="echoro_num_taxo">' );
$tab_valeur_colonne_nom_complet[5] = array(
'type' => 'colonne',
'valeur' => ENT_NUM_TAXO);
$tab_valeur_colonne_nom_complet[6] = array(
'type' => 'texte',
'valeur' => '</span> ]');
$tab_valeur_colonne_nom_complet[7] = array(
'type' => 'texte',
'valeur' => ' </b> ');
// Création de l'url pour obtenir les fiches
//Implémentation du tableau contenant les informations pour
//l'affichage des résultats.
$tablo_formatResultat[0] = array(
'Col_nom' => $tab_valeur_colonne_nom_complet,
'Col_width' => 450,
'Col_class' => 'texte_i',
'Col_lien_href' => $GLOBALS['_ECHORO_']['url_base']->getURL().'nn',
'Col_lien_href_param' => ENT_NUM_NOMEN,
'Col_lien_target' => '_blank',
'Col_lien_class' => 'echoro_lien',
'Col_lien_title' => 'Voir la fiche correspondante dans l\'index des plantes');
if ($departement == 971 || $departement == 972 ) {
$tablo_formatResultat[0]['Col_lien_href'] = $GLOBALS['_ECHORO_']['url_base']->getURL().'bdnfgm_nn';
} elseif ($departement == 974) {
$tablo_formatResultat[0]['Col_lien_href'] = $GLOBALS['_ECHORO_']['url_base']->getURL().'bdnfr_nn';
}
$tablo_formatResultat[1]=array(
'Col_nom' => ECS_INTITULE,
'Col_width' => 150,
'Col_class' => 'texte_c');
$fragmenteur['nbre_ligne_page_defaut'] = NBRE_LIGNE_PAGE_DEFAUT;
$fragmenteur['numero_ligne_depart'] = NUMERO_LIGNE_DEPART;
$fragmenteur['afficher_titre'] = AFFICHER_TITRE;
$fragmenteur['titre'] = TITRE_FRAGMENTEUR;
$fragmenteur['tableau_choix_ligne_page'] = $choro_dep_TABLEAU_CHOIX_LIGNE_PAGE;
$fragmenteur['modele_info'] = MODELE_INFO;
$fragmenteur['classe_css_titre'] = CLASSE_CSS_TITRE;
$fragmenteur['classe_css_fragmenteur'] = CLASSE_CSS_FRAGMENTEUR;
$fragmenteur['classe_css_info'] = CLASSE_CSS_INFO;
// +--------------------------------------------------------------------------------------------------+
// RÉCUPÉRATION DU NOMBRE DE TAXON PAR DÉPARTEMENT
//Connexion à la base
if(BD_BOTA != BD_GENERALE){
//Nous sommes dans le cas où l'on a deux base: une pour les tables de la chorologie l'autre pour
//les tables de la carto.
//On ne sélectionne donc pas de base.
/** Definition de la variable globale stokant la connexion à la base de données. */
//$GLOBALS['_ECHORO_']['bdd'] = DB::connect(ECHORO_DSN_SANS_BDD);
$GLOBALS['_ECHORO_']['bdd'] = mysql_connect(ECHORO_BDD_SERVEUR, ECHORO_BDD_UTILISATEUR, ECHORO_BDD_MOT_DE_PASSE ) or die (ER_CONNECT.mysql_error());
}
else{
//Nous sommes dans le cas où l'on a une seule base.
//$GLOBALS['_ECHORO_']['bdd'] = DB::connect(ECHORO_DSN);
$GLOBALS['_ECHORO_']['bdd'] = mysql_connect(ECHORO_BDD_SERVEUR, ECHORO_BDD_UTILISATEUR, ECHORO_BDD_MOT_DE_PASSE ) or die (ER_CONNECT.mysql_error());
mysql_select_db(BD_GENERALE, $GLOBALS['_ECHORO_']['bdd']) or die (ER_SEL_BD_GENERALE);
}
//Requète fournisant le nombre de taxon pour chaque département. Nous récupérons aussi grâce à
//cette requète les valeurs nécessaires à la réalisation de la carte dynamique.
$requete_01 =
'SELECT DISTINCT '.CD_ID.
' FROM '.CD_BD_TABLE;
$resultat_01 = mysql_query($requete_01, $GLOBALS['_ECHORO_']['bdd']) or die('
<H2 style='.STYLE_REQUETE.'>Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_01.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$requete_02 =
'SELECT * ,count('.CD_ID.') as nbr '.
'FROM '.ECD_BD_TABLE.', '.CD_BD_TABLE.' '.
'WHERE '.CD_ID.' = '.ECD_DEP.' '.
'GROUP BY '.CD_ID;
$resultat_02 = mysql_query($requete_02, $GLOBALS['_ECHORO_']['bdd']) or die('
<H2 style='.STYLE_REQUETE.'>Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_02.
'<br/><br/><b>Erreur : </b>'.mysql_error());
//Requête spécifique aux départements des Antilles
$requete_971_972 =
'SELECT * ,count('.EAC_DEP.') as nbr '.
'FROM '.EAC_BD_TABLE.' '.
'WHERE ('.EAC_DEP.' = 971 '.
'OR '.EAC_DEP.' = 972 ) '.
'GROUP BY '.EAC_DEP;
$resultat_971_972 = mysql_query($requete_971_972, $GLOBALS['_ECHORO_']['bdd']) or die('
<H2 style='.STYLE_REQUETE.'>Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_971_972.
'<br/><br/><b>Erreur : </b>'.mysql_error());
//Requête spécifique au département de la Réunion
$requete_974 =
'SELECT * ,count('.ERC_DEP.') as nbr '.
'FROM '.ERC_BD_TABLE.' '.
'WHERE '.ERC_DEP.' = 974 '.
'GROUP BY '.ERC_DEP;
$resultat_974 = mysql_query($requete_974, $GLOBALS['_ECHORO_']['bdd']) or die('
<H2 style='.STYLE_REQUETE.'>Erreur de requête</H2>'.
'<b>Requete : </b>'.$requete_974.
'<br/><br/><b>Erreur : </b>'.mysql_error());
//Nous stockons les résultats de la requete département par département dans
//un tableau associatif : $tableau_dep_taxons.
//Pour chaque identifiant de département, nous sotckons dans le tableau le nombre
//de taxon présent.
$tableau_dep_taxons = array();
while ($ligne_01 = mysql_fetch_array($resultat_01)) {
$tableau_dep_taxons[$ligne_01[CD_ID]] = 0;
}
while ($ligne_02 = mysql_fetch_array($resultat_02)) {
$tableau_dep_taxons[$ligne_02[CD_ID]] = $ligne_02['nbr'];
}
//Résultat pour la requête spécifique aux départements des Antilles
while ($ligne_971_972 = mysql_fetch_array($resultat_971_972)) {
$tableau_dep_taxons[$ligne_971_972[EAC_DEP]] = $ligne_971_972['nbr'];
}
//Résultat pour la requête spécifique au département de la Réunion
while ($ligne_974 = mysql_fetch_array($resultat_974)) {
$tableau_dep_taxons[$ligne_974[EAC_DEP]] = $ligne_974['nbr'];
}
//Nous comptons le nombre de département possédant une liste :
$nbre_liste = 0;
foreach($tableau_dep_taxons as $cle => $valeur){
if ($valeur != 0) {
$nbre_liste++;
}
}
// Instanciation du tableau contenant les infos sur la table des zones géo.
$info_table_zg['nom_table_zone'] = CD_BD_TABLE;
$info_table_zg['nom_chp_id_zone'] = CD_ID;
$info_table_zg['nom_chp_nom_zone'] = CD_NOM;
$info_table_zg['nom_chp_rouge'] = CD_R;
$info_table_zg['nom_chp_vert'] = CD_V;
$info_table_zg['nom_chp_bleu'] = CD_B;
$info_table_zg['nom_chp_zone_sup'] = CD_PAYS;
$info_table_zg['tableau_valeurs_zone'] = $tableau_dep_taxons;
// Instanciation du tableau contenant les champs de la table action
$info_table_action['nom_table_action'] = CA_BD_TABLE;
$info_table_action['nom_chp_id_carte'] = CA_CARTE;
$info_table_action['nom_chp_id_zg_action'] = CA_ZG;
$info_table_action['nom_chp_type_zg'] = CA_TYPE_ZG;
$info_table_action['nom_chp_action'] = CA_ACTION;
$info_table_action['nom_chp_id_carte_destination'] = CA_CARTE_DESTINATION;
// +--------------------------------------------------------------------------------------------------+
// CRÉATION DES OBJETS CARTE ET ACTION
//Nous commençons par vider la chaine renvoyée par la fonction putFrame().
$res = '';
//Nous créons un nouvel objet carte.
$france = new Carto_Carte( ID_CARTE_FR_DPT,
ID_ZONE_GEO_CARTE_FR_DPT,
NOM_CARTE_FR_DPT,
ECHORO_FICHIER_CARTE_FR_DPT_MASQUE,
ECHORO_FICHIER_CARTE_FR_DPT,
ECHORO_CHEMIN_CARTE,
$info_table_zg,
$info_table_action);
//Les valeurs de coordonnées x et y du clic sur l'image,
//sont renvoyée automatiquement par le formulaire de la carte.
//A la première exécution du script ces variables sont vides.
$france->historique_cartes = $historique_cartes;
$france->image_x = $image_x;
$france->image_y = $image_y;
$france->liste_zone_carte = $liste_zone_carte;
$france->url = $GLOBALS['_ECHORO_']['url']->getURL();
//Nous définissons les couleurs de la carte:
$france->definirCouleurs (
COULEUR_ZERO_R, COULEUR_ZERO_V, COULEUR_ZERO_B,
COULEUR_MINI_R, COULEUR_MINI_V, COULEUR_MINI_B,
COULEUR_MEDIUM_R, COULEUR_MEDIUM_V, COULEUR_MEDIUM_B,
COULEUR_MAXI_R, COULEUR_MAXI_V, COULEUR_MAXI_B);
$france->definirFormuleColoriage('ecart_type');
// +--------------------------------------------------------------------------------------------------+
// GESTION AFFICHAGE CARTE OU LISTE
//Une fois l'arborescence créee, nous lançons la méthode imgform() pour récuperer le formulaire de la
//carte (dans $carte_france). S'il n'y a pas de carte à afficher imgform() renvoi false. Nous pouvons
//alors afficher la liste des taxons pour le département sélectioné.
//Initialisation de la variable $carte_france.
if(empty($carte_france)){
$carte_france = false;
}
//Récupération de la valeur de l'action:
//-false = affichage de la liste
//-true = affichage d'une carte (mais ici ce cas ne se présente jamais.
$carte_france = $france->donnerFormulaireImage();
// Nous testons $lettre pour affichier la carte ou la liste
if (isset($lettre)) {
//Affichage de la liste des taxon pour le département.
//L'utilisateur a cliqué sur une lettre dans la liste alphabétique
//sur un département.
//Nous récupérons toutes les infos sur le département :
$tableau_infoDep = echoro_recupererInfoDep($departement);
//Nous affectons les messages d'erreur
if($nombre_taxon != 0){
$message_alerte = message_alerte('01');
} else {
$message_alerte = message_alerte('02');
}
//La requete qui sélectionne les noms de taxons pour le département
//et la lettre transmis dans l'url par la variable $lettre.
if ($tableau_infoDep['NUMERO'] == 971 || $tableau_infoDep['NUMERO'] == 972) {
$requete_03 =
'SELECT '.ENT_NUM_TAXO.', '.ENT_NUM_NOMEN.', '.
ENT_NOM_COMPLET_02.', '.ECS_INTITULE.
' FROM '.EAC_BD_TABLE.', '.EANT_BD_TABLE.', '.ECS_BD_TABLE.
' WHERE ';
if ($lettre != 'tous'){
$requete_03 .= ENT_NOM_COMPLET_02.' LIKE "'.$lettre.'%"';
} else {
$requete_03 .= ENT_NOM_COMPLET_02.' LIKE "%"';
}
$requete_03 .=
' AND '.EAC_DEP.'='.$tableau_infoDep['NUMERO'].
' AND '.EAC_NUM_NOMEN.' = '.ENT_NUM_NOMEN.
' AND '.EAC_STATUT.' = '.ECS_ID.
' ORDER BY '.ENT_NOM_COMPLET_02.' ASC';
} elseif ($tableau_infoDep['NUMERO'] == 974) {
$requete_03 =
'SELECT '.ENT_NUM_TAXO.', '.ENT_NUM_NOMEN.', '.
ENT_NOM_COMPLET_02.', '.ECS_INTITULE.
' FROM '.ERC_BD_TABLE.', '.ERNT_BD_TABLE.', '.ERCS_BD_TABLE.
' WHERE ';
if ($lettre != "tous"){
$requete_03 .= ENT_NOM_COMPLET_02.' LIKE "'.$lettre.'%"';
} else {
$requete_03 .= ENT_NOM_COMPLET_02.' LIKE "%"';
}
$requete_03 .=
' AND '.ERC_DEP.'='.$tableau_infoDep['NUMERO'].
' AND '.ERC_NUM_NOMEN.' = '.ENT_NUM_NOMEN.
' AND '.ERC_STATUT.' = '.ECS_ID.
' ORDER BY '.ENT_NOM_COMPLET_02.' ASC';
} else {
$requete_03 =
'SELECT '.ENT_NUM_TAXO.', '.ENT_NUM_NOMEN.', '.
ENT_NOM_COMPLET_02.', '.ECS_INTITULE.
' FROM '.ECD_BD_TABLE.', '.ENT_BD_TABLE.', '.ECS_BD_TABLE.
' WHERE ';
if ($lettre != "tous"){
$requete_03 .= ENT_NOM_COMPLET_02.' LIKE "'.$lettre.'%"';
} else {
$requete_03 .= ENT_NOM_COMPLET_02.' LIKE "%"';
}
$requete_03 .=
' AND '.ECD_DEP.'='.$tableau_infoDep['NUMERO'].
' AND '.ECD_NUM_NOMEN.' = '.ENT_NUM_NOMEN.
' AND '.ECD_INDICE.' = '.ECS_ID.
' ORDER BY '.ENT_NOM_COMPLET_02.' ASC';
}
$resultat_export = mysql_query($requete_03, $GLOBALS['_ECHORO_']['bdd']) or die('
<h2 style='.STYLE_REQUETE.'>Erreur de requête</h2>'.
'<b>Requete : </b>'.$requete_03.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$GLOBALS['export_bool'] = true;
if (mysql_num_rows($resultat_export) == 0) {
$GLOBALS['export_bool'] = false;
}
if (isset($_GET['action']) && $_GET['action'] == 'export') {
// Gestion de l'export XLS
$i = 0;
if (isset($_GET['format']) && $_GET['format'] == 'xls') {
/** Inclusion de la classe PEAR de création de fichiers excell. */
require_once ECHORO_CHEMIN_API_PEAR.'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();
$nom_feuille = 'Département '.$tableau_infoDep['NUMERO'];
$nom_fichier = 'Chorologie - '.$nom_feuille.'.xls';
$worksheet = $workbook->addWorksheet($nom_feuille);
$format_titre = $workbook->addFormat();
$format_titre->setBold(1);
$format_titre->setSize(16);
$format_intro = $workbook->addFormat();
$format_intro->setBold(1);
$format_intro->setSize(12);
$worksheet->mergeCells($i++, 0, $i, 8);
if ($GLOBALS['lettre'] != 'tous') {
$titre = 'Export des taxons commençant par la lettre '.$GLOBALS['lettre'].' présents dans le département '.$tableau_infoDep['NUMERO'];
} else {
$titre = 'Export des taxons présents dans le département '.$tableau_infoDep['NUMERO'];
}
$worksheet->writeString(0, 0, $titre, $format_titre);
$worksheet->mergeCells(++$i, 0, $i, 8);
$titre_projet = 'Projet :';
$worksheet->writeString($i++, 0, $titre_projet, $format_intro);
$worksheet->mergeCells($i, 0, $i, 8);
$txt_projet = 'Phytochorologie départementale - Coordinateur : Philippe JULVE';
$worksheet->writeString($i++, 0, $txt_projet);
$worksheet->mergeCells($i, 0, $i, 8);
$titre_licence = 'Licence :';
$worksheet->writeString($i++, 0, $titre_licence, $format_intro);
$worksheet->mergeCells($i, 0, $i, 8);
$txt_licence = 'http://creativecommons.org/licenses/by-sa/2.0/fr/';
$worksheet->writeUrl($i++, 0, $txt_licence);
$worksheet->mergeCells($i, 0, $i, 8);
$titre_contributeur = 'Contributeurs :';
$worksheet->writeString($i++, 0, $titre_contributeur, $format_intro);
for ($j = 0; $j < count($tableau_infoDep['CORRESPONDANTS']); $j++){
if(ereg("[@]", $tableau_infoDep['CORRESPONDANTS'][$j]['COURRIEL'])){
$worksheet->writeString($i, 0, $tableau_infoDep['CORRESPONDANTS'][$j]['PRENOM']);
$worksheet->writeString($i, 1, $tableau_infoDep['CORRESPONDANTS'][$j]['NOM']);
$worksheet->writeString($i++, 2, $tableau_infoDep['CORRESPONDANTS'][$j]['COURRIEL']);
} else {
$worksheet->writeString($i, 0, $tableau_infoDep['CORRESPONDANTS'][$j]['PRENOM']);
$worksheet->writeString($i++, 1, $tableau_infoDep['CORRESPONDANTS'][$j]['NOM']);
}
}
$worksheet->mergeCells($i, 0, $i, 8);
$titre_source = 'Sources :';
$worksheet->writeString($i++, 0, $titre_source, $format_intro);
for ($j = 0; $j < count($tableau_infoDep['SOURCES']); $j++){
$worksheet->mergeCells($i, 0, $i, 8);
$worksheet->writeString($i++, 0, $tableau_infoDep['SOURCES'][$j]);
}
$worksheet->setColumn(0, 1, 20);
$worksheet->setColumn(2, 2, 60);
$worksheet->setColumn(3, 3, 20);
$worksheet->writeString($i, 0, 'N° taxonomique', $format_intro);
$worksheet->writeString($i, 1, 'N° nomenclatural', $format_intro);
$worksheet->writeString($i, 2, 'Nom complet', $format_intro);
$worksheet->writeString($i++, 3, 'Indice', $format_intro);
while ($ligne = mysql_fetch_array($resultat_export)) {
//echo '<pre>'.print_r($ligne).'</pre>';
$worksheet->writeNumber($i, 0, $ligne[ENT_NUM_TAXO]);
$worksheet->writeNumber($i, 1, $ligne[ENT_NUM_NOMEN]);
$worksheet->writeString($i, 2, $ligne[ENT_NOM_COMPLET_02]);
$worksheet->writeString($i++, 3, $ligne[ECS_INTITULE]);
}
$workbook->send($nom_fichier);
$workbook->close();
exit();
} else {
return remplaceEntiteHTLM(message_alerte('03'));
}
} else {
//Nous plaçons des données javascripts pour la gestion des infos bulles:
$tableau_inclusion = array($tableau_infoDep['NOM'], $nombre_taxon);
$res = inclusion_html('titre_liste', $tableau_inclusion);
$tableau_inclusion = array($tableau_infoDep['SOURCES'], $tableau_infoDep['CORRESPONDANTS']);
$res .= inclusion_html('info_dep', $tableau_inclusion);
$tablo_inclusion = array($lettre);
$res .= rechercheAlphabet($requete_03, $GLOBALS['_ECHORO_']['url']->getURL(), '&departement='.$tableau_infoDep['NUMERO'].'&nombre_taxon='.$nombre_taxon,
inclusion_html('tab_ouvre_liste_taxon', $tablo_inclusion), inclusion_html('tab_evol_ferme'), $tablo_formatLigne,
$tablo_formatResultat, $message_alerte, $fragmenteur);
return remplaceEntiteHTLM($res);
}
} else {
if (!$carte_france) {
//Affichage quand il n'y a plus de carte.
//Dans notre cas l'utilisateur a cliqué sur un département.
//Nous appelons la fonction javascript à insérer dans l'entête.
GEN_stockerFichierScript('echoro', ECHORO_CHEMIN_SCRIPT.'echoro.js');
//Nous récupérons l'identifiant du département transmis dans l'historique sous
//la forme france*numéro_departement
$tableau_departement = explode ('*',$france->historique);
//Nous récupérons toutes les infos sur le département :
$tableau_infoDep = echoro_recupererInfoDep($tableau_departement[1]);
//Attribution à la variable globale du numéro du département
$GLOBALS['departement'] = $tableau_infoDep['NUMERO'];
if ($tableau_infoDep['NUMERO'] == 971 || $tableau_infoDep['NUMERO'] == 972) {
$tablo_formatResultat[0]['Col_lien_href'] = $GLOBALS['_ECHORO_']['url_base']->getURL().'bdnfgm_nn';
} elseif ($tableau_infoDep['NUMERO'] == 974) {
$tablo_formatResultat[0]['Col_lien_href'] = $GLOBALS['_ECHORO_']['url_base']->getURL().'bdnfr_nn';
}
//Nous récupérons le nombre de taxons présent dans le département
if(isset($tableau_dep_taxons[$tableau_infoDep['NUMERO']]) && $tableau_dep_taxons[$tableau_infoDep['NUMERO']] != 0) {
$nombre_taxon = $tableau_dep_taxons[$tableau_infoDep['NUMERO']];
$message_alerte = message_alerte('01');
} else {
$nombre_taxon = 0;
$message_alerte = message_alerte('02');
}
//Nous affichons par défaut la liste des taxons dont le nom
//commence par A.
$lettre = 'A';
//La requete qui sélectionne les noms de taxons pour le département
//et la lettre A.
if ($tableau_infoDep['NUMERO'] == 971 || $tableau_infoDep['NUMERO'] == 972) {
$requete_04 =
'SELECT '.ENT_NUM_TAXO.', '.ENT_NUM_NOMEN.', '.
ENT_NOM_COMPLET_02.', '.ECS_INTITULE.
' FROM '.EAC_BD_TABLE.', '.EANT_BD_TABLE.', '.ECS_BD_TABLE.
' WHERE '.ENT_NOM_COMPLET_02.' LIKE "'.$lettre.'%"'.
' AND '.EAC_DEP.' = '.$tableau_infoDep['NUMERO'].
//' AND '.EAC_NUM_TAXO.' = '.ENT_NUM_TAXO.
' AND '.EAC_NUM_NOMEN.' = '.ENT_NUM_NOMEN.
' AND '.EAC_STATUT.' = '.ECS_ID.
' ORDER BY '.ENT_NOM_COMPLET_02.' ASC';
} elseif ($tableau_infoDep['NUMERO'] == 974) {
$requete_04 =
'SELECT '.ENT_NUM_TAXO.', '.ENT_NUM_NOMEN.', '.
ENT_NOM_COMPLET_02.', '.ECS_INTITULE.
' FROM '.ERC_BD_TABLE.', '.ERNT_BD_TABLE.', '.ERCS_BD_TABLE.
' WHERE '.ENT_NOM_COMPLET_02.' LIKE "'.$lettre.'%"'.
' AND '.ERC_DEP.' = '.$tableau_infoDep['NUMERO'].
//' AND '.ERC_NUM_TAXO.' = '.ENT_NUM_TAXO.
' AND '.ERC_NUM_NOMEN.' = '.ENT_NUM_NOMEN.
' AND '.ERC_STATUT.' = '.ECS_ID.
' ORDER BY '.ENT_NOM_COMPLET_02.' ASC';
} else {
$requete_04 =
'SELECT '.ENT_NUM_TAXO.', '.ENT_NUM_NOMEN.', '.
ENT_NOM_COMPLET_02.', '.ECS_INTITULE.
' FROM '.ECD_BD_TABLE.', '.ENT_BD_TABLE.', '.ECS_BD_TABLE.
' WHERE '.ENT_NOM_COMPLET_02.' LIKE "'.$lettre.'%"'.
' AND '.ECD_DEP.' = '.$tableau_infoDep['NUMERO'].
//' AND '.ECD_NUM_TAXO.' = '.ENT_NUM_TAXO.
' AND '.ECD_NUM_NOMEN.' = '.ENT_NUM_NOMEN.
' AND '.ECD_INDICE.' = '.ECS_ID.
' ORDER BY '.ENT_NOM_COMPLET_02.' ASC';
}
$resultat_export = mysql_query($requete_04, $GLOBALS['_ECHORO_']['bdd']) or die('
<h2 style='.STYLE_REQUETE.'>Erreur de requête</h2>'.
'<b>Requete : </b>'.$requete_04.
'<br/><br/><b>Erreur : </b>'.mysql_error());
$GLOBALS['export_bool'] = true;
if (mysql_num_rows($resultat_export) == 0) {
$GLOBALS['export_bool'] = false;
}
// Gestion de l'affichage XHTML
$tableau_inclusion = array($tableau_infoDep['NOM'], $nombre_taxon);
$res = inclusion_html('titre_liste', $tableau_inclusion);
$tableau_inclusion = array($tableau_infoDep['SOURCES'], $tableau_infoDep['CORRESPONDANTS']);
$res .= inclusion_html('info_dep', $tableau_inclusion);
//La fonction gérant l'affichage de la liste alphabétique et
//de l'affichage suite à une seléction dans la liste.
$tablo_inclusion = array($lettre);
$res .= FRAG_rechercherAvecAlphabet($requete_04, $GLOBALS['_ECHORO_']['url']->getURL(), '&departement='.$tableau_infoDep['NUMERO'].'&nombre_taxon='.$nombre_taxon,
inclusion_html('tab_ouvre_liste_taxon', $tablo_inclusion), inclusion_html('tab_evol_ferme'), $tablo_formatLigne,
$tablo_formatResultat, $message_alerte, $fragmenteur);
return remplaceEntiteHTLM($res);
} else {
//Affichage de la carte de france des départements.
//L'utilisateur arrive sur la page.
$tableau_inclusion = array($nbre_liste);
$res = inclusion_html('titre_carte', $tableau_inclusion);//Le titre dans une ligne de tableau
//Nous affichons la carte
$res .= $carte_france;
$res .= inclusion_html('avertissement_carte');//Commentaire dans des lignes de tableau
return remplaceEntiteHTLM($res);
}//Fin du test de $carte_france.
}//Fin du test de $lettre
}
function afficherContenuPied()
{
return inclusion_html('pied_page');
}
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.12 2006/05/31 15:14:51 jp_milcent
* Amélioration de la gestion de l'export xls (suite).
*
* Revision 1.11 2006/05/31 15:11:29 jp_milcent
* Amélioration de la gestion de l'export xls.
*
* Revision 1.10 2006/05/31 14:43:35 jp_milcent
* Correction de la gestion des sessions pour l'affichage de la carte.
* Ajout de l'export au format xls.
*
* Revision 1.9 2005/06/30 15:23:02 jpm
* Utilisation d'un fichier javascript à part.
*
* Revision 1.8 2005/05/31 13:45:10 jpm
* Mise en place de la gestion entités html.
*
* Revision 1.7 2005/05/19 07:37:47 jpm
* Correction des bogues et derniers réglages avant mise en ligne du site v4.
*
* Revision 1.6 2005/03/15 15:10:40 jpm
* Ajout de l'API formulaire.
*
* Revision 1.5 2005/02/24 17:06:17 jpm
* Changement du nom d'une fonction.
*
* Revision 1.4 2005/02/23 17:31:04 jpm
* Modification de noms de classes css.
*
* Revision 1.3 2005/02/22 19:36:03 jpm
* Suppression de code html superflu.
*
* Revision 1.2 2005/02/22 16:39:20 jpm
* Changement divers pour l'adaptation à Papyrus.
*
* Revision 1.1 2005/02/21 19:36:57 jpm
* Ajout du code de l'appli de tela v3.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>