今回は管理画面の注文にある検索フォームに項目を追加する拡張ポイントのsoyshop.order.search.phpを紹介します。

SOY Shopプラグインの拡張ポイントについて


はじめにインターフェースを確認してみる。

/soyshop/webapp/src/logic/plugin/extensions/soyshop.order.search.php

class SOYShopOrderSearch implements SOY2PluginAction{

	/**
	 * @return array("queries" => "", "binds" => array())
	 * queriesはサブクエリ形式でSQL構文の配列を返せば良い id IN (SELECT id FROM soyshop_order 〜以下省略〜)
	 */
	function setParameter($params){
		return array("queries" => "", "binds" => array());
	}

	/**
	 * @return array("label" => "", "form" => "")
	 * formの値に挿入するフォームのnameはsearch[customs][モジュールID][ユニークなパラメータ]にしなければ動作しない
	 **/
	function searchItems($params){
		return array("label" => "", "form" => "");
	}
}

詳細はインターフェースに書かれているコメントを参考にして、

ここでは大雑把に各関数がどこに対応しているか?を記載します。


先にsearchItemsメソッドで返すarray("label" => "form" => "")によって、


soyshop_order_search


管理画面の注文画面にある検索フォームに


soyshop_order_search1


この図のような関係で検索項目が追加されます。


この追加された項目に合わせて、

setParameterメソッドで対応するSQL構文を作成します。

この時、コメントを参考にして、必ずid IN (SELECT〜)のようにサブクエリの形で指定します。

※INの前のidカラムはSOYShop_Orderのidプロパティのこと


SOYShop_Orderことsoyshop_orderテーブルのスキーマは

/soyshop/webapp/src/logic/init/mysql.sqlあたりを読むと良いです。


これを踏まえた上で、

伝票番号記録プラグイン(ID:slip_number)のsoyshop.order.search.phpのソースコードを読んでみると良いです。