17,6 → 17,11 |
* Les mails doivent ils être modérés ? |
*/ |
private $moderer_mail = false; |
|
/** |
* Doit on envoyer une copie des message au modérateur |
*/ |
private $moderation_copie = false; |
|
/** |
* Le ou les mails des modérateurs, si ce sont plusieurs mails, |
46,6 → 51,11 |
if(Config::get('moderer_mail') != null) { |
$this->moderer_mail = Config::get('moderer_mail'); |
} |
|
// doit on envoyer des copies des messages ? |
if(Config::get('moderation_copie') != null) { |
$this->moderation_copie = Config::get('moderation_copie'); |
} |
|
// mail du modérateur pour l'envoi de messages au dessus d'un certain seuil |
if($this->moderer_mail && Config::get('mail_moderateur') != null) { |
178,12 → 188,19 |
|
// si on modere les mails et s'il y a trop de destinataires |
if($this->moderer_mail && count($destinataires_mail) >= $this->seuil_moderation) { |
// on prévient le moderateur |
|
$this->stockerMailPourModeration($expediteur, $destinataires_mail, $sujet, $message); |
$donnees['moderation'] = true; |
|
} else { |
|
// sinon, envoi direct |
$this->envoyerMail($expediteur, $destinataires_mail, $sujet, $message); |
|
if($this->moderation_copie) { |
$this->envoyerCopieMessageAuModerateur($id_annuaire, $expediteur, $sujet, $destinataires_mail, $message); |
} |
|
$donnees['moderation'] = false; |
} |
|
192,7 → 209,33 |
return $resultat; |
|
} |
|
public function obtenirMailParTableauId($id_annuaire, $destinataires) { |
// on remplace les identifiants par leurs destinataires |
$this->chargerModele('AnnuaireModele'); |
$destinataires_mails = $this->AnnuaireModele->obtenirMailParTableauId($id_annuaire, $destinataires); |
|
return $destinataires_mails; |
} |
|
private function envoyerCopieMessageAuModerateur($id_annuaire, $expediteur, $sujet, $destinataires, $message) { |
|
$donnees['expediteur_message'] = $expediteur; |
$donnees['sujet_message'] = $sujet; |
$donnees['contenu_message'] = $message; |
|
if(is_array($destinataires)) { |
$destinataires = implode(', ', $destinataires); |
} |
|
$donnees['destinataires_message'] = $destinataires; |
|
$contenu_mail_copie = $this->getVue(Config::get('dossier_squelettes_mails').'mail_moderation_copie',$donnees); |
|
return $this->envoyerMail($this->adresse_mail_annuaire, $this->mail_moderateur, 'Un message a été envoyé à travers l\'annuaire', $contenu_mail_copie); |
} |
|
|
/** |
* Retrouve les informations d'un mail en attente de modération et envoie le mail |
* @param string $code_confirmation le code associé au données en attente |
216,9 → 259,8 |
$donnees = array('envoi_echoue' => true); |
} |
|
// suppression des données temporaires |
// TODO: envoyer un message à l'utilisateur original ? |
$supression_donnees_temp = $message_modele->supprimerDonneeTemporaire($code_confirmation); |
|
} else { |
$donnees = array('message_inexistant' => true); |
} |
243,14 → 285,6 |
return $resultat; |
} |
|
public function obtenirMailParTableauId($id_annuaire, $destinataires) { |
// on remplace les identifiants par leurs destinataires |
$this->chargerModele('AnnuaireModele'); |
$destinataires_mails = $this->AnnuaireModele->obtenirMailParTableauId($id_annuaire, $destinataires); |
|
return $destinataires_mails; |
} |
|
/** |
* Stocke un mail dans la base des données temporaires et envoie un mail au modérateur |
* @param string $expediteur l'expéditeur du mail |
285,7 → 319,7 |
*/ |
private function envoyerMailModeration($id_mail_a_moderer, $destinataires, $sujet_message_a_moderer, $message_a_moderer) { |
|
$url_cette_page = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; |
$url_cette_page = $this->getUrlCettePage(); |
$url_base = $url_cette_page; |
|
$base_url = new URL($url_base); |
312,9 → 346,6 |
$donnees['destinataires_message'] = $destinataires; |
|
$contenu_mail = $this->getVue(Config::get('dossier_squelettes_mails').'mail_moderation_message',$donnees); |
|
echo $contenu_mail; |
exit; |
|
return $this->envoyerMail($this->adresse_mail_annuaire, $this->mail_moderateur, 'Un message est en attente de modération', $contenu_mail); |
|