src/Controller/PagesController.php line 38

  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\HttpFoundation\Request;
  7. use Doctrine\Persistence\ManagerRegistry;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\HttpFoundation\File\UploadedFile;
  10. use Symfony\Component\HttpFoundation\File\File;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use App\Entity\Pages;
  13. use App\Form\PagesType;
  14. use OlaSoft\Common;
  15. /**
  16.  * @Route("/os-admin/pages", name="pages-")
  17.  */
  18. class PagesController extends AbstractController
  19. {
  20.     public function __construct(ManagerRegistry $doctrine){
  21.         $this->doctrine =  $doctrine;
  22.     }
  23.     
  24.     private $doctrine;
  25.     
  26.     public function getDoctrine()
  27.     {
  28.         return $this->doctrine;
  29.     }
  30.     
  31.     /**
  32.      * @Route("/",name="admin")
  33.      */
  34.     public function admin(Request $request$keywords=null,$offset=1)
  35.     {
  36.         $offset--;
  37.         $limit 200;
  38.         $of=$offset*$limit;
  39.         $em $this->getDoctrine()->getManager();
  40.         $list$em->getRepository(Pages::class)->findAll();
  41.         $ajax $request->isXmlHttpRequest();
  42.         $response $this->render('Admin\index.html.twig',[
  43.             'list'=>$list,
  44.             'ajax'=>$ajax,
  45.             'noResearch'=>true,
  46.             'addBtnClass'=>'btn-popup semi',
  47.             "title"=>"Gestion des pages ",
  48.             "subtitle"=>"Liste de toutes les pages"
  49.         ]);
  50.         return $ajax ?
  51.             new Response(\json_encode([
  52.                 'content'=>$response->getContent(),
  53.                 "title"=>"Gestion des pages ",
  54.                 "subtitle"=>"Liste de toutes les pages"
  55.             ]))
  56.         : $response;
  57.     }
  58.     /**
  59.      * @Route("/edit/{id}/",name="edit")
  60.      * @Route("/add/",name="new")
  61.      */
  62.     public function edit(Request $requestPages $item=null)
  63.     {
  64.         $em $this->getDoctrine()->getManager();
  65.         if($item===null){
  66.             $item=new Pages();
  67.             $item->setCreatedBy($this->getUser() ?? null);
  68.         }
  69.         else
  70.             $item->setUpdatedBy($this->getUser() ?? null);
  71.         $form=$this->createForm(PagesType::class,$item);
  72.         $form->handleRequest($request);
  73.         if($form->isSubmitted() && $form->isValid() ){
  74.             $item->setLastUpdate(new \DateTime);
  75.             if(!$item->getSlug()) $item->setSlug(Common::slug($item->getTitle()));
  76.             $item->setUser($this->getUser());
  77.             $em->persist($item);
  78.             $em->flush();
  79.             Common::trackChange($em$item$this->getUser(), 'edit'"Édition d'une page");
  80.             return $this->redirectToRoute("pages-admin");
  81.         }
  82.         $ajax $request->isXmlHttpRequest();
  83.         $response $this->render('Admin\edit.html.twig',[
  84.             'form'=>$form->createView(),
  85.             'ajax'=>$ajax,
  86.             "title"=>"Gestion des pages ",
  87.             "subtitle"=>"Edition d'une page"
  88.         ]);
  89.         return $ajax ?
  90.             new Response(\json_encode([
  91.                 'content'=>$response->getContent(),
  92.                 "title"=>"Gestion des pages ",
  93.                 "subtitle"=>"Edition d'une page"
  94.             ]))
  95.         : $response;
  96.     }
  97. }