HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/spion/app/Http/Controllers/Front/HomePageController.php
<?php

namespace App\Http\Controllers\Front;

use App\Http\Controllers\Controller;
use App\Models\Faq;
use App\Models\Industry;
use App\Models\Template;
use Illuminate\Http\Request;

class HomePageController extends Controller
{
    public function Home()
    {
        // $templates =Template::all();
        $templates =  Template::latest()->take(6)->get();
        // dd($templates);
        $faqs = Faq::where('status', 1)->get();
        return view('front.pages.home',compact('faqs','templates'));
    }

    public function About()
    {
        return view('front.pages.about');
    }
    // public function template()
    // {
    //     return view('front.pages.template');
    // }
    // public function templateDetail()
    // {
    //     return view('front.pages.template_detail');
    // }
    public function Blog()
    {
        return view('front.pages.blog');
    }
    public function BlogDetail()
    {
        return view('front.pages.blog_detail');
    }
    // public function Pricing()
    // {
    //     return view('front.pages.pricing');
    // }
    // public function Contact()
    // {
    //     return view('front.pages.contact');
    // }
    public function ContactUs()
    {
        return view('front.pages.contact-us');
    }
    public function Search(Request $request)
    {
        $industries = Industry::all();
        $templatesCount = Template::query()
        ->when($request->filled('industry'), function ($query) use ($request) {
            $query->whereIn('industry_id', $request->industry); // Filter templates based on selected industries
        })
        ->when($request->filled('search'), function ($query) use ($request) {
            $searchTerm = $request->search;
            $query->where(function ($query) use ($searchTerm) {
                $query->whereHas('industry', function ($query) use ($searchTerm) {
                    $query->where('title', 'like', "%$searchTerm%"); // Match the industry title
                })
                ->orWhere('title', 'like', "%$searchTerm%"); // Match the template title
            });
        })
        ->with('industry') 
        ->count();
        $limit = 6;
        $offset = ($request->current_page - 1) * $limit;

        $templates = Template::query()
            ->when($request->filled('industry'), function ($query) use ($request) {
                $query->whereIn('industry_id', $request->industry); // Filter templates based on selected industries
            })
            ->when($request->filled('search'), function ($query) use ($request) {
                $searchTerm = $request->search;
                $query->where(function ($query) use ($searchTerm) {
                    $query->whereHas('industry', function ($query) use ($searchTerm) {
                        $query->where('title', 'like', "%$searchTerm%"); // Match the industry title
                    })
                    ->orWhere('title', 'like', "%$searchTerm%"); // Match the template title
                });
            })
            ->with('industry') 
            ->offset($offset)
            ->limit($limit)
            ->get();

        // If it's an AJAX request, return the filtered templates as JSON
        $last_page = ceil($templatesCount / $limit) ;

        // dd($last_page);
        if ($request->ajax()) {
            return response()->json([
                'templates' => $templates,
                'templatesCount' => $templatesCount,
                'current_page' => $request->current_page,
                'limit' => $limit,
                'last_page' => $last_page,
            ]);
        }
        return view('front.pages.search',compact('industries','templates'));
    }
}