Repository URL to install this package:
|
Version:
3.2.0 ▾
|
<?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);
}
}