* @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 * @version SVN: $Id$ * */ class RechercheDao extends ColModele { const SERVICE = 'CoelRecherche'; /** * Recherche une collection en fonction de paramêtres * @return array un tableau contenant des objets d'informations sur les collections */ public function chercherStructureNbre($parametres) { $url = $this->construireUrlRecherche('Nombre', $parametres, false); $json = file_get_contents($url); $donnees = json_decode($json); return $donnees; } /** * Recherche une collection en fonction de paramêtres * @return array un tableau contenant des objets d'informations sur les collections */ public function chercher($parametres) { $url = $this->construireUrlRecherche('ParDefaut', $parametres); $json = file_get_contents($url); $donnees = json_decode($json, true); return $donnees; } private function construireUrlRecherche($type, $parametres, $limitation = true) { $url = $this->url_jrest.self::SERVICE.'/'.$type; $params_a_passer = array('mots', 'sci', 'bot', 'zg', 'p', 'pr', 'str-d'); foreach ($params_a_passer as $param_cle) { if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') { $valeur = urlencode(trim($parametres[$param_cle])); $url .= '/'.$valeur; } else { $url .= '/*'; } } if ($limitation) { $url .= ($this->avoirLimitation() ? "?start={$this->getLimiteDebut()}&limit={$this->getLimiteNbre()}" : ''); $url .= "&distinct={$this->getDistinction()}"; } else { $url .= "?distinct={$this->getDistinction()}"; } return $url; } } ?>