HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/bdedition/public_html/core/app/Http/Controllers/Admin/CategoryController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Models\Category;
use Illuminate\Http\Request;
use App\Rules\FileTypeValidate;
use App\Http\Controllers\Controller;

class CategoryController extends Controller
{
    public function index()
    {
        $pageTitle = 'Categories';
        $categories = Category::orderByDesc('id')->paginate(getPaginate());
        return view('admin.category.index', compact('pageTitle', 'categories'));
    }

    public function store(Request $request, $id = 0)
    {
        $request->validate([
            'name' => 'required|string|unique:categories,name,' . $id,
            'slug' => 'required|string|unique:categories,slug,' . $id,
        ]);

        if ($id) {
            $category = Category::findOrFail($id);
            $message = 'Category updated successfully';
        } else {
            $category = new Category();
            $message = 'Category added successfully';
        }

        $category->name = $request->name;
        $category->slug = $request->slug;
        $category->save();

        $notify[] = ['success', $message];
        return back()->withNotify($notify);
    }

    public function status($id)
    {
        return Category::changeStatus($id);
    }

    public function seoSetting($id)
    {
        $pageTitle = "SEO Configuration";
        $category = Category::findOrFail($id);
        return view('admin.category.seo', compact('pageTitle', 'category'));
    }

    public function seoStore(Request $request, $id)
    {
        $request->validate([
            'image' => ['nullable', new FileTypeValidate(['jpeg', 'jpg', 'png'])]
        ]);

        $category = Category::findOrFail($id);
        $image = @$category->seo_content->image;

        if ($request->hasFile('image')) {
            try {
                $image = fileUploader($request->image, getFilePath('seo'), getFileSize('seo'), @$category->seo_content->image);
            } catch (\Exception $exp) {
                $notify[] = ['error', 'Couldn\'t upload the image'];
                return back()->withNotify($notify);
            }
        }
        $category->seo_content = [
            'image' => $image,
            'description' => $request->description,
            'social_title' => $request->social_title,
            'social_description' => $request->social_description,
            'keywords' => $request->keywords,
        ];
        $category->save();

        $notify[] = ['success', 'SEO content updated successfully'];
        return back()->withNotify($notify);
    }
}