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

Revision 5179, 11.8 KB checked in by kakinaka, 20 years ago (diff)

blank

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