前回の記事では処理途中の変数を確認する方法を紹介させて頂きました。
今回は次のステップとして「EC-CUBEの構造を理解する」という部分に触れたいと思います。
カスタマイズを行いたい場合、まずどのファイルに手を加えていけばいいのか?ということにまずぶちあたると思います。
これはEC-CUBEにかかわらず、他人の開発したものをカスタマイズしていくためには必要な行程です。
ではEC-CUBEはどのように設計されているのか、簡単に説明させてもらいます。
まず、エントリポイントは公開されている領域(一般的にはpublic_htmlやhtmlといった名前の付いたディレクトリ)に置かれたファイルになります。
商品詳細ページの場合 http://shopdomain.com/products/detail.php?product_id=○○ となっていた場合html/shop/products/detail.php がエントリポイントとなります。(html/shop/に設置した場合)
そこから非公開領域に置かれたファイルへと処理が飛ばされます。非公開領域の設置場所を /var/www/data_shop/ とした場合、data_shop以下にあるrequire_base.phpへとまず処理が飛び、次にdata_shop/class_extends/以下のファイルへと移ります。カスタマイズされていない場合にはこのファイルがdata_shop/class/以下のファイルを継承していますので、そのままclass以下のファイルの処理が実行されます。
商品詳細ページの場合ですと、data_shop/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.phpがdata_shop/class/pages/products/LC_Page_Products_Detail.phpを継承しています。よってデフォルトの状態のEC-CUBEの商品詳細ページの機能を変更したい場合は、LC_Page_Products_Detail.phpを編集すればいいことになります。
が、
class_extends以下のファイルは拡張用のたまに用意されているファイルですので、カスタマイズを行う場合はこちらを編集する事を推奨します。理由としてはいろいろありますが、
①オリジナルのコードを残しておかないとカスタマイズによって不具合が発生した場合に元に戻しにくくなる
②EC-CUBEのバージョンアップが行われた場合にカスタマイズ部分を切り分けておくと、対応が楽になる
ということが挙げられると思います。
機能カスタマイズに関してはここまで理解できていれば、ほぼカスタマイズするファイルは特定できると思います。
次回はデザインのカスタマイズを行う場合のお話をさせて頂きます。