source: branches/comu/html/admin/mail/inc_mailmagazine.php @ 11729

Revision 11729, 11.6 KB checked in by nanasess, 20 years ago (diff)

UTF-8 へ変換

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 *
7 * CSV配信機能実装のため、共通部分を外部ファイル化しました。<br>
8 * @author hirokazu_fukuda
9 * @version 2005/12/27
10 */
11
12
13//---- 検索用項目配列
14$objPage->arrHtmlmail = array( "" => "両方",  1 => "HTML", 2 => "TEXT" );
15
16
17//---- 配列内容専用項目の配列
18$arrRegistColumn = array(
19                             array(  "column" => "template_id",     "convert" => "n" )
20                            ,array(  "column" => "mail_method",     "convert" => "n" )
21                            ,array(  "column" => "send_year",       "convert" => "n" )
22                            ,array(  "column" => "send_month",      "convert" => "n" )
23                            ,array(  "column" => "send_day",        "convert" => "n" )
24                            ,array(  "column" => "send_hour",       "convert" => "n" )
25                            ,array(  "column" => "send_minutes",    "convert" => "n" )
26                            ,array(  "column" => "subject",         "convert" => "aKV" )
27                            ,array(  "column" => "body",            "convert" => "KV" )
28                        );
29
30//---- メルマガ会員種別
31$arrCustomerType = array(
32                        1 => "会員",
33                        2 => "非会員",
34                        //3 => "CSV登録"
35                        );
36
37//---- 検索項目
38$arrSearchColumn = array(
39                            array(  "column" => "name",             "convert" => "aKV"),
40                            array(  "column" => "pref",             "convert" => "n" ),
41                            array(  "column" => "kana",             "convert" => "CKV"),
42                            array(  "column" => "sex",              "convert" => "" ),
43                            array(  "column" => "tel",              "convert" => "n" ),
44                            array(  "column" => "job",              "convert" => "" ),
45                            array(  "column" => "email",            "convert" => "a" ),
46                            array(  "column" => "htmlmail",         "convert" => "n" ),
47                            array(  "column" => "customer",         "convert" => "" ),
48                            array(  "column" => "buy_total_from",   "convert" => "n" ),
49                            array(  "column" => "buy_total_to",     "convert" => "n" ),
50                            array(  "column" => "buy_times_from",   "convert" => "n" ),
51                            array(  "column" => "buy_times_to",     "convert" => "n" ),
52                            array(  "column" => "birth_month",      "convert" => "n" ),
53                            array(  "column" => "b_start_year",     "convert" => "n" ),
54                            array(  "column" => "b_start_month",    "convert" => "n" ),
55                            array(  "column" => "b_start_day",      "convert" => "n" ),
56                            array(  "column" => "b_end_year",       "convert" => "n" ),
57                            array(  "column" => "b_end_month",      "convert" => "n" ),
58                            array(  "column" => "b_end_day",        "convert" => "n" ),
59                            array(  "column" => "start_year",       "convert" => "n" ),
60                            array(  "column" => "start_month",      "convert" => "n" ),
61                            array(  "column" => "start_day",        "convert" => "n" ),
62                            array(  "column" => "end_year",         "convert" => "n" ),
63                            array(  "column" => "end_month",        "convert" => "n" ),
64                            array(  "column" => "end_day",          "convert" => "n" ),
65                            array(  "column" => "buy_start_year",   "convert" => "n" ),
66                            array(  "column" => "buy_start_month",  "convert" => "n" ),
67                            array(  "column" => "buy_start_day",    "convert" => "n" ),
68                            array(  "column" => "buy_end_year",     "convert" => "n" ),
69                            array(  "column" => "buy_end_month",    "convert" => "n" ),
70                            array(  "column" => "buy_end_day",      "convert" => "n" ),
71                            array(  "column" => "buy_product_code", "convert" => "aKV" )
72                            ,array(  "column" => "buy_product_name",    "convert" => "aKV" )
73                            ,array(  "column" => "category_id", "convert" => "" )           
74                            ,array(  "column" => "buy_total_from",  "convert" => "n" )     
75                            ,array(  "column" => "buy_total_to",    "convert" => "n" )
76                            ,array(  "column" => "campaign_id", "convert" => "" )                                           
77                         );
78
79//--------------------------------------------------------------------------------------------------------------------------------------
80
81//---- HTMLテンプレートを使用する場合、データを取得する。 
82function lfGetHtmlTemplateData($id) {
83   
84    global $conn;
85    $sql = "SELECT * FROM dtb_mailmaga_template WHERE template_id = ?";
86    $result = $conn->getAll($sql, array($id));
87    $list_data = $result[0];
88
89    // メイン商品の情報取得
90    $sql = "SELECT name, main_image, point_rate, deliv_fee, price01_min, price01_max, price02_min, price02_max FROM vw_products_allclass AS allcls WHERE product_id = ?";
91    $main = $conn->getAll($sql, array($list_data["main_product_id"]));
92    $list_data["main"] = $main[0];
93
94    // サブ商品の情報取得
95    $sql = "SELECT product_id, name, main_list_image, price01_min, price01_max, price02_min, price02_max FROM vw_products_allclass AS allcls WHERE product_id = ?";
96    $k = 0;
97    $l = 0;
98    for ($i = 1; $i <= 12; $i ++) {
99        if ($l == 4) {
100            $l = 0;
101            $k ++;
102        }
103        $result = "";
104        $j = sprintf("%02d", $i);
105        if ($i > 0 && $i < 5 ) $k = 0;
106        if ($i > 4 && $i < 9 ) $k = 1;
107        if ($i > 8 && $i < 13 ) $k = 2;
108       
109        if (is_numeric($list_data["sub_product_id" .$j])) {
110            $result = $conn->getAll($sql, array($list_data["sub_product_id" .$j]));
111            $list_data["sub"][$k][$l] = $result[0];
112            $list_data["sub"][$k]["data_exists"] = "OK";    //当該段にデータが1つ以上存在するフラグ
113        }
114        $l ++;
115    }
116    return $list_data;
117}
118
119//---   テンプレートの種類を返す
120function lfGetTemplateMethod($conn, $templata_id){
121   
122    if ( sfCheckNumLength($template_id) ){
123        $sql = "SELECT mail_method FROM dtb_mailmaga_template WEHRE template_id = ?";
124    }   
125}
126
127//---   hidden要素出力用配列の作成
128function lfGetHidden( $array ){
129    if ( is_array($array) ){
130        foreach( $array as $key => $val ){
131            if ( is_array( $val )){
132                for ( $i=0; $i<count($val); $i++){
133                    $return[ $key.'['.$i.']'] = $val[$i];
134                }               
135            } else {
136                $return[$key] = $val;           
137            }
138        }
139    }
140    return $return;
141}
142
143//---- 取得文字列の変換
144function lfConvertParam($array, $arrSearchColumn) {
145   
146    // 文字変換
147    foreach ($arrSearchColumn as $data) {
148        $arrConvList[ $data["column"] ] = $data["convert"];
149    }
150
151    $new_array = array();
152    foreach ($arrConvList as $key => $val) {
153        if ( strlen($array[$key]) > 0 ){                        // データのあるものだけ返す
154            $new_array[$key] = $array[$key];
155            if( strlen($val) > 0) {
156                $new_array[$key] = mb_convert_kana($new_array[$key] ,$val);
157            }
158        }
159    }
160    return $new_array;
161   
162}
163
164
165//---- 入力エラーチェック
166function lfErrorCheck($array, $flag = '') {
167
168    // flag は登録時用
169   
170    $objErr = new SC_CheckError($array);
171   
172    $objErr->doFunc(array("顧客コード", "customer_id", INT_LEN), array("NUM_CHECK","MAX_LENGTH_CHECK"));
173    $objErr->doFunc(array("都道府県", "pref", 2), array("NUM_CHECK","MAX_LENGTH_CHECK"));
174    $objErr->doFunc(array("顧客名", "name", STEXT_LEN), array("MAX_LENGTH_CHECK"));
175    $objErr->doFunc(array("顧客名(カナ)", "kana", STEXT_LEN), array("KANA_CHECK", "MAX_LENGTH_CHECK"));
176
177    $objErr->doFunc(array('メールアドレス', "email", STEXT_LEN) ,array("EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));
178    $objErr->doFunc(array("電話番号", "tel", TEL_LEN), array("NUM_CHECK","MAX_LENGTH_CHECK"));
179       
180    $objErr->doFunc(array("購入回数(開始)", "buy_times_from", INT_LEN), array("NUM_CHECK","MAX_LENGTH_CHECK"));
181    $objErr->doFunc(array("購入回数(終了)", "buy_times_to", INT_LEN), array("NUM_CHECK","MAX_LENGTH_CHECK"));
182    if ((is_numeric($array["buy_total_from"]) && is_numeric($array["buy_total_to"]) ) && ($array["buy_times_from"] > $array["buy_times_to"]) ) $objErr->arrErr["buy_times_from"] .= "※ 購入回数の指定範囲が不正です。";
183   
184    $objErr->doFunc(array("誕生月", "birth_month", 2), array("NUM_CHECK","MAX_LENGTH_CHECK"));
185   
186    $objErr->doFunc(array("誕生日(開始日)", "b_start_year", "b_start_month", "b_start_day",), array("CHECK_DATE"));
187    $objErr->doFunc(array("誕生日(終了日)", "b_end_year", "b_end_month", "b_end_day"), array("CHECK_DATE")); 
188    $objErr->doFunc(array("誕生日(開始日)","誕生日(終了日)", "b_start_year", "b_start_month", "b_start_day", "b_end_year", "b_end_month", "b_end_day"), array("CHECK_SET_TERM"));
189   
190    $objErr->doFunc(array("登録・更新日(開始日)", "start_year", "start_month", "start_day",), array("CHECK_DATE"));
191    $objErr->doFunc(array("登録・更新日(終了日)", "end_year", "end_month", "end_day"), array("CHECK_DATE"));
192    $objErr->doFunc(array("登録・更新日(開始日)","登録・更新日(終了日)", "start_year", "start_month", "start_day", "end_year", "end_month", "end_day"), array("CHECK_SET_TERM"));
193   
194    $objErr->doFunc(array("最終購入日(開始日)", "buy_start_year", "buy_start_month", "buy_start_day",), array("CHECK_DATE"));
195    $objErr->doFunc(array("最終購入(終了日)", "buy_end_year", "buy_end_month", "buy_end_day"), array("CHECK_DATE"));   
196    $objErr->doFunc(array("最終購入日(開始日)","登録・更新日(終了日)", "buy_start_year", "buy_start_month", "buy_start_day", "buy_end_year", "buy_end_month", "buy_end_day"), array("CHECK_SET_TERM"));
197   
198    $objErr->doFunc(array("購入商品コード", "buy_product_code", STEXT_LEN), array("MAX_LENGTH_CHECK"));
199
200    $objErr->doFunc(array("購入商品名", "buy_product_name", STEXT_LEN), array("MAX_LENGTH_CHECK"));
201   
202    $objErr->doFunc(array("購入金額(開始)", "buy_total_from", INT_LEN), array("NUM_CHECK","MAX_LENGTH_CHECK"));   
203    $objErr->doFunc(array("購入金額(終了)", "buy_total_to", INT_LEN), array("NUM_CHECK","MAX_LENGTH_CHECK"));
204
205    $objErr->doFunc(array("キャンペーン", "campaign_id", INT_LEN), array("NUM_CHECK"));   
206       
207    //購入金額(from) > 購入金額(to) の場合はエラーとする
208    if ( (is_numeric($array["buy_total_from"]) && is_numeric($array["buy_total_to"]) ) &&
209         ($array["buy_total_from"] > $array["buy_total_to"]) ) {
210         $objErr->arrErr["buy_total_from"] .= "※ 購入金額の指定範囲が不正です。";
211     }
212
213    if ( $flag ){
214        $objErr->doFunc(array("テンプレート", "template_id"), array("EXIST_CHECK", "NUM_CHECK"));
215        $objErr->doFunc(array("メール送信法法", "mail_method"), array("EXIST_CHECK", "NUM_CHECK"));
216       
217        if(MELMAGA_BATCH_MODE) {
218            $objErr->doFunc(array("配信日(年)","send_year"), array("EXIST_CHECK", "NUM_CHECK"));
219            $objErr->doFunc(array("配信日(月)","send_month"), array("EXIST_CHECK", "NUM_CHECK"));
220            $objErr->doFunc(array("配信日(日)","send_day"), array("EXIST_CHECK", "NUM_CHECK"));
221            $objErr->doFunc(array("配信日(時)","send_hour"), array("EXIST_CHECK", "NUM_CHECK"));
222            $objErr->doFunc(array("配信日(分)","send_minutes"), array("EXIST_CHECK", "NUM_CHECK"));
223            $objErr->doFunc(array("配信日", "send_year", "send_month", "send_day"), array("CHECK_DATE"));
224            $objErr->doFunc(array("配信日", "send_year", "send_month", "send_day","send_hour", "send_minutes"), array("ALL_EXIST_CHECK"));
225        }
226        $objErr->doFunc(array("Subject", "subject", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK"));
227        $objErr->doFunc(array("本文", 'body', LLTEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK"));  // HTMLテンプレートを使用しない場合
228    }
229   
230    return $objErr->arrErr;
231}
232
233/* テンプレートIDとsubjectの配列を返す */
234function getTemplateList($conn){
235    global $arrMagazineTypeAll;
236   
237    $sql = "SELECT template_id, subject, mail_method FROM dtb_mailmaga_template WHERE del_flg = 0 ";
238    if ($_POST["htmlmail"] == 2) {
239        $sql .= " AND mail_method = 2 ";    //TEXT希望者へのTESTメールテンプレートリスト
240    }
241    $sql .= " ORDER BY template_id DESC";
242    $result = $conn->getAll($sql);
243   
244    if ( is_array($result) ){
245        foreach( $result as $line ){
246            $return[$line['template_id']] = "【" . $arrMagazineTypeAll[$line['mail_method']] . "】" . $line['subject']; 
247        }
248    }
249   
250    return $return;
251}
252
253/* テンプレートIDからテンプレートデータを取得 */
254function getTemplateData($conn, $id){
255   
256    if ( sfCheckNumLength($id) ){
257        $sql = "SELECT * FROM dtb_mailmaga_template WHERE template_id = ? ORDER BY template_id DESC";
258        $result = $conn->getAll( $sql, array($id) );
259        if ( is_array($result) ) {
260            $return = $result[0];
261        }
262    }
263    return $return;
264}
265
266
267
268?>
Note: See TracBrowser for help on using the repository browser.