104,10 → 104,15 |
return $observations; |
} |
|
// classe les observations concernées par id_utilisateur (ou courriel si non inscrit) |
// de l'auteur puis par id_observation |
private function formaterObservations($liste_obs) { |
foreach ($liste_obs as $obs) { |
$id_obs = $obs['id_observation']; |
$id_auteur_obs = $obs['ce_utilisateur']; |
if (($id_auteur_obs == 0) && ($obs['courriel_utilisateur'] != '')) { |
$id_auteur_obs = $obs['courriel_utilisateur']; |
} |
|
$infos = array(); |
$infos['id'] = $id_obs; |
217,15 → 222,26 |
|
protected function envoyerMessageAuxDestinataires() { |
foreach ($this->observations_concernees as $auteurId => $liste_obs) { |
$messageTxt = ''; |
$messageHtml = ''; |
$donnees = $this->formaterDonneesPourMessage($auteurId, $liste_obs); |
$messageTxt = $this->formaterMessageTxt($donnees); |
$messageHtml = $this->formaterMessageHtml($donnees); |
$this->recapitulatifAdmin[$auteurId] = array('txt' => $messageTxt, 'html' => $messageHtml); |
|
if ($this->testeurCourriel == null) { |
if (is_numeric($auteurId)) { |
if ($auteurId != 0) { |
$messageTxt = $this->formaterMessageTxt($donnees, true); |
$messageHtml = $this->formaterMessageHtml($donnees, true); |
$this->envoyerMessage($messageHtml, $messageTxt, $auteurId); |
} |
} else { |
$messageTxt = $this->formaterMessageTxt($donnees, false); |
$messageHtml = $this->formaterMessageHtml($donnees, false); |
$this->envoyerMessageAdresseArbitraire($messageHtml, $messageTxt, $auteurId); |
} |
|
} |
$this->recapitulatifAdmin[$auteurId] = array('txt' => $messageTxt, 'html' => $messageHtml); |
} |
if ($this->testeurCourriel == null) { |
$this->envoyerMessageRecap(); |
} |
232,15 → 248,34 |
$this->envoyerMessagesTesteur(); |
} |
|
private function formaterMessageHtml($donnees) { |
// Envoie un message sans passer par l'annuaire, pour les utilisateurs non inscrits |
private function envoyerMessageAdresseArbitraire($messageHtml, $messageTxt, $adresseAuteur) { |
$dateFmt = $this->formaterDateCourante(); |
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt); |
$messagerie = $this->conteneur->getMessagerie(); |
|
// envoi mixte HTML + texte |
$envoieStatut = $messagerie->envoyerHtml($adresseAuteur, $sujet, $messageHtml, $messageTxt); |
return $envoieStatut; |
} |
|
private function formaterMessageHtml($donnees, $inscrit=true) { |
if ($inscrit) { |
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.html'; |
} else { |
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires_non_inscrits.tpl.html'; |
} |
$squelettePhp = $this->conteneur->getSquelettePhp(); |
$msgHtml = $squelettePhp->analyser($squelette, $donnees); |
return $msgHtml; |
} |
|
private function formaterMessageTxt($donnees) { |
private function formaterMessageTxt($donnees, $inscrit=true) { |
if ($inscrit) { |
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.txt'; |
} else { |
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires_non_inscrits.tpl.txt'; |
} |
$squelettePhp = $this->conteneur->getSquelettePhp(); |
$msgTxt = $squelettePhp->analyser($squelette, $donnees); |
// Nettoyage des tabulations pour indentation du code PHP |
261,7 → 296,9 |
return $intituleUtilisateur; |
} |
|
// envoie un message à un utilisateur inscrit, à l'aide de l'annuaire |
private function envoyerMessage($messageHtml, $messageTxt, $id_destinataire) { |
|
$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire); |
$dateFmt = $this->formaterDateCourante(); |
$sujet = sprintf($this->conteneur->getParametre('titre_message_recapitulatif'), $dateFmt); |
310,6 → 347,7 |
return $this->messageRecapitulatif; |
} |
|
// envoie au testeur une copie de chaque type de message envoyé aux utilisateurs |
private function envoyerMessagesTesteur() { |
if ($this->testeurCourriel != null) { |
$messagerie = $this->conteneur->getMessagerie(); |
319,12 → 357,32 |
$msgRecap = $this->obtenirMessageRecap(); |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap); |
|
$message = $this->recapitulatifAdmin[array_rand($this->recapitulatifAdmin)]; |
$sujet = "TESTEUR : HTML - commentaire du $dateFmt"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $message['html'], $message['txt']); |
// deux types de messages (inscrits et non inscrits) |
$messageInscrits = null; |
$messageNonInscrits = null; |
// méga sous optimal |
foreach($this->recapitulatifAdmin as $idUtil => $mess) { |
if ($messageInscrits != null && $messageNonInscrits != null) { |
break; // arrière, Satan ! (mais c'est bien pratique) |
} |
if (is_numeric($idUtil)) { |
$messageInscrits = $mess; |
} else { |
$messageNonInscrits = $mess; |
} |
} |
|
$sujet = "TESTEUR : TXT - commentaire du $dateFmt"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $message['txt']); |
$sujet = "TESTEUR : HTML (inscrits) - commentaire du $dateFmt"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $messageInscrits['html'], $messageInscrits['txt']); |
|
$sujet = "TESTEUR : TXT (inscrits) - commentaire du $dateFmt"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $messageInscrits['txt']); |
|
$sujet = "TESTEUR : HTML (non inscrits) - commentaire du $dateFmt"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $messageNonInscrits['html'], $messageNonInscrits['txt']); |
|
$sujet = "TESTEUR : TXT (non inscrits) - commentaire du $dateFmt"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $messageNonInscrits['txt']); |
} |
} |
|
332,8 → 390,12 |
$idUtilisateurs = array_keys($this->recapitulatifAdmin); |
$utilisateursIntitules = []; |
foreach ($idUtilisateurs as $utilisateurId) { |
if (is_numeric($utilisateurId)) { // inscrit |
$infosUtilisateur = $this->telechargerUtilisateurInfos($utilisateurId); |
$intitule = $this->formaterUtilisateurInfos($infosUtilisateur); |
} else { // non-inscrit |
$intitule = $utilisateurId . " - utilisateur non inscrit"; |
} |
$utilisateursIntitules[$utilisateurId] = $intitule; |
} |
asort($utilisateursIntitules); |