Subversion Repositories eFlore/Applications.del

Rev

Rev 1233 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1233 Rev 1246
1
<?php
1
<?php
2
/**
2
/**
3
 * Service fournissant des informations concernant les votes sur les images de DEL en fonction d'un protocole 
3
 * Service fournissant des informations concernant les votes sur les images de DEL en fonction d'un protocole 
4
 * au format RSS1, RSS2 ou ATOM.
4
 * au format RSS1, RSS2 ou ATOM.
5
 * Encodage en entrée : utf8
5
 * Encodage en entrée : utf8
6
 * Encodage en sortie : utf8
6
 * Encodage en sortie : utf8
7
 * 
7
 * 
8
 * @author Grégoire DUCHE <gregoire@tela-botanica.org>
8
 * @author Grégoire DUCHE <gregoire@tela-botanica.org>
9
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
10
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
10
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
11
 * @version $Id$
11
 * @version $Id$
12
 * @copyright 2010
12
 * @copyright 2010
13
 */
13
 */
14
class SyndicationVotesParProtocole {
14
class SyndicationVotesParProtocole {
15
	
15
	
16
	
16
	
17
	/**
17
	/**
18
	 * Paramètres du service
18
	 * Paramètres du service
19
	 * */
19
	 * */
20
	private $ressources = null;
20
	private $ressources = null;
21
	private $parametres = null;
21
	private $parametres = null;
22
	private $format = null;
22
	private $format = null;
23
	private $service = null;
23
	private $service = null;
24
	private $squelette = null;
24
	private $squelette = null;
25
	private $squelette_dossier = null;
25
	private $squelette_dossier = null;
26
	private $masque = array();
26
	private $masque = array();
27
	private $mappingFiltre = array();
27
	private $mappingFiltre = array();
28
	private $conteneur = null;
28
	private $conteneur = null;
29
	private $gestionBdd = null;
29
	private $gestionBdd = null;
30
	private $navigation = null;
30
	private $navigation = null;
31
	private $type_rss = null;
31
	private $type_rss = null;
32
	
32
	
33
	/**
33
	/**
34
	 * Constructeur
34
	 * Constructeur
35
	 * Initialiser les configurations
35
	 * Initialiser les configurations
36
	 * */
36
	 * */
37
	public function __construct(Conteneur $conteneur = null) {
37
	public function __construct(Conteneur $conteneur = null) {
38
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
38
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
39
		$this->conteneur->chargerConfiguration('config_syndication_votesparprotocole.ini');
39
		$this->conteneur->chargerConfiguration('config_syndication_votesparprotocole.ini');
40
		$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
40
		$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
41
		$this->masque = $conteneur->getMasque();
41
		$this->masque = $conteneur->getMasque();
42
		$this->gestionBdd = $conteneur->getGestionBdd();
42
		$this->gestionBdd = $conteneur->getGestionBdd();
43
		$this->navigation = $conteneur->getNavigation();
43
		$this->navigation = $conteneur->getNavigation();
44
	}
44
	}
45
	
45
	
46
	/**
46
	/**
47
	 * Consulter 
47
	 * Consulter 
48
	 * Méthode par défaut pour récupérer l'ensemble des votes.
48
	 * Méthode par défaut pour récupérer l'ensemble des votes.
49
	 * Vérifie la configuration et retourne les derniers votes formatés
49
	 * Vérifie la configuration et retourne les derniers votes formatés
50
	 * */
50
	 * */
51
	public function consulter($params = array()) {	
51
	public function consulter($params = array()) {	
52
		$this->verifierConfiguration();	
52
		$this->verifierConfiguration();	
53
		$this->type_rss = $params[1];
53
		$this->type_rss = $params[1];
54
		if ($this->fluxAdminDemande()) {
54
		if ($this->fluxAdminDemande()) {
55
			$this->demanderAutorisationAdmin();
55
			$this->demanderAutorisationAdmin();
56
		} 
56
		} 
57
		
57
		
58
		$donnees_brutes = $this->getDerniersVotesImage();
58
		$donnees_brutes = $this->getDerniersVotesImage();
59
		$commentaires_formates = $this->formaterPourRss($donnees_brutes) ; 
59
		$commentaires_formates = $this->formaterPourRss($donnees_brutes) ; 
60
		return $commentaires_formates;
60
		return $commentaires_formates;
61
	}
61
	}
62
	
62
	
63
	/**
63
	/**
64
	* Vérifier que le service est bien configuré
64
	* Vérifier que le service est bien configuré
65
	* */
65
	* */
66
	public function verifierConfiguration() {
66
	public function verifierConfiguration() {
67
	
67
	
68
		$erreurs = array();
68
		$erreurs = array();
69
		$tableauImages = $this->conteneur->getParametre('mapping_masque');
69
		$tableauImages = $this->conteneur->getParametre('mapping_masque');
70
	
70
	
71
		if (empty($this->mappingFiltre)) {
71
		if (empty($this->mappingFiltre)) {
72
			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide ;';
72
			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide ;';
73
		} else {
73
		} else {
74
			$champsMappingFiltre = array('image', 'protocole');
74
			$champsMappingFiltre = array('image', 'protocole');
75
			foreach ($champsMappingFiltre as $champ) {
75
			foreach ($champsMappingFiltre as $champ) {
76
				if (!isset($this->mappingFiltre[$champ])) {
76
				if (!isset($this->mappingFiltre[$champ])) {
77
					$erreurs[] = '- le mapping du champ "'.$champ.'" pour le commentaire est manquant ;';
77
					$erreurs[] = '- le mapping du champ "'.$champ.'" pour le commentaire est manquant ;';
78
				}
78
				}
79
			}
79
			}
80
		}
80
		}
81
	
81
	
82
		if (!empty($erreurs)) {
82
		if (!empty($erreurs)) {
83
			$e = 'Erreur lors de la configuration : '."\n";
83
			$e = 'Erreur lors de la configuration : '."\n";
84
			$e .= implode("\n", $erreurs);
84
			$e .= implode("\n", $erreurs);
85
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
85
			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
86
		}
86
		}
87
	}
87
	}
88
	
88
	
89
	/**
89
	/**
90
	 * Verifier si le flux admin est demandé
90
	 * Verifier si le flux admin est demandé
91
	 */
91
	 */
92
	private function fluxAdminDemande() {
92
	private function fluxAdminDemande() {
93
		return $this->conteneur->getParametre('admin') != null && $this->conteneur->getParametre('admin') == 1; 
93
		return $this->conteneur->getParametre('admin') != null && $this->conteneur->getParametre('admin') == 1; 
94
	}
94
	}
95
	
95
	
96
	/**
96
	/**
97
	 * Si le flux est un flux admin, demander un mot de passe
97
	 * Si le flux est un flux admin, demander un mot de passe
98
	 * */
98
	 * */
99
	private function demanderAutorisationAdmin() {
99
	private function demanderAutorisationAdmin() {
100
		$verification = new ControleAcces($this->conteneur);
100
		$verification = new ControleAcces($this->conteneur);
101
		$verification->demanderAuthentificationAdmin();
101
		$verification->demanderAuthentificationAdmin();
102
	}
102
	}
103
	
103
	
104
	
104
	
105
	/**
105
	/**
106
	 * Retrouver les derniers votes image
106
	 * Retrouver les derniers votes image
107
	 * */
107
	 * */
108
	private function getDerniersVotesImage() {
108
	private function getDerniersVotesImage() {
109
		
109
		
110
		$requete =  'SELECT DISTINCT id_vote, prenom, nom, nom_sel, intitule, ce_image,  valeur, dob.id_observation as del_obs, divo.date as date_vote '.
110
		$requete =  'SELECT DISTINCT id_vote, prenom, nom, nom_sel, intitule, ce_image,  valeur, dob.id_observation as del_obs, divo.date as date_vote '.
111
					' FROM `del_image_vote` divo '.
111
					' FROM `del_image_vote` divo '.
112
					' INNER JOIN del_obs_image doi ON divo.ce_image = doi.id_image '.
112
					' INNER JOIN del_obs_image doi ON divo.ce_image = doi.id_image '.
113
					' INNER JOIN del_observation dob ON dob.id_observation = doi.id_observation '.
113
					' INNER JOIN del_observation dob ON dob.id_observation = doi.id_observation '.
114
					' INNER JOIN del_image_protocole ON ce_protocole = id_protocole '.
114
					' INNER JOIN del_image_protocole ON ce_protocole = id_protocole '.
115
					' INNER JOIN del_utilisateur ON dob.ce_utilisateur = id_utilisateur '.
115
					' LEFT JOIN del_utilisateur ON dob.ce_utilisateur = id_utilisateur '.
116
					$this->chargerClauseWhere()." ".
116
					$this->chargerClauseWhere()." ".
117
					' ORDER BY divo.date DESC '.
117
					' ORDER BY divo.date DESC '.
118
					' LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite();
118
					' LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite();
119
		$elements = $this->gestionBdd->getBdd()->recupererTous($requete);
119
		$elements = $this->gestionBdd->getBdd()->recupererTous($requete);
120
		return $elements;
120
		return $elements;
121
	}
121
	}
122
	
122
	
123
	
123
	
124
	/**
124
	/**
125
	 * Formater les données pour mettre en page le RSS
125
	 * Formater les données pour mettre en page le RSS
126
	 * */
126
	 * */
127
	private function formaterPourRss($elements) {
127
	private function formaterPourRss($elements) {
128
		$donnees = $this->construireDonneesCommunesAuFlux($elements);
128
		$donnees = $this->construireDonneesCommunesAuFlux($elements);
129
		foreach ($elements as $element) {
129
		foreach ($elements as $element) {
130
			$identifiants[$element['id_vote']] = $element['id_vote'];
130
			$identifiants[$element['id_vote']] = $element['id_vote'];
131
		}
131
		}
132
		foreach ($elements as $element) {
132
		foreach ($elements as $element) {
133
			$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
133
			$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
134
		}
134
		}
135
		return $donnees;
135
		return $donnees;
136
	}
136
	}
137
		
137
		
138
	/**
138
	/**
139
	 * Générer les métadonnées du flux (titre, dates, editeur etc.)
139
	 * Générer les métadonnées du flux (titre, dates, editeur etc.)
140
	 * */
140
	 * */
141
	private function construireDonneesCommunesAuFlux($infos) {
141
	private function construireDonneesCommunesAuFlux($infos) {
142
		$donnees = array();
142
		$donnees = array();
143
		$donnees['guid'] = '';
143
		$donnees['guid'] = '';
144
		$donnees['titre'] = 'Derniers votes sur les images de l\'application PictoFlora';
144
		$donnees['titre'] = 'Derniers votes sur les images de l\'application PictoFlora';
145
		$donnees['description'] = 'Ce flux regroupe les derniers votes sur les images de Pictoflora';
145
		$donnees['description'] = 'Ce flux regroupe les derniers votes sur les images de Pictoflora';
146
		$donnees['lien_service'] = $this->creerUrlService();
146
		$donnees['lien_service'] = $this->creerUrlService();
147
		$donnees['lien_del'] = $this->conteneur->getParametre('pictoAppliLien');
147
		$donnees['lien_del'] = $this->conteneur->getParametre('pictoAppliLien');
148
		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
148
		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
149
		$derniere_info_en_date = reset($infos);
149
		$derniere_info_en_date = reset($infos);
150
		$date_modification_timestamp = strtotime($derniere_info_en_date['date_vote']);
150
		$date_modification_timestamp = strtotime($derniere_info_en_date['date_vote']);
151
		$donnees['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
151
		$donnees['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
152
		$donnees['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
152
		$donnees['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
153
		$donnees['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
153
		$donnees['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
154
		$donnees['annee_courante'] = date('Y');
154
		$donnees['annee_courante'] = date('Y');
155
		$donnees['generateur'] = 'DEL - SyndicationCommentaire';
155
		$donnees['generateur'] = 'DEL - SyndicationCommentaire';
156
		$donnees['generateur_version'] = (preg_match('/([0-9]+)/', '$Revision$', $match)) ?  $match[1] : '0';
156
		$donnees['generateur_version'] = (preg_match('/([0-9]+)/', '$Revision$', $match)) ?  $match[1] : '0';
157
		return $donnees; 
157
		return $donnees; 
158
	}
158
	}
159
	
159
	
160
	/**
160
	/**
161
	 * Générer le lien du flux RSS
161
	 * Générer le lien du flux RSS
162
	 * */
162
	 * */
163
	private function creerUrlService() {
163
	private function creerUrlService() {
164
		$url_service = $this->conteneur->getParametre('url_service');
164
		$url_service = $this->conteneur->getParametre('url_service');
165
		$url_service .= '/'.$this->type_rss;
165
		$url_service .= '/'.$this->type_rss;
166
		//$url_service = '';
166
		//$url_service = '';
167
		if (count($_GET) > 0) {
167
		if (count($_GET) > 0) {
168
			$parametres_get = array();
168
			$parametres_get = array();
169
			foreach ($_GET as $cle => $valeur) {
169
			foreach ($_GET as $cle => $valeur) {
170
				$parametres_get[] = $cle.'='.$valeur;
170
				$parametres_get[] = $cle.'='.$valeur;
171
			}
171
			}
172
			$url_service .= '?'.implode('&amp;', $parametres_get);
172
			$url_service .= '?'.implode('&amp;', $parametres_get);
173
		}
173
		}
174
		return $url_service;
174
		return $url_service;
175
	}
175
	}
176
	
176
	
177
	/**
177
	/**
178
	 * Générer les données communes & spécifiques à chaque item
178
	 * Générer les données communes & spécifiques à chaque item
179
	 * */
179
	 * */
180
	private function construireDonneesCommunesAuxItems($info) {
180
	private function construireDonneesCommunesAuxItems($info) {
181
		$item = array();
181
		$item = array();
182
		$date_modification_timestamp = strtotime($info['date_vote']);
182
		$date_modification_timestamp = strtotime($info['date_vote']);
183
		$item['date_maj_simple'] = strftime('%A %d %B %Y à %H:%M', $date_modification_timestamp);
183
		$item['date_maj_simple'] = strftime('%A %d %B %Y à %H:%M', $date_modification_timestamp);
184
		$item['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
184
		$item['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
185
		$item['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
185
		$item['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
186
		$item['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
186
		$item['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
187
		$item['titre'] = $this->creerTitre($info);
187
		$item['titre'] = $this->creerTitre($info);
188
		$item['guid'] = $this->creerGuidItem($info);
188
		$item['guid'] = $this->creerGuidItem($info);
189
		$item['lien'] = $this->creerLienItem($info);
189
		$item['lien'] = $this->creerLienItem($info);
190
		$item['categorie'] = $this->creerCategorie($item);
190
		$item['categorie'] = $this->creerCategorie($item);
191
		$item['description'] = $this->creerDescription($info, $item);
191
		$item['description'] = $this->creerDescription($info, $item);
192
		$item['description_encodee'] = htmlspecialchars($this->creerDescription($info, $item));
192
		$item['description_encodee'] = htmlspecialchars($this->creerDescription($info, $item));
193
		$item['modifie_par'] = $this->creerAuteur($info);
193
		$item['modifie_par'] = $this->creerAuteur($info);
194
		return $item;
194
		return $item;
195
	}
195
	}
196
	
196
	
197
	
197
	
198
	private function creerCategorie($element) {
198
	private function creerCategorie($element) {
199
		$categorie = 'Vote protocole';
199
		$categorie = 'Vote protocole';
200
		$categorie = htmlentities($categorie);
200
		$categorie = htmlentities($categorie);
201
		return $categorie;
201
		return $categorie;
202
	}
202
	}
203
	
203
	
204
	private function creerGuidItem($element) {
204
	private function creerGuidItem($element) {
205
		$guid = sprintf($this->conteneur->getParametre('voteParProtocole'), $element['id_vote']);
205
		$guid = sprintf($this->conteneur->getParametre('voteParProtocole'), $element['id_vote']);
206
		return $guid;
206
		return $guid;
207
	}
207
	}
208
 
208
 
209
	private function creerLienItem($element) {
209
	private function creerLienItem($element) {
210
		$lien = sprintf($this->conteneur->getParametre('pictofloraFicheObsTpl'), $element['del_obs']);
210
		$lien = sprintf($this->conteneur->getParametre('pictofloraFicheObsTpl'), $element['del_obs']);
211
		return $lien;
211
		return $lien;
212
	}
212
	}
213
	
213
	
214
	private function creerTitre($element) {
214
	private function creerTitre($element) {
215
		$intitule = 'Vote';
215
		$intitule = 'Vote';
216
		$titre = $intitule.' '.$element['valeur'].' - '.htmlspecialchars($this->creerAuteur($element)).' ('.htmlspecialchars($element['nom_sel']).', par '.htmlspecialchars($this->creerAuteur($element));
216
		$titre = $intitule.' '.$element['valeur'].' - '.htmlspecialchars($this->creerAuteur($element)).' ('.htmlspecialchars($element['nom_sel']).', par '.htmlspecialchars($this->creerAuteur($element));
217
		return $titre;
217
		return $titre;
218
	}
218
	}
219
	
219
	
220
	private function creerDescription($donnees, $item) {
220
	private function creerDescription($donnees, $item) {
221
		$description = '<ul>';
221
		$description = '<ul>';
222
		$description .= '<li>Image : '.htmlspecialchars($donnees['ce_image']).'</li>';
222
		$description .= '<li>Image : '.htmlspecialchars($donnees['ce_image']).'</li>';
223
		$description .= '<li>Proposition : <em>'.htmlspecialchars($donnees['nom_sel']).'</em></li>';
223
		$description .= '<li>Proposition : <em>'.htmlspecialchars($donnees['nom_sel']).'</em></li>';
224
		$description .= '<li>Protocole : '.htmlspecialchars($donnees['intitule']).'</li>';
224
		$description .= '<li>Protocole : '.htmlspecialchars($donnees['intitule']).'</li>';
225
		$description .= '<li>Valeur : '.$donnees['valeur'].'</li>';
225
		$description .= '<li>Valeur : '.$donnees['valeur'].'</li>';
226
		
226
		
227
		$auteur = htmlspecialchars($this->creerAuteur($donnees));
227
		$auteur = htmlspecialchars($this->creerAuteur($donnees));
228
		$auteur .= $this->fluxAdminDemande() ? ' ('.$donnees['utilisateur_courriel'].')' : '';
228
		$auteur .= $this->fluxAdminDemande() ? ' ('.$donnees['utilisateur_courriel'].')' : '';
229
		
229
		
230
		$description .= '<li>Auteur : '.$auteur.'</li>'.
230
		$description .= '<li>Auteur : '.$auteur.'</li>'.
231
		             	'</ul>';
231
		             	'</ul>';
232
		return $description;
232
		return $description;
233
	}
233
	}
234
	
234
	
235
	private function creerAuteur($info) {
235
	private function creerAuteur($info) {
236
		return $info['prenom'].' '.$info['nom'];
236
		return $info['prenom'].' '.$info['nom'];
237
	}
237
	}
238
	
238
	
239
	
239
	
240
	
240
	
241
	/**
241
	/**
242
	* Charger la clause WHERE en fonction des paramètres de masque
242
	* Charger la clause WHERE en fonction des paramètres de masque
243
	* */
243
	* */
244
	private function chargerClauseWhere() {
244
	private function chargerClauseWhere() {
245
		$where = array();
245
		$where = array();
246
		$tableauMasque = $this->masque->getMasque();
246
		$tableauMasque = $this->masque->getMasque();
247
		if (!empty($tableauMasque)) {
247
		if (!empty($tableauMasque)) {
248
			foreach($tableauMasque as $idMasque => $valeurMasque) {
248
			foreach($tableauMasque as $idMasque => $valeurMasque) {
249
				$idMasque = str_replace('masque.', '', $idMasque);
249
				$idMasque = str_replace('masque.', '', $idMasque);
250
				switch ($idMasque) {
250
				switch ($idMasque) {
251
					case 'image':
251
					case 'image':
252
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque);                                                                                                             
252
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque);                                                                                                             
253
					break;
253
					break;
254
					case 'protocole':
254
					case 'protocole':
255
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque).' ';                                                                                                        
255
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque).' ';                                                                                                        
256
					break;
256
					break;
257
					default:
257
					default:
258
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque);
258
						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque);
259
					break;
259
					break;
260
				}
260
				}
261
			}	
261
			}	
262
		}
262
		}
263
		if (!empty($where)) {
263
		if (!empty($where)) {
264
			return ' WHERE '.implode('AND', $where);
264
			return ' WHERE '.implode('AND', $where);
265
		} else {
265
		} else {
266
			return;
266
			return;
267
		}
267
		}
268
	}
268
	}
269
	
269
	
270
	private function creerFiltreAuteur($valeurMasque) {
270
	private function creerFiltreAuteur($valeurMasque) {
271
		$masque = '';
271
		$masque = '';
272
		$auteurId = $valeurMasque;
272
		$auteurId = $valeurMasque;
273
		if (is_numeric($auteurId)) {
273
		if (is_numeric($auteurId)) {
274
			$masque = ' dc.ce_utilisateur = '.$auteurId;
274
			$masque = ' dc.ce_utilisateur = '.$auteurId;
275
		} else {
275
		} else {
276
			if (strpos($auteurId, '@') === false) {
276
			if (strpos($auteurId, '@') === false) {
277
				$tableauNomPrenom = explode(' ',$auteurId, 2);
277
				$tableauNomPrenom = explode(' ',$auteurId, 2);
278
				if(count($tableauNomPrenom) == 2) {
278
				if(count($tableauNomPrenom) == 2) {
279
					// on teste potentiellement un nom prenom ou bien un prénom nom
279
					// on teste potentiellement un nom prenom ou bien un prénom nom
280
					$masque = '('.
280
					$masque = '('.
281
							          	'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').' AND '.
281
							          	'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').' AND '.
282
									  	'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').') OR '.
282
									  	'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').') OR '.
283
									 	'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').' AND '.
283
									 	'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').' AND '.
284
									  	'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').')'.
284
									  	'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').')'.
285
									  ')';
285
									  ')';
286
				} else {
286
				} else {
287
					$masque = '(
287
					$masque = '(
288
							            (dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').' OR '.
288
							            (dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').' OR '.
289
										'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').')'.
289
										'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').')'.
290
									  ')';
290
									  ')';
291
				}
291
				}
292
			} else {
292
			} else {
293
				$masque = " dob.utilisateur_courriel LIKE ".$this->gestionBdd->getBdd()->proteger($valeurMasque.'%')." ";
293
				$masque = " dob.utilisateur_courriel LIKE ".$this->gestionBdd->getBdd()->proteger($valeurMasque.'%')." ";
294
			}
294
			}
295
		}
295
		}
296
		return $masque;
296
		return $masque;
297
	}
297
	}
298
}	
298
}