Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1304 Rev 1307
Line 50... Line 50...
50
	* */
50
	* */
51
	public function verifierConfiguration() {
51
	public function verifierConfiguration() {
52
		$erreurs = array();
52
		$erreurs = array();
Line 53... Line 53...
53
 
53
 
54
		if (empty($this->mappingFiltre)) {
54
		if (empty($this->mappingFiltre)) {
55
			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide ;';
-
 
56
		} else {
-
 
57
			$champsMappingFiltre = array('espece', 'observation');
-
 
58
			foreach ($champsMappingFiltre as $champ) {
-
 
59
				if (!isset($this->mappingFiltre[$champ])) {
-
 
60
					$erreurs[] = '- le mapping du champ "'.$champ.'" pour le commentaire est manquant ;';
-
 
61
				}
-
 
62
			}
55
			$erreurs[] = 'Le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide.';
Line 63... Line 56...
63
		}
56
		}
64
 
57
 
65
		if (!empty($erreurs)) {
58
		if (!empty($erreurs)) {
Line 92... Line 85...
92
		return $donnees;
85
		return $donnees;
93
	}
86
	}
Line 94... Line 87...
94
 
87
 
95
	private function construireDonneesCommunesAuFlux($infos) {
88
	private function construireDonneesCommunesAuFlux($infos) {
96
		$donnees = array();
89
		$donnees = array();
97
		$donnees['guid'] = $this->creerUrlService();
90
		$donnees['guid'] = htmlspecialchars($this->creerUrlService());
98
		$donnees['titre'] = 'identiPlante : commentaires et propositions';
91
		$donnees['titre'] = 'identiPlante : commentaires et propositions';
99
		$donnees['description'] = 'Ce flux regroupe les dernières déterminations et commentaires rédigés dans l\'application identiPlante';
92
		$donnees['description'] = 'Ce flux regroupe les dernières déterminations et commentaires rédigés dans l\'application identiPlante';
100
		$donnees['lien_service'] = $this->creerUrlService();
93
		$donnees['lien_service'] = htmlspecialchars($this->creerUrlService());
101
		$donnees['lien_del'] = $this->conteneur->getParametre('delAppliLien');
94
		$donnees['lien_del'] = $this->conteneur->getParametre('delAppliLien');
102
		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
95
		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
103
		$derniere_info_en_date = reset($infos);
96
		$derniere_info_en_date = reset($infos);
104
		$date_modification_timestamp = $this->convertirDateHeureMysqlEnTimestamp($derniere_info_en_date['date']);
97
		$date_modification_timestamp = $this->convertirDateHeureMysqlEnTimestamp($derniere_info_en_date['date']);
Line 258... Line 251...
258
	/**
251
	/**
259
	* Charger la clause WHERE en fonction des paramètres de masque
252
	* Charger la clause WHERE en fonction des paramètres de masque
260
	* */
253
	* */
261
	private function chargerClauseWhere() {
254
	private function chargerClauseWhere() {
262
		$where = array();
255
		$where = array();
-
 
256
 
263
		$tableauMasque = $this->masque->getMasque();
257
		$tableauMasque = $this->masque->getMasque();
264
		if (!empty($tableauMasque)) {
258
		if (!empty($tableauMasque)) {
265
			foreach($tableauMasque as $idMasque => $valeurMasque) {
259
			foreach ($tableauMasque as $idMasque => $valeurMasque) {
266
				$idMasque = str_replace('masque.', '', $idMasque);
260
				$idMasque = str_replace('masque.', '', $idMasque);
-
 
261
				$champ = $this->mappingFiltre[$idMasque];
-
 
262
				$valeurMasquePattern = $this->gestionBdd->getBdd()->proteger($valeurMasque.'%');
-
 
263
				$valeurMasqueProtegee = $this->gestionBdd->getBdd()->proteger($valeurMasque);
-
 
264
 
267
				switch ($idMasque) {
265
				switch ($idMasque) {
268
					case 'espece':
266
					case 'espece':
269
						$where[] = ' dob.'.$this->mappingFiltre[$idMasque].
-
 
270
							' LIKE '.$this->gestionBdd->getBdd()->proteger($valeurMasque.'%').' '.
-
 
271
							' OR '.' dc.'.$this->mappingFiltre[$idMasque].
-
 
272
							' LIKE '.$this->gestionBdd->getBdd()->proteger($valeurMasque.'%').' ';
267
						$where[] = " dob.$champ LIKE $valeurMasquePattern OR dc.$champ LIKE $valeurMasquePattern ";
273
						break;
268
						break;
274
					case 'auteur':
269
					case 'auteur':
275
						$where[] = $this->creerFiltreAuteur($valeurMasque).' ';
270
						$where[] = $this->creerFiltreAuteur($valeurMasque);
276
						break;
271
						break;
277
					default:
272
					default:
278
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque);
273
						$where[] = " $champ = $valeurMasqueProtegee ";
279
				}
274
				}
280
			}
275
			}
281
		}
276
		}
-
 
277
 
-
 
278
		$whereSql = '';
282
		if (!empty($where)) {
279
		if (!empty($where)) {
283
			return ' AND '.implode('AND', $where);
280
			$whereSql = ' AND '.implode('AND', $where);
284
		} else {
-
 
285
			return;
-
 
286
		}
281
		}
-
 
282
		return $whereSql;
287
	}
283
	}
Line 288... Line 284...
288
 
284
 
289
	private function creerFiltreAuteur($auteurId) {
285
	private function creerFiltreAuteur($auteurId) {
290
		$masque = '';
286
		$whereAuteur = '';
291
		if (is_numeric($auteurId)) {
287
		if (is_numeric($auteurId)) {
292
			$masque = " dc.ce_utilisateur = $auteurId ";
288
			$whereAuteur = " dc.ce_utilisateur = $auteurId ";
293
		} else {
289
		} else {
Line 294... Line 290...
294
			$auteurIdMotif = $this->gestionBdd->getBdd()->proteger($auteurId.'%');
290
			$auteurIdMotif = $this->gestionBdd->getBdd()->proteger($auteurId.'%');
295
 
291
 
296
			if (strpos($auteurId, '@') === false) {
292
			if (strpos($auteurId, '@') === false) {
297
				$tableauNomPrenom = explode(' ', $auteurId, 2);
293
				$tableauNomPrenom = explode(' ', $auteurId, 2);
298
				if (count($tableauNomPrenom) == 2) {
294
				if (count($tableauNomPrenom) == 2) {
299
					// on teste potentiellement un nom prenom ou bien un prénom nom
295
					// on teste potentiellement un nom prenom ou bien un prénom nom
Line 300... Line 296...
300
					$nomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%');
296
					$nomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%');
301
					$prenomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%');
297
					$prenomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%');
302
 
298
 
303
					$masque = '('.
299
					$whereAuteur = ' ('.
304
						"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ".
300
						"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ".
305
						'OR '.
301
						'OR '.
306
						"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ".
302
						"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ".
307
					')';
303
					') ';
308
				} else {
304
				} else {
309
					$masque = "(dc.utilisateur_nom LIKE $auteurIdMotif OR dc.utilisateur_prenom LIKE $auteurIdMotif) ";
305
					$whereAuteur = "(dc.utilisateur_nom LIKE $auteurIdMotif OR dc.utilisateur_prenom LIKE $auteurIdMotif) ";
310
				}
306
				}
311
			} else {
307
			} else {
312
				$masque = " dob.utilisateur_courriel LIKE $auteurIdMotif ";
308
				$whereAuteur = " dob.utilisateur_courriel LIKE $auteurIdMotif ";
313
			}
309
			}
314
		}
310
		}
315
		return $masque;
311
		return $whereAuteur;
316
	}
312
	}