<?php
namespace App\Controller;
use App\Entity\ContactClient;
use App\Entity\Product;
use App\Repository\BlogRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Repository\ProductRepository;
use App\Repository\ProductCategoryRepository;
use App\Service\FileHandler;
use App\Service\OrderService;
use App\Service\ProductService;
use App\Util\GenericUtil;
use DateTime;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class HomeController extends AbstractController
{
private $entityManager;
private $productRepository;
private $blogRepository;
private $productCategoryRepository;
private $productService;
private $fileHandler;
public function __construct(EntityManagerInterface $entityManager,
ProductRepository $productRepository,
BlogRepository $blogRepository,
ProductCategoryRepository $productCategoryRepository,
ProductService $productService,
FileHandler $fileHandler)
{
$this->entityManager = $entityManager;
$this->productRepository = $productRepository;
$this->blogRepository = $blogRepository;
$this->productCategoryRepository = $productCategoryRepository;
$this->productService = $productService;
$this->fileHandler = $fileHandler;
}
#[Route('/', name: 'app_home_index')]
public function index(): Response
{
$featuredProducts = $this->productRepository->getFeaturedProducts();
$monthProducts = $this->productRepository->getMonthProducts();
$blog = $this->blogRepository->getRecentBlog(3);;
$error = null;
return $this->render('home/home_index.html.twig', [
'controller_name' => 'HomeController',
'products' => $featuredProducts,
'monthProducts' => $monthProducts,
'blogList' => $blog,
'error' => $error,
]);
}
#[Route('/setLocalSession', name:'app_setLocal_session')]
public function setLocal(Request $request)
{
if($local = $request->request->get('local')) {
$session = $request->getSession();
$session->set('localSession', $local);
}
return new JsonResponse([
'error' => false,
]);
}
}