Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1723 Rev 1727
Line 19... Line 19...
19
	private $testeurCourriel = null;
19
	private $testeurCourriel = null;
20
	private $recapitulatifAdmin = [];
20
	private $recapitulatifAdmin = [];
21
	private $messageRecapitulatif = null;
21
	private $messageRecapitulatif = null;
Line 22... Line 22...
22
 
22
 
-
 
23
	private $observations_concernees = array();
23
	private $observations_concernees = array();
24
	private $messageHtml = null;
Line 24... Line 25...
24
	private $message = null;
25
	private $messageTxt = null;
25
 
26
 
26
	public function __construct($conteneur) {
27
	public function __construct($conteneur) {
Line 104... Line 105...
104
	private function obtenirLienFicheObs($id_obs) {
105
	private function obtenirLienFicheObs($id_obs) {
105
		return  sprintf($this->conteneur->getParametre('url_fiche_observation'), $id_obs);
106
		return  sprintf($this->conteneur->getParametre('url_fiche_observation'), $id_obs);
106
	}
107
	}
Line 107... Line 108...
107
 
108
 
108
	private function genererMessage() {
109
	private function genererMessage() {
109
		if ($this->message == null) {
110
		if ($this->messageHtml == null && $this->messageTxt == null) {
110
			$donnees = array();
111
			$donnees = array();
111
			$donnees['liste_observations'] = $this->observations_concernees;
-
 
-
 
112
			$donnees['liste_observations'] = $this->observations_concernees;
112
			$messageTpl = dirname(__FILE__).DS.'squelettes'.DS.'aDeterminer.tpl.html';
113
 
-
 
114
			$squelettePhp = $this->conteneur->getSquelettePhp();
-
 
115
			$messageHtmlTpl = dirname(__FILE__).DS.'squelettes'.DS.'aDeterminer.tpl.html';
-
 
116
			$this->messageHtml =  $squelettePhp->analyser($messageHtmlTpl, $donnees);
113
			$squelettePhp = $this->conteneur->getSquelettePhp();
117
			$messageTxtTpl = dirname(__FILE__).DS.'squelettes'.DS.'aDeterminer.tpl.txt';
114
			$this->message =  $squelettePhp->analyser($messageTpl, $donnees);
118
			$this->messageTxt =  $squelettePhp->analyser($messageTxtTpl, $donnees);
115
		}
119
		}
Line 116... Line 120...
116
	}
120
	}
117
 
121
 
-
 
122
	private function envoyerMessageAuxDestinataires() {
118
	private function envoyerMessageAuxDestinataires() {
123
		if ($this->testeurCourriel == null) {
119
		if ($this->testeurCourriel == null) {
-
 
120
			$this->envoyerMessageListeDetermination();
-
 
121
 
-
 
122
			$utilisateurs = $this->obtenirDestinatairesMailsRecapitulatif();
-
 
123
			foreach ($utilisateurs as $utilisateur) {
-
 
124
				$this->envoyerMessage($utilisateur['id_utilisateur']);
124
			$this->envoyerMessageAuxUtilisateurs();
125
			}
125
			$this->envoyerMessageListeDetermination();
126
			$this->envoyerMessageRecap();
126
			$this->envoyerMessageRecap();
127
		} else {
127
		} else {
128
			$this->envoyerMessageTesteur();
128
			$this->envoyerMessageTesteur();
Line -... Line 129...
-
 
129
		}
-
 
130
	}
-
 
131
 
-
 
132
	private function envoyerMessageAuxUtilisateurs() {
-
 
133
		$utilisateurs = $this->obtenirDestinatairesMailsRecapitulatif();
-
 
134
		foreach ($utilisateurs as $utilisateur) {
-
 
135
			$this->envoyerMessage($utilisateur['id_utilisateur']);
129
		}
136
		}
130
	}
137
	}
131
 
138
 
132
	private function obtenirDestinatairesMailsRecapitulatif() {
139
	private function obtenirDestinatairesMailsRecapitulatif() {
133
		if (count($this->recapitulatifAdmin) == 0) {
140
		if (count($this->recapitulatifAdmin) == 0) {
Line 142... Line 149...
142
			}
149
			}
143
		}
150
		}
144
		return $this->recapitulatifAdmin;
151
		return $this->recapitulatifAdmin;
145
	}
152
	}
Line 146... Line -...
146
 
-
 
