Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 213 → Rev 214

/trunk/controleurs/MessageControleur.php
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);