21,7 → 21,8 |
private $messageRecapitulatif = null; |
|
private $observations_concernees = array(); |
private $message = null; |
private $messageHtml = null; |
private $messageTxt = null; |
|
public function __construct($conteneur) { |
$this->conteneur = $conteneur; |
106,23 → 107,22 |
} |
|
private function genererMessage() { |
if ($this->message == null) { |
if ($this->messageHtml == null && $this->messageTxt == null) { |
$donnees = array(); |
$donnees['liste_observations'] = $this->observations_concernees; |
$messageTpl = dirname(__FILE__).DS.'squelettes'.DS.'aDeterminer.tpl.html'; |
|
$squelettePhp = $this->conteneur->getSquelettePhp(); |
$this->message = $squelettePhp->analyser($messageTpl, $donnees); |
$messageHtmlTpl = dirname(__FILE__).DS.'squelettes'.DS.'aDeterminer.tpl.html'; |
$this->messageHtml = $squelettePhp->analyser($messageHtmlTpl, $donnees); |
$messageTxtTpl = dirname(__FILE__).DS.'squelettes'.DS.'aDeterminer.tpl.txt'; |
$this->messageTxt = $squelettePhp->analyser($messageTxtTpl, $donnees); |
} |
} |
|
private function envoyerMessageAuxDestinataires() { |
if ($this->testeurCourriel == null) { |
$this->envoyerMessageAuxUtilisateurs(); |
$this->envoyerMessageListeDetermination(); |
|
$utilisateurs = $this->obtenirDestinatairesMailsRecapitulatif(); |
foreach ($utilisateurs as $utilisateur) { |
$this->envoyerMessage($utilisateur['id_utilisateur']); |
} |
$this->envoyerMessageRecap(); |
} else { |
$this->envoyerMessageTesteur(); |
129,6 → 129,13 |
} |
} |
|
private function envoyerMessageAuxUtilisateurs() { |
$utilisateurs = $this->obtenirDestinatairesMailsRecapitulatif(); |
foreach ($utilisateurs as $utilisateur) { |
$this->envoyerMessage($utilisateur['id_utilisateur']); |
} |
} |
|
private function obtenirDestinatairesMailsRecapitulatif() { |
if (count($this->recapitulatifAdmin) == 0) { |
$preference = $this->conteneur->getBdd()->proteger('%"mail_notification_toutes_obs":"1"%'); |
144,19 → 151,6 |
return $this->recapitulatifAdmin; |
} |
|
/** La liste détermination n'étant pas un membre de tela botanica, |
* on lui envoie un message directement |
* @return boolean true ou false suivant le succès ou non de l'envoi |
*/ |
private function envoyerMessageListeDetermination() { |
$destinataires = $this->conteneur->getParametre('adresse_destinataire_recapitulatif_determination'); |
$sujet = $this->conteneur->getParametre('titre_message_recapitulatif_obs'); |
|
$messagerie = $this->conteneur->getMessagerie(); |
$envoieStatut = $messagerie->envoyerHtml($destinataires, $sujet, $this->message); |
return $envoieStatut; |
} |
|
/** |
* Appelle le web service message de l'annuaire afin d'envoyer un mail à l'utilisateur dont l'identifiant est donné |
* en paramètre |
167,10 → 161,11 |
private function envoyerMessage($id_destinataire) { |
$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire); |
$donnees = array( |
'sujet' => 'Récapitulatif des dernières observations à déterminer', |
'message' => $this->message, |
'utilisateur_courriel' => $this->conteneur->getParametre('adresse_expediteur_recapitulatif'), |
'format' => 'html' |
'format' => 'html', |
'sujet' => $this->conteneur->getParametre('titre_message_recapitulatif_obs'), |
'message' => $this->messageHtml, |
'message_txt' => $this->messageTxt |
); |
|
$clientRest = $this->conteneur->getRestClient(); |
177,16 → 172,25 |
$clientRest->modifier($url, $donnees); |
} |
|
/** La liste détermination n'étant pas un membre de tela botanica, |
* on lui envoie un message directement |
* @return boolean true ou false suivant le succès ou non de l'envoi |
*/ |
private function envoyerMessageListeDetermination() { |
$destinataires = $this->conteneur->getParametre('adresse_destinataire_recapitulatif_determination'); |
$sujet = $this->conteneur->getParametre('titre_message_recapitulatif_obs'); |
|
$messagerie = $this->conteneur->getMessagerie(); |
$envoieStatut = $messagerie->envoyerHtml($destinataires, $sujet, $this->messageHtml, $this->messageTxt); |
return $envoieStatut; |
} |
|
private function envoyerMessageRecap() { |
$msgRecap = $this->obtenirMessageRecap(); |
if ($this->testeurCourriel != null) { |
$sujet = "IdentiPlante - TEST par {$this->testeurCourriel} : récapitulatif envoies alertes à déterminer"; |
} else { |
$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer"; |
} |
$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer"; |
$messagerie = $this->conteneur->getMessagerie(); |
$destinataire = $this->conteneur->getParametre('email_recap'); |
$envoieStatut = $messagerie->envoyerTxt($destinataire, $sujet, $msgRecap); |
$messagerie->envoyerTxt($destinataire, $sujet, $msgRecap); |
} |
|
private function obtenirMessageRecap() { |
195,7 → 199,7 |
$intituleRecap = implode("\n", $utilisateursIntitules); |
$separateur = str_repeat('-', 50); |
$msgTpl = "Messages envoyés aux utilisateurs suivant :\n%s\n%s\n%s"; |
$this->messageRecapitulatif = sprintf($msgTpl, $intituleRecap, $separateur, $this->message); |
$this->messageRecapitulatif = sprintf($msgTpl, $intituleRecap, $separateur, $this->messageTxt); |
} |
return $this->messageRecapitulatif; |
} |
210,21 → 214,32 |
$json = $clientRest->consulter($url); |
$infosUtilisateur = json_decode($json); |
if (isset($infosUtilisateur->courriel) && isset($infosUtilisateur->intitule)) { |
$intitule = $infosUtilisateur->intitule.' ('.$infosUtilisateur->courriel.')'; |
$prenomNom = $infosUtilisateur->nom.' '.$infosUtilisateur->prenom; |
$pseudo = $infosUtilisateur->pseudoUtilise ? ' ['.$infosUtilisateur->pseudo.']' : ''; |
$courriel = $infosUtilisateur->courriel; |
$intitule = "$prenomNom $pseudo ($courriel) - id#$utilisateurId"; |
} else { |
$intitule = "Utilisateur avec id $utilisateurId introuvable"; |
} |
$utilisateursIntitules[$utilisateurId] = $intitule; |
$utilisateursIntitules[$infosUtilisateur->nom] = $intitule; |
} |
ksort($utilisateursIntitules); |
return $utilisateursIntitules; |
} |
|
private function envoyerMessageTesteur() { |
if ($this->testeurCourriel != null) { |
$messagerie = $this->conteneur->getMessagerie(); |
|
$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer"; |
$msgRecap = $this->obtenirMessageRecap(); |
$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer"; |
$messagerie = $this->conteneur->getMessagerie(); |
$envoieStatut = $messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap); |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap); |
|
$sujet = "TESTEUR : exemple message HTML - alerte à déterminer"; |
$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $this->messageHtml, $this->messageTxt); |
|
$sujet = "TESTEUR : exemple message TXT - alerte à déterminer"; |
$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $this->messageTxt); |
} |
} |
} |