Subversion Repositories eFlore/Applications.cel

Rev

Rev 416 | Rev 877 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 416 Rev 423
1
<?php
1
<?php
2
/**
2
/**
3
 
3
 
4
 David Delon david.delon@clapas.net 2007
4
 David Delon david.delon@clapas.net 2007
5
 
5
 
6
 Ce logiciel est r�gi par la licence CeCILL soumise au droit fran�ais et
6
 Ce logiciel est r�gi par la licence CeCILL soumise au droit fran�ais et
7
 respectant les principes de diffusion des logiciels libres. Vous pouvez
7
 respectant les principes de diffusion des logiciels libres. Vous pouvez
8
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
8
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
9
 de la licence CeCILL telle que diffus�e par le CEA, le CNRS et l'INRIA 
9
 de la licence CeCILL telle que diffus�e par le CEA, le CNRS et l'INRIA 
10
 sur le site "http://www.cecill.info".
10
 sur le site "http://www.cecill.info".
11
 En contrepartie de l'accessibilit� au code source et des droits de copie,
11
 En contrepartie de l'accessibilit� au code source et des droits de copie,
12
 de modification et de redistribution accord�s par cette licence, il n'est
12
 de modification et de redistribution accord�s par cette licence, il n'est
13
 offert aux utilisateurs qu'une garantie limit�e.  Pour les m�mes raisons,
13
 offert aux utilisateurs qu'une garantie limit�e.  Pour les m�mes raisons,
14
 seule une responsabilit� restreinte p�se sur l'auteur du programme,  le
14
 seule une responsabilit� restreinte p�se sur l'auteur du programme,  le
15
 titulaire des droits patrimoniaux et les conc�dants successifs.
15
 titulaire des droits patrimoniaux et les conc�dants successifs.
16
 
16
 
17
 A cet �gard  l'attention de l'utilisateur est attir�e sur les risques
17
 A cet �gard  l'attention de l'utilisateur est attir�e sur les risques
18
 associ�s au chargement,  � l'utilisation,  � la modification et/ou au
18
 associ�s au chargement,  � l'utilisation,  � la modification et/ou au
19
 d�veloppement et � la reproduction du logiciel par l'utilisateur �tant 
19
 d�veloppement et � la reproduction du logiciel par l'utilisateur �tant 
20
 donn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe � 
20
 donn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe � 
21
 manipuler et qui le r�serve donc � des d�veloppeurs et des professionnels
21
 manipuler et qui le r�serve donc � des d�veloppeurs et des professionnels
22
 avertis poss�dant  des  connaissances  informatiques approfondies.  Les
22
 avertis poss�dant  des  connaissances  informatiques approfondies.  Les
23
 utilisateurs sont donc invit�s � charger  et  tester  l'ad�quation  du
23
 utilisateurs sont donc invit�s � charger  et  tester  l'ad�quation  du
24
 logiciel � leurs besoins dans des conditions permettant d'assurer la
24
 logiciel � leurs besoins dans des conditions permettant d'assurer la
25
 s�curit� de leurs syst�mes et ou de leurs donn�es et, plus g�n�ralement, 
25
 s�curit� de leurs syst�mes et ou de leurs donn�es et, plus g�n�ralement, 
26
 � l'utiliser et l'exploiter dans les m�mes conditions de s�curit�. 
26
 � l'utiliser et l'exploiter dans les m�mes conditions de s�curit�. 
27
                                                                                                      
27
                                                                                                      
28
 Le fait que vous puissiez acc�der � cet en-t�te signifie que vous avez 
28
 Le fait que vous puissiez acc�der � cet en-t�te signifie que vous avez 
29
 pris connaissance de la licence CeCILL, et que vous en avez accept� les
29
 pris connaissance de la licence CeCILL, et que vous en avez accept� les
30
 termes.
30
 termes.
31
 
31
 
32
 */
32
 */
33
 
33
 
34
// in utf8
34
// in utf8
35
// out utf8
35
// out utf8
36
 
36
 
37
/*
37
/*
38
 * NameMap.php  
38
 * NameMap.php  
39
 * 
39
 * 
40
 * Cas d'utilisation :
40
 * Cas d'utilisation :
41
 * Service recherche d'image a partir d'un numero nomenclatural
41
 * Service recherche d'image a partir d'un numero nomenclatural
42
 * 
42
 * 
43
 * 1: Le service recoit un numero nomenclatural
43
 * 1: Le service recoit un numero nomenclatural
44
 * 2: Le service calcul le numero taxonomique associe
44
 * 2: Le service calcul le numero taxonomique associe
45
 * 3: Le service recherche une carte disponible
45
 * 3: Le service recherche une carte disponible
46
 * 		A: Pas de carte disponible, generation de l'image
46
 * 		A: Pas de carte disponible, generation de l'image
47
 */
47
 */
48
 
48
 
49
/** Constante stockant l'URL o. sont accessible les cartes. Le %s correspond au nom du fichier.*/
49
/** Constante stockant l'URL o. sont accessible les cartes. Le %s correspond au nom du fichier.*/
50
define('EF_URL_CARTO', 'http://www.tela-botanica.org/sites/eflore/generique/images/cartes/');
50
define('EF_URL_CARTO', 'http://www.tela-botanica.org/sites/eflore/generique/images/cartes/');
51
// france_BDNFF_4.02_nt8523.png
51
// france_BDNFF_4.02_nt8523.png
52
/** Constante stockant l'URL d'appel du module chorologie*/
52
/** Constante stockant l'URL d'appel du module chorologie*/
53
define('EF_URL_CHORO', 'http://www.tela-botanica.org/eflore/BDNFF/4.02/nn/');
53
define('EF_URL_CHORO', 'http://www.tela-botanica.org/eflore/BDNFF/4.02/nn/');
54
// 182/chorologie
54
// 182/chorologie
55
 
