Change default: show menu in xnet pages.
[platal.git] / modules / events.php
index 7c96566..fab8dd9 100644 (file)
@@ -169,8 +169,12 @@ class EventsModule extends PLModule
         $valid_mesg = Post::v('valid_mesg');
         $action     = Post::v('action');
 
+       require_once('url_catcher.inc.php');
+               $texte_catch_url = url_catcher($texte);
+               
         $page->assign('titre', $titre);
         $page->assign('texte', $texte);
+        $page->assign('texte_html', $texte_catch_url);
         $page->assign('promo_min', $promo_min);
         $page->assign('promo_max', $promo_max);
         $page->assign('peremption', $peremption);
@@ -178,10 +182,7 @@ class EventsModule extends PLModule
         $page->assign('action', strtolower($action));
 
         if ($action == 'Confirmer') {
-            $texte = preg_replace('/((?:https?|ftp):\/\/(?:\.*,*[a-z@0-9~%$£µ&i#\-+=_\/\?])*)/i',
-                                  '<a href="\\0">\\0</a>', $texte);
-            $texte = preg_replace('/(?:mailto:)?([a-z0-9.\-+_]+@([\-.+_]?[a-z0-9])+)/i',
-                                  '<a href="mailto:\\0">\\0</a>', $texte);
+               $texte = $texte_catch_url;
             require_once 'validations.inc.php';
             $evtreq = new EvtReq($titre, $texte, $promo_min, $promo_max,
                                  $peremption, $valid_mesg, S::v('uid'));
@@ -220,7 +221,7 @@ class EventsModule extends PLModule
         }
 
         $page->assign('nls', get_nl_state());
-        $page->assign_by_ref('nl_list', get_nl_list());
+        $page->assign('nl_list', get_nl_list());
     }
 
     function handler_nl_show(&$page, $nid = 'last')
@@ -235,7 +236,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');
         }
     }
 
@@ -359,7 +360,7 @@ class EventsModule extends PLModule
            pl_redirect("admin/newsletter");
         }
         
-        $page->assign_by_ref('nl_list', get_nl_slist());
+        $page->assign('nl_list', get_nl_slist());
     }
     
     function handler_admin_nl_edit(&$page, $nid = 'last', $aid = null, $action = 'edit') {
@@ -375,10 +376,16 @@ class EventsModule extends PLModule
         }
         
         if($aid == 'update') {
-            $nl->_title = Post::v('title');
-            $nl->_date  = Post::v('date');
-            $nl->_head  = Post::v('head');
-            $nl->save();
+            $nl->_title     = Post::v('title');
+            $nl->_date      = Post::v('date');
+            $nl->_head      = Post::v('head');
+            $nl->_shortname = strlen(Post::v('shortname')) ? Post::v('shortname') : null;
+            if (preg_match('/^[-a-z0-9]*$/i', $nl->_shortname) && !is_numeric($nl->_shortname)) {
+                $nl->save();
+            } else {
+                $page->trig('Le nom de la NL n\'est pas valide');
+                pl_redirect('admin/newsletter/edit/' . $nl->_id);
+            }
         }
         
         if(Post::v('save')) {
@@ -388,7 +395,7 @@ class EventsModule extends PLModule
             pl_redirect("admin/newsletter/edit/$nid");
         }
         
-        if($action == 'edit') {
+        if($action == 'edit' && $aid != 'update') {
             $eaid = $aid;
             if(Post::has('title')) {
                 $art  = new NLArticle(Post::v('title'), Post::v('body'), Post::v('append'),
@@ -402,7 +409,6 @@ class EventsModule extends PLModule
         $page->assign_by_ref('nl',$nl);
     }
     function handler_admin_nl_cat(&$page, $action = 'list', $id = null) {
-        require_once('../classes/PLTableEditor.php');
         $page->assign('xorg_title','Polytechnique.org - Administration - Newsletter : Catégories');
         $page->assign('title', 'Gestion des catégories de la newsletter');
         $table_editor = new PLTableEditor('admin/newsletter/categories','newsletter_cat','cid');