Source for file LC_Page_Mypage_DeliveryAddr.php

Documentation is available at LC_Page_Mypage_DeliveryAddr.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_Mypage_DeliveryAddr.php 17905 2009-03-18 17:54:34Z Seasoft $
  33.  */
  34.  
  35.     // }}}
  36.     // {{{ functions
  37.  
  38.     /**
  39.      * Page を初期化する.
  40.      *
  41.      * @return void 
  42.      */
  43.     function init({
  44.         parent::init();
  45.         $this->tpl_mainpage = TEMPLATE_DIR 'mypage/delivery_addr.tpl';
  46.         $this->tpl_title = "お届け先の追加・変更";
  47.         $masterData new SC_DB_MasterData_Ex();
  48.         $this->arrPref$masterData->getMasterData("mtb_pref",
  49.                             array("pref_id""pref_name""rank"));
  50.         $this->allowClientCache();
  51.     }
  52.  
  53.     /**
  54.      * Page のプロセス.
  55.      *
  56.      * @return void 
  57.      */
  58.     function process({
  59.         $objView new SC_SiteView(false);
  60.         $objQuery new SC_Query();
  61.         $objCustomer new SC_Customer();
  62.         $ParentPage MYPAGE_DELIVADDR_URL;
  63.  
  64.         // GETでページを指定されている場合には指定ページに戻す
  65.         if (isset($_GET['page'])) {
  66.             $ParentPage htmlspecialchars($_GET['page'],ENT_QUOTES);
  67.         }
  68.         $this->ParentPage $ParentPage;
  69.  
  70.         //ログイン判定
  71.         if (!$objCustomer->isLoginSuccess()){
  72.             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
  73.         }
  74.  
  75.         if (!isset($_POST['mode'])) $_POST['mode'"";
  76.         if (!isset($_GET['other_deliv_id'])) $_GET['other_deliv_id'"";
  77.  
  78.         if ($_POST['mode'== ""){
  79.             $_SESSION['other_deliv_id'$_GET['other_deliv_id'];
  80.         }
  81.  
  82.         if ($_GET['other_deliv_id'!= ""){
  83.             //不正アクセス判定
  84.             $flag $objQuery->count("dtb_other_deliv""customer_id=? AND other_deliv_id=?"array($objCustomer->getValue("customer_id")$_SESSION['other_deliv_id']));
  85.             if (!$objCustomer->isLoginSuccess(|| $flag == 0){
  86.                 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
  87.             }
  88.         }
  89.  
  90.         //別のお届け先DB登録用カラム配列
  91.         $arrRegistColumn array(
  92.                                  array("column" => "name01",    "convert" => "aKV"),
  93.                                  array("column" => "name02",    "convert" => "aKV"),
  94.                                  array("column" => "kana01",    "convert" => "CKV"),
  95.                                  array("column" => "kana02",    "convert" => "CKV"),
  96.                                  array("column" => "zip01",     "convert" => "n"),
  97.                                  array("column" => "zip02",     "convert" => "n"),
  98.                                  array("column" => "pref",      "convert" => "n"),
  99.                                  array("column" => "addr01",    "convert" => "aKV"),
  100.                                  array("column" => "addr02",    "convert" => "aKV"),
  101.                                  array("column" => "tel01",     "convert" => "n"),
  102.                                  array("column" => "tel02",     "convert" => "n"),
  103.                                  array("column" => "tel03",     "convert" => "n"),
  104.                                  );
  105.  
  106.  
  107.         if ($_GET['other_deliv_id'!= ""){
  108.             //別のお届け先情報取得
  109.             $arrOtherDeliv $objQuery->select("*""dtb_other_deliv""other_deliv_id=? "array($_SESSION['other_deliv_id']));
  110.             $this->arrForm $arrOtherDeliv[0];
  111.         }
  112.  
  113.         switch ($_POST['mode']{
  114.             case 'edit':
  115.                 $_POST $this->lfConvertParam($_POST,$arrRegistColumn);
  116.                 $this->arrErr $this->lfErrorCheck($_POST);
  117.                 if ($this->arrErr){
  118.                     foreach ($_POST as $key => $val){
  119.                         if ($val != ""$this->arrForm[$key$val;
  120.                     }
  121.                 else {
  122.                     
  123.                     if ($_POST['ParentPage'== MYPAGE_DELIVADDR_URL || $_POST['ParentPage'== URL_DELIV_TOP{
  124.                         $this->tpl_onload = "fnUpdateParent('"$this->getLocation($_POST['ParentPage']."'); window.close();";
  125.                     else {
  126.                         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
  127.                     }
  128.                     
  129.                     $this->lfRegistData($_POST$arrRegistColumn$objCustomer);
  130.                 }
  131.                 break;
  132.         }
  133.  
  134.         $objView->assignobj($this);
  135.         $objView->display($this->tpl_mainpage);
  136.     }
  137.  
  138.     /**
  139.      * デストラクタ.
  140.      *
  141.      * @return void 
  142.      */
  143.     function destroy({
  144.         parent::destroy();
  145.     }
  146.  
  147.     /* エラーチェック */
  148.     function lfErrorCheck({
  149.         $objErr new SC_CheckError();
  150.  
  151.         $objErr->doFunc(array("お名前(姓)"'name01'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
  152.         $objErr->doFunc(array("お名前(名)"'name02'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK""MAX_LENGTH_CHECK"));
  153.         $objErr->doFunc(array("フリガナ(姓)"'kana01'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK""MAX_LENGTH_CHECK""KANA_CHECK"));
  154.         $objErr->doFunc(array("フリガナ(名)"'kana02'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK""MAX_LENGTH_CHECK""KANA_CHECK"));
  155.         $objErr->doFunc(array("郵便番号1""zip01"ZIP01_LEN ,array("EXIST_CHECK""NUM_CHECK""NUM_COUNT_CHECK"));
  156.         $objErr->doFunc(array("郵便番号2""zip02"ZIP02_LEN ,array("EXIST_CHECK""NUM_CHECK""NUM_COUNT_CHECK"));
  157.         $objErr->doFunc(array("郵便番号""zip01""zip02")array("ALL_EXIST_CHECK"));
  158.         $objErr->doFunc(array("都道府県"'pref')array("SELECT_CHECK","NUM_CHECK"));
  159.         $objErr->doFunc(array("住所(1)""addr01"MTEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
  160.         $objErr->doFunc(array("住所(2)""addr02"MTEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
  161.         $objErr->doFunc(array("電話番号1"'tel01')array("EXIST_CHECK","NUM_CHECK"));
  162.         $objErr->doFunc(array("電話番号2"'tel02')array("EXIST_CHECK","NUM_CHECK"));
  163.         $objErr->doFunc(array("電話番号3"'tel03')array("EXIST_CHECK","NUM_CHECK"));
  164.         $objErr->doFunc(array("電話番号""tel01""tel02""tel03"TEL_LEN,array("TEL_CHECK"));
  165.         return $objErr->arrErr;
  166.  
  167.     }
  168.  
  169.     /* 登録実行 */
  170.     function lfRegistData($array$arrRegistColumn&$objCustomer{
  171.         $objConn new SC_DBConn();
  172.         $objQuery new SC_Query();
  173.         foreach ($arrRegistColumn as $data{
  174.             if (strlen($array$data["column"] ]0{
  175.                 $arrRegist$data["column"] ] $array$data["column"] ];
  176.             }
  177.         }
  178.  
  179.         $arrRegist['customer_id'$objCustomer->getvalue('customer_id');
  180.  
  181.         // 追加
  182.         if (strlen($_POST['other_deliv_id'== 0)) {
  183.             // 別のお届け先登録数の取得
  184.             $deliv_count $objQuery->count("dtb_other_deliv""customer_id=?"array($objCustomer->getValue('customer_id')));
  185.             // 別のお届け先最大登録数に達している場合、エラー
  186.             if ($deliv_count >= DELIV_ADDR_MAX{
  187.                 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG""false'別のお届け先最大登録数に達しています。');
  188.             }
  189.             
  190.             // 実行
  191.             $objConn->autoExecute("dtb_other_deliv"$arrRegist);
  192.             
  193.         // 変更
  194.         else {
  195.             $deliv_count $objQuery->count("dtb_other_deliv","customer_id=? and other_deliv_id = ?" ,array($objCustomer->getValue('customer_id')$_POST['other_deliv_id']));
  196.             if ($deliv_count != 1{
  197.                 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG""false'一致する別のお届け先がありません。');
  198.             }
  199.             
  200.             // 実行
  201.             $objConn->autoExecute("dtb_other_deliv"$arrRegist,
  202.                                   "other_deliv_id = "
  203.                                   . SC_Utils_Ex::sfQuoteSmart($array["other_deliv_id"]));
  204.         }
  205.     }
  206.  
  207.     //---- 取得文字列の変換
  208.     function lfConvertParam($array$arrRegistColumn{
  209.         /*
  210.          *  文字列の変換
  211.          *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
  212.          *  C :  「全角ひら仮名」を「全角かた仮名」に変換
  213.          *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
  214.          *  n :  「全角」数字を「半角(ハンカク)」に変換
  215.          *  a :  全角英数字を半角英数字に変換する
  216.          */
  217.         // カラム名とコンバート情報
  218.         foreach ($arrRegistColumn as $data{
  219.             $arrConvList$data["column"] ] $data["convert"];
  220.         }
  221.  
  222.         // 文字変換
  223.         foreach ($arrConvList as $key => $val{
  224.             // POSTされてきた値のみ変換する。
  225.             if(strlen(($array[$key])) 0{
  226.                 $array[$keymb_convert_kana($array[$key,$val);
  227.             }
  228.         }
  229.         return $array;
  230.     }
  231. }
  232. ?>

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