<?php // We have a ZIP file ! $filename = $_FILES["zip_file"]["name"]; $source = $_FILES["zip_file"]["tmp_name"]; $type = $_FILES["zip_file"]["type"]; $name = explode(".", $filename); $accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed'); foreach($accepted_types as $mime_type) { if($mime_type == $type) { $okay = true; break; } } $continue = strtolower($name[1]) == 'zip' ? true : false; if(!$continue) { echo "Votre fichier n'est pas une archive ZIP."; exit(); } // Path and name $filenoext = basename ($filename, '.zip'); $filenoext = basename ($filenoext, '.ZIP'); $targetdir = $path . $filenoext; $targetzip = $path . $filename; // Uncompress ZIP then remove file if(move_uploaded_file($source, $targetzip)) { $zip = new ZipArchive(); $x = $zip->open($targetzip); if ($x === true) { $zip->extractTo('.'); $zip->close(); unlink($targetzip); } } else { echo nl2br("Une erreur vient de se produire lors du téléversement de votre fichier.\r\n"); exit(); } // Download latest CMS zip with cURL $ch = curl_init(); $source = "https://ouvaton.coop/oci/framagrav-themes.zip"; curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); // If any cURL error stop processing if(curl_errno($ch)) { echo 'Erreur cURL : '.curl_error($ch); curl_close($ch); exit; } // Check HTTP code switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) { case 200: // Create CMS zip $destination = "themes.zip"; $file = fopen($destination, "w+"); fputs($file, $data); fclose($file); curl_close($ch); // Unzip archive file $file = 'themes.zip'; $zip = new ZipArchive; if ($zip->open($file) === TRUE) { $zip->extractTo('.'); $zip->close(); } else { echo nl2br("Une erreur lors de la décompression de l'archive vient de se produire, contactez l'assistance !\r\n"); exit; } // Zip archive is not needed anymore unlink('themes.zip'); // Website URI $host = $_SERVER['HTTP_HOST']; // Set URI $grav_custom = "custom_base_url: 'https://".$host."'"; $set_grav_custom = file_put_contents('user/config/system.yaml', $grav_custom.PHP_EOL , FILE_APPEND | LOCK_EX); // Remove scripts unlink('oci-framagrav.php'); unlink(__FILE__); echo "L'installation est terminée !"; exit; default: // If any HTTP error stop processing echo nl2br("Code HTTP : ".$http_code."\r\n"); curl_close($ch); exit; } ?>