src/Controller/Front/Modules/WishlistController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front\Modules;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use App\Manager\CustomerManager;
  5. use App\Manager\WishlistManager;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  11. use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
  12. class WishlistController extends \App\Controller\Front\FrontController
  13. {
  14.     
  15.     public function block(Request $requestCustomerManager $customerMgrWishlistManager $wishlistMgr)
  16.     {
  17.         $customer $customerMgr->getCustomer();
  18.         if(!empty($customer)){
  19.             $length $wishlistMgr->getCount($customer);
  20.         }else{
  21.             $length $wishlistMgr->getCountFromSession();
  22.         }
  23.         return $this->render('front/modules/wishlist/block.html.twig',['length'=>$length]);
  24.     }
  25.     
  26.     /**
  27.      * @Route("/aj/wishlist/add", name="wishlist_add")
  28.      */
  29.     public function add(Request $requestCustomerManager $customerMgrWishlistManager $wishlistMgr)
  30.     {
  31.         $customer $customerMgr->getCustomer();
  32.         $output = ['success'=>false];
  33.         try{
  34.             if($request->isMethod('POST')){
  35.                 $product $request->get('product','');
  36.                 if(!empty($product)){
  37.                     $add $wishlistMgr->add($product,$customer);
  38.                     if($add)
  39.                         $output['success']=$add;
  40.                 }
  41.             }
  42.         } catch (\Exception $ex) {
  43.             $output['message']=$ex->getMessage();
  44.         }
  45.         $response = new JsonResponse();
  46.         $response->setContent(json_encode($output));
  47.         $response->setStatusCode(200);
  48.         return $response;
  49.     }
  50.     
  51.     /**
  52.      * @Route("/aj/wishlist/remove", name="wishlist_remove")
  53.      */
  54.     public function remove(Request $requestCustomerManager $customerMgrWishlistManager $wishlistMgr)
  55.     {
  56.         $customer $customerMgr->getCustomer();
  57.         $output = ['success'=>false];
  58.         try{
  59.             if($request->isMethod('POST')){
  60.                 $product $request->get('product','');
  61.                 if(!empty($product)){
  62.                     $output['success']=$wishlistMgr->remove($product,$customer);
  63.                 }
  64.             }
  65.         } catch (\Exception $ex) {
  66.             $output['message']=$ex->getMessage();
  67.         }
  68.         $response = new JsonResponse();
  69.         $response->setContent(json_encode($output));
  70.         $response->setStatusCode(200);
  71.         return $response;
  72.     }
  73.     
  74.     /**
  75.      * @Route("/{_locale}/wishlist", name="wishlist", requirements={"_locale":"fr|en"})
  76.      */
  77.     public function list(Request $request, \Symfony\Component\HttpFoundation\Session\Session $sessionCustomerManager $customerMgrWishlistManager $wishlistMgr, \Symfony\Contracts\Translation\TranslatorInterface $translator)
  78.     {
  79.         $em $this->getDoctrine()->getManager();
  80.         $sort $request->get('sort','createdAt');
  81.         $customer $customerMgr->getCustomer();
  82.         $wishlistMgr->check();
  83.         if(!empty($customer)){
  84.             $products $wishlistMgr->getProducts($customer,$sort);
  85.         }else{
  86.             $session->getFlashBag()->add('error',$translator->trans('Veuillez vous identifier pour accéder à votre liste d\'envie.'));
  87.             return $this->redirectToRoute('customer_login',['from'=>'wishlist']);
  88.             $products $wishlistMgr->getSessionProducts($session,$sort);
  89.         }
  90.         return $this->render('front/modules/wishlist/view.html.twig',[
  91.             'customer' => $customer,
  92.             'products' => $products
  93.         ]);
  94.     }
  95.     
  96. }