src/Controller/ArticlesCategoriesController.php line 68

  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 Doctrine\Persistence\ManagerRegistry;
  9. use App\Entity\ArticlesCategories;
  10. use App\Form\ArticlesCategoriesType;
  11. use OlaSoft\Common;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use App\Entity\UsersActivities;
  14. /**
  15.  * @Route("/os-admin/articles/categories")
  16.  */
  17. class ArticlesCategoriesController extends AbstractController
  18. {
  19.     public function __construct(ManagerRegistry $doctrine){
  20.         $this->doctrine =  $doctrine;
  21.     }
  22.     
  23.     private $doctrine;
  24.     
  25.     public function getDoctrine()
  26.     {
  27.         return $this->doctrine;
  28.     }
  29.     /**
  30.      * @Route("/page/{offset}/",name="articlescategories-admin-page")
  31.      * @Route("/",name="articlescategories-admin")
  32.      */
  33.     public function index(Request $request$offset=1)
  34.     {
  35.         $count 0;
  36.         $offset--;
  37.         $limit 20;
  38.         $of=$offset*$limit;
  39.         $em $this->getDoctrine()->getManager();
  40.         $list=$em->getRepository(ArticlesCategories::class)->findBy(array(),array('id'=>'DESC'));
  41.         $ajax $request->isXmlHttpRequest();
  42.         $response $this->render('Admin\index.html.twig',[
  43.             'list'=>$list,
  44.             'ajax'=>$ajax,
  45.             'offset'=>$offset,
  46.             'count'=>$count,
  47.             'noResearch'=>true,
  48.             "title"=>"Gestion des catégories d'articles ",
  49.             "subtitle"=>"Liste des catégories"
  50.         ]);
  51.         return $ajax ?
  52.             new Response(\json_encode([
  53.                 'content'=>$response->getContent(),
  54.                 "title"=>"Gestion des catégories d'articles ",
  55.                 "subtitle"=>"Liste des catégories"
  56.             ]))
  57.         : $response;
  58.     }
  59.     /**
  60.      * @Route("/add/",name="articlescategories-new", defaults={"isEdit":false})
  61.      * @Route("/edit/{id}/",name="articlescategories-edit")
  62.      */
  63.     public function edit(Request $requestArticlesCategories $category=null$isEdit true)
  64.     {
  65.         $em $this->getDoctrine()->getManager();
  66.         if($category === null)
  67.             $category = new ArticlesCategories();
  68.         $form=$this->createForm(ArticlesCategoriesType::class,$category);
  69.         $form->handleRequest($request);
  70.         if($form->isSubmitted()){
  71.             if($form->isValid()){
  72.                 $category->setSlug(Common::slug($category->getName()));
  73.                 $em->persist($category);
  74.                 $em->flush();
  75.                 if ($isEdit)
  76.                     Common::trackChange($em$category$this->getUser(), 'add'"Ajout d'une catégorie d'article");
  77.                 else
  78.                     Common::trackChange($em$category$this->getUser(), 'edit'"Modification d'une catégorie d'article");
  79.                 $this->addFlash("notice","Enregistrement effectué avec succès");
  80.                 return $this->redirectToRoute("articlescategories-admin");
  81.             }
  82.         }
  83.         $ajax $request->isXmlHttpRequest();
  84.         $response $this->render('Admin\edit.html.twig',[
  85.             'form'=>$form->createView(),
  86.             'ajax'=>$ajax,
  87.             "title"=>"Gestion des catégories d'articles ",
  88.             "subtitle"=>"Edition d'une catégorie"
  89.         ]);
  90.         return $ajax ?
  91.             new Response(\json_encode([
  92.                 'content'=>$response->getContent(),
  93.                 "title"=>"Gestion des catégories d'articles ",
  94.                 "subtitle"=>"Edition d'une catégorie"
  95.             ]))
  96.         : $response;
  97.     }
  98.     
  99.     /**
  100.      * @Route("/{id}/enable", name="articlescategories-enable")
  101.      */
  102.     public function enable(Request $requestArticlesCategories $item)
  103.     {
  104.         $em $this->getDoctrine()->getManager();
  105.         $item->setIsEnabled(!$item->getIsEnabled());
  106.         $em->persist($item);
  107.         $em->flush();
  108.         Common::trackChange($em$item$this->getUser(), $item->getIsEnabled() ? 'enable' 'disable'$item->getIsEnabled() ? "Activation d'une catégorie d'article" "Désactivation d'une catégorie d'article");
  109.         $ajax $request->isXmlHttpRequest();
  110.         if(!$ajax$this->addFlash("notice","Activation / Désactivation effectuée avec succès.");
  111.         return $ajax
  112.             ? new Response(\json_encode(['status'=>$item->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.']))
  113.             : $this->redirectToRoute('articlescategories-admin');
  114.     }
  115. }