Subversion Repositories eFlore/Applications.cel

Rev

Rev 416 | Rev 890 | 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
 
34
 
35
 // in : utf8
35
 // in : utf8
36
 // out : utf8
36
 // out : utf8
37
 
37
 
38
 
38
 
39
 /*
39
 /*
40
 * Name.php  
40
 * Name.php  
41
 * 
41
 * 
42
 * Cas d'utilisation :
42
 * Cas d'utilisation :
43
 * Service recherche nom retenu depuis un numero nomenclatural pour la BDNFF
43
 * Service recherche nom retenu depuis un numero nomenclatural pour la BDNFF
44
 * 
44
 * 
45
 * 1 : L'application recoit un numero nomenclatural
45
 * 1 : L'application recoit un numero nomenclatural
46
 * 2 : L'application retourne le nom retenu associé
46
 * 2 : L'application retourne le nom retenu associ�
47
 */
47
 */
48
 
48
 
49
 
49
 
50
Class Name extends DBAccessor {
50
Class Name extends DBAccessor {
51
 
51
 
52
 
52
 
53
	var $config;
53
	var $config;
54
	
54
	
55
	function Name($config) {
55
	function Name($config) {
56
 
56
 
57
		$this->config=$config;
57
		$this->config=$config;
58
	}
58
	}
59
	
59
	
60
 
60
 
61
	function getElement($uid){
61
	function getElement($uid){
62
 
62
 
63
			$value=array();
63
			$value=array();
64
			
64
			
65
			// Num nomenclatural 
65
			// Num nomenclatural 
66
			if (isset($uid[0])) {
66
			if (isset($uid[0])) {
67
				$DB=$this->connectDB($this->config);
67
				$DB=$this->connectDB($this->config);
68
			    	      $query = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,". 
68
			    	      $query = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,". 
69
        	       			"   auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
69
        	       			"   auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
70
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
70
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
71
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
71
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
72
        	       			" , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif ".
72
        	       			" , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif ".
73
        	       			" , en_epithete_espece, en_epithete_infra_specifique, enrg_abreviation_rang, en_id_nom" .
73
        	       			" , en_epithete_espece, en_epithete_infra_specifique, enrg_abreviation_rang, en_id_nom" .
74
        	       			" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom a,  " .
74
        	       			" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom a,  " .
75
        	    			"  	  eflore_naturaliste_intitule_abreviation AS auteur_bex ".
75
        	    			"  	  eflore_naturaliste_intitule_abreviation AS auteur_bex ".
76
			        	    "   , eflore_naturaliste_intitule_abreviation AS auteur_b ".
76
			        	    "   , eflore_naturaliste_intitule_abreviation AS auteur_b ".
77
        				    "   , eflore_naturaliste_intitule_abreviation AS auteur_mex ".
77
        				    "   , eflore_naturaliste_intitule_abreviation AS auteur_mex ".
78
			        	    "   , eflore_naturaliste_intitule_abreviation AS auteur_m ".
78
			        	    "   , eflore_naturaliste_intitule_abreviation AS auteur_m ".
79
			     " WHERE a.esn_id_nom= '".$uid[0]. "'".
79
			     " WHERE a.esn_id_nom= '".$uid[0]. "'".
80
			     " AND a.esn_id_version_projet_taxon = 25 ".
80
			     " AND a.esn_id_version_projet_taxon = 25 ".
81
			     " AND en_ce_rang = enrg_id_rang" .
81
			     " AND en_ce_rang = enrg_id_rang" .
82
			     " AND en_id_nom = a.esn_id_nom" .
82
			     " AND en_id_nom = a.esn_id_nom" .
83
			     " AND en_ce_auteur_basio_ex = auteur_bex.enaia_id_intitule_naturaliste_abrege ".
83
			     " AND en_ce_auteur_basio_ex = auteur_bex.enaia_id_intitule_naturaliste_abrege ".
84
        	     " AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege  ".
84
        	     " AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege  ".
85
        	     " AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ". 
85
        	     " AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ". 
86
        	     " AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
86
        	     " AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
87
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
87
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
88
		 
88
		 
89
			}
89
			}
90
			else {
90
			else {
91
				print "[\"null\"]"; 
91
				print "[\"null\"]"; 
92
            	return ;
92
            	return ;
93
			}
93
			}
94
		
94
		
95
		
95
		
96
		    $res =& $DB->query($query);
96
		    $res =& $DB->query($query);
97
			    
97
			    
98
			    
98
			    
99
	        if (DB::isError($res)) {
99
	        if (DB::isError($res)) {
100
    	        die($res->getMessage());
100
    	        die($res->getMessage());
101
        	}
101
        	}
102
 
102
 
103
 
103
 
104
			$value=array("null"); 
104
			$value=array("null"); 
105
  
105
  
106
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
106
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
107
            	    $value=array(($this->formaterNom($row)));
107
            	    $value=array(($this->formaterNom($row)));
108
	       }
108
	       }
109
    	    
109
    	    
110
	                
110
	                
111
			
-
 
112
			$json = new Services_JSON();
111
			
113
			$output = $json->encode($value);
112
			$output = json_encode($value);
114
			print($output);
113
			print($output);
115
		
114
		
116
 
115
 
117
 
116
 
118
	}
117
	}
