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\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']));

	}

}