Rev 250 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** classe Controleur du module RecherchePublications** @package Collection* @category Php5* @author Satanas et Diabolo <wtf@tela-botanica.org>* @copyright 2010 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL*/class RecherchePublications extends Recherche {protected $masque = null;protected static $url_exemple = null;/*** Charge le moteur de recherche et l'envoie à la vue.*/public function chargerMoteurRecherche() {$donnees = array();// masque multi-critères$donnees['masque'] = $this->obtenirMasqueRecherche();// Gestion des urls$donnees['url_form'] = $this->obtenirUrlRecherche();$donnees['url_module'] = 'RecherchePublications';$donnees['url_action'] = 'rechercher';$donnees['url_contexte'] = $this->registre->get('contexte');self::$url_exemple = $this->obtenirUrlRecherche('%s');// remplissage de cases de tableaux vides pour éviter des warnings$donnees['masque'] = $this->initialiserMasquesVides($donnees['masque']);//echo '<pre>'.print_r($donnees['masque'],true).'</pre>';exit;// Gestion du squelette et de la sortie$this->setSortie(self::RENDU_CORPS, $this->getVue('moteur_publications', $donnees));}// recherche des publicationspublic function rechercher() {$masque = $this->obtenirMasqueRecherche();$masque['cible'] = "publications";$donnees = array();$donnees['masque'] = $masque;$rechercheDao = new RechercheDao();// Récupération des paramètres depuis le masque$parametres = $masque;$this->remplacerAbreviationParId($parametres);//echo "PARAM 2: <pre>" . print_r($parametres, true) . "</pre><br/>";// Gestion du nombre de résultats$donnees_total = $rechercheDao->chercherPublicationsNbre($parametres);// Gestion du fragmenteur$options = array('url' => $this->url,'donnees_total' => $donnees_total,'donnees_par_page' => Config::get('resultat_par_page_defaut'),'donnees_par_page_choix' => Config::get('resultat_par_page_choix'),);$fragmenteur = Composant::fabrique('fragmenteur', $options);$donnees['fragmenteur'] = $fragmenteur->executer();list($de, $a) = $fragmenteur->getDeplacementParPageId();$this->url->unsetVariablesRequete(array('recherche', 'page'));// Gestion de l'accès aux données$rechercheDao->setLimitation(($de - 1), $fragmenteur->getDonneesParPage());$rechercheDao->setDistinction(1);// Récupération des résultats$resultats = $rechercheDao->chercherPublications($parametres);// Affichage de la liste de résultatsforeach ($resultats as $resultat) {if (!empty($resultat['cpu_id_publication'])) {$editeur = $resultat['cpu_ce_truk_editeur'];$pdd = strpos($editeur, "##");if ($pdd !== false) {$editeur = substr($editeur, $pdd + 2);}$publication = array('nomcomplet' => $resultat['cpu_fmt_nom_complet'],'date' => $resultat['cpu_date_parution'],'titre' => $resultat['cpu_titre'],'auteur' => $resultat['cpu_fmt_auteur'],'editeur' => $editeur,'nb_pages' => $resultat['cpu_truk_pages'],//'url' => $this->obtenirUrlFichePersonne($resultat['cp_id_personne']));$donnees['infos']['publications'][] = $publication;}}// Post-traitement des résultats pour l'affichage$this->postraiterDonnees($donnees['infos']);// Gestion des squelettes$this->chargerMoteurRecherche();$resultat = $this->getVue('resultat', $donnees);$this->setSortie(self::RENDU_CORPS, $resultat, true);$this->chargerPiedDePage();}protected function initialiserMasquesVides($masque) {$masques_possibles = array('titre', 'auteur', 'date', 'ouvrage', 'libre');foreach($masques_possibles as $masque_possible) {if(!isset($masque[$masque_possible])) {$masque[$masque_possible] = '';}}return $masque;}}