OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / ec_main / include / iwidgets / flatrate / include / container / flatrateWidgetContainer.php
1 <?php
2 /**
3  * コンテナクラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
9  * @package    Magic3 Framework
10  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11  * @copyright  Copyright 2006-2012 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: flatrateWidgetContainer.php 5436 2012-12-07 09:55:12Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getContainerPath() . '/baseIWidgetContainer.php');
17
18 class flatrateWidgetContainer extends BaseIWidgetContainer
19 {
20         /**
21          * コンストラクタ
22          */
23         function __construct()
24         {
25                 // 親クラスを呼び出す
26                 parent::__construct();
27         }
28         /**
29          * テンプレートファイルを設定
30          *
31          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
32          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
33          *
34          * @param RequestManager $request               HTTPリクエスト処理クラス
35          * @param string         $act                   実行処理
36          * @param object         $configObj             定義情報オブジェクト
37          * @param object         $optionObj             可変パラメータオブジェクト
38          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
39          */
40         function _setTemplate($request, $act, $configObj, $optionObj)
41         {
42                 return 'index.tmpl.html';
43         }
44         /**
45          * テンプレートにデータ埋め込む
46          *
47          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
48          *
49          * @param RequestManager $request               HTTPリクエスト処理クラス
50          * @param string         $act                   実行処理
51          * @param object         $configObj             定義情報オブジェクト
52          * @param object         $optionObj             可変パラメータオブジェクト
53          * @param                                                               なし
54          */
55         function _assign($request, $act, $configObj, $optionObj)
56         {
57                 // 基本情報を取得
58                 $id             = $optionObj->id;               // ユニークなID(配送方法ID)
59                 $init   = $optionObj->init;             // データ初期化を行うかどうか
60                         
61                 // 入力値取得
62                 $time = $request->trimValueOf('iw_' . $id . '_demand_time');    // 希望日時
63                 
64                 if ($act == 'calc'){            // 計算のとき
65                         // 定義値取得
66                         $price  = $configObj->price;            // 定額料金
67                         $useMin = $configObj->useMin;           // 無料となる購入額を使用するかどうか
68                         $minPrice = $configObj->minPrice;       // 最小購入額
69
70                         // 可変データ取得
71                         $productTotal   = $optionObj->productTotal;                     // 商品合計額
72
73                         // 送料計算
74                         if ($useMin == 1){              // 購入最低額以上は無料かどうか
75                                 if ($productTotal >= $minPrice) $price = 0;
76                         }
77
78                         // 計算結果オブジェクトに設定
79                         // *** ここで返した値が配送用データとしてDBに保存される ***
80                         $resultObj->price = $price;
81                         $resultObj->time = $time;               // 時間帯
82                         $this->setResultObj($resultObj);
83                 } else if ($act == 'content'){          // 画面作成の場合
84                         // 定義値取得
85                         $inputDate = $configObj->inputDate;             // 希望日時の入力許可
86
87                         // 呼び出し側の設定値を使用しない場合は、画面からの入力値を使用
88                         if ($init) $time = $optionObj->time;            // 希望時間
89
90                         // 配達希望日時の入力を許可するときは、フィールドを表示し、取得値を設定
91                         if ($inputDate){
92                                 $this->tmpl->setAttribute('field_input', 'visibility', 'visible');
93                                 $this->tmpl->addVar('field_input', 'demand_time',       $time);
94                         }
95                         // ユニークIDを設定
96                         $this->tmpl->addVar('field_input', 'id',        $id);
97                 }
98         }
99 }
100 ?>