ECオープンプラットフォームとなったEC-CUBEを徹底活用!

第5回 さぁ,プラグインを作ろう!

この記事を読むのに必要な時間:およそ 4 分

前回はEC-CUBEプラグインの仕様をできるだけ簡単に紹介しました。

今回は実際に株式会社ロックオンからリリースされているサンプルプラグインをソースレベルで読み解き,作り方を見ていこうと思います。今回は作り方がメインになりますから,まだ前回をお読みになっていない方は,プラグインの仕組みを把握する意味でも,まずお読みになることをおススメします。

今回は,本連載記事の第2回目で紹介した,カテゴリーコンテンツプラグインというサンプルプラグインを参考に,具体的に中身を見ていきます。

本記事をお読みになる前に,準備として,カテゴリーコンテンツプラグインをEC-CUBEオフィシャルサイトからダウンロードしておくと良いでしょう。

プラグイン本体のパッケージ形式

プラグインをダウンロードしてもらえればわかりますが,プラグインの拡張子は「tar.gz」となっています。この形式はUNIX系システムで主に使われる形式で,EC-CUBEのプラグインはこの形式であることが必須となっています。

EC-CUBE本体はzip形式,tar.gz形式の2つの形式がそれぞれ提供されていますが,プラグインは現状tar.gz形式のみの提供のようです。

プラグイン本体の構造

まずは,ダウンロードしたカテゴリーコンテンツプラグイン「cat_contents.tar.gz」を解凍してみましょう(tar.gz形式のファイルを展開できる環境にない方はフリーソフト等を使って解凍してください)⁠

cat_contents.tar.gzの中身は以下のファイル群です。

ファイルの構成はとてもシンプルです

ファイルの構成はとてもシンプルです

画像ファイル含め複数のファイルがありますが,この中でプラグインを作る上で必須となるファイルは赤字で記載している以下の2つのみです。

  • plugin_info.php(プラグイン設定ファイル)
  • CategoryContents.php(プラグインメインクラス)

この2つがあれば基本的にはプラグインとして成り立ちます。その他のファイルはプラグインごとの何らかの処理をするためのファイルであったり,テンプレートファイルや画像ファイル等となりますので,それぞれのプラグインにより追加されるファイルということになります。

それでは,次項より各ファイルの詳しい中身を見ていきましょう。

plugin_info.php:プラグインの設定ファイル

プラグイン設定ファイルでは主に,プラグイン名やバージョンなど,プラグインに関する情報を記載します。この設定情報はプラグインのインストール時にEC-CUBEのデータベースに登録されます(一部登録されないデータもあります)⁠

リスト プラグインの設定ファイルの内部ソース

class plugin_info{
    static $PLUGIN_CODE       = "CategoryContents";
    static $PLUGIN_NAME       = "カテゴリ・コンテンツ";
    static $PLUGIN_VERSION    = "0.1";
    static $COMPLIANT_VERSION = "2.12.0";
    static $AUTHOR            = "EC-CUBE開発チーム";
    static $DESCRIPTION       = "カテゴリ毎にコンテンツを設定する事ができます。画像を表示したり,文章を表示したり,自由なカスタマイズが可能です。カテゴリ管理より設定ができます。";
    static $PLUGIN_SITE_URL   = "http://www.ec-cube.net/";
    static $AUTHOR_SITE_URL   = "http://www.ec-cube.net/";
    static $CLASS_NAME       = "CategoryContents";
    static $HOOK_POINTS       = array(
        array("LC_Page_Admin_Products_Category_action_after", 'contents_set'),
        array("LC_Page_Products_List_action_after", 'disp_contents'),
        array("prefilterTransform", 'prefilterTransform'));
    static $LICENSE        = "LGPL";
}

サンプルプラグインの実際のソースでは,すべてにコメントが付いていますので,詳細な内容はそちらを参照していただければと思います。ただし,おおよそ変数名でどのような役割のものかは想像がつくと思います。

また,必須の情報は「DESCRIPTION」までの6つのみで,基本的にはそれらがあればプラグインは正常に動作します。

その後の「PLUGIN_SITE_URL」から「LICENSE」までの変数は任意の情報ということになっていますが,できればすべての情報を記載することをおススメします。というのも,たとえば「HOOK_POINTS」という変数は,フックポイントとコールバック関数を定義する変数ですが,この定数を定義すれば,register関数というものを書かずにフックポイントでの介入が可能になりますので,是非とも登録しておきたい変数です。

その他,EC-CUBEのプラグインではライセンス(⁠LICENSE」⁠を自由に設定できるようになっています。詳しくは割愛しますが,有料でプラグインを販売したい場合や,プラグインに他のライセンスのプログラムを入れた場合などではライセンスを検討しなければいけなくなることもあるでしょう。ちなみに,EC-CUBE公式では,EC-CUBE本体ライセンスとの相性が良い「LGPL」ライセンスが推奨とされています。

著者プロフィール

馮富久(ふぉんとみひさ)

株式会社技術評論社クロスメディア事業室室長。

1975年生まれ。横浜市出身。1999年4月株式会社技術評論社に入社。入社後から『Software Design』編集部に配属され,2004年1月に編集長へ就任。同2004年9月に『Web Site Expert』を立ち上げ,同誌編集長に就任,現在に至る。その後,2008年9月に設立したクロスメディア事業部(現クロスメディア事業室)に配属。現在,社外活動として電子書籍を考える出版社の会の代表幹事やWebSig 24/7のモデレーター,TechLIONプロデューサーなども務める。過去にIPAオープンソースデータベースワーキンググループ委員やアックゼロヨン・アワード他各賞審査員などの経験を持つ。

Twitte ID:tomihisa(http://twitter.com/tomihisa/

コメント

コメントの記入