public static function get_instance()
 {
     if (!isset(self::$instance)) {
         self::$instance = new HaddockProjectOrganisation_ConfigDBManager();
     }
     return self::$instance;
 }
 /**
  * Returns the variable that is saved in one of the config files
  * for this module.
  * 
  * The element names string should be like UNIX file names, e.g.
  *
  * '/foo/bar/gaz'
  * 
  * First the method checks if a value corresponding to the string for
  * this module has been set in the config DB.
  * 
  * If a value is not found, the XML files are searched. 
  * This should not be allowed to happen on a live site as it might be slow.
  * Cache the values in the DB file using the 'assemble-config-db' script.
  */
 protected function get_config_value($element_names_str, $required = TRUE)
 {
     $cdbm = HaddockProjectOrganisation_ConfigDBManager::get_instance();
     $cdb_str = $this->get_module_prefix_string() . $element_names_str;
     if ($cdbm->exists($cdb_str)) {
         return $cdbm->fetch($cdb_str);
     }
     #$element_names_str = ltrim('/', $element_names_str);
     return $this->get_config_value_arr(explode('/', $element_names_str), $required);
 }