From: Stéphane Jacob Date: Wed, 21 Jan 2009 09:44:47 +0000 (+0100) Subject: Adds MailNotFound exception and use it for unknown newletters. X-Git-Tag: xorg/0.10.1~149 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=9da70671059732100f0f779ee5933a6eae5c0933;p=platal.git Adds MailNotFound exception and use it for unknown newletters. --- diff --git a/include/massmailer.inc.php b/include/massmailer.inc.php index f4e53df..3f7bcdd 100644 --- a/include/massmailer.inc.php +++ b/include/massmailer.inc.php @@ -19,6 +19,13 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ +// {{{ class MailNotFound + +class MailNotFound extends Exception { +} + +// }}} + // {{{ class MassMailer abstract class MassMailer diff --git a/include/newsletter.inc.php b/include/newsletter.inc.php index fc94a03..c58844e 100644 --- a/include/newsletter.inc.php +++ b/include/newsletter.inc.php @@ -45,6 +45,9 @@ class NewsLetter extends MassMailer } $res = XDB::query("SELECT * FROM newsletter WHERE bits='new'"); } + if ($res->numRows() != 1) { + throw new MailNotFound(); + } $nl = $res->fetchOneAssoc(); $this->_id = $nl['id']; diff --git a/modules/newsletter.php b/modules/newsletter.php index 18118a9..62dd684 100644 --- a/modules/newsletter.php +++ b/modules/newsletter.php @@ -56,18 +56,25 @@ class NewsletterModule extends PLModule require_once 'newsletter.inc.php'; - $nl = new NewsLetter($nid); - if (Get::has('text')) { - $nl->toText($page, S::v('prenom'), S::v('nom'), S::v('femme')); - } else { - $nl->toHtml($page, S::v('prenom'), S::v('nom'), S::v('femme')); - } - if (Post::has('send')) { - $res = XDB::query("SELECT hash FROM newsletter_ins WHERE user_id = {?}", S::i('uid')); - $nl->sendTo(S::user()->login(), S::user()->bestEmail(), - S::v('prenom'), S::v('nom'), - S::v('femme'), S::v('mail_fmt') != 'texte', - $res->fetchOneCell()); + try { + $nl = new NewsLetter($nid); + if (Get::has('text')) { + $nl->toText($page, S::v('prenom'), S::v('nom'), S::v('femme')); + } else { + $nl->toHtml($page, S::v('prenom'), S::v('nom'), S::v('femme')); + } + if (Post::has('send')) { + $res = XDB::query("SELECT hash + FROM newsletter_ins + WHERE user_id = {?}", + S::i('uid')); + $nl->sendTo(S::user()->login(), S::user()->bestEmail(), + S::v('prenom'), S::v('nom'), + S::v('femme'), S::v('mail_fmt') != 'texte', + $res->fetchOneCell()); + } + } catch (MailNotFound $e) { + return PL_NOT_FOUND; } }