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'));
}
}