app/Plugin/ApexOrderFields/Event.php line 87

Open in your IDE?
  1. <?php
  2. namespace Plugin\ApexOrderFields;
  3. use Eccube\Entity\Order;
  4. use Eccube\Event\TemplateEvent;
  5. use Plugin\ApexOrderFields\Repository\OrderFieldOrderRepository;
  6. use Plugin\ApexOrderFields\Repository\OrderFieldRepository;
  7. use Plugin\ApexOrderFields\Service\OrderFieldService;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\Form\FormFactoryInterface;
  10. class Event implements EventSubscriberInterface
  11. {
  12.     public function __construct(
  13.         OrderFieldRepository $orderFieldRepository,
  14.         OrderFieldOrderRepository $orderFieldOrderRepository,
  15.         FormFactoryInterface $formFactory,
  16.         OrderFieldService $orderFieldService
  17.     ){
  18.         $this->orderFieldRepository $orderFieldRepository;
  19.         $this->orderFieldOrderRepository $orderFieldOrderRepository;
  20.         $this->formFactory $formFactory;
  21.         $this->orderFieldService $orderFieldService;
  22.     }
  23.     
  24.     /**
  25.      * @return array
  26.      */
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [
  30.             'Shopping/index.twig' => 'index',
  31.             'Shopping/confirm.twig' => 'confirm',
  32.             'Mypage/history.twig' => 'onRenderMypageHistory',
  33.             '@admin/Order/edit.twig' => 'onRenderAdminOrderEdit',
  34.         ];
  35.     }
  36.     /**
  37.      * @param TemplateEvent $event
  38.      */
  39.     public function index(TemplateEvent $event)
  40.     {
  41.         $parameters $event->getParameters();
  42.         /** @var Order $Order */
  43.         $Order $parameters['Order'];
  44.         $orderFields $this->orderFieldRepository->findBy(
  45.             ['visible' => true],
  46.             ['id' => 'ASC']
  47.         );
  48.         $OrderFieldOrderForms = [];
  49.         foreach ($orderFields as $i=>$OrderField){
  50.             $form $this->orderFieldService->makeForm($Order$OrderField);
  51.             $OrderFieldOrderForms[$OrderField->getId()] = $form->createView(); 
  52.         }
  53.         $parameters['OrderFieldOrderForms'] = $OrderFieldOrderForms;
  54.         $event->setParameters($parameters);
  55.         $event->addSnippet('@ApexOrderFields/default/shopping_index.twig');
  56.     }
  57.     /**
  58.      * @param TemplateEvent $event
  59.      */
  60.     public function confirm(TemplateEvent $event)
  61.     {
  62.         $event->addSnippet('@ApexOrderFields/default/shopping_confirm.twig');
  63.     }
  64.     /**
  65.      * Hook point add coupon information to mypage history.
  66.      *
  67.      * @param TemplateEvent $event
  68.      */
  69.     public function onRenderMypageHistory(TemplateEvent $event)
  70.     {
  71.         $event->addSnippet('@ApexOrderFields/default/mypage_history.twig');
  72.     }
  73.     /**
  74.      * @param TemplateEvent $event
  75.      */
  76.     public function onRenderAdminOrderEdit(TemplateEvent $event)
  77.     {
  78.         // add twig
  79.         $event->addSnippet('@ApexOrderFields/admin/order_edit.twig');
  80.     }
  81. }