app/Plugin/RecentlyViewedProducts/Controller/Block/RecentlyViewedProductController.php line 39

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the RecentlyViewedProducts Plugin
  4.  *
  5.  * Copyright (C) 2023 Diezon.
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Plugin\RecentlyViewedProducts\Controller\Block;
  11. use Eccube\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  15. use Plugin\RecentlyViewedProducts\Service\RecentlyViewedProductService;
  16. class RecentlyViewedProductController extends AbstractController
  17. {
  18.     /**
  19.      * @var RecentlyViewedProductService
  20.      */
  21.     protected $recentlyViewedProductService;
  22.     /**
  23.      * RecentlyViewedProductController constructor.
  24.      */
  25.     public function __construct(RecentlyViewedProductService $recentlyViewedProductService)
  26.     {
  27.         $this->recentlyViewedProductService $recentlyViewedProductService;
  28.     }
  29.     /**
  30.      * @Route("/block/recently_viewed_products", name="block_recently_viewed_products", methods={"GET"})
  31.      * @Template("Block/recently_viewed_products.twig")
  32.      */
  33.     public function index(Request $request)
  34.     {
  35.         $RecentlyViewedProducts array_map(function($RecentlyViewedProduct) {
  36.             return $RecentlyViewedProduct->getProduct();
  37.         }, $this->recentlyViewedProductService->getRecentlyViewedProducts());
  38.         return [
  39.             'RecentlyViewedProducts' => $RecentlyViewedProducts,
  40.         ];
  41.     }
  42.     /**
  43.      * @Route("/block/recently_viewed_products/clear", name="block_recently_viewed_products_clear")
  44.      */
  45.     public function clear(Request $request)
  46.     {
  47.         $this->recentlyViewedProductService->clear();
  48.         $referrer $request->headers->get('referer');
  49.         return $this->redirect($referrer);
  50.     }
  51. }