Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1329 Rev 1330
Line 1... Line 1...
1
<?php
1
<?php
2
// Attention classe à migrer ou en cours de migration : utilisez la branche si vous faites des developpements de prod !!!!!
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
Line 3... Line 3...
3
 
3
 
4
/**
4
/**
5
 * Service fournissant des informations concernant les images du CEL au format RSS1, RSS2 ou ATOM.
5
 * Service fournissant des informations concernant les images du CEL au format RSS1, RSS2 ou ATOM.
6
 * Encodage en entrée : utf8
6
 * Encodage en entrée : utf8
Line 364... Line 364...
364
	private function getServiceComplet() {
364
	private function getServiceComplet() {
Line 365... Line 365...
365
		
365
		
366
		// Construction de la requête
366
		// Construction de la requête
367
		$requete = 	(isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
367
		$requete = 	(isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
368
			'	cim.id_image, ci.ce_utilisateur, nom_original, cim.date_creation, cim.mots_cles_texte as mots_cles_texte_images, '.
368
			'	cim.id_image, ci.ce_utilisateur, nom_original, cim.date_creation, cim.mots_cles_texte as mots_cles_texte_images, '.
-
 
369
			'   ci.mots_cles_texte as mots_cles_texte_obs, cim.commentaire as commentaire_img, note_qualite, '.
369
			'   ci.mots_cles_texte as mots_cles_texte_obs, cim.commentaire, note_qualite '.
370
			'	ci.commentaire as commentaire_obs '.
370
			'FROM cel_images AS cim '.
371
			'FROM cel_images AS cim '.
371
			'	LEFT JOIN cel_obs_images AS coi '.
372
			'	LEFT JOIN cel_obs_images AS coi '.
372
			'		ON (coi.id_image = cim.id_image) '.
373
			'		ON (coi.id_image = cim.id_image) '.
373
			'	LEFT JOIN cel_obs AS ci '.
374
			'	LEFT JOIN cel_obs AS ci '.
Line 393... Line 394...
393
		$contenu = '';
394
		$contenu = '';
394
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];		
395
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];		
395
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
396
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
Line 396... Line 397...
396
		
397
		
397
		// Construction de la requête
398
		// Construction de la requête
-
 
399
		$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images, '.
398
		$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images '.
400
		    ' b.commentaire as commentaire_obs, c.commentaire as commentaire_img '.
399
			'FROM cel_obs_images AS a '.
401
			'FROM cel_obs_images AS a '.
400
			'	INNER JOIN cel_obs AS b '.
402
			'	INNER JOIN cel_obs AS b '.
401
			'		ON (a.id_observation = b.id_observation) '.
403
			'		ON (a.id_observation = b.id_observation) '.
402
			'	INNER JOIN cel_images AS c '.
404
			'	INNER JOIN cel_images AS c '.
Line 455... Line 457...
455
						$requete .= ' ('.$nom_valeur[0].' LIKE "%INSEE-C:'.$nom_valeur[1].'%") AND '; break;
457
						$requete .= ' ('.$nom_valeur[0].' LIKE "%INSEE-C:'.$nom_valeur[1].'%") AND '; break;
456
					case "b.nom_ret" : 
458
					case "b.nom_ret" : 
457
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';						
459
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';						
458
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
460
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
459
							$nom_valeur[1].'%") AND '; break;
461
							$nom_valeur[1].'%") AND '; break;
460
					case "tag" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break; 
462
					case "tag" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]).' AND '; break; 
461
					case "projet" : $requete .= $this->creerSousRequeteProjet($nom_valeur[1]); break; 		
463
					case "projet" : $requete .= $this->creerSousRequeteProjet($nom_valeur[1]).' AND '; break; 		
462
					default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
464
					default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
463
				}
465
				}
464
			}
466
			}
465
		}
467
		}
466
		$requete = rtrim($requete,' AND ');
468
		$requete = rtrim($requete,' AND ');
Line 478... Line 480...
478
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
480
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
479
			$mots_cles_tab = explode('ET',$mot_cle);
481
			$mots_cles_tab = explode('ET',$mot_cle);
480
			foreach($mots_cles_tab as $mot_cle_item) {
482
			foreach($mots_cles_tab as $mot_cle_item) {
481
				$requete .= '(c.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
483
				$requete .= '(c.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
482
			}
484
			}
483
			$requete = '('.rtrim($requete, 'AND ').')';
485
			$requete = '('.rtrim($requete, 'AND ').') ';
484
		} else {
486
		} else {
485
			$requete = "(c.mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') AND';
487
			$requete = "(c.mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') ';
486
		}
488
		}
487
		return $requete;
489
		return $requete;
488
	}
490
	}
Line 489... Line 491...
489
	
491
	
Line 498... Line 500...
498
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
500
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
499
			$mots_cles_tab = explode('ET',$mot_cle);
501
			$mots_cles_tab = explode('ET',$mot_cle);
500
			foreach($mots_cles_tab as $mot_cle_item) {
502
			foreach($mots_cles_tab as $mot_cle_item) {
501
				$requete .= '(b.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
503
				$requete .= '(b.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
502
			}
504
			}
503
			$requete = '('.rtrim($requete, 'AND ').')';
505
			$requete = '('.rtrim($requete, 'AND ').') ';
504
		} else {
506
		} else {
505
			$requete = "(b.mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') AND';
507
			$requete = "(b.mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') ';
506
		}
508
		}
507
		return $requete;
509
		return $requete;
508
	}
510
	}
Line 509... Line 511...
509
	
511
	
Line 521... Line 523...
521
				' OR '.
523
				' OR '.
522
				'b.ce_zone_geo LIKE "INSEE-C:'.$chaine_requete.'%" '.
524
				'b.ce_zone_geo LIKE "INSEE-C:'.$chaine_requete.'%" '.
523
				' OR '.
525
				' OR '.
524
				'b.ce_zone_geo LIKE "'.$chaine_requete.'%" '.
526
				'b.ce_zone_geo LIKE "'.$chaine_requete.'%" '.
525
				' OR '.
527
				' OR '.
526
				'c.id_utilisateur LIKE "'.$chaine_requete.'%" '.
528
				'c.ce_utilisateur LIKE "'.$chaine_requete.'%" '.
-
 
529
				' OR '.
-
 
530
				'c.courriel_utilisateur LIKE "'.$chaine_requete.'%" '.
527
				' OR '.
531
				' OR '.
528
				'b.mots_cles_texte LIKE "'.$chaine_requete.'%" '.
532
				'b.mots_cles_texte LIKE "'.$chaine_requete.'%" '.
529
				' OR '.
533
				' OR '.
530
				'c.mots_cles_texte LIKE "'.$chaine_requete.'%" '.
534
				'c.mots_cles_texte LIKE "'.$chaine_requete.'%" '.
531
				') ';
535
				') ';
Line 557... Line 561...
557
		$url_img = $this->getUrlImage($donnees['id_image'], 'CS');
561
		$url_img = $this->getUrlImage($donnees['id_image'], 'CS');
558
		$url_img_normale = $this->getUrlImage($donnees['id_image'], 'XL');
562
		$url_img_normale = $this->getUrlImage($donnees['id_image'], 'XL');
559
		//
563
		//
560
		$mots_cles_image = $donnees['mots_cles_texte_images'];
564
		$mots_cles_image = $donnees['mots_cles_texte_images'];
561
		$note = ($donnees['note_qualite'] +1).'/5';
565
		$note = ($donnees['note_qualite'] +1).'/5';
562
		$commentaire_img = $donnees['commentaire'];
566
		$commentaire_img = $donnees['commentaire_img'];
Line 563... Line 567...
563
		
567
		
564
		$id_obs = $donnees['id_observation'];
568
		$id_obs = $donnees['id_observation'];
565
		$famille = $donnees['famille'];
569
		$famille = $donnees['famille'];
566
		$nom_saisi = $donnees['nom_sel'];
570
		$nom_saisi = $donnees['nom_sel'];
567
		$nom_retenu = $donnees['nom_ret'];
571
		$nom_retenu = $donnees['nom_ret'];
568
		//
572
		//
569
		$mots_cles_obs = $donnees['mots_cles_texte_obs'];
573
		$mots_cles_obs = $donnees['mots_cles_texte_obs'];
570
		$lieu =  $donnees['zone_geo'].' ('.$donnees['ce_zone_geo'].') > '.$donnees['lieudit'].' > '.$donnees['station'];
574
		$lieu =  $donnees['zone_geo'].' ('.$this->convertirCodeZoneGeoVersCodeInsee($donnees['ce_zone_geo']).') > '.$donnees['lieudit'].' > '.$donnees['station'];
571
		$milieu = $donnees['milieu'];
575
		$milieu = $donnees['milieu'];
572
		$coordonnees = ($this->etreNull($donnees['latitude']) && $this->etreNull($donnees['longitude'])) ? '' : $donnees['latitude'].'/'.$donnees['longitude'];
576
		$coordonnees = ($this->etreNull($donnees['latitude']) && $this->etreNull($donnees['longitude'])) ? '' : $donnees['latitude'].'/'.$donnees['longitude'];
573
		$commentaire_obs = $donnees['commentaire'];
577
		$commentaire_obs = $donnees['commentaire_obs'];
574
		$date_observation = $this->formaterDate($donnees['date_observation'], '%A %d %B %Y');
578
		$date_observation = $this->formaterDate($donnees['date_observation'], '%A %d %B %Y');
575
		$date_transmission = $this->formaterDate($donnees['date_transmission']);
579
		$date_transmission = $this->formaterDate($donnees['date_transmission']);
576
		$date_modification = $this->formaterDate($donnees['date_modification']);
580
		$date_modification = $this->formaterDate($donnees['date_modification']);
577
		$date_creation = $this->formaterDate($donnees['date_creation']);
581
		$date_creation = $this->formaterDate($donnees['date_creation']);