Ajout de oci-framawiki.php
This commit is contained in:
parent
f2fa4bd35b
commit
e00f47a901
|
@ -0,0 +1,150 @@
|
|||
<?php
|
||||
|
||||
function dir_is_empty($dirname)
|
||||
{
|
||||
// Check if directory is empty but ignore install script
|
||||
if (!is_dir($dirname)) return false;
|
||||
foreach (scandir($dirname) as $file) {
|
||||
if (!in_array($file, array('.','..','oci-framawiki.php'))) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If install directory is not empty stop processing
|
||||
$dest = dirname(__FILE__).'/';
|
||||
if (dir_is_empty($dest) === false) {
|
||||
echo nl2br("Le dossier httpdocs/ doit être vide pour y migrer votre Framasite.\r\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
// We have a TAR file !
|
||||
if($_FILES["tar_file"]["name"]) {
|
||||
$filename = $_FILES["tar_file"]["name"];
|
||||
$sourcetar = $_FILES["tar_file"]["tmp_name"];
|
||||
$type = $_FILES["tar_file"]["type"];
|
||||
|
||||
$name = explode(".", $filename);
|
||||
$accepted_types = array('application/x-tar', 'multipart/x-tar');
|
||||
foreach($accepted_types as $mime_type) {
|
||||
if($mime_type == $type) {
|
||||
$okay = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$continue = strtolower($name[1]) == 'tar' ? true : false;
|
||||
if(!$continue) {
|
||||
$message = "Votre fichier n'est pas une archive TAR.";
|
||||
}
|
||||
|
||||
/* PHP current path */
|
||||
$filenoext = basename ($filename, '.tar'); // absolute path (lowercase)
|
||||
$filenoext = basename ($filenoext, '.TAR'); // absolute path (uppercase)
|
||||
|
||||
$targetdir = $path . $filenoext; // target directory
|
||||
$targettar = $path . $filename; // target tar file
|
||||
|
||||
// Download latest CMS zip with cURL
|
||||
$ch = curl_init();
|
||||
$source = "https://ouvaton.coop/oci/framawiki.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 nl2br("Une erreur vient de se produire. Rechargez la page pour essayer à nouveau, ou contactez l'assistance si le problème persiste.\r\n");
|
||||
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 = "framawiki.zip";
|
||||
$file = fopen($destination, "w+");
|
||||
fputs($file, $data);
|
||||
fclose($file);
|
||||
curl_close($ch);
|
||||
|
||||
// Unzip archive file
|
||||
$file = 'framawiki.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");}
|
||||
// Zip archive is not needed anymore
|
||||
unlink('framawiki.zip');
|
||||
|
||||
/* here it is really happening */
|
||||
if(move_uploaded_file($sourcetar, $targettar)) {
|
||||
try {
|
||||
$phar = new PharData($targettar);
|
||||
$phar->extractTo('.', null, true);
|
||||
echo ('File extracted');
|
||||
} catch (Exception $e) {
|
||||
echo nl2br("Une erreur vient de se produire lors de l'extraction de l'archive.\r\n");
|
||||
}
|
||||
unlink($targettar);
|
||||
} else {
|
||||
echo nl2br("Une erreur vient de se produire lors du téléversement de votre fichier.\r\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
// CKGEdit plugin must be deactivated
|
||||
$disable_ckgedit = <<<'EOD'
|
||||
$plugins['ckgedit'] = 0;
|
||||
EOD;
|
||||
$set_french = file_put_contents('conf/plugins.local.php', $disable_ckgedit.PHP_EOL , FILE_APPEND | LOCK_EX);
|
||||
|
||||
// Redirecting user to CMS install page
|
||||
$host = $_SERVER['HTTP_HOST'];
|
||||
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
|
||||
header("Location: http://$host$uri/");
|
||||
// Remove script
|
||||
unlink(__FILE__);
|
||||
exit;
|
||||
default:
|
||||
// If any HTTP error stop processing
|
||||
echo nl2br("Une erreur vient de se produire. Rechargez la page pour essayer à nouveau, ou contactez l'assistance si le problème persiste.\r\n");
|
||||
echo nl2br("Code HTTP : ".$http_code."\r\n");
|
||||
curl_close($ch);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>Migration de votre Framasite chez Ouvaton</title>
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
body{background:#f0f0f0;font-family:Arial,sans-serif;text-align:center}.vert{color:#6c7e31;fill:#889e3a;}.violet{color:#725794;fill:#977ac2;}header img{display:block;margin-left:auto;margin-right:auto}main article p{width:80%;margin-left:10%;margin-bottom:2%}input[type=submit]{background-color:#4CAF50;border:none;color:white;padding:10px 24px;text-decoration:none;margin:16px 2px 0;border-radius:16px;cursor:pointer;}@media screen and (min-width:600px){main article p{width:50%;margin-left:25%}}@media screen and (min-width:1200px){main article p{width:30%;margin-left:35%}}
|
||||
</style>
|
||||
<header>
|
||||
<img alt="Logo Ouvaton" src="https://ouvaton.coop/wp-content/uploads/2018/04/cropped-logo-ouvaton-hd-refill-3.png">
|
||||
<h1>Importation de votre <b class="violet">Frama</b><b class="vert">site</b></a> Dokuwiki sur la plateforme Ouvaton</h1>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<p>
|
||||
<form enctype="multipart/form-data" method="post" action="">
|
||||
<label>Sélectionnez l'archive TAR de votre site :<br />
|
||||
<input type="file" name="tar_file" /></label>
|
||||
<br />
|
||||
<input type="submit" name="submit" value="Envoyer" />
|
||||
</form>
|
||||
</p>
|
||||
<p>Il faut plusieurs dizaines de secondes pour mettre en place votre site.<br />
|
||||
<strong>Ne rechargez ou ne quittez pas la page</strong> avant que votre site ne s'affiche !<br />
|
||||
En cas de problème, contactez-nous sur assistance@listes.ouvaton.coop !</p>
|
||||
</article>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue