Add Platal::load(module, include_file = null) to load a module or an include of this...
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Sat, 23 Aug 2008 12:39:28 +0000 (14:39 +0200)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Sat, 23 Aug 2008 12:39:28 +0000 (14:39 +0200)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
classes/platal.php
classes/plmodule.php

index 858ab98..97b2e42 100644 (file)
@@ -336,6 +336,24 @@ abstract class Platal
         }
     }
 
+    public static function load($modname, $include = null)
+    {
+        global $platal;
+        $modname = strtolower($modname);
+        if (isset($platal->__mods[$modname])) {
+            if (is_null($include)) {
+                return;
+            }
+            $platal->__mods[$modname]->load($include);
+        } else {
+            if (is_null($include)) {
+                require_once PLModule::path($modname) . '.php';
+            } else {
+                require_once PLModule::path($modname) . '/' . $include;
+            }
+        }
+    }
+
     static public function &page()
     {
         global $platal;
index ec1e5f0..4e1229b 100644 (file)
@@ -66,7 +66,7 @@ abstract class PLModule
 
     /* static functions */
 
-    public static function factory($modname)
+    public static function path($modname)
     {
         global $globals;
         if ($modname == 'core') {
@@ -74,6 +74,12 @@ abstract class PLModule
         } else {
             $mod_path = $globals->spoolroot . '/modules/' . $modname;
         }
+        return $mod_path;
+    }
+
+    public static function factory($modname)
+    {
+        $mod_path = self::path($modname);
         $class    = ucfirst($modname) . 'Module';
 
         require_once $mod_path . '.php';