app/Plugin/KokokaraSelect/EventSubscriber/ShoppingEventSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright(c) 2020 SYSTEM_KD
  4.  * Date: 2020/05/24
  5.  */
  6. namespace Plugin\KokokaraSelect\EventSubscriber;
  7. use Eccube\Event\TemplateEvent;
  8. use Plugin\KokokaraSelect\Config\ConfigSetting;
  9. use Plugin\KokokaraSelect\Service\PlgConfigService\ConfigService;
  10. use Plugin\KokokaraSelect\Service\TwigRenderService\EventSubscriber\TwigRenderTrait;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. class ShoppingEventSubscriber implements EventSubscriberInterface
  13. {
  14.     use TwigRenderTrait;
  15.     /** @var ConfigService */
  16.     protected $configService;
  17.     public function __construct(
  18.         ConfigService $configService
  19.     )
  20.     {
  21.         $this->configService $configService;
  22.     }
  23.     /**
  24.      * ご注文手続きテンプレート
  25.      *
  26.      * @param TemplateEvent $event
  27.      */
  28.     public function onTemplateShopping(TemplateEvent $event)
  29.     {
  30.         if ($this->configService->isKeyBool(ConfigSetting::SETTING_KEY_SELECT_ITEM_VIEW_SHOPPING)) {
  31.             $this->viewKsSelectItem($event);
  32.         }
  33.     }
  34.     /**
  35.      * ご注文内容確認テンプレート
  36.      *
  37.      * @param TemplateEvent $event
  38.      */
  39.     public function onTemplateShoppingConfirm(TemplateEvent $event)
  40.     {
  41.         if ($this->configService->isKeyBool(ConfigSetting::SETTING_KEY_SELECT_ITEM_VIEW_CONFIRM)) {
  42.             $this->viewKsSelectItem($event);
  43.         }
  44.     }
  45.     private function viewKsSelectItem(TemplateEvent $event)
  46.     {
  47.         $this->initRenderService($event);
  48.         $child $this->twigRenderService
  49.             ->eachChildBuilder()
  50.             ->findThis()
  51.             ->targetFindAndIndexKey('#kokokara_select_item_''kokokaraSelectIndex')
  52.             ->setInsertModeAppend();
  53.         $this->twigRenderService
  54.             ->eachBuilder()
  55.             ->find('.ec-orderDelivery__item')
  56.             ->find('.ec-imageGrid')
  57.             ->find('.ec-imageGrid__content')
  58.             ->setEachIndexKey('kokokaraSelectIndex')
  59.             ->each($child->build());
  60.         $this->addTwigRenderSnippet('@KokokaraSelect/default/Shopping/index_ex.twig');
  61.     }
  62.     public static function getSubscribedEvents()
  63.     {
  64.         return [
  65.             'Shopping/index.twig' => ['onTemplateShopping', -20],
  66.             'Shopping/confirm.twig' => ['onTemplateShoppingConfirm', -20],
  67.         ];
  68.     }
  69. }