Rev 162 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
59 | jpm | 1 | <?php |
2 | /*vim: set expandtab tabstop=4 shiftwidth=4: */ |
||
3 | // +------------------------------------------------------------------------------------------------------+ |
||
4 | // | PHP version 4.3 | |
||
5 | // +------------------------------------------------------------------------------------------------------+ |
||
6 | // | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
||
7 | // +------------------------------------------------------------------------------------------------------+ |
||
8 | // | This file is part of eFlore-consultation. | |
||
9 | // | | |
||
10 | // | Foobar is free software; you can redistribute it and/or modify | |
||
11 | // | it under the terms of the GNU General Public License as published by | |
||
12 | // | the Free Software Foundation; either version 2 of the License, or | |
||
13 | // | (at your option) any later version. | |
||
14 | // | | |
||
15 | // | Foobar is distributed in the hope that it will be useful, | |
||
16 | // | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
||
17 | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
||
18 | // | GNU General Public License for more details. | |
||
19 | // | | |
||
20 | // | You should have received a copy of the GNU General Public License | |
||
21 | // | along with Foobar; if not, write to the Free Software | |
||
22 | // | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
||
23 | // +------------------------------------------------------------------------------------------------------+ |
||
168 | jpm | 24 | // CVS : $Id: eflore_recherche_nomenclature.inc.php,v 1.10 2005-05-19 07:40:06 jpm Exp $ |
59 | jpm | 25 | /** |
26 | * Affichage du moteur de recherche nomenclatural et de ses résultats. |
||
27 | * |
||
28 | * Ce script fournit le code html correspondant aux moteurs de recherche nomenclatural et ses résultats. |
||
29 | * |
||
30 | *@package eFlore |
||
31 | //Auteur original : |
||
32 | *@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
||
33 | //Autres auteurs : |
||
34 | *@author Aucun |
||
35 | *@copyright Tela-Botanica 2000-2004 |
||
168 | jpm | 36 | *@version $Revision: 1.10 $ $Date: 2005-05-19 07:40:06 $ |
59 | jpm | 37 | // +------------------------------------------------------------------------------------------------------+ |
38 | */ |
||
39 | |||
40 | // +------------------------------------------------------------------------------------------------------+ |
||
41 | // | ENTÊTE du PROGRAMME | |
||
42 | // +------------------------------------------------------------------------------------------------------+ |
||
43 | |||
127 | jpm | 44 | function remplacerUrlFicheNom($arguments) { |
45 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_FICHE); |
||
46 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ONGLET, EFLORE_LG_URL_ONGLET_SYNTHESE); |
||
47 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NN, $arguments[0]); |
||
48 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NVP, $arguments[1]); |
||
49 | return $GLOBALS['_EFLORE_']['url']->getURL(); |
||
50 | } |
||
59 | jpm | 51 | |
52 | // +------------------------------------------------------------------------------------------------------+ |
||
53 | // | CORPS du PROGRAMME | |
||
54 | // +------------------------------------------------------------------------------------------------------+ |
||
55 | $sortie .= '<h2>'.EFLORE_LG_RECH_NOM_TITRE.'</h2>'; |
||
56 | |||
57 | // -------------------------------------------------------------------------------------------------------- |
||
58 | // Création du formulaire |
||
60 | jpm | 59 | // Ajout du paramêtre action à l'url courante. |
60 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_RECH_NOM); |
||
59 | jpm | 61 | // Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()... |
155 | jpm | 62 | $eflore_form = new HTML_QuickForm('eflore_form_nomenclature', 'post', str_replace('&', '&', $GLOBALS['_EFLORE_']['url']->getUrl())); |
60 | jpm | 63 | $tab_index = EFLORE_RECH_NOM_FORM_TAB; |
156 | jpm | 64 | $eflore_squelette =& $eflore_form->defaultRenderer(); |
155 | jpm | 65 | $eflore_squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'); |
66 | $eflore_squelette->setElementTemplate( '<li>'."\n". |
||
59 | jpm | 67 | '{label}'."\n". |
68 | '{element}'."\n". |
||
127 | jpm | 69 | '<!-- BEGIN required --><span class="symbole_obligatoire">'.EFLORE_LG_FORM_SYMBOLE_OBLIGATOIRE.'</span><!-- END required -->'."\n". |
60 | jpm | 70 | '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
59 | jpm | 71 | '</li>'."\n"); |
155 | jpm | 72 | $eflore_form->accept($eflore_squelette); |
73 | $eflore_form->removeAttribute('name'); |
||
59 | jpm | 74 | |
162 | jpm | 75 | $partie_menu_debut = '<fieldset>'."\n".'<legend>'.EFLORE_LG_RECH_NOM_FORM_TITRE.'</legend><ul>'."\n"; |
155 | jpm | 76 | $eflore_form->addElement('html', $partie_menu_debut); |
59 | jpm | 77 | |
78 | $id = 'eflore_nom'; |
||
168 | jpm | 79 | $aso_attributs = array( 'id'=> $id, 'class' => 'champ', 'tabindex' => $tab_index++, |
59 | jpm | 80 | 'size' => EFLORE_RECH_NOM_FORM_NOM_SIZE, |
81 | 'maxlength' => EFLORE_RECH_NOM_FORM_NOM_MAXLENGTH, |
||
82 | 'onclick' => "javascript: this.value='';"); |
||
83 | $label = '<label for="'.$id.'">'.EFLORE_LG_RECH_NOM_FORM_NOM.'</label>'; |
||
155 | jpm | 84 | $eflore_form->addElement('text', $id, $label, $aso_attributs); |
59 | jpm | 85 | |
162 | jpm | 86 | $liste_type_nom_debut = '<li><ul>'."\n"; |
155 | jpm | 87 | $eflore_form->addElement('html', $liste_type_nom_debut); |
59 | jpm | 88 | |
162 | jpm | 89 | $id = 'eflore_type_nom_scientifique'; |
90 | $name = 'eflore_type_nom'; |
||
59 | jpm | 91 | $valeur = 'nom_scientifique'; |
92 | $aso_attributs = array( 'id'=> $id, 'tabindex' => $tab_index++); |
||
60 | jpm | 93 | $label = ''; |
162 | jpm | 94 | $eflore_form->addElement('radio', $name, $label, EFLORE_LG_RECH_NOM_FORM_TYPE_NOM_SCI, $valeur, $aso_attributs); |
155 | jpm | 95 | |
162 | jpm | 96 | $id = 'eflore_type_nom_vernaculaire'; |
97 | $name = 'eflore_type_nom'; |
||
59 | jpm | 98 | $valeur = 'nom_vernaculaire'; |
99 | $aso_attributs = array( 'id'=> $id, 'tabindex' => $tab_index++); |
||
60 | jpm | 100 | $label = ''; |
162 | jpm | 101 | $eflore_form->addElement('radio', $name, $label, EFLORE_LG_RECH_NOM_FORM_TYPE_NOM_VER, $valeur, $aso_attributs); |
102 | |||
103 | if (isset($_REQUEST[$name])) { |
||
104 | switch ($_REQUEST[$name]) { |
||
105 | case 'nom_scientifique' : |
||
106 | $eflore_form->setDefaults(array($name => 'nom_scientifique')); |
||
60 | jpm | 107 | break; |
162 | jpm | 108 | case 'nom_vernaculaire' : |
109 | $eflore_form->setDefaults(array($name => 'nom_vernaculaire')); |
||
60 | jpm | 110 | break; |
111 | } |
||
112 | } else { |
||
162 | jpm | 113 | $eflore_form->setDefaults(array($name => 'nom_scientifique')); |
60 | jpm | 114 | } |
59 | jpm | 115 | |
162 | jpm | 116 | $liste_type_nom_fin = '</ul></li>'."\n"; |
155 | jpm | 117 | $eflore_form->addElement('html', $liste_type_nom_fin); |
59 | jpm | 118 | |
127 | jpm | 119 | $id = 'eflore_valider_nom'; |
59 | jpm | 120 | $aso_attributs = array('id'=> $id, 'class' => 'champ', 'tabindex' => $tab_index++); |
155 | jpm | 121 | $eflore_form->addElement('submit', $id, EFLORE_LG_RECH_NOM_FORM_VALIDER, $aso_attributs); |
59 | jpm | 122 | |
162 | jpm | 123 | $partie_entete_fin = "\n".'</ul></fieldset>'; |
155 | jpm | 124 | $eflore_form->addElement('html', $partie_entete_fin); |
59 | jpm | 125 | |
126 | // Instanciation avec les valeur par défaut |
||
149 | jpm | 127 | if (isset($_SESSION['_EFLORE_']['rechercher'])) { |
155 | jpm | 128 | $eflore_form->setDefaults($_SESSION['_EFLORE_']['rechercher']); |
149 | jpm | 129 | } |
59 | jpm | 130 | |
131 | // Transformation en XHTML du formulaire |
||
155 | jpm | 132 | $sortie .= $eflore_form->toHTML()."\n"; |
59 | jpm | 133 | |
60 | jpm | 134 | // -------------------------------------------------------------------------------------------------------- |
135 | // Lancement de la recherche |
||
127 | jpm | 136 | if (isset($_REQUEST['eflore_nom']) && $_REQUEST['eflore_nom'] != '' && !eregi("^%{1,}$", $_REQUEST['eflore_nom']) ) { |
137 | // Formatage de la chaine à rechercher |
||
138 | $_REQUEST['eflore_nom'] = '%'.str_replace(' ', '%', $_REQUEST['eflore_nom']).'%'; |
||
60 | jpm | 139 | if ($_REQUEST['eflore_type_nom'] == 'nom_scientifique') { |
140 | // Recherche sur les noms scientifiques |
||
127 | jpm | 141 | $contenu = file_get_contents(sprintf(EFLORE_URL_LISTE_NOM_LATIN, rawurlencode($_REQUEST['eflore_nom']))); |
60 | jpm | 142 | |
143 | //Analyse du squelette |
||
144 | require_once 'HTML/Template/IT.php'; |
||
145 | $squelette = new HTML_Template_IT(); |
||
127 | jpm | 146 | $squelette->setTemplate($contenu, FALSE, FALSE); |
60 | jpm | 147 | |
148 | // Indique l'url pour obtenir fiche d'un nom |
||
149 | $squelette->setCurrentBlock('corps'); |
||
150 | // Ajout du paramêtre action à l'url courante. |
||
151 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_FICHE); |
||
152 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ONGLET, EFLORE_LG_URL_ONGLET_SYNTHESE); |
||
153 | $GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NN, ''); |
||
154 | $squelette->setVariable('UrlFicheNom', $GLOBALS['_EFLORE_']['url']->getURL()); |
||
155 | $squelette->parseCurrentBlock('corps'); |
||
156 | |||
157 | // Récupère le bloc "corps" |
||
127 | jpm | 158 | $sortie .= $squelette->get('corps'); |
60 | jpm | 159 | } else if ($_REQUEST['eflore_type_nom'] == 'nom_vernaculaire') { |
160 | // Recherche sur les noms vernaculaires |
||
127 | jpm | 161 | $contenu = file_get_contents(sprintf(EFLORE_URL_LISTE_NOM_VERNA, rawurlencode($_REQUEST['eflore_nom']))); |
60 | jpm | 162 | |
127 | jpm | 163 | //Analyse du squelette |
164 | require_once 'HTML/Template/ITX.php'; |
||
165 | $squelette = new HTML_Template_ITX(); |
||
166 | $squelette->setTemplate($contenu, FALSE, FALSE); |
||
167 | |||
168 | // Indique l'url pour obtenir fiche d'un nom |
||
169 | $squelette->setCurrentBlock('corps'); |
||
170 | $squelette->setCallbackFunction('UrlFicheNom', 'remplacerUrlFicheNom'); |
||
171 | $squelette->performCallback(); |
||
172 | $squelette->parseCurrentBlock('corps'); |
||
173 | |||
174 | // Récupère le bloc "corps" |
||
175 | $sortie .= $squelette->get('corps'); |
||
176 | |||
60 | jpm | 177 | } |
178 | } |
||
179 | |||
59 | jpm | 180 | /* +--Fin du code ----------------------------------------------------------------------------------------+ |
181 | * |
||
182 | * $Log: not supported by cvs2svn $ |
||
168 | jpm | 183 | * Revision 1.9 2005/03/15 12:57:16 jpm |
184 | * Modification du code XHTML. |
||
185 | * |
||
162 | jpm | 186 | * Revision 1.8 2005/02/28 15:38:47 jpm |
187 | * Correction erreur due à un changement de nom. |
||
188 | * |
||
159 | jpm | 189 | * Revision 1.7 2005/02/23 12:39:27 jpm |
190 | * Correction bogue lié à QuickForm. |
||
191 | * |
||
156 | jpm | 192 | * Revision 1.6 2005/02/22 19:27:10 jpm |
193 | * Changement de nom de variables. |
||
194 | * Suppression de l'attribut nam de la balise form via une méthode de HTML_Common. |
||
195 | * |
||
155 | jpm | 196 | * Revision 1.5 2005/02/22 17:43:53 jpm |
197 | * Suppression de référence posant problème. |
||
198 | * |
||
154 | jpm | 199 | * Revision 1.4 2005/02/15 13:00:23 jpm |
200 | * Ajout d'un test pour initialiser une variable. |
||
201 | * |
||
149 | jpm | 202 | * Revision 1.3 2005/01/28 19:47:55 jpm |
203 | * Ajout de la recherche pour les taxons. |
||
204 | * |
||
127 | jpm | 205 | * Revision 1.2 2005/01/03 19:44:40 jpm |
206 | * Ajout de la gestion de l'action "fiche". |
||
207 | * |
||
60 | jpm | 208 | * Revision 1.1 2004/12/23 20:05:17 jpm |
209 | * Début prise en maine eflore-consultation. |
||
59 | jpm | 210 | * |
60 | jpm | 211 | * |
59 | jpm | 212 | * +-- Fin du code ----------------------------------------------------------------------------------------+ |
213 | */ |
||
214 | ?> |