Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 905 → Rev 906

/trunk/jrest/lib/RechercheInfosTaxon.php
64,6 → 64,7
if ($genre != null) {
$genre=ereg_replace('\*+','%',$genre);
//TODO: comprendre pourquoi à l'origine il y avait : (strlen($genre) >= 1) /*&& ($genre != '%')
// voir avec david
if ((strlen($genre) >= 1)) {
$requete_recherche = "SELECT DISTINCT en_nom_genre, en_id_nom, 0 as esn_ce_statut FROM eflore_nom WHERE en_id_version_projet_nom = '25'" .
"AND en_ce_rang = 160 " .
235,6 → 236,22
return $nt;
}
public function taxonEstPresentDansDepartement($num_taxon,$code_departement) {
$requete_presence_taxon = "SELECT ecd_ce_taxon FROM eflore_zg, eflore_chorologie_donnee ".
"WHERE ecd_ce_taxon = ".$this->proteger($num_taxon)." ".
"AND ezg_code=".$this->proteger($code_departement)." ".
"AND ecd_ce_zone_geo = ezg_id_zone_geo ".
"AND ezg_id_projet_zg = ecd_ce_version_projet_zg ".
"AND ecd_ce_version_projet_taxon=25";
$resultat_presence_taxon = $this->requeter($requete_presence_taxon);
$presence_taxon = (is_array($resultat_presence_taxon) && count($resultat_presence_taxon) > 0);
return $presence_taxon;
}
private function formaterNom($rawnom) {
 
// Constitution du nom:
/trunk/jrest/lib/RechercheObservation.php
1,27 → 1,35
<?php
/*
* Created on 24 août 2011
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
/**
* PHP Version 5
*
* @category PHP
* @package jrest
* @author Aurélien Peronnet <aurelien@tela-botania.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version SVN: <svn_id>
* @link /doc/jrest/
*/
/**
* librairie recherche d'observations a partir de divers critères
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @version $Id$
* in : utf8
* out : utf8
*
* Librairie recherche d'observations a partir de divers critères
*
*/
class RechercheObservation extends Cel {
public function rechercherObservations($id_utilisateur, $criteres, $numero_page = 0, $taille_page = 50) {
public function rechercherObservations($id_utilisateur = null, $criteres = array(), $numero_page = 0, $taille_page = 50) {
$requete_selection_observations = "SELECT * FROM cel_obs WHERE ce_utilisateur ='".$id_utilisateur."'";
$requete_selection_observations = 'SELECT * FROM cel_obs ';
if($id_utilisateur != null) {
$requete_selection_observations .= 'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ';
} else if(count($criteres) > 0) {
$requete_selection_observations .= 'WHERE ';
}
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
$requete_selection_observations .= $sous_requete_recherche;
35,10 → 43,16
return $resultats_observations;
}
public function compterObservations($id_utilisateur, $criteres) {
public function compterObservations($id_utilisateur = null, $criteres = array()) {
$requete_selection_observations = "SELECT COUNT(*) as nb_obs FROM cel_obs WHERE ce_utilisateur ='".$id_utilisateur."'";
$requete_selection_observations = 'SELECT COUNT(*) as nb_obs FROM cel_obs ';
if($id_utilisateur != null) {
$requete_selection_observations .= 'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ';
} else if(count($criteres) > 0) {
$requete_selection_observations .= 'WHERE ';
}
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
$requete_selection_observations .= $sous_requete_recherche;
67,8 → 81,6
private function fabriquerSousRequeteRecherche($id_utilisateur, $criteres) {
$sous_requete = ' AND ';
foreach ($criteres as $nom_valeur)
{
if (count($nom_valeur) == 0)
96,16 → 108,9
// TODO: adapter la structure aux nouveaux mots clés
case 'mots_cles':
$liste_mc = explode(";",$nom_valeur[1]);
$sous_requete .= '(' ;
foreach($liste_mc as $mot) {
 
if(trim($mot) != '')
{
$sous_requete .= "mots_cles LIKE '%".$this->proteger($mot)."%' OR " ;
}
}
$sous_requete = rtrim($sous_requete,' OR ');
$liste_mc = str_replace(";",',',$nom_valeur[1]);
$sous_requete .= '(' ;
'id_observation IN (SELECT id_observation FROM cel_obs_mots_cles WHERE id_mot_cle_utilisateur IN ('.$liste_mc.')';
$sous_requete .= ') AND ' ;
break;