Repository URL to install this package:
|
Version:
3.4.1 ▾
|
<?php
namespace Evsmash\News\Http\Admin;
use Evsmash\Core\Http\Base as Base;
use Evsmash\Core\Files\Upload;
use Evsmash\Core\Helpers\Str;
use Evsmash\Core\Input\Post;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Core\Simpy\Params;
use Evsmash\News\News as NewsModel;
use Evsmash\News\NewsType;
class News extends Base {
// view
public function index() {
// elements
$elements = NewsModel::params()->paginate(Route::limit());
// bar
$bar = [
'create' => '/news/create',
'search' => true,
'params' => [
['Type', 'type', Element::flat(new NewsType)],
['Promoted', 'promoted', ['true' => 'Yes', 'false' => 'No']],
['Published', 'published', ['true' => 'Yes', 'false' => 'No']]
],
'summary' => $elements,
'stats' => [
'views' => $elements->sum('views')
]
];
// 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 NewsModel, ['name', 'slug', 'type_id']);
}
// edit
public function edit() {
// element
$element = Element::check(new NewsModel);
// view
$this->view(compact(['element']));
}
// update
public function update() {
// photo
if(Post::get('remove_photo')) {
$element = Element::check(new NewsModel);
$element->photo = '';
$element->save();
}
// slug
Post::set('slug', Str::slug(Post::get('slug')));
// sneak
if(empty(Post::get('sneak'))) {
Post::set('sneak', Str::words(Post::get('content'), 100));
}
// update
Element::update(new NewsModel, ['name', 'slug', 'content', 'sneak', 'headpiece', 'created_at', 'type_id'], ['content' => 'html']);
}
// photo
public function photo() {
// upload
$file = Upload::file(cfg('upload-images'));
// update
$element = Element::check(new NewsModel);
$element->photo = $file->path;
$element->save();
}
// thick
public function thick() {
Element::thick(new NewsModel, ['promoted', 'published']);
}
// delete
public function delete() {
Element::delete(new NewsModel);
}
}