mein-sterntours/app/Http/Controllers/CMS/CMSFeedbackController.php
Kevin Adametz 881fc84207 08 2024
2024-08-05 11:58:09 +02:00

142 lines
3.7 KiB
PHP
Executable file

<?php
namespace App\Http\Controllers\CMS;
use App\Http\Controllers\Controller;
use App\Models\Feedback;
use Carbon\Carbon;
use IqContent\LaravelFilemanager\Lfm;
use Request;
class CMSFeedbackController extends Controller
{
/*
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(['admin', '2fa']);
}
public function index()
{
$data = [
'feedbacks' => Feedback::all(),//Feedback::where('lvl', 1)->get(),
];
return view('cms.feedback.index', $data);
}
public function detail($id)
{
if($id === "new") {
$feedback = new Feedback();
$id = 'new';
$feedback->status = 1;
$feedback->content_new = "";
}else{
$feedback = Feedback::findOrFail($id);
$id = $feedback->id;
}
$data = [
'feedback' => $feedback,
'id' => $id,
'lfm_helper' => app(Lfm::class),
];
return view('cms.feedback.detail', $data);
}
public function store($id)
{
$data = Request::all();
if($id === "new") {
if(!isset($data['feedback_parent']) && !$data['feedback_parent']) {
abort(404);
die();
}
$feedback = new Feedback();
$feedback->model = 'feedback';
$feedback->owner_second = 0;
$feedback->show_in_navi = 1;
$feedback->catalog_id = 1;
}else{
$feedback = Feedback::findOrFail($id);
}
$feedback->title = $data['title'];
$feedback->status = isset($data['status']) ? true : false;
$feedback->slug = $data['slug'];
$feedback->date = $data['date'];
$feedback->content_new = $data['content_new'];
$feedback->box_body = $data['image'];
$feedback->description = $data['description'];
$feedback->pagetitle = $data['pagetitle'];
$feedback->keywords = $data['keywords'];
$feedback->order = (new Carbon($feedback->date))->format('Ymd')*-1;
//parent -- lvl
if(isset($data['feedback_parent']) && $data['feedback_parent']){
$feedback->lvl = 2;
if($feedback->parent_id != $data['feedback_parent']){
$feedback->owner = $data['feedback_parent'];
$feedback->parent_id = $data['feedback_parent'];
$parent_feedback = Feedback::findOrFail($data['feedback_parent']);
if($first_feedback = $parent_feedback->children->first()){
$feedback->lft = $first_feedback->lft;
$feedback->rgt = $first_feedback->rgt;
}else{
$feedback->lft = $parent_feedback->lft +1;
$feedback->rgt = $parent_feedback->lft +2;
}
$feedback->tree_root = $parent_feedback->tree_root;
}
$feedback->parent_id = $data['feedback_parent'];
}else{
// $feedback->lvl = 1;
//TODO need real parent from Navi tree
// $feedback->parent_id = 0;
}
$feedback->save();
\Session()->flash('alert-save', '1');
return redirect(route('cms_feedback_detail', [$feedback->id]));
}
public function delete($id){
$feedback = Feedback::findOrFail($id);
//TODO
//check for delete, only delete lvl 2 .,...?
if ($feedback->lvl != 2){
abort(404);
die();
}
$feedback->delete();
\Session()->flash('alert-success', __('Feedback gelöscht'));
return redirect(route('cms_feedback'));
}
}