【EC-CUBE 4】新規ページのURLから「user_data」を消す方法

管理ページから新規ページを作るとき、URLから「user_data」を削除するには?

この記事では、管理ページから作成した新規ページのURLから「user_data」を削除する方法を紹介します。新規ページのControllerも合わせて作成できるので、カスタマイズ初心者にもオススメです。
ぜひ、参考にしてみてください!

【動作環境】
EC CUBEのバージョン:4.1.2
サーバー:Xserver

なおデバッグモードを設定しておくと、エラーが起きたときに詳細情報が表示されるようになります。
エラー箇所を探しやすくなるので、開発前に設定しておくのをオススメします。
デバッグモードの設定方法については こちらの記事 で解説しています。

各種プラグインとの整合性は確認しておりませんので、ご留意お願いします。
まず流れを掴んでおくために、この記事と同じ「Sampleページ」を試しに作ってみることをオススメします。

目次

全体の流れ

まずは全体の流れをさらっと把握しておきます。
各項目の詳しい説明は次項にて。

  1. EC CUBE 管理画面にて、新規ページを作成。
  2. ファイル管理にて、新規ページのTwigファイルを「app/template/default」にコピー。
    管理画面から作成したページのTwigファイルは「app/template/user_data」にあります。
  3. 好きなURLと新規ページをつなぐためのcontrollerファイルを、「app/Customize/Controller」に作成。
  4. データベースにて、新規ページの「edit_type」を”0″ → “2”に変更。
  5. EC CUBE 管理画面にて、キャッシュを削除。

各ステップの詳細

「◯◯(ドメイン名)/user_data/sample」というURLから、
「◯◯(ドメイン名)/sample」に変更するときの手順を紹介します。

URL修正前(「user_data」あり)
URL修正後(「user_data」なし)

なお、操作にはEC-CUBEの管理画面に加えて、ファイルサーバーデータベースにアクセスする必要があります。
(著者はXserverを使用しているので、以降の説明にはXserverの操作画面が出てきます。)

またControllerファイルを作成する必要があるので、VS Codeなどのエディターがあると便利です。

ファイルサーバーやデータベースを操作するときは、誤って他のファイルやデータを消したり変更したりしないよう注意してください!

【EC-CUBE 管理画面】新規ページを作成

「コンテンツ管理」→「ページ管理」より新規ページを作成します。

URLとファイル名は「sample」としておきます。
「ドメイン/user_data/sample」にアクセスすると、先程作成したページが表示される状態です。

【ファイル管理】Twigファイルを「app/template/default」フォルダにコピー

ファイルサーバーにアクセスし、先程作成したページのTwigファイル(app/template/user_dataに格納されています)を「app/template/default」に複製します。

「app/template/user_data」に「sample.twig」ファイルが作成されています。
「app/template/default」に「sample.twig」ファイルをコピー。

【ファイル管理】Controllerファイルを作成し「app/Customize/Controller」フォルダにアップ

STEP
Controllerファイルの作成

指定したURLにアクセスした際に、先程コピーしたTwigファイルが表示されるためのControllerを作成します。

VS codeなどのエディター、もしくはメモ帳などを使って、以下のようなファイルを作成します。

<?php

namespace Customize\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Eccube\Controller\AbstractController;

class SamplePageController extends AbstractController
{
    /**
     * @Route("/sample", name="sample")
     * @Template("sample.twig")
     */
    public function index(Request $request)
    {
            return [];
    }
}
  • ファイル名とクラス名は同じ名前にしておくこと。(違う名前にするとエラーになるかも?)
    上の例では「SamplePageController」としました。
  • @Route(“/sample”, name=”sample”)とすることで、「ドメイン名/sample」というURLでアクセスできるようになります。sample部分は好きな名称にしてOKですが、わかりやすいようTwig名で統一します。
  • @Template(“sample.twig”)では、先程コピーしたTwigファイルを指定します。sample部分はTwigファイル名と同じにします。
STEP
Controllerファイルをアップ

先程作成したControllerを「app/Customize/Controller」フォルダにアップします。

「app/Customize/Controller」に「SamplePageController.php」をアップ。

【データベース】新規ページのデータを変更

データベースにアクセスし、作成したページ情報の「edit_type」を0から2に変更します。

作成したページは「dtb_page」に格納されていて、初期値の「edit_type」は0になっています。
「edit_type」を2に変更して保存します。

【EC-CUBE 管理画面】キャッシュを削除

ここまでで準備完了です。
管理画面からキャッシュを削除して、ページにアクセスしてみましょう。

キャッシュ管理からキャッシュを削除できます。
URLから「user_data」を削除できました!

まとめ

以上、管理画面にて作成した新規ページのURLから「user_data」を消す方法について紹介しました。

慣れないうちは、ファイルサーバーやデータベースの操作が難しく感じるかもしれません。
ですが、これらの操作はEC-CUBEのカスタマイズにおいて必須とも言えるため、ぜひチャレンジしてほしいと思います!

・・・とはいえ、誤った操作をしてしまうと取り返しのつかない事態になりかねないので、バックアップをとっておくなどの対処はしておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次