install/lib/install.lib.php | ●●●●● patch | view | raw | blame | history | |
install/lib/installer_base.lib.php | ●●●●● patch | view | raw | blame | history | |
install/update.php | ●●●●● patch | view | raw | blame | history |
install/lib/install.lib.php
@@ -402,4 +402,42 @@ wf($xinetd_conf, $contents); } //* Converts a ini string to array function ini_to_array($ini) { $config = ''; $ini = str_replace("\r\n", "\n", $ini); $lines = explode("\n", $ini); foreach($lines as $line) { $line = trim($line); if($line != '') { if(preg_match("/^\[([\w\d_]+)\]$/", $line, $matches)) { $section = strtolower($matches[1]); } elseif(preg_match("/^([\w\d_]+)=(.*)$/", $line, $matches) && $section != null) { $item = trim($matches[1]); $config[$section][$item] = trim($matches[2]); } } } return $config; } //* Converts a config array to a string public function array_to_ini($config_array = '') { if($config_array == '') $config_array = $this->config; $content = ''; foreach($config_array as $section => $data) { $content .= "[$section]\n"; foreach($data as $item => $value) { if($item != ''){ $content .= "$item=$value\n"; } } $content .= "\n"; } return $content; } ?> install/lib/installer_base.lib.php
@@ -42,7 +42,7 @@ $this->conf = $conf; } //: TODO Implement the translation function and langauge files for the installer. //: TODO Implement the translation function and language files for the installer. public function lng($text) { return $text; @@ -153,7 +153,7 @@ } } //** Create a recors in the //** Create the server record in the database public function add_database_server_record() { $server_ini_content = rf("tpl/server.ini.master"); install/update.php
@@ -75,6 +75,8 @@ $conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; $conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; $conf['server_id'] = $conf_old["server_id"]; $inst = new installer(); echo "This application will update ISPConfig 3 on your server.\n"; @@ -128,6 +130,26 @@ system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." ".$conf['mysql']['database']." < existing_db.sql"); } //** Update server ini $tmp_server_rec = $inst->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']); $old_ini_array = ini_to_array(stripslashes($tmp_server_rec['config'])); unset($tmp_server_rec); $tpl_ini_array = ini_to_array(rf('tpl/server.ini.master')); // update the new template with the old values foreach($old_ini_array as $tmp_section_name => $tmp_section_content) { foreach($tmp_section_content as $tmp_var_name => $tmp_var_content) { $tpl_ini_array[$tmp_section_name][$tmp_var_name] = $tmp_var_content; } } $new_ini = array_to_ini($tpl_ini_array); $inst->db->query("UPDATE server SET config = '".addslashes($new_ini)."' WHERE server_id = ".$conf['server_id']); unset($old_ini_array); unset($tpl_ini_array); unset($new_ini); //** Shall the services be reconfigured during update $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes','no'),'yes');