バージョン選択

フォーラム

メニュー

オンライン状況

55 人のユーザが現在オンラインです。 (45 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 55
もっと...

サイト内検索

質問 > その他 > プラグインをカスタマイズするにはどのファイルを修正すればいいのでしょうか

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nisino
投稿日時: 2015/6/16 13:55
対応状況: −−−
新米
登録日: 2015/6/16
居住地:
投稿: 2
プラグインをカスタマイズするにはどのファイルを修正すればいいのでしょうか
初めてこちらのフォーラムに投稿させていただきます。
不備等ありましたら、申し訳ございません。

クーポン割引が可能になるプラグインを導入したので、管理側の受注管理の検索機能に、
「クーポン使用・未使用」の項目を追加し、検索できるようにしたいのですが、
どのファイルを修正すればいいのか分からず、行き詰まっています。

プラグインを導入することで、dtb_orderテーブルに「coupon_discount_price」というカラムが
追加されたので、「coupon_discount_price」の値が初期値の0の場合は「クーポン使用なし」、
0以外のときは「クーポン使用あり」とし、データを引っ張ってきたいと考えております。


現時点までで行った作業は下記となります。

/data/Smarty/templates/admin/order/index.tpl
▶検索項目の欄にクーポン利用選択のラジオボタンを追加。


<tr>
  <th>クーポン</th>
     <td colspan="3">
     <!--{assign var=key value="search_order_coupon"}-->
       <span class="attention"><!--{$arrErr[$key]}--></span>
       <!--{html_radios name="$key" options=$arrCouponUseFlag selected=$arrForm[$key].value}-->
     </td>
   </tr>


/data/class_extends/page_extends/admin/order/LC_Page_Admin_Order_EX.php
▶index.tplのラジオボタンに渡す配列を定義


function init()
    {
        parent::init();
        // クーポン割引プラグイン
        $this->arrCouponUseFlag = array(
           0 => '未使用',
           1 => '使用'
           );
    }


   public function lfInitParam(&$objFormParam)
    {
      $objFormParam->addParam('注文番号1', 'search_order_id1', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
      $objFormParam->addParam('注文番号2', 'search_order_id2', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));

      (中略)

      // クーポン
      $objFormParam->addParam('クーポン', 'search_order_coupon', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
    }

    public function buildQuery($key, &$where, &$arrValues, &$objFormParam)
    {
        $dbFactory = SC_DB_DBFactory_Ex::getInstance();
        switch ($key) {
            case 'search_product_name':
                $where .= ' AND EXISTS (SELECT 1 FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name LIKE ?)';
                $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
                break;
        
         (中略)
         
            // クーポン
            case 'search_order_coupon':
                $where .= ' AND coupon_discount_price !=0';     ←ココ
                $arrValues[] = $objFormParam->getValue($key);
                break;
            default:
                break;
        }
     }


上記のbuildQuery関数内で「←ココ」と書いた部分ですが、
現在はひとまず動くのか確かめたかったので「!=0」を入れています。
本来は、この部分をポストされた値によって「!=0」か「=0」に変えたいと考えております。

ポストされた値が「0」のときは、「=0」
ポストされた値が「1」のときは、「!=0」

とする処理はどのファイルに書けばよいのでしょうか。
クーポンプラグインに関する処理はクーポンプラグインのクラスに書き、
LC_Page_Admin_Order_EX.phpで呼び出すという形がいいのかなと思ったのですが、
どのファイルに書けばいいのか分かりませんでした。
そもそも、クーポンプラグインのクラスに処理を書き、LC_Page_Admin_Order_EX.phpで呼び出すという考え自体
間違っていますでしょうか。

説明が下手で大変申し訳ございませんが、ご教示いただけますと幸いです。
よろしくお願いいたします。

EC-CUBE:2.13.3
プラグイン:割引クーポンプラグイン
http://www.ec-cube.net/products/detail.php?product_id=493
IPLOGIC
投稿日時: 2015/6/24 20:50
対応状況: −−−
一人前
登録日: 2014/12/8
居住地: 東京都
投稿: 96
Re: プラグインをカスタマイズするにはどのファイルを修正すればいいのでしょうか
nisino 様

「クーポン使用・未使用」の項目を受注検索に新規追加し、検索できるようにしたいとのことですね。

>クーポンプラグインに関する処理はクーポンプラグインのクラスに書き、
>LC_Page_Admin_Order_EX.phpで呼び出すという形がいいのかなと思ったのですが、
>どのファイルに書けばいいのか分かりませんでした。
>そもそも、クーポンプラグインのクラスに処理を書き、LC_Page_Admin_Order_EX.phpで呼び出すという考え自体
>間違っていますでしょうか。
今回のケースにおかれましてはクーポンプラグインのクラスに書くのは適正ではないかと思います。よってLC_Page_Admin_Order_EX.phpに処理を記載したほうがよろしいでしょう。
ただ一点進言させて頂きたいのですが、LC_Page_Admin_Order_EX.phpではなくLC_Page_Admin_Order.phpに直接書くことを強くお勧めいたします。(メンテナンスの効率性を考慮した場合)


nisino様が修正なされたファイルを拝見させて頂いたところ、テンプレートの部分は問題ないですが、phpの部分に若干の修正が必要かと思われます。

修正点として、LC_Page_Admin_Order_EX.phpのbuildQueryメソッドのクーポン使用不使用検索caseのプログラムを、LC_Page_Admin_Order.phpのbuildQueryメソッドに以下のように書き足して下さい。
// クーポン
case 'search_order_coupon':
    $coupon_flg = $objFormParam->getValue($key);
    if ($coupon_flg == 1) {
        $where .= ' AND coupon_discount_price !=0';
    } elseif ($coupon_flg == 0) {
        $where .= ' AND coupon_discount_price =0';
    }
    $arrValues[] = $objFormParam->getValue($key);
    break;


私はこれで実現出来ました。


----------------
アイピーロジック株式会社
EC-CUBE専用メール配信サービス「PostCarrier for EC-CUBE」
[url=http://www.rakusite.net/]EC-CUBE専用サイト保守監視サービス「らくらくサイト保守

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,279名です
総投稿数は110,071件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1301
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.