<?php
/*
* This file is part of the RecentlyViewedProducts Plugin
*
* Copyright (C) 2023 Diezon.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\RecentlyViewedProducts\Controller\Block;
use Eccube\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Plugin\RecentlyViewedProducts\Service\RecentlyViewedProductService;
class RecentlyViewedProductController extends AbstractController
{
/**
* @var RecentlyViewedProductService
*/
protected $recentlyViewedProductService;
/**
* RecentlyViewedProductController constructor.
*/
public function __construct(RecentlyViewedProductService $recentlyViewedProductService)
{
$this->recentlyViewedProductService = $recentlyViewedProductService;
}
/**
* @Route("/block/recently_viewed_products", name="block_recently_viewed_products", methods={"GET"})
* @Template("Block/recently_viewed_products.twig")
*/
public function index(Request $request)
{
$RecentlyViewedProducts = array_map(function($RecentlyViewedProduct) {
return $RecentlyViewedProduct->getProduct();
}, $this->recentlyViewedProductService->getRecentlyViewedProducts());
return [
'RecentlyViewedProducts' => $RecentlyViewedProducts,
];
}
/**
* @Route("/block/recently_viewed_products/clear", name="block_recently_viewed_products_clear")
*/
public function clear(Request $request)
{
$this->recentlyViewedProductService->clear();
$referrer = $request->headers->get('referer');
return $this->redirect($referrer);
}
}