source: branches/comu-euc/html/admin/mail/index.php @ 16648

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