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/items / libs / Http / Items.php
Size: Mime:
<?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\ItemsType;

class Items extends Base {

	// index
	public function index() {

		// elements
		$elements = Item::params()->published()->orderBy('created_at', 'desc')->paginate($this->settings->limit);

		// trans
		Trans::get($elements, 'items');

		// flash
		Flash::set('title', 'Items');

		// view
		$this->view(compact(['elements']));

	}

	// type
	public function type() {

		// type
		$type = Element::check(new ItemsType);

		// element
		$elements = Item::params()->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('title', $type->name);
		Flash::set('type', $type->id);
		
		// view
		$this->view(compact(['elements']), 'evsmash/items/items/index');

	}

	// category
	public function category() {

		// category
		$category = Element::check(new ItemsCategory);

		// elements
		$elements = $category->items()->params()->published()->orderBy('created_at', 'desc')->paginate($this->settings->limit);

		// trans
		Trans::get($category, 'items_categories');
		Trans::get($elements, 'proudcts');

		// flash
		Flash::set('title', $category->name);
		Flash::set('categories', [$category->id => $category->name]);

		// view
		$this->view(compact(['elements']), 'evsmash/items/items/index');

	}

	// show
	public function show() {

		// element
		$element = Element::check(new Item);

		// allowed
		Element::allowed($element, 'published');

		// stats
		Element::stats($element);

		// trans
		Trans::get($element, 'items');

		// flash
		Flash::set('title', $element->name);
		Flash::set('description', $element->sneak);
		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->view(compact(['element']));

	}

}