147
	/** La liste détermination n'étant pas un membre de tela botanica,
-
 
148
	* on lui envoie un message directement
-
 
149
	* @return boolean true ou false suivant le succès ou non de l'envoi
-
 
150
	*/
-
 
151
	private function envoyerMessageListeDetermination() {
-
 
152
		$destinataires = $this->conteneur->getParametre('adresse_destinataire_recapitulatif_determination');
-
 
153
		$sujet = $this->conteneur->getParametre('titre_message_recapitulatif_obs');
-
 
154
 
-
 
155
		$messagerie = $this->conteneur->getMessagerie();
-
 
156
		$envoieStatut = $messagerie->envoyerHtml($destinataires, $sujet, $this->message);
-
 
157
		return $envoieStatut;
-
 
158
	}
-
 
159
 
153
 
160
	/**
154
	/**
161
	 * Appelle le web service message de l'annuaire afin d'envoyer un mail à l'utilisateur dont l'identifiant est donné
155
	 * Appelle le web service message de l'annuaire afin d'envoyer un mail à l'utilisateur dont l'identifiant est donné
162
	 * en paramètre
156
	 * en paramètre
163
	 * Enter description here ...
157
	 * Enter description here ...
164
	 * @param string $message
158
	 * @param string $message
165
	 * @param int $id_destinataire
159
	 * @param int $id_destinataire
166
	 */
160
	 */
167
	private function envoyerMessage($id_destinataire) {
161
	private function envoyerMessage($id_destinataire) {
168
		$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire);
162
		$url = sprintf($this->conteneur->getParametre('url_service_messagerie'), $id_destinataire);
169
		$donnees = array(
-
 
170
			'sujet' => 'Récapitulatif des dernières observations à déterminer',
-
 
171
			'message' => $this->message,
163
		$donnees = array(
172
			'utilisateur_courriel' => $this->conteneur->getParametre('adresse_expediteur_recapitulatif'),
164
			'utilisateur_courriel' => $this->conteneur->getParametre('adresse_expediteur_recapitulatif'),
-
 
165
			'format' => 'html',
-
 
166
			'sujet' => $this->conteneur->getParametre('titre_message_recapitulatif_obs'),
-
 
167
			'message' => $this->messageHtml,
173
			'format' => 'html'
168
			'message_txt' => $this->messageTxt
Line 174... Line 169...
174
		);
169
		);
175
 
170
 
176
		$clientRest = $this->conteneur->getRestClient();
171
		$clientRest = $this->conteneur->getRestClient();
Line -... Line 172...
-
 
172
		$clientRest->modifier($url, $donnees);
-
 
173
	}
-
 
174
 
-
 
175
	/** La liste détermination n'étant pas un membre de tela botanica,
-
 
176
	* on lui envoie un message directement
-
 
177
	* @return boolean true ou false suivant le succès ou non de l'envoi
-
 
178
	*/
-
 
179
	private function envoyerMessageListeDetermination() {
-
 
180
		$destinataires = $this->conteneur->getParametre('adresse_destinataire_recapitulatif_determination');
-
 
181
		$sujet = $this->conteneur->getParametre('titre_message_recapitulatif_obs');
-
 
182
 
-
 
183
		$messagerie = $this->conteneur->getMessagerie();
-
 
184
		$envoieStatut = $messagerie->envoyerHtml($destinataires, $sujet, $this->messageHtml, $this->messageTxt);
177
		$clientRest->modifier($url, $donnees);
185
		return $envoieStatut;
178
	}
186
	}
179
 
-
 
180
	private function envoyerMessageRecap() {
-
 
181
		$msgRecap = $this->obtenirMessageRecap();
-
 
182
		if ($this->testeurCourriel != null) {
187
 
183
			$sujet = "IdentiPlante - TEST par {$this->testeurCourriel} : récapitulatif envoies alertes à déterminer";
-
 
184
		} else {
188
	private function envoyerMessageRecap() {
185
			$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer";
189
		$msgRecap = $this->obtenirMessageRecap();
186
		}
190
		$sujet = "IdentiPlante : récapitulatif envoies alertes à déterminer";
187
		$messagerie = $this->conteneur->getMessagerie();
191
		$messagerie = $this->conteneur->getMessagerie();
Line 188... Line 192...
188
		$destinataire = $this->conteneur->getParametre('email_recap');
192
		$destinataire = $this->conteneur->getParametre('email_recap');
189
		$envoieStatut = $messagerie->envoyerTxt($destinataire, $sujet, $msgRecap);
193
		$messagerie->envoyerTxt($destinataire, $sujet, $msgRecap);
190
	}
194
	}
