Rev 423 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// in : utf8// out : utf8/**David Delon david.delon@clapas.net 2007Ce logiciel est r�gi par la licence CeCILL soumise au droit fran�ais etrespectant les principes de diffusion des logiciels libres. Vous pouvezutiliser, modifier et/ou redistribuer ce programme sous les conditionsde la licence CeCILL telle que diffus�e par le CEA, le CNRS et l'INRIAsur 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'estoffert aux utilisateurs qu'une garantie limit�e. Pour les m�mes raisons,seule une responsabilit� restreinte p�se sur l'auteur du programme, letitulaire des droits patrimoniaux et les conc�dants successifs.A cet �gard l'attention de l'utilisateur est attir�e sur les risquesassoci�s au chargement, � l'utilisation, � la modification et/ou aud�veloppement et � la reproduction du logiciel par l'utilisateur �tantdonn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe �manipuler et qui le r�serve donc � des d�veloppeurs et des professionnelsavertis poss�dant des connaissances informatiques approfondies. Lesutilisateurs sont donc invit�s � charger et tester l'ad�quation dulogiciel � leurs besoins dans des conditions permettant d'assurer las�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 avezpris connaissance de la licence CeCILL, et que vous en avez accept� lestermes.*//** Informations recues en iso8859-1* NameSearch.php** Cas d'utilisation :* Service completion nom scientifique** 1 : L'application recoit un debut de nom scientifique* 2 : Si le genre recu est >1, l'application retourne les 50 premieres genre commencant par ce prefixe* 3 : Si l'espece est presente l'application retourne les 50 premieres genre+espece commencant par ce prefixe*/Class NameSearch extends DBAccessor {var $config;function NameSearch($config) {$this->config=$config;}function getElement($uid){$value=array();// Genre et Especeif (isset($uid[1]) && isset($uid[0])) {$genre=$uid[0];$espece=$uid[1];if (strlen($espece) > 0 ) {$espece=ereg_replace('\*+','%',$espece);$DB=$this->connectDB($this->config);$query="SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,"." auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex "." , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio "." , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex "." , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif "." , en_epithete_espece, en_epithete_infra_specifique, enrg_abreviation_rang, en_id_nom, esn_ce_statut" ." FROM eflore_nom, eflore_nom_rang, " ." eflore_naturaliste_intitule_abreviation AS auteur_bex "." , eflore_naturaliste_intitule_abreviation AS auteur_b "." , eflore_naturaliste_intitule_abreviation AS auteur_mex "." , eflore_naturaliste_intitule_abreviation AS auteur_m "." , eflore_selection_nom"." WHERE en_id_version_projet_nom = '25' AND en_nom_genre LIKE '".$DB->escapeSimple($genre)."%' " ." AND en_ce_rang > 160 " ." AND en_epithete_espece like '".$DB->escapeSimple($espece)."%' AND en_ce_rang = enrg_id_rang " ." AND en_ce_auteur_basio_ex = auteur_bex.enaia_id_intitule_naturaliste_abrege "." AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege "." AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege "." AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege "." AND esn_id_version_projet_taxon=en_id_version_projet_nom " ." AND esn_id_nom= en_id_nom "." ORDER BY esn_ce_statut, en_ce_rang, en_epithete_espece, en_nom_genre LIMIT 50";}else {print "[]";return;}}else {if (isset($uid[0])) {$genre=$uid[0];$genre=ereg_replace('\*+','%',$genre);if ((strlen($genre) > 1) && ($genre != '%')) {$DB=$this->connectDB($this->config);$query="SELECT DISTINCT en_nom_genre, en_id_nom, 0 as esn_ce_statut FROM eflore_nom WHERE en_id_version_projet_nom = '25'" ."AND en_ce_rang = 160 " ."AND en_nom_genre LIKE '".$DB->escapeSimple($genre)."%' ORDER BY esn_ce_statut, en_nom_genre LIMIT 50";}else {print "[]";return ;}}else {print "[]";return ;}}$res =& $DB->query($query);if (DB::isError($res)) {die($res->getMessage());}while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {$value[]=array($this->formaterNom($row),$row['en_id_nom'], $row['esn_ce_statut']);}$output = json_encode($value);print($output);}function getRessource(){print "[]";return;}function formaterNom($rawnom) {// Constitution du nom:$nom = '';if ($rawnom['en_nom_supra_generique'] != '') {$nom .= $rawnom['en_nom_supra_generique'];} else if ($rawnom['en_epithete_infra_generique'] != '') {$nom .= $rawnom['en_epithete_infra_generique'];} else {if ($rawnom['en_nom_genre'] != '') {$nom .= $rawnom['en_nom_genre'];}if ($rawnom['en_epithete_espece']!= '') {$nom .= ' '.$rawnom['en_epithete_espece'];}if ($rawnom['en_epithete_infra_specifique'] != '') {if (!empty($rawnom['enrg_abreviation_rang'])) {$nom .= ' '.$rawnom['enrg_abreviation_rang'].'';}$nom .= ' '.$rawnom['en_epithete_infra_specifique'];}}return $nom .retournerAuteur($rawnom) ;}}function retournerAuteur($rawnom) {$auteurs = '';$auteur_basio = '';$auteur_modif = '';if (!empty($rawnom['abreviation_auteur_basio_ex']) && $rawnom['abreviation_auteur_basio_ex']!='-' ) {$auteur_basio .= $rawnom['abreviation_auteur_basio_ex'];if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {$auteur_basio .= ' ex '.$rawnom['abreviation_auteur_basio'];}} else if (!empty($rawnom['abreviation_auteur_basio']) && $rawnom['abreviation_auteur_basio']!='-') {$auteur_basio .= $rawnom['abreviation_auteur_basio'];}if (!empty($rawnom['abreviation_auteur_modif_ex']) && $rawnom['abreviation_auteur_modif_ex']!='-') {$auteur_modif .= $rawnom['abreviation_auteur_modif_ex'];if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {$auteur_modif .= ' ex '.$rawnom['abreviation_auteur_modif'];}} else if (!empty($rawnom['abreviation_auteur_modif']) && $rawnom['abreviation_auteur_modif']!='-') {$auteur_modif .= $rawnom['abreviation_auteur_modif'];}if (!empty($auteur_modif)) {$auteurs = ' ('.$auteur_basio.') '.$auteur_modif;} elseif (!empty($auteur_basio)) {$auteurs = ' '.$auteur_basio;}return $auteurs ;}/* +--Fin du code ---------------------------------------------------------------------------------------+* $Log$* Revision 1.6 2008-01-30 08:57:28 ddelon* fin mise en place mygwt** Revision 1.5 2007-05-21 18:13:30 ddelon* Refactoring et documentation***/?>