193 lines
5.4 KiB
PHP
193 lines
5.4 KiB
PHP
<?php
|
|
|
|
namespace Modules\Superadmin\Http\Controllers;
|
|
|
|
use App\Utils\ModuleUtil;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Routing\Controller;
|
|
use Illuminate\Support\Str;
|
|
use Modules\Superadmin\Entities\SuperadminFrontendPage;
|
|
|
|
class PageController extends Controller
|
|
{
|
|
/**
|
|
* All Utils instance.
|
|
*/
|
|
protected $moduleUtil;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @param ProductUtils $product
|
|
* @return void
|
|
*/
|
|
public function __construct(ModuleUtil $moduleUtil)
|
|
{
|
|
$this->moduleUtil = $moduleUtil;
|
|
}
|
|
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function index()
|
|
{
|
|
if (! auth()->user()->can('superadmin')) {
|
|
abort(403, 'Unauthorized action.');
|
|
}
|
|
|
|
$pages = SuperadminFrontendPage::orderBy('menu_order', 'asc')->get();
|
|
|
|
return view('superadmin::pages.index')
|
|
->with(compact('pages'));
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('superadmin::pages.create');
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param Request $request
|
|
* @return Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
if (! auth()->user()->can('superadmin')) {
|
|
abort(403, 'Unauthorized action.');
|
|
}
|
|
|
|
try {
|
|
$input = $request->only(['title', 'slug', 'content', 'menu_order']);
|
|
|
|
$input['slug'] = Str::slug($input['slug']);
|
|
$input['is_shown'] = empty($request->input('is_shown')) ? 0 : 1;
|
|
$input['menu_order'] = empty($input['menu_order']) ? 0 : $input['menu_order'];
|
|
|
|
$is_slug_exists = SuperadminFrontendPage::where('slug', $input['slug'])->exists();
|
|
if (! $is_slug_exists) {
|
|
SuperadminFrontendPage::create($input);
|
|
$output = ['success' => 1, 'msg' => __('lang_v1.success')];
|
|
} else {
|
|
$output = ['success' => 0, 'msg' => __('superadmin::lang.slug_already_exists')];
|
|
}
|
|
} catch (\Exception $e) {
|
|
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
|
|
|
|
$output = ['success' => 0,
|
|
'msg' => __('messages.something_went_wrong'),
|
|
];
|
|
}
|
|
|
|
return redirect()
|
|
->action([\Modules\Superadmin\Http\Controllers\PageController::class, 'index'])
|
|
->with('status', $output);
|
|
}
|
|
|
|
/**
|
|
* Show the specified resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function showPage($slug)
|
|
{
|
|
$page = SuperadminFrontendPage::where('slug', $slug)->first();
|
|
|
|
if (! empty($page)) {
|
|
return view('superadmin::pages.show')->with(compact('page'));
|
|
} else {
|
|
abort(404);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function edit($id)
|
|
{
|
|
$page = SuperadminFrontendPage::findOrFail($id);
|
|
|
|
return view('superadmin::pages.edit')->with(compact('page'));
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param Request $request
|
|
* @return Response
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
if (! auth()->user()->can('superadmin')) {
|
|
abort(403, 'Unauthorized action.');
|
|
}
|
|
|
|
try {
|
|
$input = $request->only(['title', 'slug', 'content', 'menu_order']);
|
|
|
|
$input['slug'] = Str::slug($input['slug']);
|
|
$input['is_shown'] = empty($request->input('is_shown')) ? 0 : 1;
|
|
|
|
$input['menu_order'] = empty($input['menu_order']) ? 0 : $input['menu_order'];
|
|
$is_slug_exists = SuperadminFrontendPage::where('id', '!=', $id)
|
|
->where('slug', $input['slug'])
|
|
->exists();
|
|
|
|
if (! $is_slug_exists) {
|
|
SuperadminFrontendPage::where('id', $id)->update($input);
|
|
$output = ['success' => 1, 'msg' => __('lang_v1.success')];
|
|
} else {
|
|
$output = ['success' => 0, 'msg' => __('superadmin::lang.slug_already_exists')];
|
|
}
|
|
} catch (\Exception $e) {
|
|
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
|
|
|
|
$output = ['success' => 0,
|
|
'msg' => __('messages.something_went_wrong'),
|
|
];
|
|
}
|
|
|
|
return redirect()
|
|
->action([\Modules\Superadmin\Http\Controllers\PageController::class, 'index'])
|
|
->with('status', $output);
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
if (! auth()->user()->can('superadmin')) {
|
|
abort(403, 'Unauthorized action.');
|
|
}
|
|
|
|
try {
|
|
SuperadminFrontendPage::where('id', $id)
|
|
->delete();
|
|
|
|
$output = ['success' => 1, 'msg' => __('lang_v1.success')];
|
|
} catch (\Exception $e) {
|
|
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
|
|
|
|
$output = ['success' => 0,
|
|
'msg' => __('messages.something_went_wrong'),
|
|
];
|
|
}
|
|
|
|
return $output;
|
|
}
|
|
}
|