Merge branch 'master' into fusionax
[platal.git] / modules / newsletter.php
index 8390eed..ee6447e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2008 Polytechnique.org                              *
+ *  Copyright (C) 2003-2009 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -24,11 +24,11 @@ class NewsletterModule extends PLModule
     function handlers()
     {
         return array(
-            'nl'             => $this->make_hook('nl',        AUTH_COOKIE),
-            'nl/show'        => $this->make_hook('nl_show',   AUTH_COOKIE),
-            'nl/submit'      => $this->make_hook('nl_submit', AUTH_MDP),
-            'admin/newsletter'             => $this->make_hook('admin_nl', AUTH_MDP, 'admin'),
-            'admin/newsletter/categories'  => $this->make_hook('admin_nl_cat', AUTH_MDP, 'admin'),
+            'nl'                           => $this->make_hook('nl',            AUTH_COOKIE),
+            'nl/show'                      => $this->make_hook('nl_show',       AUTH_COOKIE),
+            'nl/submit'                    => $this->make_hook('nl_submit',     AUTH_MDP),
+            'admin/newsletter'             => $this->make_hook('admin_nl',      AUTH_MDP, 'admin'),
+            'admin/newsletter/categories'  => $this->make_hook('admin_nl_cat',  AUTH_MDP, 'admin'),
             'admin/newsletter/edit'        => $this->make_hook('admin_nl_edit', AUTH_MDP, 'admin'),
         );
     }
@@ -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;
         }
     }
 
@@ -111,8 +118,8 @@ class NewsletterModule extends PLModule
     function handler_admin_nl_edit(&$page, $nid = 'last', $aid = null, $action = 'edit') {
         $page->changeTpl('newsletter/edit.tpl');
         $page->addCssLink('nl.css');
-        $page->setTitle('Administration - Newsletter : Edition');
-        require_once("newsletter.inc.php");
+        $page->setTitle('Administration - Newsletter : Édition');
+        require_once 'newsletter.inc.php';
 
         $nl  = new NewsLetter($nid);
 
@@ -144,11 +151,14 @@ class NewsletterModule extends PLModule
 
         if($action == 'edit' && $aid != 'update') {
             $eaid = $aid;
-            if(Post::has('title')) {
+            if (Post::has('title')) {
                 $art  = new NLArticle(Post::v('title'), Post::v('body'), Post::v('append'),
-                        $eaid, Post::v('cid'), Post::v('pos'));
+                                      $eaid, Post::v('cid'), Post::v('pos'));
             } else {
-                  $art = ($eaid == 'new') ? new NLArticle() : $nl->getArt($eaid);
+                $art = ($eaid == 'new') ? new NLArticle() : $nl->getArt($eaid);
+            }
+            if ($art && !$art->check()) {
+                $page->trigError("Cet article est trop long.");
             }
             $page->assign('art', $art);
         }