124 lines
2.9 KiB
PHP
124 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\CMS;
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\News;
|
|
use App\Models\Page;
|
|
use Carbon\Carbon;
|
|
use IqContent\LaravelFilemanager\Lfm;
|
|
use Request;
|
|
|
|
class CMSNewsController extends Controller
|
|
{
|
|
|
|
/*
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->middleware(['admin', '2fa']);
|
|
|
|
}
|
|
|
|
|
|
public function index()
|
|
{
|
|
$data = [
|
|
'news' => News::all(),//News::where('lvl', 1)->get(),
|
|
];
|
|
return view('cms.news.index', $data);
|
|
|
|
}
|
|
|
|
public function detail($id)
|
|
{
|
|
if($id === "new") {
|
|
$news = new News();
|
|
$id = 'new';
|
|
$news->status = 1;
|
|
$news->content_new = "";
|
|
|
|
|
|
}else{
|
|
$news = News::findOrFail($id);
|
|
$id = $news->id;
|
|
}
|
|
$data = [
|
|
'news' => $news,
|
|
'id' => $id,
|
|
'lfm_helper' => app(Lfm::class),
|
|
];
|
|
return view('cms.news.detail', $data);
|
|
|
|
}
|
|
|
|
|
|
public function store($id)
|
|
{
|
|
$data = Request::all();
|
|
if($id === "new") {
|
|
$news = new News();
|
|
$news->model = 'news';
|
|
$news->owner_second = 0;
|
|
$news->show_in_navi = 1;
|
|
$news->catalog_id = 1;
|
|
}else{
|
|
$news = News::findOrFail($id);
|
|
}
|
|
|
|
$news->title = $data['title'];
|
|
$news->status = isset($data['status']) ? true : false;
|
|
$news->slug = $data['slug'];
|
|
$news->date = $data['date'];
|
|
$news->content_new = $data['content_new'];
|
|
$news->box_body = $data['image'];
|
|
$news->description = $data['description'];
|
|
$news->pagetitle = $data['pagetitle'];
|
|
$news->keywords = $data['keywords'];
|
|
|
|
$news->order = (new Carbon($news->date))->format('Ymd')*-1;
|
|
$root_news = News::where('cms_settings', 'news_root')->first();
|
|
|
|
if($id != $root_news->id){
|
|
//root ID = 3126
|
|
$news->lvl = 1;
|
|
$news->owner = $root_news->id;
|
|
$news->parent_id = $root_news->id;
|
|
$news->tree_root = $root_news->id;
|
|
if($first_news = $root_news->children->first()){
|
|
$news->lft = $first_news->lft;
|
|
$news->rgt = $first_news->rgt;
|
|
}else{
|
|
$news->lft = $root_news->lft +1;
|
|
$news->rgt = $root_news->lft +2;
|
|
}
|
|
}
|
|
|
|
|
|
$news->save();
|
|
\Session()->flash('alert-save', '1');
|
|
return redirect(route('cms_news_detail', [$news->id]));
|
|
|
|
}
|
|
|
|
public function delete($id){
|
|
$news = News::findOrFail($id);
|
|
|
|
//TODO
|
|
//check for delete, only delete lvl 2 .,...?
|
|
if ($news->lvl != 1){
|
|
abort(404);
|
|
die();
|
|
}
|
|
|
|
$news->delete();
|
|
\Session()->flash('alert-success', __('News gelöscht'));
|
|
return redirect(route('cms_news'));
|
|
}
|
|
|
|
|
|
}
|