X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Femail.php;h=98bccb519b83998c1215dfdc4025903e918f411a;hb=cd723c19d7a096f5d304329615d0ea32eb9a7fd2;hp=49ba3c43289800d3af745632153a8e12db709640;hpb=f5f8b26fe9f7e077f6dd79fac63c5f37ca735e6c;p=platal.git diff --git a/modules/email.php b/modules/email.php index 49ba3c4..98bccb5 100644 --- a/modules/email.php +++ b/modules/email.php @@ -32,7 +32,9 @@ class EmailModule extends PLModule 'emails/send' => $this->make_hook('send', AUTH_MDP), 'emails/antispam/submit' => $this->make_hook('submit', AUTH_COOKIE), - 'admin/emails/duplicated' => $this->make_hook('duplicated', AUTH_MDP, 'admin') + 'admin/emails/duplicated' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), + 'admin/emails/watch' => $this->make_hook('duplicated', AUTH_MDP, 'admin'), + 'admin/emails/lost' => $this->make_hook('lost', AUTH_MDP, 'admin'), ); } @@ -300,6 +302,7 @@ class EmailModule extends PLModule global $globals; $page->changeTpl('emails/send.tpl'); + $page->addJsLink('ajax.js'); $page->assign('xorg_title','Polytechnique.org - Envoyer un email'); @@ -319,17 +322,24 @@ class EmailModule extends PLModule return join(', ', $ret); } + foreach ($_FILES as &$file) { + if ($file['name'] && !PlUpload::get($file, S::v('forlife'), 'emails.send', false)) { + $page->trig("Impossible de télécharger '" . pl_entities($file['name']) . "'"); + } + } + $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'); $from = Env::v('from'); - $cc = Env::v('cc'); - $bcc = Env::v('bcc'); + $cc = trim(Env::v('cc')); + $bcc = trim(Env::v('bcc')); - if (empty($to) && empty($cc) && empty($to2)) { + if (empty($to) && empty($cc) && empty($to2) && empty($bcc) && empty($cc2)) { $page->trig("Indique au moins un destinataire."); + $page->assign('uploaded_f', PlUpload::listFilenames(S::v('forlife'), 'emails.send')); } else { $mymail = new PlMailer(); $mymail->setFrom($from); @@ -339,20 +349,26 @@ class EmailModule extends PLModule if (!empty($bcc)) { $mymail->addBcc($bcc); } if (!empty($to2)) { $mymail->addTo($to2); } if (!empty($cc2)) { $mymail->addCc($cc2); } - if (is_uploaded_file($_FILES['uploaded']['tmp_name'])) { - $mymail->addAttachment($_FILES['uploaded']['tmp_name'], - $_FILES['uploaded']['type'], - $_FILES['uploaded']['name']); + $files =& PlUpload::listFiles(S::v('forlife'), 'emails.send'); + foreach ($files as $name=>&$upload) { + $mymail->addUploadAttachment($upload, $name); + } + if (Env::v('nowiki')) { + $mymail->setTxtBody(wordwrap($txt, 78, "\n")); + } else { + $mymail->setWikiBody($txt); } - $mymail->setTxtBody(wordwrap($txt,72,"\n")); if ($mymail->send()) { $page->trig("Ton mail a bien été envoyé."); $_REQUEST = array('bcc' => S::v('bestalias').'@'.$globals->mail->domain); + PlUpload::clear(S::v('forlife'), 'emails.send'); } else { $page->trig("Erreur lors de l'envoi du courriel, réessaye."); + $page->assign('uploaded_f', PlUpload::listFilenames(S::v('forlife'), 'emails.send')); } } } else { + PlUpload::clear(S::v('forlife'), 'emails.send'); $_REQUEST['bcc'] = S::v('bestalias').'@'.$globals->mail->domain; } @@ -364,6 +380,7 @@ class EmailModule extends PLModule WHERE c.uid = {?} ORDER BY u.nom, u.prenom", S::v('uid')); $page->assign('contacts', $res->fetchAllAssoc()); + $page->assign('maxsize', ini_get('post_max_size') . 'o'); } function handler_broken(&$page, $warn = null, $email = null) @@ -547,6 +564,18 @@ L'équipe d'administration "; $page->assign('doublon', $props); } } + function handler_lost(&$page, $action = 'list', $email = null) + { + $page->changeTpl('emails/lost.tpl'); + + $page->assign('lost_emails', XDB::iterator(' + SELECT u.user_id, a.alias + FROM auth_user_md5 AS u + INNER JOIN aliases AS a ON (a.id = u.user_id AND a.type = "a_vie") + LEFT JOIN emails AS e ON (u.user_id=e.uid AND FIND_IN_SET("active",e.flags)) + WHERE e.uid IS NULL AND u.deces = 0 + ORDER BY u.promo DESC, u.nom, u.prenom')); + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: