Subversion Repositories eFlore/Applications.cel

Rev

Rev 593 | Rev 613 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 593 Rev 603
Line 320... Line 320...
320
		$contenu = $this->executerService($elements);
320
		$contenu = $this->executerService($elements);
321
		return $contenu;
321
		return $contenu;
322
	}
322
	}
Line 323... Line 323...
323
	
323
	
-
 
324
	private function creerTitreSimple($element) {
-
 
325
		if ($this->etreNull($element['nom_sel']) && $this->etreNull($element['num_nom_sel'])) {
-
 
326
			$titre = "Ajout d'une photo par ".$this->creerAuteur($element['ci_ce_utilisateur'], $this->etreFluxAdmin());
324
	private function creerTitreSimple($element) {
327
		} else {
-
 
328
			$titre = $element['nom_sel'].' [nn'.$element['num_nom_sel'].'] par '.$this->creerAuteur($element['ci_ce_utilisateur'], $this->etreFluxAdmin());
325
		$titre = $element['nom_sel'].' [nn'.$element['num_nom_sel'].'] par '.$this->creerAuteur($element['identifiant'], $this->etreFluxAdmin());
329
		}
326
		return $titre;
330
		return $titre;
Line 327... Line 331...
327
	}
331
	}
328
	
332
	
Line 332... Line 336...
332
	}
336
	}
Line 333... Line 337...
333
	
337
	
334
	private function getServiceComplet() {
338
	private function getServiceComplet() {
335
		// Construction de la requête
339
		// Construction de la requête
336
		$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
340
		$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
337
			'	ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
341
			'	ci_id_image, ci_ce_utilisateur, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
338
			'FROM cel_images AS cim '.
342
			'FROM cel_images AS cim '.
339
			'	LEFT JOIN cel_obs_images AS coi '.
343
			'	LEFT JOIN cel_obs_images AS coi '.
340
			'		ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
344
			'		ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
341
			'	LEFT JOIN cel_inventory AS ci '.
345
			'	LEFT JOIN cel_inventory AS ci '.
Line 355... Line 359...
355
 
359
 
356
		return $contenu;
360
		return $contenu;
Line 357... Line 361...
357
	}
361
	}
358
	
-
 
