//get current settings from memory $settings = LoadAvg::$_settings->general; //need to remove password 2 from this f****r ? $postsettings = $_POST['formsettings']; //what is better here - ini_merge or array_replace ? //need to test instances where we add new variables to the mix /* echo '<pre>File Settings:'; print_r($settings); echo '</pre>'; echo '<pre>Posted settings'; print_r($postsettings); echo '</pre>'; */ $replaced_settings = LoadUtility::ini_merge($settings, $postsettings); //$replaced_settings = array_replace($settings, $postsettings); /* echo '<pre>'; print_r($replaced_settings); echo '</pre>'; die; */ LoadUtility::write_php_ini($replaced_settings, $settings_file); /////////////////////////////////////////////////// //updates all the modules settings here //exit; /* * need to reload settings here after posting * as for some reason after a post the data isnt updated internally
$modSettings = LoadModules::$_settings->{$module}; //get the display_limiting setting from the settings subsection for this module $thedata = $modSettings['settings']['display_limiting']; //if we are changing mode if (isset($_GET['diskmode']) || !empty($_GET['diskmode'])) { $newmode = $_GET['diskmode']; switch ($newmode) { case "true": $mydata['settings']['display_limiting'] = "true"; $mergedsettings = LoadUtility::ini_merge($modSettings, $mydata); LoadUtility::write_module_ini($mergedsettings, $module); header("Location: " . $links); break; case "false": $mydata['settings']['display_limiting'] = "false"; $mergedsettings = LoadUtility::ini_merge($modSettings, $mydata); LoadUtility::write_module_ini($mergedsettings, $module); header("Location: " . $links); break; } } else { //if not build the links switch ($thedata) { case "true": $links = $links . "diskmode=false"; break; case "false": $links = $links . "diskmode=true"; break; } }
LoadUtility::write_php_ini($mergedsettings, $settings_file); /////////////////////////////////////////////////// //updates all the modules settings here //these are dirty dirty hacks! until we can rewrite the settings using proper api $_POST['Mysql_settings']['settings']['show_queries'] = !isset($_POST['Mysql_settings']['settings']['show_queries']) ? "false" : "true"; //echo '<pre>';var_dump($_POST);echo'</pre>'; $modules = LoadModules::$_modules; foreach ($modules as $module => $moduleStatus) { //echo $moduleName; if (isset($_POST[$module . '_settings'])) { $module_config_file = HOME_PATH . '/lib/modules/' . $module . '/' . strtolower($module) . '.ini.php'; $module_config_ini = parse_ini_file($module_config_file, true); //the array replace is deleting out missing data on posts //when the data has not been modified //$replaced_settings = array_replace($module_config_ini, $_POST[$module . '_settings']); $replaced_settings = LoadUtility::ini_merge($module_config_ini, $_POST[$module . '_settings']); LoadUtility::write_php_ini($replaced_settings, $module_config_file); //why is this here ? //$fh = fopen($module_config_file, "a"); fwrite($fh, "\n"); fclose($fh); } } //exit; /* * need to reload settings here after posting * as for some reason after a post the data isnt updated internally */ //still old here mate //$settings = LoadAvg::$_settings->general; $loadModules->updateModuleSettings(); //LoadModules::updateModuleSettings(); //not changed either as written to file above