今回は管理画面の注文にある検索フォームに項目を追加する拡張ポイントのsoyshop.order.search.phpを紹介します。
はじめにインターフェースを確認してみる。
/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" => "")によって、
管理画面の注文画面にある検索フォームに
この図のような関係で検索項目が追加されます。
この追加された項目に合わせて、
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のソースコードを読んでみると良いです。