Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1682 Rev 1709
Line 14... Line 14...
14
 */
14
 */
Line 15... Line 15...
15
 
15
 
Line 16... Line 16...
16
class AlerteMailCommentaires {
16
class AlerteMailCommentaires {
-
 
17
 
Line 17... Line 18...
17
 
18
	private $conteneur;
18
	private $conteneur;
19
	private $testeurCourriel = null;
Line 19... Line 20...
19
 
20
 
20
	private $observations_concernees = array();
21
	private $observations_concernees = array();
21
	private $correspondance_id_obs_auteurs = array();
22
	private $correspondance_id_obs_auteurs = array();
Line 22... Line 23...
22
 
23
 
23
	public function __construct($conteneur) {
24
	public function __construct($conteneur) {
-
 
25
		$this->conteneur = $conteneur;
24
		$this->conteneur = $conteneur;
26
	}
25
	}
27
 
26
 
28
	public function executer() {
27
	public function executer() {
29
		try {
28
		try {
30
			$this->verifierModeUtilisation();
Line 36... Line 38...
36
		} catch (Exception $e) {
38
		} catch (Exception $e) {
37
			$this->traiterErreur($e->getMessage());
39
			$this->traiterErreur($e->getMessage());
38
		}
40
		}
39
	}
41
	}
Line -... Line 42...
-
 
42
 
-
 
43
	private function verifierModeUtilisation() {
-
 
44
		$testeurCourriel = $this->conteneur->getParametre('t');
-
 
45
		if ($testeurCourriel) {
-
 
46
			if (filter_var($testeurCourriel, FILTER_VALIDATE_EMAIL)) {
-
 
47
				$this->testeurCourriel = $testeurCourriel;
-
 
48
			} else {
-
 
49
				$msg = "Veuillez indiquer une adresse de courriel valide à la suite du paramètre «-t».";
-
 
50
				new Exception($msg);
-
 
51
			}
-
 
52
		}
-
 
53
	}
40
 
54
 
41
	private function chargerObservationsCommentees() {
55
	private function chargerObservationsCommentees() {
42
		// Seuls les utilisateurs ayant explicitement refusé le mail sont ignorés
56
		// Seuls les utilisateurs ayant explicitement refusé le mail sont ignorés
43
		$preferences = $this->conteneur->getBdd()->proteger('%"mail_notification_mes_obs":"0"%');
57
		$preferences = $this->conteneur->getBdd()->proteger('%"mail_notification_mes_obs":"0"%');
44
		//TODO: optimiser la requête si beaucoup de mails sont envoyés
58
		//TODO: optimiser la requête si beaucoup de mails sont envoyés
Line 163... Line 177...
163
	}
177
	}
Line 164... Line 178...
164
 
178
 
165
	protected function envoyerMessageAuxDestinataires() {
179
	protected function envoyerMessageAuxDestinataires() {
166
		foreach ($this->observations_concernees as $auteur => $liste_obs) {
180
		foreach ($this->observations_concernees as $auteur => $liste_obs) {
-
 
181
			$message = $this->formaterMessagePourAuteur($liste_obs, $auteur);
167
			$message = $this->formaterMessagePourAuteur($liste_obs, $auteur);
182
			if ($this->testeurCourriel == null) {
-
 
183
				$this->envoyerMessage($message, $auteur);
-
 
184
			} else {
-
 
185
				$this->envoyerMessage($message, $this->testeurCourriel);
168
			$this->envoyerMessage($message, $auteur);
186
			}
169
		}
187
		}
Line 170... Line 188...
170
	}
188
	}
171
 
189