ECcubeでブロックに自前のプログラムを差し込むというか設定する方法

2010年4月30日

ECcubeで、新規にブロックを追加する場合の手順。

大きく分けてやるべき事は

1)受け皿となるフロント部のphpプログラム用意

2)バックエンドの実際のプログラムを用意

3)テンプレートを用意

4)管理画面から新規追加

5)データベースの該当箇所を修正

となる。以下はその手順。

1)受け皿となるフロント部のphpプログラム用意

/html/frontparts/bloc/****.php
を追加。/htmlはHTMLのドキュメントルートなので各自読み替え。

****.phpは
category.php
などを適当にコピーすれば良いだろう。

そして中身として

require_once(CLASS_EX_PATH . “page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Category_Ex.php");
$objPage = new LC_Page_FrontParts_BLoc_Category_Ex();

の部分を修正する。今回は

LC_Page_FrontParts_Bloc_Test

というのを追加すると仮定すると、

require_once(CLASS_EX_PATH . “page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Test_Ex.php");
$objPage = new LC_Page_FrontParts_BLoc_Test_Ex();

となる。

2)バックエンドの実際のプログラムを用意

1)の例で入力したファイルを準備。

data/class/pages/frontparts/blocに

LC_Page_FrontParts_Bloc_Test.php

を追加。中身はLC_Page_FrontParts_Bloc_Category.phpでもコピーして、
category.tpl
となっていたりCategoryとなっている部分を適宜書き換える。

続いて

data/class_extends/page_extends/frontparts/bloc


LC_Page_FrontParts_Bloc_Test_Ex.php
を追加。これもLC_Page_FrontParts_Bloc_Category_Ex.phpでもコピーして中身を適宜書き換え。

3)テンプレートを用意
data/Smarty/templates/****/bloc/
に追加。今回の例だと
test.tplなど。
LC_Page_FrontParts_Bloc_Test.phpで書いたテンプレート名にすること。

4)管理画面から新規追加

管理画面上の『デザイン管理』→『ブロック編集』で『新規ブロック作成』

ファイル名の部分は重要で、3)で設定したものにする。

5)データベースの該当箇所を修正

そして最後にMySQLデータベース上
dtb_bloc
で、今回作られた行を探して、

php_path

frontparts/bloc/test.php
とする。

もちろんtest.phpは自分が1)で準備したPHPファイル。

以上でブロック作成が出来たので、後はプログラムを書いて、レイアウトに載せればOK。