create_mode)) { $config->create_mode = decoct((string)$config->create_mode); } if (strlen($config->create_mode) == 3) { $config->create_mode = '0'.$config->create_mode; } $config_data = "$CONFIG_KEYS[$i])) { $value = $config->$CONFIG_KEYS[$i] ? 'true' : 'false'; $config_data .= $value.";\n"; }elseif($CONFIG_KEYS[$i] == 'create_mode') { $config_data .= escape_config_value($config->$CONFIG_KEYS[$i]).";\n"; }else { $config_data .= "'".escape_config_value($config->$CONFIG_KEYS[$i])."';\n"; } } $config_data .= "?>"; if (!$fp = fopen($CONFIG_FILE, 'w+')) { exit("Failed to open config file"); }elseif(!fwrite($fp, $config_data)) { exit("Failed to write to config file"); }else { return fclose($fp); } } function return_bytes($val) { $val = trim($val); $last = strtolower($val{strlen($val)-1}); switch($last) { // The 'G' modifier is available since PHP 5.1.0 case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return $val; } function install_required_modules() { global $GO_CONFIG,$GO_MODULES, $GO_SECURITY; require_once ($GO_CONFIG->class_path.'filesystem.class.inc'); $fs = new filesystem(); $modules = $fs->get_folders($GO_CONFIG->module_path); $module_count = count($modules); while($module = array_shift($modules)) { if ($module['name'] != 'CVS' && !$sql_module = $GO_MODULES->get_module($module['name'])) { $version = ''; $sort_order = '1000'; $info_file = $module['path'].'/module.info'; $module_info = $GO_MODULES->get_module_info($module['name']); $required = isset($module_info['required']) ? $module_info['required'] : false; if($required) { $version = $module_info['version']; $sort_order = isset($module_info['sort_order']) ? $module_info['sort_order'] : '1000'; $admin_menu = isset($module_info['admin_menu']) ? $module_info['admin_menu'] : '0'; $acl_read = $GO_SECURITY->get_new_acl('Module read: '.$module['name'], 0); $acl_write = $GO_SECURITY->get_new_acl('Module write: '.$module['name'], 0); if ($acl_read > 0 && $acl_write > 0) { if ($GO_SECURITY->add_group_to_acl($GO_CONFIG->group_root, $acl_write)) { if (!$GO_MODULES->add_module($module['name'], $version, $acl_read, $acl_write, $sort_order, $admin_menu)) { $feedback = '

'.$strSaveError.'

'; } } else { $GO_SECURITY->delete_acl($acl_read); $GO_SECURITY->delete_acl($acl_write); } } else { $GO_SECURITY->delete_acl($acl_read); $GO_SECURITY->delete_acl($acl_write); } } } } } ?>