Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1476 → Rev 1477

/trunk/jrest/services/CelSyndicationObservation.php
38,6 → 38,7
'num_taxon' => 'nt',
'commentaire' => 'commentaire',
'date' => 'date_observation',
'motcle' => 'tags',
'projet' => 'mots-cles');
 
/**
317,6 → 318,7
$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR nom_sel LIKE "%'.
$nom_valeur[1].'%") AND '; break;
case "mots-cles" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]).' AND '; break;
case "tags" : $requete .= $this->creerSousRequeteTags($nom_valeur[1]).' AND '; break;
default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
}
}
344,6 → 346,28
}
return $requete;
}
private function creerSousRequeteTags($tag) {
$requete = '(id_observation IN (SELECT id_observation FROM cel_obs_images coi INNER JOIN cel_images ci ON coi.id_image = ci.id_image WHERE ';
$where = '';
if (preg_match('/.*OU.*/', $tag)) {
$mots_cles_tab = explode('OU',$tag);
foreach($mots_cles_tab as $mot_cle_item) {
$where .= '(ci.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') OR ';
}
$where .= '('.rtrim($where,'OR ').') ';
} else if (preg_match('/.*ET.*/', $tag)) {
$mots_cles_tab = explode('ET',$tag);
foreach($mots_cles_tab as $mot_cle_item) {
$where .= '(ci.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
}
$where .= '('.rtrim($where, 'AND ').') ';
} else {
$where .= "(ci.mots_cles_texte LIKE ".$this->proteger('%'.$tag.'%').') ';
}
$requete .= $where.' ))';
return $requete;
}
 
private function traiterCriteresMultiples($tableau_criteres) {
$tableau_criteres_pour_bdd = array();