Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1772 Rev 1783
Line 102... Line 102...
102
			"ORDER BY do.ce_utilisateur, do.id_observation ";
102
			"ORDER BY do.ce_utilisateur, do.id_observation ";
103
		$observations = $this->conteneur->getBdd()->recupererTous($requete);
103
		$observations = $this->conteneur->getBdd()->recupererTous($requete);
104
		return $observations;
104
		return $observations;
105
	}
105
	}
Line -... Line 106...
-
 
106
 
-
 
107
	// classe les observations concernées par id_utilisateur (ou courriel si non inscrit)
106
 
108
	// de l'auteur puis par id_observation
107
	private function formaterObservations($liste_obs) {
109
	private function formaterObservations($liste_obs) {
108
		foreach ($liste_obs as $obs) {
110
		foreach ($liste_obs as $obs) {
109
			$id_obs = $obs['id_observation'];
111
			$id_obs = $obs['id_observation'];
-
 
112
			$id_auteur_obs = $obs['ce_utilisateur'];
-
 
113
			if (($id_auteur_obs == 0) && ($obs['courriel_utilisateur'] != '')) {
-
 
114
				$id_auteur_obs = $obs['courriel_utilisateur'];
Line 110... Line 115...
110
			$id_auteur_obs = $obs['ce_utilisateur'];
115
			}
111
 
116
 
112
			$infos = array();
117
			$infos = array();
113
			$infos['id'] = $id_obs;
118
			$infos['id'] = $id_obs;
Line 215... Line 220...
215
		return $commentaire['utilisateur_prenom'].' '.$commentaire['utilisateur_nom'];
220
		return $commentaire['utilisateur_prenom'].' '.$commentaire['utilisateur_nom'];
216
	}
221
	}
Line 217... Line 222...
217
 
222
 
218
	protected function envoyerMessageAuxDestinataires() {
223
	protected function envoyerMessageAuxDestinataires() {
-
 
224
		foreach ($this->observations_concernees as $auteurId => $liste_obs) {
-
 
225
			$messageTxt = '';
219
		foreach ($this->observations_concernees as $auteurId => $liste_obs) {
226
			$messageHtml = '';
220
			$donnees = $this->formaterDonneesPourMessage($auteurId, $liste_obs);
-
 
221
			$messageTxt = $this->formaterMessageTxt($donnees);
-
 
222
			$messageHtml = $this->formaterMessageHtml($donnees);
-
 
Line 223... Line 227...
223
			$this->recapitulatifAdmin[$auteurId] = array('txt' => $messageTxt, 'html' => $messageHtml);
227
			$donnees = $this->formaterDonneesPourMessage($auteurId, $liste_obs);
-
 
228
 
-
 
229
			if ($this->testeurCourriel == null) {
-
 
230
				if (is_numeric($auteurId)) {
-
 
231
					if ($auteurId != 0) {
224
 
232
						$messageTxt = $this->formaterMessageTxt($donnees, true);
-
 
233
						$messageHtml = $this->formaterMessageHtml($donnees, true);
-
 
234
						$this->envoyerMessage($messageHtml, $messageTxt, $auteurId);
-
 
235
					}
-
 
236
				} else {
-
 
237
					$messageTxt = $this->formaterMessageTxt($donnees, false);
-
 
238
					$messageHtml = $this->formaterMessageHtml($donnees, false);
-
 
239
					$this->envoyerMessageAdresseArbitraire($messageHtml, $messageTxt, $auteurId);
225
			if ($this->testeurCourriel == null) {
240
				}
-
 
241
				
226
				$this->envoyerMessage($messageHtml, $messageTxt, $auteurId);
242
			}
227
			}
243
			$this->recapitulatifAdmin[$auteurId] = array('txt' => $messageTxt, 'html' => $messageHtml);
228
		}
244
		}
229
		if ($this->testeurCourriel == null) {
245
		if ($this->testeurCourriel == null) {
230
			$this->envoyerMessageRecap();
246
			$this->envoyerMessageRecap();
231
		}
247
		}
Line -... Line 248...
-
 
248
		$this->envoyerMessagesTesteur();
-
 
249
	}
-
 
250
 
-
 
251
	// Envoie un message sans passer par l'annuaire, pour les utilisateurs non inscrits
-
 
252
	private function envoyerMessageAdresseArbitraire($messageHtml, $messageTxt, $adresseAuteur) {
-
 
253
		$dateFmt = $this->formaterDateCourante();
-
 
254
		$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt);
-
 
255
		$messagerie = $this->conteneur->getMessagerie();
-
 
256
 
-
 
257
		// envoi mixte HTML + texte
-
 
258
		$envoieStatut = $messagerie->envoyerHtml($adresseAuteur, $sujet, $messageHtml, $messageTxt);
232
		$this->envoyerMessagesTesteur();
259
		return $envoieStatut;
-
 
260
	}
233
	}
261
 
-
 
262
	private function formaterMessageHtml($donnees, $inscrit=true) {
-
 
263
		if ($inscrit) {
-
 
264
			$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.html';
234
 
265
		} else {
235
	private function formaterMessageHtml($donnees) {
266
			$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires_non_inscrits.tpl.html';
236
		$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.html';
267
		}
237
		$squelettePhp = $this->conteneur->getSquelettePhp();
268
		$squelettePhp = $this->conteneur->getSquelettePhp();
Line 238... Line 269...
238
		$msgHtml = $squelettePhp->analyser($squelette, $donnees);
269
		$msgHtml = $squelettePhp->analyser($squelette, $donnees);
-
 
270
		return $msgHtml;
239
		return $msgHtml;
271
	}
-
 
272
 
-
 
273
	private function formaterMessageTxt($donnees, $inscrit=true) {
-
 
274
		if ($inscrit) {
240
	}
275
			$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.txt';
241
 
276
		} else {
242
	private function formaterMessageTxt($donnees) {
277
			$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires_non_inscrits.tpl.txt';
243
		$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.txt';
278
		}
244
		$squelettePhp = $this->conteneur->getSquelettePhp();
279
		$squelettePhp = $this->conteneur->getSquelettePhp();
Line 259... Line 294...
259
	private function formaterIntituleUtilisateur($infos) {
294
	private function formaterIntituleUtilisateur($infos) {
260
		$intituleUtilisateur = isset($infos->intitule) ? $infos->intitule : '';
295
		$intituleUtilisateur = isset($infos->intitule) ? $infos->intitule : '';
261
		return $intituleUtilisateur;
296
		return $intituleUtilisateur;
262
	}
297
	}
Line -... Line 298...
-
 
298
 
263
 
299
	// envoie un message à un utilisateur inscrit, à l'aide de l'annuaire
-
 
300
	private function envoyerMessage($messageHtml, $messageTxt, $id_destinataire) {
264
	private function envoyerMessage($messageHtml, $messageTxt, $id_destinataire) {
301
 
265
		$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire);
302
		$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire);
266
		$dateFmt = $this->formaterDateCourante();
303
		$dateFmt = $this->formaterDateCourante();
267
		$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt);
304
		$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt);
268
		$donnees = array(
305
		$donnees = array(
Line 308... Line 345...
308
			$this->messageRecapitulatif = sprintf($msgTpl, $intituleRecap, $separateur, $msgRecap);
345
			$this->messageRecapitulatif = sprintf($msgTpl, $intituleRecap, $separateur, $msgRecap);
309
		}
346
		}
310
		return $this->messageRecapitulatif;
347
		return $this->messageRecapitulatif;
311
	}
