src/Controller/ModelesController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Modele;
  4. use App\Form\ModeleType;
  5. use App\Repository\ModeleRepository;
  6. use App\Repository\ReseauRepository;
  7. use App\Repository\TypeDeviceRepository;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpClient\HttpClient;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class ModelesController extends AbstractController
  13. {
  14.     /**
  15.      * Affiche la page d'accueil
  16.      * @Route("/", name="home")
  17.      */
  18.     public function index()
  19.     {
  20.         return $this->render('home.html.twig');
  21.     }
  22.     /**
  23.      * Affiche la liste des modèles
  24.      * @Route("/modeles", name="modeles")
  25.      */
  26.     public function afficherModeles(ModeleRepository $modeleRepository)
  27.     {
  28.         $modeles $modeleRepository->findAll();
  29.         return $this->render('modeles/index.html.twig', [
  30.             'modeles' => $modeles,
  31.         ]);
  32.     }
  33.     /**
  34.      * Formulaire pour créer un modèle
  35.      * @Route("/modeles/creer_modele", name="creer_modele")
  36.      * 
  37.      */
  38.     public function creerModele(Request $requestTypeDeviceRepository $typeDeviceRepository)
  39.     {
  40.         $this->denyAccessUnlessGranted('ROLE_EDIT'); // restreindre l'accès si l'utilisateur n'a pas au moins le role EDIT.
  41.         $typesDevice $typeDeviceRepository->findAll();
  42.         $modele = new Modele();
  43.         $photo1 $modele->getPhoto1();
  44.         $photo2 $modele->getPhoto2();
  45.         $photo3 $modele->getPhoto3();
  46.         $form $this->createForm(ModeleType::class, $modele);
  47.         $form->handleRequest($request);
  48.         if ($form->isSubmitted() && $form->isValid()) {
  49.             $entityManager $this->getDoctrine()->getManager();
  50.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  51.             //Si photoForm est pas null ET photoBDD est null 
  52.             //OU
  53.             //Si photoForm est pas null ET photoBDD est pas null
  54.             if ((!empty($form['photo1']->getData()) && empty($photo1)) || (!empty($form['photo1']->getData()) && !empty($photo1))) {
  55.                 //On garde celle du formulaire
  56.                 $modele->setPhoto1(base64_encode(file_get_contents($form['photo1']->getData())));
  57.                 //Si photoForm est null ET photoBDD est pas null
  58.             } else if (empty($form['photo1']->getData() && !empty($photo1))) {
  59.                 //Si l'utilisateur a supprimé une image
  60.                 if ($_POST['isPhoto1'] == "deleted") {
  61.                     //La photo reste vide
  62.                     $modele->setPhoto1(null);
  63.                     //Si l'utilisateur n'a changé d'image
  64.                 } else if ($_POST['isPhoto1'] == "notChanged") {
  65.                     //On garde photoBDD
  66.                     $modele->setPhoto1($photo1);
  67.                     //Si l'utilisateur a changé de photo
  68.                 } else if($_POST['isPhoto1'] == "changed") {
  69.                     $modele->setPhoto1(base64_encode(file_get_contents($form['photo1']->getData())));
  70.                 }
  71.                 //Si les 2 sont null
  72.             } else {
  73.                 //La photo reste vide
  74.                 $modele->setPhoto1(null);
  75.             }
  76.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  77.             //Si photoForm est pas null ET photoBDD est null 
  78.             //OU
  79.             //Si photoForm est pas null ET photoBDD est pas null
  80.             if ((!empty($form['photo2']->getData()) && empty($photo2)) || (!empty($form['photo2']->getData()) && !empty($photo2))) {
  81.                 //On garde celle du formulaire
  82.                 $modele->setPhoto2(base64_encode(file_get_contents($form['photo2']->getData())));
  83.                 //Si photoForm est null ET photoBDD est pas null
  84.             } else if (empty($form['photo2']->getData() && !empty($photo2))) {
  85.                 //Si l'utilisateur a supprimé une image
  86.                 if ($_POST['isPhoto2'] == "deleted") {
  87.                     //La photo reste vide
  88.                     $modele->setPhoto2(null);
  89.                     //Si l'utilisateur n'a changé d'image
  90.                 } else if ($_POST['isPhoto2'] == "notChanged") {
  91.                     //On garde photoBDD
  92.                     $modele->setPhoto2($photo2);
  93.                 } else if($_POST['isPhoto2'] == "changed") {
  94.                     $modele->setPhoto2(base64_encode(file_get_contents($form['photo2']->getData())));
  95.                 }
  96.                 //Si les 2 sont null
  97.             } else {
  98.                 //La photo reste vide
  99.                 $modele->setPhoto2(null);
  100.             }
  101.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  102.             //Si photoForm est pas null ET photoBDD est null 
  103.             //OU
  104.             //Si photoForm est pas null ET photoBDD est pas null
  105.             if ((!empty($form['photo3']->getData()) && empty($photo3)) || (!empty($form['photo3']->getData()) && !empty($photo3))) {
  106.                 //On garde celle du formulaire
  107.                 $modele->setPhoto3(base64_encode(file_get_contents($form['photo3']->getData())));
  108.                 //Si photoForm est null ET photoBDD est pas null
  109.             } else if (empty($form['photo3']->getData() && !empty($photo3))) {
  110.                 //Si l'utilisateur a supprimé une image
  111.                 if ($_POST['isPhoto3'] == "deleted") {
  112.                     //La photo reste vide
  113.                     $modele->setPhoto3(null);
  114.                     //Si l'utilisateur n'a changé d'image
  115.                 } else if ($_POST['isPhoto3'] == "notChanged") {
  116.                     //On garde photoBDD
  117.                     $modele->setPhoto3($photo3);
  118.                 } else if($_POST['isPhoto3'] == "changed") {
  119.                     $modele->setPhoto3(base64_encode(file_get_contents($form['photo3']->getData())));
  120.                 }
  121.                 //Si les 2 sont null
  122.             } else {
  123.                 //La photo reste vide
  124.                 $modele->setPhoto3(null);
  125.             }
  126.             $entityManager->persist($modele);
  127.             $entityManager->flush();
  128.             return $this->redirectToRoute('modeles');
  129.         }
  130.         return $this->render('modeles/creer_modele.html.twig', [
  131.             'form' => $form->createView(),
  132.             'typesDevice' =>$typesDevice
  133.         ]);
  134.     }
  135.     /**
  136.      * Formulaire de modification d'un modèle
  137.      * @Route("/modeles/modifier_modele/{id_modele}", name="modifier_modele")
  138.      */
  139.     public function modifierModele(int $id_modeleModeleRepository $modeleRepositoryRequest $request)
  140.     {
  141.         $this->denyAccessUnlessGranted('ROLE_EDIT'); // restreindre l'accès si l'utilisateur n'a pas au moins le role EDIT.
  142.         $modele $modeleRepository->find($id_modele);
  143.         $photo1 $modele->getPhoto1();
  144.         $photo2 $modele->getPhoto2();
  145.         $photo3 $modele->getPhoto3();
  146.         $form $this->createForm(ModeleType::class, $modele);
  147.         $form->handleRequest($request);
  148.         if ($form->isSubmitted() && $form->isValid()) {
  149.             $entityManager $this->getDoctrine()->getManager();
  150.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  151.             //Si photoForm est pas null ET photoBDD est null 
  152.             //OU
  153.             //Si photoForm est pas null ET photoBDD est pas null
  154.             if ((!empty($form['photo1']->getData()) && empty($photo1)) || (!empty($form['photo1']->getData()) && !empty($photo1))) {
  155.                 //On garde celle du formulaire
  156.                 $modele->setPhoto1(base64_encode(file_get_contents($form['photo1']->getData())));
  157.                 //Si photoForm est null ET photoBDD est pas null
  158.             } else if (empty($form['photo1']->getData() && !empty($photo1))) {
  159.                 //Si l'utilisateur a supprimé une image
  160.                 if ($_POST['isPhoto1'] == "deleted") {
  161.                     //La photo reste vide
  162.                     $modele->setPhoto1(null);
  163.                     //Si l'utilisateur n'a changé d'image
  164.                 } else if ($_POST['isPhoto1'] == "notChanged") {
  165.                     //On garde photoBDD
  166.                     $modele->setPhoto1($photo1);
  167.                     //Si l'utilisateur a changé de photo
  168.                 } else if($_POST['isPhoto1'] == "changed") {
  169.                     $modele->setPhoto1(base64_encode(file_get_contents($form['photo1']->getData())));
  170.                 }
  171.                 //Si les 2 sont null
  172.             } else {
  173.                 //La photo reste vide
  174.                 $modele->setPhoto1(null);
  175.             }
  176.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  177.             //Si photoForm est pas null ET photoBDD est null 
  178.             //OU
  179.             //Si photoForm est pas null ET photoBDD est pas null
  180.             if ((!empty($form['photo2']->getData()) && empty($photo2)) || (!empty($form['photo2']->getData()) && !empty($photo2))) {
  181.                 //On garde celle du formulaire
  182.                 $modele->setPhoto2(base64_encode(file_get_contents($form['photo2']->getData())));
  183.                 //Si photoForm est null ET photoBDD est pas null
  184.             } else if (empty($form['photo2']->getData() && !empty($photo2))) {
  185.                 //Si l'utilisateur a supprimé une image
  186.                 if ($_POST['isPhoto2'] == "deleted") {
  187.                     //La photo reste vide
  188.                     $modele->setPhoto2(null);
  189.                     //Si l'utilisateur n'a changé d'image
  190.                 } else if ($_POST['isPhoto2'] == "notChanged") {
  191.                     //On garde photoBDD
  192.                     $modele->setPhoto2($photo2);
  193.                 } else if($_POST['isPhoto2'] == "changed") {
  194.                     $modele->setPhoto2(base64_encode(file_get_contents($form['photo2']->getData())));
  195.                 }
  196.                 //Si les 2 sont null
  197.             } else {
  198.                 //La photo reste vide
  199.                 $modele->setPhoto2(null);
  200.             }
  201.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  202.             //Si photoForm est pas null ET photoBDD est null 
  203.             //OU
  204.             //Si photoForm est pas null ET photoBDD est pas null
  205.             if ((!empty($form['photo3']->getData()) && empty($photo3)) || (!empty($form['photo3']->getData()) && !empty($photo3))) {
  206.                 //On garde celle du formulaire
  207.                 $modele->setPhoto3(base64_encode(file_get_contents($form['photo3']->getData())));
  208.                 //Si photoForm est null ET photoBDD est pas null
  209.             } else if (empty($form['photo3']->getData() && !empty($photo3))) {
  210.                 //Si l'utilisateur a supprimé une image
  211.                 if ($_POST['isPhoto3'] == "deleted") {
  212.                     //La photo reste vide
  213.                     $modele->setPhoto3(null);
  214.                     //Si l'utilisateur n'a changé d'image
  215.                 } else if ($_POST['isPhoto3'] == "notChanged") {
  216.                     //On garde photoBDD
  217.                     $modele->setPhoto3($photo3);
  218.                 } else if($_POST['isPhoto3'] == "changed") {
  219.                     $modele->setPhoto3(base64_encode(file_get_contents($form['photo3']->getData())));
  220.                 }
  221.                 //Si les 2 sont null
  222.             } else {
  223.                 //La photo reste vide
  224.                 $modele->setPhoto3(null);
  225.             }
  226.             $entityManager->persist($modele);
  227.             $entityManager->flush();
  228.             return $this->redirectToRoute('details_modele', [
  229.                 'id_modele' => $modele->getId(),
  230.             ]);
  231.         }
  232.         return $this->render('modeles/modifier_modele.html.twig', [
  233.             'form' => $form->createView(),
  234.             'modele' => $modele,
  235.         ]);
  236.     }
  237.     /**
  238.      * Formulaire de duplication d'un modèle
  239.      * @Route("/modeles/dupliquer_modele/{id_modele}", name="dupliquer_modele")
  240.      */
  241.     public function dupliquerModele(int $id_modeleModeleRepository $modeleRepositoryRequest $request)
  242.     {
  243.         $this->denyAccessUnlessGranted('ROLE_EDIT'); // restreindre l'accès si l'utilisateur n'a pas au moins le role EDIT.
  244.         $modele $modeleRepository->find($id_modele);
  245.         $newModele = clone $modele;
  246.         $photo1 $newModele->getPhoto1();
  247.         $photo2 $newModele->getPhoto2();
  248.         $photo3 $newModele->getPhoto3();
  249.         $form $this->createForm(ModeleType::class, $newModele);
  250.         $form->handleRequest($request);
  251.         if ($form->isSubmitted() && $form->isValid()) {
  252.             $entityManager $this->getDoctrine()->getManager();
  253.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  254.             //Si photoForm est pas null ET photoBDD est null 
  255.             //OU
  256.             //Si photoForm est pas null ET photoBDD est pas null
  257.             if ((!empty($form['photo1']->getData()) && empty($photo1)) || (!empty($form['photo1']->getData()) && !empty($photo1))) {
  258.                 //On garde celle du formulaire
  259.                 $newModele->setPhoto1(base64_encode(file_get_contents($form['photo1']->getData())));
  260.                 //Si photoForm est null ET photoBDD est pas null
  261.             } else if (empty($form['photo1']->getData() && !empty($photo1))) {
  262.                 //Si l'utilisateur a supprimé une image
  263.                 if ($_POST['isPhoto1'] == "deleted") {
  264.                     //La photo reste vide
  265.                     $newModele->setPhoto1(null);
  266.                     //Si l'utilisateur n'a changé d'image
  267.                 } else if ($_POST['isPhoto1'] == "notChanged") {
  268.                     //On garde photoBDD
  269.                     $newModele->setPhoto1($photo1);
  270.                     //Si l'utilisateur a changé de photo
  271.                 } else if($_POST['isPhoto1'] == "changed") {
  272.                     $newModele->setPhoto1(base64_encode(file_get_contents($form['photo1']->getData())));
  273.                 }
  274.                 //Si les 2 sont null
  275.             } else {
  276.                 //La photo reste vide
  277.                 $newModele->setPhoto1(null);
  278.             }
  279.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  280.             //Si photoForm est pas null ET photoBDD est null 
  281.             //OU
  282.             //Si photoForm est pas null ET photoBDD est pas null
  283.             if ((!empty($form['photo2']->getData()) && empty($photo2)) || (!empty($form['photo2']->getData()) && !empty($photo2))) {
  284.                 //On garde celle du formulaire
  285.                 $newModele->setPhoto2(base64_encode(file_get_contents($form['photo2']->getData())));
  286.                 //Si photoForm est null ET photoBDD est pas null
  287.             } else if (empty($form['photo2']->getData() && !empty($photo2))) {
  288.                 //Si l'utilisateur a supprimé une image
  289.                 if ($_POST['isPhoto2'] == "deleted") {
  290.                     //La photo reste vide
  291.                     $newModele->setPhoto2(null);
  292.                     //Si l'utilisateur n'a changé d'image
  293.                 } else if ($_POST['isPhoto2'] == "notChanged") {
  294.                     //On garde photoBDD
  295.                     $newModele->setPhoto2($photo2);
  296.                 } else if($_POST['isPhoto2'] == "changed") {
  297.                     $newModele->setPhoto2(base64_encode(file_get_contents($form['photo2']->getData())));
  298.                 }
  299.                 //Si les 2 sont null
  300.             } else {
  301.                 //La photo reste vide
  302.                 $modele->setPhoto2(null);
  303.             }
  304.             //Conditions d'ajout des photos dans la BDD à partir du formulaire
  305.             //Si photoForm est pas null ET photoBDD est null 
  306.             //OU
  307.             //Si photoForm est pas null ET photoBDD est pas null
  308.             if ((!empty($form['photo3']->getData()) && empty($photo3)) || (!empty($form['photo3']->getData()) && !empty($photo3))) {
  309.                 //On garde celle du formulaire
  310.                 $newModele->setPhoto3(base64_encode(file_get_contents($form['photo3']->getData())));
  311.                 //Si photoForm est null ET photoBDD est pas null
  312.             } else if (empty($form['photo3']->getData() && !empty($photo3))) {
  313.                 //Si l'utilisateur a supprimé une image
  314.                 if ($_POST['isPhoto3'] == "deleted") {
  315.                     //La photo reste vide
  316.                     $newModele->setPhoto3(null);
  317.                     //Si l'utilisateur n'a changé d'image
  318.                 } else if ($_POST['isPhoto3'] == "notChanged") {
  319.                     //On garde photoBDD
  320.                     $newModele->setPhoto3($photo3);
  321.                 } else if($_POST['isPhoto3'] == "changed") {
  322.                     $newModele->setPhoto3(base64_encode(file_get_contents($form['photo3']->getData())));
  323.                 }
  324.                 //Si les 2 sont null
  325.             } else {
  326.                 //La photo reste vide
  327.                 $newModele->setPhoto3(null);
  328.             }
  329.             $newModele = new Modele();
  330.             $newModele $form->getData();
  331.             $entityManager->persist($newModele);
  332.             $entityManager->flush();
  333.             return $this->redirectToRoute('modeles');
  334.         }
  335.         return $this->render('modeles/dupliquer_modele.html.twig', [
  336.             'form' => $form->createView(),
  337.             'modele' => $modele,
  338.         ]);
  339.     }
  340.     /**
  341.      * Affiche les détails d'un modèle via son ID passé en paramètre
  342.      * @Route("/modeles/details_modele/{id_modele}", name="details_modele")
  343.      */
  344.     public function detailsModele(int $id_modeleModeleRepository $modeleRepository)
  345.     {
  346.         $modele $modeleRepository->find($id_modele);
  347.         $form $this->createForm(ModeleType::class, $modele);
  348.         return $this->render('modeles/details_modele.html.twig', [
  349.             'form' => $form->createView(),
  350.             'modele' => $modele,
  351.         ]);
  352.     }
  353.     /**
  354.      * Archive un modèle
  355.      * @Route("/modeles/archiver/{id_modele}", name="archiver_modele")
  356.      */
  357.     public function archiver(int $id_modele)
  358.     {
  359.         $this->denyAccessUnlessGranted('ROLE_ADMIN'); // restreindre l'accès à l'action archiver si l'utilisateur n'a pas le role Admin.
  360.         $entityManager $this->getDoctrine()->getManager();
  361.         $modeleRepository $this->getDoctrine()->getRepository(Modele::class);
  362.         $modele $modeleRepository->find($id_modele)->setIsArchive(true);
  363.         $entityManager->persist($modele);
  364.         $entityManager->flush();
  365.         return $this->redirectToRoute('modeles');
  366.     }
  367.     /**
  368.      * Active un modèle archivé
  369.      * @Route("/modeles/activer/{id_modele}", name="activer_modele")
  370.      */
  371.     public function activer(int $id_modeleModeleRepository $modeleRepository)
  372.     {
  373.         $this->denyAccessUnlessGranted('ROLE_ADMIN'); // restreindre l'accès à l'action activer si l'utilisateur n'a pas le role Admin.
  374.         $entityManager $this->getDoctrine()->getManager();
  375.         $modele $modeleRepository->find($id_modele)->setIsArchive(false);
  376.         $entityManager->persist($modele);
  377.         $entityManager->flush();
  378.         return $this->redirectToRoute('modeles');
  379.     }
  380. }