7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
10 * @author 株式会社 毎日メディアサービス
11 * @copyright Copyright 2010 株式会社 毎日メディアサービス.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: m_chachaWidgetContainer.php 3356 2010-07-08 13:40:58Z fishbone $
14 * @link http://www.m-media.co.jp
16 require_once($gEnvManager->getCurrentWidgetContainerPath() . '/m_chachaBaseWidgetContainer.php');
18 class m_chachaWidgetContainer extends m_chachaBaseWidgetContainer
23 function __construct()
26 parent::__construct();
29 * ディスパッチ処理(メインコンテナのみ実行)
31 * HTTPリクエストの内容を見て処理をコンテナに振り分ける
33 * @param RequestManager $request HTTPリクエスト処理クラス
34 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
35 * @return bool このクラスの_setTemplate(), _assign()へ処理を継続するかどうかを返す。
36 * true=処理を継続、false=処理を終了
38 function _dispatch($request, &$param)
40 $memberId = $request->trimValueOf(self::URL_PARAM_MEMBER_ID); // 会員ID
43 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
46 $memberId = $request->trimValueOf(self::URL_PARAM_MEMBER_ID);
47 $messageId = $request->trimValueOf(self::URL_PARAM_MESSAGE_ID); // メッセージID
49 // 会員IDが設定されているときはマイページを表示
50 if (empty($memberId)){
51 if (empty($messageId)){
52 $task = self::DEFAULT_TASK;
54 $task = self::TASK_THREAD; // スレッド表示
57 $task = self::TASK_MYPAGE; // マイページ表示
63 case self::TASK_THREAD: // スレッド処理
64 case self::TASK_READ: // スレッド一覧画面
65 case self::TASK_PROFILE: // プロフィール入力画面
66 case self::TASK_MYPAGE: // マイページ画面
68 if (empty($this->_mobileId)) return true;
72 // ユーザ登録されていない場合はユーザ登録へ
73 if ($task == self::TASK_MYPAGE && empty($memberId)){ // マイページ画面
74 $db = new chachaDb(); // DBオブジェクト作成
75 $ret = $db->getMemberInfoByDeviceId($this->_mobileId, $row);
77 $nextPage = $this->gEnv->createCurrentPageUrlForMobile('task=' . self::TASK_PROFILE);
78 $this->gPage->redirect($nextPage, true/*遷移時のダイアログ表示を抑止*/);
83 // ##### コンテナを起動 #####
85 case self::TASK_TOP: // トップ画面
86 case self::TASK_THREAD: // スレッド処理
87 case self::TASK_READ: // スレッド一覧画面
88 case self::TASK_PROFILE: // プロフィール入力画面
89 case self::TASK_MYPAGE: // マイページ画面
90 $this->gLaunch->goSubWidget($task);
93 $this->SetMsg(self::MSG_APP_ERR, "画面が見つかりません");
100 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
101 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
103 * @param RequestManager $request HTTPリクエスト処理クラス
104 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
105 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
107 function _setTemplate($request, &$param)
109 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
114 return 'message.tmpl.html';
120 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
122 * @param RequestManager $request HTTPリクエスト処理クラス
123 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
126 function _assign($request, &$param)
128 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
129 if (empty($task)) $task = self::DEFAULT_TASK;
133 case self::TASK_THREAD: // スレッド処理
134 case self::TASK_READ: // スレッド一覧画面
135 case self::TASK_PROFILE: // プロフィール入力画面
136 case self::TASK_MYPAGE: // マイページ画面
137 $this->setUserErrorMsg('携帯電話以外からは実行できません');
138 $this->tmpl->addVar('_widget', 'top_url', $this->gEnv->createCurrentPageUrlForMobile(''));