7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
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: m_quizkWidgetContainer.php 2936 2010-03-17 14:20:08Z fishbone $
14 * @link http://www.magic3.org
16 //require_once($gEnvManager->getContainerPath() . '/baseMobileWidgetContainer.php');
17 require_once($gEnvManager->getCurrentWidgetContainerPath() . '/m_quizkBaseWidgetContainer.php');
19 class m_quizkWidgetContainer extends m_quizkBaseWidgetContainer
21 const DEFAULT_TASK = 'top'; // デフォルトの画面
26 function __construct()
29 parent::__construct();
32 * ディスパッチ処理(メインコンテナのみ実行)
34 * HTTPリクエストの内容を見て処理をコンテナに振り分ける
36 * @param RequestManager $request HTTPリクエスト処理クラス
37 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
38 * @return bool このクラスの_setTemplate(), _assign()へ処理を継続するかどうかを返す。
39 * true=処理を継続、false=処理を終了
41 function _dispatch($request, &$param)
44 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
45 if (empty($task)) $task = self::DEFAULT_TASK;
47 // ログインが必要な処理の場合は、ログイン状況をチェックする
49 case 'member': // 会員情報変更
51 if (!$this->gEnv->isCurrentUserLogined()){ // ログインされていない場合
52 $this->SetMsg(self::MSG_APP_ERR, "ログインが必要です");
61 case 'progress': // クイズ質問回答画面
62 case 'complete': // 受付完了画面
64 if (empty($this->mobileId)) return true;
68 // ##### コンテナを起動 #####
71 case 'profile': // プロフィール入力画面
72 case 'progress': // クイズ質問回答画面
73 case 'complete': // 受付完了画面
74 $this->gLaunch->goSubWidget($task);
77 $this->SetMsg(self::MSG_APP_ERR, "画面が見つかりません");
84 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
85 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
87 * @param RequestManager $request HTTPリクエスト処理クラス
88 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
89 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
91 function _setTemplate($request, &$param)
93 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
97 case 'member': // 会員情報変更
99 return 'message_login.tmpl.html';
101 return 'message.tmpl.html';
107 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
109 * @param RequestManager $request HTTPリクエスト処理クラス
110 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
113 function _assign($request, &$param)
115 $task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
119 case 'member': // 会員情報変更
120 // ログインが必要であるメッセージを表示
121 $this->tmpl->addVar("_widget", "login_url", $this->gEnv->createCurrentPageUrl() . '&task=login'); // ログイン用URL
123 case 'progress': // クイズ質問回答画面
124 case 'complete': // 受付完了画面
125 $message = sprintf(self::ERR_MESSAGE_FORMAT, '携帯電話以外からは実行できません');
126 $this->tmpl->addVar("_widget", "message", $message);
127 $this->tmpl->addVar('_widget', 'top_url', $this->gEnv->createCurrentPageUrlForMobile(''));