Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1253 Rev 1284
Line 60... Line 60...
60
 
60
 
61
	/**
61
	/**
62
	* Vérifier que le service est bien configuré
62
	* Vérifier que le service est bien configuré
63
	* */
63
	* */
64
	public function verifierConfiguration() {
-
 
65
 
64
	public function verifierConfiguration() {
66
		$erreurs = array();
65
		$erreurs = array();
Line 67... Line 66...
67
		$tableauImages = $this->conteneur->getParametre('mapping_masque');
66
		$tableauImages = $this->conteneur->getParametre('mapping_masque');
68
 
67
 
Line 98... Line 97...
98
		$verification = new ControleAcces($this->conteneur);
97
		$verification = new ControleAcces($this->conteneur);
99
		$verification->demanderAuthentificationAdmin();
98
		$verification->demanderAuthentificationAdmin();
100
	}
99
	}
Line 101... Line 100...
101
 
100
 
102
	/**
-
 
103
	 * Retrouver les derniers votes image
-
 
104
	 * */
-
 
105
	private function getDerniersVotesImage() {
-
 
106
		$requete =  'SELECT DISTINCT id_vote, duo.prenom AS observateur_prenom, duo.nom AS observateur_nom, du.prenom AS utilisateur_prenom, du.nom AS utilisateur_nom, nom_sel, intitule, ce_image,  valeur, dob.id_observation as del_obs, divo.date as date_vote '.
-
 
107
					' FROM `del_image_vote` divo '.
-
 
108
					' LEFT JOIN del_utilisateur AS du ON divo.ce_utilisateur = du.id_utilisateur '.
-
 
109
					' INNER JOIN del_obs_image doi ON divo.ce_image = doi.id_image '.
-
 
110
					' INNER JOIN del_observation dob ON dob.id_observation = doi.id_observation '.
-
 
111
					' INNER JOIN del_image_protocole ON ce_protocole = id_protocole '.
-
 
112
					' INNER JOIN del_utilisateur AS duo ON dob.ce_utilisateur = duo.id_utilisateur '.
-
 
113
					$this->chargerClauseWhere()." ".
-
 
114
					' ORDER BY divo.date DESC '.
-
 
115
					' LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite();
-
 
116
		$elements = $this->gestionBdd->getBdd()->recupererTous($requete);
-
 
117
		return $elements;
-
 
118
	}
-
 
119
 
-
 
120
 
-
 
121
	/**
101
	/**
122
	 * Formater les données pour mettre en page le RSS
102
	 * Formater les données pour mettre en page le RSS
123
	 * */
103
	 * */