119
	
118
	
120
	function getRessource(){
119
	function getRessource(){
121
		
120
		
122
			print "[\"null\"]"; 
121
			print "[\"null\"]"; 
123
            return;
122
            return;
124
	}
123
	}
125
	
124
	
126
	
125
	
127
	 function formaterNom($rawnom) {
126
	 function formaterNom($rawnom) {
128
                // Constitution du nom:
127
                // Constitution du nom:
129
                $nom = '';
128
                $nom = '';
130
 
129
 
131
                if ($rawnom['en_nom_supra_generique'] != '') {
130
                if ($rawnom['en_nom_supra_generique'] != '') {
132
                    $nom .= $rawnom['en_nom_supra_generique'];
131
                    $nom .= $rawnom['en_nom_supra_generique'];
133
                } else if ($rawnom['en_epithete_infra_generique'] != '') {
132
                } else if ($rawnom['en_epithete_infra_generique'] != '') {
134
                    $nom .= $rawnom['en_epithete_infra_generique'];
133
                    $nom .= $rawnom['en_epithete_infra_generique'];
135
                } else {
134
                } else {
136
                        if ($rawnom['en_nom_genre'] != '') {
135
                        if ($rawnom['en_nom_genre'] != '') {
137
                            $nom .=  $rawnom['en_nom_genre']; 
136
                            $nom .=  $rawnom['en_nom_genre']; 
138
                        }
137
                        }
139
                        if ($rawnom['en_epithete_espece']!= '') {
138
                        if ($rawnom['en_epithete_espece']!= '') {
140
                            $nom .= ' '.$rawnom['en_epithete_espece'];
139
                            $nom .= ' '.$rawnom['en_epithete_espece'];
141
                        }
140
                        }
142
                        if ($rawnom['en_epithete_infra_specifique'] != '') {
141
                        if ($rawnom['en_epithete_infra_specifique'] != '') {
143
                                if (!empty($rawnom['enrg_abreviation_rang'])) {
142
                                if (!empty($rawnom['enrg_abreviation_rang'])) {
144
                                        $nom .= ' '.$rawnom['enrg_abreviation_rang'].'';
143
                                        $nom .= ' '.$rawnom['enrg_abreviation_rang'].'';
145
                                }
144
                                }
146
                                $nom .= ' '.$rawnom['en_epithete_infra_specifique'];
145
                                $nom .= ' '.$rawnom['en_epithete_infra_specifique'];
147
                        }
146
                        }
148
                        
147
                        
149
                }
148
                }
150
                return $nom .retournerAuteur($rawnom) ;
149
                return $nom .retournerAuteur($rawnom) ;
151
	 }
150
	 }
