app/Plugin/Productset42/Event.php line 269

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Productset
  4.  *
  5.  * Copyright (C) 2018 Diezon.
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Plugin\Productset42;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. use Eccube\Event\EccubeEvents;
  13. use Eccube\Event\EventArgs;
  14. use Eccube\Event\TemplateEvent;
  15. use Plugin\Productset42\Controller\Front\Mypage\MypageController;
  16. use Plugin\Productset42\Controller\Front\FrontProductController;
  17. use Plugin\Productset42\Controller\Front\CartController;
  18. use Plugin\Productset42\Controller\Front\ShoppingController;
  19. use Plugin\Productset42\Controller\Admin\Product\ProductController;
  20. use Plugin\Productset42\Controller\Admin\Product\ProductClassController;
  21. use Plugin\Productset42\Controller\Admin\Order\OrderController;
  22. use Plugin\Productset42\Controller\Admin\Order\EditController;
  23. class Event implements EventSubscriberInterface
  24. {
  25.     /**
  26.      * @var MypageController
  27.      */
  28.     private $mypageController;
  29.     /**
  30.      * @var FrontProductController
  31.      */
  32.     private $frontProductController;
  33.     /**
  34.      * @var CartController
  35.      */
  36.     private $cartController;
  37.     /**
  38.      * @var ShoppingController
  39.      */
  40.     private $shoppingController;
  41.     /**
  42.      * @var ProductController
  43.      */
  44.     private $productController;
  45.     /**
  46.      * @var ProductClassController
  47.      */
  48.     private $productClassController;
  49.     /**
  50.      * @var OrderController
  51.      */
  52.     private $orderController;
  53.     /**
  54.      * @var EditController
  55.      */
  56.     private $editController;
  57.     /**
  58.      * @param FrontProductController $frontProductController
  59.      * @param CartController $cartController
  60.      * @param ProductController $productController
  61.      * @param ProductClassController $productClassController
  62.      * @param OrderController $orderController
  63.      * @param EditController $editController
  64.      */
  65.     public function __construct(MypageController $mypageController,
  66.                                 FrontProductController $frontProductController,
  67.                                 CartController $cartController,
  68.                                 ShoppingController $shoppingController,
  69.                                 ProductController $productController,
  70.                                 ProductClassController $productClassController,
  71.                                 OrderController $orderController,
  72.                                 EditController $editController)
  73.     {
  74.         $this->mypageController $mypageController;
  75.         $this->frontProductController $frontProductController;
  76.         $this->cartController $cartController;
  77.         $this->shoppingController $shoppingController;
  78.         $this->productController $productController;
  79.         $this->productClassController $productClassController;
  80.         $this->orderController $orderController;
  81.         $this->editController $editController;
  82.     }
  83.     /**
  84.      * 定数からメソッド名を作成する
  85.      *
  86.      * @param CONST
  87.      * @return methodName
  88.      */
  89.     private static function getMethodName($const)
  90.     {
  91.         $words explode('.'$const);
  92.         $methodName null;
  93.         foreach ($words as $word) {
  94.             $methodName .= ucfirst($word);
  95.         }
  96.         $methodName 'on' $methodName;
  97.         return $methodName;
  98.     }
  99.     /**
  100.      * 使用するイベントを設定する
  101.      *
  102.      * @return array
  103.      */
  104.     public static function getSubscribedEvents()
  105.     {
  106.         return [
  107.             'Mypage/history.twig' => 'onRenderFrontMypageHistory',
  108.             'Cart/index.twig' => 'onRenderFrontCartIndex',
  109.             'Shopping/index.twig' => 'onRenderFrontShopping',
  110.             'Shopping/confirm.twig' => 'onRenderFrontShopping',
  111.             'Product/list.twig' => 'onRenderFrontProductList',
  112.             'Product/detail.twig' => 'onRenderFrontProductDetail',
  113.             '@admin/Product/index.twig' => 'onRenderAdminProductIndex',
  114.             '@admin/Product/product.twig' => 'onRenderAdminProductProduct',
  115.             EccubeEvents::ADMIN_PRODUCT_CSV_EXPORT => self::getMethodName(EccubeEvents::ADMIN_PRODUCT_CSV_EXPORT),
  116.             '@admin/Product/product_class.twig' => 'onRenderAdminProductProductClass',
  117.             EccubeEvents::ADMIN_ORDER_CSV_EXPORT_ORDER => self::getMethodName(EccubeEvents::ADMIN_ORDER_CSV_EXPORT_ORDER),
  118.             EccubeEvents::ADMIN_ORDER_CSV_EXPORT_SHIPPING => self::getMethodName(EccubeEvents::ADMIN_ORDER_CSV_EXPORT_SHIPPING),
  119.             EccubeEvents::ADMIN_ORDER_EDIT_INDEX_COMPLETE => self::getMethodName(EccubeEvents::ADMIN_ORDER_EDIT_INDEX_COMPLETE),
  120.             '@admin/Order/edit.twig' => 'onRenderAdminOrderEdit',
  121.         ];
  122.     }
  123.     // --------------------------------------------------------------------------------
  124.     // Mypage\MypageController
  125.     /**
  126.      * history
  127.      */
  128.     /**
  129.      * Mypage/history.twig
  130.      *
  131.      * @param TemplateEvent $event
  132.      */
  133.     public function onRenderFrontMypageHistory(TemplateEvent $event)
  134.     {
  135.         $this->mypageController->onRenderFrontMypageHistory($event);
  136.     }
  137.     // --------------------------------------------------------------------------------
  138.     // CartController
  139.     /**
  140.      * index
  141.      */
  142.     /**
  143.      * Cart/index.twig
  144.      *
  145.      * @param TemplateEvent $event
  146.      */
  147.     public function onRenderFrontCartIndex(TemplateEvent $event)
  148.     {
  149.         $this->cartController->onRenderFrontCartIndex($event);
  150.     }
  151.     // --------------------------------------------------------------------------------
  152.     // ShoppingController
  153.     /**
  154.      * index
  155.      */
  156.     /**
  157.      * Shopping/index.twig
  158.      *
  159.      * @param TemplateEvent $event
  160.      */
  161.     public function onRenderFrontShopping(TemplateEvent $event)
  162.     {
  163.         $this->shoppingController->onRenderFrontShopping($event);
  164.     }
  165.     // --------------------------------------------------------------------------------
  166.     // ProductController
  167.     /**
  168.      * Product/detail.twig
  169.      *
  170.      * @param TemplateEvent $event
  171.      */
  172.     public function onRenderFrontProductList(TemplateEvent $event)
  173.     {
  174.         $this->frontProductController->onRenderFrontProductList($event);
  175.     }
  176.     /**
  177.      * Product/detail.twig
  178.      *
  179.      * @param TemplateEvent $event
  180.      */
  181.     public function onRenderFrontProductDetail(TemplateEvent $event)
  182.     {
  183.         $this->frontProductController->onRenderFrontProductDetail($event);
  184.     }
  185.     // --------------------------------------------------------------------------------
  186.     // Admin\Product\ProductController
  187.     /**
  188.      * index
  189.      */
  190.     /**
  191.      * Admin/Product/index.twig
  192.      *
  193.      * @param TemplateEvent $event
  194.      */
  195.     public function onRenderAdminProductIndex(TemplateEvent $event)
  196.     {
  197.         $this->productController->onRenderAdminProductIndex($event);
  198.     }
  199.     /**
  200.      * edit
  201.      */
  202.     /**
  203.      * Admin/Product/product.twig
  204.      *
  205.      * @param TemplateEvent $event
  206.      */
  207.     public function onRenderAdminProductProduct(TemplateEvent $event)
  208.     {
  209.         $this->productController->onRenderAdminProductProduct($event);
  210.     }
  211.     /**
  212.      * export
  213.      */
  214.     /**
  215.      * admin.product.csv.export
  216.      *
  217.      * @param EventArgs $event
  218.      */
  219.     public function onAdminProductCsvExport(EventArgs $event)
  220.     {
  221.         $this->productController->onAdminProductCsvExport($event);
  222.     }
  223.     // --------------------------------------------------------------------------------
  224.     // Admin\Product\ProductClassController
  225.     /**
  226.      * index
  227.      */
  228.     /**
  229.      * Admin/Product/product_class.twig
  230.      *
  231.      * @param TemplateEvent $event
  232.      */
  233.     public function onRenderAdminProductProductClass(TemplateEvent $event)
  234.     {
  235.         $this->productClassController->onRenderAdminProductProductClass($event);
  236.     }
  237.     // --------------------------------------------------------------------------------
  238.     // Admin\Order\OrderController
  239.     /**
  240.      * exportOrder
  241.      */
  242.     /**
  243.      * admin.order.csv.export.order
  244.      *
  245.      * @param EventArgs $event
  246.      */
  247.     public function onAdminOrderCsvExportOrder(EventArgs $event)
  248.     {
  249.         $this->orderController->onAdminOrderCsvExportOrder($event);
  250.     }
  251.     /**
  252.      * exportShipping
  253.      */
  254.     /**
  255.      * admin.order.csv.export.shipping
  256.      *
  257.      * @param EventArgs $event
  258.      */
  259.     public function onAdminOrderCsvExportShipping(EventArgs $event)
  260.     {
  261.         $this->orderController->onAdminOrderCsvExportShipping($event);
  262.     }
  263.     // --------------------------------------------------------------------------------
  264.     // Admin\Order\EditController
  265.     /**
  266.      * index
  267.      */
  268.     /**
  269.      * admin.order.edit.index.complete
  270.      *
  271.      * @param EventArgs $event
  272.      */
  273.     public function onAdminOrderEditIndexComplete(EventArgs $event)
  274.     {
  275.         $this->editController->onAdminOrderEditIndexComplete($event);
  276.     }
  277.     // --------------------------------------------------------------------------------
  278.     // Admin\Order\EditController
  279.     /**
  280.      * Admin/Order/edit.twig
  281.      *
  282.      * @param TemplateEvent $event
  283.      */
  284.     public function onRenderAdminOrderEdit(TemplateEvent $event)
  285.     {
  286.         $this->editController->onRenderAdminOrderEdit($event);
  287.     }
  288. }