55
 
56
 
56
 
57
Class NameMap extends DBAccessor  {
57
Class NameMap extends DBAccessor  {
58
 
58
 
59
 
59
 
60
	var $config;
60
	var $config;
61
	var $extendMapProductor;
61
	var $extendMapProductor;
62
	
62
	
63
	
63
	
64
	function NameMap($config) {
64
	function NameMap($config) {
65
 
65
 
66
		$this->config=$config;
66
		$this->config=$config;
67
	}
67
	}
68
	
68
	
69
	
69
	
70
 
70
 
71
	function getElement($uid){
71
	function getElement($uid){
72
 
72
 
73
 
73
 
74
		// Num nomenclatural : recherche nt 
74
		// Num nomenclatural : recherche nt 
75
		$DB=$this->connectDB($this->config);
75
		$DB=$this->connectDB($this->config);
76
	    $query = "SELECT DISTINCT b.esn_id_taxon FROM eflore_nom, eflore_nom_rang," .
76
	    $query = "SELECT DISTINCT b.esn_id_taxon FROM eflore_nom, eflore_nom_rang," .
77
	     " eflore_selection_nom a, eflore_selection_nom b".
77
	     " eflore_selection_nom a, eflore_selection_nom b".
78
	     " WHERE a.esn_id_nom= ".$uid[0]. 
78
	     " WHERE a.esn_id_nom= ".$uid[0]. 
79
	     " AND a.esn_id_version_projet_taxon = 25 ".
79
	     " AND a.esn_id_version_projet_taxon = 25 ".
80
	     " AND a.esn_id_taxon=b.esn_id_taxon ".
80
	     " AND a.esn_id_taxon=b.esn_id_taxon ".
81
	     " AND b.esn_ce_statut=3 ".
81
	     " AND b.esn_ce_statut=3 ".
82
	     " AND a.esn_id_version_projet_taxon=b.esn_id_version_projet_taxon" .
82
	     " AND a.esn_id_version_projet_taxon=b.esn_id_version_projet_taxon" .
83
	     " AND en_ce_rang = enrg_id_rang" .
83
	     " AND en_ce_rang = enrg_id_rang" .
84
	     " AND en_id_nom = b.esn_id_nom" .
84
	     " AND en_id_nom = b.esn_id_nom" .
85
	     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
85
	     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
86
	     
86
	     
87
	    
87
	    
88
	        $res =& $DB->query($query);
88
	        $res =& $DB->query($query);
89
			    
89
			    
90
			    
90
			    
91
	        if (DB::isError($res)) {
91
	        if (DB::isError($res)) {
92
    	        die($res->getMessage());
92
    	        die($res->getMessage());
93
        	}
93
        	}
94
 
94
 
95
  
95
  
96
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
96
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
97
                $nt=$row['esn_id_taxon'];
97
                $nt=$row['esn_id_taxon'];
98
    	    }
98
    	    }
99
 
99
 
100
            // si le taxon cherché n'existe pas 
100
            // si le taxon cherché n'existe pas 
101
            if(!$nt) { 
101
            if(!$nt) { 
102
                $json = new Services_JSON();
-
 
103
                $output = $json->encode(array(''));
102
                $output = json_encode(array(''));
104
                print($output);
103
                print($output);
105
                exit();
104
                exit();
106
            }
105
            }
107
            
106
            
108
			$file = EF_URL_CARTO."france_BDNFF_4.02_nt".$nt.".png";
107
			$file = EF_URL_CARTO."france_BDNFF_4.02_nt".$nt.".png";
109
			$file_headers = @get_headers($file);
108
			$file_headers = @get_headers($file);
110
			if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
109
			if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
111
			}
110
			}
112
			else {
111
			else {
113
				$service=EF_URL_CHORO.$uid[0].'/chorologie';
112
				$service=EF_URL_CHORO.$uid[0].'/chorologie';
114
				@get_headers($service);
113
				@get_headers($service);
115
			}    	    
114
			}    	    
116
	
-
 
117
			$json = new Services_JSON();
115
	
118
			$output = $json->encode(array($file));
116
			$output = json_encode(array($file));
119
			print($output);
117
			print($output);
120
			
118
			
121
	}
119
	}
122
	
120
	
123
}
121
}
124
 
122
 
125
/* +--Fin du code ---------------------------------------------------------------------------------------+
123
/* +--Fin du code ---------------------------------------------------------------------------------------+
126
* $Log$
124
* $Log$
127
* Revision 1.1  2008-01-30 08:57:28  ddelon
125
* Revision 1.1  2008-01-30 08:57:28  ddelon
128
* fin mise en place mygwt
126
* fin mise en place mygwt
129
*
127
*
130
* Revision 1.1  2007-06-06 13:31:16  ddelon
128
* Revision 1.1  2007-06-06 13:31:16  ddelon
131
* v0.09
129
* v0.09
132
*
130
*
133
*
131
*
134
*
132
*
135
* 
133
* 
136
*/
134
*/
137
 
135
 
138
 
136
 
139
?>
137
?>