src/Controller/PageController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Vinyl;
  4. use App\Form\SearchType;
  5. use App\Repository\ArtistRepository;
  6. use App\Repository\LabelRepository;
  7. use App\Repository\ParamsRepository;
  8. use App\Repository\PromoteRepository;
  9. use App\Services\Search;
  10. use App\Repository\StyleRepository;
  11. use App\Repository\VinylRepository;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  16. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  17. class PageController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/maintenance", name="maintenance")
  21.      */
  22.     public function maintenance(): Response
  23.     {
  24.         return $this->render('pages/maintenance.html.twig', [
  25.             'current' => 'maintenance',
  26.         ]);
  27.     }
  28.     /**
  29.      * @Route("/", name="home")
  30.      */
  31.     public function index(
  32.         VinylRepository $vinylRepository
  33.         StyleRepository $styleRepository
  34.         Request $request
  35.         LabelRepository $labelRepository
  36.         ArtistRepository $artistRepository
  37.         PromoteRepository $promoteRepository,
  38.         ParamsRepository $paramsRepository,
  39.         SessionInterface $sessionInterface
  40.     ): Response
  41.     {
  42.         // Recherche
  43.         $searchData = [
  44.             'labels' => $labelRepository->findBy([], ['name' => 'ASC']),
  45.             'artists' => $artistRepository->findBy([], ['name' => 'ASC']),
  46.         ];
  47.         $search = new Search();
  48.         $form $this->createForm(SearchType::class, $search)->handleRequest($request);
  49.         
  50.         $new $promoteRepository->find(1)->getProducts();
  51.         $neufs = [];
  52.         $occasions = [];
  53.         foreach ($new as $vinyl) {
  54.             /** @var Vinyl $vinyl */
  55.             if ($vinyl->getState() == "neuf") {
  56.                 $neufs[] = $vinyl;
  57.             }
  58.             else {
  59.                 $occasions[] = $vinyl;
  60.             }
  61.         }
  62.         $news = [
  63.             'neufs' => $neufs,
  64.             'occasions' => $occasions
  65.         ];
  66.         $bestSeller $promoteRepository->find(2)->getProducts();
  67.         $repress $promoteRepository->find(3)->getProducts();
  68.         $restock $promoteRepository->find(4)->getProducts();
  69.         //$promo = $vinylRepository->getPromo();
  70.         $homeProd $promoteRepository->find(6)->getProducts();
  71.         $extras = [
  72.             'last' => $vinylRepository->getLast(), 
  73.             'news' => $news,
  74.             'best' => $bestSeller,
  75.             'restock' => $restock,
  76.             'repress' => $repress,
  77.             'homeprod' => $homeProd,
  78.             //'promo' => $promo,
  79.         ];
  80.         return $this->render('pages/index.html.twig', [
  81.             'current' => 'home',
  82.             'is_connected' => $this->getUser() ? true false,
  83.             'params' => $paramsRepository->findAll(),
  84.             'search_form' => $form->createView(),
  85.             'search_data' => $searchData,
  86.             'styles' => $styleRepository->findBy([],["name" => "ASC"]),
  87.             'new_vinyls' => $new,
  88.             //'promo_vinyls' => $promo,
  89.             'extras' => $extras,
  90.         ]);
  91.     }
  92.     /**
  93.      * @Route("/a-propos", name="about")
  94.      */
  95.     public function about(ParamsRepository $paramsRepository): Response
  96.     {
  97.         return $this->render('pages/about.html.twig', [
  98.             'current' => 'page',
  99.             'params' => $paramsRepository->findAll(),
  100.         ]);
  101.     }
  102.     /**
  103.      * @Route("/informations-livraison", name="shipping")
  104.      */
  105.     public function shipping(ParamsRepository $paramsRepository): Response
  106.     {
  107.         return $this->render('pages/shipping.html.twig', [
  108.             'current' => 'page',
  109.             'params' => $paramsRepository->findAll(),
  110.         ]);
  111.     }
  112.     /**
  113.      * @Route("/informations-paiement", name="paiement")
  114.      */
  115.     public function paiement(ParamsRepository $paramsRepository): Response
  116.     {
  117.         return $this->render('pages/paiement.html.twig', [
  118.             'current' => 'page',
  119.             'params' => $paramsRepository->findAll(),
  120.         ]);
  121.     }
  122.     /**
  123.      * @Route("/mentions-legales", name="mentions_legales")
  124.      */
  125.     public function mentionslegales(ParamsRepository $paramsRepository): Response
  126.     {
  127.         return $this->render('pages/mentions-legales.html.twig', [
  128.             'current' => 'page',
  129.             'params' => $paramsRepository->findAll(),
  130.         ]);
  131.     }
  132.     /**
  133.      * @Route("/cgv", name="cgv")
  134.      */
  135.     public function cgv(ParamsRepository $paramsRepository): Response
  136.     {
  137.         return $this->render('pages/cgv.html.twig', [
  138.             'current' => 'page',
  139.             'params' => $paramsRepository->findAll(),
  140.         ]);
  141.     }
  142. }