OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / reserve_main / include / container / reserve_mainLoginWidgetContainer.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-2008 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: reserve_mainLoginWidgetContainer.php 2363 2009-09-26 14:45:44Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getContainerPath()           . '/baseWidgetContainer.php');
17
18 class reserve_mainLoginWidgetContainer extends BaseWidgetContainer
19 {
20         private $db;    // DB接続オブジェクト
21         private $sysDb;         // システムDBオブジェクト
22         
23         /**
24          * コンストラクタ
25          */
26         function __construct()
27         {
28                 global $gInstanceManager;
29                 
30                 // 親クラスを呼び出す
31                 parent::__construct();
32                 
33                 // DB接続オブジェクト作成
34                 $this->sysDb = $gInstanceManager->getSytemDbObject();
35         }
36         /**
37          * テンプレートファイルを設定
38          *
39          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
40          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
41          *
42          * @param RequestManager $request               HTTPリクエスト処理クラス
43          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
44          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
45          */
46         function _setTemplate($request, &$param)
47         {       
48                 return 'login.tmpl.html';
49         }
50         /**
51          * テンプレートにデータ埋め込む
52          *
53          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
54          *
55          * @param RequestManager $request               HTTPリクエスト処理クラス
56          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
57          * @param                                                               なし
58          */
59         function _assign($request, &$param)
60         {
61                 global $gEnvManager;
62                 global $gAccessManager;
63                 global $gPageManager;
64                 global $gInstanceManager;
65                 
66                 $act = $request->trimValueOf('act');
67                 if ($act == 'reserve_login'){                   // 会員ログインのとき
68                         // アカウント、パスワード取得
69                         $account = $request->trimValueOf('reserve_account');
70                         $password = $request->trimValueOf('password');
71                 
72                         // ユーザ認証
73                         if ($gAccessManager->userLoginByAccount($account, $password)){          // ログイン成功
74                                 // 画面を全体を再表示する
75                                 $gPageManager->redirect($gEnvManager->createCurrentPageUrl());
76                                 return;
77                         } else {
78                                 // ログイン状態を削除
79                                 $gAccessManager->userLogout();
80                                 
81                                 $this->tmpl->setAttribute('login_status', 'visibility', 'visible');             // ログイン状況
82                                 $this->tmpl->addVar("login_status", "message", 'ログインに失敗しました');
83                         }
84                 } else if ($act == 'reserve_logout'){                   // 会員ログアウトのとき
85                         $gAccessManager->userLogout();
86                         
87                         // 画面を全体を再表示する
88                         $gPageManager->redirect($gEnvManager->createCurrentPageUrl());
89                         return;
90                 }
91                 // ログイン状態を取得
92                 $userName = $gEnvManager->getCurrentUserName();
93                 if (empty($userName)){          // ユーザがログインしていないとき
94                         // ログイン入力部、ログインボタン表示
95                         $this->tmpl->setAttribute('login_field', 'visibility', 'visible');
96                         $this->tmpl->setAttribute('login_button', 'visibility', 'visible');
97                         $this->tmpl->setAttribute('regmember_button', 'visibility', 'visible');         // 会員登録ボタン
98                 } else {                // ユーザがログイン中のとき
99                         $this->tmpl->addVar("login_status", "user_name", 'ログイン ' . $userName . ' 様');
100                         
101                         // 会員情報、ログアウトボタン表示
102                         $this->tmpl->setAttribute('login_status', 'visibility', 'visible');             // ログイン状況
103                         $this->tmpl->setAttribute('logout_button', 'visibility', 'visible');
104                         $this->tmpl->setAttribute('member_button', 'visibility', 'visible');
105                 }
106                 
107                 // タイトル部のパラメータ
108                 $this->tmpl->addVar("_widget", "default_menu_param", $this->gDesign->getDefaultWidgetTableParam());
109                 
110                 // ディレクトリを設定
111                 $this->tmpl->addVar("_widget", "script_url", $gEnvManager->getScriptsUrl());
112                 
113                 $this->tmpl->addVar("regmember_button", "sendpwd_url", $gEnvManager->createCurrentPageUrl() . '&task=sendpwd');         // パスワー送信用URL
114         }
115 }
116 ?>