Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1782 → Rev 1783

/trunk/scripts/modules/commentaires/AlerteMailCommentaires.php
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,14 → 222,25
 
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) {
$this->envoyerMessage($messageHtml, $messageTxt, $auteurId);
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) {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.html';
// 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) {
$squelette = dirname(__FILE__).DS.'squelettes'.DS.'commentaires.tpl.txt';
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) {
$infosUtilisateur = $this->telechargerUtilisateurInfos($utilisateurId);
$intitule = $this->formaterUtilisateurInfos($infosUtilisateur);
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);