OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / g_qrcode / include / container / g_qrcodeWidgetContainer.php
1 <?php
2 /**
3  * index.php用コンテナクラス
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-2009 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: g_qrcodeWidgetContainer.php 1803 2009-04-25 05:32:05Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getContainerPath() . '/baseWidgetContainer.php');
17
18 class g_qrcodeWidgetContainer extends BaseWidgetContainer
19 {
20         const DEFAULT_CONFIG_ID = 0;
21         const DEFAULT_QR_CODE_SIZE = 150;               // デフォルトのQRコードサイズ
22         const DEFAULT_TITLE = 'QRコード';                    // デフォルトのウィジェットタイトル
23         
24         /**
25          * コンストラクタ
26          */
27         function __construct()
28         {
29                 // 親クラスを呼び出す
30                 parent::__construct();
31         }
32         /**
33          * テンプレートファイルを設定
34          *
35          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
36          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
37          *
38          * @param RequestManager $request               HTTPリクエスト処理クラス
39          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
40          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
41          */
42         function _setTemplate($request, &$param)
43         {
44                 return 'index.tmpl.html';
45         }
46         /**
47          * テンプレートにデータ埋め込む
48          *
49          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
50          *
51          * @param RequestManager $request               HTTPリクエスト処理クラス
52          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
53          * @param                                                               なし
54          */
55         function _assign($request, &$param)
56         {
57                 // 定義ID取得
58                 $configId = $this->gEnv->getCurrentWidgetConfigId();
59                 if (empty($configId)) $configId = self::DEFAULT_CONFIG_ID;
60                 
61                 // パラメータオブジェクトを取得
62                 $paramObj = $this->getWidgetParamObj();
63                 
64                 // 指定定義IDのデータを取得
65                 $name = '';
66                 for ($i = 0; $i < count($paramObj); $i++){
67                         $targetObj = $paramObj[$i];
68                         $id = $targetObj->id;// 定義ID
69                         if ($id == $configId){
70                                 $name = $targetObj->name;// 定義名
71                                 $qrData = $targetObj->qrData;           // QRコード化するデータ
72                                 $desc   = $targetObj->desc;             // 説明
73                                 $width = $targetObj->width;             // QRコードサイズ
74                                 if (empty($width)) $width = self::DEFAULT_QR_CODE_SIZE;
75                                 break;
76                         }
77                 }
78                 if ($i < count($paramObj)){             // 該当する定義IDのデータが取得できたとき
79                         $this->tmpl->setAttribute('show_html', 'visibility', 'visible');
80                 
81                         // 説明の設定
82                         if (!empty($desc)){
83                                 $descString = '<tr><td>' . $desc . '</td></tr>';
84                                 $this->tmpl->addVar("show_html", "desc", $descString);
85                         }
86                         // 表示データ埋め込み
87                         $qrData = urlencode($qrData);
88                         $this->tmpl->addVar("show_html", "qr_data",     $qrData);
89                         $size = $width . 'x' . $width;
90                         $this->tmpl->addVar("show_html", "size",        $size);
91                 }
92         }
93         /**
94          * ウィジェットのタイトルを設定
95          *
96          * @param RequestManager $request               HTTPリクエスト処理クラス
97          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
98          * @return string                                               ウィジェットのタイトル名
99          */
100         function _setTitle($request, &$param)
101         {
102                 return self::DEFAULT_TITLE;
103         }
104 }
105 ?>