Repository URL to install this package:
|
Version:
3.2.0 ▾
|
<?php
namespace Evsmash\Events\Http\Admin;
use Evsmash\Core\Http\Base;
use Evsmash\Core\Files\Upload;
use Evsmash\Core\Helpers\Str;
use Evsmash\Core\Input\Post;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Events\Event;
use Evsmash\Events\EventsCategory;
use Evsmash\Events\EventsParameter;
use Evsmash\Events\EventsType;
class Events extends Base {
// index
public function index() {
// elements
if(!Route::get('category')) {
// standard
$elements = Event::params()->paginate(Route::limit(100));
} else {
// category
$category = Element::check(new EventsCategory, Route::get('category'));
$elements = $category->events()->params()->published()->orderBy('created_at', 'desc')->paginate(Route::limit(100));
}
// bar
$bar = [
'create' => '/events/create',
'search' => true,
'params' => [
['Type', 'type', Element::flat(new EventsType)],
['Category', 'category', EventsCategory::where('depth', '>', 0)->orderBy('name', 'asc')->pluck('name', 'id')],
['Promoted', 'promoted', ['true' => 'Yes', 'false' => 'No']],
['Published', 'published', ['true' => 'Yes', 'false' => 'No']]
],
'order' => ['id', 'name'],
'summary' => $elements,
'stats' => [
'views' => $elements->sum('views')
]
];
// view
$this->view(compact(['elements', 'bar']));
}
// create
public function create() {
// view
$this->view();
}
// insert
public function insert() {
// slug
Post::set('slug', Str::slug(Post::get('name')));
// insert
Element::insert(new Event, ['name', 'slug', 'date', 'time', 'date_end', 'place', 'type_id'], ['time' => 'nullable', 'date_end' => 'nullable']);
}
// edit
public function edit() {
// element
$element = Element::check(new Event);
// parameters
$parameters = EventsParameter::form($element);
// view
$this->view(compact(['element', 'parameters']));
}
// update
public function update() {
// element
$element = Element::check(new Event);
// categories
Element::updatem2m(new Event, 'categories');
// parameters
EventsParameter::set($element, Post::get('parameters', 'none'));
// photo
if(Post::get('remove_photo')) {
$element = Element::check(new Event);
$element->photo = '';
$element->save();
}
// slug
Post::set('slug', Str::slug(Post::get('slug')));
// sneak
if(empty(Post::get('sneak'))) {
Post::set('sneak', Str::words(Post::get('content'), 100));
}
// update
Element::update(new Event, ['name', 'slug', 'content', 'sneak', 'date', 'time', 'date_end', 'place', 'type_id'], ['content' => 'html', 'time' => 'nullable', 'date_end' => 'nullable']);
}
// photo
public function photo() {
// upload
$file = Upload::file(cfg('upload-images'));
// update
$element = Element::check(new Event);
$element->photo = $file->path;
$element->save();
}
// thick
public function thick() {
Element::thick(new Event, ['promoted', 'published']);
}
// delete
public function delete() {
Element::delete(new Event);
}
}