public function saveInstanceConfig($config, $connection)
{
// Set site title
$sql = "UPDATE SystemPreferences SET value = ? WHERE varname = 'SiteTitle'";
$stmt = $connection->prepare($sql);
$stmt->bindValue(1, $config['site_title']);
$stmt->execute();
$sql = "UPDATE SystemPreferences SET value = ? WHERE varname = 'EmailFromAddress' OR varname = 'EmailContact'";
$stmt = $connection->prepare($sql);
$stmt->bindValue(1, $config['user_email']);
$stmt->execute();
// Set admin user
$user = new User();
$salt = $user->generateRandomString();
$password = implode(User::HASH_SEP, array(User::HASH_ALGO, $salt, hash(User::HASH_ALGO, $salt . $config['recheck_user_password'])));
$sql = "UPDATE liveuser_users SET Password = ?, EMail = ?, time_updated = NOW(), time_created = NOW(), status = '1', is_admin = '1' WHERE id = 1";
$stmt = $connection->prepare($sql);
$stmt->bindValue(1, $password);
$stmt->bindValue(2, $config['user_email']);
$stmt->execute();
$sql = "UPDATE SystemPreferences SET value = ? WHERE varname = 'SiteSecretKey'";
$stmt = $connection->prepare($sql);
$stmt->bindValue(1, sha1($config['site_title'] . mt_rand()));
$stmt->execute();
$sql = "INSERT INTO SystemPreferences (`varname`, `value`, `last_modified`) VALUES ('installation_id', ?, NOW())";
$stmt = $connection->prepare($sql);
$stmt->bindValue(1, sha1($config['site_title'] . mt_rand()));
$stmt->execute();
$result = $this->setupHtaccess();
if (!empty($result)) {
throw new IOException(implode(" ", $result) . " Most likely it's caused by wrong permissions.");
}
}