Add a 'bootstrap' method to globals to initialize dynamic variables.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Sat, 3 Nov 2007 16:23:58 +0000 (17:23 +0100)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Sat, 3 Nov 2007 16:23:58 +0000 (17:23 +0100)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
include/globals.inc.php.in

index ffa6883..65ceed4 100644 (file)
@@ -91,7 +91,7 @@ class PlatalGlobals
             $this->read_ini_file($this->spoolroot.'/spool/conf/platal.dynamic.conf');
         }
     }
-    
+
     /** Writes an ini file separated in categories
      * @param filename the name of the file to write (overwrite existing)
      * @param categories an array of categories (array of keys and values)
@@ -112,7 +112,7 @@ class PlatalGlobals
         fwrite($f, '; vim:set syntax=dosini foldmethod=marker:'."\n");
         fclose($f);
     }
-    
+
     /** Change dynamic config file
      * @param conf array of keys and values to add or replace
      * @param category name of category to change
@@ -171,6 +171,21 @@ class PlatalGlobals
         $this->read_ini_file($dynamicfile);
     }
 
+    public function bootstrap($conf, $callback, $category = 'Core')
+    {
+        $bootstrap = false;
+        $category = strtolower($category);
+        foreach ($conf as $key) {
+            if (!isset($this->$category->$key)) {
+                $bootstrap = true;
+                break;
+            }
+        }
+        if ($bootstrap) {
+            call_user_func($callback);
+        }
+    }
+
     private function setlocale()
     {
         setlocale(LC_MESSAGES, $this->locale);