source: branches/feature-module-update/data/class/pages/entry/LC_Page_Entry_EmailMobile.php @ 16204

Revision 16204, 4.9 KB checked in by nanasess, 15 years ago (diff)

モバイルページの構成に変更

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id Revision Date
  • Property svn:mime-type set to text/x-httpd-php
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8// {{{ requires
9require_once(CLASS_PATH . "pages/LC_Page.php");
10
11/**
12 * 空メール会員登録(モバイル) のページクラス.
13 *
14 * @package Page
15 * @author LOCKON CO.,LTD.
16 * @version $Id$
17 */
18class LC_Page_Entry_EmailMobile extends LC_Page {
19
20    // }}}
21    // {{{ functions
22
23    /**
24     * Page を初期化する.
25     *
26     * @return void
27     */
28    function init() {
29        parent::init();
30    }
31
32    /**
33     * Page のプロセス.
34     *
35     * @return void
36     */
37    function process() {
38    }
39
40    /**
41     * モバイルページを初期化する.
42     *
43     * @return void
44     */
45    function mobileInit() {
46        $this->tpl_mainpage = 'entry/email_mobile.tpl';
47        $this->tpl_title = '携帯メール登録';
48        $this->allowClientCache();
49    }
50
51    /**
52     * Page のプロセス(モバイル).
53     *
54     * @return void
55     */
56    function mobileProcess() {
57        $objView = new SC_MobileView;
58        $objCustomer = new SC_Customer;
59        $objFormParam = new SC_FormParam;
60
61        if (isset($_SESSION['mobile']['kara_mail_from'])) {
62            $_SERVER['REQUEST_METHOD'] = 'POST';
63            $_POST['email_mobile'] = $_SESSION['mobile']['kara_mail_from'];
64        }
65
66        $this->lfInitParam($objFormParam);
67
68        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
69            $objFormParam->setParam($_POST);
70            $objFormParam->convParam();
71            $this->arrErr = $this->lfCheckError($objFormParam, $objCustomer);
72
73            if (empty($this->arrErr)) {
74                $this->lfRegister($objFormParam, $objCustomer);
75                $this->tpl_mainpage = 'entry/email_mobile_complete.tpl';
76                $this->tpl_title = '携帯メール登録完了';
77            }
78        }
79
80        // 空メール用のトークンを作成する。
81        if (MOBILE_USE_KARA_MAIL) {
82            $objMobile = new SC_Helper_Mobile_Ex();
83            $token = $objMobile->gfPrepareKaraMail('entry/email_mobile.php');
84            if ($token !== false) {
85                $this->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
86            }
87        }
88
89        $this->tpl_name = $objCustomer->getValue('name01');
90        $this->arrForm = $objFormParam->getFormParamList();
91
92        $objView->assignobj($this);
93        $objView->display(SITE_FRAME);
94    }
95
96    /**
97     * デストラクタ.
98     *
99     * @return void
100     */
101    function destroy() {
102        parent::destroy();
103    }
104
105
106    function lfInitParam(&$objFormParam) {
107        $objFormParam->addParam('メールアドレス', 'email_mobile', MTEXT_LEN, 'a',
108                                array('NO_SPTAB', 'EXIST_CHECK', 'MAX_LENGTH_CHECK', 'CHANGE_LOWER', 'EMAIL_CHAR_CHECK', 'MOBILE_EMAIL_CHECK'));
109    }
110
111    function lfCheckError(&$objFormParam, &$objCustomer) {
112        $arrRet = $objFormParam->getHashArray();
113        $objErr = new SC_CheckError($arrRet);
114        $objErr->arrErr = $objFormParam->checkError();
115
116        if (count($objErr->arrErr) > 0) {
117            return $objErr->arrErr;
118        }
119
120        $email_mobile = strtolower($objFormParam->getValue('email_mobile'));
121        $customer_id = $objCustomer->getValue('customer_id');
122        $objQuery = new SC_Query();
123        // TODO ORDER BY del_flg は必要?
124        $arrRet = $objQuery->select('email, email_mobile, update_date, del_flg', 'dtb_customer', '(email = ? OR email_mobile = ?) AND customer_id <> ? ORDER BY del_flg', array($email_mobile, $email_mobile, $customer_id));
125
126        if (count($arrRet) > 0) {
127            if ($arrRet[0]['del_flg'] != '1') {
128                // 会員である場合
129                $objErr->arrErr['email_mobile'] .= '※ すでに登録されているメールアドレスです。<br>';
130            } else {
131                // 退会した会員である場合
132                $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']);
133                $now_time = time();
134                $pass_time = $now_time - $leave_time;
135                // 退会から何時間-経過しているか判定する。
136                $limit_time = ENTRY_LIMIT_HOUR * 3600;
137                if ($pass_time < $limit_time) {
138                    $objErr->arrErr['email_mobile'] .= '※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br>';
139                }
140            }
141        }
142
143        return $objErr->arrErr;
144    }
145
146    function lfRegister(&$objFormParam, &$objCustomer) {
147        $customer_id = $objCustomer->getValue('customer_id');
148        $email_mobile = strtolower($objFormParam->getValue('email_mobile'));
149
150        $objQuery = new SC_Query();
151        $objQuery->update('dtb_customer', array('email_mobile' => $email_mobile), 'customer_id = ?', array($customer_id));
152
153        $objCustomer->setValue('email_mobile', $email_mobile);
154    }
155}
156?>
Note: See TracBrowser for help on using the repository browser.