source: temp/branches/ec-cube-beta/html/campaign/default/index.php @ 11168

Revision 11168, 10.1 KB checked in by uehara, 18 years ago (diff)
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");
8
9//---- ¥Ú¡¼¥¸É½¼¨¥¯¥é¥¹
10class LC_Page {
11   
12    function LC_Page() {
13        $this->tpl_mainpage = TEMPLATE_DIR . '/campaign/index.tpl';
14    }
15}
16
17$objPage = new LC_Page();
18$objView = new SC_SiteView(false);
19$objQuery = new SC_Query();
20$objCampaignSess = new SC_CampaignSession();
21
22// ¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¼èÆÀ
23$dir_name = dirname($_SERVER['PHP_SELF']);
24$arrDir = split('/', $dir_name);
25$dir_name = $arrDir[count($arrDir) -1];
26
27/* ¥»¥Ã¥·¥ç¥ó¤Ë¥­¥ã¥ó¥Ú¡¼¥ó¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à */
28// ¥­¥ã¥ó¥Ú¡¼¥ó¤«¤é¤ÎÁ«°Ü¤È¤¤¤¦¾ðÊó¤òÊÝ»ý
29$objCampaignSess->setIsCampaign();
30// ¥­¥ã¥ó¥Ú¡¼¥óID¤òÊÝ»ý
31$campaign_id = $objQuery->get("dtb_campaign", "campaign_id", "directory_name = ? AND delete = 0", array($dir_name));
32$objCampaignSess->setCampaignId($campaign_id);
33// ¥­¥ã¥ó¥Ú¡¼¥ó¥Ç¥£¥ì¥¯¥È¥ê̾¤òÊÝ»ý
34$objCampaignSess->setCampaignDir($dir_name);
35
36// ¥«¡¼¥È¤ËÆþ¤ì¤Ê¤¤¥Ú¡¼¥¸¤Î¾ì¹ç¤Î¥Ú¡¼¥¸(¿½¹þ¤Î¤ß¥Ú¡¼¥¸)¤Ø¥ê¥À¥¤¥ì¥¯¥È
37$cart_flg = $objQuery->get("dtb_campaign", "cart_flg", "campaign_id = ? AND delete = 0", array($campaign_id));
38sfprintr($cart_flg);
39exit;
40
41if(!$cart_flg) {
42    header("location: ". URL_DIR . "campaign/$dir_name/application.php");
43}
44
45// ¥­¥ã¥ó¥Ú¡¼¥ó¤¬³«ºÅÃ椫¤ò¥Á¥§¥Ã¥¯
46if(lfCheckActive($dir_name)) {
47    $status = CAMPAIGN_TEMPLATE_ACTIVE;
48} else {
49    $status = CAMPAIGN_TEMPLATE_END;
50}
51
52if($_GET['init'] != "") {
53    $objPage->tpl_init = 'false';
54    lfDispProductsList($_GET['ids']);
55} else {
56    $objPage->tpl_init = 'true';   
57}
58
59switch($_POST['mode']) {
60
61case 'cart':
62    $objPage->arrErr = lfCheckError($_POST['product_id']);
63    if(count($objPage->arrErr) == 0) {
64        $objCartSess = new SC_CartSession();
65        $classcategory_id = "classcategory_id". $_POST['product_id'];
66        $classcategory_id1 = $_POST[$classcategory_id. '_1'];
67        $classcategory_id2 = $_POST[$classcategory_id. '_2'];
68        $quantity = "quantity". $_POST['product_id'];
69        // µ¬³Ê1¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
70        if(!$objPage->tpl_classcat_find1[$_POST['product_id']]) {
71            $classcategory_id1 = '0';
72        }
73        // µ¬³Ê2¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
74        if(!$objPage->tpl_classcat_find2[$_POST['product_id']]) {
75            $classcategory_id2 = '0';
76        }
77        $objCartSess->setPrevURL($_SERVER['REQUEST_URI']);
78        $objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $_POST[$quantity]);
79        header("Location: " . URL_CART_TOP);
80        exit;
81    }
82    break;
83default :
84    break;
85}
86// ÆþÎϾðÊó¤òÅϤ¹
87$objPage->arrForm = $_POST;
88$objPage->tpl_dir_name = CAMPAIGN_TEMPLATE_PATH . $dir_name  . "/" . $status;
89
90//----¡¡¥Ú¡¼¥¸É½¼¨
91$objView->assignobj($objPage);
92$objView->display($objPage->tpl_mainpage);
93
94
95//---------------------------------------------------------------------------------------------------------------------------------------------------------
96/*
97 * ´Ø¿ô̾¡§lfCheckActive()
98 * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê̾
99 * ÀâÌÀ¡¡¡§¥­¥ã¥ó¥Ú¡¼¥óÃ椫¥Á¥§¥Ã¥¯
100 * Ìá¤êÃÍ¡§¥­¥ã¥ó¥Ú¡¼¥óÃæ¤Ê¤é true ½ªÎ»¤Ê¤é false
101 */
102function lfCheckActive($directory_name) {
103   
104    global $objQuery;
105    $is_active = false;
106   
107    $col = "limit_count, total_count, start_date, end_date";
108    $arrRet = $objQuery->select($col, "dtb_campaign", "directory_name = ? AND del_flg = 0", array($directory_name));
109
110    // ³«»ÏÆü»þ¡¦Ää»ßÆü»þ¤òÀ®·¿
111    $start_date = (date("YmdHis", strtotime($arrRet[0]['start_date'])));
112    $end_date = (date("YmdHis", strtotime($arrRet[0]['end_date'])));
113    $now_date = (date("YmdHis"));
114
115    // ¥­¥ã¥ó¥Ú¡¼¥ó¤¬³«ºÅ´ü´Ö¤Ç¡¢¤«¤Ä¿½¹þÀ©¸ÂÆâ¤Ç¤¢¤ë
116    if($now_date > $start_date && $now_date < $end_date
117            && $arrRet[0]['limit_count'] > 0 && $arrRet[0]['limit_count'] > $arrRet[0]['total_count']) {
118        $is_active = true;
119    }
120       
121    return $is_active;
122}
123
124/* ¾¦ÉÊ°ìÍ÷¤Îɽ¼¨ */
125function lfDispProductsList($ids) {
126   
127    global $objQuery;
128    global $objPage;
129
130    // µ¬³Ê̾°ìÍ÷
131    $arrClassName = sfGetIDValueList("dtb_class", "class_id", "name");
132    // µ¬³ÊʬÎà̾°ìÍ÷
133    $arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
134   
135    $arrProductIds = split('-', $ids);
136    if(!is_array($arrProductIds)) {
137        $arrProductIds[0] = $ids;
138    }
139   
140    // where¶çÀ¸À®
141    $count = 0;
142    $where = "product_id IN (";
143    foreach($arrProductIds as $key =>$val) {
144        if($count > 0) $where .= ",";
145        $where .= "?";
146        $arrval[] = $val;
147        $count++;
148    }
149    $where .= ")";
150
151    // ¾¦ÉÊ°ìÍ÷
152    $arrProducts = $objQuery->select("*", "vw_products_allclass AS allcls", $where, $arrval);
153
154    for($i = 0; $i < count($arrProducts); $i++) {
155        $objPage = lfMakeSelect($arrProducts[$i]['product_id'], $arrClassName, $arrClassCatName);
156        // ¹ØÆþÀ©¸Â¿ô¤ò¼èÆÀ
157        $objPage = lfGetSaleLimit($arrProducts);
158    }
159
160    foreach($arrProducts as $key =>$val) {
161        $arrCamp[$val['product_id']] = $val;
162    }
163   
164    $objPage->arrProducts = $arrCamp;
165   
166    return $objPage;
167}
168
169/* µ¬³Ê¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹¤ÎºîÀ® */
170function lfMakeSelect($product_id, $arrClassName, $arrClassCatName) {
171    global $objPage;
172   
173    $classcat_find1 = false;
174    $classcat_find2 = false;
175    // ºß¸Ë¤¢¤ê¤Î¾¦ÉʤÎ̵ͭ
176    $stock_find = false;
177   
178    // ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ   
179    $arrProductsClass = lfGetProductsClass($product_id);
180   
181    // µ¬³Ê1¥¯¥é¥¹Ì¾¤Î¼èÆÀ
182    $objPage->tpl_class_name1[$product_id] = $arrClassName[$arrProductsClass[0]['class_id1']];
183    // µ¬³Ê2¥¯¥é¥¹Ì¾¤Î¼èÆÀ
184    $objPage->tpl_class_name2[$product_id] = $arrClassName[$arrProductsClass[0]['class_id2']];
185   
186    // ¤¹¤Ù¤Æ¤ÎÁȤ߹ç¤ï¤»¿ô
187    $count = count($arrProductsClass);
188   
189    $classcat_id1 = "";
190   
191    $arrSele = array();
192    $arrList = array();
193   
194    $list_id = 0;
195    $arrList[0] = "\tlist". $product_id. "_0 = new Array('ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤'";
196    $arrVal[0] = "\tval". $product_id. "_0 = new Array(''";
197   
198    for ($i = 0; $i < $count; $i++) {
199        // ºß¸Ë¤Î¥Á¥§¥Ã¥¯
200        if($arrProductsClass[$i]['stock'] <= 0 && $arrProductsClass[$i]['stock_unlimited'] != '1') {
201            continue;
202        }
203       
204        $stock_find = true;
205       
206        // µ¬³Ê1¤Î¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÍÑ
207        if($classcat_id1 != $arrProductsClass[$i]['classcategory_id1']){
208            $arrList[$list_id].=");\n";
209            $arrVal[$list_id].=");\n";
210            $classcat_id1 = $arrProductsClass[$i]['classcategory_id1'];
211            $arrSele[$classcat_id1] = $arrClassCatName[$classcat_id1];
212            $list_id++;
213        }
214       
215        // µ¬³Ê2¤Î¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÍÑ
216        $classcat_id2 = $arrProductsClass[$i]['classcategory_id2'];
217       
218        // ¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹É½¼¨ÃÍ
219        if($arrList[$list_id] == "") {
220            $arrList[$list_id] = "\tlist". $product_id. "_". $list_id. " = new Array('ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤', '". $arrClassCatName[$classcat_id2]. "'";
221        } else {
222            $arrList[$list_id].= ", '".$arrClassCatName[$classcat_id2]."'";
223        }
224       
225        // ¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹POSTÃÍ
226        if($arrVal[$list_id] == "") {
227            $arrVal[$list_id] = "\tval". $product_id. "_". $list_id. " = new Array('', '". $classcat_id2. "'";
228        } else {
229            $arrVal[$list_id].= ", '".$classcat_id2."'";
230        }
231    }   
232   
233    $arrList[$list_id].=");\n";
234    $arrVal[$list_id].=");\n";
235       
236    // µ¬³Ê1
237    $objPage->arrClassCat1[$product_id] = $arrSele;
238   
239    $lists = "\tlists".$product_id. " = new Array(";
240    $no = 0;
241    foreach($arrList as $val) {
242        $objPage->tpl_javascript.= $val;
243        if ($no != 0) {
244            $lists.= ",list". $product_id. "_". $no;
245        } else {
246            $lists.= "list". $product_id. "_". $no;
247        }
248        $no++;
249    }
250    $objPage->tpl_javascript.= $lists.");\n";
251   
252    $vals = "\tvals".$product_id. " = new Array(";
253    $no = 0;
254    foreach($arrVal as $val) {
255        $objPage->tpl_javascript.= $val;
256        if ($no != 0) {
257            $vals.= ",val". $product_id. "_". $no;
258        } else {
259            $vals.= "val". $product_id. "_". $no;
260        }
261        $no++;
262    }
263    $objPage->tpl_javascript.= $vals.");\n";
264   
265    // ÁªÂò¤µ¤ì¤Æ¤¤¤ëµ¬³Ê2ID
266    $classcategory_id = "classcategory_id". $product_id;
267    $objPage->tpl_onload .= "lnSetSelect('".$classcategory_id."_1','".$classcategory_id."_2','".$product_id."','".$_POST[$classcategory_id."_2"]."'); ";
268
269    // µ¬³Ê1¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë
270    if($arrProductsClass[0]['classcategory_id1'] != '0') {
271        $classcat_find1 = true;
272    }
273   
274    // µ¬³Ê2¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë
275    if($arrProductsClass[0]['classcategory_id2'] != '0') {
276        $classcat_find2 = true;
277    }
278       
279    $objPage->tpl_classcat_find1[$product_id] = $classcat_find1;
280    $objPage->tpl_classcat_find2[$product_id] = $classcat_find2;
281    $objPage->tpl_stock_find[$product_id] = $stock_find;
282       
283    return $objPage;
284}
285
286/* ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ */
287function lfGetProductsClass($product_id) {
288    $arrRet = array();
289    if(sfIsInt($product_id)) {
290        // ¾¦Éʵ¬³Ê¼èÆÀ
291        $objQuery = new SC_Query();
292        $col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited";
293        $table = "vw_product_class AS prdcls";
294        $where = "product_id = ?";
295        $objQuery->setorder("rank1 DESC, rank2 DESC");
296        $arrRet = $objQuery->select($col, $table, $where, array($product_id));
297    }
298    return $arrRet;
299}
300
301/* ÆþÎÏÆâÍƤΥÁ¥§¥Ã¥¯ */
302function lfCheckError($id) {
303    global $objPage;
304   
305    // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£
306    $objErr = new SC_CheckError();
307   
308    $classcategory_id1 = "classcategory_id". $id. "_1";
309    $classcategory_id2 = "classcategory_id". $id. "_2";
310    $quantity = "quantity". $id;
311    // Ê£¿ô¹àÌÜ¥Á¥§¥Ã¥¯
312    if ($objPage->tpl_classcat_find1[$id]) {
313        $objErr->doFunc(array("µ¬³Ê1", $classcategory_id1, INT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
314    }
315    if ($objPage->tpl_classcat_find2[$id]) {
316        $objErr->doFunc(array("µ¬³Ê2", $classcategory_id2, INT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
317    }
318    $objErr->doFunc(array("¸Ä¿ô", $quantity, INT_LEN), array("EXIST_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
319           
320    return $objErr->arrErr;
321}
322
323// ¹ØÆþÀ©¸Â¿ô¤ÎÀßÄê
324function lfGetSaleLimit($product) {
325    global $objPage;
326    //ºß¸Ë¤¬Ìµ¸Â¤Þ¤¿¤Ï¹ØÆþÀ©¸ÂÃͤ¬ÀßÄêÃͤè¤êÂ礭¤¤¾ì¹ç
327    if($product['sale_unlimited'] == 1 || $product['sale_limit'] > SALE_LIMIT_MAX) {
328        $objPage->tpl_sale_limit[$product['product_id']] = SALE_LIMIT_MAX;
329    } else {
330        $objPage->tpl_sale_limit[$product['product_id']] = $product['sale_limit'];
331    }
332   
333    return $objPage;
334}
335
336//»ÙʧÊýË¡¤Î¼èÆÀ
337//payment_id    1:Âå¶â°ú´¹¡¡2:¶ä¹Ô¿¶¤ê¹þ¤ß¡¡3:¸½¶â½ñα
338function lfGetPayment() {
339    $objQuery = new SC_Query;
340    $col = "payment_id, rule, payment_method";
341    $from = "dtb_payment";
342    $where = "del_flg = 0";
343    $order = "payment_id";
344    $objQuery->setorder($order);
345    $arrRet = $objQuery->select($col, $from, $where);
346    return $arrRet;
347}
348
349?>
Note: See TracBrowser for help on using the repository browser.