191
 
195
 
192
	private function obtenirMessageRecap() {
196
	private function obtenirMessageRecap() {
193
		if ($this->messageRecapitulatif == null) {
197
		if ($this->messageRecapitulatif == null) {
194
			$utilisateursIntitules = $this->obtenirInfosUtilisateurs();
198
			$utilisateursIntitules = $this->obtenirInfosUtilisateurs();
195
			$intituleRecap = implode("\n", $utilisateursIntitules);
199
			$intituleRecap = implode("\n", $utilisateursIntitules);
196
			$separateur = str_repeat('-', 50);
200
			$separateur = str_repeat('-', 50);
197
			$msgTpl = "Messages envoyés aux utilisateurs suivant :\n%s\n%s\n%s";
201
			$msgTpl = "Messages envoyés aux utilisateurs suivant :\n%s\n%s\n%s";
Line 198... Line 202...
198
			$this->messageRecapitulatif = sprintf($msgTpl, $intituleRecap, $separateur, $this->message);
202
			$this->messageRecapitulatif = sprintf($msgTpl, $intituleRecap, $separateur, $this->messageTxt);
Line 208... Line 212...
208
		foreach ($utilisateurs as $utilisateurId) {
212
		foreach ($utilisateurs as $utilisateurId) {
209
			$url = sprintf($urlTpl, $utilisateurId);
213
			$url = sprintf($urlTpl, $utilisateurId);
210
			$json = $clientRest->consulter($url);
214
			$json = $clientRest->consulter($url);
211
			$infosUtilisateur = json_decode($json);
215
			$infosUtilisateur = json_decode($json);
212
			if (isset($infosUtilisateur->courriel) && isset($infosUtilisateur->intitule)) {
216
			if (isset($infosUtilisateur->courriel) && isset($infosUtilisateur->intitule)) {
213
				$intitule = $infosUtilisateur->intitule.' ('.$infosUtilisateur->courriel.')';
217
				$prenomNom = $infosUtilisateur->nom.' '.$infosUtilisateur->prenom;
-
 
218
				$pseudo = $infosUtilisateur->pseudoUtilise ? ' ['.$infosUtilisateur->pseudo.']' : '';
-
 
219
				$courriel = $infosUtilisateur->courriel;
-
 
220
				$intitule = "$prenomNom $pseudo ($courriel) - id#$utilisateurId";
214
			} else {
221
			} else {
215
				$intitule = "Utilisateur avec id $utilisateurId introuvable";
222
				$intitule = "Utilisateur avec id $utilisateurId introuvable";
216
			}
223
			}
217
			$utilisateursIntitules[$utilisateurId] = $intitule;
224
			$utilisateursIntitules[$infosUtilisateur->nom] = $intitule;
218
		}
225
		}
-
 
226
		ksort($utilisateursIntitules);
219
		return $utilisateursIntitules;
227
		return $utilisateursIntitules;
220
	}
228
	}
Line 221... Line 229...
221
 
229
 
222
	private function envoyerMessageTesteur() {
230
	private function envoyerMessageTesteur() {
223
		if ($this->testeurCourriel != null) {
-
 
224
			$msgRecap = $this->obtenirMessageRecap();
-
 
225
			$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer";
231
		if ($this->testeurCourriel != null) {
-
 
232
			$messagerie = $this->conteneur->getMessagerie();
-
 
233
 
-
 
234
			$sujet = "TESTEUR : récapitulatif envoies alertes à déterminer";
226
			$messagerie = $this->conteneur->getMessagerie();
235
			$msgRecap = $this->obtenirMessageRecap();
-
 
236
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap);
-
 
237
 
-
 
238
			$sujet = "TESTEUR : exemple message HTML - alerte à déterminer";
-
 
239
			$messagerie->envoyerHtml($this->testeurCourriel, $sujet, $this->messageHtml, $this->messageTxt);
-
 
240
 
-
 
241
			$sujet = "TESTEUR : exemple message TXT - alerte à déterminer";
227
			$envoieStatut = $messagerie->envoyerTxt($this->testeurCourriel, $sujet, $msgRecap);
242
			$messagerie->envoyerTxt($this->testeurCourriel, $sujet, $this->messageTxt);
228
		}
243
		}
229
	}
244
	}
230
}
245
}