Changeset 19959 for branches/version-2_5-dev/data/class
- Timestamp:
- 2011/01/18 20:06:28 (15 years ago)
- Location:
- branches/version-2_5-dev/data/class/pages/mypage
- Files:
-
- 7 edited
-
LC_Page_Mypage.php (modified) (5 diffs)
-
LC_Page_Mypage_Favorite.php (modified) (5 diffs)
-
LC_Page_Mypage_History.php (modified) (3 diffs)
-
LC_Page_Mypage_Login.php (modified) (4 diffs)
-
LC_Page_Mypage_LoginCheck.php (modified) (3 diffs)
-
LC_Page_Mypage_MailView.php (modified) (3 diffs)
-
LC_Page_Mypage_Refusal.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage.php
r19915 r19959 50 50 parent::init(); 51 51 $this->tpl_title = 'MYページ'; 52 $this->tpl_subtitle = '購入履歴一覧'; 52 if (Net_UserAgent_Mobile::isMobile() === true){ 53 $this->tpl_subtitle = 'MYページ'; 54 } else { 55 $this->tpl_subtitle = '購入履歴一覧'; 56 } 53 57 $this->tpl_navi = TEMPLATE_REALDIR . 'mypage/navi.tpl'; 54 58 $this->tpl_mainno = 'mypage'; … … 64 68 function process() { 65 69 parent::process(); 66 if (Net_UserAgent_Mobile::isMobile() === true){ 67 $this->mobileAction(); 68 } else { 69 $this->action(); 70 } 70 $this->action(); 71 71 $this->sendResponse(); 72 72 } … … 83 83 84 84 // 退会判定用情報の取得 85 $this->tpl_login = $objCustomer->isLoginSuccess( );85 $this->tpl_login = $objCustomer->isLoginSuccess(true); 86 86 87 87 // ログインチェック 88 if(!$objCustomer->isLoginSuccess( )) {88 if(!$objCustomer->isLoginSuccess(true)) { 89 89 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 90 90 }else { … … 109 109 $this->tpl_linemax = $linemax; 110 110 111 // ページ送りの取得 112 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, SEARCH_PMAX, "fnNaviPage", NAVI_PMAX); 113 $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 114 $startno = $objNavi->start_row; 111 if (Net_UserAgent_Mobile::isMobile() === true){ 112 define ("HISTORY_NUM", 5); // TODO 113 $pageNo = isset($_GET['pageno']) ? (int) $_GET['pageno'] : 0; // TODO 115 114 116 // 取得範囲の指定(開始行番号、行数のセット) 117 $objQuery->setLimitOffset(SEARCH_PMAX, $startno); 115 // ページ送りの取得 116 // next 117 if ($pageNo + HISTORY_NUM < $linemax) { 118 $next = "<a href='index.php?pageno=" . ($pageNo + HISTORY_NUM) . "'>次へ→</a>"; 119 } else { 120 $next = ""; 121 } 122 123 // previous 124 if ($pageNo - HISTORY_NUM > 0) { 125 $previous = "<a href='index.php?pageno=" . ($pageNo - HISTORY_NUM) . "'>←前へ</a>"; 126 } elseif ($pageNo == 0) { 127 $previous = ""; 128 } else { 129 $previous = "<a href='index.php?pageno=0'>←前へ</a>"; 130 } 131 132 // bar 133 if ($next != '' && $previous != '') { 134 $bar = " | "; 135 } else { 136 $bar = ""; 137 } 138 139 $this->tpl_strnavi = $previous . $bar . $next; 140 141 // 取得範囲の指定(開始行番号、行数のセット) 142 $objQuery->setLimitOffset(HISTORY_NUM, $pageNo); 143 } else { 144 // ページ送りの取得 145 $objNavi = new SC_PageNavi($this->tpl_pageno, $linemax, SEARCH_PMAX, "fnNaviPage", NAVI_PMAX); 146 $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 147 $startno = $objNavi->start_row; 148 149 // 取得範囲の指定(開始行番号、行数のセット) 150 $objQuery->setLimitOffset(SEARCH_PMAX, $startno); 151 } 152 118 153 // 表示順序 119 154 $objQuery->setOrder($order); … … 126 161 $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); 127 162 128 }129 130 /**131 * Page のAction(モバイル).132 *133 * @return void134 */135 function mobileAction() {136 $objQuery = new SC_Query();137 $objCustomer = new SC_Customer();138 // クッキー管理クラス139 $objCookie = new SC_Cookie(COOKIE_EXPIRE);140 // パラメータ管理クラス141 $objFormParam = new SC_FormParam();142 // パラメータ情報の初期化143 $this->lfInitParam($objFormParam);144 // POST値の取得145 $objFormParam->setParam($_POST);146 147 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。148 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId();149 150 if (!isset($_POST['mode'])) $_POST['mode'] = "";151 152 // ログイン処理153 if($_POST['mode'] == 'login') {154 $objFormParam->toLower('login_email');155 $arrErr = $objFormParam->checkError();156 $arrForm = $objFormParam->getHashArray();157 158 // クッキー保存判定159 if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {160 $objCookie->setCookie('login_email', $_POST['login_email']);161 } else {162 $objCookie->setCookie('login_email', '');163 }164 165 if (count($arrErr) == 0){166 if($objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) ||167 $objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {168 // ログインが成功した場合は携帯端末IDを保存する。169 $objCustomer->updateMobilePhoneId();170 171 /*172 * email がモバイルドメインでは無く,173 * 携帯メールアドレスが登録されていない場合174 */175 $objMobile = new SC_Helper_Mobile_Ex();176 if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {177 if (!$objCustomer->hasValue('email_mobile')) {178 SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php');179 exit;180 }181 }182 } else {183 $objQuery = new SC_Query;184 $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0";185 $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email']));186 187 if($ret > 0) {188 SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);189 } else {190 SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);191 }192 }193 }194 }195 196 /*197 * ログインチェック198 * 携帯メールの登録を必須にする場合は isLoginSuccess(false) にする199 */200 if(!$objCustomer->isLoginSuccess(true)) {201 $this->tpl_mainpage = 'mypage/login.tpl';202 foreach ($objFormParam->getHashArray() as $key => $val) {203 $this->$key = $val;204 }205 if (empty($arrErr)) $arrErr = array();206 $this->arrErr = $arrErr;207 }else {208 //マイページトップ顧客情報表示用209 $this->CustomerName1 = $objCustomer->getvalue('name01');210 $this->CustomerName2 = $objCustomer->getvalue('name02');211 $this->CustomerPoint = $objCustomer->getvalue('point');212 }213 163 } 214 164 -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Favorite.php
r19908 r19959 30 30 * @package Page 31 31 * @author LOCKON CO.,LTD. 32 * @version $Id: LC_Page_Mypage.php 16582 2007-10-29 03:06:29Z nanasess$32 * @version $Id: $ 33 33 */ 34 34 class LC_Page_MyPage_Favorite extends LC_Page { … … 74 74 function action() { 75 75 76 //$objView = new SC_SiteView();77 76 $objQuery = new SC_Query(); 78 77 $objCustomer = new SC_Customer(); 79 78 80 79 // 退会判定用情報の取得 81 $this->tpl_login = $objCustomer->isLoginSuccess( );80 $this->tpl_login = $objCustomer->isLoginSuccess(true); 82 81 83 82 // ログインチェック 84 if(!$objCustomer->isLoginSuccess( )) {83 if(!$objCustomer->isLoginSuccess(true)) { 85 84 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 86 85 }else { … … 139 138 // 入力情報を渡す 140 139 $this->arrForm = $this->objFormParam->getFormParamList(); 141 //$objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納142 //$objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行143 }144 145 /**146 * モバイルページを初期化する.147 *148 * @return void149 */150 function mobileInit() {151 $this->init();152 $this->tpl_mainpage = 'mypage/favorite.tpl';153 $this->tpl_title = 'MYページ/お気に入り一覧';154 }155 156 /**157 * Page のプロセス(モバイル).158 *159 * @return void160 */161 function mobileProcess() {162 parent::mobileProcess();163 $this->mobileAction();164 $this->sendResponse();165 }166 167 /**168 * Page のAction(モバイル).169 *170 * @return void171 */172 function mobileAction() {173 //$objView = new SC_MobileView();174 $objQuery = new SC_Query();175 $objCustomer = new SC_Customer();176 // クッキー管理クラス177 $objCookie = new SC_Cookie(COOKIE_EXPIRE);178 // パラメータ管理クラス179 $objFormParam = new SC_FormParam();180 // パラメータ情報の初期化181 $this->lfInitParamMobile($objFormParam);182 // POST値の取得183 $objFormParam->setParam($_POST);184 185 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。186 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId();187 188 if (!isset($_POST['mode'])) $_POST['mode'] = "";189 190 // ログイン処理191 if($_POST['mode'] == 'login') {192 $objFormParam->toLower('login_email');193 $arrErr = $objFormParam->checkError();194 $arrForm = $objFormParam->getHashArray();195 196 // クッキー保存判定197 if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {198 $objCookie->setCookie('login_email', $_POST['login_email']);199 } else {200 $objCookie->setCookie('login_email', '');201 }202 203 if (count($arrErr) == 0){204 if($objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) ||205 $objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {206 // ログインが成功した場合は携帯端末IDを保存する。207 $objCustomer->updateMobilePhoneId();208 209 /*210 * email がモバイルドメインでは無く,211 * 携帯メールアドレスが登録されていない場合212 */213 $objMobile = new SC_Helper_Mobile_Ex();214 if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) {215 if (!$objCustomer->hasValue('email_mobile')) {216 SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php');217 }218 }219 } else {220 $objQuery = new SC_Query;221 $where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0";222 $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email']));223 224 if($ret > 0) {225 SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);226 } else {227 SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);228 }229 }230 }231 }232 233 // TODO objViewを分けるので、$thisに置き換える TPLの修正が必須かな?234 /*235 * ログインチェック236 * 携帯メールの登録を必須にする場合は isLoginSuccess(false) にする237 */238 if(!$objCustomer->isLoginSuccess(true)) {239 $this->tpl_mainpage = 'mypage/login.tpl';240 $objView->assignArray($objFormParam->getHashArray());241 if (empty($arrErr)) $arrErr = array();242 $objView->assignArray(array("arrErr" => $arrErr));243 }else {244 //マイページトップ顧客情報表示用245 $this->CustomerName1 = $objCustomer->getvalue('name01');246 $this->CustomerName2 = $objCustomer->getvalue('name02');247 }248 249 //$objView->assignobj($this); //$objpage内の全てのテンプレート変数をsmartyに格納250 //$objView->display(SITE_FRAME); //パスとテンプレート変数の呼び出し、実行251 252 140 } 253 141 … … 270 158 } 271 159 272 /* パラメータ情報の初期化 */273 function lfInitParamMobile(&$objFormParam) {274 275 $objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));276 $objFormParam->addParam("メールアドレス", "login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));277 $objFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));278 }279 280 160 // お気に入り商品削除 281 161 function lfDeleteFavoriteProduct($customer_id, $product_id) { … … 289 169 } 290 170 } 291 292 293 294 171 } 295 172 ?> -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_History.php
r19912 r19959 52 52 $this->arrMAILTEMPLATE = $masterData->getMasterData("mtb_mail_template"); 53 53 $this->arrPref = $masterData->getMasterData('mtb_pref'); 54 55 $this->isMobile = Net_UserAgent_Mobile::isMobile();56 54 } 57 55 … … 63 61 function process() { 64 62 parent::process(); 65 if ( $this->isMobile === false ){ 66 $this->action(); 67 } else { 68 $this->mobileAction(); 69 } 63 $this->action(); 70 64 $this->sendResponse(); 71 65 } … … 130 124 function destroy() { 131 125 parent::destroy(); 132 }133 134 /**135 * Page のAction(モバイル).136 *137 * @return void138 */139 function mobileAction() {140 define ("HISTORY_NUM", 5);141 142 $objQuery = new SC_Query();143 $objCustomer = new SC_Customer();144 $pageNo = isset($_GET['pageno']) ? (int) $_GET['pageno'] : 0; // TODO145 146 // ログインチェック147 if(!isset($_SESSION['customer'])) {148 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);149 }150 151 $col = "order_id, create_date, payment_id, payment_total";152 $from = "dtb_order";153 $where = "del_flg = 0 AND customer_id=?";154 $arrval = array($objCustomer->getvalue('customer_id'));155 $order = "order_id DESC";156 157 $linemax = $objQuery->count($from, $where, $arrval);158 $this->tpl_linemax = $linemax;159 160 // 取得範囲の指定(開始行番号、行数のセット)161 $objQuery->setLimitOffset(HISTORY_NUM, $pageNo);162 // 表示順序163 $objQuery->setOrder($order);164 165 //購入履歴の取得166 $this->arrOrder = $objQuery->select($col, $from, $where, $arrval);167 168 // next169 if ($pageNo + HISTORY_NUM < $linemax) {170 $next = "<a href='history.php?pageno=" . ($pageNo + HISTORY_NUM) . "'>次へ→</a>";171 } else {172 $next = "";173 }174 175 // previous176 if ($pageNo - HISTORY_NUM > 0) {177 $previous = "<a href='history.php?pageno=" . ($pageNo - HISTORY_NUM) . "'>←前へ</a>";178 } elseif ($pageNo == 0) {179 $previous = "";180 } else {181 $previous = "<a href='history.php?pageno=0'>←前へ</a>";182 }183 184 // bar185 if ($next != '' && $previous != '') {186 $bar = " | ";187 } else {188 $bar = "";189 }190 191 $this->tpl_strnavi = $previous . $bar . $next;192 193 126 } 194 127 -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Login.php
r19880 r19959 65 65 */ 66 66 function action() { 67 //$objView = new SC_SiteView();68 $objQuery = new SC_Query();69 67 $objCustomer = new SC_Customer(); 70 68 … … 73 71 74 72 // ログイン判定 75 if($objCustomer->isLoginSuccess( )) {73 if($objCustomer->isLoginSuccess(true)) { 76 74 SC_Response_Ex::sendRedirect(DIR_INDEX_URL); 77 75 exit; … … 88 86 $this->tpl_login_email = $_POST['mypage_login_email']; 89 87 } 88 89 // 携帯端末IDが一致する会員が存在するかどうかをチェックする。 90 if (Net_UserAgent_Mobile::isMobile() === true){ 91 $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId(); 92 } 90 93 } 91 92 //$objpage内の全てのテンプレート変数をsmartyに格納93 //$objView->assignobj($this);94 //パスとテンプレート変数の呼び出し、実行95 //$objView->display(SITE_FRAME);96 94 } 97 95 … … 104 102 parent::destroy(); 105 103 } 106 107 //エラーチェック108 function lfErrorCheck() {109 $objErr = new SC_CheckError();110 $objErr->doFunc(array("メールアドレス", "login_email", STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","EMAIL_CHECK","MAX_LENGTH_CHECK"));111 $objErr->dofunc(array("パスワード", "login_password", PASSWORD_LEN2), array("EXIST_CHECK","ALNUM_CHECK"));112 return $objErr->arrErr;113 }114 104 } 115 105 ?> -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_LoginCheck.php
r19880 r19959 100 100 } 101 101 102 if($objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'], true)) { 103 SC_Response_Ex::sendRedirect(DIR_INDEX_URL); 104 exit; 102 // ログイン判定 103 $loginFailFlag = false; 104 if(Net_UserAgent_Mobile::isMobile() === true) { 105 // モバイルサイト 106 if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['mypage_login_pass']) && 107 !$objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'], true)) { 108 $loginFailFlag = true; 109 } 105 110 } else { 111 // モバイルサイト以外 112 if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['mypage_login_pass'], $arrForm['mypage_login_email'])) { 113 $loginFailFlag = true; 114 } 115 } 116 if($loginFailFlag === true) { 106 117 $arrForm['mypage_login_email'] = strtolower($arrForm['mypage_login_email']); 107 118 $objQuery = new SC_Query; … … 114 125 SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 115 126 } 127 } else { 128 if(Net_UserAgent_Mobile::isMobile() === true) { 129 // ログインが成功した場合は携帯端末IDを保存する。 130 $objCustomer->updateMobilePhoneId(); 131 132 /* 133 * email がモバイルドメインでは無く, 134 * 携帯メールアドレスが登録されていない場合 135 */ 136 $objMobile = new SC_Helper_Mobile_Ex(); 137 if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 138 if (!$objCustomer->hasValue('email_mobile')) { 139 SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php'); 140 exit; 141 } 142 } 143 } 144 145 SC_Response_Ex::sendRedirect(DIR_INDEX_URL); 146 exit; 116 147 } 117 148 break; … … 131 162 function lfInitParam() { 132 163 $this->objFormParam->addParam("記憶する", "mypage_login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 133 $this->objFormParam->addParam("メールアドレス", "mypage_login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK" , "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK"));164 $this->objFormParam->addParam("メールアドレス", "mypage_login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 134 165 $this->objFormParam->addParam("パスワード", "mypage_login_pass", PASSWORD_LEN1, "KVa", array("EXIST_CHECK")); 135 166 $this->objFormParam->addParam("パスワード", "mypage_login_pass1", PASSWORD_LEN1, "KVa", array("EXIST_CHECK", "MIN_LENGTH_CHECK")); -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_MailView.php
r19888 r19959 30 30 * @package Page 31 31 * @author LOCKON CO.,LTD. 32 * @version $Id: LC_Page_Mypage_MailView.php 16582 2007-10-29 03:06:29Z nanasess$32 * @version $Id: $ 33 33 */ 34 34 class LC_Page_Mypage_MailView extends LC_Page { … … 64 64 */ 65 65 function action() { 66 $objSess = new SC_Session();67 66 $objCustomer = new SC_Customer(); 68 67 … … 86 85 } 87 86 88 $this->setTemplate('mypage/mail_view.tpl'); 87 if (Net_UserAgent_Mobile::isMobile() === true){ 88 $this->tpl_title = 'メール履歴詳細'; 89 $this->tpl_mainpage = 'mypage/mail_view.tpl'; 90 } else { 91 $this->setTemplate('mypage/mail_view.tpl'); 92 } 89 93 } 90 94 -
branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php
r19912 r19959 45 45 parent::init(); 46 46 $this->tpl_title = 'MYページ'; 47 if ( Net_UserAgent_Mobile::isMobile() === true){ 48 $this->tpl_title .= '/退会手続き(入力ページ)'; 49 } else { 50 $this->tpl_subtitle = '退会手続き(入力ページ)'; 51 } 47 $this->tpl_subtitle = '退会手続き(入力ページ)'; 52 48 $this->tpl_navi = TEMPLATE_REALDIR . 'mypage/navi.tpl'; 53 49 $this->tpl_mainno = 'mypage'; … … 62 58 function process() { 63 59 parent::process(); 64 if ( Net_UserAgent_Mobile::isMobile() === true){ 65 $this->mobileAction(); 66 } else { 67 $this->action(); 68 } 60 $this->action(); 69 61 $this->sendResponse(); 70 62 } … … 76 68 */ 77 69 function action() { 70 $objCustomer = new SC_Customer(); 78 71 $objSiteSess = new SC_SiteSession(); 79 72 80 73 // 退会判定用情報の取得 81 $this->tpl_login = $objCustomer->isLoginSuccess( );74 $this->tpl_login = $objCustomer->isLoginSuccess(true); 82 75 83 76 $this->lfCheckLogin(); … … 101 94 // 正しい遷移かどうかをチェック 102 95 $this->lfIsValidMovement($objSiteSess); 103 $this->lfDeleteCustomer(); //会員削除104 }105 106 }107 108 /**109 * Page のAction(モバイル).110 *111 * @return void112 */113 function mobileAction() {114 115 $objQuery = new SC_Query();116 117 $this->lfCheckLogin();118 119 if (isset($_POST['no'])) {120 SC_Response_Ex::sendRedirect(DIR_INDEX_URL);121 exit;122 } elseif (isset($_POST['complete'])){123 96 $this->lfDeleteCustomer(); //会員削除 124 97 } … … 149 122 $objCustomer = new SC_Customer(); 150 123 //ログイン判定 151 if (!$objCustomer->isLoginSuccess( )){124 if (!$objCustomer->isLoginSuccess(true)){ 152 125 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 153 126 }else {
Note: See TracChangeset
for help on using the changeset viewer.
