havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_P_CATE); $store_id = $GLOBALS['STORE_ID']; $parent_id = isset($_GET['parent_id']) ? (int) $_GET['parent_id'] : 0; $thidAdmin = $perm->havePerm("ProductsModify"); #是否為呼叫產品清單模組 $cate_mode = isset($_GET['module'],$_GET['func']) ? ($_GET['module']=='mall'&& $_GET['func']=='ProductsList' ? 1 : 0) : 0; $bid = $blockInfo['bid']; $cate_desc = get_all_cate(); $multiple_cate = getSysOption('mall_multiple') ; #INSERT Javascript insertJS(''); # $smarty->assign("content",$content); $smarty->assign("bid",$bid); $smarty->assign("cate_mode",$cate_mode); $smarty->assign("thisAdmin",$thidAdmin); $smarty->assign("parent_id",$parent_id); $smarty->assign("cate_desc",$cate_desc); $smarty->assign("multiple_cate",$multiple_cate); $smarty->assign("root_id",get_root_id($parent_id)); $smarty->assign("categories_id",(int)@$_REQUEST["cate_id"]); $ret['title'] = $blockInfo['name'] ? $blockInfo['name'] : MALL_P_CATE; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/categories_modify.htm"); return $ret; } # 取得所有產品分類 function get_all_cate() { global $db,$df_lang; #20180410-增加產品分類可在不同頁面顯示-modify-1 $store_id = $GLOBALS['STORE_ID']; //$bid = $GLOBALS['CurBID'] ; $sid = $GLOBALS['SECTION'] ; $multiple_mall = getSysOption('mall_multiple') ; $db->query("select count(Auto_SN) as c from section_category where Section_SN=$sid") ; $db->next_record(); $secCatCount = $db->f('c') ; $ret = array(); #20180410-增加產品分類可在不同頁面顯示-modify-2 if (isset($multiple_mall) && $multiple_mall == 1 && $secCatCount > 0) { $db->query("select Category_SN from section_category where Section_SN = $sid") ; $showListBySection = array() ; while($db->next_record()){ array_push($showListBySection, $db->f('Category_SN')); } } $db->query("SELECT a.parent_id, a.show_flag, a.categories_id, a.sort_order, b.categories_name, count( d.products_id ) AS counts FROM categories AS a LEFT JOIN categories_description AS b ON a.categories_id = b.categories_id AND b.language_id = '$df_lang' LEFT JOIN products_to_categories AS c ON (a.categories_id = c.categories_id OR a.categories_id = c.sub_cate_1 OR a.categories_id = c.sub_cate_2) left join products as d on c.products_id=d.products_id and d.products_status=1 GROUP BY a.categories_id ORDER BY a.parent_id, a.sort_order"); while($db->next_record()){ if(!isset($ret[$db->f("parent_id")])) $ret[$db->f("parent_id")] = array(); #20180410-增加產品分類可在不同頁面顯示-modify-3 if (isset($multiple_mall) && $multiple_mall == 1) { $showFlag = (in_array($db->f("categories_id"), $showListBySection)) ? '1' : '0' ; } else { $showFlag = $db->f("show_flag") ; } array_push($ret[$db->f("parent_id")] , array( 'AutoSN'=>$db->f("categories_id"), 'text'=>$db->f("categories_name"), 'show'=>$showFlag, //'show'=>$db->f("show_flag"), 'sort'=>$db->f("sort_order"), 'count'=>$db->f("counts"), 'parent_id'=>$db->f("parent_id") ) ); } return $ret; } function get_all_prod($sort=""){ global $db,$df_lang; $ret = array(); $sort_str = $sort=="" ? "order by a.products_id ASC":"order by ".$sort; /*$db->query("select a.*, b.products_name, b.products_description from products as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' $sort_str");*/ //產品管理加入搜尋產品功能 by Grace in 20160608 $pro_sql="select a.*, b.products_name, b.products_description, c.categories_id, d.categories_name from products as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' left join products_to_categories as c on a.products_id=c.products_id and b.language_id='$df_lang' left join categories_description as d on c.categories_id=d.categories_id and d.language_id='$df_lang' $sort_str"; if($_POST['P_NAME']!="" or $_POST['P_NO']!="" or $_POST['P_INVABLE']!=""){ $P_NO=$_POST['P_NO']; $P_NAME=$_POST['P_NAME']; $P_INVABLE=$_POST['P_INVABLE']; $search_str1=$search_str1=="" ? " and products.products_no like '%$P_NO%'":" ".$search_str2; $search_str2=$search_str2=="" ? " and products_description.products_name like '%$P_NAME%'":" ".$search_str2; $search_str3=$search_str3=="" ? " and products.products_date_invalid like '%$P_INVABLE%'":" ".$search_str3; $search_str=$search_str1.$search_str2.$search_str3; $pro_sql="select *from products,products_description where products.products_id=products_description.products_id $search_str and products_description.language_id='$df_lang'"; } $db->query($pro_sql); //Added End <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< while($db->next_record()){ if(!isset($ret[$db->f("products_id")])) $ret[$db->f("products_id")] = array(); $ret[$db->f("products_id")] = array( 'AutoSN'=> $db->f("products_id"), 'no' => $db->f("products_no"), 'text' => html_entity_decode($db->f("products_name")), 'desc' => $db->f("products_description"), 'price' => $db->f("products_price"), 'show' => $db->f("products_status"), 'expire'=> $db->f("products_date_invalid"), 'cate_id'=> $db->f("categories_id"), 'cate_text'=> $db->f("categories_name"), 'upon' => $db->f("products_date_available") ); } return $ret; } # 分類顯示設定 function mallCategorySet(){ global $db,$perm,$smarty,$df_lang; $store_id = $GLOBALS['STORE_ID']; if(!$perm->havePerm("ProductsModify")) errorShow(MALL_CETA_SET.SYSERROR_3); $cate_list = get_all_cate(); #插入JS insertJS(''); #算出每一個群組裡總共幾個 $cate_count = array(); foreach($cate_list as $k=>$cate){ $cate_count[$k] = count($cate); } $smarty->assign('ref',isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']: WM_HTML_ROOT."/"); $smarty->assign("cate_list" ,$cate_list ); $smarty->assign("cate_count",$cate_count); $smarty->assign("action",WM_HTML_ROOT."/?module=mall&func=CategorySetUpdate"); //debug //$smarty->assign('debug', $store_id) ; //$smarty->assign('section', $GLOBALS['SECTION']) ; //debug $ret['title'] = MALL_CETA_SET; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/categories_set.htm"); $ret['store_id'] = $store_id ; return $ret; } #分類顯示設定 的資料更新 function mallCategorySetUpdate(){ global $db,$perm,$smarty,$df_lang; $store_id = $GLOBALS['STORE_ID']; $section_id = $GLOBALS['SECTION'] ; if(!$perm->havePerm("ProductsModify")) errorShow(MALL_CETA_SET.SYSERROR_3); foreach($_POST as $k=>$v) $$k = $v; #更新顯示 開關 if(isset($show_cate) && is_array($show_cate)){ #先把全部的分類都設為隱藏 $db->query("update categories set show_flag='0' where store_id='$store_id'"); foreach($show_cate as $AutoSN){ $db->query("update categories set show_flag='1' where categories_id='$AutoSN' and store_id='$store_id'"); } #20180410-增加產品分類可在不同頁面顯示-modify-4 $db->query("delete from section_category where Section_SN=$section_id") ; foreach($show_cate as $AutoSN){ $db->query("insert into section_category (Section_SN, Category_SN) values ($section_id, $AutoSN)") ; } }else{ #沒此參數表示 全部都沒勾 $db->query("update categories set show_flag='0' where store_id='$store_id'"); $db->query("delete from section_category where Section_SN=$section_id") ; } # 更新排序 if(is_array($sort_data)){ foreach($sort_data as $AutoSN=>$sort){ $db->query("UPDATE categories set sort_order='$sort' where categories_id='$AutoSN' "); } } $ref = WM_HTML_ROOT."/?section=" . $section_id; header("Location:".$ref); exit; } function mallCategoryEdit(){ global $db,$perm,$smarty; $store_id = $GLOBALS['STORE_ID']; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3); $admin = true; //$perm->havePerm("MenuModify"); $content = array(); $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : WM_HTML_ROOT."/"; $parent_id = 0; // 修改 if ((int)@$_REQUEST["cate_id"] != "0" && $_GET['func']=='CategoryEdit'){ $sql = "Select * from categories where store_id = '$store_id' and categories_id = ". @$_REQUEST["cate_id"]; $db->query($sql); if($db->next_record()) { $store_id = $db->f("store_id"); $categories_id = $db->f("categories_id"); $parent_id = $db->f("parent_id"); } $ret['title'] = MALL_CAT_EDIT; } else { $categories_id = ""; $parent_id = isset($_REQUEST["parent_id"]) ? $_REQUEST["parent_id"] : 0; $ret['title'] = $parent_id==0 ? MALL_NEW_BIGCETA : MALL_NEW_SMLCETA ; } if($parent_id==0) $desc = false; else $desc = true; # init Lang Calss Usage : # # new Lang( String @ $table , # Array @ columns_array , # String @ key_column , # String @ key_value , # String @ language_id_column_name # ); # $lang = new Lang('categories_description',array('categories_name','categories_description'),'categories_id' , $categories_id ,'language_id'); # return $detail['categories_name'][language_id] = Data ; $detail = $lang->getMultiText(); # status_key 是依個陣列 紀錄哪個language id是需要新增的 $detail_key = $lang->status_key; $detail_key; #INSERT Javascript insertJS(''); #set language list in smarty : var xxx = new Array({$LANG}); $LANG = array_keys($_SESSION['LANG']) ; $LANG = count($LANG)==1 ? "'".$LANG[0]."'" : implode(',',$LANG) ; $smarty->assign("content",$content); $smarty->assign("LANG", $LANG ); # 所有的語系ID $smarty->assign("store_id", $store_id); $smarty->assign("desc", $desc); $smarty->assign("ref", $ref); $smarty->assign("categories_id",$categories_id); $smarty->assign("parent_id",$parent_id); $smarty->assign("detail_key",$detail_key); #assign to smarty for hidden form inputs $smarty->assign("detail",$detail); $smarty->assign("action",WM_HTML_ROOT."/?module=mall&func=CategoryUpdate"); $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/categories_edit.htm"); return $ret; } function mallCategoryUpdate() { global $db,$perm,$smarty; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3); $store_id = $GLOBALS['STORE_ID']; $Category_Name = $_REQUEST["Category_Name"]; $categories_description = $_POST['categories_description'] ; $parent_id = (int)@$_REQUEST["parent_id"]; $categories_id = @$_REQUEST["categories_id"]; $detail_key = @$_REQUEST["detail_key"]; $ref=$_POST['ref']; #處理字串HTML跳脫自元 foreach($Category_Name as $k=>$v){ if($Category_Name[$k] == '') errorShow(sprintf(MALL_DATA_EMPTY,MALL_CNAME)); $Category_Name[$k] = htmlspecialchars( mb_substr($v,0,32,'utf-8') , ENT_QUOTES ); } foreach($categories_description as $k=>$v){ $categories_description[$k] = htmlspecialchars( $v, ENT_QUOTES ); } #新增 if ($categories_id == ""){ #find sort $add_sort =0 ; $db->query("select max(sort_order) as max_sort from categories where parent_id = '$parent_id'"); $db->next_record(); if($db->f("max_sort")!=NULL) { $add_sort = $db->f("max_sort")+1; } $sql = "Insert into categories (store_id, categories_image, parent_id, date_added, sort_order ) values('$store_id', null, $parent_id, now(), '$add_sort')"; $db->query($sql); $categories_id = mysql_insert_id(); } else{ } #處理語系的部份 $lang = new Lang('categories_description',array('categories_name','categories_description'),'categories_id' , $categories_id ,'language_id'); #設定把字串拆解為htmlspecialchars $lang->entity=1; #重要:把$detail_key帶進來 $lang->status_key = $detail_key ; # 新增&更新共用 $lang->addMultiText( $Category_Name ,$categories_description ); #20180410-增加產品分類可在不同頁面顯示-modify-5 $section_id = $GLOBALS['SECTION'] ; $db->query("insert into section_category (Section_SN, Category_SN) values ($section_id, $categories_id)") ; header("Location:".$ref); exit; } #刪除分類 function mallCategoryDelete(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3); $cid = (int)$_GET['id']; $ref= isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : WM_HTML_ROOT.'/'; $db->query("select * from categories where parent_id ='$cid'"); if($db->nf()>0) errorShow(MALL_CATEDESC_22,$ref); #下面有次分類,無法刪除 #找出目前排序值 $db->query("select sort_order,parent_id from categories where categories_id ='$cid'"); $db->next_record(); $sort = $db->f("sort_order"); $parent = $db->f("parent_id"); $db->query("delete from categories where categories_id ='$cid'"); $db->query("delete from categories_description where categories_id ='$cid'"); #更新排序 $db->query("update categories set sort_order=sort_order-1 where parent_id='$parent' and sort_order>$sort"); #將原本分類中的產品移到未分類 $db->query("update products_to_categories set categories_id=0 where categories_id='$cid' "); $db->query("update products_to_categories set sub_cate_1=0 where sub_cate_1='$cid' "); $db->query("update products_to_categories set sub_cate_2=0 where sub_cate_2='$cid' "); #20180410-增加產品分類可在不同頁面顯示-modify-6 $section_id = $GLOBALS['SECTION'] ; $db->query("delete from section_category where Section_SN=$section_id and Category_SN='$cid'") ; errorShow(MALL_CATEDESC_23,$ref); } # 購物首頁區塊的內容顯示 function mallShowMainCategory(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_HOME); $store_id = $GLOBALS['STORE_ID']; $data = array(); $db->query("select b.products_name, b.products_description, b.products_id, c.products_price, c.products_image, c.products_date_available, c.products_date_invalid, a.cType, a.cOption from categories_set as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' left join products as c on a.products_id=c.products_id where c.products_status=1 order by a.sort"); while($db->next_record()){ if(!isset($data[$db->f("cType")])) $data[$db->f("cType")] = array(); #判斷是否沒上架或已經下架 if(date("Y-m-d H:i:s")>$db->f("products_date_invalid")) { $invaild = MALL_P_INVABLE_1; }else if(date("Y-m-d H:i:s")<$db->f("products_date_available")){ $invaild = MALL_P_AVAIABLE_1; }else { $invaild = ''; } array_push( $data[$db->f("cType")] , array( 'name'=>$db->f("products_name") , 'id' =>$db->f("products_id") , 'text'=>$db->f("cOption"), 'img' =>$db->f("products_image")=='' ? "/images/system/default_item.gif" : $db->f("products_image"), 'price'=>$db->f("products_price"), 'desc'=> html_entity_decode($db->f("products_description")), 'invaild'=>$invaild ) ); } #標題背景 $bar_img = array(); $bar_img[1] = getSysOption('mall_special_img'); $bar_img[2] = getSysOption('mall_promote_img'); $bar_img[3] = getSysOption('mall_hot_img'); $smarty->assign('cart_flag',getSysOption('cart_flag')); $smarty->assign("bar_img",$bar_img); $smarty->assign("data",$data); $smarty->assign('isAdmin', $perm->havePerm("ProductsModify") ); //$ret['title'] = MALL_HOME; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/categories_main.htm"); return $ret; } # 購物中心首頁的內容顯示編輯 function mallShowMainCategoryEdit(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_CATEDESC_15); $store_id = $GLOBALS['STORE_ID']; $cType = isset($_GET['cType']) ? $_GET['cType'] : 0; $title = array(1=>MALL_CATEDESC_4 , 2=> MALL_CATEDESC_7 , 3=>MALL_CATEDESC_8); $title_desc = array(1=>MALL_CATEDESC_6 ,2=>MALL_CATEDESC_9 , 3=>MALL_CATEDESC_10); $bar_desc = array(1=>MALL_CATEDESC_17 ,2=>MALL_CATEDESC_18 , 3=>MALL_CATEDESC_19); $bar_img_list = array(1=>'mall_special_img',2=>'mall_promote_img',3=>'mall_hot_img'); $default_img = array(1=>'/images/system/bar_special.gif',2=>'/images/system/bar_promote.gif',3=>'/images/system/bar_hot.gif'); $prod_select= array() ; $cOption = array(); $all_prod = get_all_prod(); $ref = explode('?',$_SERVER['HTTP_REFERER']) ; $ref = isset($ref[1]) ? $ref[1]:''; $hasDisabledProduct = false; $_SESSION['ref'] = $ref; if($cType<1 || $cType>3) errorShow(SYSERROR_1); $db->query("select b.products_id,b.products_name, a.cOption from categories_set as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' where a.cType='$cType' order by a.sort"); while($db->next_record()){ $prod_select[$db->f("products_id")] = $db->f("products_name"); $cOption[$db->f("products_id")] = $db->f("cOption"); } foreach($all_prod as $pid=>$data){ if(array_key_exists($pid,$prod_select)){ unset($all_prod[$pid]); #如果該產品是停用~要出現訊息 if($data['show']==0) { $prod_select[$pid] .= " ("._OFF.")"; $hasDisabledProduct = true; } if($data['expire']date("Y-m-d H:i:s")){ #產品尚未上架 $prod_select[$pid] .= " (".MALL_P_AVAIABLE_1.")"; } }else { if($data['show']==0){ $all_prod[$pid]['text'] .= " ("._OFF.")"; } if($data['expire']date("Y-m-d H:i:s")){ #產品尚未上架 $all_prod[$pid]['text'] .= " (".MALL_P_AVAIABLE_1.")"; } } } #INSERT Javascript insertJS(''); $smarty->assign("title_desc",$title_desc[$cType]); $smarty->assign("bar_desc",$bar_desc[$cType]); $smarty->assign("bar_img",getSysOption($bar_img_list[$cType])); # 標題背景 $smarty->assign("default_img",$default_img[$cType]); $smarty->assign("hasDisabledProduct",$hasDisabledProduct); $smarty->assign("prod_select",$prod_select); $smarty->assign("all_prod",$all_prod); $smarty->assign("cOption",$cOption); $smarty->assign("cType",$cType); $smarty->assign("action",WM_HTML_ROOT."/?module=mall&func=ShowMainCategoryUpdate"); $ret['title'] = $title[$cType]; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/categories_main_edit.htm"); return $ret; } #更新購物中心首頁顯示設定 function mallShowMainCategoryUpdate(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_CATEDESC_15); #匯入表單參數 foreach($_POST as $k=>$v) $$k = $v; #如果什麼也沒選 if(!isset($cText_data)) $cText_data = array(); if(!isset($sort_data)) $sort_data = array(); #處理字串 foreach($cText_data as $mid=>$v) $cText_data[$mid] = htmlspecialchars( mb_substr($v,0,32,'utf-8') , ENT_QUOTES ); #$cText_data = array_flip($cText_data); $sort_data = array_flip($sort_data); # 找出既有的選取商品 $org = array(); $db->query("select * from categories_set where cType='$cType' "); while($db->next_record()){ $org[$db->f("sort")] = $db->f("products_id"); } $insert_array = array_diff($sort_data , $org ); $delete_array = array_diff($org , $sort_data ); $update_array = array_intersect($sort_data,$org); $sql = array(); # INSERT foreach($insert_array as $sort =>$mid){ $cOption = $cType==2 ? $cText_data[$mid] : ''; $sql_ = "insert into categories_set (products_id, cType, cOption, sort) values('$mid', '$cType', '$cOption', '$sort')"; array_push($sql,$sql_); } # DELETE foreach($delete_array as $sort=>$mid){ $sql_ = "delete from categories_set where products_id='$mid' and cType='$cType' "; array_push($sql,$sql_); } # UPDATE foreach($update_array as $sort=>$mid){ $cOption = $cType==2 ? $cText_data[$mid] : ''; $sql_ = "update categories_set set sort='$sort' ,cOption='$cOption' where products_id='$mid' and cType='$cType'"; array_push($sql,$sql_); } foreach($sql as $s_) {$db->query($s_);} #標題背景更新 $bar_img_list = array(1=>'mall_special_img',2=>'mall_promote_img',3=>'mall_hot_img'); $bar_img_op = $bar_img_list[$cType]; $db->query("update system_option set op_value='$bar_img' where op_name='$bar_img_op' " ); if(isset($_SESSION['ref'])) { $ref = $_SESSION['ref'] ; unset($_SESSION['ref']); }else $ref = ''; header("Location:".WM_HTML_ROOT."/?".$ref); exit; } // ----------------------------------------------------------------------- // 產品顯示 // function mallProductsList($blockInfo) { global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_DETAIL); $parent_id = (int)@$_GET["parent_id"]; $cart_flag = getSysOption('cart_flag'); $store_id = $GLOBALS['STORE_ID']; $limit = ""; $bid = $blockInfo['bid']; $sort = $sort_url = $order = ""; $cart_hisroty = getSysOption('mall_history_view')>0 ; #取得所有產品列表 #$all_cate = get_all_cate(); #區塊顯示設定 if($bid!=0){#區塊的產品列表 $display_op = getBlockOption($bid); $parent_id = $display_op['prod_list_cate']; $display_op['prod_list_num'] = isset($display_op['prod_list_num']) ? (int) $display_op['prod_list_num'] : 12; if($display_op['prod_list_num'] == 0 ) $display_op['prod_list_num'] = 6; $limit = "limit ".$display_op['prod_list_num']; $page_info = array(); $page_info['page'] = isset($_GET['page']) ? (int)$_GET['page'] : 1; /*$sql = "Select a.store_id, a.products_id, a.sort_order , b.products_no, b.products_image, b.products_price, c.* from products_pick as a , products as b , products_description as c where a.products_id=b.products_id and a.bid='$bid' and a.products_id = c.products_id and a.store_id = 1 and b.products_status=1 and language_id='$df_lang' and a.store_id='$store_id' order by a.sort_order DESC";*/ $sql = "Select a.store_id, a.products_id, a.sort_order , b.*, c.* from products_pick as a, products as b, products_description as c where a.products_id=b.products_id and a.bid='$bid' and a.products_id = c.products_id and a.store_id = 1 and b.products_status=1 and language_id='$df_lang' and a.store_id='$store_id' order by a.sort_order DESC"; $db->query($sql); $page_info['per_page'] = getSysOption('mall_per_page'); $page_info['max_page'] =ceil( $db->nf()/$page_info['per_page']); $limit = " limit ".$page_info['per_page']." offset ".($page_info['page']-1)*$page_info['per_page']; $sql .= $limit ; $page_info['url'] = WM_HTML_ROOT."/?section=" . $blockInfo['sid']; $smarty->assign('page_info',$page_info); }else{#檢視某分類的產品列表 #排序方式 $sort_url = WM_HTML_ROOT.'/?module=mall&func=ProductsList&parent_id='.$parent_id ; $sort_list = array(0=>'b.products_id',1=>'b.products_date_available',2=>'b.products_price'); $sort = isset($_GET['sort']) && (int)$_GET['sort']>0 && (int)$_GET['sort']<3 ? (int)$_GET['sort'] : 0 ; $order = isset($_GET['order'])&&(int)$_GET['order']>0 ? 1 : 0 ; $order_str = $order==0 ? ' DESC':' ASC'; $sort_str = $sort_list[$sort].$order_str ; #分頁 $page_info = array(); $page_info['page'] = isset($_GET['page']) ? (int)$_GET['page'] : 1; #抓分類敘述 $db->query("select * from categories_description where categories_id=$parent_id and language_id='$df_lang' "); $db->next_record(); $cate_desc = array( 'name'=>$db->f("categories_name") , 'desc'=> html_entity_decode($db->f("categories_description")) ); $smarty->assign("cate_desc",$cate_desc); /*$sql = "Select a.store_id, a.products_id, a.categories_id, b.products_no, b.products_image, b.products_price, c.* from products_to_categories as a, products as b, products_description as c where a.products_id = b.products_id and a.products_id = c.products_id and a.store_id = 1 and (a.categories_id = $parent_id or a.sub_cate_1='$parent_id' or a.sub_cate_2='$parent_id') and b.products_status=1 and c.language_id='$df_lang' and a.store_id='$store_id' order by $sort_str" ;*/ $sql = "Select a.store_id, a.products_id, a.categories_id, b.*, c.* from products_to_categories as a, products as b, products_description as c where a.products_id = b.products_id and a.products_id = c.products_id and a.store_id = 1 and (a.categories_id = $parent_id or a.sub_cate_1='$parent_id' or a.sub_cate_2='$parent_id') and b.products_status=1 and c.language_id='$df_lang' and a.store_id='$store_id' order by $sort_str" ; $db->query($sql); $page_info['per_page'] = getSysOption('mall_per_page'); $page_info['max_page'] =ceil( $db->nf()/$page_info['per_page']); $limit = " limit ".$page_info['per_page']." offset ".($page_info['page']-1)*$page_info['per_page']; $sql .= $limit ; $page_info['url'] = WM_HTML_ROOT."/?module=mall&func=ProductsList&sort=$sort&order=$order&parent_id=$parent_id"; $smarty->assign('page_info',$page_info); } //echo $sql; $db->query($sql); $admin = $perm->havePerm("ProductsModify"); $content = array(); while($db->next_record()) { #判斷是否沒上架或已經下架 if(date("Y-m-d H:i:s")>$db->f("products_date_invalid")) { $invaild_note = MALL_P_INVABLE_1; }else if(date("Y-m-d H:i:s")<$db->f("products_date_available")){ $invaild_note = MALL_P_AVAIABLE_1; }else { $invaild_note = ""; } array_push($content, array( "store_id" => $db->f("store_id"), "products_id" => $db->f("products_id"), "products_price" => number_format($db->f("products_price")), "products_no" => $db->f("products_no"), //"products_name"=> $db->f("products_name"), "products_name" => html_entity_decode($db->f("products_name")), "products_introduction" => html_entity_decode($db->f("products_introduction")), "products_url" => $db->f("products_url"), "products_image"=> $db->f("products_image"), "products_invalid"=> $invaild_note ) ); } // Added by Steve@2014/11/16 - to group paging $groupItems = 6 ; $minItems = $groupItems + 3 ; if ($page_info['max_page'] < $minItems) { $beginOfLeft = 1 ; $endOfLeft = $page_info['max_page'] ; $beginOfRight = 0 ; $endOfRight = -1 ; $beginOfMiddle = 0 ; $endOfMiddle = -1 ; $glueLeft = '' ; $glueRight = '' ; } else { if ($page_info['page'] < $groupItems) { $beginOfLeft = 1 ; $endOfLeft = $groupItems ; $beginOfRight = $page_info['max_page'] - 1 ; $endOfRight = $page_info['max_page'] ; $beginOfMiddle = 0 ; $endOfMiddle = -1 ; $glueLeft = '' ; $glueRight = '...' ; } else if ($page_info['page'] >= $page_info['max_page'] - $groupItems + 1) { $beginOfLeft = 1 ; $endOfLeft = 2 ; $beginOfRight = $page_info['max_page'] - $groupItems + 1 ; $endOfRight = $page_info['max_page'] ; $beginOfMiddle = 0 ; $endOfMiddle = -1 ; $glueLeft = '...' ; $glueRight = '' ; } else { $beginOfLeft = 1 ; $endOfLeft = 2 ; $beginOfRight = $page_info['max_page'] - 1 ; $endOfRight = $page_info['max_page'] ; $beginOfMiddle = $page_info['page'] -2 ; $endOfMiddle = $page_info['page'] +2 ; $glueLeft = '...' ; $glueRight = '...' ; } } for ($i = $beginOfLeft; $i <= $endOfLeft; $i++) { $pageLeft[] = $i ; } for ($i = $beginOfRight; $i <= $endOfRight; $i++) { $pageRight[] = $i ; } for ($i = $beginOfMiddle; $i <= $endOfMiddle; $i++) { $pageMiddle[] = $i ; } $smarty->assign("pageLeft", $pageLeft) ; $smarty->assign("pageRight", $pageRight) ; $smarty->assign("pageMiddle", $pageMiddle) ; $smarty->assign("glueLeft", $glueLeft) ; $smarty->assign("glueRight", $glueRight) ; // -- end of group paging $smarty->assign("bid",$bid); $smarty->assign("pricePerm",$perm->havePerm("ShowPrice")); $smarty->assign("content",$content); $smarty->assign("sort_url",$sort_url); $smarty->assign("sort",$sort); $smarty->assign("order_d",$order); $smarty->assign('cart_flag',$cart_flag); $smarty->assign('cart_hisroty',$cart_hisroty); $smarty->assign("parent_id",$parent_id); $smarty->assign("thisAdmin",$admin); $smarty->assign("root_path",WM_REAL_PATH); //$ret['title'] = !$blockInfo['name'] ? MALL_P_LIST : $blockInfo['name'] ; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/productsList.htm"); return $ret; } function mallProductsPick(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_P_PICK_2); #INSERT Javascript insertJS(''); $prod_select = array(); $hasDisabledProduct = false; $all_prod = get_all_prod(); $store_id = $GLOBALS['STORE_ID']; $ref = explode('?',$_SERVER['HTTP_REFERER']) ; $ref = isset($ref[1]) ? $ref[1]:''; $bid = isset($_GET['bid']) ? $_GET['bid']:0; if($bid==0) errorShow(MALL_P_PICK_2.SYSERROR_1); $db->query("Select a.store_id, a.products_id, a.sort_order , c.products_name from products_pick as a , products_description as c where a.bid='$bid' and a.products_id = c.products_id and a.store_id = 1 and language_id='$df_lang' and a.store_id='$store_id' order by a.sort_order"); while($db->next_record()){ $prod_select[$db->f("products_id")] = html_entity_decode($db->f("products_name")); } foreach($all_prod as $pid=>$data){ if(array_key_exists($pid,$prod_select)){ unset($all_prod[$pid]); #如果該產品是停用~要出現訊息 if($data['show']==0) { $prod_select[$pid] .= " ("._OFF.")"; $hasDisabledProduct = true; } if($data['expire']date("Y-m-d H:i:s")){ #產品尚未上架 $prod_select[$pid] .= " (".MALL_P_AVAIABLE_1.")"; } }else { if($data['show']==0){ $all_prod[$pid]['text'] .= " ("._OFF.")"; } if($data['expire']date("Y-m-d H:i:s")){ #產品尚未上架 $all_prod[$pid]['text'] .= " (".MALL_P_AVAIABLE_1.")"; } } } #為了能讀取HTML標籤, 特獨立出產品名稱 -- Added in 2170410 by Grace -- $prod_name = $all_prod['text']; $smarty->assign("all_prod",$all_prod); $smarty->assign("prod_name",$prod_name); $smarty->assign("prod_select",$prod_select); $smarty->assign("ref",$ref); $smarty->assign("hasDisabledProduct",$hasDisabledProduct); $smarty->assign("cType",3); $smarty->assign("bid",$bid); $smarty->assign("action",WM_HTML_ROOT.'/?module=mall&func=ProductsPickUpdate'); $ret['title'] = MALL_P_PICK_2 ; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/products_pick.htm"); return $ret; } #區塊的選取商品更新 function mallProductsPickUpdate(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_P_PICK_2); $store_id = $GLOBALS['STORE_ID']; foreach($_POST as $k=>$v) $$k=$v; $url = $ref==''? WM_HTML_ROOT."/":WM_HTML_ROOT."/?".$ref; #如果什麼也沒選,表示都刪掉了 if(!isset($sort_data)){ $sql_ = "delete from products_pick where bid='$bid' "; $db->query($sql_); header("Location:".$url); exit; } $sort_data = array_flip($sort_data); # 找出既有的選取商品 $org = array(); $db->query("select * from products_pick where bid='$bid' and store_id='$store_id'"); while($db->next_record()){ $org[$db->f("sort_order")] = $db->f("products_id"); } $insert_array = array_diff($sort_data , $org ); $delete_array = array_diff($org , $sort_data ); $update_array = array_intersect($sort_data,$org); $sql = array(); # INSERT foreach($insert_array as $sort =>$mid){ $cOption = $cType==2 ? $cText_data[$mid] : ''; $sql_ = "insert into products_pick (products_id, bid, sort_order) values('$mid', '$bid', '$sort')"; array_push($sql,$sql_); } # DELETE foreach($delete_array as $sort=>$mid){ $sql_ = "delete from products_pick where products_id='$mid' and bid='$bid' "; array_push($sql,$sql_); } # UPDATE foreach($update_array as $sort=>$mid){ $cOption = $cType==2 ? $cText_data[$mid] : ''; $sql_ = "update products_pick set sort_order='$sort' where products_id='$mid' and bid='$bid'"; array_push($sql,$sql_); } foreach($sql as $s_) { #trace($s_); $db->query($s_); } header("Location:".$url); exit; } function mallAdminProducts() { global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_P_EDIT); $store_id = $GLOBALS['STORE_ID']; $cart_flag = getSysOption('cart_flag'); #排序方式 $sort_list = array(0=>'a.products_id',1=>'a.products_no',2=>'b.products_name',3=>'a.products_price',4=>'a.products_date_invalid'); $sort = isset($_GET['sort']) && (int)$_GET['sort']<5 ? $_GET['sort'] : 0; $order= isset($_GET['order']) ? $_GET['order']: 0; $order_str = $order==0 ? ' DESC':' ASC'; $sort_str = $sort_list[$sort].$order_str; //產品分頁顯示設定 Add by Grace in 20160901 $mall_options = 'mall_per_page' ; if(isset($_POST['post_flag'])) { $mall_per_page = (int) $_POST['mall_per_page'] ; $db->query("update system_option set op_value='".$mall_per_page."' where op_name='".$mall_options."' "); errorShow(MALL_OPSET_33,WM_HTML_ROOT."/?module=mall&func=AdminProducts"); } $value = getSysOption($mall_options); // Add End----------------------------------------------------------------- #trace($sort_str); $data = get_all_prod($sort_str); $smarty->assign("cart_flag", $cart_flag) ; $smarty->assign("sort", $sort) ; $smarty->assign("order",$order); $smarty->assign("value", $value); $smarty->assign("data", $data) ; $smarty->assign('per_page', array(3=>3,6=>6,9=>9,12=>12,15=>15,18=>18,21=>21,27=>27,30=>30)); $smarty->assign("nums", sprintf(MALL_P_TOTAL,count($data))); $ret['title'] = MALL_P_MANAGE ; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/mall_admin_prod.htm"); return $ret; } //----------------------------------------------------------------------------- // 商品明細 function mallProductsDetail($blockInfo) { global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_DETAIL); $products_id = (int)@$_REQUEST["prod_id"]; $cart_flag = getSysOption('cart_flag'); //trace($blockInfo);/**/ $store_id = $GLOBALS['STORE_ID']; $parent_id = (int)@$_GET["parent_id"]; $bid = $_REQUEST['bid'] ; if($bid!=0){ $sqlProductList = "Select a.products_id from products_pick as a, products as b where a.products_id=b.products_id and a.bid='$bid' and a.store_id = '$store_id' and b.products_status=1 order by a.sort_order" ; /*$sqlProductList = " Select a.products_id from products_pick as a, products as b, products_to_categories as c where a.products_id=b.products_id and a.products_id = c.products_id and a.store_id = '$store_id' and (c.categories_id = $parent_id or c.sub_cate_1='$parent_id' or c.sub_cate_2='$parent_id') and b.products_status=1 order by a.sort_order" ; */ // echo($sqlProductList) ; } else { $sqlProductList = "Select a.store_id, a.products_id, a.categories_id, b.products_no, b.products_image, b.products_price, c.* from products_to_categories as a, products as b, products_description as c where a.products_id = b.products_id and a.products_id = c.products_id and a.store_id = 1 and (a.categories_id = $parent_id or a.sub_cate_1='$parent_id' or a.sub_cate_2='$parent_id') and b.products_status=1 and c.language_id='$df_lang' and a.store_id='$store_id' order by b.products_id " ; } $db->query($sqlProductList) ; $prodList = array() ; while ($db->next_record()) { $prodList[] = $db->f("products_id") ; } $p = array_search($products_id, $prodList) ; $prevId = (($p-1) < 0) ? -1 : $prodList[$p-1] ; $nextId = ( ($p+1) >= (count($prodList)) ) ? -1 : $prodList[$p+1] ; //if(!$perm->havePerm("NewsModify")) errorShow(SYSERROR_3); $sql = " Select a.store_id, a.products_id, a.categories_id, b.*, c.* from products_to_categories as a, products as b, products_description as c where a.products_id = b.products_id and a.products_id = c.products_id and b.products_status=1 and a.store_id = 1 and a.products_id = $products_id"; //trace($sql); //echo $sql; $db->query($sql); #查無此產品資料 if($db->nf()==0) errorShow(MALL_P_NODATA); $admin = $perm->havePerm("ProductsModify"); $content = array(); if($db->next_record()) { $store_id = $db->f("store_id"); $categories_id = $db->f("categories_id"); $products_id = $db->f("products_id"); //$products_name = $db->f("products_name"); $products_name = htmlspecialchars($db->f("products_name")); $products_no = $db->f("products_no"); $products_image = $db->f("products_image"); $products_quantity = $db->f("products_quantity"); $products_unlimited = $db->f("products_unlimited"); $products_market_price = $db->f("products_market_price"); $products_stock_check = $db->f("products_stock_check"); $products_alert_stock = $db->f("products_alert_stock"); $products_price = number_format($db->f("products_price")); $products_market_price = number_format($db->f("products_market_price")); #if ($products_market_price == 0) { $products_market_price = "" ; } $products_wholesale_price = number_format($db->f("products_wholesale_price")); $products_introduction = html_entity_decode($db->f("products_introduction")); $products_description = $db->f("products_description"); $products_description_2 = $db->f("products_description_2"); $products_date_available = date("Y-m-d",strtotime($db->f("products_date_available"))); $products_date_invalid = date("Y-m-d",strtotime($db->f("products_date_invalid"))); $products_url = $db->f("products_url"); $show_market_price = ($db->f("products_market_price")-$db->f("products_price"))>0 ? 1:0; } // 預設圖檔 $default_img = "/images/system/default_item.gif"; $s_file = $products_image; $m_file = img_size($products_image,"m"); $l_file = img_size($products_image,"l"); if (!file_exists(WM_REAL_PATH.$s_file)){ $s_file = $default_img; } // 檢查圖檔是否存在 if (!file_exists($_SERVER['DOCUMENT_ROOT'] . $m_file)) $m_file = $products_image; if (!file_exists($_SERVER['DOCUMENT_ROOT'] . $l_file)) $l_file = $products_image; //$lang = new Lang('products_description',array('products_name','products_description'),'products_id' , $products_id ,'language_id'); $lang = new Lang('products_description',array('products_name','products_description','products_description_2'),'products_id' , $products_id ,'language_id'); $products = $lang->getMultiDefaultText(); #上下架日期判斷 $invaild_note = ""; if(strtotime($products_date_available)>mktime()) $invaild_note = MALL_P_AVAIABLE_1; else if(strtotime($products_date_invalid)havePerm("ProductsModify"); $ask_price = getSysOption('mall_ask_price'); #產品屬性 $attr = array(); $attr_op = array(); $db->query("select a.*,b.products_options_name,c.products_options_values_name from products_attributes as a left join products_options as b on a.options_id=b.products_options_id and b.language_id='$df_lang' left join products_options_values as c on c.products_options_values_id=a.options_values_id and c.language_id='$df_lang' where a.products_id='$products_id' order by a.sort_order"); while($db->next_record()) { if(!isset($attr[$db->f("options_id")]))$attr[$db->f("options_id")]=array(); #選項類別名稱 $attr_op[$db->f("options_id")] = $db->f("products_options_name"); #選項的下拉選單內容 if($db->f("options_values_price")>0) { $attr[$db->f("options_id")][$db->f("products_attributes_id")] = $db->f("products_options_values_name") ." ( ".$db->f("price_prefix")." $".number_format($db->f("options_values_price")).")"; }else{ $attr[$db->f("options_id")][$db->f("products_attributes_id")] = $db->f("products_options_values_name") ; } } // >>> Add 3 more images for product detail $sql = "select products_image from products_extra_image where products_id = $products_id" ; $db->query($sql) ; while($db->next_record()) { $extraImages[] = $db->f("products_image") ; } // <<< Add 3 more images for product detail // <<< Add pdf file for product detail $sql = "select products_pdf from products where products_id = $products_id" ; $db->query($sql) ; $db->next_record() ; $pdf = trim($db->f('products_pdf')); if (! ( file_exists($_SERVER['DOCUMENT_ROOT'] . $pdf) && is_file($_SERVER['DOCUMENT_ROOT'] . $pdf) )) { $pdf = "" ; } #Social share /* $og_image = $l_file; $og_url = $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $og_title = $products["products_name"]; $og_description = strip_tags($products_introduction); getSocialShare($og_image, $og_url, $og_title, $og_description); */ $smarty->assign("thisAdmin", $thisAdmin ); $smarty->assign("attr_op", $attr_op ); $smarty->assign("attr", $attr ); $smarty->assign("ask_price", getSysOption('mall_ask_price') ); $smarty->assign("content",$content); $smarty->assign("store_id",$store_id); $smarty->assign("pricePerm",$perm->havePerm("ShowPrice")); $smarty->assign("categories_id",$categories_id); $smarty->assign('cart_flag',$cart_flag); $smarty->assign('invaild_note',$invaild_note); $smarty->assign("parent_id",isset($_GET['parent_id']) ? $_GET['parent_id'] : 0); $smarty->assign("products_id",$products_id); $smarty->assign("products_no",$products_no); $smarty->assign("products",$products); $smarty->assign("products_image", $m_file); $smarty->assign("products_l_image", $l_file); $smarty->assign("products_quantity",$products_quantity); $smarty->assign("products_market_price",$products_market_price); $smarty->assign("products_unlimited",$products_unlimited); $smarty->assign("products_stock_check",$products_stock_check); $smarty->assign("products_alert_stock",$products_alert_stock); $smarty->assign("products_price",$products_price); $smarty->assign("products_market_price",$products_market_price); $smarty->assign("products_wholesale_price",$products_wholesale_price); $smarty->assign("products_introduction",$products_introduction); $smarty->assign("products_description",$products_description); $smarty->assign("products_description_2",$products_description_2); $smarty->assign("products_date_available",$products_date_available); $smarty->assign("products_date_invalid",$products_date_invalid); $smarty->assign("show_market_price",$show_market_price); $smarty->assign("products_image_1", $products_image_1) ; $smarty->assign("products_image_2", $products_image_2) ; $smarty->assign("products_image_3", $products_image_3) ; $smarty->assign("extra_images", $extraImages) ; $smarty->assign("products_url", $products_url) ; $smarty->assign("prev_id", $prevId) ; $smarty->assign("next_id", $nextId) ; $smarty->assign("parent_id", $parent_id) ; $smarty->assign("bid", $bid) ; $smarty->assign('pdf', $pdf); $smarty->assign("thisAdmin",$admin); $smarty->assign("sign_in", $signIn) ; $smarty->assign("is_agency", $isAgency) ; //$ret['title'] = MALL_DETAIL; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/products_detail.htm"); return $ret; } //----------------------------------------------------------------------------- // 商品維護 // function mallProductsEdit(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3); unset($_SESSION["error_message"]); $content = array(); $ref = ''; $parent_id = (int)@$_REQUEST["parent_id"]; $products_id = (int)@$_REQUEST["prod_id"]; $store_id = $GLOBALS['STORE_ID']; # 有SESSION的話帶入SESSION if (isset($_GET["err"]) && isset($_SESSION["sess_prod_edit"])) { $product_data = $_SESSION["sess_prod_edit"]; $ret['title'] = $product_data->products_id>0 ? MALL_P_EDIT : MALL_NEW_PROD; } else { // 修改 if ($products_id != "0"){ $sql = " Select a.categories_id, a.sub_cate_1, a.sub_cate_2, b.*, c.* from products_to_categories as a, products as b, products_description as c where a.products_id=b.products_id and b.products_id = c.products_id and b.store_id = 1 and b.products_id = $products_id"; $db->query($sql); if($db->next_record()) { $product_data = $db->Record ; $product_data->products_introduction = html_entity_decode($db->f("products_introduction")); } $product_data->categories_id = array(); $db->query("select categories_id from products_to_categories where products_id='$products_id' and store_id='$store_id' "); while($db->next_record()){ array_push($product_data->categories_id,$db->f("categories_id")); } $ret['title'] = MALL_P_EDIT; }else{ class B{} $product_data = new B ; $product_data->products_date_invalid = strtotime("now +5 year"); $product_data->store_id = $store_id; $product_data->products_id = 0; $product_data->products_status = 0; $product_data->categories_id = array(); $product_data->products_image = WM_HTML_ROOT . '/uploads/images/1_images/products/no_pic.png' ; $ret['title'] = MALL_NEW_PROD; } } //$lang = new Lang('products_description',array('products_name','products_description'),'products_id' , $products_id ,'language_id'); $lang = new Lang('products_description',array('products_name','products_description','products_description_2'),'products_id' , $products_id ,'language_id'); $products = $lang->getMultiText(); $product_key = $lang->status_key; $products['products_name'] = isset($_SESSION["sess_prod_edit"]) ? $_SESSION["sess_prod_edit"]->products_name : $products['products_name']; $products['products_description'] = isset($_SESSION["sess_prod_edit"]) ? $_SESSION["sess_prod_edit"]->products_description : $products['products_description']; $products['products_description_2'] = isset($_SESSION["sess_prod_edit"]) ? $_SESSION["sess_prod_edit"]->products_description_2 : $products['products_description_2']; $image_path = WM_HTML_ROOT."/uploads/images/".$store_id."_images/products/"; #繞出 分群組的SELECT OPTION資料結構 $all_cate = get_all_cate(); $big_cate = isset($all_cate[0]) ? $all_cate[0] : array(); $prod_cate = array(0=>MALL_P_CATE_NONE); foreach($big_cate as $k=>$v){ $this_cate = array(); if(isset($all_cate[$v['AutoSN']]) && is_array($all_cate[$v['AutoSN']])){ foreach($all_cate[$v['AutoSN']] as $small_cate){ $this_cate[$small_cate['AutoSN']] = $small_cate['text']; } } $prod_cate[$v['text']] = $this_cate; } #插入javascript insertJS(''); #來源網址(存檔後轉址用) if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=''){ $ref = explode('?',$_SERVER['HTTP_REFERER']); $ref = isset($ref[1]) ? $ref[1] : ''; }else if(isset($product_data->ref)){ $ref = $product_data->ref ; } // >>> Add 3 more images for product detail for ($i = 0; $i < 3; $i++) { $extraImages[$i]["no"] = "new_" . $i ; $extraImages[$i]["image_url"] = WM_HTML_ROOT . '/uploads/images/1_images/products/no_pic.png' ; $extraImages[$i]["delete"] = 0 ; } $sql = "select no, products_image from products_extra_image where products_id = $products_id" ; $db->query($sql) ; $i = 0 ; while($db->next_record()) { $extraImages[$i]["no"] = "old_" . $db->f("no") ; $extraImages[$i]["image_url"] = $db->f("products_image") ; $extraImages[$i]["delete"] = 'del_' . $db->f("no") ; $i++; } // <<< Add 3 more images for product detail // Fetch PDF url $sql = "select products_pdf from products where products_id = $products_id" ; $db->query($sql) ; $db->next_record() ; $pdf = $db->f('products_pdf'); //echo $image_path.@$products_image; $smarty->assign("show_hide",array(0=>_OFF,1=>_ON)); $smarty->assign("product_data",$product_data); $smarty->assign("products",$products); $smarty->assign("product_key",$product_key); $smarty->assign("products_cate", $prod_cate); $smarty->assign('ref',$ref); $smarty->assign("extra_images", $extraImages) ; $smarty->assign('pdf', $pdf) ; $smarty->assign("action",WM_HTML_ROOT."/?module=mall&func=ProductsUpdate"); $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/products_edit.htm"); return $ret; } // 商品儲存 function mallProductsUpdate() { global $db,$perm,$smarty; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3); foreach($_REQUEST as $key => $value) { if(!is_array($value)) $$key = common_stripslashes($value); else $$key = $value; } $products_date_available = date("Y-m-d", strtotime("$UpDateYear-$UpDateMonth-$UpDateDay")); $products_date_invalid = date("Y-m-d", strtotime("$DownDateYear-$DownDateMonth-$DownDateDay")); $action = isset($action) ? $action : ''; $products_unlimited = isset($products_unlimited) ? $products_unlimited : 0 ; $products_stock_check = isset($products_stock_check ) ? $products_stock_check : 0; $product_key = $_REQUEST['product_key']; unset($_SESSION["sess_prod_edit"]); session_register("sess_prod_edit"); $err_msg = ""; if ($action != "delete_product") { if ($products_no =="") $err_msg = sprintf(MALL_DATA_EMPTY, MALL_P_NO); //else if ($products_price =="") $err_msg = sprintf(MALL_DATA_EMPTY, MALL_P_PRICE); //else if ($products_market_price =="") $err_msg = sprintf(MALL_DATA_EMPTY, MALL_P_MARKET_PRICE); if(is_array($products_name)){ foreach($products_name as $v) if($v=='') $err_msg = sprintf(MALL_DATA_EMPTY, MALL_P_NAME); } #若為新增產品,檢查產品編號有沒有重複 if($prod_id == "0" || $prod_id == ""){ $sql = "select products_no from products where products_no='$products_no' "; }else{ $sql = "select products_no from products where products_no='$products_no' and products_id<>'$prod_id' "; } $db->query($sql); if($db->nf()>0) $err_msg = sprintf(MALL_P_MSG_1); } if ($err_msg != ""){ $_SESSION["error_message"] = $err_msg; $_SESSION["sess_prod_edit"]->store_id = $store_id; $_SESSION["sess_prod_edit"]->products_id = $prod_id; $_SESSION["sess_prod_edit"]->categories_id = $categories_id; $_SESSION["sess_prod_edit"]->sub_cate_1 = $sub_cate_1; $_SESSION["sess_prod_edit"]->sub_cate_2 = $sub_cate_2; $_SESSION["sess_prod_edit"]->products_quantity = $products_quantity; $_SESSION["sess_prod_edit"]->products_image = $products_image; $_SESSION["sess_prod_edit"]->products_unlimited = $products_unlimited; $_SESSION["sess_prod_edit"]->products_stock_check = $products_stock_check; $_SESSION["sess_prod_edit"]->products_alert_stock = $products_alert_stock; $_SESSION["sess_prod_edit"]->products_no = $products_no; $_SESSION["sess_prod_edit"]->products_price = $products_price; $_SESSION["sess_prod_edit"]->products_market_price = $products_market_price; $_SESSION["sess_prod_edit"]->products_wholesale_price = $products_wholesale_price; $_SESSION["sess_prod_edit"]->products_name = $products_name; $_SESSION["sess_prod_edit"]->products_introduction = $products_introduction; $_SESSION["sess_prod_edit"]->products_description = $products_description; $_SESSION["sess_prod_edit"]->products_description_2 = $products_description_2; $_SESSION["sess_prod_edit"]->products_date_available = $products_date_available; $_SESSION["sess_prod_edit"]->products_date_invalid = $products_date_invalid; $_SESSION["sess_prod_edit"]->products_status = $products_status; $_SESSION["sess_prod_edit"]->products_url = $products_url; $_SESSION["sess_prod_edit"]->ref = $ref; errorShow($err_msg,WM_HTML_ROOT."/?module=mall&func=ProductsEdit&prod_id=$prod_id&err=1"); } $upload_path = WM_REAL_PATH . '/uploads/images/1_images/products' ; $upload_url = WM_HTML_ROOT . "/uploads/images/1_images/products" ; if ($prod_id == "0" || $prod_id == ""){ $majorImage = uploadFile('file_1', $upload_path, true, MALL_PROD_IMAGE_WIDTH) ; $majorImage = $upload_url . '/' . $majorImage ; $pdf = uploadFile('file_pdf', $upload_path) ; $pdf = $upload_url . '/' . $pdf ; // # PROCESS IMAGE // if(isset($_POST['org']) && $_POST['org']==1) { // #照原尺寸 上傳 // $width_arr = array('o'=>2480); // $org=1; // }else { // # 分三種大小 // $width_arr = array('s'=>200,'m'=>300,'l'=>720); // $org=0; // } // // foreach($width_arr as $size=>$newWidth) { // #判斷圖片是否太小 // if( (isset($ex_width) && $info[0]>$ex_width) || !isset($ex_width) ) { // #如果用縮的 // if(!$org) // $newFileName = $image->Resample($size."_".$fileName,$newWidth ,$newWidth); // #如果原尺寸用COPY的 // else{ // $newFileName = $image->copyTo($size."_".$fileName); // } // if($newFileName) { // $file = $newFileName; // $db=new DB_SiS("INSERT INTO fileList (filename, dir, image_size, category,postdate,custname) // values('$file','$dir', '$size', 'image',now(),'$custname')"); // }else $msg = SYSIMAGE_EDIT_7; // $ex_width = $newWidth; // // #產生圖片的訊息 // if($org) $up_msg .= sprintf( SYSIMAGE_EDIT_19, $info[0], $info[1] ).SYSIMAGE_EDIT_20; // else if($size=='s') // $up_msg .= sprintf( SYSIMAGE_EDIT_19, $info[0], $info[1] ).sprintf(SYSIMAGE_EDIT_23,$newWidth)."
"; // else if($size=='m') // $up_msg .= sprintf( SYSIMAGE_EDIT_19, $info[0], $info[1] ).sprintf(SYSIMAGE_EDIT_22,$newWidth)."
"; // else if($size=='l') // $up_msg .= sprintf( SYSIMAGE_EDIT_19, $info[0], $info[1] ).sprintf(SYSIMAGE_EDIT_21,$newWidth)."
"; // } // } $sql = "Insert into products (store_id, products_no, products_image, products_price, products_market_price, products_wholesale_price, products_date_available, products_date_invalid, products_date_added, products_status, products_pdf) values(".$store_id.", '". $products_no . "', '". $majorImage . "', '". $products_price . "', ' ". $products_market_price . "', ' ". $products_wholesale_price . "', ' ". $products_date_available . "', ' ". $products_date_invalid . "', now(), '".$products_status."', '$pdf')"; //Insert into products //(store_id, products_no, products_image, products_price, products_market_price, products_date_available, products_date_invalid, products_date_added, products_status) //values(".$store_id.", '". // $products_no . "', '". //$products_price . "', ' ". //$products_market_price . "', ' ". //$products_date_available . "', ' ". //$products_date_invalid . "', now(), '".$products_status."')"; $db->query($sql); $products_id = mysql_insert_id(); $prod_id=$products_id; $sql = "Insert into products_to_categories (store_id, products_id, categories_id, sub_cate_1, sub_cate_2) values($store_id, $products_id, $categories_1, $categories_2, $categories_3)"; $db->query($sql); for ($i = 0; $i < 3; $i++) { $imageParam = 'new_' . $i ; $newImage = uploadFile($imageParam, $upload_path, true, MALL_PROD_IMAGE_WIDTH) ; if ($newImage) { $sql = "insert into products_extra_image values (null, $prod_id, '" . $upload_url . "/" . $newImage . "')" ; $db->query($sql) ; } } } else if ($prod_id > 0 ){ $sql = " Update products set products_no = '$products_no' , products_image = '$products_image', products_price = '". (int)$products_price ."', products_market_price = '". (int)$products_market_price ."', products_wholesale_price = '". (int)$products_wholesale_price ."', products_date_available = '$products_date_available', products_status = '$products_status' , products_date_invalid = '$products_date_invalid' where products_id = ". (int)$prod_id; $db->query($sql); //products_image = '$products_image', $sql = "update products_to_categories set categories_id='$categories_1', sub_cate_1='$categories_2', sub_cate_2='$categories_3' where products_id='$prod_id' and store_id='$store_id' "; $db->query($sql); // Handle uploaded image files $majorImage = uploadFile('file_1', $upload_path, true, MALL_PROD_IMAGE_WIDTH) ; if ($majorImage) { $sql = "update products set products_image='" . $upload_url . '/' . $majorImage . "' where products_id=$prod_id"; $db->query($sql); } // Handle uploaded pdf files $pdf = uploadFile('file_pdf', $upload_path) ; if ($pdf) { $sql = "update products set products_pdf='" . $upload_url . '/' . $pdf . "' where products_id=$prod_id"; $db->query($sql); } if ($_REQUEST['del_pdf'] == 1) { $sql = "update products set products_pdf='' where products_id=$prod_id"; $db->query($sql); } $sql = "select no from products_extra_image where products_id = $prod_id" ; $db->query($sql) ; $oldNums = array() ; while ($db->next_record()) { $oldNums[] = $db->f("no") ; } for ($i = 0; $i < count($oldNums); $i++) { $index = $oldNums[$i] ; $newImage = uploadFile('old_' . $index, $upload_path, true, MALL_PROD_IMAGE_WIDTH) ; if ($newImage) { $sql = "update products_extra_image set products_image = '" . $upload_url . "/" . $newImage . "' where no = $index" ; $db->query($sql) ; } if ($_REQUEST['del_' . $index] == 1) { $sql = "delete from products_extra_image where no=$index" ; $db->query($sql) ; } } for ($i = 0; $i < 3; $i++) { $newImage = uploadFile('new_' . $i, $upload_path, true, MALL_PROD_IMAGE_WIDTH) ; if ($newImage) { $sql = "insert into products_extra_image values (null, $prod_id, '" . $upload_url . "/" . $newImage . "')" ; $db->query($sql) ; } } } #處理語系的部份 $products_id = $prod_id; foreach($products_name as $k=> $v) $products_name[$k] = htmlspecialchars( $v, ENT_QUOTES) ; foreach($products_description as $k=> $v) $products_description[$k] = htmlspecialchars( $v, ENT_QUOTES) ; //$lang = new Lang('products_description',array('products_name','products_description'),'products_id' , $products_id ,'language_id'); $lang = new Lang('products_description',array('products_name','products_description','products_description_2'),'products_id' , $products_id ,'language_id'); $lang->entity=1; $lang->status_key = $product_key ; //$lang->addMultiText( $products_name ,$products_description ); $lang->addMultiText( $products_name, $products_description, $products_description_2 ); $sql = "update products_description set products_introduction='$products_introduction', products_url='$products_url' where products_id='$prod_id' "; $db->query($sql); #4順利處理完資料就刪掉SESSION unset($_SESSION["sess_prod_edit"]); //$db->CompleteTrans(); if($ref!='') $url = WM_HTML_ROOT."/?".$ref ; else $url = WM_HTML_ROOT."/"; header("Location:".html_entity_decode($url)); exit; } #刪除產品 function mallProductsDelete(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_P_MANAGE); $pid = (int)$_GET['id']; $db->query("select * from orders_products where products_id ='$pid'"); if($db->nf()>0) errorShow(MALL_P_NODEL); #產品已經跟訂單有關聯 $db->query("delete from products where products_id ='$pid'"); $db->query("delete from products_description where products_id ='$pid'"); $db->query("delete from products_pick where products_id ='$pid'"); $db->query("delete from products_to_categories where products_id ='$pid'"); $ref= isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : WM_HTML_ROOT.'/'; errorShow(MALL_P_DELED,$ref); } // 購物車清單 function mallCheckoutSelect() { global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_CAR_SELECT); # Insert JS insertJS(''); if (!isset($_SESSION["card"])) $_SESSION["card"] = array(); #抓ref $ref = ''; if(!isset($_SESSION['cart_ref'])){ if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=''&&strpos($_SERVER['HTTP_REFERER'],'?module=mall&func=CheckoutSelect')===false){ $ref_http = explode('?',$_SERVER['HTTP_REFERER']); if(isset($ref_http[1])) { $ref = '?'.$ref_http[1]; } } $_SESSION['cart_ref'] = $ref ; }else $ref = $_SESSION['cart_ref'] ; #產品屬性的價格差 $attr = array(); $db->query("select a.*,b.products_options_values_name from products_attributes as a left join products_options_values as b on a.options_values_id=b.products_options_values_id and b.language_id='$df_lang'"); while($db->next_record()){ $diff = (int)$db->f("options_values_price")>0 ? intval($db->f("price_prefix").$db->f("options_values_price")):0 ; $attr[$db->f("products_attributes_id")] = array('price'=>$diff,'name'=>$db->f("products_options_values_name")); } switch(@$_GET["action"]) { case "add_product": // 新增 if (!in_car(@$_GET["prod_id"])) add_car(@(int)$_GET["prod_id"]); //echo(json_encode(array('message'=>'本商品已加入購物車 !'))) ; //exit() ; break; case "update_product": // 修改 #$_SESSION["card"] = array(); if(!isset($_POST["prod_id"])){ break; } foreach($_POST["prod_id"] as $i=>$pd) { if((int)$_POST["qty"][$i] == 0) { move_car($pd); continue; } $_SESSION["card"][$pd]['product_qty'] = (int) $_POST["qty"][$i]; #add_car($_POST["prod_id"][$i], $qty ); } if (isset($_POST["product_del_no"])) { foreach($_POST["product_del_no"] as $k => $value) move_car($value); } #if(isset($qty_msg)&& $qty_msg!="") $_SESSION['qty_msg'] = $qty_msg; # 是否要結帳了 if(isset($_POST['isCheckOut']) && $_POST['isCheckOut']>0) $url = WM_HTML_ROOT."/?module=mall&func=CheckoutPaymentConfirm&step=1"; else $url =WM_HTML_ROOT."/?module=mall&func=CheckoutSelect&action=update_product" ; header("Location:".$url); exit; break; case "move_product": // 移除 $_SESSION["card"] = array(); break; case "continue_shopping": //繼續購物 unset($_SESSION['cart_ref']); header("Location:".WM_HTML_ROOT."/".$ref); exit; } $cars_list = array(); // 顯示購物清單 $total = 0; #for($i=0;$i$sv) { $products_id = $_SESSION["card"][$i]["product_id"]; $prod_info = get_products_info($products_id); $tmp = array( "products_id" => $prod_info["products_id"], "products_image" => $prod_info["products_image"], "products_price" => (int)$prod_info["products_price"], "products_qty" => $_SESSION["card"][$i]["product_qty"], "products_name" => $prod_info["products_name"], "products_sub" => (int)$prod_info["products_price"]*$_SESSION["card"][$i]["product_qty"] ); if(isset($_SESSION["card"][$i]['attr'])) { foreach($_SESSION["card"][$i]['attr'] as $att_id){ if($attr[$att_id]['price']!=0){ $tmp['products_price'] = $tmp['products_price'] + $attr[$att_id]['price'] ; } $tmp['products_name'] .= " (".$attr[$att_id]['name'].")"; } $tmp['products_sub'] = intval($tmp['products_qty']*($tmp['products_price'])); $tmp['products_price'] = number_format($tmp['products_price']); } array_push( $cars_list, $tmp ); #$total = $total+(int)$prod_info["products_price"]*$_SESSION["card"][$i]["product_qty"]; $total = $total+$tmp['products_sub']; } #判斷運費有沒有優惠 $commit = getSysOption('mall_free_freight'); $free_msg = ''; if($commit>0 ){ #有優惠 $free_msg = sprintf(MALL_CAR_FREE_NOTE,$commit); } $content = array(); $smarty->assign('total', number_format($total)); $smarty->assign('cars_list', $cars_list); $smarty->assign('ref_http',$ref); $smarty->assign('free_msg',$free_msg); /* 購物數量的message SESSION if(isset($_SESSION['qty_msg'])){ $smarty->assign('qty_msg', $_SESSION['qty_msg']); unset($_SESSION['qty_msg']); }*/ $smarty->assign('action', WM_HTML_ROOT."/?module=mall&func=CheckoutSelect&action=update_product"); $ret['title'] = MALL_CAR_SELECT; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/checkout_select.htm"); return $ret; } //詢價功能 function mallAskProductPrice(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_AP_1); if(!isset($_GET['prod'])){ errorShow(SYSERROR_1.MALL_AP_1); } if(getSysOption('mall_ask_price')!=1 || getSysOption('cart_flag')!=0){ errorShow(MALL_AP_8); } $store_id = $GLOBALS['STORE_ID']; $pid = (int) $_GET['prod']; $data=array(); $db->query("select products_name from products_description where products_id='$pid' and language_id='$df_lang' and store_id='$store_id'"); $db->next_record(); $products_name = $db->f("products_name"); if($products_name=='') errorShow(MALL_P_NODATA) ; $uid = $_SESSION['user']['uid']; $user_id = isset( $_SESSION['user']['id']) ? $_SESSION['user']['id'] : ''; $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : WM_HTML_ROOT."/"; $db->query("select a.name,b.customers_email_address, b.customers_telephone from member as a left join customers as b on a.AutoSN=b.customers_id where a.AutoSN='$uid'"); $db->next_record(); $data = $db->Record ; $smarty->assign('data', get_object_vars($data)); $smarty->assign('products_name', $products_name); $smarty->assign('customers_id',$user_id); $smarty->assign('pid', $pid); $smarty->assign('ref', $ref); //$ret['title'] = MALL_AP_1; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/ask_price.htm"); return $ret; } function mallSendAskPrice(){ global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsAccess")) errorShow(SYSERROR_3.MALL_AP_1); if(getSysOption('mall_ask_price')!=1 || getSysOption('cart_flag')!=0){ #檢查詢價是否啟用 errorShow(MALL_AP_8); } foreach($_POST as $k=>$v) $$k = htmlspecialchars( $v, ENT_QUOTES); if($customer_id!='' ) $contact_name .= sprintf(MALL_AP_9,$customer_id) ; #若是會員則註明 $contact = nl2br($contact); $prod_url = 'http://'.$_SERVER['SERVER_NAME'].WM_HTML_ROOT."/?module=mall&func=ProductsDetail&prod_id=".$products_id; $site_name = getSysOption('mall_site_name'); $site_name = $site_name==''?'WebMaster產品中心':$site_name; $smarty->assign('site_name', $site_name); $smarty->assign('products_name', $products_name); $smarty->assign('contact_name', $contact_name); $smarty->assign('contact_company', $contact_company); $smarty->assign('contact_mail', $contact_mail); $smarty->assign('contact_tel', $contact_tel); $smarty->assign('contact', $contact); $smarty->assign('prod_url', $prod_url); $html = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/ask_price_send.htm"); #trace($html); $subject = MALL_AP_11; $admin_mail = getSysOption('mall_service_mail'); #如果信箱是空值,則使用系統管理者的信箱 if($admin_mail=='') { $db->query("select b.customers_email_address from member as a left join customers as b on a.AutoSN=b.customers_id where gid=2"); $db->next_record(); $admin_mail=$db->f("customers_email_address"); } initMail(); $mail = new SMTP; $mail->Delivery('local'); $mail->setCharset(CHARSET); $mail->AddTo($admin_mail,'admin'); $mail->AddHeader('Reply-To',$admin_mail ); $mail->From($admin_mail,$site_name); $mail->Html($html,CHARSET); $send = $mail->Send($subject); #trace($ref); if($send) errorShow(MALL_AP_12,$ref); else errorShow(MALL_ORDER_S37,$ref); } // 管理區域 function mallMallAdmin() { global $db,$perm,$smarty,$df_lang; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_ADMIN); $cart_flag = getSysOption('cart_flag'); $prod_list = array(); $overvaild = array(); $invaild = array(); $total_order = array(); #統計的訂單 $status = array(1=>MALL_ORDER_STATUS_1 , 2=>MALL_ORDER_STATUS_2 , 3=>MALL_ORDER_STATUS_3 , 4=>MALL_ORDER_STATUS_4 , 5=>MALL_ORDER_STATUS_5 , 6=>MALL_ORDER_STATUS_6 , 7=>MALL_ORDER_STATUS_7 , 8=>MALL_ORDER_STATUS_8 ); if($cart_flag==1){ /*#庫存不足產品的警告 $db->query("select a.products_id, a.products_quantity ,b.products_name from products as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' where a.products_quantity<=a.products_alert_stock and a.products_stock_check=1 and a.products_unlimited=0"); while($db->next_record()){ $alert_prod = array(); $alert_prod['id'] = $db->f("products_id"); $alert_prod['desc'] = sprintf(MALL_P_QTY_ALERT_1 , $db->f("products_name") , $db->f("products_quantity") ); array_push($prod_list,$alert_prod); }*/ #訂單統計 $db->query("select DISTINCT orders_status ,count(orders_id) as cnt from orders GROUP BY orders_status"); while($db->next_record()){ $total_order[$db->f("orders_status")] = sprintf(MALL_P_ORDER_CNT_1, ''.$status[$db->f("orders_status")].' ' , $db->f("cnt")); } #已下架商品列表 $db->query("select a.products_id , a.products_date_invalid , b.products_name from products as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' where a.products_date_invalidnext_record()){ $alert_prod = array(); $alert_prod['id'] = $db->f("products_id"); $alert_prod['desc'] = sprintf(MALL_P_INVABLE_3 , $db->f("products_name") , $db->f("products_date_invalid") ); array_push($overvaild,$alert_prod); } #未上架商品列表 $db->query("select a.products_id , a.products_date_available , b.products_name from products as a left join products_description as b on a.products_id=b.products_id and b.language_id='$df_lang' where a.products_date_available>now() "); while($db->next_record()){ $alert_prod = array(); $alert_prod['id'] = $db->f("products_id"); $alert_prod['desc'] = sprintf(MALL_P_AVAIABLE_3 , $db->f("products_name") , $db->f("products_date_available") ); array_push($invaild,$alert_prod); } } $ret = array(); $ret['title'] = MALL_ADMIN; $smarty->assign('prod_list',$prod_list); $smarty->assign('overvaild',$overvaild); $smarty->assign('invaild',$invaild); $smarty->assign('total_order',$total_order); $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/mall_admin.htm"); return $ret; } function malloptionSet(){ global $db,$perm,$smarty; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_ADMIN_CONFIG); /*$mall_options = array( 'cart_flag', 'order_thanks_word', 'mall_ask_price', 'mall_free_freight', 'mall_per_page', 'mall_service_mail', 'mall_order_note', 'mall_return_day', 'mall_return_flag', 'mall_freight_type', 'mall_site_name', 'mall_phone_num', 'mall_history_view', 'mall_invoice_flag' );*/ $mall_options = array( 'cart_flag', 'order_thanks_word', 'mall_ask_price', 'mall_free_freight', 'mall_per_page', 'mall_order_note', 'mall_return_day', 'mall_return_flag', 'mall_freight_type', 'mall_history_view', 'mall_invoice_flag' ); #更新 if(isset($_POST['post_flag'])) { $cart_flag = $_POST['cart_flag']; $order_thanks_word = htmlspecialchars( $_POST['order_thanks_word'], ENT_QUOTES); $mall_ask_price = (int)$_POST['mall_ask_price']>=1 ? 1 : 0; $mall_free_freight = (int)$_POST['mall_free_freight'] ; $mall_per_page = (int) $_POST['mall_per_page'] ; //$mall_service_mail = htmlspecialchars(str_replace(' ','',$_POST['mall_service_mail']), ENT_QUOTES); $mall_order_note = htmlspecialchars( $_POST['mall_order_note'], ENT_QUOTES); //$mall_mail_note = htmlspecialchars( $_POST['mall_mail_note'], ENT_QUOTES); $mall_return_day = (int)$_POST['mall_return_day'] ; $mall_return_flag = (int)$_POST['mall_return_flag']; $mall_freight_type = (int)$_POST['mall_freight_type']; $mall_history_view = (int)$_POST['mall_history_view']; $mall_invoice_flag = (int)$_POST['mall_invoice_flag']; //$mall_site_name = htmlspecialchars( $_POST['mall_site_name'], ENT_QUOTES); //$mall_phone_num = htmlspecialchars( $_POST['mall_phone_num'], ENT_QUOTES); #若EMAIL為空 /*if($mall_service_mail==''){ $db->query("select b.customers_email_address from member as a left join customers as b on a.AutoSN=b.customers_id where gid=2"); $db->next_record(); $mall_service_mail=$db->f("customers_email_address"); }*/ foreach($mall_options as $op){ $db->query("update system_option set op_value='".$$op."' where op_name='$op' "); } errorShow(MALL_OPSET_3,WM_HTML_ROOT."/?module=mall&func=MallAdmin"); } $cart_flag = getSysOption('cart_flag'); #$order_thanks = html_entity_decode(getSysOption('order_thanks_word')); $data = array(); foreach($mall_options as $op ){ $value = getSysOption($op); $data[$op] = html_entity_decode($value); } $list = array(0=>_OFF,1=>_ON); $smarty->assign('cart_flag', $cart_flag); $smarty->assign('list', $list); $smarty->assign('data', $data); $smarty->assign('per_page', array(3=>3,6=>6,9=>9,12=>12,15=>15,18=>18,21=>21,27=>27,30=>30)); $smarty->assign('return_day', array(7=>7,14=>14,20=>20,30=>30,35=>35)); $smarty->assign('order_thanks', FCKeditor("order_thanks_word",$data['order_thanks_word'])); $smarty->assign('mall_order_note', FCKeditor("mall_order_note",$data['mall_order_note'])); # $smarty->assign('mall_mail_note', FCKeditor("mall_mail_note",$data['mall_mail_note'])); $ret['title'] = MALL_ADMIN_CONFIG; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/mall_admin_option.htm"); return $ret; } function mallMailOption(){ global $db,$perm,$smarty; if(!$perm->havePerm("ProductsModify")) errorShow(SYSERROR_3.MALL_MAIL_1); $mall_options = array( 'mall_mail_note', 'mall_mail_out', 'mall_mail_canceling', 'mall_mail_canceled', 'mall_mail_return', 'mall_mail_returned', 'mall_mail_lack', 'mall_mail_flag_note', 'mall_mail_flag_out', 'mall_mail_flag_canceling', 'mall_mail_flag_canceled', 'mall_mail_flag_return', 'mall_mail_flag_returned', 'mall_mail_flag_lack' ); if(isset($_POST['post_flag'])) { $mall_mail_note = htmlspecialchars( $_POST['mall_mail_note'], ENT_QUOTES); $mall_mail_out = htmlspecialchars( $_POST['mall_mail_out'], ENT_QUOTES); $mall_mail_canceling= htmlspecialchars( $_POST['mall_mail_canceling'], ENT_QUOTES); $mall_mail_canceled = htmlspecialchars( $_POST['mall_mail_canceled'], ENT_QUOTES); $mall_mail_return = htmlspecialchars( $_POST['mall_mail_return'], ENT_QUOTES); $mall_mail_returned = htmlspecialchars( $_POST['mall_mail_returned'], ENT_QUOTES); $mall_mail_lack = htmlspecialchars( $_POST['mall_mail_lack'], ENT_QUOTES); $mall_mail_flag_note = (int)$_POST['mall_mail_flag_note']; $mall_mail_flag_out = (int)$_POST['mall_mail_flag_out']; $mall_mail_flag_canceling = (int)$_POST['mall_mail_flag_canceling']; $mall_mail_flag_canceled = (int)$_POST['mall_mail_flag_canceled']; $mall_mail_flag_return = (int)$_POST['mall_mail_flag_return']; $mall_mail_flag_returned = (int)$_POST['mall_mail_flag_returned']; $mall_mail_flag_lack = (int)$_POST['mall_mail_flag_lack']; #更新 foreach($mall_options as $op){ $db->query("update system_option set op_value='".$$op."' where op_name='$op' "); } errorShow(MALL_MAIL_2,WM_HTML_ROOT."/?module=mall&func=MallAdmin"); } #$list = array(0=>_OFF,1=>_ON); $data = array(); foreach($mall_options as $op ){ $value = getSysOption($op); $data[$op] = html_entity_decode($value); } $smarty->assign('list', array(0=>_OFF,1=>_ON)); $smarty->assign('data', $data); $smarty->assign('mall_mail_note', FCKeditor("mall_mail_note",$data['mall_mail_note'],'100%','260px')); $smarty->assign('mall_mail_out', FCKeditor("mall_mail_out",$data['mall_mail_out'],'100%','260px')); $smarty->assign('mall_mail_canceling', FCKeditor("mall_mail_canceling",$data['mall_mail_canceling'],'100%','260px')); $smarty->assign('mall_mail_canceled', FCKeditor("mall_mail_canceled",$data['mall_mail_canceled'],'100%','260px')); $smarty->assign('mall_mail_return', FCKeditor("mall_mail_return",$data['mall_mail_return'],'100%','260px')); $smarty->assign('mall_mail_returned', FCKeditor("mall_mail_returned",$data['mall_mail_returned'],'100%','260px')); $smarty->assign('mall_mail_lack', FCKeditor("mall_mail_lack",$data['mall_mail_lack'],'100%','260px')); $ret['title'] = MALL_MAIL_1; $ret['content'] = $smarty->fetch(WM_REAL_PATH."/modules/mall/templates/mall_mail_option.htm"); return $ret; } ////====================================================================================== //// function area //// moved to includes/function.php // ////20160414 Add upload file's for PDF //function uploadFile($in_upfile, $in_path, $resize=false) { // // $sRet=''; // // if(!empty($_FILES[$in_upfile]['name'])) // 上傳檔名不為空-->有檔案上傳 // { // $filename = $_FILES[$in_upfile]['name']; // 原始檔名 // if (strlen(strrpos($filename, "."))==0) // { // $ext=""; // } // else // { // $ext=substr($filename,strrpos($filename, "."),strlen($filename)); //附加檔名 // } // // $newfilename = date("YmdHis"). sprintf("%03s",rand(0, 999)); // // if (!file_exists($in_path)){ // @mkdir($in_path, 0777); // } // @chmod($in_path, 0777); // // if ($resize) { // include_once(WM_INCLUDE_PATH."/image/image.php"); // $image = new wm_image($in_path . '/' , $_FILES[$in_upfile]) ; // $info = getimagesize($_FILES[$in_upfile]["tmp_name"]); // # 一律用寬度720px的圖片 // $ex_width = 720; // if( $info[0]>$ex_width ) { // $newWidth = 720 ; // $newHeight = (int)(720/$info[0]*$info[1]) ; // $newfilename = $image->Resample($newfilename, $newWidth, $newHeight); // } // else { // $newfilename = $newfilename . $ext; // move_uploaded_file($_FILES[$in_upfile]['tmp_name'], $in_path. '/' . $newfilename); // } // } // else { // $newfilename = $newfilename . $ext; // move_uploaded_file($_FILES[$in_upfile]['tmp_name'], $in_path. '/' . $newfilename); // } // //// if (!file_exists($in_path . $newfilename)){ //// @chmod( $in_path . $newfilename, 0777); //// } // // $sRet=trim($newfilename); // //// //刪除檔案 //// if (!empty($_FILES[$in_upfile."_old"]['name']) and file_exists($in_path.$IN_FILES[$in_upfile."_old"]['name'])) {unlink($in_path.$IN_FILES[$in_upfile."_old"]['name']); } // } // return $sRet; //} ?> 宜蘭縣中山休閒農業區
Loading...

建議行程Tour

中山旅遊套券
中山一日遊
約09:00抵中山休閒農業區→遊客中心報到導覽→ 10:00 單車啟程 → 鐵馬迎風 → 全日單車瀏覽中山休閒農業區(使用兌換券) →16:00 遊客中心開車回程。
※ 費用包含:內容含四張體驗兌換券。
※ 注意事項:
  1. 好玩一整天、宜蘭中山二日遊等行程只要2人即可成行,歡迎公司行號預約訂購。
  2. 如需交通車來回接駁,請電:03-9954800尚海旅行社。
Reach Jhong Shan Agriculture Leisure Area around 09:00→Register in Visitor Center→10:00 Cycling departure→Cycling for whole day in Jhong Shan Agriculture Leisure Area(use voucher)→16:00 Return journey arrives at Visitor Center
※A set of Jhong Shan travel vouchers includes four DIY experience vouchers.
※Minimum of two guests is required for the trip. Companies are welcome to make bookings.
※For shuttles, please call Sunhi Tour at 03-9954800