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->arrErr0{
  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($arrRet0{
  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