【EC-CUBE】新しいフロントページを追加する方法

EC-CUBE2で新規にフロントページを追加する方法の解説です。

目次

dtb_pagelayoutにレコードを追加する

dtb_pagelayoutに新しいレコードを追加します。

各カラムの値は下記のように設定します。

page_id既存のレコードと重複しない値にします。
device_type_idPCやスマホ別のIDです(下記参照)。
page_nameページの名前です。管理画面や、フロントに表示されます。
url追加するページのURLです。
filenameテンプレートファイルのファイル名。(.tplは不要)
edit_flg2を設定して管理画面からも編集出来るようにします。

device_type_idの種別

device_type_id端末
1モバイル
2スマートフォン
10PC

サンプルSQL

PC用のテストページ(test/index.php)ページを追加するなら下記のようなSQLになります。

INSERT INTO `dtb_pagelayout` (`device_type_id`, `page_id`, `page_name`, `url`, `filename`, `header_chk`, `footer_chk`, `edit_flg`, `author`, `description`, `keyword`, `update_url`, `create_date`, `update_date`, `meta_robots`) VALUES ('10', '38', 'テストページ', 'test/index.php', ‘test/test', '1', '1','2', NULL, NULL, NULL, NULL, CURRENT_TIME(), CURRENT_TIME(), NULL);

PHPファイルを作成

上記でdtb_pagelayoutに追加レコードにurlに対応したPHPファイルを作成します。

PHPファイルはページクラスの呼び出しくらいしかしないので、適当な既存のphpファイルをコピーして、ページクラスの部分のみ書き換えればOKです。
場所はデフォルトでは、ドキュメントルート直下の「html」ディレクトリです。

サンプルPHPファイル

test/index.phpのサンプルです。
ページクラスをpage_extends/test/LC_Page_Test_Ex.phpとしています。

<?php
require_once '../require.php';
// ページクラスを書き換え(1)
require_once CLASS_EX_REALDIR . 'page_extends/test/LC_Page_Test_Ex.php';

//  ページクラスを書き換え(2)
$objPage = new LC_Page_Test_Ex();
$objPage->init();
$objPage->process();

ページクラスを作成

PHPファイルで呼び出ししたページクラスを設置します。

このクラスのactionメソッドに、ビジネスロジックを実装していきます。

既存のページクラスと作りを合わせましょう。
LC_Page_Exを継承してクラスを作成します。

ディレクトリは、「data/class_extends」配下です。

ページクラスのサンプル

ビジネスロジックがないの空のページクラスのサンプルです。

<?php
require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Ex.php';

class LC_Page_Test_Ex extends LC_Page_Ex
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    public function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    public function process()
    {
        parent::process();
        $this->action();
        $this->sendResponse();
    }

    /**
     * Page のアクション.
     *
     * @return void
     */
    public function action()
    {
		// ここに処理を実装
		echo "テストページです";

    }
}

テンプレートファイルを配置

最後にテンプレートファイルを配置します。
ディレクトリは、「data/Smarty/templates/{端末別ディレクトリ}/」配下です。
dtb_pagelayoutで登録したファイル名でテンプレートファイルを配置します。

テンプレートファイルのサンプル

HTMLSmartyで実装しま。

<!DOCTYPE html>
<html lang="ja">
PCページです
</html>

これで、新規ページの追加は完了です。
/testへアクセスして新しく追加されたページを確認してみましょう。

まとめ

ざっくり簡単にEC-CUBE2のフロントの新規ページの作成方法でした。

このサンプルをテンプレートとしてページを追加して、カスタマイズしていくのも良いかもしれません。

この記事が少しでもお役に立てれば幸いです。

最後までお読み頂きありがとうございました。

おすすめ記事

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