Repository URL to install this package:
|
Version:
3.4.2 ▾
|
<?php
namespace Evsmash\Banners\Http\Admin;
use Evsmash\Core\Http\Base as Base;
use Evsmash\Core\Files\Upload;
use Evsmash\Core\Helpers\Redirect;
use Evsmash\Core\Input\Post;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Banners\Banner;
use Evsmash\Banners\Exts\Bar;
class Banners extends Base {
// index
public function index() {
// elements
$elements = Banner::params()->paginate(Route::limit(100));
// bar
$bar = Bar::banners($elements);
// view
$this->view(compact(['elements', 'bar']));
}
// add
public function add() {
// upload
if($_FILES['file']['type'] == 'video/mp4') {
$file = Upload::video(cfg('evsmash-banners-upload'));
} else {
$file = Upload::file(cfg('evsmash-banners-upload'));
}
// update
$element = new Banner;
$element->banner = $file->path;
$element->name = $file->name;
$element->sort = 1000;
if(Route::get('group') !== false) {
$element->group_id = Route::get('group');
}
$element->save();
}
// edit
public function edit() {
// element
$element = Element::check(new Banner);
// bar
$bar = Bar::banner($element);
// view
$this->view(compact(['element', 'bar']));
}
// update
public function update() {
// validate
Post::validate(new Banner);
// element
$item = Element::check(new Banner);
// update
$item->name = Post::get('name');
$item->link = Post::get('link', 'domain');
$item->description = Post::get('description', 'html');
if(cfg('evsmash-banners-scheduler-publish')) {
$item->start = Post::get('start', 'nullable');
$item->end = Post::get('end', 'nullable');
}
$item->group_id = Post::get('group_id');
$item->language = Post::get('language');
$item->save();
// finish
Redirect::msg('Updated', 'success');
Redirect::post($item->id);
}
// file
public function file() {
// upload
if($_FILES['file']['type'] == 'video/mp4') {
$file = Upload::video(cfg('evsmash-banners-upload'));
} else {
$file = Upload::file(cfg('evsmash-banners-upload'));
}
// update
$element = Element::check(new Banner);
$element->banner = $file->path;
$element->save();
}
// inline
public function inline() {
Element::inline(new Banner, ['name', 'link'], ['link' => 'domain']);
}
// thick
public function thick() {
Element::thick(new Banner, ['external', 'published']);
}
// sort
public function sort() {
Element::sort(new Banner);
}
// delete
public function delete() {
Element::delete(new Banner);
}
// stats reset
public function statsReset() {
// element
$element = Element::check(new Banner);
// reset
$element->clicks = 0;
$element->save();
// redirect
Redirect::back();
}
}