src/Controller/AccueilController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\AccueilRepository;
  4. use App\Repository\ProduitRepository;
  5. use App\Repository\CategorieRepository;
  6. use App\Repository\PhotoLifeRepository;
  7. use App\Repository\PhotoProduitRepository;
  8. use App\Repository\PresentationRepository;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. class AccueilController extends AbstractController
  14. {
  15.     /**
  16.      * @Route("/", name="accueil")
  17.      */
  18.     public function accueil(ProduitRepository $repoProduitCategorieRepository $repocategorieAccueilRepository $repoAccueilSessionInterface $session) :Response
  19.     {
  20.         // on récupère les catégories
  21.         $categories $repocategorie->findAll();
  22.        
  23.       $session->set ('categories'$categories);
  24.       
  25.         // on récupère  les produits mis en avant 
  26.         $produitsShowcase $repoProduit->findBy(array('showcase'=> true));
  27.         
  28.         // on récupére la photo/video du mode large active
  29.         $fileLgActive$repoAccueil->findBy(array('active'=> true ,'large'=>true));
  30.     
  31.         // si aucune n'est active on prend la première non active ( il y en a au moins 1)
  32.         
  33.         if (count$fileLgActive) == ) {
  34.             $fileLgActive $repoAccueil->findBy(array('large'=>true));
  35.         }
  36.         $fileLgActive$fileLgActive[0];
  37.          // on récupére la photo/video du mode SmartPhone Tablette
  38.          $fileMdActive$repoAccueil->findBy(array('active'=> true ,'large'=>false));
  39.          // si aucune n'est active on prend la première non active ( il y en a au moins 1)
  40.          
  41.          if (count$fileMdActive) == ) {
  42.              $fileMdActive $repoAccueil->findBy(array('large'=>false));
  43.          }
  44.          $fileMdActive $fileMdActive[0];
  45.  
  46.          $nomFileLg$fileLgActive->getNomPhotoVideo();
  47.          $textLg=$fileLgActive->getTextAccueil();
  48.          $typeFileLg=  $fileLgActive->getVideo();
  49.          $nomFileMd $fileMdActive->getNomPhotoVideo();
  50.          $textMd=$fileMdActive->getTextAccueil();
  51.          $typeFileMd $fileMdActive->getVideo();
  52.          // on récupère le texte
  53.         return $this->render('accueil/accueil.html.twig', [
  54.             "produitsShowcase" => $produitsShowcase,
  55.             "textMd"=>$textMd,
  56.             "fileMd"=>$nomFileMd,
  57.             "typeMd"=>$typeFileMd,
  58.             "textLg"=>$textLg,
  59.             "fileLg"=>$nomFileLg,
  60.             "typeLg"=>$typeFileLg
  61.         ]);
  62.     }
  63.      /**
  64.      * @Route("/nous", name="nous")
  65.      */
  66.     public function nous (PhotoLifeRepository $repophotoPresentationRepository $repopresentation) :Response
  67.     
  68.     {
  69.         $presentationActives =$repopresentation->findBy(array('active'=> true));
  70.         // si aucune présentation n'est active on prend la première
  71.         if (count($presentationActives) == 0) {
  72.             $presentationArray$repopresentation->findAll();
  73.             $presentationActives=$presentationArray [0];
  74.         }
  75.         // $photos =  $presentationActive->getPhotoLives();
  76.         // $nomphotos = [];
  77.         // foreach ( $photos as $photo) {
  78.         //     $nomPhotos []=$photo->getNom();
  79.         // }
  80.         // $nomPhotos_str = json_encode($nomPhotos) ;
  81.         return $this->render('accueil/nous.html.twig', [
  82.             'presentationActives'=>$presentationActives,
  83.         ]);
  84.     }
  85.      /**
  86.      * @Route("/magasin", name="magasin")
  87.      */
  88.     public function magasin (PhotoProduitRepository $repophoto) :Response
  89.     {
  90.         // on créé un tableau avec les photos pour animer la page
  91.         $photos=$repophoto->findAll();
  92.         $nomphotos = [];
  93.         foreach ( $photos as $photo) {
  94.             $nomPhotos []=$photo->getNom();
  95.         }
  96.         $nomPhotos_str json_encode($nomPhotos) ;
  97.         return $this->render('accueil/magasin.html.twig', [
  98.             'photos'=>$nomPhotos_str
  99.         ]);
  100.     }
  101. }