Repository URL to install this package:
|
Version:
3.2.0 ▾
|
<?php
namespace Evsmash\Files\Http\Admin;
use Evsmash\Core\Http\Base;
use Evsmash\Core\Helpers\Header;
use Evsmash\Core\Helpers\Redirect;
use Evsmash\Core\Helpers\View;
use Evsmash\Core\Files\Upload;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Files\File;
use Evsmash\Files\FilesDirectory;
class Files extends Base {
// index
public function index() {
// simple
if(Route::get('layout') == 'simple') {
Header::xframe('SAMEORIGIN');
}
// directory
$directory = Route::get('directory');
if(!Route::get('directory')) {
$directory = 1;
}
$directory = FilesDirectory::find($directory);
// elements
$elements = File::params()->where('directory_id', $directory->id)->paginate(Route::limit(100));
// directories
$directories_all = FilesDirectory::orderBy('lft', 'asc')->get();
$directories_sub = FilesDirectory::where('parent_id', $directory->id)->orderBy('lft', 'asc')->get();
// bar
$bar = [
'search' => true,
'params' => [
['Type', 'type', ['image' => 'Image', 'video' => 'Video', 'audio' => 'Audio', 'archive' => 'Archive']],
['Extension', 'ext', File::extensions()],
],
'order' => ['id', 'name'],
'summary' => $elements
];
// view
$this->viewTitle('Files manager');
if(Route::get('layout') == 'simple') {
$this->view(compact(['elements', 'directories_all', 'directories_sub', 'directory', 'bar']), false, 'admin/simple');
} else {
$this->view(compact(['elements', 'directories_all', 'directories_sub', 'directory', 'bar']));
}
}
// add
public function add() {
// upload
$file = Upload::file(cfg('upload-files'));
// insert
$element = new File;
$element->file = $file->path;
$element->name = $file->name;
$element->type = $file->type;
$element->ext = $file->ext;
$element->directory_id = Route::get('directory');
$element->save();
}
// inline
public function inline() {
Element::inline(new File, ['name', 'description']);
}
// move
public function move() {
// element
$element = Element::check(new File, Route::get('file'));
// move
$element->directory_id = Route::get('directory');
$element->save();
// redirect
Redirect::msg('Moved');
Redirect::back();
}
// delete
public function delete() {
Element::delete(new File);
}
}