HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot//www.shooperm.com/Modules/Blog/Http/Controllers/BlogCategoryController.php
<?php

namespace Modules\Blog\Http\Controllers;

use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Blog\Services\BlogCategoryService;
use Modules\Blog\Entities\BlogCategory;
use Modules\Blog\Entities\BlogPost;
use App\Traits\ImageStore;
use Brian2694\Toastr\Facades\Toastr;
use Modules\UserActivityLog\Traits\LogActivity;

class BlogCategoryController extends Controller
{

    use ImageStore;
    protected $blogCategoryService;

    public function __construct(BlogCategoryService $blogCategoryService)
    {
        $this->blogCategoryService = $blogCategoryService;
        $this->middleware('maintenance_mode');
        $this->middleware('prohibited_demo_mode')->only('store','update','destroy');
    }

    public function index()
    {
        try{

            $data['itemCategories']  = $this->blogCategoryService->getAll();

            return view('blog::category.category',$data);
        }catch (\Exception $e) {
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.operation_failed'));
            return redirect()->back();
        }
    }




    public function store(Request $request)
    {

        $request->validate([
                'name' => 'required|string|unique:blog_categories,name',
                'file.*' => 'required|mimes:jpg,jpeg,bmp,png'
            ]);

         try{

            $file = $request->file('file');
            if($request->hasFile('file'))
            {
                $filename=$this->saveImage($file,64,64);
            }
            $parent_id=0;
            $level=1;
            if(!empty($request['parent_id'])){
              $parent_id=$request['parent_id'];
              $level_check=BlogCategory::where('id',$parent_id)->first();
              $level=$level_check->level+1;
            }

            $this->blogCategoryService->create([
                'name' => $request['name'],
                'parent_id' => $parent_id,
                'level' => $level,
                'image_url' => isset($filename)?$filename:null
            ]);
            Toastr::success(__('common.operation_done_successfully'),__('common.success'));
            LogActivity::successLog('blog category added');
            return redirect()->back();
        }catch (\Exception $e) {
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.operation_failed'));
            return redirect()->back();
        }
    }


    public function edit($id)
    {
        try{

            $data['itemCategories']  = $this->blogCategoryService->getAll();
            $data['editData']   = $this->blogCategoryService->find($id);
            return view('blog::category.category',$data);
        }catch (\Exception $e) {
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.operation_failed'));
            return redirect()->back();
        }
    }


    public function update(Request $request, $id)
    {
        $request->validate([
                'name' => 'required|string|unique:blog_categories,name,'.$id
            ]);
        try{
            $data['name']=$request['name'];
            if(!empty($request['parent_id'])){
                $data['parent_id']=$request['parent_id'];
                $level_check=BlogCategory::where('id',$data['parent_id'])->first();
                $data['level']=$level_check->level+1;
            }
            if (!empty($request->hasFile('file'))) {
                $category=BlogCategory::where('id',$id)->first();
                if($category->image_url){
                    unlink(public_path($category->image_url));
                }
                $file = $request->file('file');
                $filename=$filename=$this->saveImage($file,64,64);
                $data['image_url']=$filename;
            }

            $this->blogCategoryService->update($data,$id);
            Toastr::success(__('common.operation_done_successfully'),__('common.success'));

            LogActivity::successLog('blog category updated');
            return redirect()->route('blog.categories.index');
        }catch (\Exception $e) {
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.operation_failed'));
            return redirect()->back();
        }
    }


    public function destroy($id)
    {
        try{
            $this->blogCategoryService->delete($id);
            Toastr::success(__('common.operation_done_successfully'),__('common.success'));
            LogActivity::successLog('blog category deleted.');
            return redirect()->route('blog.categories.index');
        }catch (\Exception $e) {
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.operation_failed'));
            return $e->getMessage().$e->getLine();
            return redirect()->route('blog.categories.index');
        }
    }
}