| Line 185... |
Line 185... |
| 185 |
$sous_requete .= ' AND ';
|
185 |
$sous_requete .= ' AND ';
|
| 186 |
break;
|
186 |
break;
|
| 187 |
case "mots_cles";
|
187 |
case "mots_cles";
|
| 188 |
$sous_requete .= $this->creerSousRequeteMotsCles($valeur);
|
188 |
$sous_requete .= $this->creerSousRequeteMotsCles($valeur);
|
| 189 |
break;
|
189 |
break;
|
| - |
|
190 |
case "projet"; // mot clé des observations
|
| - |
|
191 |
$sous_requete .= $this->creerSousRequeteProjet($valeur);
|
| - |
|
192 |
break;
|
| 190 |
case "id_mots_cles";
|
193 |
case "id_mots_cles";
|
| 191 |
$liste_mc = '"'.str_replace(';','","',$valeur).'"';
|
194 |
$liste_mc = '"'.str_replace(';','","',$valeur).'"';
|
| 192 |
$tpl_sous_requete = GestionMotsClesChemin::obtenirTemplateRequeteMotsClesIds('images');
|
195 |
$tpl_sous_requete = GestionMotsClesChemin::obtenirTemplateRequeteMotsClesIds('images');
|
| 193 |
$sous_requete .= 'id_image IN ('.sprintf($tpl_sous_requete, $liste_mc).')';
|
196 |
$sous_requete .= 'id_image IN ('.sprintf($tpl_sous_requete, $liste_mc).')';
|
| 194 |
$sous_requete .= ' AND ' ;
|
197 |
$sous_requete .= ' AND ' ;
|
| Line 234... |
Line 237... |
| 234 |
$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
|
237 |
$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
|
| 235 |
$sous_requete .= ' OR ' ;
|
238 |
$sous_requete .= ' OR ' ;
|
| 236 |
$sous_requete .= 'co.nom_sel LIKE '.Cel::db()->proteger($valeur.'%') ;
|
239 |
$sous_requete .= 'co.nom_sel LIKE '.Cel::db()->proteger($valeur.'%') ;
|
| 237 |
$sous_requete .= ') AND ' ;
|
240 |
$sous_requete .= ') AND ' ;
|
| 238 |
break;
|
241 |
break;
|
| - |
|
242 |
case "num_nom":
|
| - |
|
243 |
$sous_requete .= ' (';
|
| - |
|
244 |
$sous_requete .= 'co.nom_ret_nn = '.Cel::db()->proteger($valeur) ;
|
| - |
|
245 |
$sous_requete .= ' OR ' ;
|
| - |
|
246 |
$sous_requete .= 'co.nom_sel_nn = '.Cel::db()->proteger($valeur) ;
|
| - |
|
247 |
$sous_requete .= ') AND ' ;
|
| - |
|
248 |
break;
|
| 239 |
case "auteur":
|
249 |
case "auteur":
|
| 240 |
if (is_numeric($valeur)) {
|
250 |
if (is_numeric($valeur)) {
|
| 241 |
$sous_requete .= 'co.ce_utilisateur = '.Cel::db()->proteger($valeur).' AND ';
|
251 |
$sous_requete .= 'co.ce_utilisateur = '.Cel::db()->proteger($valeur).' AND ';
|
| 242 |
} elseif (strpos($valeur, '@') !== false) {
|
252 |
} elseif (strpos($valeur, '@') !== false) {
|
| 243 |
$sous_requete .= 'co.courriel_utilisateur = '.Cel::db()->proteger($valeur).
|
253 |
$sous_requete .= 'co.courriel_utilisateur = '.Cel::db()->proteger($valeur).
|
| Line 345... |
Line 355... |
| 345 |
}
|
355 |
}
|
| 346 |
$requete .= ' AND ';
|
356 |
$requete .= ' AND ';
|
| 347 |
return $requete;
|
357 |
return $requete;
|
| 348 |
}
|
358 |
}
|
| Line -... |
Line 359... |
| - |
|
359 |
|
| - |
|
360 |
private function creerSousRequeteProjet($mot_cle) {
|
| - |
|
361 |
//TODO: une requête plus efficace serait possible en utilisant
|
| - |
|
362 |
// les vraies tables de mots clés et en faisant disparaitre ce champ maudit
|
| - |
|
363 |
$requete = '';
|
| - |
|
364 |
if (preg_match('/.*OU.*/', $mot_cle)) {
|
| - |
|
365 |
$mots_cles_tab = explode('OU',$mot_cle);
|
| - |
|
366 |
foreach ($mots_cles_tab as $mot_cle_item) {
|
| - |
|
367 |
$requete .= '(co.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') OR ';
|
| - |
|
368 |
}
|
| - |
|
369 |
$requete = '('.rtrim($requete,'OR ').')';
|
| - |
|
370 |
} else if (preg_match('/.*ET.*/', $mot_cle)) {
|
| - |
|
371 |
$mots_cles_tab = explode('ET',$mot_cle);
|
| - |
|
372 |
foreach ($mots_cles_tab as $mot_cle_item) {
|
| - |
|
373 |
$requete .= '(co.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') AND ';
|
| - |
|
374 |
}
|
| - |
|
375 |
$requete = '('.rtrim($requete, 'AND ').') ';
|
| - |
|
376 |
} else {
|
| - |
|
377 |
$requete = "(co.mots_cles_texte LIKE ".Cel::db()->proteger('%'.$mot_cle.'%').') ';
|
| - |
|
378 |
}
|
| - |
|
379 |
$requete .= ' AND ';
|
| - |
|
380 |
return $requete;
|
| - |
|
381 |
}
|
| 349 |
|
382 |
|
| 350 |
public function formaterPourEnvoiCel(&$tableau_images) {
|
383 |
public function formaterPourEnvoiCel(&$tableau_images) {
|
| 351 |
foreach ($tableau_images as &$image) {
|
384 |
foreach ($tableau_images as &$image) {
|
| 352 |
$ids_mots_cles = $this->getIdsMotsClesImage($image['id_image']);
|
385 |
$ids_mots_cles = $this->getIdsMotsClesImage($image['id_image']);
|
| 353 |
$mots_cles_chaine = '';
|
386 |
$mots_cles_chaine = '';
|