Subversion Repositories eFlore/Applications.cel

Rev

Rev 877 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
/**
 
 David Delon david.delon@clapas.net 2007

 Ce logiciel est r�gi par la licence CeCILL soumise au droit fran�ais et
 respectant les principes de diffusion des logiciels libres. Vous pouvez
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
 de la licence CeCILL telle que diffus�e par le CEA, le CNRS et l'INRIA 
 sur le site "http://www.cecill.info".
 En contrepartie de l'accessibilit� au code source et des droits de copie,
 de modification et de redistribution accord�s par cette licence, il n'est
 offert aux utilisateurs qu'une garantie limit�e.  Pour les m�mes raisons,
 seule une responsabilit� restreinte p�se sur l'auteur du programme,  le
 titulaire des droits patrimoniaux et les conc�dants successifs.

 A cet �gard  l'attention de l'utilisateur est attir�e sur les risques
 associ�s au chargement,  � l'utilisation,  � la modification et/ou au
 d�veloppement et � la reproduction du logiciel par l'utilisateur �tant 
 donn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe � 
 manipuler et qui le r�serve donc � des d�veloppeurs et des professionnels
 avertis poss�dant  des  connaissances  informatiques approfondies.  Les
 utilisateurs sont donc invit�s � charger  et  tester  l'ad�quation  du
 logiciel � leurs besoins dans des conditions permettant d'assurer la
 s�curit� de leurs syst�mes et ou de leurs donn�es et, plus g�n�ralement, 
 � l'utiliser et l'exploiter dans les m�mes conditions de s�curit�. 
                                                                                                      
 Le fait que vous puissiez acc�der � cet en-t�te signifie que vous avez 
 pris connaissance de la licence CeCILL, et que vous en avez accept� les
 termes.
 
 */

// in utf8
// out utf8

/*
 * NameMap.php  
 * 
 * Cas d'utilisation :
 * Service recherche d'image a partir d'un numero nomenclatural
 * 
 * 1: Le service recoit un numero nomenclatural
 * 2: Le service calcul le numero taxonomique associe
 * 3: Le service recherche une carte disponible
 *              A: Pas de carte disponible, generation de l'image
 */

/** Constante stockant l'URL o. sont accessible les cartes. Le %s correspond au nom du fichier.*/
define('EF_URL_CARTO', 'http://www.tela-botanica.org/sites/eflore/generique/images/cartes/');
// france_BDNFF_4.02_nt8523.png
/** Constante stockant l'URL d'appel du module chorologie*/
define('EF_URL_CHORO', 'http://www.tela-botanica.org/eflore/BDNFF/4.02/nn/');
// 182/chorologie


Class NameMap extends DBAccessor  {


        var $config;
        var $extendMapProductor;
        
        
        function NameMap($config) {

                $this->config=$config;
        }
        
        

        function getElement($uid){


                // Num nomenclatural : recherche nt 
                $DB=$this->connectDB($this->config);
            $query = "SELECT DISTINCT b.esn_id_taxon FROM eflore_nom, eflore_nom_rang," .
             " eflore_selection_nom a, eflore_selection_nom b".
             " WHERE a.esn_id_nom= ".$uid[0]. 
             " AND a.esn_id_version_projet_taxon = 25 ".
             " AND a.esn_id_taxon=b.esn_id_taxon ".
             " AND b.esn_ce_statut=3 ".
             " AND a.esn_id_version_projet_taxon=b.esn_id_version_projet_taxon" .
             " AND en_ce_rang = enrg_id_rang" .
             " AND en_id_nom = b.esn_id_nom" .
             " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
             
            
                $res =& $DB->query($query);
                            
                            
                if (DB::isError($res)) {
                die($res->getMessage());
                }

  
                while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
                $nt=$row['esn_id_taxon'];
            }

            // si le taxon cherché n'existe pas 
            if(!$nt) { 
                $json = new Services_JSON();
                $output = $json->encode(array(''));
                print($output);
                exit();
            }
            
                        $file = EF_URL_CARTO."france_BDNFF_4.02_nt".$nt.".png";
                        $file_headers = @get_headers($file);
                        if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
                        }
                        else {
                                $service=EF_URL_CHORO.$uid[0].'/chorologie';
                                @get_headers($service);
                        }           
        
                        $json = new Services_JSON();
                        $output = $json->encode(array($file));
                        print($output);
                        
        }
        
}

/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.1  2008-01-30 08:57:28  ddelon
* fin mise en place mygwt
*
* Revision 1.1  2007-06-06 13:31:16  ddelon
* v0.09
*
*
*
* 
*/

 
?>