New page to add users in the database
[platal.git] / modules / profile.php
index cd4bc6b..fe2aa43 100644 (file)
@@ -38,6 +38,7 @@ class ProfileModule extends PLModule
             'referent/search'  => $this->make_hook('ref_search', AUTH_COOKIE),
 
             'trombi'  => $this->make_hook('trombi', AUTH_COOKIE),
+            'groupes-x'        => $this->make_hook('xnet',      AUTH_COOKIE),
 
             'vcard'   => $this->make_hook('vcard',  AUTH_COOKIE),
             'admin/binets'     => $this->make_hook('admin_binets', AUTH_MDP, 'admin'),
@@ -186,13 +187,25 @@ class ProfileModule extends PLModule
         }
 
         if (empty($login)) {
+            if (preg_match('/([-a-z]+)\.([-a-z]+)\.([0-9]{4})/i', $x, $matches)) {
+                $matches = str_replace('-', '_', $matches);
+                $res = XDB::query("SELECT user_id
+                                     FROM auth_user_md5
+                                    WHERE prenom LIKE {?} AND nom LIKE {?} AND promo = {?}
+                                          AND perms = 'pending'",
+                                  $matches[1], $matches[2], $matches[3]);
+                if ($res->numRows() == 1) {
+                    $uid = $res->fetchOneCell();
+                    pl_redirect('marketing/public/' . $uid);
+                }
+            }
             return PL_NOT_FOUND;
         }
 
         $new   = Env::v('modif') == 'new';
         $user  = get_user_details($login, S::v('uid'), $view);
-        $user['freetext'] = preg_replace('/((?:https?|ftp):\/\/(?:&|\.*,*[a-z@0-9~%$£µ&i#\-+=_\/\?])*)/i',
-                                         '<a href="\\0">\\0</a>', $user['freetext']);
+        require_once('url_catcher.inc.php');
+        $user['freetext'] = url_catcher($user['freetext'], false);
         $title = $user['prenom'] . ' ' . empty($user['nom_usage']) ? $user['nom'] : $user['nom_usage'];
         $page->assign('xorg_title', $title);
 
@@ -348,7 +361,7 @@ class ProfileModule extends PLModule
             // mise a jour des champs relatifs au tab ouvert
             require_once "profil/update_{$opened_tab}.inc.php";
 
-            $log =& S::v('log');
+            $log =& $_SESSION['log'];
             $log->log('profil', $opened_tab);
             $page->assign('etat_update', 'ok');
         }
@@ -635,8 +648,6 @@ class ProfileModule extends PLModule
 
     function handler_trombi(&$page, $promo = null)
     {
-        require_once 'trombi.inc.php';
-
         $page->changeTpl('trombipromo.tpl');
         $page->assign('xorg_title', 'Polytechnique.org - Trombi Promo');
 
@@ -658,6 +669,21 @@ class ProfileModule extends PLModule
         }
     }
 
+    function handler_xnet(&$page)
+    {
+        $page->changeTpl('groupesx.tpl');
+        $page->assign('xorg_title', 'Polytechnique.org - Promo, Groupes X, Binets');
+        
+        $req = XDB::query('
+            SELECT m.asso_id, a.nom, diminutif, a.logo IS NOT NULL AS has_logo, 
+                   COUNT(e.eid) AS events, mail_domain AS lists
+              FROM groupex.membres AS m 
+        INNER JOIN groupex.asso AS a ON(m.asso_id = a.id)
+         LEFT JOIN groupex.evenements AS e ON(e.asso_id = m.asso_id AND e.archive = 0)
+             WHERE uid = {?} GROUP BY m.asso_id ORDER BY a.nom', S::i('uid'));
+        $page->assign('assos', $req->fetchAllAssoc());
+    }
+    
     function handler_vcard(&$page, $x = null)
     {
         if (is_null($x)) {