【EC-CUBE4】商品一覧ページのテンプレートを差し替えるプラグインを作る方法

EC-CUBE4の商品一覧のテンプレートをプラグインで用意したテンプレートに差し替える方法です。

まずは以下のコマンドでプラグインの雛形を作ります。

プラグインコードはなんでも良いのですが、今回は「ChangeTemplate」にしてください。

bin/console eccube:plugin:generate

テンプレートを用意

自動生成されたプラグイン一式内のResource/templateディレクトリ内にdefault/Product/list.twigファイルを設置してください。

商品一覧ページ

上記で作成したTwigファイルに差し替えるイベントを用意

Event.phpに以下のコードを追記してください。

<?php

namespace Plugin\ChangeTemplate;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Eccube\Event\TemplateEvent;

class Event implements EventSubscriberInterface
{
    public function __construct(\Twig_Environment $twig)
    {
        $this->twig = $twig;
    }
    
    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
            'Product/list.twig' => ['onTemplateRroductList', 999999]
        ];
    }
    
    public function onTemplateRroductList(TemplateEvent $event)
    {
        $source = $this->twig->getLoader()
            ->getSourceContext("@ChangeTemplate/default/Product/list.twig")
            ->getCode();
                
        $event->setSource($source);
    }
}

以上で完成です。

プラグインのインストールと有効化

プラグインのインストールと有効化を行うと適用されます。

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください