middleware(['permission:show_all_pages'])->only('index'); $this->middleware(['permission:add_pages'])->only('create'); $this->middleware(['permission:edit_pages'])->only('edit'); $this->middleware(['permission:delete_pages'])->only('destroy'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { CoreComponentRepository::instantiateShopRepository(); CoreComponentRepository::initializeCache(); $pages = Page::paginate(10); return view('admin.website_settings.pages.index', compact('pages')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('admin.website_settings.pages.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $page = new Page; $page->title = $request->title; if (Page::where('slug', preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug)))->first() == null) { $page->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug)); $page->type = "custom_page"; $page->content = $request->content; $page->meta_title = $request->meta_title; $page->meta_description = $request->meta_description; $page->keywords = $request->keywords; $page->meta_image = $request->meta_image; $page->save(); flash(translate('New page has been created successfully'))->success(); return redirect()->route('custom-pages.index'); } flash(translate('Slug has been used already'))->warning(); return back(); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit(Request $request, $id) { $page_name = $request->page; $page = Page::where('slug', $id)->first(); if($page != null){ if ($page_name == 'home') { return view('admin.website_settings.pages.home_page_edit', compact('page')); } else{ return view('admin.website_settings.pages.edit', compact('page')); } } abort(404); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $page = Page::findOrFail($id); if (Page::where('id','!=', $id)->where('slug', preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug)))->first() == null) { if($page->type == 'custom_page'){ $page->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug)); } $page->title = $request->title; $page->content = $request->content; $page->meta_title = $request->meta_title; $page->meta_description = $request->meta_description; $page->keywords = $request->keywords; $page->meta_image = $request->meta_image; $page->save(); flash(translate('Page has been updated successfully'))->success(); return redirect()->route('custom-pages.index'); } flash(translate('Slug has been used already'))->warning(); return back(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { if(Page::destroy($id)){ flash(translate('Page has been deleted successfully'))->success(); return redirect()->back(); } return back(); } public function show_custom_page($slug){ $page = Page::where('slug', $slug)->first(); if($page != null){ return view('frontend.custom_page', compact('page')); } abort(404); } }