Subversion Repositories eFlore/Archives.eflore-consultation-v1

Rev

Rev 8 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1                                                                                      |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org)                                         |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Integrateur eFlore.                                                             |
// |                                                                                                      |
// | 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_ancien.php,v 1.3 2006-11-09 18:09:43 jp_milcent Exp $
/**
* Moteur de recherche eFlore pour les Antilles et la Réunion
*
*@package eFlore
*@subpackage Ancien
//Auteur original :
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
//Autres auteurs :
*@author        Aucun
*@copyright     Tela-Botanica 2000-2005
*@version       $Revision: 1.3 $ $Date: 2006-11-09 18:09:43 $
// +------------------------------------------------------------------------------------------------------+
*/

// +------------------------------------------------------------------------------------------------------+
// |                                            ENTETE du PROGRAMME                                       |
// +------------------------------------------------------------------------------------------------------+
/** Inclusion du fichier de configuration général de l'application.*/
require_once 'client'.GEN_SEP.'eflore_ancien'.GEN_SEP.'configuration'.GEN_SEP.'eflore_config.inc.php';
/** Inclusion du fichier de configuration de la base de données de l'application.*/
require_once EF_PATH_CONFIG.'eflore_config_bdd.inc.php';

/** Inclusion de l'API Débogage */
require_once EF_PATH_API_BOG.'BOG_sql.fonct.php';

/** Inclusion du fichier permettant d'inclure les données dans du XHTML.*/
require_once EF_PATH_BIBLIO.'eflore_affichage_xhtml.fonct.php';
/** Inclusion du fichier permettant de réaliser les statistiques.*/
require_once EF_PATH_BIBLIO.'eflore_statistique.fonct.php';

/** Definition de la variable globale stokant la connexion à la base de données. */
$GLOBALS['db_ef'] = DB::connect(EF_DSN);

/** Inclusion du fichier de langue de l'application eflore. */
require_once EF_PATH_LANGUE.'eflore_langue_'.EF_LANGUE.'.inc.php';

// Ajout d'une feuille de style propre à eFlore.
GEN_stockerStyleExterne('eflore', EF_PATH_STYLE.'eflore.css');

// Stockage des scripts de l'application
GEN_stockerFichierScript('eflore', EF_PATH_SCRIPT.'eflore.js');

