app/Plugin/GmoPs42/EventDispatcher/EventSubscriber.php line 31

Open in your IDE?
  1. <?php
  2. namespace Plugin\GmoPs42\EventDispatcher;
  3. use Eccube\Entity\Order;
  4. use Eccube\Entity\Payment;
  5. use Eccube\Event\TemplateEvent;
  6. use Plugin\GmoPs42\Form\Type\Admin\PdType;
  7. use Plugin\GmoPs42\Service\Method\GmoPs;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\Form\FormFactoryInterface;
  10. class EventSubscriber implements EventSubscriberInterface
  11. {
  12.     /** @var FormFactoryInterface */
  13.     private $formFactory;
  14.     public function __construct(FormFactoryInterface $formFactory)
  15.     {
  16.         $this->formFactory $formFactory;
  17.     }
  18.     public static function getSubscribedEvents()
  19.     {
  20.         return [
  21.             'Shopping/index.twig' => 'onTwigShoppingIndex',
  22.             '@admin/Order/edit.twig' => 'onTwigAdminOrderEdit',
  23.         ];
  24.     }
  25.     public function onTwigShoppingIndex(TemplateEvent $event)
  26.     {
  27.         $event->addSnippet('@GmoPs42/Shopping/_index.twig');
  28.     }
  29.     public function onTwigAdminOrderEdit(TemplateEvent $event)
  30.     {
  31.         $event->addSnippet('@GmoPs42/admin/Order/_edit.twig');
  32.         /** @var Order $order */
  33.         $order $event->getParameter('Order');
  34.         // Order が存在しない場合は非表示
  35.         if (!$order || !$order->getId()) {
  36.             $event->setParameter('gmops_disp'false);
  37.             return;
  38.         }
  39.         // GMO後払い情報が存在せず、決済がGMO後払い以外の場合には非表示
  40.         /** @var Payment $payment */
  41.         $payment $order->getPayment();
  42.         if ((!$order->getOrderPayments() || $order->getOrderPayments()->count() === 0) && (!$payment || $payment->getMethodClass() !== GmoPs::class)) {
  43.             $event->setParameter('gmops_disp'false);
  44.             return;
  45.         }
  46.         $form $this->formFactory->create(PdType::class, null, [
  47.             'order' => $order,
  48.         ]);
  49.         $event->setParameter('gmops_disp'true);
  50.         $event->setParameter('pd_form'$form->createView());
  51.     }
  52. }