(2003-2009) * @author Froxlor team (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Functions * @version $Id$ */ function loadConfigArrayDir() { // Workaround until we use gettext global $lng; // we now use dynamic function parameters // so we can read from more than one directory // and still be valid for old calls $numargs = func_num_args(); if($numargs <= 0) { return null; } // variable that holds all dirs that will // be parsed for inclusion $configdirs = array(); // if one of the parameters is an array // we assume that this is a list of // setting-groups to be selected $selection = null; for($x=0;$x<$numargs;$x++) { $arg = func_get_arg($x); if(is_array($arg) && isset($arg[0])) { $selection = $arg; } else { $configdirs[] = $arg; } } $data = array(); $data_files = array(); $has_data = false; foreach($configdirs as $data_dirname) { if(is_dir($data_dirname)) { $data_dirhandle = opendir($data_dirname); while(false !== ($data_filename = readdir($data_dirhandle))) { if($data_filename != '.' && $data_filename != '..' && $data_filename != '' && substr($data_filename, -4 ) == '.php') { $data_files[] = $data_dirname . $data_filename; } } $has_data = true; } } if($has_data) { sort($data_files); foreach($data_files as $data_filename) { $data = array_merge_recursive($data, include($data_filename)); } } // if we have specific setting-groups // to select, we'll handle this here // (this is for multiserver-client settings) $_data = array(); if($selection != null && is_array($selection) && isset($selection[0]) ) { $_data['groups'] = array(); foreach($data['groups'] as $group => $data) { if(in_array($group, $selection)) { $_data['groups'][$group] = $data; } } $data = $_data; } return $data; }