348
	}
Line -... Line 349...
-
 
349
 
312
 
350
	// envoie au testeur une copie de chaque type de message envoyé aux utilisateurs
313
	private function envoyerMessagesTesteur() {
351
	private function envoyerMessagesTesteur() {
314
		if ($this->testeurCourriel != null) {
352
		if ($this->testeurCourriel != null) {
315
			$messagerie = $this->conteneur->getMessagerie();
353
			$messagerie = $this->conteneur->getMessagerie();
Line 316... Line 354...
316
			$dateFmt = $this->formaterDateCourante();
354
			$dateFmt = $this->formaterDateCourante();
317
 
355
 
318
			$sujet = "TESTEUR : commentaires du $dateFmt";
356
			$sujet = "TESTEUR : commentaires du $dateFmt";
Line -... Line 357...
-
 
357
			$msgRecap = $this->obtenirMessageRecap();
-
 
358
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap);
-
 
359
 
-
 
360
			// deux types de messages (inscrits et non inscrits)
319
			$msgRecap = $this->obtenirMessageRecap();
361
			$messageInscrits = null;
-
 
362
			$messageNonInscrits = null;
-
 
363
			// méga sous optimal
-
 
364
			foreach($this->recapitulatifAdmin as $idUtil => $mess) {
-
 
365
				if ($messageInscrits != null && $messageNonInscrits != null) {
-
 
366
					break; // arrière, Satan ! (mais c'est bien pratique)
-
 
367
				}
-
 
368
				if (is_numeric($idUtil)) {
-
 
369
					$messageInscrits = $mess;
-
 
370
				} else {
-
 
371
					$messageNonInscrits = $mess;
320
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap);
372
				}
321
 
373
			}
-
 
374
 
-
 
375
			$sujet = "TESTEUR : HTML (inscrits) - commentaire du $dateFmt";
-
 
376
			$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $messageInscrits['html'], $messageInscrits['txt']);
Line -... Line 377...
-
 
377
 
-
 
378
			$sujet = "TESTEUR : TXT (inscrits) - commentaire du $dateFmt";
-
 
379
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $messageInscrits['txt']);
322
			$message = $this->recapitulatifAdmin[array_rand($this->recapitulatifAdmin)];
380
 
323
			$sujet = "TESTEUR : HTML - commentaire du $dateFmt";
381
			$sujet = "TESTEUR : HTML (non inscrits) - commentaire du $dateFmt";
324
			$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $message['html'], $message['txt']);
382
			$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $messageNonInscrits['html'], $messageNonInscrits['txt']);
325
 
383
 
Line 326... Line 384...
326
			$sujet = "TESTEUR : TXT - commentaire du $dateFmt";
384
			$sujet = "TESTEUR : TXT (non inscrits) - commentaire du $dateFmt";
327
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $message['txt']);
385
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $messageNonInscrits['txt']);
328
		}
386
		}
329
	}
387
	}
-
 
388
 
330
 
389
	private function obtenirInfosUtilisateurs() {
331
	private function obtenirInfosUtilisateurs() {
390
		$idUtilisateurs = array_keys($this->recapitulatifAdmin);
-
 
391
		$utilisateursIntitules = [];
-
 
392
		foreach ($idUtilisateurs as $utilisateurId) {
-
 
393
			if (is_numeric($utilisateurId)) { // inscrit
332
		$idUtilisateurs = array_keys($this->recapitulatifAdmin);
394
				$infosUtilisateur = $this->telechargerUtilisateurInfos($utilisateurId);
333
		$utilisateursIntitules = [];
395
				$intitule = $this->formaterUtilisateurInfos($infosUtilisateur);
334
		foreach ($idUtilisateurs as $utilisateurId) {
396
			} else { // non-inscrit
335
			$infosUtilisateur = $this->telechargerUtilisateurInfos($utilisateurId);
397
				$intitule = $utilisateurId . " - utilisateur non inscrit";
336
			$intitule = $this->formaterUtilisateurInfos($infosUtilisateur);
398
			}