X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Femail.php;h=6d690eb7e73dd9ba454b9d4890a3ba9e3ff6ffc5;hb=1f53925a716bf5cb97ed624a6787a8319eb2bcff;hp=199e6c4ed7b150cdf6a6ea594a1b43d63933b397;hpb=ca6d07f4ee62840ba1bbb9d232c585b44027dd32;p=platal.git diff --git a/modules/email.php b/modules/email.php index 199e6c4..6d690eb 100644 --- a/modules/email.php +++ b/modules/email.php @@ -35,7 +35,7 @@ class EmailModule extends PLModule ); } - function handler_emails(&$page) + function handler_emails(&$page, $action = null, $email = null) { global $globals; @@ -44,12 +44,12 @@ class EmailModule extends PLModule $uid = S::v('uid'); - if (Post::has('best')) { + if ($action == 'best' && $email) { // bestalias is the first bit : 1 // there will be maximum 8 bits in flags : 255 XDB::execute("UPDATE aliases SET flags=flags & (255 - 1) WHERE id={?}", $uid); XDB::execute("UPDATE aliases SET flags=flags | 1 WHERE id={?} AND alias={?}", - $uid, Post::v('best')); + $uid, $email); } // on regarde si on a affaire à un homonyme @@ -61,6 +61,9 @@ class EmailModule extends PLModule ORDER BY LENGTH(alias)"; $page->assign('aliases', XDB::iterator($sql, $uid)); + $homonyme = XDB::query("SELECT alias FROM aliases INNER JOIN homonymes ON (id = homonyme_id) WHERE user_id = {?} AND type = 'homonyme'", $uid); + $page->assign('homonyme', $homonyme->fetchOneCell()); + $sql = "SELECT email FROM emails WHERE uid = {?} AND FIND_IN_SET('active', flags)"; @@ -190,14 +193,31 @@ class EmailModule extends PLModule $uid = S::v('uid'); $forlife = S::v('forlife'); + $page->assign('eleve', S::i('promo') >= date("Y") - 5); + $redirect = new Redirect(S::v('uid')); if ($action == 'remove' && $email) { - $page->assign('retour', $redirect->delete_email($email)); + $retour = $redirect->delete_email($email); + $page->assign('retour', $retour); } - + + if ($action == 'active' && $email) { + $redirect->modify_one_email($email, true); + } + + if ($action == 'inactive' && $email) { + $redirect->modify_one_email($email, false); + } + + if ($action == 'rewrite' && $email) { + $rewrite = @func_get_arg(3); + $redirect->modify_one_email_redirect($email, $rewrite); + } + if (Env::has('emailop')) { $actifs = Env::v('emails_actifs', Array()); + print_r(Env::v('emails_rewrite')); if (Env::v('emailop') == "ajouter" && Env::has('email')) { $page->assign('retour', $redirect->add_email(Env::v('email'))); } elseif (empty($actifs)) { @@ -230,15 +250,15 @@ class EmailModule extends PLModule $page->assign('emails',$redirect->emails); } - function handler_antispam(&$page) + function handler_antispam(&$page, $statut_filtre = null) { require_once 'emails.inc.php'; $page->changeTpl('emails/antispam.tpl'); $bogo = new Bogo(S::v('uid')); - if (Env::has('statut_filtre')) { - $bogo->change(S::v('uid'), Env::i('statut_filtre')); + if (isset($statut_filtre)) { + $bogo->change(S::v('uid'), $statut_filtre + 0); } $page->assign('filtre',$bogo->level()); } @@ -254,7 +274,21 @@ class EmailModule extends PLModule // action si on recoit un formulaire if (Env::v('submit') == 'Envoyer') { - $to2 = join(', ', Env::v('contacts', Array())); + function getEmails($aliases) + { + if (!is_array($aliases)) { + return null; + } + $rel = Env::v('contacts'); + $ret = array(); + foreach ($aliases as $alias) { + $ret[$alias] = $rel[$alias]; + } + return join(', ', $ret); + } + + $to2 = getEmails(Env::v('to_contacts')); + $cc2 = getEmails(Env::v('cc_contacts')); $txt = str_replace('^M', '', Env::v('contenu')); $to = Env::v('to'); $subj = Env::v('sujet'); @@ -265,16 +299,19 @@ class EmailModule extends PLModule if (empty($to) && empty($cc) && empty($to2)) { $page->trig("Indique au moins un destinataire."); } else { - require_once("diogenes/diogenes.hermes.inc.php"); - - $mymail = new HermesMailer(); + $mymail = new PlMailer(); $mymail->setFrom($from); $mymail->setSubject($subj); if (!empty($to)) { $mymail->addTo($to); } if (!empty($cc)) { $mymail->addCc($cc); } if (!empty($bcc)) { $mymail->addBcc($bcc); } if (!empty($to2)) { $mymail->addTo($to2); } - $mymail->addHeader('X-XOrg-Login', S::v('bestalias') . '@' . $globals->mail->domain); + if (!empty($cc2)) { $mymail->addCc($cc2); } + if (isset($_FILES['uploaded'])) { + $mymail->addAttachment($_FILES['uploaded']['tmp_name'], + $_FILES['uploaded']['type'], + $_FILES['uploaded']['name']); + } $mymail->setTxtBody(wordwrap($txt,72,"\n")); if ($mymail->send()) { $page->trig("Ton mail a bien été envoyé."); @@ -337,8 +374,7 @@ consulter la page <{$globals->baseurl}/emails/broken>. A bientôt sur Polytechnique.org ! L'équipe d'administration "; - require_once("diogenes/diogenes.hermes.inc.php"); - $mail = new HermesMailer(); + $mail = new PlMailer(); $mail->setFrom('"Polytechnique.org" '); $mail->addTo("$dest@polytechnique.org"); $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!"); @@ -452,8 +488,8 @@ L' $sql = "SELECT w.detection, w.state, w.last, w.description, a1.alias AS edit, a2.alias AS forlife FROM emails_watch AS w - LEFT JOIN emails AS e USING(email) - INNER JOIN aliases AS a1 ON (a1.id = w.uid AND a1.type = 'a_vie') + LEFT JOIN aliases AS a1 ON (a1.id = w.uid AND a1.type = 'a_vie') + LEFT JOIN emails AS e ON (w.email = e.email) LEFT JOIN aliases AS a2 ON (a2.id = e.uid AND a2.type = 'a_vie') WHERE w.email = {?} ORDER BY a2.alias";