21,7 → 21,7 |
// | along with Foobar; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: eflore_recherche_nomenclature.inc.php,v 1.10 2005-05-19 07:40:06 jpm Exp $ |
// CVS : $Id: eflore_recherche_nomenclature.inc.php,v 1.11 2005-06-09 18:10:25 jpm Exp $ |
/** |
* Affichage du moteur de recherche nomenclatural et de ses résultats. |
* |
33,7 → 33,7 |
//Autres auteurs : |
*@author Aucun |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.10 $ $Date: 2005-05-19 07:40:06 $ |
*@version $Revision: 1.11 $ $Date: 2005-06-09 18:10:25 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
40,97 → 40,84 |
// +------------------------------------------------------------------------------------------------------+ |
// | ENTÊTE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
|
function remplacerUrlFicheNom($arguments) { |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_FICHE); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ONGLET, EFLORE_LG_URL_ONGLET_SYNTHESE); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NN, $arguments[0]); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NVP, $arguments[1]); |
return $GLOBALS['_EFLORE_']['url']->getURL(); |
// Gestion de la session pour le nom |
if (isset($_SESSION['eflore_nom']) ) { |
if (isset($_REQUEST['eflore_nom']) AND $_SESSION['eflore_nom'] != $_REQUEST['eflore_nom']) { |
$_SESSION['eflore_nom'] = $_REQUEST['eflore_nom']; |
} |
|
} else { |
if (isset($_REQUEST['eflore_nom'])) { |
$_SESSION['eflore_nom'] = $_REQUEST['eflore_nom']; |
} else { |
$_SESSION['eflore_nom'] = ''; |
} |
} |
// Gestion de la session pour le référenciel |
if (isset($_SESSION['eflore_referenciel']) ) { |
if (isset($_REQUEST['eflore_referenciel']) AND $_SESSION['eflore_referenciel'] != $_REQUEST['eflore_referenciel']) { |
$_SESSION['eflore_referenciel'] = $_REQUEST['eflore_referenciel']; |
} |
} else { |
if (isset($_REQUEST['eflore_referenciel'])) { |
$_SESSION['eflore_referenciel'] = $_REQUEST['eflore_referenciel']; |
} else { |
$_SESSION['eflore_referenciel'] = 3; |
} |
} |
// Gestion de la session pour le type du nom |
if (isset($_SESSION['eflore_type_nom']) ) { |
if (isset($_REQUEST['eflore_type_nom']) AND $_REQUEST['eflore_type_nom'] == 'nom_scientifique') { |
$_SESSION['eflore_type_nom_scientifique'] = 'checked="checked"'; |
$_SESSION['eflore_type_nom_vernaculaire'] = ''; |
} elseif (isset($_REQUEST['eflore_type_nom']) AND $_REQUEST['eflore_type_nom'] == 'nom_vernaculaire') { |
$_SESSION['eflore_type_nom_vernaculaire'] = 'checked="checked"'; |
$_SESSION['eflore_type_nom_scientifique'] = ''; |
} |
} else { |
if (isset($_REQUEST['eflore_type_nom']) AND $_REQUEST['eflore_type_nom'] == 'nom_scientifique') { |
$_SESSION['eflore_type_nom_scientifique'] = 'checked="checked"'; |
$_SESSION['eflore_type_nom_vernaculaire'] = ''; |
} elseif (isset($_REQUEST['eflore_type_nom']) AND $_REQUEST['eflore_type_nom'] == 'nom_vernaculaire') { |
$_SESSION['eflore_type_nom_vernaculaire'] = 'checked="checked"'; |
$_SESSION['eflore_type_nom_scientifique'] = ''; |
} else { |
$_SESSION['eflore_type_nom_scientifique'] = 'checked="checked"'; |
$_SESSION['eflore_type_nom_vernaculaire'] = ''; |
} |
} |
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
$sortie .= '<h2>'.EFLORE_LG_RECH_NOM_TITRE.'</h2>'; |
|
// -------------------------------------------------------------------------------------------------------- |
// Création du formulaire |
// Ajout du paramêtre action à l'url courante. |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_RECH_NOM); |
// Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()... |
$eflore_form = new HTML_QuickForm('eflore_form_nomenclature', 'post', str_replace('&', '&', $GLOBALS['_EFLORE_']['url']->getUrl())); |
$tab_index = EFLORE_RECH_NOM_FORM_TAB; |
$eflore_squelette =& $eflore_form->defaultRenderer(); |
$eflore_squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n".'</form>'); |
$eflore_squelette->setElementTemplate( '<li>'."\n". |
'{label}'."\n". |
'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">'.EFLORE_LG_FORM_SYMBOLE_OBLIGATOIRE.'</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</li>'."\n"); |
$eflore_form->accept($eflore_squelette); |
$eflore_form->removeAttribute('name'); |
$contenu = file_get_contents(EFLORE_URL_FORM_NOM); |
|
$partie_menu_debut = '<fieldset>'."\n".'<legend>'.EFLORE_LG_RECH_NOM_FORM_TITRE.'</legend><ul>'."\n"; |
$eflore_form->addElement('html', $partie_menu_debut); |
//Analyse du squelette |
require_once 'HTML/Template/ITX.php'; |
$squelette = new HTML_Template_ITX(); |
$squelette->setTemplate($contenu, FALSE, FALSE); |
|
$id = 'eflore_nom'; |
$aso_attributs = array( 'id'=> $id, 'class' => 'champ', 'tabindex' => $tab_index++, |
'size' => EFLORE_RECH_NOM_FORM_NOM_SIZE, |
'maxlength' => EFLORE_RECH_NOM_FORM_NOM_MAXLENGTH, |
'onclick' => "javascript: this.value='';"); |
$label = '<label for="'.$id.'">'.EFLORE_LG_RECH_NOM_FORM_NOM.'</label>'; |
$eflore_form->addElement('text', $id, $label, $aso_attributs); |
// Indique l'url pour obtenir fiche d'un nom |
$squelette->setCurrentBlock('corps'); |
// Ajout du paramêtre action à l'url courante. |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_RECH_NOM); |
$squelette->setVariable('UrlProjetNom', $GLOBALS['_EFLORE_']['url']->getURL()); |
$GLOBALS['_EFLORE_']['url']->removeQueryString(EFLORE_LG_URL_ACTION); |
// Valeur du champ nom par défaut |
$squelette->setVariable('eflore_nom', $_SESSION['eflore_nom']); |
// Type nom scientifique coché par défaut |
$squelette->setVariable('eflore_type_nom_scientifique', $_SESSION['eflore_type_nom_scientifique']); |
// Type nom verna non coché par défaut |
$squelette->setVariable('eflore_type_nom_vernaculaire', $_SESSION['eflore_type_nom_vernaculaire']); |
// Référentiel sélectionné par défaut |
$squelette->setCallbackFunction('selectionnerEfloreRef', 'selectionnerEfloreRef'); |
$squelette->performCallback(); |
$squelette->parseCurrentBlock('corps'); |
|
$liste_type_nom_debut = '<li><ul>'."\n"; |
$eflore_form->addElement('html', $liste_type_nom_debut); |
// Récupère le bloc "corps" |
$sortie .= $squelette->get('corps'); |
|
$id = 'eflore_type_nom_scientifique'; |
$name = 'eflore_type_nom'; |
$valeur = 'nom_scientifique'; |
$aso_attributs = array( 'id'=> $id, 'tabindex' => $tab_index++); |
$label = ''; |
$eflore_form->addElement('radio', $name, $label, EFLORE_LG_RECH_NOM_FORM_TYPE_NOM_SCI, $valeur, $aso_attributs); |
|
$id = 'eflore_type_nom_vernaculaire'; |
$name = 'eflore_type_nom'; |
$valeur = 'nom_vernaculaire'; |
$aso_attributs = array( 'id'=> $id, 'tabindex' => $tab_index++); |
$label = ''; |
$eflore_form->addElement('radio', $name, $label, EFLORE_LG_RECH_NOM_FORM_TYPE_NOM_VER, $valeur, $aso_attributs); |
|
if (isset($_REQUEST[$name])) { |
switch ($_REQUEST[$name]) { |
case 'nom_scientifique' : |
$eflore_form->setDefaults(array($name => 'nom_scientifique')); |
break; |
case 'nom_vernaculaire' : |
$eflore_form->setDefaults(array($name => 'nom_vernaculaire')); |
break; |
} |
} else { |
$eflore_form->setDefaults(array($name => 'nom_scientifique')); |
} |
|
$liste_type_nom_fin = '</ul></li>'."\n"; |
$eflore_form->addElement('html', $liste_type_nom_fin); |
|
$id = 'eflore_valider_nom'; |
$aso_attributs = array('id'=> $id, 'class' => 'champ', 'tabindex' => $tab_index++); |
$eflore_form->addElement('submit', $id, EFLORE_LG_RECH_NOM_FORM_VALIDER, $aso_attributs); |
|
$partie_entete_fin = "\n".'</ul></fieldset>'; |
$eflore_form->addElement('html', $partie_entete_fin); |
|
// Instanciation avec les valeur par défaut |
if (isset($_SESSION['_EFLORE_']['rechercher'])) { |
$eflore_form->setDefaults($_SESSION['_EFLORE_']['rechercher']); |
} |
|
// Transformation en XHTML du formulaire |
$sortie .= $eflore_form->toHTML()."\n"; |
|
// -------------------------------------------------------------------------------------------------------- |
// Lancement de la recherche |
if (isset($_REQUEST['eflore_nom']) && $_REQUEST['eflore_nom'] != '' && !eregi("^%{1,}$", $_REQUEST['eflore_nom']) ) { |
138,11 → 125,14 |
$_REQUEST['eflore_nom'] = '%'.str_replace(' ', '%', $_REQUEST['eflore_nom']).'%'; |
if ($_REQUEST['eflore_type_nom'] == 'nom_scientifique') { |
// Recherche sur les noms scientifiques |
if ($_REQUEST['eflore_referenciel'] != 0) { |
$contenu = file_get_contents(sprintf(EFLORE_URL_LISTE_NOM_LATIN_REF, rawurlencode($_REQUEST['eflore_nom']), rawurlencode($_REQUEST['eflore_referenciel']))); |
} else { |
$contenu = file_get_contents(sprintf(EFLORE_URL_LISTE_NOM_LATIN, rawurlencode($_REQUEST['eflore_nom']))); |
|
} |
//Analyse du squelette |
require_once 'HTML/Template/IT.php'; |
$squelette = new HTML_Template_IT(); |
require_once 'HTML/Template/ITX.php'; |
$squelette = new HTML_Template_ITX(); |
$squelette->setTemplate($contenu, FALSE, FALSE); |
|
// Indique l'url pour obtenir fiche d'un nom |
152,6 → 142,8 |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ONGLET, EFLORE_LG_URL_ONGLET_SYNTHESE); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NN, ''); |
$squelette->setVariable('UrlFicheNom', $GLOBALS['_EFLORE_']['url']->getURL()); |
$squelette->setCallbackFunction('UrlFicheNom', 'remplacerUrlFicheNom'); |
$squelette->performCallback(); |
$squelette->parseCurrentBlock('corps'); |
|
// Récupère le bloc "corps" |
177,9 → 169,31 |
} |
} |
|
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE des FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
|
function remplacerUrlFicheNom($arguments) { |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ACTION, EFLORE_LG_URL_ACTION_FICHE); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_ONGLET, EFLORE_LG_URL_ONGLET_SYNTHESE); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NN, $arguments[0]); |
$GLOBALS['_EFLORE_']['url']->addQueryString(EFLORE_LG_URL_NVP, $arguments[1]); |
return $GLOBALS['_EFLORE_']['url']->getURL(); |
} |
function selectionnerEfloreRef($arguments) { |
$retour = ''; |
if (isset($arguments[0]) AND $arguments[0] == $_SESSION['eflore_referenciel']) {// N° de la version par défaut de la BDNFF |
$retour = 'selected="selected"'; |
} |
return $retour; |
} |
|
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.10 2005/05/19 07:40:06 jpm |
* Modification mineure syntaxe. |
* |
* Revision 1.9 2005/03/15 12:57:16 jpm |
* Modification du code XHTML. |
* |