152
}
151
}
153
 
152
 
154
 
153
 
155
	function retournerAuteur($rawnom) {
154
	function retournerAuteur($rawnom) {
156
		$auteurs = '';
155
		$auteurs = '';
157
		$auteur_basio = '';
156
		$auteur_basio = '';
158
		$auteur_modif = '';
157
		$auteur_modif = '';
159
		if (!empty($rawnom['abreviation_auteur_basio_ex']) && $rawnom['abreviation_auteur_basio_ex']!='-' )  {
158
		if (!empty($rawnom['abreviation_auteur_basio_ex']) && $rawnom['abreviation_auteur_basio_ex']!='-' )  {
160
		    $auteur_basio .= $rawnom['abreviation_auteur_basio_ex'];
159
		    $auteur_basio .= $rawnom['abreviation_auteur_basio_ex'];
161
		    if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
160
		    if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
162
		        $auteur_basio .= ' ex '.$rawnom['abreviation_auteur_basio'];
161
		        $auteur_basio .= ' ex '.$rawnom['abreviation_auteur_basio'];
163
		    }
162
		    }
164
		} else if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
163
		} else if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
165
		    $auteur_basio .= $rawnom['abreviation_auteur_basio'];
164
		    $auteur_basio .= $rawnom['abreviation_auteur_basio'];
166
		}
165
		}
167
		
166
		
168
		if (!empty($rawnom['abreviation_auteur_modif_ex']) && $rawnom['abreviation_auteur_modif_ex']!='-') {
167
		if (!empty($rawnom['abreviation_auteur_modif_ex']) && $rawnom['abreviation_auteur_modif_ex']!='-') {
169
		    $auteur_modif .= $rawnom['abreviation_auteur_modif_ex'];
168
		    $auteur_modif .= $rawnom['abreviation_auteur_modif_ex'];
170
		    if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {
169
		    if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {
171
		        $auteur_modif .= ' ex '.$rawnom['abreviation_auteur_modif'];
170
		        $auteur_modif .= ' ex '.$rawnom['abreviation_auteur_modif'];
172
		    }
171
		    }
173
		} else if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-')  {
172
		} else if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-')  {
174
		    $auteur_modif .= $rawnom['abreviation_auteur_modif'];
173
		    $auteur_modif .= $rawnom['abreviation_auteur_modif'];
175
		}
174
		}
176
		
175
		
177
		if (!empty($auteur_modif)) {
176
		if (!empty($auteur_modif)) {
178
		    $auteurs = ' ('.$auteur_basio.') '.$auteur_modif;
177
		    $auteurs = ' ('.$auteur_basio.') '.$auteur_modif;
179
		} elseif (!empty($auteur_basio)) {
178
		} elseif (!empty($auteur_basio)) {
180
		    $auteurs = ' '.$auteur_basio;
179
		    $auteurs = ' '.$auteur_basio;
181
		}
180
		}
182
		
181
		
183
		return $auteurs ;
182
		return $auteurs ;
184
	}	
183
	}	
185
 
184
 
186
/* +--Fin du code ---------------------------------------------------------------------------------------+
185
/* +--Fin du code ---------------------------------------------------------------------------------------+
187
* $Log$
186
* $Log$
188
* Revision 1.3  2008-01-30 08:57:28  ddelon
187
* Revision 1.3  2008-01-30 08:57:28  ddelon
189
* fin mise en place mygwt
188
* fin mise en place mygwt
190
*
189
*
191
* Revision 1.2  2007-05-21 18:13:30  ddelon
190
* Revision 1.2  2007-05-21 18:13:30  ddelon
192
* Refactoring et documentation
191
* Refactoring et documentation
193
*
192
*
194
* 
193
* 
195
*/
194
*/
196
 
195
 
197
 
196
 
198
    	
197
    	
199
 
198
 
200
?>
199
?>