Subversion Repositories eFlore/Applications.cel

Rev

Rev 3927 | Rev 3956 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3927 Rev 3929
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 = '';