source: branches/feature-module-update/data/class/pages/LC_Page_InputZip.php @ 16582

Revision 16582, 4.1 KB checked in by nanasess, 16 years ago (diff)

ライセンス表記変更

  • Property svn:eol-style set to LF
  • Property svn:keywords set to HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
  • Property svn:mime-type set to text/x-httpd-php
Line 
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
25require_once(CLASS_PATH . "pages/LC_Page.php");
26
27/**
28 * 郵便番号入力 のページクラス.
29 *
30 * @package Page
31 * @author LOCKON CO.,LTD.
32 * @version $Id$
33 */
34class LC_Page_InputZip 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_message = "住所を検索しています。";
47    }
48
49    /**
50     * Page のプロセス.
51     *
52     * @return void
53     */
54    function process() {
55        $conn = new SC_DBconn(ZIP_DSN);
56        $objView = new SC_SiteView(false);
57
58        // 入力エラーチェック
59        $arrErr = $this->fnErrorCheck();
60
61        // 入力エラーの場合は終了
62        if(count($arrErr) > 0) {
63            $this->tpl_start = "window.close();";
64        }
65
66        // 郵便番号検索文作成
67        $zipcode = $_GET['zip1'].$_GET['zip2'];
68        $zipcode = mb_convert_kana($zipcode ,"n");
69        $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?";
70
71        $data_list = $conn->getAll($sqlse, array($zipcode));
72        if (empty($data_list)) $data_list = array();
73
74        $masterData = new SC_DB_MasterData_Ex();
75        $arrPref = $masterData->getMasterData("mtb_pref", array("pref_id", "pref_name", "rank"));
76        // インデックスと値を反転させる。
77        $arrREV_PREF = array_flip($arrPref);
78
79        if (!empty($data_list)) {
80            $this->tpl_state = isset($arrREV_PREF[$data_list[0]['state']])
81                ? $arrREV_PREF[$data_list[0]['state']] : "";
82            $this->tpl_city = isset($data_list[0]['city']) ? $data_list[0]['city'] : "";
83            $town =  isset($data_list[0]['town']) ? $data_list[0]['town'] : "";
84        } else {
85            $town = "";
86        }
87
88        /*
89         総務省からダウンロードしたデータをそのままインポートすると
90         以下のような文字列が入っているので  対策する。
91         ・(1~19丁目)
92         ・以下に掲載がない場合
93        */
94        $town = ereg_replace("(.*)$","",$town);
95        $town = ereg_replace("以下に掲載がない場合","",$town);
96        $this->tpl_town = $town;
97
98        // 郵便番号が発見された場合
99        if(!empty($data_list)) {
100            $func = "fnPutAddress('" . $_GET['input1'] . "','" . $_GET['input2']. "');";
101            $this->tpl_onload = "$func";
102            $this->tpl_start = "window.close();";
103        } else {
104            $this->tpl_message = "該当する住所が見つかりませんでした。";
105        }
106
107        /* ページの表示 */
108        $objView->assignobj($this);
109        $objView->display("input_zip.tpl");
110    }
111
112    /**
113     * デストラクタ.
114     *
115     * @return void
116     */
117    function destroy() {
118        parent::destroy();
119    }
120
121
122    /* 入力エラーのチェック */
123    function fnErrorCheck() {
124        // エラーメッセージ配列の初期化
125        $objErr = new SC_CheckError();
126
127        // 郵便番号
128        $objErr->doFunc( array("郵便番号1",'zip1',ZIP01_LEN ) ,array( "NUM_COUNT_CHECK" ) );
129        $objErr->doFunc( array("郵便番号2",'zip2',ZIP02_LEN ) ,array( "NUM_COUNT_CHECK" ) );
130
131        return $objErr->arrErr;
132    }
133
134
135}
136?>
Note: See TracBrowser for help on using the repository browser.