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 / Admin / Items.php
Size: Mime:
<?php

namespace Evsmash\Items\Http\Admin;

use Evsmash\Core\Http\Base;

use Evsmash\Core\Helpers\Str;
use Evsmash\Core\Files\Upload;
use Evsmash\Core\Input\Post;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;

use Evsmash\Items\Item;
use Evsmash\Items\ItemsCategory;
use Evsmash\Items\ItemsParameter;
use Evsmash\Items\ItemsType;
use Evsmash\Items\Exts\Bar;

class Items extends Base {

	// view
	public function index() {

		// elements
		if(Route::get('category')) {

			// category
			$category = Element::check(new ItemsCategory, Route::get('category'));
			$elements = $category->items()->orderBy('sort', 'asc')->orderBy('created_at', 'desc')->params()->published()->paginate(Route::limit(100));
		
			
		} else {

			// standard		
			$elements = Item::orderBy('sort', 'asc')->orderBy('created_at', 'desc')->params()->paginate(Route::limit(100));
			
		}

		// bar
		$bar = Bar::items($elements);

		// 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 Item, ['name', 'slug', 'type_id']);

	}

	// edit
	public function edit() {

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

		// parameters
		$parameters = ItemsParameter::form($element);

		// bar
		$bar = Bar::item($element);

		// view
		$this->view(compact(['element', 'parameters', 'bar']));

	}

	// update
	public function update() {

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

		// categories
		Element::updatem2m(new Item, 'categories');

		// parameters
		ItemsParameter::set($element, Post::get('parameters', 'none'));

		// photo
		if(Post::get('remove_photo')) {
			$element = Element::check(new Item);
			$element->photo = '';
			$element->save();
		} 

		// slug
		Post::set('slug', Str::slug(Post::get('name')));

		// update
		Element::update(new Item, ['name', 'slug', 'content', 'content_extra', 'sneak', 'price', 'price_old', 'currency', 'type_id'], ['content' => 'html', 'content_extra' => 'html', 'price_old' => 'nullable', 'currency' => 'nullable']);

	}

	// photo
	public function photo() {

		// upload
		$file = Upload::file(cfg('upload-images'));

		// update
		$element = Element::check(new Item);
		$element->photo = $file->path;
		$element->save();

	}

	// thick
	public function thick() {

		Element::thick(new Item, ['new', 'promoted', 'published']);

	}

	// sort
	public function sort() {

		Element::sort(new Item);

	}

	// delete
	public function delete() {

		Element::delete(new Item);

	}

}