Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
evsmash/files / libs / Http / Admin / Files.php
Size: Mime:
<?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);

	}

}