カスタマイズ参考集

EC-CUBEをカスタマイズするコツ その2

EC-CUBEをカスタマイズするときの基本は
前回の「EC-CUBEをカスタマイズするコツ その1」でお伝えしましたが
今回は、その続きです。

例えば、商品の一覧画面の処理をカスタマイズするときは
そのアドレスを参考に処理用のクラスファイルを探し出して
そのファイルをカスタマイズすると書きました。

商品一覧画面の処理が書かれたクラスファイル
/data/class/pages/products/LC_Page_Products_List.php

ただ、このクラスファイルはEC-CUBEのコアファイルとなります。
EC-CUBEがバージョンアップすると
上書きされる可能性のあるファイルです。

つまり、カスタマイズを行うと
EC-CUBEのバージョンアップの際、わざわざカスタマイズしたのに
上書きされて、カスタマイズが消されてしまう可能性があるということです。

そんなときに拡張クラスファイルというものを使います。

これは何かというとカスタマイズ用にコアファイルを拡張してくれているファイルです。

こちらもアドレスに従って以下のような箇所に用意されています。

商品一覧画面の処理が書かれた拡張クラスファイル
/data/class_extends/pages_extends/products/LC_Page_Products_List_EX.php

拡張クラスファイルを見てみると以下のような処理が書かれています。

function init() {
parent::init();
}

これは、親ファイルの処理を実行するという記述です。

処理をカスタマイズする際は、actionメソッドの中身になるので
以下のようになるかと思います。

function action() {
/*
* 処理の前に何かカスタマイズをしたい場合はここに処理を記載
*/
parent::action();
/*
* 処理の後に何かカスタマイズをしたい場合はここに処理を記載
*/
}

こうしておくと、EC-CUBEをバージョンアップしても
カスタマイズした部分はつぶされずにすみます。

また、parent::action()を実行しておくことで
EC-CUBE本体の商品一覧の処理が変わったとしても
カスタマイズした箇所は大抵動くようになります。

ただし、がっつりカスタマイズした場合は、
EC-CUBEのバージョンアップはあきらめるべきでしょう。

2012-12-19 09:22:37 | EC-CUBEカスタマイズ参考集 | systemcube_ecctm