124
	private function formaterPourRss($elements) {
104
	private function formaterPourRss($elements) {
125
		$donnees = $this->construireDonneesCommunesAuFlux($elements);
105
		$donnees = $this->construireDonneesCommunesAuFlux($elements);
Line 136... Line 116...
136
	 * Générer les métadonnées du flux (titre, dates, editeur etc.)
116
	 * Générer les métadonnées du flux (titre, dates, editeur etc.)
137
	 * */
117
	 * */
138
	private function construireDonneesCommunesAuFlux($infos) {
118
	private function construireDonneesCommunesAuFlux($infos) {
139
		$donnees = array();
119
		$donnees = array();
140
		$donnees['guid'] = '';
120
		$donnees['guid'] = '';
141
		$donnees['titre'] = 'Derniers votes sur les images de l\'application PictoFlora';
121
		$donnees['titre'] = 'pictoFlora : votes';
142
		$donnees['description'] = 'Ce flux regroupe les derniers votes sur les images de Pictoflora';
122
		$donnees['description'] = 'Ce flux regroupe les derniers votes sur les images de pictoFlora';
143
		$donnees['lien_service'] = $this->creerUrlService();
123
		$donnees['lien_service'] = $this->creerUrlService();
144
		$donnees['lien_del'] = $this->conteneur->getParametre('pictoAppliLien');
124
		$donnees['lien_del'] = $this->conteneur->getParametre('pictoAppliLien');
145
		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
125
		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
146
		$derniere_info_en_date = reset($infos);
126
		$derniere_info_en_date = reset($infos);
147
		$date_modification_timestamp = strtotime($derniere_info_en_date['date_vote']);
127
		$date_modification_timestamp = strtotime($derniere_info_en_date['date_vote']);
Line 219... Line 199...
219
		$titre = "Vote $noteVote - $observateurTxt ($nomSci), par $utilisateurTxt";
199
		$titre = "Vote $noteVote - $observateurTxt ($nomSci), par $utilisateurTxt";
220
		return $titre;
200
		return $titre;
221
	}
201
	}
Line 222... Line 202...
222
 
202
 
-
 
203
	private function creerDescription($donnees, $item) {
-
 
204
		$idImg = htmlspecialchars($donnees['ce_image']);
-
 
205
		$urlImg = $this->getUrlImage($donnees['ce_image']);
-
 
206
		$miniatureUrl = $this->getUrlImage($donnees['ce_image'], 'CRX2S');
-
 
207
		$proposition = htmlspecialchars($donnees['nom_sel']);
223
	private function creerDescription($donnees, $item) {
208
		$protocole = htmlspecialchars($donnees['intitule']);
224
		$utilisateur = array('prenom' => $donnees['utilisateur_prenom'], 'nom' => $donnees['utilisateur_nom']);
209
		$votant = array('prenom' => $donnees['votant_prenom'], 'nom' => $donnees['votant_nom']);
225
		$utilisateurTxt = htmlspecialchars($this->creerAuteur($utilisateur));
-
 
226
		$utilisateurTxt = empty($utilisateurTxt) ? 'Anonyme' : $utilisateurTxt;
-
 
227
 
210
		$votantTxt = htmlspecialchars($this->creerAuteur($votant));
228
		$observateur = array('prenom' => $donnees['observateur_prenom'], 'nom' => $donnees['observateur_nom']);
211
		$observateur = array('prenom' => $donnees['observateur_prenom'], 'nom' => $donnees['observateur_nom']);
Line 229... Line 212...
229
		$observateurTxt = htmlspecialchars($this->creerAuteur($observateur));
212
		$observateurTxt = htmlspecialchars($this->creerAuteur($observateur));
-
 
213
 
-
 
214
		$description = '<ul>'.
230
 
215
			'<li>'.
-
 
216
			'	<a href="'.$urlImg.'">'.
-
 
217
			'		<img src="'.$miniatureUrl.'" alt="Img #'.$idImg.'"/>'.
-
 
218
			'		Image #'.$idImg.
231
		$description = '<ul>'.
219
			'	</a>'.
232
			'<li>Image : '.htmlspecialchars($donnees['ce_image']).'</li>'.
220
			'</li>'.
233
			'<li>Proposition : <em>'.htmlspecialchars($donnees['nom_sel']).'</em></li>'.
221
			"<li>Auteur de l'image : $observateurTxt</li>".
234
			'<li>Protocole : '.htmlspecialchars($donnees['intitule']).'</li>'.
222
			"<li>Proposition : <em>$proposition</em></li>".
235
			'<li>Valeur : '.$donnees['valeur'].'/5</li>'.
223
			"<li>Protocole : $protocole</li>".
236
			'<li>Auteur : '.$observateurTxt.'</li>'.
224
			'<li>Valeur : <strong>'.$donnees['valeur'].'</strong>/5</li>'.
237
			'<li>Votant : '.$utilisateurTxt.'</li>'.
225
			'<li>Votant : '.$votantTxt.'</li>'.
238
			'</ul>';
226
			'</ul>';
Line -... Line 227...
-
 
227
		return $description;
-
 
228
	}
-
 
229
 
-
 
230
	private function getUrlImage($id, $format = 'L') {
-
 
231
		$url_tpl = $this->conteneur->getParametre('celImgUrlTpl');
-
 
232
		$id = sprintf('%09s', $id).$format;
-
 
233
		$url = sprintf($url_tpl, $id);
239
		return $description;
234
		return $url;
240
	}
235
	}
241
 
236
 
242
	private function creerAuteur($info) {
237
	private function creerAuteur($info) {
243
		$intitule = '';
238
		$intitule = 'Anonyme';
244
		if (isset($info['prenom']) && isset($info['nom'])) {
239
		if (isset($info['prenom']) && isset($info['nom'])) {
245
			$intitule = $info['prenom'].' '.$info['nom'];
240
			$intitule = $info['prenom'].' '.$info['nom'];
Line 246... Line 241...
246
		}
241
		}
-
 
242
		return $intitule;
-
 
243
	}
-
 
244
 
-
 
245
	/**
-
 
246
	 * Retrouver les derniers votes image
-
 
247
	 * */
-
 
248
	private function getDerniersVotesImage() {
-
 
249
		$requete =  'SELECT DISTINCT id_vote, ce_image, valeur, divo.date AS date_vote, '.
-
 
250
				'	duo.prenom AS observateur_prenom, duo.nom AS observateur_nom, '.
-
 
251
				'	duv.prenom AS votant_prenom, duv.nom AS votant_nom, '.
-
 
252
				'	do.id_observation AS del_obs, do.nom_sel, dip.intitule '.
-
 
253
				'FROM del_image_vote AS divo '.
-
 
254
				'	INNER JOIN del_obs_image AS doi '.
-
 
255
				'		ON divo.ce_image = doi.id_image '.
-
 
256
				'	INNER JOIN del_observation AS do '.
-
 
257
				'		ON do.id_observation = doi.id_observation '.
-
 
258
				'	INNER JOIN del_image_protocole AS dip '.
-
 
259
				'		ON ce_protocole = id_protocole '.
-
 
260
				'	LEFT JOIN del_utilisateur AS duo '.
-
 
261
				'		ON do.ce_utilisateur = duo.id_utilisateur '.
-
 
262
				'	LEFT JOIN del_utilisateur AS duv '.
-
 
263
				'		ON divo.ce_utilisateur = duv.id_utilisateur '.
-
 
264
				$this->chargerClauseWhere().' '.
-
 
265
				'ORDER BY divo.date DESC '.
-
 
266
				'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite();
-
 
267
 
-
 
268
		$elements = $this->gestionBdd->getBdd()->recupererTous($requete);
247
		return $intitule;
269
		return $elements;
248
	}
270
	}
249
 
271
 
250
	/**
272
	/**
251
	* Charger la clause WHERE en fonction des paramètres de masque
273
	* Charger la clause WHERE en fonction des paramètres de masque
Line 285... Line 307...
285
			if (strpos($auteurId, '@') === false) {
307
			if (strpos($auteurId, '@') === false) {
286
				$tableauNomPrenom = explode(' ',$auteurId, 2);
308
				$tableauNomPrenom = explode(' ',$auteurId, 2);
287
				if(count($tableauNomPrenom) == 2) {
309
				if(count($tableauNomPrenom) == 2) {
288
					// on teste potentiellement un nom prenom ou bien un prénom nom
310
					// on teste potentiellement un nom prenom ou bien un prénom nom
289
					$masque = '('.
311
					$masque = '('.
290
							          	'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').' AND '.
312
						'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').' AND '.
291
									  	'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').') OR '.
313
							'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').') OR '.
292
									 	'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').' AND '.
314
							'(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%').' AND '.
293
									  	'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').')'.
315
							'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%').')'.
294
									  ')';
316
					')';
295
				} else {
317
				} else {
296
					$masque = '(
318
					$masque = '(
297
							            (dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').' OR '.
319
						(dc.utilisateur_nom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').' OR '.
298
										'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').')'.
320
						'dc.utilisateur_prenom LIKE '.$this->gestionBdd->getBdd()->proteger($auteurId.'%').')'.
299
									  ')';
321
					')';
300
				}
322
				}
301
			} else {
323
			} else {
302
				$masque = " dob.utilisateur_courriel LIKE ".$this->gestionBdd->getBdd()->proteger($valeurMasque.'%')." ";
324
				$masque = " do.utilisateur_courriel LIKE ".$this->gestionBdd->getBdd()->proteger($valeurMasque.'%')." ";
303
			}
325
			}
304
		}
326
		}
305
		return $masque;
327
		return $masque;
306
	}
328
	}
307
}
329
}
-
 
330
?>
308
331