// +------------------------------------------------------------------------------------------------------+
// |                                            CORPS du PROGRAMME                                        |
// +------------------------------------------------------------------------------------------------------+
/** Fonction afficherContenuCorps() - Fonction appelé par le gestionnaire Papyrus.
*
* Elle retourne le contenu de l'application.
*
* @return  string  du code XHTML correspondant au contenu renvoyé par l'application.
*/
function afficherContenuCorps()
{
    global $servicexml, $xslt, $numnom, $numclass, $numtaxo, $alerte, $baseURL;
    
    $tab_champ = array();
    $res = '';
    $type_recherche = '';
    $envoyer_stat = '';
    
    if (isset($_POST['eflore_chercher'])) {
        $eflore_chercher = 'chercher';
    } else if (isset($_GET['eflore_chercher'])) {
        $eflore_chercher = 'chercher';
    }
    
    if (isset($_SESSION['radical']) ) {
        if (isset($_POST['radical'])) {
            if ($_SESSION['radical'] == $_POST['radical']) {
                $radical = $_SESSION['radical'];
            } else {
                $radical = $_POST['radical'];
                $_SESSION['radical'] = $radical;
            }
        } else if (isset($_GET['radical'])) {
            if ($_SESSION['radical'] == $_GET['radical']) {
                $radical = $_SESSION['radical'];
            } else {
                $radical = $_GET['radical'];
                $_SESSION['radical'] = $radical;
            }
        } else {
            $radical = $_SESSION['radical'];
        }
    } else if (!isset($_SESSION['radical']) ) {
        if (isset($_POST['radical'])) {
                $radical = $_POST['radical'];
                $_SESSION['radical'] = $radical;
        } else if (isset($_GET['radical'])) {
            $radical = $_GET['radical'];
            $_SESSION['radical'] = $radical;
        } else {
            $radical = '';
        }
    }
    
    if (isset($_SESSION['recherche']) ) {
        if (isset($_POST['recherche'])) {
            if ($_SESSION['recherche'] == $_POST['recherche']) {
                $recherche = $_SESSION['recherche'];
            } else {
                $recherche = $_POST['recherche'];
                $_SESSION['recherche'] = $recherche;
            }
        } else if (isset($_GET['recherche'])) {
            if ($_SESSION['recherche'] == $_GET['recherche']) {
                $recherche = $_SESSION['recherche'];
            } else {
                $recherche = $_GET['recherche'];
                $_SESSION['recherche'] = $recherche;
            }
        } else {
            $recherche = $_SESSION['recherche'];
        }
    } else if (!isset($_SESSION['recherche']) ) {
        if (isset($_POST['recherche'])) {
                $recherche = $_POST['recherche'];
                $_SESSION['recherche'] = $recherche;
        } else if (isset($_GET['recherche'])) {
            $recherche = $_GET['recherche'];
            $_SESSION['recherche'] = $recherche;
        } else {
            $recherche = '';
        }
    }
    
    if (isset($_SESSION['flore']) ) {
        if (isset($_POST['flore'])) {
            if ($_SESSION['flore'] == $_POST['flore']) {
                $flore = $_SESSION['flore'];
            } else {
                $flore = $_POST['flore'];
                $_SESSION['flore'] = $flore;
            }
        } else if (isset($_GET['flore'])) {
            if ($_SESSION['flore'] == $_GET['flore']) {
                $flore = $_SESSION['flore'];
            } else {
                $flore = $_GET['flore'];
                $_SESSION['flore'] = $flore;
            }
        } else {
            $flore = $_SESSION['flore'];
        }
    } else if (!isset($_SESSION['flore'])) {
        if (isset($_POST['flore'])) {
                $flore = $_POST['flore'];
                $_SESSION['flore'] = $flore;
        } else if (isset($_GET['flore'])) {
            $flore = $_GET['flore'];
            $_SESSION['flore'] = $flore;
        } else {
            $flore = '';
        }
    }
    
    $baseURL = $GLOBALS['_GEN_commun']['url']->getURL();
    
    //ATTENTION : Spécifique Papyrus:
    if ( $GLOBALS['_EF_ANCIEN_']['maintenance'] != 'false' ) {//On teste si on est entrain de maintenir l'application ou pas
        $date_fin_maintenance = $GLOBALS['_EF_ANCIEN_']['maintenance'];
        $res =  inclusion_html('debut_ligne_alerte').
                "L'index des plantes est en cours de maintenance jusqu'à ".
                "$date_fin_maintenance.<br /> Veuillez nous excusez pour ce désagrément.".
                inclusion_html('fin_ligne_alerte');
        return $res;
    }
    
    if ($GLOBALS['_EF_ANCIEN_']['statistique'] == 'true'){//On teste si on fait les stats ou pas
        //Attribution d'une valeur à la variable type de recherche pour les stats
        //en fonction du serviceXML
        if ($recherche == 'LATIN'){//dans le cas d'une recherche par nom scientifique
            $type_recherche = 'Nom scientifique';
        } elseif ($recherche == 'VERNA'){//dans le cas d'une recherche par nom vernaculaire
            $type_recherche = 'Nom vernaculaire';
        }
        
        //Ajout des valeurs standard au tableau contenant les champs spécifiques à la tables des données stat d'eflore
        $tab_champ['ESD_CHAINE_RECHERCHE'] = $radical;
        $tab_champ['ESD_TYPE_RECHERCHE'] = $type_recherche;
    }
    //ATTENTION : FIN Spécifique Papyrus.
    
    $ef_suite = false;
    if (isset($eflore_chercher) && !empty($recherche) && !empty($radical) && empty($numnom) && empty($numtaxo)) {
        $envoyer_stat = true;//active l'envoie des données stat
        if (eregi("^%{0,}[A-Za-zÀ-ÖØ-öø-ÿ]%{0,}[A-Za-zÀ-ÖØ-öø-ÿ]?%{0,}$", $radical) ) {
            $alerte = message_alerte("02");//alerte utilisation d'au moins 3 caractères alphabétiques
            // Ajout du champ résultat au tableau associatif contenant les champs spéficique à la table des données statistiques d'eflore
            $tab_champ['ESD_RESULTAT'] = 'moins de 3 caractères';
        } elseif (eregi("^%{1,}$", $radical) ) {
            $alerte = message_alerte('03');//alerte n'accepte pas seulement le symbole %
            // Ajout du champ résultat au tableau associatif contenant les champs spéficique à la table des données statistiques d'eflore
            $tab_champ['ESD_RESULTAT'] = 'seulement des %';
        } elseif (eregi("[&<>\"]{1,}", $radical) ) {
            $alerte = message_alerte('04');//alerte n'accepte pas le symbole "<> dans le radical
            // Ajout du champ résultat au tableau associatif contenant les champs spéficique à la table des données statistiques d'eflore
            $tab_champ['ESD_RESULTAT'] = 'symbole incorrect';
        } else {
            $ef_suite = true;
        }
    } elseif (isset($eflore_chercher) && !empty($recherche) && $radical == '' && empty($numnom) && empty($numtaxo)) {
        $alerte = message_alerte('01');//alerte champ de saisie vide
        // Ajout du champ résultat au tableau associatif contenant les champs spéficique à la table des données statistiques d'eflore
        $tab_champ['ESD_RESULTAT'] = 'sans radical';
        // Active l'envoie des données stat
        $envoyer_stat = true;
        //Ok car $ef_suite par défaut à false
    } elseif (!isset($eflore_chercher) && empty($numnom) && empty($numtaxo)) {
        //Ok car $ef_suite par défaut à false
    } else {
        $ef_suite = true;
    }
    
    // Affichage
    if ($ef_suite == true) {
        include_once EF_PATH_ROOT.'eflore_transfo_xslt.inc.php';
    } else {
        // Affichage moteur de recherche
        $res .= inclusion_html('rechercher');
        $res .= inclusion_html('rechercher_aide');
    }
    
    // Statistique
    if ($envoyer_stat == true && $GLOBALS['_EF_ANCIEN_']['statistique'] == 'true'){//On teste si on fait les stats ou pas
        efloreDonneeStat($tab_champ);
    }
    
    return $res;
}

/** Fonction afficherContenuPied() - Fonction appelé par le gestionnaire Papyrus.
*
* Elle retourne le pied de l'application.
*
* @return  string  du code XHTML correspondant au pied renvoyé par l'application.
*/
function afficherContenuPied()
{
    return inclusion_html('pied_page');
}

// +------------------------------------------------------------------------------------------------------+
// |                                            PIED du PROGRAMME                                         |
// +------------------------------------------------------------------------------------------------------+



/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2  2005/06/01 18:26:21  jpm
* Ajout d'éléments de css, scripts et amélioration de l'affichage.
*
* Revision 1.1  2005/05/24 15:57:48  jpm
* Gestion de l'ancienne base.
*
* Revision 1.3  2005/05/19 15:22:46  jpm
* Ajout du remplacement des & par des &amp;
*
* Revision 1.2  2005/05/19 13:17:02  jpm
* Ajout d'une balise div pour encadre le contenu du wikini.
*
* Revision 1.1  2005/03/02 17:47:05  jpm
* Ajout des fichiers necessaires à l'intégrateur de wikini.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>