src/Controller/PagesController.php line 28

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\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpFoundation\File\UploadedFile;
  9. use Symfony\Component\HttpFoundation\File\File;
  10. use Doctrine\Common\Collections\ArrayCollection;
  11. use App\Entity\Pages;
  12. use App\Form\PagesType;
  13. use OlaSoft\Common;
  14. /**
  15.  * @Route("/os-admin/pages", name="pages-")
  16.  */
  17. class PagesController extends AbstractController
  18. {    
  19.     /**
  20.      * @Route("/",name="admin")
  21.      */
  22.     public function admin($keywords=null,$offset=1)
  23.     {
  24.         $request $this->get('request_stack')->getCurrentRequest();
  25.         $offset--;
  26.         $limit 200;
  27.         $of=$offset*$limit;
  28.         $em $this->getDoctrine()->getManager();
  29.         $list$em->getRepository(Pages::class)->findAll();
  30.         $ajax $request->isXmlHttpRequest();
  31.         $response $this->render('Admin\index.html.twig',[
  32.             'list'=>$list,
  33.             'ajax'=>$ajax,
  34.             'noResearch'=>true,
  35.             'addBtnClass'=>'btn-popup semi',
  36.             "title"=>"Gestion des pages",
  37.             "subtitle"=>"Liste de toutes les pages"
  38.         ]);
  39.         return $ajax ?
  40.             new Response(\json_encode([
  41.                 'content'=>$response->getContent(),
  42.                 "title"=>"Gestion des pages ",
  43.                 "subtitle"=>"Liste de toutes les pages"
  44.             ]))
  45.         : $response;
  46.     }
  47.     
  48.     /**
  49.      * @Route("/edit/{id}/",name="edit")
  50.      * @Route("/add/",name="new")
  51.      */
  52.     public function edit(Pages $article=null)
  53.     {
  54.         $docs = new ArrayCollection();
  55.         $pic null;
  56.         $requiredPic false;
  57.         $em $this->getDoctrine()->getManager();
  58.         $request $this->get('request_stack')->getCurrentRequest();
  59.         if($article===null){
  60.             $article=new Pages();
  61.             $article->setCreatedBy($this->getUser() ? $this->getUser() : null);
  62.         }
  63.         else{
  64.             $article->setUpdatedBy($this->getUser() ? $this->getUser() : null);
  65.         }
  66.         $form=$this->createForm(PagesType::class,$article,array('required' => $requiredPic));
  67.         $form->handleRequest($request);
  68.         if($form->isSubmitted()){
  69.             if($form->isValid()){
  70.                 $htmlCode=$article->getContent();
  71.                 $doc = new \DOMDocument();
  72.                 libxml_use_internal_errors(true);
  73.                 $doc->loadHTML($htmlCode,LIBXML_NOWARNING);//Chargement du contenu de l'article
  74.                 libxml_clear_errors();
  75.                 $article->setLastUpdate(new \DateTime);
  76.                 if($doc->textContent != html_entity_decode("<p>&nbsp;</p>")){
  77.                     if(!$article->getSlug())
  78.                         $article->setSlug(Common::slug($article->getTitle()));
  79.                     $article->setUser($this->getUser());
  80.                     
  81.                     $em->persist($article);
  82.                     $em->flush();
  83.                     return $this->redirectToRoute("pages-admin");
  84.                 }
  85.                 else
  86.                     $this->addFlash("error","Veuillez insérer le contenu de la page s'il vous plaît.");
  87.             }
  88.             else{
  89.                 foreach ($form->getErrors(true) as $error)
  90.                     $this->addFlash("error",$error->getMessage());
  91.             }
  92.         }
  93.         
  94.         $ajax $request->isXmlHttpRequest();
  95.         $response $this->render('Admin\edit.html.twig',[
  96.             'form'=>$form->createView(),
  97.             'ajax'=>$ajax,
  98.             "title"=>"Gestion des pages ",
  99.             "subtitle"=>"Edition d'une page"
  100.         ]);
  101.         return $ajax ?
  102.             new Response(\json_encode([
  103.                 'content'=>$response->getContent(),
  104.                 "title"=>"Gestion des pages ",
  105.                 "subtitle"=>"Edition d'une page"
  106.             ]))
  107.         : $response;
  108.     }
  109. }