Your IP : 216.73.216.48
<?php
namespace app\modules\editor\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\filters\VerbFilter;
use yii\web\Controller;
use yii\web\Response;
use yii\helpers\Url;
use app\models\FileSystem;
use app\models\Members;
use app\models\forms\AddFtpConnectionForm;
use vendor\custom\MCrypt;
class IndexController extends CommonController {
public function actionIndex() {
$request = Yii::$app->request;
$operation = $request->get('operation');
$type = $request->get('type');
$id = $request->get('id');
$parent = $request->get('parent');
$text = $request->get('text');
if ($operation) {
$fs = new FileSystem($this->currentConnection->host, $this->currentConnection->port, $this->currentConnection->username, $this->currentConnection->password, $this->currentConnection->type, $this->currentConnection->dir);
try {
$rslt = null;
switch ($request->get('operation')) {
case 'get_node':
$node = isset($id) && $id !== '#' ? $id : '/';
$rslt = $fs->lst($node, (isset($id) && $id === '#'));
break;
case "get_content":
$node = isset($id) && $id !== '#' ? $id : '/';
$rslt = $fs->data($node);
break;
case 'create_node':
$node = isset($id) && $id !== '#' ? $id : '/';
$rslt = $fs->create($node, isset($text) ? $text : '', (!isset($type) || $type !== 'file'));
break;
case 'rename_node':
$node = isset($id) && $id !== '#' ? $id : '/';
$rslt = $fs->rename($node, isset($text) ? $text : '');
break;
case 'delete_node':
$node = isset($id) && $id !== '#' ? $id : '/';
$rslt = $fs->remove($node);
break;
case 'move_node':
$node = isset($id) && $id !== '#' ? $id : '/';
$parn = isset($parent) && $parent !== '#' ? $parent : '/';
$rslt = $fs->move($node, $parn);
break;
case 'copy_node':
$node = isset($id) && $id !== '#' ? $id : '/';
$parn = isset($parent) && $parent !== '#' ? $parent : '/';
$rslt = $fs->copy($node, $parn);
break;
default:
throw new Exception('Unsupported operation: ' . $request->get('operation'));
break;
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode($rslt);
} catch (Exception $e) {
header($_SERVER['SERVER_PROTOCOL'] . ' 500 Server Error');
header('Status: 500 Server Error');
echo $e->getMessage();
}
die();
}
return $this->render('index', [
'currentConnection' => $this->currentConnection,
'isConnected' => $this->isConnected,
]);
}
public function actionEditFile() {
$request = Yii::$app->request;
$response = Yii::$app->response;
$response->format = Response::FORMAT_JSON;
if ($request->method == 'POST') {
$filePath = Yii::$app->request->post('filepath');
$code = Yii::$app->request->post('code-editor');
$status = $this->serverAccess->editFileContent($this->currentConnection, $filePath, $code);
} else {
$this->redirect(Url::toRoute('index'));
}
return [
'status' => $status
];
}
}