Fix #502: aka <=> alias
[platal.git] / modules / xnetevents.php
index 2580e7a..29f9b07 100644 (file)
@@ -26,11 +26,11 @@ class XnetEventsModule extends PLModule
     function handlers()
     {
         return array(
-            'grp/events'       => $this->make_hook('events',  AUTH_MDP),
-            'grp/events/sub'   => $this->make_hook('sub',     AUTH_MDP),
-            'grp/events/csv'   => $this->make_hook('csv',     AUTH_MDP),
-            'grp/events/edit'  => $this->make_hook('edit',    AUTH_MDP),
-            'grp/events/admin' => $this->make_hook('admin',   AUTH_MDP),
+            '%grp/events'       => $this->make_hook('events',  AUTH_MDP),
+            '%grp/events/sub'   => $this->make_hook('sub',     AUTH_MDP),
+            '%grp/events/csv'   => $this->make_hook('csv',     AUTH_MDP),
+            '%grp/events/edit'  => $this->make_hook('edit',    AUTH_MDP),
+            '%grp/events/admin' => $this->make_hook('admin',   AUTH_MDP),
         );
     }
 
@@ -45,9 +45,9 @@ class XnetEventsModule extends PLModule
                 return PL_NOT_ALLOWED;
             }
 
-            $eid = Post::get('del');
+            $eid = Post::v('del');
 
