Source for file LC_Page_Entry_EmailMobile.php

Documentation is available at LC_Page_Entry_EmailMobile.php

  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.lockon.co.jp/
  8.  *
  9.  * This program is free software; you can redistribute it and/or
  10.  * modify it under the terms of the GNU General Public License
  11.  * as published by the Free Software Foundation; either version 2
  12.  * of the License, or (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  22.  */
  23.  
  24. // {{{ requires
  25. require_once(CLASS_PATH . "pages/LC_Page.php");
  26.  
  27. /**
  28.  * 空メール会員登録(モバイル) のページクラス.
  29.  *
  30.  * @package Page
  31.  * @author LOCKON CO.,LTD.
  32.  * @version $Id: LC_Page_Entry_EmailMobile.php 16582 2007-10-29 03:06:29Z nanasess $
  33.  */
  34.  
  35.     // }}}
  36.     // {{{ functions
  37.  
  38.     /**
  39.      * Page を初期化する.
  40.      *
  41.      * @return void 
  42.      */
  43.     function init() {
  44.         parent::init();
  45.     }
  46.  
  47.     /**
  48.      * Page のプロセス.
  49.      *
  50.      * @return void 
  51.      */
  52.     function process() {
  53.     }
  54.  
  55.     /**
  56.      * モバイルページを初期化する.
  57.      *
  58.      * @return void 
  59.      */
  60.     function mobileInit() {
  61.         $this->tpl_mainpage = 'entry/email_mobile.tpl';
  62.         $this->tpl_title = '携帯メール登録';
  63.         $this->allowClientCache();
  64.     }
  65.  
  66.     /**
  67.      * Page のプロセス(モバイル).
  68.      *
  69.      * @return void 
  70.      */
  71.     function mobileProcess() {
  72.         $objView = new SC_MobileView;
  73.         $objCustomer = new SC_Customer;
  74.         $objFormParam = new SC_FormParam;
  75.  
  76.         if (isset($_SESSION['mobile']['kara_mail_from'])) {
  77.             $_SERVER['REQUEST_METHOD'] = 'POST';
  78.             $_POST['email_mobile'] = $_SESSION['mobile']['kara_mail_from'];
  79.         }
  80.  
  81.         $this->lfInitParam($objFormParam);
  82.  
  83.         if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  84.             $objFormParam->setParam($_POST);
  85.             $objFormParam->convParam();
  86.             $this->arrErr = $this->lfCheckError($objFormParam, $objCustomer);
  87.  
  88.             if (empty($this->arrErr)) {
  89.                 $this->lfRegister($objFormParam, $objCustomer);
  90.                 $this->tpl_mainpage = 'entry/email_mobile_complete.tpl';
  91.                 $this->tpl_title = '携帯メール登録完了';
  92.             }
  93.         }
  94.  
  95.         // 空メール用のトークンを作成する。
  96.         if (MOBILE_USE_KARA_MAIL) {
  97.             $objMobile = new SC_Helper_Mobile_Ex();
  98.             $token = $objMobile->gfPrepareKaraMail('entry/email_mobile.php');
  99.             if ($token !== false) {
  100.                 $this->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
  101.             }
  102.         }
  103.  
  104.         $this->tpl_name = $objCustomer->getValue('name01');
  105.         $this->arrForm = $objFormParam->getFormParamList();
  106.  
  107.         $objView->assignobj($this);
  108.         $objView->display(SITE_FRAME);
  109.     }
  110.  
  111.     /**
  112.      * デストラクタ.
  113.      *
  114.      * @return void 
  115.      */
  116.     function destroy() {
  117.         parent::destroy();
  118.     }
  119.  
  120.  
  121.     function lfInitParam(&$objFormParam) {
  122.         $objFormParam->addParam('メールアドレス', 'email_mobile', MTEXT_LEN, 'a',
  123.                                 array('NO_SPTAB', 'EXIST_CHECK', 'MAX_LENGTH_CHECK', 'CHANGE_LOWER', 'EMAIL_CHAR_CHECK', 'MOBILE_EMAIL_CHECK'));
  124.     }
  125.  
  126.     function lfCheckError(&$objFormParam, &$objCustomer) {
  127.         $arrRet = $objFormParam->getHashArray();
  128.         $objErr = new SC_CheckError($arrRet);
  129.         $objErr->arrErr = $objFormParam->checkError();
  130.  
  131.         if (count($objErr->arrErr) > 0) {
  132.             return $objErr->arrErr;
  133.         }
  134.  
  135.         $email_mobile = strtolower($objFormParam->getValue('email_mobile'));
  136.         $customer_id = $objCustomer->getValue('customer_id');
  137.         $objQuery = new SC_Query();
  138.         // TODO ORDER BY del_flg は必要?
  139.         $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));
  140.  
  141.         if (count($arrRet) > 0) {
  142.             if ($arrRet[0]['del_flg'] != '1') {
  143.                 // 会員である場合
  144.                 $objErr->arrErr['email_mobile'] .= '※ すでに登録されているメールアドレスです。<br>';
  145.             } else {
  146.                 // 退会した会員である場合
  147.                 $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']);
  148.                 $now_time = time();
  149.                 $pass_time = $now_time - $leave_time;
  150.                 // 退会から何時間-経過しているか判定する。
  151.                 $limit_time = ENTRY_LIMIT_HOUR * 3600;
  152.                 if ($pass_time < $limit_time) {
  153.                     $objErr->arrErr['email_mobile'] .= '※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br>';
  154.                 }
  155.             }
  156.         }
  157.  
  158.         return $objErr->arrErr;
  159.     }
  160.  
  161.     function lfRegister(&$objFormParam, &$objCustomer) {
  162.         $customer_id = $objCustomer->getValue('customer_id');
  163.         $email_mobile = strtolower($objFormParam->getValue('email_mobile'));
  164.  
  165.         $objQuery = new SC_Query();
  166.         $objQuery->update('dtb_customer', array('email_mobile' => $email_mobile), 'customer_id = ?', array($customer_id));
  167.  
  168.         $objCustomer->setValue('email_mobile', $email_mobile);
  169.     }
  170. }
  171. ?>

Documentation generated on Tue, 28 Apr 2009 18:12:08 +0900 by phpDocumentor 1.4.2