Repository URL to install this package:
|
Version:
3.2.0 ▾
|
<?php
namespace Evsmash\Events\Http;
use Evsmash\Core\Http\Base;
use Evsmash\Core\Dec\Thumb;
use Evsmash\Core\Helpers\Str;
use Evsmash\Core\Input\Flash;
use Evsmash\Core\Simpy\Element;
use Evsmash\Core\System\Trans;
use Evsmash\Events\Event;
use Evsmash\Events\EventsCategory;
use Evsmash\Events\EventsType;
class Events extends Base {
// index
public function index() {
// elements
$elements = Event::upcoming()->params()->published()->with('type')->with('categories')->paginate($this->settings->limit);
// trans
Trans::get($elements, 'events');
// view
$this->viewTitle('Events');
$this->view(compact(['elements']));
}
// type
public function type() {
// type
$type = Element::check(new EventsType);
// element
$elements = Event::upcoming()->params()->published()->where('type_id', $type->id)->with('type')->with('categories')->paginate($this->settings->limit);
// trans
Trans::get($type, 'events_types');
Trans::get($elements, 'events');
// flash
Flash::set('type', $type->id);
// view
$this->viewTitle($type->name);
$this->view(compact(['elements']), 'evsmash/events/events/index');
}
// category
public function category() {
// category
$category = Element::check(new EventsCategory);
// elements
$elements = $category->events()->upcoming()->params()->published()->with('type')->with('categories')->paginate($this->settings->limit);
// trans
Trans::get($category, 'events_categories');
Trans::get($elements, 'events');
// flash
Flash::set('categories', [$category->id => $category->name]);
// view
$this->viewTitle($category->name);
$this->view(compact(['elements']), 'evsmash/events/events/index');
}
// promoted
public function promoted() {
// elements
$elements = Event::upcoming()->params()->promoted()->published()->with('type')->with('categories')->paginate($this->settings->limit);
// trans
Trans::get($elements, 'events');
// view
$this->viewTitle('Promoted events');
$this->view(compact(['elements']), 'evsmash/events/events/index');
}
// show
public function show() {
// element
$element = Element::check(new Event);
// allowed
Element::allowed($element, 'published');
// stats
Element::stats($element);
// trans
Trans::get($element, 'events');
// flash
Flash::set('type', $element->type_id);
Flash::set('categories', $element->categories->pluck('name', 'id'));
// view
$this->viewTitle($element->name);
$this->viewDescription($element->sneak);
$this->viewPhoto(Thumb::url($element->photo, '1000xauto', ['upsize' => true]));
$this->view(compact(['element']));
}
}