-            $res = $globals->xdb->query("SELECT asso_id, short_name FROM groupex.evenements
+            $res = XDB::query("SELECT asso_id, short_name FROM groupex.evenements
                                         WHERE eid = {?} AND asso_id = {?}",
                                         $eid, $globals->asso('id'));
 
@@ -58,36 +58,36 @@ class XnetEventsModule extends PLModule
 
             // deletes the event mailing aliases
             if ($tmp[1]) {
-                $globals->xdb->execute(
+                XDB::execute(
                     "DELETE FROM virtual WHERE type = 'evt' AND alias LIKE {?}",
                     $tmp[1].'-absents@%');
-                $globals->xdb->execute(
+                XDB::execute(
                     "DELETE FROM virtual WHERE type = 'evt' AND alias LIKE {?}",
                     $tmp[1].'-participants@%');
             }
 
             // deletes the event items
-            $globals->xdb->execute("DELETE FROM groupex.evenements_items WHERE eid = {?}", $eid);
+            XDB::execute("DELETE FROM groupex.evenements_items WHERE eid = {?}", $eid);
 
             // deletes the event participants
-            $globals->xdb->execute("DELETE FROM groupex.evenements_participants
+            XDB::execute("DELETE FROM groupex.evenements_participants
                                     WHERE eid = {?}", $eid);
 
             // deletes the event
-            $globals->xdb->execute("DELETE FROM groupex.evenements
+            XDB::execute("DELETE FROM groupex.evenements
                                     WHERE eid = {?} AND asso_id = {?}",
                                    $eid, $globals->asso('id'));
 
             // delete the requests for payments
             require_once 'validations.inc.php';
-            $globals->xdb->execute("DELETE FROM requests
+            XDB::execute("DELETE FROM requests
                                     WHERE type = 'paiements' AND data LIKE {?}",
                                    PayReq::same_event($eid, $globals->asso('id')));
         }
 
         $page->assign('admin', may_update());
 
-        $evenements = $globals->xdb->iterator(
+        $evenements = XDB::iterator(
                 "SELECT  e.*, LEFT(10, e.debut) AS debut_day, LEFT(10, e.fin) AS fin_day,
                          IF(e.deadline_inscription, e.deadline_inscription >= LEFT(NOW(), 10),
                             1) AS inscr_open, e.deadline_inscription,
@@ -99,18 +99,18 @@ class XnetEventsModule extends PLModule
              LEFT JOIN  groupex.evenements_participants AS ep ON (ep.eid = e.eid AND ep.uid = {?})
                  WHERE  asso_id = {?}
               GROUP BY  e.eid
-              ORDER BY  debut", Session::get('uid'), $globals->asso('id'));
+              ORDER BY  debut", S::v('uid'), $globals->asso('id'));
 
         $evts = array();
 
         while ($e = $evenements->next()) {
-            $res = $globals->xdb->query(
+            $res = XDB::query(
                 "SELECT titre, details, montant, ei.item_id, nb
                    FROM groupex.evenements_items AS ei
               LEFT JOIN groupex.evenements_participants AS ep
                         ON (ep.eid = ei.eid AND ep.item_id = ei.item_id AND uid = {?})
                   WHERE ei.eid = {?}",
-                    Session::get('uid'), $e['eid']);
+                    S::v('uid'), $e['eid']);
             $e['moments'] = $res->fetchAllAssoc();
 
             $e['topay'] = 0;
@@ -118,10 +118,10 @@ class XnetEventsModule extends PLModule
                 $e['topay'] += $m['nb'] * $m['montant'];
             }
 
-            $query = $globals->xdb->query(
+            $query = XDB::query(
                 "SELECT montant
                    FROM {$globals->money->mpay_tprefix}transactions AS t
-                 WHERE ref = {?} AND uid = {?}", $e['paiement_id'], Session::get('uid'));
+                 WHERE ref = {?} AND uid = {?}", $e['paiement_id'], S::v('uid'));
             $montants = $query->fetchColumn();
 
             foreach ($montants as $m) {
@@ -138,8 +138,6 @@ class XnetEventsModule extends PLModule
 
     function handler_sub(&$page, $eid = null)
     {
-        global $globals;
-
         require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
 
         new_group_page('xnetevents/subscribe.tpl');
@@ -159,8 +157,8 @@ class XnetEventsModule extends PLModule
             return;
         }
 
-        $moments = Post::getMixed('moment',    array());
-        $pers    = Post::getMixed('personnes', array());
+        $moments = Post::v('moment',    array());
+        $pers    = Post::v('personnes', array());
         $subs    = array();
 
         foreach ($moments as $j => $v) {
@@ -191,16 +189,16 @@ class XnetEventsModule extends PLModule
         // update actual inscriptions
         foreach ($subs as $j => $nb) {
             if ($nb > 0) {
-                $globals->xdb->execute(
+                XDB::execute(
                     "REPLACE INTO  groupex.evenements_participants
                            VALUES  ({?}, {?}, {?}, {?}, {?})",
-                    $eid, Session::getInt('uid'), $j, $nb, $evt['paid']);
+                    $eid, S::v('uid'), $j, $nb, $evt['paid']);
                 $page->assign('updated', true);
             } else {
-                $globals->xdb->execute(
+                XDB::execute(
                     "DELETE FROM  groupex.evenements_participants
                            WHERE  eid = {?} AND uid = {?} AND item_id = {?}",
-                    $eid, Session::getInt("uid"), $j);         
+                    $eid, S::v("uid"), $j);            
                 $page->assign('updated', true);
             }
         }
@@ -225,11 +223,11 @@ class XnetEventsModule extends PLModule
         header('Pragma: ');
         header('Cache-Control: ');
 
-        new_nonhtml_page('xnetevents/csv.tpl');
+        $page->changeTpl('xnetevents/csv.tpl', NO_SKIN);
 
         $admin = may_update();
 
-        $tri = (Env::get('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo');
+        $tri = (Env::v('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo');
 
         $page->assign('participants',
                       get_event_participants($evt, $item_id, $tri));
@@ -237,7 +235,7 @@ class XnetEventsModule extends PLModule
         $page->assign('admin', $admin);
         $page->assign('moments', $evt['moments']);
         $page->assign('money', $evt['money']);
-        $page->assign('tout', !Env::get('item_id', false));
+        $page->assign('tout', !Env::v('item_id', false));
     }
 
     function handler_edit(&$page, $eid = null)
@@ -246,7 +244,7 @@ class XnetEventsModule extends PLModule
 
         // check the event is in our group
         if (!is_null($eid)) {
-            $res = $globals->xdb->query("SELECT short_name, asso_id
+            $res = XDB::query("SELECT short_name, asso_id
                                            FROM groupex.evenements
                                           WHERE eid = {?}", $eid);
             $infos = $res->fetchOneAssoc();
@@ -260,41 +258,41 @@ class XnetEventsModule extends PLModule
         $moments = range(1, 4);
         $page->assign('moments', $moments);
 
-        if (Post::get('intitule')) {
+        if (Post::v('intitule')) {
             require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
             $short_name = event_change_shortname($page, $infos['short_name'],
-                                                 Env::get('short_name', ''));
+                                                 Env::v('short_name', ''));
 
             $evt = array(
                 'eid'              => $eid,
                 'asso_id'          => $globals->asso('id'),
-                'organisateur_uid' => Session::get('uid'),
-                'paiement_id'      => Post::get('paiement_id') > 0 ? Post::get('paiement_id') : null,
-                'debut'            => Post::get('deb_Year').'-'.Post::get('deb_Month')
-                                      .'-'.Post::get('deb_Day').' '.Post::get('deb_Hour')
-                                      .':'.Post::get('deb_Minute').':00',
-                'fin'              => Post::get('fin_Year').'-'.Post::get('fin_Month')
-                                      .'-'.Post::get('fin_Day').' '.Post::get('fin_Hour')
-                                      .':'.Post::get('fin_Minute').':00',
+                'organisateur_uid' => S::v('uid'),
+                'paiement_id'      => Post::v('paiement_id') > 0 ? Post::v('paiement_id') : null,
+                'debut'            => Post::v('deb_Year').'-'.Post::v('deb_Month')
+                                      .'-'.Post::v('deb_Day').' '.Post::v('deb_Hour')
+                                      .':'.Post::v('deb_Minute').':00',
+                'fin'              => Post::v('fin_Year').'-'.Post::v('fin_Month')
+                                      .'-'.Post::v('fin_Day').' '.Post::v('fin_Hour')
+                                      .':'.Post::v('fin_Minute').':00',
                 'short_name'       => $short_name,
             );
 
             $trivial = array('intitule', 'descriptif', 'noinvite',
                              'show_participants');
             foreach ($trivial as $k) {
-                $evt[$k] = Post::get($k);
+                $evt[$k] = Post::v($k);
             }
 
-            if (Post::get('deadline')) {
-                $evt['deadline_inscription'] = Post::get('inscr_Year').'-'
-                                             . Post::get('inscr_Month').'-'
-                                             . Post::get('inscr_Day');
+            if (Post::v('deadline')) {
+                $evt['deadline_inscription'] = Post::v('inscr_Year').'-'
+                                             . Post::v('inscr_Month').'-'
+                                             . Post::v('inscr_Day');
             } else {
                 $evt['deadline_inscription'] = null;
             }
 
             // Store the modifications in the database
-            $globals->xdb->execute('REPLACE INTO groupex.evenements
+            XDB::execute('REPLACE INTO groupex.evenements
                 SET eid={?}, asso_id={?}, organisateur_uid={?}, intitule={?},
                     paiement_id = {?}, descriptif = {?}, debut = {?},
                     fin = {?}, show_participants = {?}, short_name = {?},
@@ -314,47 +312,46 @@ class XnetEventsModule extends PLModule
             $money_defaut = 0;
 
             foreach ($moments as $i) {
-                if (Post::get('titre'.$i)) {
+                if (Post::v('titre'.$i)) {
                     $nb_moments++;
 
-                    $montant = strtr(Post::get('montant'.$i), ',', '.');
+                    $montant = strtr(Post::v('montant'.$i), ',', '.');
                     $money_defaut += (float)$montant;
-                    $globals->xdb->execute("
+                    XDB::execute("
                         REPLACE INTO groupex.evenements_items
                         VALUES ({?}, {?}, {?}, {?}, {?})",
-                        $eid, $i, Post::get('titre'.$i),
-                        Post::get('details'.$i), $montant);
+                        $eid, $i, Post::v('titre'.$i),
+                        Post::v('details'.$i), $montant);
                 } else {
-                    $globals->xdb->execute("DELETE FROM groupex.evenements_items 
+                    XDB::execute("DELETE FROM groupex.evenements_items 
                                             WHERE eid = {?} AND item_id = {?}", $eid, $i);
                 }
             }
 
             // request for a new payment
-            if (Post::get('paiement_id') == -1 && $money_defaut >= 0) {
+            if (Post::v('paiement_id') == -1 && $money_defaut >= 0) {
                 require_once 'validations.inc.php';
-                $p = new PayReq(Session::get('uid'),
-                                Post::get('intitule')." - ".$globals->asso('nom'),
-                                Post::get('site'), $money_defaut,
-                                Post::get('confirmation'), 0, 999,
+                $p = new PayReq(S::v('uid'),
+                                Post::v('intitule')." - ".$globals->asso('nom'),
+                                Post::v('site'), $money_defaut,
+                                Post::v('confirmation'), 0, 999,
                                 $globals->asso('id'), $eid);
                 $p->submit();
             }
 
             // events with no sub-event: add a sub-event with no name
             if ($nb_moments == 0) {
-                $globals->xdb->execute("INSERT INTO groupex.evenements_items
+                XDB::execute("INSERT INTO groupex.evenements_items
                                         VALUES ({?}, {?}, '', '', 0)", $eid, 1);
             }
 
             if (is_null($evt['eid'])) {
-                global $platal;
-                redirect(smarty_function_rel().'/'.$platal->path.'/'.$eid);
+                pl_redirect('events/'.$eid);
             }
         }
 
         // get a list of all the payment for this asso
-        $res = $globals->xdb->iterator("SELECT id, text
+        $res = XDB::iterator("SELECT id, text
                                         FROM {$globals->money->mpay_tprefix}paiements
                                         WHERE asso_id = {?}", $globals->asso('id'));
         $paiements = array();
@@ -364,7 +361,7 @@ class XnetEventsModule extends PLModule
 
         // when modifying an old event retreive the old datas
         if ($eid) {
-            $res = $globals->xdb->query(
+            $res = XDB::query(
                     "SELECT    eid, intitule, descriptif, debut, fin,
                                 show_participants, paiement_id, short_name,
                                 deadline_inscription, noinvite
@@ -373,7 +370,7 @@ class XnetEventsModule extends PLModule
             $evt = $res->fetchOneAssoc();
             // find out if there is already a request for a payment for this event
             require_once 'validations.inc.php';
-            $res = $globals->xdb->query("SELECT stamp FROM requests
+            $res = XDB::query("SELECT stamp FROM requests
                                          WHERE type = 'paiements' AND data LIKE {?}",
                                         PayReq::same_event($eid, $globals->asso('id')));
             $stamp = $res->fetchOneCell();
@@ -383,7 +380,7 @@ class XnetEventsModule extends PLModule
             }
             $page->assign('evt', $evt);
             // get all the different moments infos
-            $res = $globals->xdb->iterator(
+            $res = XDB::iterator(
                     "SELECT item_id, titre, details, montant
                        FROM groupex.evenements_items AS ei
                  INNER JOIN groupex.evenements AS e ON(e.eid = ei.eid)
@@ -414,47 +411,47 @@ class XnetEventsModule extends PLModule
             new_groupadmin_page('xnetevents/admin.tpl');
         }
 
-        if (may_update() && Post::get('adm')) {
-            $member = get_infos(Post::get('mail'));
+        if (may_update() && Post::v('adm')) {
+            $member = get_infos(Post::v('mail'));
             if (!$member) {
                 $page->trig("Membre introuvable");
             }
 
             // change the price paid by a participant
-            if (Env::get('adm') == 'prix' && $member) {
-                $globals->xdb->execute("UPDATE groupex.evenements_participants
+            if (Env::v('adm') == 'prix' && $member) {
+                XDB::execute("UPDATE groupex.evenements_participants
                                            SET paid = IF(paid + {?} > 0, paid + {?}, 0)
                                          WHERE uid = {?} AND eid = {?}",
-                        strtr(Env::get('montant'), ',', '.'),
-                        strtr(Env::get('montant'), ',', '.'),
+                        strtr(Env::v('montant'), ',', '.'),
+                        strtr(Env::v('montant'), ',', '.'),
                         $member['uid'], $eid);
             }
 
             // change the number of personns coming with a participant
-            if (Env::get('adm') == 'nbs' && $member) {
-                $res = $globals->xdb->query("SELECT paid
+            if (Env::v('adm') == 'nbs' && $member) {
+                $res = XDB::query("SELECT paid
                                                FROM groupex.evenements_participants
                                               WHERE uid = {?} AND eid = {?}",
                                             $member['uid'], $eid);
 
                 $paid = intval($res->fetchOneCell());
-                $nbs  = Post::getMixed('nb', array());
+                $nbs  = Post::v('nb', array());
 
                 foreach ($nbs as $id => $nb) {
                     $nb = max(intval($nb), 0);
 
                     if ($nb) {
-                        $globals->xdb->execute("REPLACE INTO groupex.evenements_participants
+                        XDB::execute("REPLACE INTO groupex.evenements_participants
                                                VALUES ({?}, {?}, {?}, {?}, {?})",
                                                $eid, $member['uid'], $id, $nb, $paid);
                     } else {
-                        $globals->xdb->execute("DELETE FROM groupex.evenements_participants
+                        XDB::execute("DELETE FROM groupex.evenements_participants
                                                WHERE uid = {?} AND eid = {?} AND item_id = {?}",
                                                $member['uid'], $eid, $id);
                     }
                 }
 
-                $res = $globals->xdb->query("SELECT uid FROM groupex.evenements_participants
+                $res = XDB::query("SELECT uid FROM groupex.evenements_participants
                                             WHERE uid = {?} AND eid = {?}",
                                             $member['uid'], $eid);
                 $u = $res->fetchOneCell();
@@ -472,9 +469,9 @@ class XnetEventsModule extends PLModule
             $page->assign('moments', $evt['moments']);
         }
 
-        $tri = (Env::get('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo');
+        $tri = (Env::v('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo');
         $whereitemid = is_null($item_id) ? '' : "AND ep.item_id = $item_id";
-        $res = $globals->xdb->iterRow(
+        $res = XDB::iterRow(
                     'SELECT  UPPER(SUBSTRING(IF(u.nom IS NULL, m.nom,
                                                 IF(u.nom_usage<>"", u.nom_usage, u.nom)), 1, 1)),
                              COUNT(DISTINCT ep.uid)
@@ -490,15 +487,15 @@ class XnetEventsModule extends PLModule
         while (list($char, $nb) = $res->next()) {
             $alphabet[ord($char)] = $char;
             $nb_tot += $nb;
-            if (Env::has('initiale') && $char == strtoupper(Env::get('initiale'))) {
+            if (Env::has('initiale') && $char == strtoupper(Env::v('initiale'))) {
                 $tot = $nb;
             }
         }
         ksort($alphabet);
         $page->assign('alphabet', $alphabet);
 
-        $ofs   = Env::getInt('offset');
-        $tot   = Env::get('initiale') ? $tot : $nb_tot;
+        $ofs   = Env::i('offset');
+        $tot   = Env::v('initiale') ? $tot : $nb_tot;
         $nbp   = intval(($tot-1)/NB_PER_PAGE);
         $links = array();
         if ($ofs) {
@@ -515,7 +512,7 @@ class XnetEventsModule extends PLModule
         }
 
         if ($evt['paiement_id']) {
-            $res = $globals->xdb->iterator(
+            $res = XDB::iterator(
                 "SELECT IF(u.nom_usage<>'', u.nom_usage, u.nom) AS nom, u.prenom,
                         u.promo, a.alias AS email, t.montant
                    FROM {$globals->money->mpay_tprefix}transactions AS t