src/Controller/BannersController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\Routing\Annotation\Method;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\Routing\Annotation\Security;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use App\Entity\Banners;
  11. use App\Form\BannersType;
  12. use App\Repository\BannersRepository;
  13. use OlaSoft\Common;
  14. /**
  15.  * @Route("/os-admin/banners", name="banners-")
  16.  */
  17. class BannersController extends AbstractController
  18. {
  19.     
  20.     /**
  21.      * @Route("/",name="admin")
  22.      */
  23.     public function indexAction()
  24.     {
  25.         $request $this->get('request_stack')->getCurrentRequest();
  26.         $em $this->getDoctrine()->getManager();
  27.         $list $em->getRepository(Banners::class)->findBy(array(),array('id'=>'DESC'));
  28.         $ajax $request->isXmlHttpRequest();
  29.         $response $this->render('Admin\index.html.twig',[
  30.             'list'=>$list,
  31.             'ajax'=>$ajax,
  32.             'noResearch'=>true,
  33.             "title"=> "Gestion des bannières",
  34.             "subtitle"=> "Liste des bannières"
  35.         ]);
  36.         return $ajax ?
  37.             new Response(\json_encode([
  38.                 'content'=>$response->getContent(),
  39.                 "title"=> "Gestion des bannières",
  40.                 "subtitle"=> "Liste des bannières"
  41.             ]))
  42.         : $response;
  43.     }
  44.     /**
  45.      * @Route("/add", name="new")
  46.      * @Route("/{id}/edit", name="edit")
  47.      */
  48.     public function edit(Banners $banner null)
  49.     {
  50.         if(!$banner)
  51.             $banner = new Banners;
  52.         $em $this->getDoctrine()->getManager();
  53.         $request $this->get('request_stack')->getCurrentRequest();
  54.         $form $this->createForm(BannersType::class, $banner);
  55.         $form->handleRequest($request);
  56.         if ($form->isSubmitted() && $form->isValid()){
  57.             $em->persist($banner);
  58.             $em->flush();
  59.             $this->addFlash("notice","Enregistrement effectué avec succès.");
  60.             return $this->redirectToRoute('banners-admin');
  61.         }
  62.         
  63.         $ajax $request->isXmlHttpRequest();
  64.         $response $this->render('Admin\edit.html.twig',[
  65.             'form'=>$form->createView(),
  66.             'ajax'=>$ajax,
  67.             "title"=> "Gestion des bannières",
  68.             "subtitle"=>"Edition d'une bannière "
  69.         ]);
  70.         return $ajax ?
  71.             new Response(\json_encode([
  72.                 'content'=>$response->getContent(),
  73.                 "title"=> "Gestion des bannières",
  74.                 "subtitle"=>"Edition d'une bannière "
  75.             ]))
  76.         : $response;
  77.      }
  78.     /**
  79.      * @Route("/{id}/enable/", name="enable")
  80.      */
  81.     public function enable(Banners $banner)
  82.     {
  83.         $request $this->get('request_stack')->getCurrentRequest();
  84.         $em $this->getDoctrine()->getManager();
  85.         $banner->setIsEnabled(!$banner->getIsEnabled());
  86.         $em->persist($banner);
  87.         $em->flush();
  88.         $ajax $request->isXmlHttpRequest();
  89.         if(!$ajax)
  90.             $this->addFlash("notice","Activation / Désactivation effectuée avec succès.");
  91.         return $ajax 
  92.             ? new Response(\json_encode(['status'=>$banner->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.']))
  93.             : $this->redirectToRoute('banners-admin');
  94.     }
  95. }