Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 53 | Blame | Last modification | View Log | RSS feed

<?php
class RechercheSimple extends aControleur {
        
        //+----------------------------------------------------------------------------------------------------------------+
        // Méthodes
        /**
         * Fonction d'affichage par défaut
         */
        
        
        public function executerActionParDefaut() {
                if (isset($_GET['referentiel'])) {
                        Registre::set('parametres.referentiel', $_GET['referentiel']);
                }
                $this->executerAccueil();
        }
        
        public function executerAccueil() {
                $donnees = array();
                $donnees['i18n'] = I18n::get('Recherche-accueil');
                
                $donnees['referentiel_titre'] = I18n::get('Referentiels-titres.'.Config::get('referentiel'));
                
                $donnees['form_nom'] = $this->executerFormulaireNom();
                
                $this->setSortie(self::RENDU_CORPS, $this->getVue('recherche_accueil', $donnees));
        }
        
        public function executerFormulaireNom() {
                $donnees['eflore_type_nom'] = 'nom_vernaculaire';
                $donnees['i18n'] = I18n::get('Recherche-form-nom');
                $donnees['url_js'] = Config::get('url_js');
                
                return $this->getVue('form_nom', $donnees);
        }
        
        public function executerRechercheNom() {
                if (strlen($_GET['eflore_nom']) < 3) {
                        $donnees['information'] = 'Veuillez saisir un radical contenant au moins 3 caractères alphabétiques !';
                } else {
                        $noms = ($_GET['eflore_type_nom'] == 'nom_vernaculaire') 
                                ? new NomsVernaculaires(Config::get('referentielVerna')) 
                                : new Noms(Registre::get('parametres.referentiel'));
                        $presence = $this->rechercherNom($noms);
                        if ($presence == '') {
                                $donnees['information'] = 'Nom inconnu';
                        } elseif ($presence != 'ok') {
                                $donnees['nom_approche'] = $presence;
                        }
                }
                
                
                if (isset($donnees)) {
                        $donnees['eflore_type_nom'] = $_GET['eflore_type_nom'];
                        $donnees['i18n'] = I18n::get('Recherche-accueil');
                        $donnees['referentiel_titre'] = I18n::get('Referentiels-titres.'.Config::get('referentiel'));
                        
                        $donnees['i18n'] = I18n::get('Recherche-form-nom');
                        $donnees['url_js'] = Config::get('url_js');
                        $donnees['nom'] = $_GET['eflore_nom'];
                        
                        $donnees['form_nom'] = $this->getVue('form_nom', $donnees);
                        $this->setSortie(self::RENDU_CORPS, $this->getVue('recherche_accueil', $donnees));
                } else {
                        print_r($_GET['eflore_nom']);
                        // envoyerResultat;
                }
        }
        
        private function rechercherNom($noms) {
                $approche = '';
                $res = $noms->getRechercheEtendue($_GET['eflore_nom']); //print_r($res);
                if ($res == false || $res->entete->total == 0) {
                        $res = $noms->getRechercheFloue($_GET['eflore_nom']);
                        if (!($res == false || $res->entete->total == 0)) {
                                $liste = (array) $res->resultat;
                                $nom_proche = array_shift($liste); 
                                $approche = ($_GET['eflore_type_nom'] == 'nom_vernaculaire') ? $nom_proche->nom : $nom_proche->nom_sci;
                        }
                } else {
                        $approche = 'ok';
                }
                return $approche;
        }
        
}
?>