![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/app/Http/Controllers/Admin/Blogs/ |
<?php namespace App\Http\Controllers\Admin\Blogs; use App\Shop\Blogs\Repositories\Interfaces\BlogRepositoryInterface; use App\Shop\Blogs\Repositories\BlogRepository; use App\Shop\Blogs\Blog; use App\Shop\CategoryBoxes\CategoryBox; use App\Shop\Blogs\Requests\CreateBlogRequest; use App\Shop\Blogs\Requests\UpdateBlogRequest; use App\Http\Controllers\Controller; use App\Shop\Tools\UploadableTrait; use Illuminate\Http\Request; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Validator; use App\Helper\Helper; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; class BlogController extends Controller { use UploadableTrait; /** * @var BlogRepositoryInterface */ private $blogRepo; /** * BlogController constructor. * * @param BlogRepositoryInterface $blogRepository * @param Blog $blog */ public function __construct( BlogRepositoryInterface $blogRepository, Blog $blog ) { $this->blogRepo = $blogRepository; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { /** NOTE **/ /** some projects can request to collect the post on diff order **/ /** in order to do it more generic, will send all posts and Frontend **/ /** will deal with the order to display **/ $list = Blog::orderBy('id','ASC')->paginate(20); return view('admin.blog.list', [ 'blogs' => $list ])->with('i', ($request->input('page', 1) - 1) * 5); } /** * Show the form for editing the specified resource. * * @param int $id * * @return \Illuminate\Http\Response */ public function create() { $category = CategoryBox::whereSection('blog')->orderBy('id','ASC')->pluck('title','id'); return view( 'admin.blog.create', compact('category') ); } /** * Update the specified resource in storage. * * @param CreateBlogRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function store(CreateBlogRequest $request) { $data = $request->all(); $new_updated_at = date("Y-m-d H:i:s", strtotime($request->date_published)); if($request->date_published != ""){ $data['updated_at'] = $new_updated_at; } if ($request->hasFile('header_img')) { $data['header_img'] = $this->blogRepo->saveImage($request->file('header_img')); } if ($request->hasFile('imageOne')) { $data['imageOne'] = $this->blogRepo->saveImage($request->file('imageOne')); } if ($request->hasFile('imageTwo')) { $data['imageTwo'] = $this->blogRepo->saveImage($request->file('imageTwo')); } $data['slug']= Str::slug($request->title); $newData = $this->blogRepo->createBlog($data); $request->session()->flash('message', 'Blog added successfully.'); return redirect()->route('admin.blog.list'); } /** * Show the form for editing the specified resource. * * @param int $id * * @return \Illuminate\Http\Response */ public function edit(int $id) { $category = CategoryBox::whereSection('blog')->orderBy('id','ASC')->pluck('title','id'); $blog = $this->blogRepo->findBlogById($id); // dd($blog); return view( 'admin.blog.edit',compact('blog','category') ); } /** * Update the specified resource in storage. * * @param UpdateBlogRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function update(UpdateBlogRequest $request, int $id) { $currentData = $this->blogRepo->findBlogById($id); $currentDataRepo = new BlogRepository($currentData); $new_updated_at = date("Y-m-d H:i:s", strtotime($request->date_published)); $data = $request->all(); if($request->date_published != ""){ $data['updated_at'] = $new_updated_at; } if ($request->hasFile('header_img')) { $data['header_img'] = $this->blogRepo->saveImage($request->file('header_img')); if(!empty($data['header_img'])) { $currentDataRepo->deleteImage('header_img'); } } else { $data['header_img'] = $currentData->getOriginal()['header_img']; } if ($request->hasFile('imageOne')) { $data['imageOne'] = $this->blogRepo->saveImage($request->file('imageOne')); if(!empty($data['imageOne'])) { $currentDataRepo->deleteImage('imageOne'); } } else { if(!is_null($data['old_imageOne'])) { $data['imageOne'] = $currentData->getOriginal()['imageOne']; }else{ $data['imageOne']=''; } } if ($request->hasFile('imageTwo')) { $data['imageTwo'] = $this->blogRepo->saveImage($request->file('imageTwo')); if(!empty($data['imageTwo'])) { $currentDataRepo->deleteImage('imageTwo'); } } else { if(!is_null($data['old_imageTwo'])) { $data['imageTwo'] = $currentData->getOriginal()['imageTwo']; }else{ $data['imageTwo']=''; } } $newData = $currentDataRepo->updateBlog($data); $request->session()->flash('message', 'Update successful'); return redirect()->route('admin.blog.list'); } /** * Show the form for editing the specified resource. * * @param int $id * * @return \Illuminate\Http\Response */ public function destroy(Request $request, int $id) { $currentData = $this->blogRepo->findBlogById($id); $currentDataRepo = new BlogRepository($currentData); $currentDataRepo->deleteBlog(); $request->session()->flash('message', 'Blog deleted.'); return redirect()->route('admin.blog.list'); } }