src/Controller/HomeController.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Entity\Category;
  5. use App\Entity\SousCategory;
  6. use App\Entity\Choix;
  7. use App\Entity\Requete;
  8. use App\Entity\ListesFavoris;
  9. use App\Repository\ArticleMetaRepository;
  10. use App\Repository\ArticleRepository;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Doctrine\ORM\EntityManagerInterface;
  17. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  18. class HomeController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/home", name="home")
  22.      */
  23.     public function index(EntityManagerInterface $entityManager)
  24.     {
  25.         $category $entityManager->getRepository(Category::class)->findAll();
  26.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  27.         $requete $entityManager->getRepository(Requete::class)->findAll();
  28.         $choix $entityManager->getRepository(Choix::class)->findAll();
  29.         $articlesFavsIds = [];
  30.         $user $this->getUser();
  31.         if($user != null){
  32.             $listeFavs $entityManager->getRepository(ListesFavoris::class)->findByUser($user);
  33.             foreach($listeFavs as $fav){
  34.                 $articlesFavs $fav->getArticlesFavoris();
  35.                 foreach($articlesFavs as $articleFav){
  36.                     $articlesFavsIds [] =  $articleFav->getArticle()->getId();
  37.                 }
  38.             }
  39.         }
  40.         return $this->render('home/index.html.twig', [
  41.             'category'=> $category,
  42.             'sousCategory'=> $sousCategory,
  43.             'requete' => $requete,
  44.             'choix' => $choix,
  45.             'favs' => $articlesFavsIds,
  46.         ]);
  47.         
  48.     }
  49.     public function article(ArticleRepository $article,EntityManagerInterface $entityManager)
  50.     {
  51.         $category $entityManager->getRepository(Category::class)->findAll();
  52.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  53.         return $this->render("home/index.html.twig",[
  54.             'article'=> $article->findAll(),
  55.             'category'=> $category,
  56.             'sousCategory'=> $sousCategory,
  57.         ]);
  58.     }
  59.     public function articleMeta(ArticleMetaRepository $articlemeta,EntityManagerInterface $entityManager)
  60.     {
  61.         $category $entityManager->getRepository(Category::class)->findAll();
  62.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  63.         return $this->render("home/index.html.twig",[
  64.             'articles'=> $articlemeta->findAll(),
  65.             'category'=> $category,
  66.             'sousCategory'=> $sousCategory,
  67.         ]);
  68.     }
  69.     public function user(EntityManagerInterface $entityManager)
  70.     {
  71.         $category $entityManager->getRepository(Category::class)->findAll();
  72.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  73.         return $this->render('user/user.html.twig', [
  74.             'category'=> $category,
  75.             'sousCategory'=> $sousCategory
  76.         ]);
  77.     }
  78.     /**
  79.      * *Récupérer les sous catégorie de la catégorie current
  80.      * 
  81.      * @Route("/home/getTabSousCat", name="getTab_SousCat")
  82.      */
  83.     public function getTabSousCat(Request $request,EntityManagerInterface $entityManager) : Response {
  84.         
  85.         $idCat $request->get('id');
  86.         $res=[];
  87.         $SousCat $entityManager->getRepository(SousCategory::class)->findBy([
  88.             'category' => $idCat]);
  89.         
  90.         foreach($SousCat as $SousCats){
  91.             array_push($res$SousCats->to_arraytabSousCat());
  92.         }
  93.         
  94.         return new JsonResponse($res);
  95.     }
  96.     /**
  97.      * @Route("/user/profil/modifier", name="/edit")
  98.      */
  99.     public function editProfil(request $requestUserPasswordHasherInterface $passwordHasher,EntityManagerInterface $entityManager)
  100.     {
  101.         if($request->isMethod('POST'))
  102.         {
  103.             /** @var User $user */
  104.             $user=$this->getUser();
  105.             //on vérifie si les deux mots de passe sont identiques
  106.             if($request->request->get('pass1')==$request->request->get('pass2')){
  107.                 $hashedPassword $passwordHasher->hashPassword($user,$request->get('pass1'));
  108.                 $user->setPassword($hashedPassword);
  109.                 $entityManager->flush();
  110.                 $this->addFlash('message','votre mot de passe a mis à jour avec succès');
  111.                 return $this->redirectToRoute('user');
  112.             }else{
  113.                 $this->addFlash('error','les deux mots de passe ne sont pas identiques');
  114.             }
  115.         }
  116.         $category $entityManager->getRepository(Category::class)->findAll();
  117.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  118.         return $this->render('user/editprofil.html.twig',['category'=> $category,
  119.         'sousCategory'=> $sousCategory,
  120.         ]);
  121.     }
  122.     public function add(EntityManagerInterface $entityManager)
  123.     {
  124.         $category $entityManager->getRepository(Category::class)->findAll();
  125.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  126.         return $this->render('home/add.html.twig',['category'=> $category,
  127.         'sousCategory'=> $sousCategory,
  128.         ]);
  129.     }
  130.     public function show($url,EntityManagerInterface $entityManager)
  131.     {
  132.         $category $entityManager->getRepository(Category::class)->findAll();
  133.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  134.         return $this->render('home/show.html.twig', [
  135.             'slug' => $url,
  136.             'category'=> $category,
  137.             'sousCategory'=> $sousCategory,
  138.         ]);
  139.     }
  140.     public function edit($id,EntityManagerInterface $entityManager)
  141.     {
  142.         $category $entityManager->getRepository(Category::class)->findAll();
  143.         $sousCategory $entityManager->getRepository(SousCategory::class)->findAll();
  144.         return $this->render('home/edit.html.twig', [
  145.             'slug' => $id,
  146.             'category'=> $category,
  147.             'sousCategory'=> $sousCategory,
  148.         ]);
  149.     }
  150.     public function remove($id)
  151.     {
  152.         return new Response('<h1>Delete ressource: ' .$id'</h1>');
  153.     }
  154.     /**
  155.      * Récupérer le nombre de choix
  156.      * 
  157.      * @Route("/home/getNbrChoix", name="getNbr_Choix")
  158.      */
  159.     public function getNbrChoix(EntityManagerInterface $entityManager) : Response {
  160.         $i 0;
  161.         $Chx $entityManager->getRepository(Choix::class)->findAll();
  162.         
  163.         $i count($Chx);
  164.         return new JsonResponse($i);
  165.     }
  166. }