![]() 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/CategoryBoxes/ |
<?php namespace App\Http\Controllers\Admin\CategoryBoxes; use App\Shop\CategoryBoxes\Repositories\Interfaces\CategoryBoxRepositoryInterface; use App\Shop\CategoryBoxes\Repositories\CategoryBoxRepository; use App\Shop\CategoryBoxes\CategoryBox; use App\Shop\CategoryBoxes\Requests\CreateCategoryBoxRequest; use App\Shop\CategoryBoxes\Requests\UpdateCategoryBoxRequest; 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; class CategoryBoxController extends Controller { use UploadableTrait; /** * @var CategoryBoxRepositoryInterface */ private $categoryBoxRepo; /** * CategoryBoxController constructor. * * @param CategoryBoxRepositoryInterface $categoryBoxRepository * @param CategoryBox $categoryBox */ public function __construct( CategoryBoxRepositoryInterface $categoryBoxRepository, CategoryBox $categoryBox ) { $this->categoryBoxRepo = $categoryBoxRepository; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $routeName = $request->route()->getName(); /*$routeName = $request->segments(); $routeName = Route::currentRouteName();*/ switch ($routeName) { case 'admin.blog.category.list': $section = 'blog'; $heading = 'Blog Categories'; break; case 'admin.long.term.category.list': $section = 'long-term'; $heading = 'Long Term Categories'; break; default: $section = 'short-term'; $heading = 'Short Term Categories'; break; } $list = CategoryBox::whereSection($section)->orderBy('id','ASC')->paginate(20); return view('admin.category-box.list', [ 'section' => $section, 'heading' => $heading, 'categories' => $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() { $sections = Helper::categorySection()->pluck('value','id'); return view( 'admin.category-box.create', compact('sections') ); } /** * Update the specified resource in storage. * * @param CreateCategoryBoxRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function store(CreateCategoryBoxRequest $request) { $data = $request->all(); if ($request->hasFile('image')) { $data['image'] = $this->categoryBoxRepo->saveImage($request->file('image')); } $this->categoryBoxRepo->createCategoryBox($data); $redirectRoute = $this->getRedirectToRoute($data['section']); $request->session()->flash('message', 'Icon added successfully.'); return redirect()->route($redirectRoute); } /** * Show the form for editing the specified resource. * * @param int $id * * @return \Illuminate\Http\Response */ public function edit(int $id) { $sections = Helper::categorySection()->pluck('value','id'); $category = $this->categoryBoxRepo->findCategoryBoxById($id); $backRoute = $this->getRedirectToRoute($category->section); return view( 'admin.category-box.edit',compact('sections','category','backRoute') ); } /** * Update the specified resource in storage. * * @param UpdateCategoryBoxRequest $request * @param int $id * * @return \Illuminate\Http\Response */ public function update(UpdateCategoryBoxRequest $request, int $id) { $currentData = $this->categoryBoxRepo->findCategoryBoxById($id); $currentDataRepo = new CategoryBoxRepository($currentData); $data = $request->all(); if ($request->hasFile('image')) { $data['image'] = $currentDataRepo->saveImage($request->file('image')); if(!empty($data['image'])) { $currentDataRepo->deleteImage(); } } else { $data['image'] = $currentData->getOriginal()['image']; } $newData = $currentDataRepo->updateCategoryBox($data); $redirectRoute = $this->getRedirectToRoute($newData->section); $request->session()->flash('message', 'Update successful'); return redirect()->route($redirectRoute); } /** * Show the form for editing the specified resource. * * @param int $id * * @return \Illuminate\Http\Response */ public function destroy(Request $request, int $id) { $currentData = $this->categoryBoxRepo->findCategoryBoxById($id); $redirectRoute = $this->getRedirectToRoute($currentData->section); $currentDataRepo = new CategoryBoxRepository($currentData); $currentDataRepo->deleteCategoryBox(); $request->session()->flash('message', 'Category deleted.'); return redirect()->route($redirectRoute); } public function getRedirectToRoute($section=null) { switch ($section) { case 'long-term': $redirectRoute = 'admin.long.term.category.list'; break; case 'blog': $redirectRoute = 'admin.blog.category.list'; break; default: $redirectRoute = 'admin.short.term.category.list'; break; } return $redirectRoute; } }