Page
[ class tree: Page ] [ index: Page ] [ all elements ]

Source for file LC_Page_Contact.php

Documentation is available at LC_Page_Contact.php

  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) 2000-2010 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_Contact.php 15532 2007-08-31 14:39:46Z nanasess $
  33.  */
  34. class LC_Page_Contact extends LC_Page {
  35.  
  36.     // }}}
  37.     // {{{ functions
  38.  
  39.     /**
  40.      * Page を初期化する.
  41.      *
  42.      * @return void 
  43.      */
  44.     function init({
  45.         parent::init();
  46.         $this->tpl_mainpage = 'contact/index.tpl';
  47.         $this->tpl_title = 'お問い合わせ(入力ページ)';
  48.         $this->tpl_page_category = 'contact';
  49.  
  50.         $masterData new SC_DB_MasterData_Ex();
  51.         $this->arrPref $masterData->getMasterData("mtb_pref"array("pref_id""pref_name""rank"));
  52.     }
  53.  
  54.     /**
  55.      * Page のプロセス.
  56.      *
  57.      * @return void 
  58.      */
  59.     function process({
  60.         global $objCampaignSess;
  61.  
  62.         $conn new SC_DBConn();
  63.         $this->objView new SC_SiteView();
  64.         $objCampaignSess new SC_CampaignSession();
  65.         $objDb new SC_Helper_DB_Ex();
  66.         $CONF $objDb->sf_getBasisData();            // 店舗基本情報
  67.         SC_Utils_Ex::sfDomainSessionStart();
  68.  
  69.         $objCustomer new SC_Customer();
  70.  
  71.         $this->arrData = isset($_SESSION['customer']$_SESSION['customer'"";
  72.  
  73.         // レイアウトデザインを取得
  74.         $layout new SC_Helper_PageLayout_Ex();
  75.         $layout->sfGetPageLayout($thisfalseDEF_LAYOUT);
  76.  
  77.         //フォーム値変換用カラム
  78.         $arrConvertColumn array(
  79.                                      array(  "column" => "name01",        "convert" => "aKV" ),
  80.                                      array(  "column" => "name02",        "convert" => "aKV" ),
  81.                                      array(  "column" => "kana01",        "convert" => "CKV" ),
  82.                                      array(  "column" => "kana02",        "convert" => "CKV" ),
  83.                                      array(  "column" => "zip01",        "convert" => "n" ),
  84.                                      array(  "column" => "zip02",        "convert" => "n" ),
  85.                                      array(  "column" => "pref",        "convert" => "n" ),
  86.                                      array(  "column" => "addr01",        "convert" => "aKV" ),
  87.                                      array(  "column" => "addr02",        "convert" => "aKV" ),
  88.                                      array(  "column" => "email",        "convert" => "a" ),
  89.                                      array(  "column" => "email02",        "convert" => "a" ),
  90.                                      array(  "column" => "tel01",        "convert" => "n" ),
  91.                                      array(  "column" => "tel02",        "convert" => "n" ),
  92.                                      array(  "column" => "tel03",        "convert" => "n" ),
  93.                                      array(  "column" => "contents",   "convert" => "aKV")
  94.                                   );
  95.  
  96.         if (!isset($_POST['mode'])) $_POST['mode'"";
  97.  
  98.         switch ($_POST['mode']{
  99.             case 'confirm':
  100.             // エラーチェック
  101.             $this->arrForm $_POST;
  102.             $this->arrForm['email']   = isset($_POST['email']strtolower($_POST['email']'';
  103.             $this->arrForm['email02'= isset($_POST['email02']strtolower($_POST['email02']'';
  104.             $this->arrForm $this->lfConvertParam($this->arrForm,$arrConvertColumn);
  105.             $this->arrErr $this->lfErrorCheck($this->arrForm);
  106.             if $this->arrErr ){
  107.                 // エラー無しで完了画面
  108.                 $this->tpl_mainpage = 'contact/confirm.tpl';
  109.                 $this->tpl_title = 'お問い合わせ(確認ページ)';
  110.             else {
  111.                 foreach ($arrConvertColumn as $key{
  112.                     $this->$key['column'$this->arrForm[$key['column']];
  113.                 }
  114.             }
  115.             break;
  116.  
  117.             case 'return':
  118.                 foreach ($arrConvertColumn as $key{
  119.                     $this->$key['column'$_POST[$key['column']];
  120.                 }
  121.             break;
  122.  
  123.             case 'complete':
  124.             $this->arrForm $_POST;
  125.             $this->arrForm['email'strtolower($_POST['email']);
  126.             $this->arrForm $this->lfConvertParam($this->arrForm,$arrConvertColumn);
  127.             $this->arrErr $this->lfErrorCheck($this->arrForm);
  128.             if(!$this->arrErr{
  129.                 $this->lfSendMail($CONF$this);
  130.                 // 完了ページへ移動する
  131.                 $this->sendRedirect($this->getLocation("./complete.php"array()true));
  132.                 exit;
  133.             else {
  134.                 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
  135.             }
  136.             break;
  137.  
  138.             default:
  139.             break;
  140.         }
  141.  
  142.         //---- ページ表示
  143.         $this->objView->assignobj($this);
  144.         // フレームを選択(キャンペーンページから遷移なら変更)
  145.         $objCampaignSess->pageView($this->objView);
  146.     }
  147.  
  148.     /**
  149.      * モバイルページを初期化する.
  150.      *
  151.      * @return void 
  152.      */
  153.     function mobileInit({
  154.         $this->init();
  155.     }
  156.  
  157.     /**
  158.      * Page のプロセス(モバイル).
  159.      *
  160.      * @return void 
  161.      */
  162.     function mobileProcess({
  163.         $conn new SC_DBConn();
  164.         $objView new SC_MobileView();
  165.         $objDb new SC_Helper_DB_Ex();
  166.         $CONF $objDb->sf_getBasisData();            // 店舗基本情報
  167.  
  168.         //---- ページ表示
  169.         $objView->assignobj($this);
  170.         $objView->assignarray($CONF);
  171.         $objView->display(SITE_FRAME);
  172.     }
  173.  
  174.     /**
  175.      * デストラクタ.
  176.      *
  177.      * @return void 
  178.      */
  179.     function destroy({
  180.         parent::destroy();
  181.     }
  182.  
  183.     // }}}
  184.     // {{{ protected functions
  185.  
  186.     //エラーチェック処理部
  187.     function lfErrorCheck($array{
  188.         $objErr new SC_CheckError($array);
  189.         $objErr->doFunc(array("お名前(姓)"'name01'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
  190.         $objErr->doFunc(array("お名前(名)"'name02'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
  191.         $objErr->doFunc(array("フリガナ(セイ)"'kana01'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK""KANA_CHECK"));
  192.         $objErr->doFunc(array("フリガナ(メイ)"'kana02'STEXT_LEN)array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK""KANA_CHECK"));
  193.         $objErr->doFunc(array("郵便番号1""zip01"ZIP01_LEN ,array("SPTAB_CHECK" ,"NUM_CHECK""NUM_COUNT_CHECK"));
  194.         $objErr->doFunc(array("郵便番号2""zip02"ZIP02_LEN ,array("SPTAB_CHECK" ,"NUM_CHECK""NUM_COUNT_CHECK"));
  195.         $objErr->doFunc(array("ご住所1""addr01"MTEXT_LEN)array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
  196.         $objErr->doFunc(array("ご住所2""addr02"MTEXT_LEN)array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
  197.         $objErr->doFunc(array("お問い合わせ内容""contents"MLTEXT_LEN)array("EXIST_CHECK""MAX_LENGTH_CHECK"));
  198.         $objErr->doFunc(array('メールアドレス'"email"MTEXT_LEN,array("EXIST_CHECK""EMAIL_CHECK""EMAIL_CHAR_CHECK""MAX_LENGTH_CHECK"));
  199.         $objErr->doFunc(array('メールアドレス(確認)'"email02"MTEXT_LEN,array("EXIST_CHECK""EMAIL_CHECK""EMAIL_CHAR_CHECK""MAX_LENGTH_CHECK"));
  200.         $objErr->doFunc(array('メールアドレス''メールアドレス(確認)'"email""email02",array("EQUAL_CHECK"));
  201.         $objErr->doFunc(array("お電話番号1"'tel01'TEL_ITEM_LEN)array("NUM_CHECK""MAX_LENGTH_CHECK"));
  202.         $objErr->doFunc(array("お電話番号2"'tel02'TEL_ITEM_LEN)array("NUM_CHECK""MAX_LENGTH_CHECK"));
  203.         $objErr->doFunc(array("お電話番号3"'tel03'TEL_ITEM_LEN)array("NUM_CHECK""MAX_LENGTH_CHECK"));
  204.  
  205.         if (REVIEW_ALLOW_URL == false{
  206.             // URLの入力を禁止
  207.             $masterData new SC_DB_MasterData_Ex();
  208.             $objErr->doFunc(array("URL""contents"$masterData->getMasterData("mtb_review_deny_url"))array("PROHIBITED_STR_CHECK"));
  209.         }
  210.  
  211.         return $objErr->arrErr;
  212.     }
  213.  
  214.     //---- 取得文字列の変換
  215.     function lfConvertParam($array$arrConvertColumn{
  216.         /*
  217.          *    文字列の変換
  218.          *    K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
  219.          *    C :  「全角ひら仮名」を「全角かた仮名」に変換
  220.          *    V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
  221.          *    n :  「全角」数字を「半角(ハンカク)」に変換
  222.          *  a :  全角英数字を半角英数字に変換する
  223.          */
  224.         // カラム名とコンバート情報
  225.         foreach ($arrConvertColumn as $data{
  226.             $arrConvList$data["column"] ] $data["convert"];
  227.         }
  228.  
  229.         // 文字変換
  230.         foreach ($arrConvList as $key => $val{
  231.             // POSTされてきた値のみ変換する。
  232.             if(strlen(($array[$key])) 0{
  233.                 $array[$keymb_convert_kana($array[$key,$val);
  234.             }
  235.         }
  236.         return $array;
  237.     }
  238.  
  239.     // ------------  メール送信 ------------
  240.  
  241.     function lfSendMail($CONF&$objPage){
  242.  
  243.         $objQuery new SC_Query();
  244.         $objSiteInfo $this->objView->objSiteInfo;
  245.         $arrInfo $objSiteInfo->data;
  246.         $objPage->tpl_shopname=$arrInfo['shop_name'];
  247.         $objPage->tpl_infoemail $arrInfo['email02'];
  248.  
  249.         $fromMail_name $objPage->arrForm['name01'." 様";
  250.         $fromMail_address $objPage->arrForm['email'];
  251.  
  252.         $helperMail new SC_Helper_Mail_Ex();
  253.         $helperMail->sfSendTemplateMail($CONF["email02"]$CONF["shop_name"]"5"$objPage$fromMail_address$fromMail_name$fromMail_address)
  254.         $helperMail->sfSendTemplateMail($objPage->arrForm['email']$objPage->arrForm['name01'." 様""5"$objPage$CONF["email03"]$CONF["shop_name"]$CONF["email02"]);
  255.     }
  256. }
  257. ?>

Documentation generated on Fri, 24 Feb 2012 13:59:18 +0900 by Seasoft