187,6 → 187,9 |
case "mots_cles"; |
$sous_requete .= $this->creerSousRequeteMotsCles($valeur); |
break; |
case "projet"; // mot clé des observations |
$sous_requete .= $this->creerSousRequeteProjet($valeur); |
break; |
case "id_mots_cles"; |
$liste_mc = '"'.str_replace(';','","',$valeur).'"'; |
$tpl_sous_requete = GestionMotsClesChemin::obtenirTemplateRequeteMotsClesIds('images'); |
236,6 → 239,13 |
$sous_requete .= 'co.nom_sel LIKE '.Cel::db()->proteger($valeur.'%') ; |
$sous_requete .= ') AND ' ; |
break; |
case "num_nom": |
$sous_requete .= ' ('; |
$sous_requete .= 'co.nom_ret_nn = '.Cel::db()->proteger($valeur) ; |
$sous_requete .= ' OR ' ; |
$sous_requete .= 'co.nom_sel_nn = '.Cel::db()->proteger($valeur) ; |
$sous_requete .= ') AND ' ; |
break; |
case "auteur": |
if (is_numeric($valeur)) { |
$sous_requete .= 'co.ce_utilisateur = '.Cel::db()->proteger($valeur).' AND '; |
347,6 → 357,29 |
return $requete; |
} |
|
private function creerSousRequeteProjet($mot_cle) { |
//TODO: une requête plus efficace serait possible en utilisant |
// les vraies tables de mots clés et en faisant disparaitre ce champ maudit |
$requete = ''; |
if (preg_match('/.*OU.*/', $mot_cle)) { |
$mots_cles_tab = explode('OU',$mot_cle); |
foreach ($mots_cles_tab as $mot_cle_item) { |
$requete .= '(co.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') OR '; |
} |
$requete = '('.rtrim($requete,'OR ').')'; |
} else if (preg_match('/.*ET.*/', $mot_cle)) { |
$mots_cles_tab = explode('ET',$mot_cle); |
foreach ($mots_cles_tab as $mot_cle_item) { |
$requete .= '(co.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') AND '; |
} |
$requete = '('.rtrim($requete, 'AND ').') '; |
} else { |
$requete = "(co.mots_cles_texte LIKE ".Cel::db()->proteger('%'.$mot_cle.'%').') '; |
} |
$requete .= ' AND '; |
return $requete; |
} |
|
public function formaterPourEnvoiCel(&$tableau_images) { |
foreach ($tableau_images as &$image) { |
$ids_mots_cles = $this->getIdsMotsClesImage($image['id_image']); |