Repository URL to install this package:
|
Version:
3.2.0 ▾
|
<?php
namespace Evsmash\Items\Http;
use Evsmash\Core\Http\Base;
use Evsmash\Core\Dec\Thumb;
use Evsmash\Core\Input\Flash;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Core\System\Trans;
use Evsmash\Items\Item;
use Evsmash\Items\ItemsCategory;
use Evsmash\Items\ItemsParameter;
use Evsmash\Items\ItemsType;
class Items extends Base {
// index
public function index() {
// elements
$elements = Item::params()->filters()->published()->orderBy('created_at', 'desc')->paginate($this->settings->limit);
// trans
Trans::get($elements, 'items');
// view
$this->seo($elements);
$this->viewTitle('Items');
$this->view(compact(['elements']));
}
// type
public function type() {
// type
$type = Element::check(new ItemsType);
// element
$elements = Item::params()->filters()->published()->where('type_id', $type->id)->orderBy('created_at', 'desc')->paginate($this->settings->limit);
// trans
Trans::get($type, 'items_types');
Trans::get($elements, 'items');
// flash
Flash::set('type', $type->id);
// view
$this->seo($type);
$this->viewTitle($type->name);
$this->view(compact(['elements']), 'evsmash/items/items/index');
}
// category
public function category() {
// category
$category = Element::check(new ItemsCategory);
// elements
$elements = $category->items()->params()->filters()->published()->orderBy('created_at', 'desc')->paginate($this->settings->limit);
// trans
Trans::get($category, 'items_categories');
Trans::get($elements, 'proudcts');
// flash
Flash::set('categories', [$category->id => $category->name]);
// view
$this->seo($category);
$this->seo($elements, ['sub' => $category->immediateDescendants()->count()]);
$this->viewTitle($category->name);
$this->view(compact(['elements']), 'evsmash/items/items/index');
}
// show
public function show() {
// element
$element = Element::check(new Item);
// parameters
$parameters = false;
if(cfg('evsmash-items-items-parameters')) {
$parameters = ItemsParameter::arr($element);
}
// allowed
Element::allowed($element, 'published');
// stats
Element::stats($element);
// trans
Trans::get($element, 'items');
// flash
Flash::set('type', $element->type_id);
Flash::set('categories', $element->categories->pluck('name', 'id'));
Flash::set('photo', Thumb::url($element->photo, '1000xauto', ['upsize' => true]));
// view
$this->seo($element);
$this->viewTitle($element->name);
$this->viewDescription($element->sneak, $element->content);
$this->view(compact(['element', 'parameters']));
}
}