<?php
namespace Plugin\DataDownload42\EventSubscriber\Controller\Admin;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Form\FormFactoryInterface;
use Eccube\Entity\Product;
use Eccube\Entity\Member;
use Eccube\Repository\ProductRepository;
use Eccube\Event\TemplateEvent;
use Eccube\Event\EventArgs;
use Eccube\Event\EccubeEvents;
use Eccube\Common\EccubeConfig;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\File\File;
use Plugin\DataDownload42\Repository\DataDownloadRepository;
class ProductControllerSubscriber implements EventSubscriberInterface
{
/**
* @var DataDownloadRepository
*/
protected $dataDownloadRepository;
/**
* ProductController constructor.
*
* @param DataDownloadRepository $dataDownloadRepository
*/
public function __construct(
DataDownloadRepository $dataDownloadRepository
) {
$this->dataDownloadRepository = $dataDownloadRepository;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'@admin/Product/product.twig' => ['DataDownload', 1],
];
}
/**
* @param TemplateEvent $event
*/
public function DataDownload(TemplateEvent $event)
{
$event->addSnippet('@DataDownload42/admin/Product/product.twig');
$Product = $event->getParameter('Product');
if ($Product->getId() == null) {
return;
}
$Users = $this->dataDownloadRepository->findCustomer(['Product' => $Product]);
$parameters = $event->getParameters();
$parameters['Users'] = $Users;
$event->setParameters($parameters);
}
}