app/Plugin/JoolenCategoryIcon4/Event.php line 85

Open in your IDE?
  1. <?php
  2. /*
  3.  * Plugin Name: JoolenCategoryIcon4
  4.  *
  5.  * Copyright(c) joolen inc. All Rights Reserved.
  6.  *
  7.  * https://www.joolen.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Plugin\JoolenCategoryIcon4;
  13. use Plugin\JoolenCategoryIcon4\Repository\ConfigRepository;
  14. use Plugin\JoolenCategoryIcon4\Repository\CategoryImageRepository;
  15. class Event implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
  16. {
  17.     private $pluginName 'JoolenCategoryIcon4';
  18.     private $ConfigRepository null;
  19.     private $CategoryImageRepository null;
  20.     private $Config null;
  21.     /**
  22.      * Event constructor.
  23.      */
  24.     public function __construct(
  25.         ConfigRepository $ConfigRepository,
  26.         CategoryImageRepository $CategoryImageRepository
  27.     ) {
  28.         $this->ConfigRepository $ConfigRepository;
  29.         $this->CategoryImageRepository $CategoryImageRepository;
  30.         $this->Config $this->ConfigRepository->getConfig();
  31.     }
  32.     /**
  33.      * フックポイント一覧
  34.      *
  35.      * @return array
  36.      */
  37.     public static function getSubscribedEvents()
  38.     {
  39.         return [
  40.             // フロント画面
  41.             // ・PC画面のカテゴリーメニューに画像を差し込む
  42.             'JoolenCategoryIcon4/Resource/template/default/category_icon_pc.twig' => 'changeImageToNaviPc',
  43.             // ・SP画面のカテゴリーメニューに画像を差し込む
  44.             'JoolenCategoryIcon4/Resource/template/default/category_icon_sp.twig' => 'changeImageToNaviSp',
  45.         ];
  46.     }
  47.     /**
  48.      * PC画面のカテゴリーメニューに画像を差し込む
  49.      *
  50.      * スニペット差し込み
  51.      * 対象:ブロック管理の「カテゴリナビ(PC)」ブロック
  52.      *
  53.      * (1)カテゴリ名の表示部分を書き換え
  54.      *   <書き換え前>
  55.      *       <a href="{{ url('product_list') }}?category_id={{ Category.id }}">
  56.      *           {{ Category.name }}
  57.      *       </a>
  58.      *   <書き換え後>
  59.      *       <a href="{{ url('product_list') }}?category_id={{ Category.id }}" class="l-categorynav_list_pc">
  60.      *           <span id="category_icon_pc_{{ Category.id }}" class="l-categorynav_title">{{ Category.name }}</span>
  61.      *       </a>
  62.      *
  63.      * (2)最終行に下記を追記
  64.      *   {{ include('JoolenCategoryIcon4/Resource/template/default/category_icon_pc.twig', ignore_missing = true) }}
  65.      *
  66.      */
  67.     public function changeImageToNaviPc(\Eccube\Event\TemplateEvent $event)
  68.     {
  69.         // PC画面で表示しない場合は終了
  70.         if (!$this->Config->isDispPc()) {
  71.             return ;
  72.         }
  73.         log_info($this->pluginName ' changeImageToNaviPc start');
  74.         $parameters $event->getParameters();
  75.         // カテゴリー画像のデータをtwigへ渡す
  76.         $categoryImageFileNames = [];
  77.         foreach ($this->CategoryImageRepository->findAll() as $CategoryImage) {
  78.             $categoryImageFileNames[$CategoryImage->getCategoryId()] = $CategoryImage->getFileName();
  79.         }
  80.         $parameters['categoryImages'] = $categoryImageFileNames;
  81.         $event->setParameters($parameters);
  82.         log_info($this->pluginName ' changeImageToNaviPc finish');
  83.     }
  84.     /**
  85.      * SP画面のカテゴリーメニューに画像を差し込む
  86.      *
  87.      * スニペット差し込み
  88.      * 対象:ブロック管理の「カテゴリナビ(SP)」ブロック
  89.      *
  90.      * (1)カテゴリ名の表示部分を書き換え
  91.      *   <書き換え前>
  92.      *       <a href="{{ url('product_list') }}?category_id={{ Category.id }}">
  93.      *           {{ Category.name }}
  94.      *       </a>
  95.      *   <書き換え後>
  96.      *       <a href="{{ url('product_list') }}?category_id={{ Category.id }}" class="l-categorynav_list_sp">
  97.      *           <span id="category_icon_sp_{{ Category.id }}" class="l-categorynav_title">{{ Category.name }}</span>
  98.      *       </a>
  99.      *
  100.      * (2)最終行に下記を追記
  101.      *    {{ include('JoolenCategoryIcon4/Resource/template/default/category_icon_sp.twig', ignore_missing = true) }}
  102.      *
  103.      */
  104.     public function changeImageToNaviSp(\Eccube\Event\TemplateEvent $event)
  105.     {
  106.         // Sp画面で表示しない場合は終了
  107.         if (!$this->Config->isDispSp()) {
  108.             return ;
  109.         }
  110.         log_info($this->pluginName ' changeImageToNaviSp start');
  111.         $parameters $event->getParameters();
  112.         // カテゴリー画像のデータをtwigへ渡す
  113.         $categoryImageFileNames = [];
  114.         foreach ($this->CategoryImageRepository->findAll() as $CategoryImage) {
  115.             $categoryImageFileNames[$CategoryImage->getCategoryId()] = $CategoryImage->getFileName();
  116.         }
  117.         $parameters['categoryImages'] = $categoryImageFileNames;
  118.         $event->setParameters($parameters);
  119.         log_info($this->pluginName ' changeImageToNaviSp finish');
  120.     }
  121. }