move some functions into platal.php
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Thu, 13 Jul 2006 21:37:41 +0000 (21:37 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Thu, 13 Jul 2006 21:37:41 +0000 (21:37 +0000)
always load 'core' module.

git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@466 839d8a87-29fc-0310-9880-83ba4fa771e5

classes/Platal.php
htdocs/index.php
modules/core.php
modules/platal.php

index 858c8ac..1594acd 100644 (file)
@@ -28,7 +28,9 @@ class Platal
 {
     var $__mods;
     var $__hooks;
+    var $__usens;
 
+    var $ns;
     var $path;
     var $argv;
 
@@ -39,14 +41,21 @@ class Platal
 
         $this->__mods  = array();
         $this->__hooks = array();
+        $this->__usens = false;
+        $this->ns      = '';
 
+        array_unshift($modules, 'core');
         foreach ($modules as $module) {
-            $m =& PLModule::factory($this, $module);
-            $this->__mods[$module] =& $m;
+            $this->__mods[$module] = $m = PLModule::factory($this, $module);
             $this->__hooks += $m->handlers();
         }
     }
 
+    function use_namespace()
+    {
+        $this->__usens = true;
+    }
+
     function find_hook()
     {
         $p = $this->path;
@@ -79,6 +88,13 @@ class Platal
         $hook = $this->find_hook();
 
         if (is_null($hook)) {
+            if ($this->__usens) {
+                $i = strpos($this->path, '/');
+                if ($i) {
+                    $this->ns   = $this->path;
+                    $this->path = 'index';
+                }
+            }
             return PL_NOT_FOUND;
         }
 
index fba867c..5021d3e 100644 (file)
@@ -24,9 +24,9 @@ require_once 'xorg.inc.php';
 require_once dirname(__FILE__).'/../classes/Platal.php';
 require_once dirname(__FILE__).'/../classes/PLModule.php';
 
-$platal = new Platal('auth', 'banana', 'carnet', 'core', 'email', 'events',
-                     'geoloc', 'marketing', 'payment', 'platal', 'profile',
-                     'register', 'search', 'stats', 'trezo');
+$platal = new Platal('auth', 'banana', 'carnet', 'email', 'events', 'geoloc',
+                     'marketing', 'payment', 'platal', 'profile', 'register',
+                     'search', 'stats', 'trezo');
 $platal->run();
 
 ?>
index 0ce18ee..c6a5911 100644 (file)
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************/
 
-function bugize($list)
-{
-    $list = split(',', $list);
-    $ans  = array();
-
-    foreach ($list as $bug) {
-        $clean = str_replace('#', '', $bug);
-        $ans[] = "<a href='http://trackers.polytechnique.org/task/$clean'>$bug</a>";
-    }
-
-    return join(',', $ans);
-}
-
-
 class CoreModule extends PLModule
 {
     function handlers()
@@ -40,9 +26,6 @@ class CoreModule extends PLModule
         return array(
             '403'         => $this->make_hook('403', AUTH_PUBLIC),
             '404'         => $this->make_hook('404', AUTH_PUBLIC),
-            'exit'        => $this->make_hook('exit', AUTH_PUBLIC),
-            'cacert.pem'  => $this->make_hook('cacert', AUTH_PUBLIC),
-            'changelog'   => $this->make_hook('changelog', AUTH_PUBLIC),
             'purge_cache' => $this->make_hook('purge_cache', AUTH_COOKIE, 'admin'),
 
             'valid.html'  => $this->make_hook('valid', AUTH_PUBLIC),
@@ -64,69 +47,6 @@ class CoreModule extends PLModule
         return PL_OK;
     }
 
-    function handler_cacert(&$page)
-    {
-        $data = file_get_contents('/etc/ssl/xorgCA/cacert.pem');
-        header('Content-Type: application/x-x509-ca-cert');
-        header('Content-Length: '.strlen($data));
-        echo $data;
-        exit;
-    }
-
-    function handler_changelog(&$page)
-    {
-        $page->changeTpl('changeLog.tpl');
-
-        $clog = htmlentities(file_get_contents(dirname(__FILE__).'/../ChangeLog'));
-        $clog = preg_replace('!(#[0-9]+(,[0-9]+)*)!e', 'bugize("\1")', $clog);
-        $page->assign('ChangeLog', $clog);
-    }
-
-    function handler_exit(&$page, $level = null)
-    {
-        if (Session::has('suid')) {
-            if (Session::has('suid')) {
-                $a4l  = Session::get('forlife');
-                $suid = Session::getMixed('suid');
-                $log  = Session::getMixed('log');
-                $log->log("suid_stop", Session::get('forlife') . " by " . $suid['forlife']);
-                $_SESSION = $suid;
-                Session::kill('suid');
-                redirect($globals->baseurl.'/admin/utilisateurs.php?login='.$a4l);
-            } else {
-                redirect("events");
-            }
-        }
-
-        if ($level == 'forget' || $level == 'forgetall') {
-            setcookie('ORGaccess', '', time() - 3600, '/', '', 0);
-            Cookie::kill('ORGaccess');
-            if (isset($_SESSION['log']))
-                $_SESSION['log']->log("cookie_off");
-        }
-
-        if ($level == 'forgetuid' || $level == 'forgetall') {
-            setcookie('ORGuid', '', time() - 3600, '/', '', 0);
-            Cookie::kill('ORGuid');
-            setcookie('ORGdomain', '', time() - 3600, '/', '', 0);
-            Cookie::kill('ORGdomain');
-        }
-
-        if (isset($_SESSION['log'])) {
-            $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
-            $_SESSION['log']->log('deconnexion',$ref);
-        }
-
-        XorgSession::destroy();
-
-        if (Get::has('redirect')) {
-            redirect(rawurldecode(Get::get('redirect')));
-        } else {
-            $page->changeTpl('exit.tpl');
-        }
-        return PL_OK;
-    }
-
     function handler_403(&$page)
     {
         header('HTTP/1.0 403 Forbidden');
index e8f2acd..737d5ee 100644 (file)
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************/
 
+function bugize($list)
+{
+    $list = split(',', $list);
+    $ans  = array();
+
+    foreach ($list as $bug) {
+        $clean = str_replace('#', '', $bug);
+        $ans[] = "<a href='http://trackers.polytechnique.org/task/$clean'>$bug</a>";
+    }
+
+    return join(',', $ans);
+}
+
+
 class PlatalModule extends PLModule
 {
     function handlers()
     {
         return array(
+            'cacert.pem'  => $this->make_hook('cacert', AUTH_PUBLIC),
+            'changelog'   => $this->make_hook('changelog', AUTH_PUBLIC),
+
             // Preferences thingies
             'prefs'     => $this->make_hook('prefs',     AUTH_COOKIE),
             'prefs/rss' => $this->make_hook('prefs_rss', AUTH_COOKIE),
@@ -36,12 +53,31 @@ class PlatalModule extends PLModule
             'tmpPWD'        => $this->make_hook('tmpPWD',    AUTH_PUBLIC),
             'password/smtp' => $this->make_hook('smtppass',  AUTH_MDP),
             'recovery'      => $this->make_hook('recovery',  AUTH_PUBLIC),
+            'exit'          => $this->make_hook('exit', AUTH_PUBLIC),
 
             // happenings related thingies
             'rss'         => $this->make_hook('rss',       AUTH_PUBLIC),
         );
     }
 
+    function handler_cacert(&$page)
+    {
+        $data = file_get_contents('/etc/ssl/xorgCA/cacert.pem');
+        header('Content-Type: application/x-x509-ca-cert');
+        header('Content-Length: '.strlen($data));
+        echo $data;
+        exit;
+    }
+
+    function handler_changelog(&$page)
+    {
+        $page->changeTpl('changeLog.tpl');
+
+        $clog = htmlentities(file_get_contents(dirname(__FILE__).'/../ChangeLog'));
+        $clog = preg_replace('!(#[0-9]+(,[0-9]+)*)!e', 'bugize("\1")', $clog);
+        $page->assign('ChangeLog', $clog);
+    }
+
     function __set_rss_state($state)
     {
         global $globals;
@@ -329,6 +365,51 @@ Mail envoy
         return PL_OK;
     }
 
+    function handler_exit(&$page, $level = null)
+    {
+        if (Session::has('suid')) {
+            if (Session::has('suid')) {
+                $a4l  = Session::get('forlife');
+                $suid = Session::getMixed('suid');
+                $log  = Session::getMixed('log');
+                $log->log("suid_stop", Session::get('forlife') . " by " . $suid['forlife']);
+                $_SESSION = $suid;
+                Session::kill('suid');
+                redirect($globals->baseurl.'/admin/utilisateurs.php?login='.$a4l);
+            } else {
+                redirect("events");
+            }
+        }
+
+        if ($level == 'forget' || $level == 'forgetall') {
+            setcookie('ORGaccess', '', time() - 3600, '/', '', 0);
+            Cookie::kill('ORGaccess');
+            if (isset($_SESSION['log']))
+                $_SESSION['log']->log("cookie_off");
+        }
+
+        if ($level == 'forgetuid' || $level == 'forgetall') {
+            setcookie('ORGuid', '', time() - 3600, '/', '', 0);
+            Cookie::kill('ORGuid');
+            setcookie('ORGdomain', '', time() - 3600, '/', '', 0);
+            Cookie::kill('ORGdomain');
+        }
+
+        if (isset($_SESSION['log'])) {
+            $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
+            $_SESSION['log']->log('deconnexion',$ref);
+        }
+
+        XorgSession::destroy();
+
+        if (Get::has('redirect')) {
+            redirect(rawurldecode(Get::get('redirect')));
+        } else {
+            $page->changeTpl('exit.tpl');
+        }
+        return PL_OK;
+    }
+
     function handler_rss(&$page, $user = null, $hash = null)
     {
         global $globals;