Merge branch 'platal-0.9.16'
[platal.git] / include / globals.inc.php.in
index ffa6883..4fc17fa 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2007 Polytechnique.org                              *
+ *  Copyright (C) 2003-2008 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -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);