EC-CUBE PHP

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

投稿日:2016年12月7日 更新日:

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

スポンサーリンク

dtb_pagelayoutにレコードを追加する

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

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

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

device_type_idの種別

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

サンプル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で登録したファイル名でテンプレートファイルを配置します。

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

サンプルと言っても、ファイルの中身が出力されるので、適当にテキストを入力すればOK。
ちゃんとしたページを作る時は、HTMLSmartyで実装します。

PCページです

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

まとめ

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

こういうのは、何すれば良かったんだっけ?
もれはないかな?
なんて毎回確認するの面倒なので、手順をメモしておくと後々楽になりますよね!

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

スポンサーリンク


-EC-CUBE, PHP

執筆者:

関連記事

【EC-CUBE2】CSVをUTF-8でダウンロードさせる修正方法

デフォルトのEC-CUBE2だと、ダウンロードされるCSVはShift-JISになっています。 おそらく、EXCELでCSVを編集する事を考慮しているのでしょう。 でも、Shift-JISだと困るシー …

【PHP】Shift-JISにエンコードしたCSVが文字化けするのはBOMが原因?

PHPでShift-JISに変換エンコードしたCSVをダウンロードする機能を実装したのですが、日本語の文字化けが発生。 この問題がちょっとややこしくて解決するのに時間がかかりました。 なんと文字化け …

【現役エンジニアがオススメ】『いきなりはじめるPHP』はプログラミング入門に最適

こんにちは!DENです。 PHPの入門書『いきなりはじめるPHP』が、なかなか良い本だったのでご紹介します。 いきなりはじめるPHP posted with ヨメレバ 谷藤賢一 リックテレコム 201 …

RewriteEngine onで403エラーの解決方法

ローカル環境でRewriteEngine onにしたら、403エラーが発生。 その解決方法の解説です。 スポンサーリンク 目次環境についてFollowSymLinksを有効にする事で解決まとめ 環境に …

【EC-CUBE】CSV出力設定「出力設定リストが入力されていません」エラーで登録できない件の修正方法

EC-CUBE2で作ったサイトのお客様から、CSV出力設定の登録が出来ないとの連絡が。 CSV出力する項目を設定しているにもかかわらず、「※ 出力設定リストが入力されていません。」とエラーになり登録出 …

プロフィール

このサイトを運営しているDENです。
アングラーのフリープログラマー。 主にプログラミングと釣の話を発信しています。
プログラミングで自由になり思う存分に釣りをしまくる生活実践中。
詳しいプロフィールはこちら 
フォスターフリーランス