OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / s / bbs_2ch / include / container / s_bbs_2chWidgetContainer.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-2012 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: s_bbs_2chWidgetContainer.php 4851 2012-04-15 00:43:29Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getCurrentWidgetContainerPath() .    '/s_bbs_2chBaseWidgetContainer.php');
17
18 class s_bbs_2chWidgetContainer extends s_bbs_2chBaseWidgetContainer
19 {
20         const DEFAULT_TASK = 'top';                             // デフォルトの画面
21         
22         /**
23          * コンストラクタ
24          */
25         function __construct()
26         {
27                 // 親クラスを呼び出す
28                 parent::__construct();
29         }
30         /**
31          * ディスパッチ処理(メインコンテナのみ実行)
32          *
33      * HTTPリクエストの内容を見て処理をコンテナに振り分ける
34          *
35          * @param RequestManager $request               HTTPリクエスト処理クラス
36          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
37          * @return bool                                                 このクラスの_setTemplate(), _assign()へ処理を継続するかどうかを返す。
38          *                                      true=処理を継続、false=処理を終了
39          */
40         function _dispatch($request, &$param)
41         {
42                 // 実行処理を決定
43                 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
44                 if (empty($task)){
45                         // スレッドIDを取得
46                         $threadId = $request->trimValueOf(M3_REQUEST_PARAM_BBS_THREAD_ID);
47                         if (empty($threadId)) $request->trimValueOf(M3_REQUEST_PARAM_BBS_THREAD_ID_SHORT);
48                         
49                         // 検索キーワードを取得
50                         $keyword = $request->trimValueOf(M3_REQUEST_PARAM_KEYWORD);
51                         
52                         // スレッドIDが設定されているときはスレッド表示タスクを設定
53                         if (empty($threadId)){
54                                 if (empty($keyword)){
55                                         $task = self::DEFAULT_TASK;
56                                 } else {                // 検索キーワードが設定されている場合
57                                         $task = self::TASK_SUBJECT;             // 件名一覧
58                                 }
59                         } else {
60                                 $task = self::TASK_READ_THREAD;         // スレッド表示
61                         }
62                 } else if ($task == self::TASK_NEW_THREAD){             // スレッド新規作成
63                         $task = self::TASK_THREAD;
64                 }
65
66                 // ##### コンテナを起動 #####
67                 switch ($task){
68                         case self::TASK_TOP:                    // トップ画面
69                         case self::TASK_SUBJECT:                // スレッド件名
70                         case self::TASK_THREAD:         // スレッド処理
71                         case self::TASK_READ_THREAD:            // スレッド表示
72                                 $this->gLaunch->goSubWidget($task);
73                                 return false;
74                         default:
75                                 $this->SetMsg(self::MSG_APP_ERR, "画面が見つかりません");
76                                 return true;
77                 }
78         }
79         /**
80          * テンプレートファイルを設定
81          *
82          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
83          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
84          *
85          * @param RequestManager $request               HTTPリクエスト処理クラス
86          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
87          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
88          */
89         function _setTemplate($request, &$param)
90         {
91                 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
92                 return 'message.tmpl.html';
93         }
94         /**
95          * テンプレートにデータ埋め込む
96          *
97          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
98          *
99          * @param RequestManager $request               HTTPリクエスト処理クラス
100          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
101          * @return                                                              なし
102          */
103         function _assign($request, &$param)
104         {
105                 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
106
107                 // 要求画面によってテンプレートを変更
108                 switch ($task){
109                         case self::TASK_TOP:                    // トップ画面
110                         default:
111                                 // メッセージを表示
112                                 //$this->tmpl->addVar("_widget", "login_url", $this->gEnv->createCurrentPageUrl() . '&task=login');             // ログイン用URL
113                                 break;
114                 }
115         }
116 }
117 ?>