Arrange templates by module
[platal.git] / modules / xnet.php
index 565c7f3..812e9ed 100644 (file)
@@ -25,81 +25,67 @@ class XnetModule extends PLModule
     {
         return array(
             'index'     => $this->make_hook('index',     AUTH_PUBLIC),
+            'login'     => $this->make_hook('login',     AUTH_MDP),
             'exit'      => $this->make_hook('exit',      AUTH_PUBLIC),
 
-            'about'     => $this->make_hook('about',     AUTH_PUBLIC),
-            'article12' => $this->make_hook('article12', AUTH_PUBLIC),
-            'article16' => $this->make_hook('article16', AUTH_PUBLIC),
-            'creategpx' => $this->make_hook('creategpx', AUTH_PUBLIC),
-            'services'  => $this->make_hook('services',  AUTH_PUBLIC),
-            'manuel'    => $this->make_hook('manuel',    AUTH_PUBLIC),
-
             'admin'     => $this->make_hook('admin',     AUTH_MDP, 'admin'),
             'groups'    => $this->make_hook('groups',    AUTH_PUBLIC),
             'groupes.php' => $this->make_hook('groups2', AUTH_PUBLIC),
             'plan'      => $this->make_hook('plan',      AUTH_PUBLIC),
+            'photo'     => $this->make_hook('photo',     AUTH_MDP),
         );
     }
 
-    function handler_index(&$page)
-    {
-        $page->changeTpl('xnet/index.tpl');
-    }
-
-    function handler_exit(&$page)
+    function handler_photo(&$page, $x = null)
     {
-        XnetSession::destroy();
-        $page->changeTpl('xnet/deconnexion.tpl');
-        $page->useMenu();
-    }
+        if (is_null($x)) {
+            return PL_NOT_FOUND;
+        }
 
-    function handler_about(&$page)
-    {
-        $page->changeTpl('xnet/apropos.tpl');
-        $page->useMenu();
-    }
+        $res = XDB::query("SELECT attachmime, attach
+                             FROM aliases
+                       INNER JOIN photo ON(id = uid)
+                            WHERE alias = {?}", $x);
 
-    function handler_article12(&$page)
-    {
-        $page->changeTpl('xnet/article12.tpl');
-        $page->useMenu();
-    }
-
-    function handler_article16(&$page)
-    {
-        $page->changeTpl('xnet/article16.tpl');
-        $page->useMenu();
+        if ((list($type, $data) = $res->fetchOneRow())) {
+            Header("Content-type: image/$type");
+            echo $data;
+        } else {
+            Header('Content-type: image/png');
+            echo file_get_contents(dirname(__FILE__).'/../htdocs/images/none.png');
+        }
+        exit;
     }
-
-    function handler_creategpx(&$page)
+    
+    function handler_index(&$page)
     {
-        $page->changeTpl('xnet/creation-groupex.tpl');
-        $page->useMenu();
+        $page->nomenu = true;
+        $page->changeTpl('xnet/index.tpl');
     }
 
-    function handler_services(&$page)
+    function handler_login(&$page)
     {
-        $page->changeTpl('xnet/services.tpl');
-        $page->useMenu();
+        $allkeys = func_get_args();
+        unset($allkeys[0]);
+        $url = join('/',$allkeys);
+        pl_redirect($url);
     }
 
-    function handler_manuel(&$page)
+    function handler_exit(&$page)
     {
-        $page->changeTpl('xnet/manuel.tpl');
-        $page->useMenu();
+        XnetSession::killSuid();
+        XnetSession::destroy();
+        $page->changeTpl('xnet/deconnexion.tpl');
     }
 
     function handler_admin(&$page)
     {
-        global $globals;
-
         new_admin_page('xnet/admin.tpl');
-        $page->useMenu();
 
         if (Get::has('del')) {
             $res = XDB::query('SELECT id, nom, mail_domain
                                            FROM groupex.asso WHERE diminutif={?}',
-                                        Get::get('del'));
+                                        Get::v('del'));
             list($id, $nom, $domain) = $res->fetchOneRow();
             $page->assign('nom', $nom);
             if ($id && Post::has('del')) {
@@ -113,11 +99,10 @@ class XnetModule extends PLModule
                                                 WHERE  alias LIKE {?}', '%@'.$domain);
                     $page->trig('suppression des alias mails');
 
-                    require_once('lists.inc.php');
-                    $client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $domain);
-                    if ($listes = $client->get_lists()) {
+                    $mmlist = new MMList(S::v('uid'), S::v('password'), $domain);
+                    if ($listes = $mmlist->get_lists()) {
                         foreach ($listes as $l) {
-                            $client->delete_list($l['list'], true);
+                            $mmlist->delete_list($l['list'], true);
                         }
                         $page->trig('mail lists surpprimées');
                     }
@@ -134,8 +119,8 @@ class XnetModule extends PLModule
 
         if (Post::has('diminutif')) {
             XDB::query('INSERT INTO groupex.asso (id,diminutif)
-                                 VALUES(NULL,{?})', Post::get('diminutif'));
-            redirect(Post::get('diminutif').'/edit');
+                                 VALUES(NULL,{?})', Post::v('diminutif'));
+            pl_redirect('../'.Post::v('diminutif').'/edit');
         }
 
         $res = XDB::query('SELECT nom,diminutif FROM groupex.asso ORDER by NOM');
@@ -144,8 +129,6 @@ class XnetModule extends PLModule
 
     function handler_plan(&$page)
     {
-        global $globals;
-
         $page->changeTpl('xnet/plan.tpl');
 
         $page->setType('plan');
@@ -187,13 +170,11 @@ class XnetModule extends PLModule
 
     function handler_groups2(&$page)
     {
-        $this->handler_groups(&$page, Get::get('cat'), Get::get('dom'));
+        $this->handler_groups(&$page, Get::v('cat'), Get::v('dom'));
     }
 
     function handler_groups(&$page, $cat = null, $dom = null)
     {
-        global $globals;
-
         if (!$cat) {
             $this->handler_index(&$page);
         }
@@ -205,23 +186,23 @@ class XnetModule extends PLModule
         $page->assign('dom', $dom);
 
         $res  = XDB::query("SELECT id,nom FROM groupex.dom
-                                       WHERE FIND_IN_SET({?}, cat) ORDER BY nom", $cat);
+                             WHERE FIND_IN_SET({?}, cat)
+                          ORDER BY nom", $cat);
         $doms = $res->fetchAllAssoc();
         $page->assign('doms', $doms);
 
         if (empty($doms)) {
-            $res = XDB::iterator("SELECT diminutif, nom FROM groupex.asso
-                                             WHERE FIND_IN_SET({?}, cat) ORDER BY nom", $cat);
+            $res = XDB::query("SELECT diminutif, nom, site FROM groupex.asso
+                                   WHERE FIND_IN_SET({?}, cat)
+                                ORDER BY nom", $cat);
+            $page->assign('gps', $res->fetchAllAssoc());
         } elseif (!is_null($dom)) {
-            $res = XDB::iterator("SELECT diminutif, nom FROM groupex.asso
-                                             WHERE FIND_IN_SET({?}, cat) AND dom={?}
-                                          ORDER BY nom", $cat, $dom);
-        } else {
-            $res = null;
+            $res = XDB::query("SELECT diminutif, nom, site FROM groupex.asso
+                                WHERE FIND_IN_SET({?}, cat) AND dom={?}
+                             ORDER BY nom", $cat, $dom);
+            $page->assign('gps', $res->fetchAllAssoc());
         }
-        $page->assign('gps', $res);
 
-        $page->useMenu();
         $page->setType($cat);
     }
 }