359
	private function getServiceMultiCriteres() {
362
	
360
		
-
 
361
		if(!$this->estUneRechercheGenerale()) {
363
	private function getServiceMultiCriteres() {
Line 362... Line 364...
362
 
364
		if (! $this->estUneRechercheGenerale()) {
363
			$criteres = $this->traiterCriteresMultiples($_GET);
365
			$criteres = $this->traiterCriteresMultiples($_GET);
364
			
366
			
Line 374... Line 376...
374
		if(isset($_GET['limite'])) {
376
		if (isset($_GET['limite'])) {
375
			$this->limite = $_GET['limite'];
377
			$this->limite = $_GET['limite'];
376
		}
378
		}
Line 377... Line 379...
377
		
379
		
378
		// Construction de la requête
380
		// Construction de la requête
379
		$requete = 'SELECT * ';
-
 
380
				
381
		$requete = 'SELECT * '.
381
		$jointure = 'FROM cel_obs_images a '.
382
			'FROM cel_obs_images a '.
382
			'INNER JOIN cel_inventory b '.
383
			'	INNER JOIN cel_inventory b '.
383
				'ON a.coi_ce_observation = b.ordre AND a.coi_ce_utilisateur = b.identifiant '.
384
			'		ON (a.coi_ce_observation = b.ordre AND a.coi_ce_utilisateur = b.identifiant) '.
384
			'INNER JOIN cel_images c '.
385
			'	INNER JOIN cel_images c '.
-
 
386
			'		ON (a.coi_ce_image = c.ci_id_image AND a.coi_ce_utilisateur = c.ci_ce_utilisateur) '.  
385
				'ON a.coi_ce_image = c.ci_id_image AND a.coi_ce_utilisateur = c.ci_ce_utilisateur '.  
387
			'WHERE b.transmission = 1 '.
386
			'WHERE b.transmission = 1 AND b.identifiant = c.ci_ce_utilisateur AND ';
-
 
387
		
388
			'	AND b.identifiant = c.ci_ce_utilisateur '.
Line 388... Line 389...
388
		$requete .= $jointure;
389
			'	AND ';
389
		
390
		
390
		if($this->estUneRechercheGenerale()) {
391
		if ($this->estUneRechercheGenerale()) {
391
			$chaine_requete = $_GET['recherche'];
392
			$chaine_requete = $_GET['recherche'];
392
			$sous_requete = $this->creerSousRequeteRechercheGenerale($chaine_requete) ;
393
			$sous_requete = $this->creerSousRequeteRechercheGenerale($chaine_requete);
393
		} else {
394
		} else {
394
			$criteres = $this->traiterCriteresMultiples($_GET) ;
395
			$criteres = $this->traiterCriteresMultiples($_GET) ;
Line 395... Line 396...
395
			$sous_requete = $this->creerSousRequeteRechercheParCriteres($criteres);
396
			$sous_requete = $this->creerSousRequeteRechercheParCriteres($criteres);
396
		}
-
 
397
	
397
		}
398
		$requete .= $sous_requete;
-
 
399
			
398
	
400
		$requete= rtrim($requete,'AND ');
399
		$requete .= $sous_requete;
Line 401... Line 400...
401
 
400
		$requete = rtrim($requete, 'AND ');
Line 413... Line 412...
413
        
412
        
414
        return $contenu;
413
        return $contenu;
Line 415... Line 414...
415
	}
414
	}
416
	
-
 
417
	private function creerSousRequeteRechercheParCriteres($criteres) {
415
	
418
				
-
 
419
		$requete = '';
416
	private function creerSousRequeteRechercheParCriteres($criteres) {
420
		
-
 
421
		foreach($criteres as $pair)
417
		$requete = '';
422
			{
-
 
423
			$nom_valeur = explode("=",$pair) ;
418
		foreach ($criteres as $pair) {
424
 
-
 
425
			if(sizeof($nom_valeur) != 0)
419
			$nom_valeur = explode("=",$pair);
426
			{
-
 
427
					if($nom_valeur[0] == "ci_limite")
420
			if (sizeof($nom_valeur) != 0) {
428
					{
-
 
429
						$this->limite = $this->bdd->quote($nom_valeur[1]) ;
421
				if ($nom_valeur[0] == "ci_limite") {
430
					}
-
 
431
					elseif($nom_valeur[0] == "c.ci_numero_page")
422
					$this->limite = $this->bdd->quote($nom_valeur[1]);
432
					{
-
 
433
						$this->start = $this->limite*$this->bdd->quote($nom_valeur[1]) ;
423
				} elseif ($nom_valeur[0] == "c.ci_numero_page") {
434
					}
-
 
435
					elseif($nom_valeur[0] == "c.ci_meta_mots_cles")
424
					$this->start = $this->limite*$this->bdd->quote($nom_valeur[1]);
436
					{
425
				} elseif ($nom_valeur[0] == "c.ci_meta_mots_cles") {
Line 437... Line 426...
437
						$mots_cles = rtrim($nom_valeur[1], ',') ;
426
					$mots_cles = rtrim($nom_valeur[1], ',');
438
						$mots_cles_liste = explode("," , $mots_cles) ;
-
 
439
 
427
					$mots_cles_liste = explode("," , $mots_cles);
440
						foreach($mots_cles_liste as $mot_cle)
428
 
441
						{
429
					foreach ($mots_cles_liste as $mot_cle) {
442
							$requete .= $nom_valeur[0].' LIKE "%'.$this->bdd->quote($mot_cle).'%"' ;
-
 
443
							$requete .= ' AND ' ;
430
						$requete .= $nom_valeur[0].' LIKE "%'.$this->bdd->quote($mot_cle).'%"';
444
						}
-
 
445
					}
431
						$requete .= ' AND ';
Line 446... Line 432...
446
					elseif($nom_valeur[0] == "c.ci_meta_comment")
432
					}
447
					{
-
 
448
						$mots_comment_liste = explode(" " , $nom_valeur[1]) ;
433
				} elseif ($nom_valeur[0] == "c.ci_meta_comment") {
449
 
434
					$mots_comment_liste = explode(" " , $nom_valeur[1]);
450
						foreach($mots_comment_liste as $mot_comment)
435
 
451
						{
436
					foreach($mots_comment_liste as $mot_comment) {
452
							$mot_comment = trim($mot_comment) ;
-
 
453
							$requete .= $nom_valeur[0].' LIKE "%'.$this->bdd->quote($mot_comment).'%"' ;
437
						$mot_comment = trim($mot_comment) ;
454
							$requete .= ' AND ' ;
-
 
455
						}
438
						$requete .= $nom_valeur[0].' LIKE "%'.$this->bdd->quote($mot_comment).'%"';
456
					}
439
						$requete .= ' AND ';
457
					elseif($nom_valeur[0] == "c.ci_meta_date")
-
 
458
					{
440
					}
459
						$requete .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$this->bdd->quote($nom_valeur[1]).'"' ;
-
 
460
						$requete .= ' AND ' ;
441
				} elseif ($nom_valeur[0] == "c.ci_meta_date") {
461
					}
442
					$requete .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$this->bdd->quote($nom_valeur[1]).'"';
462
					elseif($nom_valeur[0] == "c.ci_id_tampon")
-
 
463
					{
443
					$requete .= ' AND ';
464
						$ids_tampon = rtrim($nom_valeur[1], ',') ;
-
 
465
						$requete .= 'c.ci_id_image IN ( '.$this->bdd->quote($ids_tampon).')' ;
444
				} elseif ($nom_valeur[0] == "c.ci_id_tampon") {
466
					}
445
					$ids_tampon = rtrim($nom_valeur[1], ',');
467
					elseif($nom_valeur[0] == "b.nom_ret")
446
					$requete .= 'c.ci_id_image IN ( '.$this->bdd->quote($ids_tampon).')' ;
Line 468... Line 447...
468
					{
447
				} elseif ($nom_valeur[0] == "b.nom_ret") {
469
						if($nom_valeur[1] == "indetermine") {
448
					if ($nom_valeur[1] == "indetermine") {
470
							$nom_valeur[1] = 'null';
449
						$nom_valeur[1] = 'null';
471
						}
450
					}
472
						
451
					
Line 473... Line 452...
473
						$requete .= ' (';
452
					$requete .= ' (';
474
						$requete .= $nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%"' ;
-
 
475
						$requete .= ' OR ' ;
453
					$requete .= $nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%"';
476
						$requete .= 'b.nom_sel LIKE "%'.$nom_valeur[1].'%"' ;
454
					$requete .= ' OR ';
477
						$requete .= ') AND ' ;
455
					$requete .= 'b.nom_sel LIKE "%'.$nom_valeur[1].'%"';
478
						
456
					$requete .= ') AND ';
479
					} else
457
					
480
					{
-
 
481
						$requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'"' ;
458
				} else {
482
						$requete .= '" AND ' ;
-
 
483
					}
459
					$requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'"';
484
			}
460
					$requete .= '" AND ';
Line 485... Line 461...
485
		}
461
				}
486
		
-
 
-
 
462
			}
487
		$requete = rtrim($requete,' AND ') ;
463
		}
488
		
-
 
489
		return $requete;
-
 
490
	}
-
 
491
	
464
		$requete = rtrim($requete,' AND ');
492
	private function creerSousRequeteRechercheGenerale($chaine_requete) {
-
 
493
		
465
		return $requete;
494
		if(trim($chaine_requete) == '') {
-
 
495
			return '';
466
	}
496
		}
-
 
497
		
467
	
498
		$chaine_requete = strtolower($chaine_requete);
468
	private function creerSousRequeteRechercheGenerale($chaine_requete) {
499
		
-
 
500
		$chaine_requete = str_replace(' ','_',$chaine_requete);
469
		$requete = '';
501
		
470
		if (trim($chaine_requete) != '') {	
502
		$requete = ' (';
-
 
503
	
471
			$chaine_requete = strtolower($chaine_requete);
504
		$requete .= 'b.nom_ret LIKE "'.$chaine_requete.'%"' ;
472
			$chaine_requete = str_replace(' ', '_', $chaine_requete);
505
		$requete .= ' OR ' ;
-
 
506
		
473
			$requete = ' ('.
507
		$requete .= 'b.nom_sel LIKE "'.$chaine_requete.'%"' ;
474
				'b.nom_ret LIKE "'.$chaine_requete.'%"'.
508
		$requete .= ' OR ' ;
-
 
509
 
475
				' OR '.
510
		$requete .= 'b.location LIKE "'.$chaine_requete.'%" ' ;
-
 
511
		$requete .= ' OR ' ;
476
				'b.nom_sel LIKE "'.$chaine_requete.'%"'.
512
		
477
				' OR '.
513
		$requete .= 'b.id_location LIKE "'.$chaine_requete.'%" ' ;
478
				'b.location LIKE "'.$chaine_requete.'%" '.
514
		$requete .= ' OR ' ;
479
				' OR '.
Line 515... Line 480...
515
		
480
				'b.id_location LIKE "'.$chaine_requete.'%" '.
516
		$requete .= 'c.ci_ce_utilisateur LIKE "'.$chaine_requete.'%" ' ;
481
				' OR '.
517
		
482
				'c.ci_ce_utilisateur LIKE "'.$chaine_requete.'%" '.
Line 518... Line 483...
518
		$requete .= ') ';
483
				') ';
519
		
-
 
520
		return $requete;
484
		}
Line 521... Line 485...
521
	}
485
		return $requete;
522
	
-
 
523
	private function estUneRechercheGenerale() {
486
	}
524
		return isset($_GET['recherche']);
487
	
525
	}
488
	private function estUneRechercheGenerale() {
526
	
489
		return isset($_GET['recherche']);
527
	private function traiterCriteresMultiples($tableau_criteres) {
-
 
528
		
490
	}
529
		$tableau_criteres_pour_bdd = array();
491
	
Line 530... Line 492...
530
				
492
	private function traiterCriteresMultiples($tableau_criteres) {
531
		foreach($tableau_criteres as $nom_critere => $valeur_critere) {
493
		$tableau_criteres_pour_bdd = array();
Line 532... Line 494...
532
		
494
				
533
			if(isset($this->criteres[$nom_critere])) {
495
		foreach($tableau_criteres as $nom_critere => $valeur_critere) {
534
				$tableau_criteres_pour_bdd[] = $this->criteres[$nom_critere].'='.$valeur_critere;
496
			if (isset($this->criteres[$nom_critere])) {
535
			}
497
				$tableau_criteres_pour_bdd[] = $this->criteres[$nom_critere].'='.$valeur_critere;
Line 562... Line 524...
562
		$date_modification = $this->formaterDate($donnees['date_modification']);
524
		$date_modification = $this->formaterDate($donnees['date_modification']);
563
		$date_creation = $this->formaterDate($donnees['date_creation']);
525
		$date_creation = $this->formaterDate($donnees['date_creation']);
564
		$transmission = $donnees['transmission'] == 1 ? "oui ($date_transmission)" : 'non';
526
		$transmission = $donnees['transmission'] == 1 ? "oui ($date_transmission)" : 'non';
Line 565... Line 527...
565
		
527
		
566
		$description = '<style>.champ{color:grey} .gauche{float:left;padding:0 20px 0 0;} ul{list-style-type:none;padding:0;}</style>'.
528
		$description = '<style>.champ{color:grey} .gauche{float:left;padding:0 20px 0 0;} ul{list-style-type:none;padding:0;}</style>'.
567
			'<h2>'."Image #$id_img liée à l'observation #$id_obs".'</h2>'.
529
			'<h2>'.(!$this->etreNull($id_obs) ? "Image #$id_img liée à l'observation #$id_obs" : "Image #$id_img non liée à une observation.").'</h2>'.
568
			'<img class="gauche" src="'.$url_img.'" alt="'.$nom_fichier.'" />'.
530
			'<img class="gauche" src="'.$url_img.'" alt="'.$nom_fichier.'" />'.
569
			'<div class="gauche">'.
531
			'<div class="gauche">'.
570
			'<h3>'.'Image'.'</h3>'.
532
			'<h3>'.'Image'.'</h3>'.
571
			'<ul>'.
533
			'<ul>'.
Line 576... Line 538...
576
			'<li>'.'<span class="champ">Nom du fichier :</span> '.$nom_fichier.'</li>'.
538
			'<li>'.'<span class="champ">Nom du fichier :</span> '.$nom_fichier.'</li>'.
577
			'<li>'.'<span class="champ">Note qualité :</span> '.$note.'</li>'.
539
			'<li>'.'<span class="champ">Note qualité :</span> '.$note.'</li>'.
578
			'<li>'.'<span class="champ">Commentaires :</span> '.$commentaire_img.'</li>'.
540
			'<li>'.'<span class="champ">Commentaires :</span> '.$commentaire_img.'</li>'.
579
			'<li>'.'<span class="champ">Mots-clés :</span> '.implode(', ', $mots_cles_image).'</li>'.
541
			'<li>'.'<span class="champ">Mots-clés :</span> '.implode(', ', $mots_cles_image).'</li>'.
580
			'</ul>'.
542
			'</ul>'.
581
			'</div>'.
543
			'</div>';
582
			// TODO : ajouter le champ commentaire EXIF.
544
			// TODO : ajouter le champ commentaire EXIF.
-
 
545
		if (! $this->etreNull($id_obs)) {
-
 
546
			$description .= 
583
			'<div class="gauche">'.
547
				'<div class="gauche">'.
584
			'<h3>'.'Observation'.'</h3>'.
548
				'<h3>'.'Observation'.'</h3>'.
585
			'<ul>'.
549
				'<ul>'.
586
			'<li>'.'<span class="champ">Famille :</span> '.$famille.'</li>'.
550
				'<li>'.'<span class="champ">Famille :</span> '.$famille.'</li>'.
587
			'<li>'.'<span class="champ">Nom saisi :</span> '.$nom_saisi.'</li>'.
551
				'<li>'.'<span class="champ">Nom saisi :</span> '.$nom_saisi.'</li>'.
Line 595... Line 559...
595
			(($this->etreFluxAdmin()) ? '<li><span class="champ">Transmis (= public) :</span> '.$transmission.'</li>' : '').
559
				(($this->etreFluxAdmin()) ? '<li><span class="champ">Transmis (= public) :</span> '.$transmission.'</li>' : '').
596
			'<li><span class="champ">Modifiée le :</span> '.$date_modification.'</li>'.
560
				'<li><span class="champ">Modifiée le :</span> '.$date_modification.'</li>'.
597
			'<li><span class="champ">Créée le :</span> '.$date_creation.'</li>'.
561
				'<li><span class="champ">Créée le :</span> '.$date_creation.'</li>'.
598
			'</ul>'.
562
				'</ul>'.
599
			'</div>';
563
				'</div>';
-
 
564
		}
600
		$description = $this->nettoyerTexte($description);
565
		$description = $this->nettoyerTexte($description);
601
		return $description;
566
		return $description;
602
	}
567
	}
Line 603... Line 568...
603
	
568
	
Line 622... Line 587...
622
					$requete_where[] = sprintf($tpl_where, $occurence['cmc_id_mot_cle_utilisateur'], $this->bdd->quote($occurence['cmc_id_proprietaire']));
587
					$requete_where[] = sprintf($tpl_where, $occurence['cmc_id_mot_cle_utilisateur'], $this->bdd->quote($occurence['cmc_id_proprietaire']));
623
				}
588
				}
Line 624... Line 589...
624
				
589
				
625
				// Construction de la requête
590
				// Construction de la requête
626
				$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
591
				$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
627
					'	ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
592
					'	ci_id_image, ci_ce_utilisateur, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
628
					'FROM cel_images AS cim '.
593
					'FROM cel_images AS cim '.
629
					'	LEFT JOIN cel_obs_images AS coi '.
594
					'	LEFT JOIN cel_obs_images AS coi '.
630
					'		ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
595
					'		ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
631
					'	LEFT JOIN cel_inventory AS ci '.
596
					'	LEFT JOIN cel_inventory AS ci '.
Line 653... Line 618...
653
		if (isset($commune)) {
618
		if (isset($commune)) {
654
			$commune = $this->bdd->quote($commune);
619
			$commune = $this->bdd->quote($commune);
Line 655... Line 620...
655
			
620
			
656
			// Construction de la requête
621
			// Construction de la requête
657
			$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
622
			$requete = 	(($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
658
			'	ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
623
			'	ci_id_image, ci_ce_utilisateur, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
659
			'FROM cel_images AS cim '.
624
			'FROM cel_images AS cim '.
660
			'	LEFT JOIN cel_obs_images AS coi '.
625
			'	LEFT JOIN cel_obs_images AS coi '.
661
			'		ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
626
			'		ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
662
			'	LEFT JOIN cel_inventory AS ci '.
627
			'	LEFT JOIN cel_inventory AS ci '.