EC-CUBE3 新規ページ作成


EC-CUBE3にてコラム専用の新規ページ作成を行いました。その備忘録。

参考URL: http://ec-cube.github.io/guideline/plugin-pageadd

基本的には上記URLの公式ガイドを参考に実装していけばよいです。
ページ作るのもプラグインなの?!っていう驚きはありましたが...

プラグイン作成

まずはガイドに沿ってプラグインジェネレータをインストールしてプラグインを作成します。
プラグインジェネレータを使ってプラグインを作成すると必要なファイル一式がapp/Plugin/配下に作成されます。
プラグイン名:おまかせ
code:ここでのcodeがapp/Plugin/配下でディレクトリ名として使用されます。
バージョン:1.0.0でいいと思います。
作成者:おまかせ。

Controllerの編集

自分の場合はcodeをBlogPageとしたので、app/Plugin/BlogPage/Controller/配下にBlogPageController.phpというものが作成されていました。
ここでテンプレート名を変更できます。
必要があれば変更してください。

テンプレートの編集

これもapp/Plugin/BlogPage/Resource配下にtemplateディレクトリが作られ、その中にindex.twigが自動で作成されています。
こちらも必要があれば変更してください。

ServiceProviderにてルーティング定義

app/Plugin/BlogPage/ServiceProvider/BlogPageServiceProvider.phpの32行目あたりに以下のような記述がありますので作成された名前に合わせて変更してください。

app/Plugin/BlogPage/ServiceProvider/BlogPageServiceProvider.php
// デフォルトはこんなのが書いてありますので環境に合わせて以下のように変更
// $app->match('/plugin/[code_name]/hello', 'Plugin\BlogPage\Controller\BlogPageController::index')->bind('plugin_BlogPage_hello');

// 独自コントローラ
$app->match('/blogpage/index', 'Plugin\BlogPage\Controller\BlogPageController::index')->bind('plugin_BlogPage_index');

dtb_page_layoutへの登録

INSERT INTO dtb_page_layout(
device_type_id,
page_name,
url,
edit_flg,
create_date,
update_date
) VALUES (
10,
'ブログページ',
'plugin_blogpage_index', 
2,
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP
);

urlカラムですが、上のServiceProviderにてbindしているurlと同じものを入力してください。

これでEC-CUBEのURL/blogpage/indexへアクセスするとちゃんとページが表示されました。
あとはControllerとテンプレートを好きにいじりたおしてください。