Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (48 sloc) 2.44 KB
title keywords tags sidebar permalink summary
プラグインによる利用しないページの無効化
plugin ページ削除
plugin
tutorial
home_sidebar
plugin_tutorial-pagedelete
プラグインでページを既存のページを無効化する手順について、解説します。

概要

EC-CUBE本体で定義されているページを、利用しない場合もあるかと思います。
その場合は、利用できないようにしておくほうが安全です。
ここでは、利用しないページで404エラーを返す手順について解説します。

前提

プラグインジェネレータで、プラグインコードを「Customize」で作成したものとして、解説していきます。
プラグインジェネレータの利用方法については、こちらを参照してください。

Controllerの作成

app/Plugin/Customize/Contoroller配下に、Controllerを作成します。
ファイル名は、NotFoundController.phpとしてください。

<?php

namespace Plugin\Customize\Controller;

use Eccube\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class NotFoundController
{
    public function index(Application $app, Request $request)
    {
        // 常にNotFoundHttpExceptionをthrowする.
        throw new NotFoundHttpException();
    }
}

ServiceProviderでルーティングを定義する

app/Plugin/Customize/ServiceProvider/CustomizeServiceProviderに、ルーティングを定義します。
例えば、お問い合わせページを無効化したい場合、registerメソッド内に、以下のように記載をしてください。

class CustomizeServiceProvider implements ServiceProviderInterface
{
    public function register(BaseApplication $app)
    {
        // お問い合わせページの削除
        $app->match('/contact', 'Plugin\Customize\Controller\NotFoundController::index')->bind('contact');

http://[EC-CUBEインストール先]/contactにアクセスし、ページがありませんのエラー画面が表示されれば成功です。

ルーティングの確認方法

EC-CUBE本体で定義されているルーティング/URLを確認する場合は、router:debugコマンドで確認できます。
詳しくはrouter:debugの使い方を参考にしてください。