Table editor fills the new entry form with the default values of the fields
[platal.git] / modules / xnetgrp.php
index 1e4b301..af4f6ea 100644 (file)
@@ -80,8 +80,8 @@ class XnetGrpModule extends PLModule
             '%grp/mail'           => $this->make_hook('mail',      AUTH_MDP),
             '%grp/annuaire'       => $this->make_hook('annuaire',  AUTH_MDP),
             '%grp/annuaire/vcard' => $this->make_hook('vcard',     AUTH_MDP),
+            '%grp/trombi'         => $this->make_hook('trombi',    AUTH_MDP),
             '%grp/subscribe'      => $this->make_hook('subscribe', AUTH_MDP),
-            '%grp/paiement'       => $this->make_hook('paiement',  AUTH_MDP),
 
             '%grp/admin/annuaire'
                  => $this->make_hook('admin_annuaire', AUTH_MDP),
@@ -110,11 +110,7 @@ class XnetGrpModule extends PLModule
             return PL_NOT_FOUND;
         }
 
-        $page->changeTpl('xnet/groupe/asso.tpl');
-        $page->setType($globals->asso('cat'));
-        $page->assign('is_admin', may_update());
-        $page->assign('is_member', is_member());
-        $page->assign('logged', S::logged());
+        new_group_open_page('xnet/groupe/asso.tpl');
 
         if (S::logged()) {
             if (Env::has('read')) {
@@ -295,14 +291,7 @@ class XnetGrpModule extends PLModule
     function handler_annuaire(&$page)
     {
         global $globals;
-
-        if ($globals->asso('pub') == 'public') {
-            new_group_page('xnet/groupe/annuaire.tpl');
-        } else {
-            new_groupadmin_page('xnet/groupe/annuaire.tpl');
-        }
-
-        $page->assign('admin', may_update());
+        new_annu_page('xnet/groupe/annuaire.tpl');
 
         $sort = Env::v('order');
         switch (Env::v('order')) {
@@ -398,6 +387,43 @@ class XnetGrpModule extends PLModule
         $page->assign('ann', $ann);
     }
 
+    function handler_trombi(&$page, $num = 1)
+    {
+        global $globals;
+        new_annu_page('xnet/groupe/trombi.tpl');
+        
+        $page->assign('urlmainsite', "https://www.polytechnique.org/");
+        $trombi = new Trombi(array($this, '_trombi_getlist'));
+        $trombi->hidePromo();
+        $trombi->setAdmin();
+        $page->assign_by_ref('trombi', $trombi);
+    }
+
+    function _trombi_getlist($offset, $limit)
+    {
+        global $globals;
+        $where  = "WHERE m.asso_id= '".addslashes($globals->asso('id'))."'";
+
+        $res = XDB::query(
+                "SELECT  COUNT(*)
+                   FROM  auth_user_md5 AS u
+             RIGHT JOIN  photo         AS p ON u.user_id=p.uid
+             INNER JOIN  groupex.membres AS m ON (m.uid = u.user_id)
+             $where");
+        $pnb = $res->fetchOneCell();
+        
+        $res = XDB::query("SELECT  promo, user_id, a.alias AS forlife,
+                         IF (nom_usage='', u.nom, nom_usage) AS nom, u.prenom
+                   FROM  photo         AS p
+             INNER JOIN  auth_user_md5 AS u ON u.user_id=p.uid
+             INNER JOIN  aliases       AS a ON ( u.user_id=a.id AND a.type='a_vie' )
+             INNER JOIN  groupex.membres AS m ON (m.uid = u.user_id)
+                  $where
+               ORDER BY  promo, u.nom, u.prenom LIMIT {?}, {?}", $offset*$limit, $limit);
+        
+        return array($pnb, $res->fetchAllAssoc());
+    }
+    
     function handler_vcard(&$page, $photos = null)
     {
         global $globals;
@@ -418,11 +444,7 @@ class XnetGrpModule extends PLModule
     {
         global $globals;
 
-        $page->changeTpl('xnet/groupe/inscrire.tpl');
-
-        $page->setType($globals->asso('cat'));
-        $page->assign('asso', $globals->asso());
-        $page->assign('admin', may_update());
+        new_group_open_page('xnet/groupe/inscrire.tpl');
 
         if (!$globals->asso('inscriptible'))
                 $page->kill("Il n'est pas possible de s'inscire en ligne à ce "
@@ -543,74 +565,6 @@ class XnetGrpModule extends PLModule
         }
     }
 
-    function handler_paiement(&$page)
-    {
-        global $globals;
-
-        new_group_page('xnet/groupe/telepaiement.tpl');
-
-        $res = XDB::query(
-                "SELECT id, text
-                  FROM {$globals->money->mpay_tprefix}paiements
-                 WHERE asso_id = {?} AND NOT FIND_IN_SET(flags, 'old')
-              ORDER BY id DESC", $globals->asso('id'));
-        $tit = $res->fetchAllAssoc();
-        $page->assign('titres', $tit);
-
-        $order = Env::v('order', 'timestamp');
-        $orders = array('timestamp', 'nom', 'promo', 'montant');
-        if (!in_array($order, $orders)) {
-            $order = 'timestamp';
-        }
-        $inv_order = Env::v('order_inv', 0);
-        $page->assign('order', $order);
-        $page->assign('order_inv', !$inv_order);
-
-        if ($order == 'timestamp') {
-            $inv_order = !$inv_order;
-        }
-
-        if ($inv_order) {
-            $inv_order = ' DESC';
-        } else {
-            $inv_order = '';
-        }
-        if ($order == 'montant') {
-            $order = 'LENGTH(montant) '.$inv_order.', montant';
-        }
-
-        $orderby = 'ORDER BY '.$order.$inv_order;
-        if ($order != 'nom') {
-            $orderby .= ', nom'; $inv_order = '';
-        }
-        $orderby .= ', prenom'.$inv_order;
-        if ($order != 'timestamp') {
-            $orderby .= ', timestamp DESC';
-        }
-
-        if (may_update()) {
-            $trans = array();
-            foreach($tit as $foo) {
-                $pid = $foo['id'];
-                $res = XDB::query(
-                        "SELECT  IF(u.nom_usage<>'', u.nom_usage, u.nom) AS nom,
-                                 u.prenom, u.promo, a.alias, timestamp AS `date`, montant
-                           FROM  {$globals->money->mpay_tprefix}transactions AS t
-                     INNER JOIN  auth_user_md5  AS u ON ( t.uid = u.user_id )
-                     INNER JOIN  aliases        AS a ON ( t.uid = a.id AND a.type='a_vie' )
-                          WHERE  ref = {?} ".$orderby, $pid);
-                $trans[$pid] = $res->fetchAllAssoc();
-                $sum = 0;
-                foreach ($trans[$pid] as $i => $t) {
-                    $sum += strtr(substr($t['montant'], 0, strpos($t['montant'], 'EUR')), ',', '.');
-                }
-                $trans[$pid][] = array('nom' => 'somme totale',
-                                       'montant' => strtr($sum, '.', ',').' EUR');
-            }
-            $page->assign('trans', $trans);
-        }
-    }
-
     function handler_admin_annuaire(&$page)
     {
         global $globals;
@@ -919,13 +873,15 @@ class XnetGrpModule extends PLModule
                              INNER JOIN groupex.announces AS a ON ( (a.promo_min = 0 OR a.promo_min <= u.promo)
                                                                   AND (a.promo_max = 0 OR a.promo_max <= u.promo))
                              INNER JOIN auth_user_md5 AS u2 ON (u2.user_id = a.user_id)
-                                  WHERE u.user_id = {?} AND peremption >= NOW()", $uid);
+                             WHERE u.user_id = {?} AND peremption >= NOW() AND a.asso_id = {?}",
+                                   $uid, $globals->asso('id'));
         } else {
             $rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.create_date,
                                          IF(u.nom_usage != '', u.nom_usage, u.nom) AS nom, u.prenom, u.promo
                                     FROM groupex.announces AS a
                              INNER JOIN auth_user_md5 AS u USING(user_id)
-                                   WHERE FIND_IN_SET(a.flags, 'public') AND peremption >= NOW()");
+                             WHERE FIND_IN_SET(a.flags, 'public') AND peremption >= NOW() AND a.asso_id = {?}",
+                                  $globals->asso('id'));
         }
         $page->assign('asso', $globals->asso());
         $page->assign('rss', $rss);