Check promotion range for x.org events
[platal.git] / modules / events.php
index eaee6ea..0adde06 100644 (file)
@@ -100,11 +100,8 @@ class EventsModule extends PLModule
 
         // ajout du lien RSS
         if (S::has('core_rss_hash')) {
-            $page->assign('xorg_rss',
-                          array('title' => 'Polytechnique.org :: News',
-                                'href' => '/rss/'.S::v('forlife')
-                                         .'/'.S::v('core_rss_hash').'/rss.xml')
-            );
+            $page->setRssLink('Polytechnique.org :: News',
+                              '/rss/'.S::v('forlife') .'/'.S::v('core_rss_hash').'/rss.xml');
         }
 
         // cache les evenements lus et raffiche les evenements a relire
@@ -169,6 +166,14 @@ class EventsModule extends PLModule
         $valid_mesg = Post::v('valid_mesg');
         $action     = Post::v('action');
 
+        if ($promo_min > $promo_max ||
+            ($promo_min != 0 && ($promo_min <= 1900 || $promo_min >= 2020)) ||
+            ($promo_max != 0 && ($promo_max <= 1900 || $promo_max >= 2020)))
+        {
+            $page->trig("L'intervalle de promotions n'est pas valide");
+            $action = null;
+        }
+
        require_once('url_catcher.inc.php');
                $texte_catch_url = url_catcher($texte);
                
@@ -236,7 +241,7 @@ class EventsModule extends PLModule
         if (Post::has('send')) {
             $nl->sendTo(S::v('prenom'), S::v('nom'),
                         S::v('bestalias'), S::v('femme'),
-                        S::v('mail_fmt') != 'text');
+                        S::v('mail_fmt') != 'texte');
         }
     }
 
@@ -268,11 +273,21 @@ class EventsModule extends PLModule
         $page->assign('action', $action);
  
         if (Post::v('action') == "Proposer" && $eid) {
-            XDB::execute('UPDATE evenements
-                             SET titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?}
-                           WHERE id = {?}', 
-                          Post::v('titre'), Post::v('texte'), Post::v('peremption'),
-                          Post::v('promo_min'), Post::v('promo_max'), $eid);
+            $promo_min = Post::i('promo_min');
+            $promo_max = Post::i('promo_max');
+            if ($promo_min > $promo_max ||
+                ($promo_min != 0 && ($promo_min <= 1900 || $promo_min >= 2020)) ||
+                ($promo_max != 0 && ($promo_max <= 1900 || $promo_max >= 2020)))
+            {
+                $page->trig("L'intervalle de promotions $promo_min -> $promo_max n'est pas valide");
+                $action = 'edit';
+            } else {
+                XDB::execute('UPDATE evenements
+                                 SET titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?}
+                               WHERE id = {?}', 
+                              Post::v('titre'), Post::v('texte'), Post::v('peremption'),
+                              Post::v('promo_min'), Post::v('promo_max'), $eid);
+            }    
         }
 
         if ($action == 'edit') {