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-2012 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: s_loginWidgetContainer.php 4821 2012-04-03 05:04:44Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getContainerPath() . '/baseWidgetContainer.php');
18 class s_loginWidgetContainer extends BaseWidgetContainer
20 private $db; // DB接続オブジェクト
21 const TARGET_WIDGET = 'reg_user'; // 呼び出しウィジェットID
22 const DEFAULT_TITLE = 'ログイン'; // デフォルトのウィジェットタイトル
27 function __construct()
30 parent::__construct();
35 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
36 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
38 * @param RequestManager $request HTTPリクエスト処理クラス
39 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
40 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
42 function _setTemplate($request, &$param)
44 return 'index.tmpl.html';
49 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
51 * @param RequestManager $request HTTPリクエスト処理クラス
52 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
55 function _assign($request, &$param)
57 $act = $request->trimValueOf('act');
58 if ($act == 'loginbox_login'){ // ログインのとき
60 $account = $request->trimValueOf('account');
61 $password = $request->trimValueOf('password');
64 if ($this->gAccess->userLoginByAccount($account, $password)){
66 $this->gPage->redirect($this->gEnv->getCurrentRequestUri());
70 $this->gAccess->userLogout();
72 $this->tmpl->addVar("_widget", "account", $account); // アカウント
73 $this->tmpl->addVar("login_status", "message", 'ログインに失敗しました'); // メッセージ
74 $this->tmpl->setAttribute('login_status', 'visibility', 'visible'); // メッセージ表示
76 } else if ($act == 'loginbox_logout'){ // ログアウトのとき
77 $this->gAccess->userLogout();
80 $this->gPage->redirect($this->gEnv->getCurrentRequestUri());
85 $userName = $this->gEnv->getCurrentUserName();
86 if (empty($userName)){ // ユーザがログインしていないとき
88 $this->tmpl->setAttribute('login_field', 'visibility', 'visible');
89 $this->tmpl->setAttribute('login_button', 'visibility', 'visible');
90 } else { // ユーザがログイン中のとき
91 $this->tmpl->addVar("login_status", "user_name", 'ログイン: ' . $userName . ' 様');
94 $this->tmpl->setAttribute('login_status', 'visibility', 'visible'); // ログイン状況
95 $this->tmpl->setAttribute('logout_button', 'visibility', 'visible');
98 if ($this->canFindWidget(self::TARGET_WIDGET)){ // ウィジェット実行可能なとき
99 $changepwdUrl = $this->createCmdUrlToWidget(self::TARGET_WIDGET, 'task=changepwd');
100 $this->tmpl->setAttribute('user_items', 'visibility', 'visible');
101 $this->tmpl->addVar("user_items", "changepwd_url", $this->getUrl($changepwdUrl, true));
108 * @param RequestManager $request HTTPリクエスト処理クラス
109 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
110 * @return string ウィジェットのタイトル名
112 function _setTitle($request, &$param)
114 return self::DEFAULT_TITLE;