SOY Shopプラグインの解説 プラグインの構造
データベースの変更を含めたSOY Shopプラグインとして、
商品オプションプラグインの解説をしていきたいと思います。
商品オプションプラグインに関しては下記の記事をご覧ください。
初めにSOY Shopのプラグインの構成ですが、
/soyshop/webapp/src/module/features/以下と
/soyshop/webapp/src/module/plugins/以下に
プラグインIDとして登録したいディレクトリ名でディレクトリを作成します。
商品オプションプラグインのプラグインIDはcommon_item_optionなので、
ディレクトリ名もcommon_item_optionにします。
/soyshop/webapp/src/module/features/common_item_option/
/soyshop/webapp/src/module/plugins/common_item_option/
/features/common_item_option/以下には、
module.iniというプラグインの設定ファイルを配置します。
[common_item_option] name="商品オプションプラグイン" type="parts" description="商品オプションのセレクトボックスを表示する" version="1.1" link="詳細説明が記載されている記事URL" label="詳細説明記事のタイトル"
上から、
プラグインID、プラグイン名、プラグインのタイプ、プラグインの説明、プラグインのバージョン、
プラグインの詳細説明記事がある場合は、その記事のURLとタイトル
という構成になっています。
プラグインのタイプはSOY Shopの標準プラグインのiniファイルを参考にして、
どれかしらを入れてください。
SOY Shopで許可されていないタイプを入れると、
管理画面に表示されないこともあります。
ちなみに1.13.3現在で許可されているタイプは
/soyshop/webapp/src/domain/plugin/SOYShop_PluginConfg.class.phpで
const PLUGIN_TYPE_PARTS = "parts";
のようにリスト化されているので、
= の右側の値を入れてください。
(今回ならパーツ)
これでSOY Shopにプラグインの登録作業は終了です。
次に/plugins/common_item_option/以下の方ですが、
こちらが処理関連のファイル群になります。
SOY Shopのプラグインは機能を追加したい場合は、
追加する機能に合わせてsoyshop.****.phpが用意されており、
管理画面側に設定画面を追加したい場合はsoyshop.config.phpを追加します。
どのような機能があるか?は
/soyshop/webapp/src/logic/plugin/extensions/以下のインターフェースファイル群にあります。
プラグインはこのインターフェースのファイルを継承して機能追加を行っていきます。
各種拡張ポイントの説明がまだ不十分ですので、
詳細説明のコメントは随時行っていく予定です。
話は戻って、構造の説明ですが、
config、logic、sqlディレクトリに関しては、
各種拡張ポイントで処理を書くのが長くなるため処理を分けたものです。
各ディレクトリはなくても開発はできます。
続いて各種拡張ポイントのphpファイルですが、
上から、
soyshop.config.phpは管理画面のプラグイン詳細画面を追加
soyshop.info.phpは管理画面でsoyshop.config.phpの画面へつなげるリンクを追加
soyshop.item.customfield.phpは管理画面の商品詳細で新たな項目を追加したり、公開側のblock:id="item"内で新しいcms:idを追加するときに使います。
soyshop.item.option.phpは商品の注文の際に色とかサイズとかの情報を付け加えるためのプラグインで、
何を選択しても価格は変わらない方のフォームの追加と
カート内で商品の下に情報を追加する時に使用します。
soyshop.order.mail.phpは注文後に送信されるメールであったり、管理画面で送信できる各種メールの文面に文字列を追加
soyshop.plugin.install.phpはプラグインをインストール、アンインストールの際に処理を追加
という形で構成されています。