app/Plugin/ShelvingOption4/ShelvingOptionEvent.php line 44

Open in your IDE?
  1. <?php
  2. namespace Plugin\ShelvingOption4;
  3. use Eccube\Event\EventArgs;
  4. use Eccube\Event\TemplateEvent;
  5. use Plugin\ShelvingOption4\Form\Type\ShelvingOptionType;
  6. use Plugin\ShelvingOption4\Repository\ShelvingOptionConfigRepository;
  7. use Plugin\ShelvingOption4\Repository\ShelvingOptionCartItemRepository;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\Form\FormFactoryInterface;
  10. class ShelvingOptionEvent implements EventSubscriberInterface
  11. {
  12.     /** @var ShelvingOptionConfigRepository $ShelvingOptionConfigRepository */
  13.     protected $ShelvingOptionConfigRepository;
  14.     /** @var ShelvingOptionCartItemRepository $ShelvingOptionCartItemRepository */
  15.     protected $ShelvingOptionCartItemRepository;
  16.     /** @var FormFactoryInterface $formFactory */
  17.     protected $formFactory;
  18.     public function __construct(
  19.         FormFactoryInterface $formFactory,
  20.         ShelvingOptionConfigRepository $ShelvingOptionConfigRepository,
  21.         ShelvingOptionCartItemRepository $ShelvingOptionCartItemRepository
  22.     ) {
  23.         $this->formFactory $formFactory;
  24.         $this->ShelvingOptionConfigRepository $ShelvingOptionConfigRepository;
  25.         $this->ShelvingOptionCartItemRepository $ShelvingOptionCartItemRepository;
  26.     }
  27.     /**
  28.      * @return array
  29.      */
  30.     public static function getSubscribedEvents()
  31.     {
  32.         // NOTE: 配列のキーはイベント名、値は呼び出すメソッド名
  33.         return [
  34.             'Product/detail.twig' => 'onDetail',
  35.         ];
  36.     }
  37.     public function onDetail(TemplateEvent $event)
  38.     {
  39. /*##DEL
  40.         // NOTE: @は多分プラグインルートっていう意味かもしれない
  41.         $twig = '@ShelvingOption4/default/Product/shelving_option.twig';
  42.         // NOTE: addSnippet()関数で指定したテンプレートを<body>タグの下部に追加できる
  43.         $event->addSnippet($twig);
  44. */
  45.         /** @var \ECCube\Entity\Product */
  46.         $Product $event->getParameter('Product');
  47.         $ShelvingOption $Product->getShelvingOption();
  48.         $event->setParameter('ShelvingOption'$ShelvingOption $ShelvingOption->toJson() : 'null');
  49.     }
  50. }