src/IlaveU/FrontBundle/Themes/IlaveU/Controller/HomeController.php line 46
<?phpnamespace App\IlaveU\FrontBundle\Themes\IlaveU\Controller;use App\IlaveU\FrontBundle\Entity\Page;use App\IlaveU\FrontBundle\Entity\PubBanner;use App\IlaveU\FrontBundle\Repository\CategoryProductFrontRepository;use App\IlaveU\FrontBundle\Repository\MasterSliderRepository;use App\IlaveU\FrontBundle\Repository\PubBannerRepository;use App\IlaveU\ShopBundle\Repository\Product\ProductRepository;use App\IlaveU\FrontBundle\Repository\ProductFrontRepository;use App\IlaveU\FrontBundle\Themes\IlaveU\Form\Customer\ComplaintType;use App\IlaveU\ShopBundle\Entity\Customer\Complaint;use App\Repository\IlaveU\ShopBundle\Entity\Customer\PackRepository;use Doctrine\Persistence\ManagerRegistry;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Mercure\HubInterface;use Symfony\Component\Mercure\Update;class HomeController extends AbstractController{#[Route('/')]public function indexNoLocale(Request $request): Response{return $this->redirectToRoute('front_home', ['_locale' => $request->getLocale(),]);}#[Route('/{_locale}', name: 'front_home')]public function index(ProductFrontRepository $productRepository,MasterSliderRepository $masterSliderRepository,PubBannerRepository $pubBannerRepository,CategoryProductFrontRepository $categoryProductFrontRepository,PackRepository $packRepository): Response{$deals = $productRepository->findDeals();return $this->render('@IlaveU/FrontBundle/Themes/IlaveU/templates/home/index.html.twig', ['products' => $productRepository->findBy(["isPublished"=>true],["id"=>"ASC"],12),'subscriptionProducts' => $productRepository->findByProductType(["subscription"]),'masterSliders'=> $masterSliderRepository->findBy(["isEnabled"=>true]),'pubBanners'=> $pubBannerRepository->findBy(["isEnabled"=>true]),'deals'=>$deals,'categoriesProduct'=> $categoryProductFrontRepository->findBy(["parentCategory"=>null])]);}#[Route('/contact', name: 'contact')]public function contact(ProductRepository $productRepository): Response{return $this->render('@IlaveU/FrontBundle/Themes/IlaveU/templates/home/contact.html.twig', ['products' => $productRepository->findAll(),]);}#[Route('/banner-block/{id}', name: 'pubBannerBlock')]public function pubBannerBlock(PubBanner $pubBanner): Response{return $this->render('@IlaveU/FrontBundle/Themes/IlaveU/templates/include-pubs/_singlePubBanner.html.twig', ['singleBanner' => $pubBanner,]);}#[Route('/mercure-send', name: 'pubBannerBlock')]public function publish(HubInterface $hub): Response{$update = new Update('https://hello.com/books/1',json_encode(['status' => 'success','entity'=>'Order','data'=>[],]));$hub->publish($update);return new Response('published!');}#[Route('/sitemap.xml', name: 'sitemap', defaults:["_format"=>"xml"])]public function sitemap(Request $request,ManagerRegistry $doctrine): Response{$hostname = $request->getSchemeAndHttpHost();$urls = [];// On ajoute les URLs "statiques"$urls[] = ['loc' => $this->generateUrl('front_home')];$urls[] = ['loc' => $this->generateUrl('login_register')];//$urls[] = ['loc' => $this->generateUrl('app_login')];// On ajoute les URLs dynamiques des articles dans le tableauforeach ($doctrine->getManager()->getRepository(Page::class)->findAll() as $page) {/*$images = ['loc' => '/uploads/images/featured/'.$page->getFeaturedImage(), // URL to image'title' => $page->getName() // Optional, text describing the image];*/$urls[] = ['loc' => $this->generateUrl('single_page', ['slug' => $page->getSlug(),]),//'lastmod' => $page->getUpdatedAt()->format('Y-m-d'),//'image' => $images];}// Fabrication de la réponse XML$response = new Response($this->renderView('@IlaveU/FrontBundle/Themes/'.$this->container->get('twig')->getGlobals()["settings"]->get()->getAssetFolderName().'/templates/home/sitemap.html.twig', ['urls' => $urls,'hostname' => $hostname]),200);// Ajout des entêtes$response->headers->set('Content-Type', 'text/xml');// On envoie la réponsereturn $response;}#[Route('/new-complaint', name: 'newComplaint')]public function newComplaint(Request $request): Response{$complaint = new Complaint();$form = $this->createForm(ComplaintType::class,$complaint);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$this->addFlash("success","Votre réclamation a été transmise au service concerné");return $this->redirectToRoute('front_home');}return $this->render('@IlaveU/FrontBundle/Themes/IlaveU/templates/complaint/new.html.twig', ['form' => $form->createView(),]);}}