mein-sterntours/app/Http/Controllers/CMS/CMSContentController.php
2023-07-03 10:10:09 +02:00

121 lines
3.5 KiB
PHP
Executable file

<?php
namespace App\Http\Controllers\CMS;
use App\Http\Controllers\Controller;
use App\Models\CMSContent;
use App\Repositories\CMSFileRepository;
use Request;
use Validator;
class CMSContentController extends Controller
{
protected $identifier_content;
public function __construct()
{
$this->middleware(['admin', '2fa']);
$this->identifier_content = 'general';
}
public function index()
{
$data = [
'contents' => CMSContent::where('identifier', '=', $this->identifier_content)->get()->sortByDesc('id'),
'identifier_content' => $this->identifier_content,
];
return view('cms.content.all.index', $data);
}
public function store()
{
$data = Request::all();
if(Request::ajax()) {
//upload file
if($data['file']){
$cmsFileRepo = new CMSFileRepository(new CMSContent());
$cmsFileRepo->_set('data', $data);
$cmsFileRepo->_set('disk', 'public');
$cmsFileRepo->_set('dir', '/cms_files/'.date('Y/m').'/');
$cmsFileRepo->_set('identifier', 'cms_file');
return $cmsFileRepo->uploadFile(Request::all());
}
return response()->json(['response' => $data, 'html'=>""]);
}
$rules = array(
'name' => 'required',
'field' => 'required',
);
$validator = Validator::make(Request::all(), $rules);
if ($validator->fails()) {
return back()->withErrors($validator);
}
if($data['id'] === "new"){
CMSContent::create($data);
//store in cms old Datebase
\App\Models\Sym\CmsContent::create($data);
}else{
if($data['identifier'] === 'fewo-email-file'){
$data['integer'] = isset($data['default_travel_info']) ? 1 : 0;
}
$model = CMSContent::find($data['id']);
$model->fill($data);
$model->save();
$m = \App\Models\Sym\CmsContent::find($data['id']);
$m->fill($data);
$m->save();
}
\Session()->flash('alert-save', '1');
if(isset($data['back'])){
return redirect($data['back']);
}
return redirect(route('cms_content_all'));
}
public function loadModal()
{
if(Request::ajax()){
$data = Request::all();
$returnHTML = "";
if(isset($data['model']) && isset($data['id']) ){
if($data['model'] === 'content'){
if($data['id'] === "new"){
$value = new CMSContent();
$value->identifier = $data['identifier'];
$value->field = isset($data['field']) ? $data['field'] : null;
}else {
$value = CMSContent::find($data['id']);
}
$returnHTML = view("cms.content.all.modal", compact('data','value') )->render();
}
}
return response()->json(['response' => $data, 'html'=>$returnHTML]);
}
}
//public
public function delete($id){
$content = CMSContent::findOrFail($id);
if($content->isFile()){
$content->deleteFile();
}
$content->delete();
$m = \App\Models\Sym\CmsContent::find($id);
$m->delete();
\Session()->flash('alert-success', __('Content gelöscht'));
return back(); //redirect(route('cms_content_all'));
}
}