カスタマイズ参考集

EC-CUBEから送られてくるメールの件名が入らない!!

EC-CUBEで構築したショッピングサイトで

商品を購入した際に、自動的に注文メールが送信されます。

そのメールをLiveメールとかでチェックすると

メールの件名が真っ白なときがあります。

メール送信の部分はなにもカスタマイズしていないのに・・・
ってなる人も多いんじゃないでしょうか!

原因がわからず、めちゃ困ってたら

どうやらデフォルトのテンプレートがまずいみたい。。

そのテンプレートは

/data/Smarty/templates/default/mail_templates/mail_title.tpl

にある、メールの件名のテンプレートファイル。

原因は・・

この改行は入っているおかげで

件名が空白になってしまう。

プログラムにとって改行も文字として扱われるので

余分な改行はバグを招く原因にもなります。

この改行をなくすとちゃんと動きました!!

めでたし、めでたし。

2013年1月18日 6:52 PM

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日 9:22 AM

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

EC-CUBEをカスタマイズをするとき
画面のカスタマイズは、
画面用のテンプレートファイルが用意されているのでカスタマイズしやすい。

しかし、プログラム的な処理のカスタマイズする場合は
どこを触ったらいいの?って感じで
少々戸惑ってしまう人も多いだろうと思う。

EC-CUBEの各画面の処理をカスタマイズするには
それに該当する画面専用のクラスファイルが用意されている。

そのクラスファイルの探し方も実に簡単で
各画面のアドレスがそのままディレクトリのパスになっている。

例えば、商品の一覧画面は以下のようなアドレスになっている。
/products/list.php?category_id=xx

productsの中のlist.phpファイルを表示していることを表している。

クラスファイルは、基本的には
dataフォルダの中のclassフォルダの中に入っている。
また、各画面の処理が書かれたクラスファイルは
このclassフォルダの中のpagesフォルダの中に入っている。

そして、商品一覧画面の処理が書かれたクラスファイルは
pagesフォルダの中のproductsフォルダの中のLC_Page_Products_List.phpである。

/data/class/pages/products/LC_Page_Products_List.php

このファイルの中のaction関数の中身が画面の処理部分となる。

ここに処理を追記、もしくは編集することで
処理のカスタマイズができる。

ただし、ここを変更すると
EC-CUBEのバージョンアップはややこしくなるので
それを覚悟してカスタマイズしなけばいけない。

次回は、カスタマイズしてもEC-CUBEのバージョンアップがしやすくする
拡張クラスを使ったカスタマイズ方法を紹介したいと思います。

2012年11月26日 5:12 PM

1 / 212