Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
2
/**
3
 
4
 David Delon david.delon@clapas.net 2007
5
 
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
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
10
 sur le site "http://www.cecill.info".
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
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
15
 titulaire des droits patrimoniaux et les concédants successifs.
16
 
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
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 à
21
 manipuler et qui le réserve donc à des développeurs et des professionnels
22
 avertis possédant  des  connaissances  informatiques approfondies.  Les
23
 utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
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,
26
 à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
27
 
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
30
 termes.
31
 
32
 */
33
 
34
 
35
 // in : utf8
36
 // out : utf8
37
 
38
 
39
 /*
40
 * Name.php
41
 *
42
 * Cas d'utilisation :
43
 * Service recherche nom retenu depuis un numero nomenclatural pour la BDNFF
44
 *
45
 * 1 : L'application recoit un numero nomenclatural
46
 * 2 : L'application retourne le nom retenu associé
47
 */
48
 
49
 
50
Class Name extends DBAccessor {
51
 
52
 
53
	var $config;
54
 
55
	function Name($config) {
56
 
57
		$this->config=$config;
58
	}
59
 
60
 
61
	function getElement($uid){
62
 
63
			$value=array();
64
 
65
			// Num nomenclatural
66
			if (isset($uid[0])) {
67
				$DB=$this->connectDB($this->config);
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 ".
70
        	       			" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
71
        	       			" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
72
        	       			" , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif ".
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,  " .
75
        	    			"  	  eflore_naturaliste_intitule_abreviation AS auteur_bex ".
76
			        	    "   , eflore_naturaliste_intitule_abreviation AS auteur_b ".
77
        				    "   , eflore_naturaliste_intitule_abreviation AS auteur_mex ".
78
			        	    "   , eflore_naturaliste_intitule_abreviation AS auteur_m ".
79
			     " WHERE a.esn_id_nom= '".$uid[0]. "'".
80
			     " AND a.esn_id_version_projet_taxon = 25 ".
81
			     " AND en_ce_rang = enrg_id_rang" .
82
			     " AND en_id_nom = a.esn_id_nom" .
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  ".
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 ".
87
			     " AND a.esn_id_version_projet_taxon=en_id_version_projet_nom ";
88
 
89
			}
90
			else {
91
				print "[\"null\"]";
92
            	return ;
93
			}
94
 
95
 
96
		    $res =& $DB->query($query);
97
 
98
 
99
	        if (DB::isError($res)) {
100
    	        die($res->getMessage());
101
        	}
102
 
103
 
104
			$value=array("null");
105
 
106
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
107
            	    $value=array(($this->formaterNom($row)));
108
	       }
109
 
110
 
111
 
112
			$json = new Services_JSON();
113
			$output = $json->encode($value);
114
			print($output);
115
 
116
 
117
 
118
	}
119
 
120
	function getRessource(){
121
 
122
			print "[\"null\"]";
123
            return;
124
	}
125
 
126
 
127
	 function formaterNom($rawnom) {
128
                // Constitution du nom:
129
                $nom = '';
130
 
131
                if ($rawnom['en_nom_supra_generique'] != '') {
132
                    $nom .= $rawnom['en_nom_supra_generique'];
133
                } else if ($rawnom['en_epithete_infra_generique'] != '') {
134
                    $nom .= $rawnom['en_epithete_infra_generique'];
135
                } else {
136
                        if ($rawnom['en_nom_genre'] != '') {
137
                            $nom .=  $rawnom['en_nom_genre'];
138
                        }
139
                        if ($rawnom['en_epithete_espece']!= '') {
140
                            $nom .= ' '.$rawnom['en_epithete_espece'];
141
                        }
142
                        if ($rawnom['en_epithete_infra_specifique'] != '') {
143
                                if (!empty($rawnom['enrg_abreviation_rang'])) {
144
                                        $nom .= ' '.$rawnom['enrg_abreviation_rang'].'';
145
                                }
146
                                $nom .= ' '.$rawnom['en_epithete_infra_specifique'];
147
                        }
148
 
149
                }
150
                return $nom .retournerAuteur($rawnom) ;
151
	 }
152
}
153
 
154
 
155
	function retournerAuteur($rawnom) {
156
		$auteurs = '';
157
		$auteur_basio = '';
158
		$auteur_modif = '';
159
		if (!empty($rawnom['abreviation_auteur_basio_ex']) && $rawnom['abreviation_auteur_basio_ex']!='-' )  {
160
		    $auteur_basio .= $rawnom['abreviation_auteur_basio_ex'];
161
		    if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
162
		        $auteur_basio .= ' ex '.$rawnom['abreviation_auteur_basio'];
163
		    }
164
		} else if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {
165
		    $auteur_basio .= $rawnom['abreviation_auteur_basio'];
166
		}
167
 
168
		if (!empty($rawnom['abreviation_auteur_modif_ex']) && $rawnom['abreviation_auteur_modif_ex']!='-') {
169
		    $auteur_modif .= $rawnom['abreviation_auteur_modif_ex'];
170
		    if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {
171
		        $auteur_modif .= ' ex '.$rawnom['abreviation_auteur_modif'];
172
		    }
173
		} else if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-')  {
174
		    $auteur_modif .= $rawnom['abreviation_auteur_modif'];
175
		}
176
 
177
		if (!empty($auteur_modif)) {
178
		    $auteurs = ' ('.$auteur_basio.') '.$auteur_modif;
179
		} elseif (!empty($auteur_basio)) {
180
		    $auteurs = ' '.$auteur_basio;
181
		}
182
 
183
		return $auteurs ;
184
	}
185
 
186
/* +--Fin du code ---------------------------------------------------------------------------------------+
187
* $Log$
188
* Revision 1.3  2008-01-30 08:57:28  ddelon
189
* fin mise en place mygwt
190
*
191
* Revision 1.2  2007-05-21 18:13:30  ddelon
192
* Refactoring et documentation
193
*
194
*
195
*/
196
 
197
 
198
 
199
 
200
?>