IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

EC-CUBE2.13カスタマイズ:新しいページを追加する

EC-CUBEで新しいページを追加する方法として、管理画面で追加して、そのページのURLを任意に変更する手順をメモ。

管理画面からページを追加する

管理画面でデザイン管理>PC>ページ詳細設定を開き、必要事項を入力して登録するボタンを押下。
※スマホ、モバイルもそれぞれ同様です。
EC-CUBE-add-page-01

これにより以下の追加が行われます。
1)/html/user_data/sample.phpが生成される。
※sample.phpは登録した任意のファイル名
※処理はこのファイルに記述していきます
2)/data/Smarty/templates/(テンプレート名)/user_data/sample.tplが生成される。
※管理画面から入力した内容が入ります。
3)dtb_pagelayoutテーブルにこのページ情報が1レコード追加される。

作成されたページのこの時点では以下のパスで確認できます。
http://www.example.com/html/user_data/sample.php
このままではイケテないので以下になるように変更していきたいと思います。
http://www.example.com/html/sample/

追加したページのURLを変更する

phpファイルを移動する

まず生成されたphpファイルを以下に移動します。フォルダを新規作成してファイル名も変更します。
/html/sample/index.php

DBを書き換える

dtb_pagelayoutテーブルのurlフィールドをsample/index.phpに変更する。
これで、URLの変更ができました。

ちなみに、dtb_pagelayoutテーブルの中身ですが、おそらくこんな感じ。
device_type_id・・・「10」はPC用のページという意味
page_id・・・同じdevice_type_idで重複しないID
page_name・・・ページ名(管理画面で表示している名前)
url・・・ページのURL
filename・・・tplファイルの保管場所
edit_flg・・・削除可能フラグ

注:インストールされた環境によってパスは異なります。一般的なパスで紹介しています。

2014.09.08 追記
追加したページのURLを変更した場合は、ページを更新するときに管理画面のデザイン管理>PC>ページ詳細設定から編集できなくなります。
編集してしまうとdtb_pagelayoutテーブルのurlフィールドがデフォルトに戻ってしまうからです。
更新はテンプレートを直接しなくてはなりません。
んー、イマイチ?URLを変更しても管理画面から更新できる方法ないかなー?