app/Plugin/EccubePaymentLite4/EventListener/EventSubscriber/Front/Mypage/AddNavEventSubscriber.php line 57

Open in your IDE?
  1. <?php
  2. namespace Plugin\EccubePaymentLite4\EventListener\EventSubscriber\Front\Mypage;
  3. use Eccube\Common\EccubeConfig;
  4. use Eccube\Event\TemplateEvent;
  5. use Plugin\EccubePaymentLite4\Entity\Config;
  6. use Plugin\EccubePaymentLite4\Repository\ConfigRepository;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class AddNavEventSubscriber implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var ConfigRepository
  12.      */
  13.     private $configRepository;
  14.     /**
  15.      * @var EccubeConfig
  16.      */
  17.     protected $eccubeConfig;
  18.     public function __construct(
  19.         ConfigRepository $configRepository,
  20.         EccubeConfig $eccubeConfig
  21.     ) {
  22.         $this->configRepository $configRepository;
  23.         $this->eccubeConfig $eccubeConfig;
  24.     }
  25.     public static function getSubscribedEvents()
  26.     {
  27.         return [
  28.             'Mypage/index.twig' => 'index',
  29.             'Mypage/history.twig' => 'index',
  30.             'Mypage/favorite.twig' => 'index',
  31.             'Mypage/change.twig' => 'index',
  32.             'Mypage/change_complete.twig' => 'index',
  33.             'Mypage/delivery.twig' => 'index',
  34.             'Mypage/withdraw.twig' => 'index',
  35.             'Mypage/delivery_edit.twig' => 'index',
  36.             '@EccubePaymentLite4/default/Mypage/edit_credit_card.twig' => 'index',
  37.             '@EccubePaymentLite4/default/Mypage/regular_list.twig' => 'index',
  38.             '@EccubePaymentLite4/default/Mypage/regular_detail.twig' => 'index',
  39.             '@EccubePaymentLite4/default/Mypage/regular_cycle.twig' => 'index',
  40.             '@EccubePaymentLite4/default/Mypage/regular_cancel.twig' => 'index',
  41.             '@EccubePaymentLite4/default/Mypage/regular_complete.twig' => 'index',
  42.             '@EccubePaymentLite4/default/Mypage/regular_next_delivery_date.twig' => 'index',
  43.             '@EccubePaymentLite4/default/Mypage/regular_product_quantity.twig' => 'index',
  44.             '@EccubePaymentLite4/default/Mypage/regular_resume.twig' => 'index',
  45.             '@EccubePaymentLite4/default/Mypage/regular_shipping.twig' => 'index',
  46.             '@EccubePaymentLite4/default/Mypage/regular_skip.twig' => 'index',
  47.             '@EccubePaymentLite4/default/Mypage/regular_suspend.twig' => 'index',
  48.         ];
  49.     }
  50.     public function index(TemplateEvent $event)
  51.     {
  52.         /** @var Config $Config */
  53.         $Config $this->configRepository->find(1);
  54.         $paymentIds $Config->getGmoEpsilonPayments()->map(function ($GmoEpsilonPayment) {
  55.             return $GmoEpsilonPayment->getId();
  56.         })->toArray();
  57.         if (count($paymentIds) > 0) {
  58.             if (in_array($this->eccubeConfig['gmo_epsilon']['pay_id']['credit'], $paymentIds) ||
  59.                 in_array($this->eccubeConfig['gmo_epsilon']['pay_id']['reg_credit'], $paymentIds)) {
  60.                 $event->addSnippet('@EccubePaymentLite4/default/Mypage/Nav/nav_credit_card.twig');
  61.             }
  62.         }
  63.         if ($Config->getRegular()) {
  64.             $event->addSnippet('@EccubePaymentLite4/default/Mypage/Nav/nav_regular_index.twig');
  65.         }
  66.     }
  67. }