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);
|
225 |
if ($this->testeurCourriel == null) {
|
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);
|
- |
|
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 |
}
|