source: temp/trunk/html/admin/mail/index.php @ 6147

Revision 6147, 11.9 KB checked in by naka, 20 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2/*
3 * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8require_once("./inc_mailmagazine.php");
9
10class LC_Page {
11    var $arrSession;
12    var $arrHtmlmail;
13    var $arrNowDate;
14    function LC_Page() {
15        $this->tpl_mainpage = 'mail/index.tpl';
16        $this->tpl_mainno = 'mail';
17        $this->tpl_subnavi = 'mail/subnavi.tpl';
18        $this->tpl_subno = "index";
19        $this->tpl_pager = DATA_PATH . 'Smarty/templates/admin/pager.tpl';
20        $this->tpl_subtitle = 'ÇÛ¿®ÆâÍÆÀßÄê';
21       
22        global $arrPref;
23        $this->arrPref = $arrPref;
24        global $arrJob;
25        $arrJob["ÉÔÌÀ"] = "ÉÔÌÀ";
26        $this->arrJob = $arrJob;
27        global $arrSex;     
28        $this->arrSex = $arrSex;
29        global $arrPageRows;
30        $this->arrPageRows = $arrPageRows;
31        // ¥Ú¡¼¥¸¥Ê¥ÓÍÑ
32        $this->tpl_pageno = $_POST['search_pageno'];
33        global $arrMAILMAGATYPE;
34        $this->arrMAILMAGATYPE = $arrMAILMAGATYPE;
35        $this->arrHtmlmail[''] = "¤¹¤Ù¤Æ";
36        $this->arrHtmlmail[1] = $arrMAILMAGATYPE[1];
37        $this->arrHtmlmail[2] = $arrMAILMAGATYPE[2];
38        global $arrCustomerType;
39        $this->arrCustomerType = $arrCustomerType;
40    }
41}
42
43class LC_HTMLtemplate {
44    var $list_data;
45}
46
47//---- ¥Ú¡¼¥¸½é´üÀßÄê
48$conn = new SC_DBConn();
49$objPage = new LC_Page();
50$objView = new SC_AdminView();
51$objDate = new SC_Date();
52$objPage->objDate = $objDate;
53$objPage->arrTemplate = getTemplateList($conn);
54
55$objSess = new SC_Session();
56
57// ǧ¾Ú²ÄÈݤÎȽÄê
58sfIsSuccess($objSess);
59
60/*
61    query:ÇÛ¿®ÍúÎò¡Ö³Îǧ¡×
62*/
63if ($_GET["mode"] == "query" && sfCheckNumLength($_GET["send_id"])) {
64    // Á÷¿®ÍúÎò¤è¤ê¡¢Á÷¿®¾ò·ï³Îǧ²èÌÌ
65    $sql = "SELECT search_data FROM dtb_send_history WHERE send_id = ?";
66    $result = $conn->getOne($sql, array($_GET["send_id"]));
67    $tpl_path = "mail/query.tpl";
68       
69    $list_data = unserialize($result);
70   
71    // ÅÔÆ»Éܸ©¤òÊÑ´¹
72    $list_data['pref_disp'] = $objPage->arrPref[$list_data['pref']];
73   
74    // ÇÛ¿®·Á¼°
75    $list_data['htmlmail_disp'] = $objPage->arrHtmlmail[$list_data['htmlmail']];
76   
77    // À­Ê̤ÎÊÑ´¹
78    if (count($list_data['sex']) > 0) {
79        foreach($list_data['sex'] as $key => $val){
80            $list_data['sex'][$key] = $objPage->arrSex[$val];
81            $sex_disp .= $list_data['sex'][$key] . " ";
82        }
83        $list_data['sex_disp'] = $sex_disp;
84    }
85   
86    // ¿¦¶È¤ÎÊÑ´¹
87    if (count($list_data['job']) > 0) {
88        foreach($list_data['job'] as $key => $val){
89            $list_data['job'][$key] = $objPage->arrJob[$val];
90            $job_disp .= $list_data['job'][$key] . " ";
91        }
92        $list_data['job_disp'] = $job_disp;
93    }
94   
95    // ¥«¥Æ¥´¥êÊÑ´¹
96    $arrCatList = sfGetCategoryList();
97    $list_data['category_name'] = $arrCatList[$list_data['category_id']];
98   
99    $objPage->list_data = $list_data;
100
101    $objView->assignobj($objPage);
102    $objView->display($tpl_path);
103    exit;
104}
105
106if($_POST['mode'] == 'delete') {
107    $objQuery = new SC_Query();
108    $objQuery->delete("dtb_customer_mail", "email = ?", array($_POST['result_email']));
109}
110
111switch($_POST['mode']) {
112/*
113    search:¡Ö¸¡º÷¡×¥Ü¥¿¥ó
114    back:¸¡º÷·ë²Ì²èÌÌ¡ÖÌá¤ë¡×¥Ü¥¿¥ó
115*/
116case 'delete':
117case 'search':
118case 'back':
119    //-- ÆþÎÏÃÍ¥³¥ó¥Ð¡¼¥È
120    $objPage->list_data = lfConvertParam($_POST, $arrSearchColumn);
121   
122    //-- ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
123    $objPage->arrErr = lfErrorCheck($objPage->list_data);
124
125    //-- ¸¡º÷³«»Ï
126    if (!is_array($objPage->arrErr)) {
127        $objPage->list_data['name'] = sfManualEscape($objPage->list_data['name']);
128        // hiddenÍ×ÁǺîÀ®
129        $objPage->arrHidden = lfGetHidden($objPage->list_data);
130
131        //-- ¸¡º÷¥Ç¡¼¥¿¼èÆÀ
132        $objSelect = new SC_CustomerList($objPage->list_data, "magazine");
133
134        // À¸À®¤µ¤ì¤¿WHEREʸ¤ò¼èÆÀ¤¹¤ë     
135        list($where, $arrval) = $objSelect->getWhere();
136        // ¡ÖWHERE¡×Éôʬ¤òºï½ü¤¹¤ë¡£
137        $where = ereg_replace("^WHERE", "", $where);
138
139        // ¸¡º÷·ë²Ì¤Î¼èÆÀ
140        $objQuery = new SC_Query();
141        $from = "dtb_customer_mail LEFT OUTER JOIN dtb_customer USING(email)";
142
143        // ¹Ô¿ô¤Î¼èÆÀ
144        $linemax = $objQuery->count($from, $where, $arrval);
145        $objPage->tpl_linemax = $linemax;               // ²¿·ï¤¬³ºÅö¤·¤Þ¤·¤¿¡£É½¼¨ÍÑ
146       
147        // ¥Ú¡¼¥¸Á÷¤ê¤Î¼èÆÀ
148        $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, SEARCH_PMAX, "fnResultPageNavi", NAVI_PMAX);
149        $objPage->arrPagenavi = $objNavi->arrPagenavi; 
150        $startno = $objNavi->start_row;
151
152        // ¼èÆÀÈϰϤλØÄê(³«»Ï¹ÔÈֹ桢¹Ô¿ô¤Î¥»¥Ã¥È)
153        $objQuery->setlimitoffset(SEARCH_PMAX, $startno);
154        // ɽ¼¨½ç½ø
155        $objQuery->setorder("customer_id DESC");
156        // ¸¡º÷·ë²Ì¤Î¼èÆÀ
157        $col = "dtb_customer.customer_id,
158            dtb_customer.name01,
159            dtb_customer.name02,
160            dtb_customer.kana01,
161            dtb_customer.kana02,
162            dtb_customer.sex,
163            dtb_customer.email,
164            dtb_customer.tel01,
165            dtb_customer.tel02,
166            dtb_customer.tel03,
167            dtb_customer.pref,
168            dtb_customer_mail.mail_flag";
169        $objPage->arrResults = $objQuery->select($col, $from, $where, $arrval);
170
171        //¸½ºß»þ¹ï¤Î¼èÆÀ
172        $objPage->arrNowDate = lfGetNowDate();
173    }
174    break;
175/*
176    input:¸¡º÷·ë²Ì²èÌÌ¡ÖÇÛ¿®ÆâÍÆÀßÄê¡×¥Ü¥¿¥ó
177*/
178case 'input':
179    //-- ÆþÎÏÃÍ¥³¥ó¥Ð¡¼¥È
180    $objPage->list_data = lfConvertParam($_POST, $arrSearchColumn);
181    //-- ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
182    $objPage->arrErr = lfErrorCheck($objPage->list_data);
183    //-- ¥¨¥é¡¼¤Ê¤·
184    if (!is_array($objPage->arrErr)) {
185        //-- ¸½ºß»þ¹ï¤Î¼èÆÀ
186        $objPage->arrNowDate = lfGetNowDate();
187        $objPage->arrHidden = lfGetHidden($objPage->list_data); // hiddenÍ×ÁǺîÀ®
188        $objPage->tpl_mainpage = 'mail/input.tpl';
189    }
190    break;
191/*
192    template:¥Æ¥ó¥×¥ì¡¼¥ÈÁªÂò
193*/
194case 'template':
195    //-- ÆþÎÏÃÍ¥³¥ó¥Ð¡¼¥È
196    $objPage->list_data = lfConvertParam($_POST, $arrSearchColumn);
197   
198    //-- »þ¹ïÀßÄê¤Î¼èÆÀ
199    $objPage->arrNowDate['year'] = $_POST['send_year'];
200    $objPage->arrNowDate['month'] = $_POST['send_month'];
201    $objPage->arrNowDate['day'] = $_POST['send_day'];
202    $objPage->arrNowDate['hour'] = $_POST['send_hour'];
203    $objPage->arrNowDate['minutes'] = $_POST['send_minutes'];
204   
205    //-- ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
206    $objPage->arrErr = lfErrorCheck($objPage->list_data);
207
208    //-- ¸¡º÷³«»Ï
209    if ( ! is_array($objPage->arrErr)) {
210        $objPage->list_data['name'] = sfManualEscape($objPage->list_data['name']);
211        $objPage->arrHidden = lfGetHidden($objPage->list_data); // hiddenÍ×ÁǺîÀ®
212   
213        $objPage->tpl_mainpage = 'mail/input.tpl';
214        $template_data = getTemplateData($conn, $_POST['template_id']);
215        if ( $template_data ){
216            foreach( $template_data as $key=>$val ){
217                $objPage->list_data[$key] = $val;
218            }
219        }
220
221        //-- HTML¥Æ¥ó¥×¥ì¡¼¥È¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢HTML¥½¡¼¥¹¤òÀ¸À®¤·¤ÆBODY¤ØÁÞÆþ
222        if ( $objPage->list_data["mail_method"] == 3) {
223            $objTemplate = new LC_HTMLtemplate;
224            $objTemplate->list_data = lfGetHtmlTemplateData($_POST['template_id']);
225            $objSiteInfo = new SC_SiteInfo();
226            $objTemplate->arrInfo = $objSiteInfo->data;
227            //¥á¡¼¥ëôÅö¼Ì¿¿¤Îɽ¼¨
228            $objUpFile = new SC_UploadFile(IMAGE_TEMP_URL, IMAGE_SAVE_URL);
229            $objUpFile->addFile("¥á¡¼¥ëôÅö¼Ì¿¿", 'charge_image', array('jpg'), IMAGE_SIZE, true, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT);
230            $objUpFile->setDBFileList($objTemplate->list_data);
231            $objTemplate->arrFile = $objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL);
232            $objMakeTemplate = new SC_AdminView();
233            $objMakeTemplate->assignobj($objTemplate);     
234            $objPage->list_data["body"] = $objMakeTemplate->fetch("mail/html_template.tpl");
235        }
236    }
237    break;
238/*
239    regist_confirm:¡ÖÆþÎÏÆâÍÆ¤ò³Îǧ¡×
240    regist_back:¡Ö¥Æ¥ó¥×¥ì¡¼¥ÈÀßÄê²èÌ̤ØÌá¤ë¡×
241    regist_complete:¡ÖÅÐÏ¿¡×
242*/ 
243case 'regist_confirm':
244case 'regist_back':
245case 'regist_complete':
246    //-- ÆþÎÏÃÍ¥³¥ó¥Ð¡¼¥È
247    $arrCheckColumn = array_merge( $arrSearchColumn, $arrRegistColumn );
248    $objPage->list_data = lfConvertParam($_POST, $arrCheckColumn);
249   
250    //¸½ºß»þ¹ï¤Î¼èÆÀ
251    $objPage->arrNowDate = lfGetNowDate();
252
253    //-- ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
254    $objPage->arrErr = lfErrorCheck($objPage->list_data, 1);
255    $objPage->tpl_mainpage = 'mail/input.tpl';
256    $objPage->arrHidden = lfGetHidden($objPage->list_data); // hiddenÍ×ÁǺîÀ®
257   
258    //-- ¸¡º÷³«»Ï
259    if ( ! is_array($objPage->arrErr)) {
260            $objPage->list_data['name'] = sfManualEscape($objPage->list_data['name']);
261        if ( $_POST['mode'] == 'regist_confirm'){
262            $objPage->tpl_mainpage = 'mail/input_confirm.tpl';
263        } else if( $_POST['mode'] == 'regist_complete' ){
264            lfRegistData($objPage->list_data);
265            header("Location: " . URL_DIR . "admin/mail/sendmail.php?mode=now");
266            exit;           
267        }
268    }
269    break;
270default:
271    break;
272}
273
274// ÇÛ¿®»þ´Ö¤Îǯ¤ò¡¢¡Ö¸½ºßǯ¢·¸½ºßǯ¡Ü£±¡×¤ÎÈϰϤËÀßÄê
275for ($year=date("Y"); $year<=date("Y") + 1;$year++){
276    $arrYear[$year] = $year;
277}
278$objPage->arrYear = $arrYear;
279
280$objPage->arrCustomerOrderId = lfGetCustomerOrderId($_POST['buy_product_code']);
281
282$objPage->arrCatList = sfGetCategoryList();
283
284//----¡¡¥Ú¡¼¥¸É½¼¨
285$objView->assignobj($objPage);
286$objView->display(MAIN_FRAME);
287
288//-------------------------------------------------------------------------------------------------------------------------------
289
290// ¾¦ÉÊ¥³¡¼¥É¤Ç¸¡º÷¤µ¤ì¤¿¾ì¹ç¤Ë¥Ò¥Ã¥È¤·¤¿¼õÃíÈÖ¹æ¤ò¼èÆÀ¤¹¤ë¡£
291function lfGetCustomerOrderId($keyword) {
292    if($keyword != "") {
293        $col = "dtb_order.customer_id, dtb_order.order_id";
294        $from = "dtb_order LEFT JOIN dtb_order_detail USING(order_id)";
295        $where = "product_code LIKE ? AND del_flg = 0";
296        $val = sfManualEscape($keyword);
297        $arrVal[] = "%$val%";
298        $objQuery = new SC_Query();
299        $objQuery->setgroupby("customer_id, order_id");
300        $arrRet = $objQuery->select($col, $from, $where, $arrVal);
301        $arrCustomerOrderId = sfArrKeyValues($arrRet, "customer_id", "order_id");
302    }
303    return $arrCustomerOrderId;
304}
305
306function lfMakeCsvData( $send_id ){
307       
308    global $conn;
309
310    $arrTitle  = array(  'name01','email');
311               
312    $sql = "SELECT name01,email FROM dtb_send_customer WHERE send_id = ? ORDER BY email";
313    $result = $conn->getAll($sql, array($send_id) );
314   
315    if ( $result ){
316        $return = lfGetCSVData( $result, $arrTitle);
317    }
318    return $return;
319}
320
321//---- CSV½ÐÎÏÍѥǡ¼¥¿¼èÆÀ
322function lfGetCSVData( $array, $arrayIndex){   
323   
324    for ($i=0; $i<count($array); $i++){
325       
326        for ($j=0; $j<count($array[$i]); $j++ ){
327            if ( $j > 0 ) $return .= ",";
328            $return .= "\"";           
329            if ( $arrayIndex ){
330                $return .= mb_ereg_replace("<","¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\""; 
331            } else {
332                $return .= mb_ereg_replace("<","¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\"";
333            }
334        }
335        $return .= "\n";           
336    }
337    return $return;
338}
339
340//¸½ºß»þ¹ï¤Î¼èÆÀ¡ÊÇÛ¿®»þ´Ö¥Ç¥Õ¥©¥ë¥ÈÃÍ¡Ë
341function lfGetNowDate(){
342    $nowdate = date("Y/n/j/G/i");
343    list($year, $month, $day, $hour, $minute) = split("[/]", $nowdate);
344    $arrNowDate = array( 'year' => $year, 'month' => $month, 'day' => $day, 'hour' => $hour, 'minutes' => $minute);
345    foreach ($arrNowDate as $key => $val){
346        switch ($key){
347            case 'minutes':
348            $val = ereg_replace('^[0]','', $val);
349            if ($val < 30){
350            $list_date[$key] = '30';
351            }else{
352            $list_date[$key] = '00';
353            }
354            break;
355            case 'year':
356            case 'month':
357            case 'day':
358            $list_date[$key] = $val;
359            break;
360        }
361    }
362        if ($arrNowDate['minutes'] < 30){
363            $list_date['hour'] = $hour;
364        }else{
365            $list_date['hour'] = $hour + 1;
366        }
367    return $list_date;
368}
369
370// ÇÛ¿®ÆâÍÆ¤ÈÇÛ¿®¥ê¥¹¥È¤ò½ñ¤­¹þ¤à
371function lfRegistData($arrData){
372   
373    global $conn;
374    global $arrSearchColumn;
375   
376    $objQuery = new SC_Query();
377       
378    $objSelect = new SC_CustomerList( lfConvertParam($arrData, $arrSearchColumn), "magazine" );
379    $search_data = $conn->getAll($objSelect->getListMailMagazine(), $objSelect->arrVal);
380    $dataCnt = count($search_data);
381   
382    $dtb_send_history = array();
383    if (DB_TYPE == "pgsql") {
384        $dtb_send_history["send_id"] = $objQuery->nextval('dtb_send_history', 'send_id');
385    }
386    $dtb_send_history["mail_method"] = $arrData['mail_method'];
387    $dtb_send_history["subject"] = $arrData['subject'];
388    $dtb_send_history["body"] = $arrData['body'];
389    $dtb_send_history["start_date"] = "now()";
390    $dtb_send_history["creator_id"] = $_SESSION['member_id'];
391    $dtb_send_history["send_count"] = $dataCnt;
392    $arrData['body'] = "";
393    $dtb_send_history["search_data"] = serialize($arrData);
394    $dtb_send_history["update_date"] = "now()";
395    $dtb_send_history["create_date"] = "now()";
396    $objQuery->insert("dtb_send_history", $dtb_send_history ); 
397   
398    if ( is_array( $search_data ) ){
399        foreach( $search_data as $line ){
400            $dtb_send_customer = array();
401            $dtb_send_customer["customer_id"] = $line["customer_id"];
402            $dtb_send_customer["send_id"] = $dtb_send_history["send_id"];
403            $dtb_send_customer["email"] = $line["email"];
404           
405            $dtb_send_customer["name"] = $line["name01"] . " " . $line["name02"];
406               
407            $conn->autoExecute("dtb_send_customer", $dtb_send_customer );                   
408        }   
409    }   
410}
411
412?>
Note: See TracBrowser for help on using the repository browser.