OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / ajax_sample2 / include / container / ajax_sample2WidgetContainer.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-2010 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: ajax_sample2WidgetContainer.php 3351 2010-07-08 02:12:05Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getContainerPath() . '/baseWidgetContainer.php');
17
18 class ajax_sample2WidgetContainer extends BaseWidgetContainer
19 {
20         private $itemArray;
21         
22         /**
23          * コンストラクタ
24          */
25         function __construct()
26         {
27                 // 親クラスを呼び出す
28                 parent::__construct();
29                 
30                 // 項目データ
31                 $this->itemArray = array(
32                                                                         array(  'no' => '1', 'title' => 'title1',       'user' => '',   
33                                                                                         'thumbnail' => '1.png', 'message' => 'png image'),
34                                                                         array(  'no' => '2', 'title' => 'title2',       'user' => '',   
35                                                                                         'thumbnail' => '2.png', 'message' => 'png image'),
36                                                                         array(  'no' => '3', 'title' => 'title3',       'user' => '',   
37                                                                                         'thumbnail' => '3.png', 'message' => 'png image'),
38                                                                         array(  'no' => '4', 'title' => 'title4',       'user' => '',   
39                                                                                         'thumbnail' => '4.gif', 'message' => 'gif image'),
40                                                                         array(  'no' => '5', 'title' => 'title5',       'user' => '',   
41                                                                                         'thumbnail' => '5.gif', 'message' => 'gif image'),
42                                                                         array(  'no' => '6', 'title' => 'title6',       'user' => '',   
43                                                                                         'thumbnail' => '6.gif', 'message' => 'gif image'),
44                                                                         array(  'no' => '7', 'title' => 'title7',       'user' => '',   
45                                                                                         'thumbnail' => '7.png', 'message' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
46                                                                         array(  'no' => '8', 'title' => 'title8',       'user' => '',   
47                                                                                         'thumbnail' => '8.png', 'message' => '88888'),
48                                                                         array(  'no' => '9', 'title' => 'title9',       'user' => '',   
49                                                                                         'thumbnail' => '9.png', 'message' => '99999999'),
50                                                                         array(  'no' => '10', 'title' => 'title10',     'user' => '',   
51                                                                                         'thumbnail' => '10.png', 'message' => '0000000000000000000000'),
52                                                                         array(  'no' => '11', 'title' => 'title11',     'user' => '',   
53                                                                                         'thumbnail' => '11.png', 'message' => 'あいうえお,かきくけこ'),
54                                                                         array(  'no' => '12', 'title' => 'title12',     'user' => '',   
55                                                                                         'thumbnail' => '12.png', 'message' => 'あいうえお,かきくけこ、[1234567890]'),
56                                                                         array(  'no' => '13', 'title' => 'title13',     'user' => '',   
57                                                                                         'thumbnail' => '13.png', 'message' => 'あいうえお,かきくけこ'),
58                                                                         array(  'no' => '14', 'title' => 'title14',     'user' => '',   
59                                                                                         'thumbnail' => '14.png', 'message' => 'あいうえお,かきくけこあいうえお,かきくけこあいうえお,かきくけこあいうえお,かきくけこ'),
60                                                                         array(  'no' => '15', 'title' => 'title15',     'user' => '',   
61                                                                                         'thumbnail' => '15.png', 'message' => 'あいうえお,かきくけこ'),
62                                                                         array(  'no' => '16', 'title' => 'title16',     'user' => '',   
63                                                                                         'thumbnail' => '16.png', 'message' => 'あいうえお,かきくけこ'),
64                                                                         array(  'no' => '17', 'title' => 'title17',     'user' => '',   
65                                                                                         'thumbnail' => '17.png', 'message' => 'あいうえお,かきくけこ'),
66                                                                         array(  'no' => '18', 'title' => 'title18',     'user' => '',   
67                                                                                         'thumbnail' => '18.png', 'message' => 'あいうえお,かきくけこ'),
68                                                                         array(  'no' => '19', 'title' => 'title19',     'user' => '',   
69                                                                                         'thumbnail' => '19.png', 'message' => 'あいうえお,かきくけこ'),
70                                                                         array(  'no' => '20', 'title' => 'title20',     'user' => '',   
71                                                                                         'thumbnail' => '20.png', 'message' => 'あいうえお,かきくけこ')
72                                                                 );
73         }
74         /**
75          * テンプレートファイルを設定
76          *
77          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
78          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
79          *
80          * @param RequestManager $request               HTTPリクエスト処理クラス
81          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
82          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
83          */
84         function _setTemplate($request, &$param)
85         {
86                 if ($request->trimValueOf('act') == 'getdata'){ // Ajaxインターフェイスでの対応
87                         $param = 'ajax';
88                         return '';              // テンプレートは使用しない
89                 } else {
90                         return 'index.tmpl.html';
91                 }
92         }
93         /**
94          * テンプレートにデータ埋め込む
95          *
96          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
97          *
98          * @param RequestManager $request               HTTPリクエスト処理クラス
99          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
100          * @return                                                              なし
101          */
102         function _assign($request, &$param)
103         {
104                 if ($param == 'ajax'){  // Ajaxインターフェイスでの対応の場合
105                         $no = $request->trimValueOf('no');              // 開始番号
106                         if ($no == '') $no = 1;
107                         $count = $request->trimValueOf('count');                // 取得数
108                         
109                         $imagePath = $this->getUrl($this->gEnv->getCurrentWidgetRootUrl() . '/images');
110                         $sendData = array();
111                         if ($no + $count -1 <= count($this->itemArray)){
112                                 for ($i = 0; $i < $count; $i++){
113                                         $line = $this->itemArray[$i + $no -1];
114                                         
115                                         // 画像パスを修正
116                                         $line['thumbnail'] = $imagePath . '/' . $line['thumbnail'];
117                                         $sendData[] = $line;
118                                 }
119                         }
120                         
121                         $this->gInstance->getAjaxManager()->addData('message', "サーバからの応答\n現在の日時は" . date(" Y年m月d日 H:i:s"));
122                         $this->gInstance->getAjaxManager()->addData('items', $sendData);
123                 } else {        // HTML表示の場合
124                         $this->tmpl->addVar("_widget", "IMG_URL", $this->getUrl($this->gEnv->getCurrentWidgetRootUrl() . '/images'));
125                 }
126         }
127 }
128 ?>