Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1477 Rev 1499
Line 397... Line 397...
397
 
397
 
398
	private function getServiceMultiCriteres() {
398
	private function getServiceMultiCriteres() {
399
		$contenu = '';
399
		$contenu = '';
400
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];
400
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];
-
 
401
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
-
 
402
				
-
 
403
		if($this->parametresSontDemandes()) {
-
 
404
			$requete = $this->creerRequeteAvecParametres();
-
 
405
		} else {
-
 
406
			$requete = $this->creerRequeteSansParametres();
-
 
407
		}
-
 
408
		$elements = $this->executerRequete($requete);
-
 
409
 
-
 
410
		// Création du contenu
-
 
411
		if ($elements != false && count($elements) > 0) {
-
 
412
			$contenu = $this->executerService($elements);
-
 
413
		} else {
-
 
414
			$this->messages[] = "Aucune image disponible.";
Line -... Line 415...
-
 
415
		}
-
 
416
 
-
 
417
        return $contenu;
-
 
418
	}
-
 
419
	
-
 
420
	private function parametresSontDemandes() {
-
 
421
		$criteres = $this->traiterCriteresMultiples($_GET) ;
-
 
422
		return (isset($_GET['recherche']) && $_GET['recherche'] != '') || !empty($criteres);
-
 
423
	}
-
 
424
	
-
 
425
	private function creerRequeteSansParametres() {
-
 
426
		// Première sous requete pour que le limite se fasse d'abord sur les images
-
 
427
		// et pas la jointure de toutes les tables
-
 
428
		$sous_requete_limitative = 'SELECT * FROM cel_images c '.
-
 
429
										   ' WHERE id_image '.
-
 
430
										   ' IN (SELECT id_image FROM cel_obs_images a '.
-
 
431
			(($this->etreFluxAdmin()) ? '' : 'INNER JOIN cel_obs b ON b.id_observation = a.id_observation AND b.transmission = 1 ').
-
 
432
											') ';
-
 
433
		$sous_requete_limitative .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 'c.date_creation DESC').' '.
-
 
434
											"LIMIT $this->start,$this->limit ";
-
 
435
		
-
 
436
		// Construction de la requête
-
 
437
		$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
-
 
438
				    ' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
-
 
439
					'FROM ('.$sous_requete_limitative.') as c '.
-
 
440
					'	INNER JOIN cel_obs_images AS a '.
-
 
441
					'		ON (a.id_image = c.id_image) '.
-
 
442
					'	INNER JOIN cel_obs AS b '.
-
 
443
					'		ON (a.id_observation = b.id_observation) AND b.ce_utilisateur = c.ce_utilisateur ';
-
 
444
		
-
 
445
		return $requete;
-
 
446
	}
401
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
447
	
402
 
448
	private function creerRequeteAvecParametres() {
403
		// Construction de la requête
449
		// Construction de la requête
404
		$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
450
		$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
405
		    ' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
451
		    ' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
Line 423... Line 469...
423
		}
469
		}
424
		$requete = str_replace(' AND ) ',' ', $requete);
470
		$requete = str_replace(' AND ) ',' ', $requete);
425
		$requete = rtrim($requete, 'AND ');
471
		$requete = rtrim($requete, 'AND ');
426
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  :
472
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  :
427
			'c.date_creation DESC').' '."LIMIT $this->start,$this->limit ";
473
			'c.date_creation DESC').' '."LIMIT $this->start,$this->limit ";
428
 
474
		
429
		$elements = $this->executerRequete($requete);
-
 
430
 
-
 
431
		// Création du contenu
-
 
432
		if ($elements != false && count($elements) > 0) {
-
 
433
			$contenu = $this->executerService($elements);
-
 
434
		} else {
-
 
435
			$this->messages[] = "Aucune image disponible.";
-
 
436
		}
-
 
437
 
-
 
438
        return $contenu;
475
		return $requete;
439
	}
476
	}
Line 440... Line 477...
440
 
477
 
441
	private function creerSousRequeteRechercheParCriteres($criteres) {
478
	private function creerSousRequeteRechercheParCriteres($criteres) {
442
		$requete = '';
479
		$requete = '';