source: branches/dev/html/admin/mail/index.php @ 11750

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