$result = file_get_contents( "http://api.socialmediatools.eu/stackposts2.php?".http_build_query( $params ) );
if(!$result){
ms([
"status" => "error",
"message" => "There is a problem on your request. Please make sure your server enabled enough permission to can install."
]);
}
$result_array = json_decode( $result , 1 );
if( is_array( $result_array ) && isset( $result_array['status'] ) && $result_array['status'] == "error"){
ms($result);
}
$result = base64_decode( $result );
$result = explode("{|}", $result);
if( count( $result ) != 5 ){
ms([
"status" => "error",
"message" => "There was a problem during installation"
]);
}
if (!extension_loaded('zip')) {
ms([
"status" => "error",
"message" => "Please enable zip extension on your server to can install"
]);
}
$status = $result[0];
$item_id = $result[1];
$install_path = "../".$result[2];
$version = $result[3];
$data = $result[4];
$file = TMP_PATH.md5(rand()).".temp";
$fp = @fopen($file, 'w');
@fwrite( $fp, base64_decode( $data ) );
@fclose($fp);
if(!is_file($file) || !is_readable(TMP_PATH)){
ms([
"status" => "error",
"message" => "Can't read input"
]);
}
if(!is_dir(TMP_PATH) || !is_writable(TMP_PATH)){
ms([
"status" => "error",
"message" => "Can't write to target"
]);
}
//Extract file
$zip = new ZipArchive;
$response = @$zip->open($file);
$file_count = @$zip->numFiles;
if ($response === FALSE) {
ms([
"status" => "error",
"message" => "There was a problem during installation"
]);
}
if(!$file_count){
ms([
"status" => "error",
"message" => "There was a problem during installation"
]);
}
@$zip->extractTo($install_path);
@$zip->close();
if( file_exists( $install_path."database.sql" ) ){
$mysqli = @new mysqli($db_host, $db_user, $db_pass, $db_name);
$sql = @file_get_contents($install_path."database.sql");
$sql = str_replace('ADMIN_FULLNAME', $admin_fullname, $sql);
$sql = str_replace('ADMIN_EMAIL', $admin_email, $sql);
$sql = str_replace('ADMIN_PASSWORD', md5($admin_pass), $sql);
$sql = str_replace('ADMIN_TIMEZONE', $admin_timezone, $sql);
$sql = str_replace('ADMIN_IDS', md5(rand()), $sql);
$mysqli->multi_query($sql);
do {} while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)); $mysqli->close();
$mysqli = @new mysqli($db_host, $db_user, $db_pass, $db_name);
$sql = "INSERT INTO sp_purchase_manager (ids, item_id, purchase_code, version) VALUES ('".md5(rand())."', '".$item_id."', '".$purchase_code."', '".$version."')";
if ($mysqli->query($sql) !== TRUE) {
ms(array(
"status" => "success",
"message" => "Error: " . $sql . "<br>" . $conn->error
));
}
$mysqli->close();
$config_file = str_replace('enter_db_host', $db_host, $config_file);
$config_file = str_replace('enter_db_user', $db_user, $config_file);
$config_file = str_replace('enter_db_pass', $db_pass, $config_file);
$config_file = str_replace('enter_db_name', $db_name, $config_file);
$config_file = str_replace('enter_encryption_key', md5(rand()), $config_file);
$config_file = str_replace('enter_timezone', $admin_timezone, $config_file);
file_put_contents($config_file_path, $config_file);
$index_file_path = APPPATH."../../index.php";
$index_file = file_get_contents($index_file_path);
$index_file = preg_replace('/installation/', 'production', $index_file, 1);
file_put_contents($index_file_path, $index_file);
}
//Remove Install
@unlink($file);
@unlink($install_path."database.sql");
ms(array(
"status" => "success"
));