[Fusionforge-commits] r9071 - in trunk: gforge/common/include tests/unit/config

Roland Mas lolando at libremir.placard.fr.eu.org
Mon Mar 15 14:04:20 CET 2010


Author: lolando
Date: 2010-03-15 14:04:20 +0100 (Mon, 15 Mar 2010)
New Revision: 9071

Modified:
   trunk/gforge/common/include/config.php
   trunk/tests/unit/config/ConfigTests.php
Log:
Added method to set global variables from config items.  With unit tests.

Modified: trunk/gforge/common/include/config.php
===================================================================
--- trunk/gforge/common/include/config.php	2010-03-15 13:04:12 UTC (rev 9070)
+++ trunk/gforge/common/include/config.php	2010-03-15 13:04:20 UTC (rev 9071)
@@ -71,21 +71,28 @@
 	$fusionforge_config = new FusionForgeConfig () ;
 }
 
-function fusionforge_get_config ($var, $section = 'core') {
+function fusionforge_get_config ($var, $section = NULL) {
 	$c = FusionForgeConfig::get_instance () ;
 
+	if ($section == NULL) {
+		$section = 'core' ;
+	}
+
 	return $c->get_value ($section, $var) ;
 }
 
-function fusionforge_get_config_array ($arr) {
+function fusionforge_get_config_array () {
 	$c = FusionForgeConfig::get_instance () ;
 
 	$ret = array () ;
 
-	foreach ($arr as $item) {
-		$var = $arr[0] ;
-		if (isset ($arr[1])) {
-			$section = $arr[1] ;
+	foreach (func_get_args() as $item) {
+		if (! is_array ($item)) {
+			$item = array ($item) ;
+		}
+		$var = $item[0] ;
+		if (isset ($item[1])) {
+			$section = $item[1] ;
 		} else {
 			$section = 'core' ;
 		}
@@ -95,6 +102,29 @@
 	return $ret ;
 }
 
+function fusionforge_set_vars_from_config () {
+	$c = FusionForgeConfig::get_instance () ;
+
+	foreach (func_get_args() as $item) {
+		$section = NULL ;
+		if (is_array ($item)) {
+			$var = $item[0] ;
+			$x = $var ;
+			if (isset ($item[1])) {
+				$section = $item[1] ;
+				$x = $section.'__'.$var ;
+			}
+		} else {
+			$var = $item ;
+			$x = $item ;
+		}
+
+		global $$x ;
+		$$x = fusionforge_get_config ($var, $section) ;
+	}
+}
+
+
 function fusionforge_define_config_item ($var, $section, $default) {
 	$c = FusionForgeConfig::get_instance () ;
 

Modified: trunk/tests/unit/config/ConfigTests.php
===================================================================
--- trunk/tests/unit/config/ConfigTests.php	2010-03-15 13:04:12 UTC (rev 9070)
+++ trunk/tests/unit/config/ConfigTests.php	2010-03-15 13:04:20 UTC (rev 9071)
@@ -19,14 +19,27 @@
 	public function testBasicConfig()
 	{
 		fusionforge_define_config_item ('forge_name', 'core', 'default') ;
+		fusionforge_define_config_item ('user_registration_restricted', 'core', true) ;
 
 		$this->assertEquals('default', fusionforge_get_config ('forge_name'));
 		$this->assertEquals('default', fusionforge_get_config ('forge_name', 'core'));
+		$this->assertTrue(fusionforge_get_config ('user_registration_restricted'));
 
 		fusionforge_read_config_file (dirname(__FILE__) . '/../../../gforge/etc/fusionforge.ini') ;
 
 		$this->assertEquals('FusionForge', fusionforge_get_config ('forge_name'));
 		$this->assertEquals('FusionForge', fusionforge_get_config ('forge_name', 'core'));
+		$this->assertEquals('', fusionforge_get_config ('user_registration_restricted'));
+
+		$arr = fusionforge_get_config_array ('forge_name', array ('user_registration_restricted', 'core')) ;
+		$this->assertEquals('FusionForge', $arr[0]);
+		$this->assertEquals('', $arr[1]);
+
+		fusionforge_set_vars_from_config ('forge_name', array ('user_registration_restricted', 'core')) ;
+		global $forge_name, $core__user_registration_restricted ;
+		$this->assertEquals('FusionForge', $forge_name);
+		$this->assertEquals('', $core__user_registration_restricted);
+
 	}
 
 	/**




More information about the Fusionforge-commits mailing list