98 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?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;
 | 
						|
}
 | 
						|
?>
 |