<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\Noshiproduct;
use Eccube\Entity\Order;
use Eccube\Event\TemplateEvent;
use Eccube\Repository\Master\ProductStatusRepository;
use Plugin\Noshiproduct\Repository\NoshiproductConfigRepository;
use Plugin\Noshiproduct\Repository\NoshiproductRepository;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class NoshiproductEvent implements EventSubscriberInterface
{
/**
* @var NoshiproductConfigRepository
*/
protected $noshiproductConfigRepository;
/**
* @var NoshiproductRepository
*/
protected $noshiproductRepository;
/**
* Noshiproduct constructor.
*
* @param NoshiproductConfigRepository $noshiproductConfigRepository
* @param NoshiproductRepository $noshiproductRepository
*/
public function __construct(
NoshiproductConfigRepository $noshiproductConfigRepository,
NoshiproductRepository $noshiproductRepository
) {
$this->noshiproductConfigRepository = $noshiproductConfigRepository;
$this->noshiproductRepository = $noshiproductRepository;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'Shopping/index.twig' => 'index',
'Shopping/confirm.twig' => 'confirm',
'Mypage/history.twig' => 'history',
'@admin/Order/edit.twig' => 'onAdminOrderEdit',
];
}
/**
* @param TemplateEvent $event
*/
public function index(TemplateEvent $event)
{
$event->addSnippet('Noshiproduct/Resource/template/default/shopping_index.twig');
$ConfigNoshiproduct = $this->noshiproductConfigRepository->get();
/** @var Order $Order */
$Order = $event->getParameter('Order');
$Noshiproducts = $this->noshiproductRepository->findBy(['order_id' => $Order]);
$parameters = $event->getParameters();
$parameters['Noshiproducts'] = $Noshiproducts;
$parameters['ConfigNoshiproduct'] = $ConfigNoshiproduct;
$event->setParameters($parameters);
}
public function confirm(TemplateEvent $event)
{
$event->addSnippet('Noshiproduct/Resource/template/default/shopping_confirm.twig');
$ConfigNoshiproduct = $this->noshiproductConfigRepository->get();
/** @var Order $Order */
$Order = $event->getParameter('Order');
$Noshiproducts = $this->noshiproductRepository->findBy(['order_id' => $Order]);
$parameters = $event->getParameters();
$parameters['Noshiproducts'] = $Noshiproducts;
$parameters['ConfigNoshiproduct'] = $ConfigNoshiproduct;
$event->setParameters($parameters);
}
public function history(TemplateEvent $event)
{
$event->addSnippet('Noshiproduct/Resource/template/default/mypage_history.twig');
$ConfigNoshiproduct = $this->noshiproductConfigRepository->get();
/** @var Order $Order */
$Order = $event->getParameter('Order');
$Noshiproducts = $this->noshiproductRepository->findBy(['order_id' => $Order]);
$parameters = $event->getParameters();
$parameters['Noshiproducts'] = $Noshiproducts;
$parameters['ConfigNoshiproduct'] = $ConfigNoshiproduct;
$event->setParameters($parameters);
}
public function onAdminOrderEdit(TemplateEvent $event)
{
$event->addSnippet('Noshiproduct/Resource/template/admin/admin_order_edit.twig');
$ConfigNoshiproduct = $this->noshiproductConfigRepository->get();
/** @var Order $Order */
$Order = $event->getParameter('Order');
$Noshiproducts = $this->noshiproductRepository->findBy(['order_id' => $Order]);
$parameters = $event->getParameters();
$parameters['Noshiproducts'] = $Noshiproducts;
$parameters['ConfigNoshiproduct'] = $ConfigNoshiproduct;
$event->setParameters($parameters);
}
}