|
|
<?php
|
|
|
|
|
|
if (!defined('IN_ASC'))
|
|
|
{
|
|
|
die('Hacking attempt');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根據廣告位獲得廣告列表
|
|
|
*/
|
|
|
function get_advlist($position,$num)
|
|
|
{
|
|
|
$arr = array( );
|
|
|
$sql = "select ap.ad_width,ap.ad_height,ad.ad_id,ad.ad_name,ad.ad_code,ad.ad_link,ad.ad_id from ".$GLOBALS['ecs']->table( "ad_position" )." as ap left join ".$GLOBALS['ecs']->table( "ad" )." as ad on ad.position_id = ap.position_id where ap.position_name ='".$position.("' and ad.enabled=1 limit ".$num );
|
|
|
$res = $GLOBALS['db']->getAll( $sql );
|
|
|
foreach ( $res as $idx => $row )
|
|
|
{
|
|
|
$arr[$row['ad_id']]['name'] = $row['ad_name'];
|
|
|
$arr[$row['ad_id']]['url'] = "affiche.php?ad_id=".$row['ad_id']."&uri=".$row['ad_link'];
|
|
|
$arr[$row['ad_id']]['image'] = "data/afficheimg/".$row['ad_code'];
|
|
|
$arr[$row['ad_id']]['content'] = "<a href='".$arr[$row['ad_id']]['url']."'><img src='data/afficheimg/".$row['ad_code']."' width='".$row['ad_width']."' height='".$row['ad_height']."' /></a>";
|
|
|
$arr[$row['ad_id']]['width'] = $row['ad_width'];
|
|
|
$arr[$row['ad_id']]['height'] = $row['ad_height'];
|
|
|
}
|
|
|
return $arr;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 獲得某個分類下的品牌列表
|
|
|
*
|
|
|
* @access public
|
|
|
* @param int $cat
|
|
|
* @return array
|
|
|
*/
|
|
|
function get_cat_brands($cat = 0, $app = 'brand' ,$limnum=0,$sort='tag DESC, b.sort_order ASC')
|
|
|
{
|
|
|
global $page_libs;
|
|
|
$template = basename(PHP_SELF);
|
|
|
$template = substr($template, 0, strrpos($template, '.'));
|
|
|
include_once(ROOT_PATH . ADMIN_PATH . '/includes/lib_template.php');
|
|
|
static $static_page_libs = null;
|
|
|
if ($static_page_libs == null)
|
|
|
{
|
|
|
$static_page_libs = $page_libs;
|
|
|
}
|
|
|
|
|
|
$children = ($cat > 0) ? ' AND ' . get_children($cat) : '';
|
|
|
|
|
|
$sql = "SELECT b.brand_id, b.brand_name, b.brand_logo, b.brand_desc, COUNT(*) AS goods_num, IF(b.brand_logo > '', '1', '0') AS tag ".
|
|
|
"FROM " . $GLOBALS['ecs']->table('brand') . "AS b, ".
|
|
|
$GLOBALS['ecs']->table('goods') . " AS g ".
|
|
|
"WHERE g.brand_id = b.brand_id $children AND is_show = 1 " .
|
|
|
" AND g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 ".
|
|
|
"GROUP BY b.brand_id HAVING goods_num > 0 ORDER BY $sort";
|
|
|
|
|
|
if($limnum>0)
|
|
|
{
|
|
|
$num=$limnum;
|
|
|
$sql .= " LIMIT $num ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (isset($static_page_libs[$template]['/library/brands.lbi']))
|
|
|
{
|
|
|
$num = get_library_number("brands");
|
|
|
$sql .= " LIMIT $num ";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$row = $GLOBALS['db']->getAll($sql);
|
|
|
|
|
|
foreach ($row AS $key => $val)
|
|
|
{
|
|
|
$row[$key]['url'] = build_uri($app, array('cid' => $cat, 'bid' => $val['brand_id']), $val['brand_name']);
|
|
|
$row[$key]['brand_desc'] = htmlspecialchars($val['brand_desc'],ENT_QUOTES);
|
|
|
}
|
|
|
|
|
|
return $row;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 獲得首頁主廣告
|
|
|
*/
|
|
|
function get_flash_xml()
|
|
|
{
|
|
|
$flashdb = array();
|
|
|
if (file_exists(ROOT_PATH . DATA_DIR . '/flash_data.xml'))
|
|
|
{
|
|
|
|
|
|
// 兼容v2.7.0及以前版本
|
|
|
if (!preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"\ssort="([^"]*)"\scolor="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER))
|
|
|
{
|
|
|
preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"\scolor="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER);
|
|
|
}
|
|
|
|
|
|
if (!empty($t))
|
|
|
{
|
|
|
foreach ($t as $key => $val)
|
|
|
{
|
|
|
$val[5] = isset($val[5]) ? $val[5] : 0;
|
|
|
$flashdb[] = array('src'=>$val[1],'url'=>$val[2],'text'=>$val[3],'sort'=>$val[4],'color'=>$val[5]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return $flashdb;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 調用購物車信息
|
|
|
*
|
|
|
* @access public
|
|
|
* @return string
|
|
|
*/
|
|
|
function insert_cart_info_mb5()
|
|
|
{
|
|
|
$sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
|
|
|
' FROM ' . $GLOBALS['ecs']->table('cart') .
|
|
|
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
|
|
|
$row = $GLOBALS['db']->GetRow($sql);
|
|
|
|
|
|
if ($row)
|
|
|
{
|
|
|
$number = intval($row['number']);
|
|
|
$amount = floatval($row['amount']);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$number = 0;
|
|
|
$amount = 0;
|
|
|
}
|
|
|
|
|
|
$sql = 'SELECT c.rec_id,c.goods_id,c.goods_price,c.goods_number,c.goods_name,c.goods_attr,g.goods_thumb ' .
|
|
|
' FROM ' . $GLOBALS['ecs']->table('cart') . ' AS c '.
|
|
|
" LEFT JOIN " . $GLOBALS['ecs']->table('goods') . " AS g ON c.goods_id = g.goods_id " .
|
|
|
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
|
|
|
$res = $GLOBALS['db']->GetAll($sql);
|
|
|
|
|
|
foreach($res as $idx => $row)
|
|
|
{
|
|
|
$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
|
|
|
$goods[$idx]['id'] = $row['goods_id'];
|
|
|
$goods[$idx]['rec_id'] = $row['rec_id'];
|
|
|
$goods[$idx]['name'] = $row['goods_name'];
|
|
|
$goods[$idx]['goods_number'] = $row['goods_number'];
|
|
|
$goods[$idx]['goods_attr'] = $row['goods_attr'];
|
|
|
$goods[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
|
|
|
sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];
|
|
|
$goods[$idx]['shop_price'] = $row['goods_price'];
|
|
|
$goods[$idx]['thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);
|
|
|
}
|
|
|
|
|
|
$need_cache = $GLOBALS['smarty']->caching;
|
|
|
$GLOBALS['smarty']->caching = false;
|
|
|
$GLOBALS['smarty']->assign('number', $number);
|
|
|
$GLOBALS['smarty']->assign('amount', $amount);
|
|
|
$GLOBALS['smarty']->assign('cart_list', $goods);
|
|
|
|
|
|
$val = $GLOBALS['smarty']->fetch('library/cart_info.lbi');
|
|
|
$GLOBALS['smarty']->caching = $need_cache;
|
|
|
return $val;
|
|
|
}
|
|
|
|
|
|
/* 代碼增加_start By www.mb5.com.cn */
|
|
|
function is_exist_prod($first_arr, $one, $prod_exist_arr)
|
|
|
{
|
|
|
if (empty($prod_exist_arr))
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
$first_arr[]=$one;
|
|
|
|
|
|
$all_valid =0;
|
|
|
foreach($prod_exist_arr AS $item_exist)
|
|
|
{
|
|
|
$first_exist=1;
|
|
|
foreach($first_arr AS $first)
|
|
|
{
|
|
|
if (!strstr($item_exist, '|'. $first .'|'))
|
|
|
{
|
|
|
$first_exist=0;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if($first_exist)
|
|
|
{
|
|
|
$all_valid=1;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return $all_valid;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 獲得指定分類下的子分類
|
|
|
*
|
|
|
* @access public
|
|
|
* @param integer $cat_id 分類編號
|
|
|
* @return array
|
|
|
*/
|
|
|
function get_children_tree($cat_id)
|
|
|
{
|
|
|
if ($cat_id >0 )
|
|
|
{
|
|
|
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . " WHERE parent_id = '$cat_id'";
|
|
|
if ($GLOBALS['db']->getOne($sql))
|
|
|
{
|
|
|
// 獲取當前分類名及其子類
|
|
|
$sql = 'SELECT a.cat_id, a.cat_name, a.sort_order AS parent_order, a.cat_id, b.is_show, ' .
|
|
|
'b.cat_id AS child_id, b.cat_name AS child_name, b.sort_order AS child_order ' .
|
|
|
'FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' .
|
|
|
'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS b ON b.parent_id = a.cat_id ' .
|
|
|
"WHERE a.cat_id = '$cat_id' and b.is_show = 1 ORDER BY b.sort_order ASC, b.cat_id ASC";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$sql = 'SELECT parent_id FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cat_id'";
|
|
|
$parent_id = $GLOBALS['db']->getOne($sql);
|
|
|
if ($parent_id > 0)
|
|
|
{
|
|
|
//獲取當前分類、兄弟及其父類
|
|
|
$sql = 'SELECT a.cat_id, a.cat_name, b.is_show, b.cat_id AS child_id, b.cat_name AS child_name, b.sort_order ' .
|
|
|
'FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' .
|
|
|
'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS b ON b.parent_id = a.cat_id ' .
|
|
|
"WHERE b.parent_id = '$parent_id' and b.is_show = 1 ORDER BY b.sort_order ASC, b.cat_id ASC";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//獲取當前分類
|
|
|
$sql = 'SELECT a.cat_id, a.cat_name FROM '
|
|
|
. $GLOBALS['ecs']->table('category') . ' AS a ' .
|
|
|
"WHERE a.cat_id = '$cat_id'";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
$res = $GLOBALS['db']->getAll($sql);
|
|
|
|
|
|
$cat_arr = array();
|
|
|
foreach ($res AS $row)
|
|
|
{
|
|
|
$cat_arr[$row['cat_id']]['id'] = $row['cat_id'];
|
|
|
$cat_arr[$row['cat_id']]['name'] = $row['cat_name'];
|
|
|
$cat_arr[$row['cat_id']]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);
|
|
|
|
|
|
if ($row['child_id'] != NULL)
|
|
|
{
|
|
|
$cat_arr[$row['cat_id']]['children'][$row['child_id']]['id'] = $row['child_id'];
|
|
|
$cat_arr[$row['cat_id']]['children'][$row['child_id']]['name'] = $row['child_name'];
|
|
|
$cat_arr[$row['cat_id']]['children'][$row['child_id']]['url'] = build_uri('category', array('cid' => $row['child_id']), $row['child_name']);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return $cat_arr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function get_cat_top3($cat_id)
|
|
|
{
|
|
|
$cats = get_children($cat_id);
|
|
|
$where = !empty($cats) ? "AND ($cats OR " . get_extension_goods($cats) . ") " : '';
|
|
|
|
|
|
/* 排行統計的時間 */
|
|
|
switch ($GLOBALS['_CFG']['top10_time'])
|
|
|
{
|
|
|
case 1: // 一年
|
|
|
$top10_time = "AND o.order_sn >= '" . date('Ymd', gmtime() - 365 * 86400) . "'";
|
|
|
break;
|
|
|
case 2: // 半年
|
|
|
$top10_time = "AND o.order_sn >= '" . date('Ymd', gmtime() - 180 * 86400) . "'";
|
|
|
break;
|
|
|
case 3: // 三個月
|
|
|
$top10_time = "AND o.order_sn >= '" . date('Ymd', gmtime() - 90 * 86400) . "'";
|
|
|
break;
|
|
|
case 4: // 一個月
|
|
|
$top10_time = "AND o.order_sn >= '" . date('Ymd', gmtime() - 30 * 86400) . "'";
|
|
|
break;
|
|
|
default:
|
|
|
$top10_time = '';
|
|
|
}
|
|
|
|
|
|
$sql = 'SELECT g.goods_id, g.goods_name, g.shop_price, g.goods_thumb, SUM(og.goods_number) as goods_number ' .
|
|
|
'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g, ' .
|
|
|
$GLOBALS['ecs']->table('order_info') . ' AS o, ' .
|
|
|
$GLOBALS['ecs']->table('order_goods') . ' AS og ' .
|
|
|
"WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 $where " ;
|
|
|
//判斷是否啓用庫存,庫存數量是否大於0
|
|
|
if ($GLOBALS['_CFG']['use_storage'] == 1)
|
|
|
{
|
|
|
$sql .= " AND g.goods_number > 0 ";
|
|
|
}
|
|
|
$sql .= ' AND og.order_id = o.order_id AND og.goods_id = g.goods_id ' .
|
|
|
"AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') " .
|
|
|
'GROUP BY g.goods_id ORDER BY goods_number DESC, g.goods_id DESC LIMIT 3';
|
|
|
$row = $GLOBALS['db']->getAll($sql);
|
|
|
foreach ($row AS $key => $val)
|
|
|
{
|
|
|
$row[$key]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
|
|
|
sub_str($val['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $val['goods_name'];
|
|
|
$row[$key]['url'] = build_uri('goods', array('gid' => $val['goods_id']), $val['goods_name']);
|
|
|
$row[$key]['thumb'] = get_image_path($val['goods_id'], $val['goods_thumb'],true);
|
|
|
$row[$key]['price'] = price_format($val['shop_price']);
|
|
|
}
|
|
|
|
|
|
return $row;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* shop 實現其他頁面(商品詳情頁、菜品分類頁、團購頁、優惠活動頁、積分商城)
|
|
|
* 判斷如果是智能手機訪問的話 跳轉到ECTouch1.0手機版對應頁面 方法
|
|
|
*
|
|
|
* @access public
|
|
|
*/
|
|
|
function pc_to_mobile()
|
|
|
{
|
|
|
//判斷是否是手機訪問
|
|
|
$is_mobile = false;
|
|
|
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
|
|
|
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";
|
|
|
|
|
|
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
|
|
|
{
|
|
|
$is_mobile = true;
|
|
|
}
|
|
|
|
|
|
$phpself = $_SERVER["REQUEST_URI"];
|
|
|
|
|
|
if($is_mobile && !strstr($phpself,'wechat') && !strstr($phpself,'erweima_user.php')){
|
|
|
/*
|
|
|
* 如果你綁定了手機版域名 http://www.abc.com/mobile 為 http://m.abc.com
|
|
|
* 那麼 $mobile_www = http://m.abc.com
|
|
|
*/
|
|
|
$mobile_www = $GLOBALS['ecs']->url().'mobile';
|
|
|
$mobile_url = $mobile_www.$phpself;
|
|
|
|
|
|
ecs_header("Location: $mobile_url");
|
|
|
exit;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function get_child_cats( $tree_id = 0, $num = 0 )
|
|
|
{
|
|
|
$three_arr = array( );
|
|
|
$sql = "SELECT count(*) FROM ".$GLOBALS['ecs']->table( "category" ).( " WHERE parent_id = '".$tree_id."' AND is_show = 1 " );
|
|
|
if ( 0 < $num )
|
|
|
{
|
|
|
$where = " limit ".$num;
|
|
|
}
|
|
|
if ( $GLOBALS['db']->getOne( $sql ) || $tree_id == 0 )
|
|
|
{
|
|
|
$child_sql = "SELECT cat_id, cat_name, parent_id, is_show FROM ".$GLOBALS['ecs']->table( "category" ).( "WHERE parent_id = '".$tree_id."' AND is_show = 1 ORDER BY sort_order ASC, cat_id ASC {$where}" );
|
|
|
$res = $GLOBALS['db']->getAll( $child_sql );
|
|
|
foreach ( $res as $row )
|
|
|
{
|
|
|
if ( $row['is_show'] )
|
|
|
{
|
|
|
$three_arr[$row['cat_id']]['id'] = $row['cat_id'];
|
|
|
$three_arr[$row['cat_id']]['name'] = $row['cat_name'];
|
|
|
$three_arr[$row['cat_id']]['url'] = build_uri( "category", array(
|
|
|
"cid" => $row['cat_id']
|
|
|
), $row['cat_name'] );
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return $three_arr;
|
|
|
}
|
|
|
|
|
|
function get_user_backorders ($user_id, $num = 10, $start = 0)
|
|
|
{
|
|
|
/* 取得訂單列表 */
|
|
|
$arr = array();
|
|
|
|
|
|
$sql = "SELECT bo.*, g.goods_name " . " FROM " . $GLOBALS['ecs']->table('back_order') . " AS bo left join " . $GLOBALS['ecs']->table('goods') . " AS g " . " on bo.goods_id=g.goods_id " . " WHERE user_id = '$user_id' ORDER BY add_time DESC";
|
|
|
$res = $GLOBALS['db']->SelectLimit($sql, $num, $start);
|
|
|
|
|
|
while($row = $GLOBALS['db']->fetchRow($res))
|
|
|
{
|
|
|
|
|
|
$row['order_time'] = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);
|
|
|
$row['refund_money_1'] = price_format($row['refund_money_1'], false);
|
|
|
|
|
|
$row['goods_url'] = build_uri('goods', array(
|
|
|
'gid' => $row['goods_id']
|
|
|
), $row['goods_name']);
|
|
|
$row['status_back_1'] = $row['status_back'];
|
|
|
$row['status_back'] = $GLOBALS['_LANG']['bos'][(($row['back_type'] == 4 && $row['status_back'] != 8) ? $row['back_type'] : $row['status_back'])] . ' - ' . $GLOBALS['_LANG']['bps'][$row['status_refund']];
|
|
|
|
|
|
$arr[] = $row;
|
|
|
}
|
|
|
|
|
|
return $arr;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 調用會員信息
|
|
|
*
|
|
|
* @access public
|
|
|
* @return string
|
|
|
*/
|
|
|
function insert_member_info_top()
|
|
|
{
|
|
|
$need_cache = $GLOBALS['smarty']->caching;
|
|
|
$GLOBALS['smarty']->caching = false;
|
|
|
|
|
|
if ($_SESSION['user_id'] > 0)
|
|
|
{
|
|
|
$GLOBALS['smarty']->assign('user_info', get_user_info());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (!empty($_COOKIE['ECS']['username']))
|
|
|
{
|
|
|
$GLOBALS['smarty']->assign('ecs_username', stripslashes($_COOKIE['ECS']['username']));
|
|
|
}
|
|
|
$captcha = intval($GLOBALS['_CFG']['captcha']);
|
|
|
if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0)
|
|
|
{
|
|
|
$GLOBALS['smarty']->assign('enabled_captcha', 1);
|
|
|
$GLOBALS['smarty']->assign('rand', mt_rand());
|
|
|
}
|
|
|
}
|
|
|
$output = $GLOBALS['smarty']->fetch('library/member_info_top.lbi');
|
|
|
|
|
|
$GLOBALS['smarty']->caching = $need_cache;
|
|
|
|
|
|
return $output;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 調用購物車信息
|
|
|
*
|
|
|
* @access public
|
|
|
* @return string
|
|
|
*/
|
|
|
function insert_cart_info_top()
|
|
|
{
|
|
|
$sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
|
|
|
' FROM ' . $GLOBALS['ecs']->table('cart') .
|
|
|
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
|
|
|
$row = $GLOBALS['db']->GetRow($sql);
|
|
|
|
|
|
if ($row)
|
|
|
{
|
|
|
$number = intval($row['number']);
|
|
|
$amount = floatval($row['amount']);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$number = 0;
|
|
|
$amount = 0;
|
|
|
}
|
|
|
|
|
|
$sql = 'SELECT c.rec_id,c.goods_id,c.goods_price,c.goods_number,c.goods_name,c.goods_attr,c.extension_code,IF(c.extension_code = "package_buy","package_img",g.goods_thumb) as goods_thumb ' .
|
|
|
' FROM ' . $GLOBALS['ecs']->table('cart') . ' AS c '.
|
|
|
" LEFT JOIN " . $GLOBALS['ecs']->table('goods') . " AS g ON c.goods_id = g.goods_id " .
|
|
|
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
|
|
|
$res = $GLOBALS['db']->GetAll($sql);
|
|
|
|
|
|
foreach($res as $idx => $row)
|
|
|
{
|
|
|
$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
|
|
|
$goods[$idx]['id'] = $row['goods_id'];
|
|
|
$goods[$idx]['rec_id'] = $row['rec_id'];
|
|
|
$goods[$idx]['name'] = $row['goods_name'];
|
|
|
$goods[$idx]['goods_number'] = $row['goods_number'];
|
|
|
$goods[$idx]['goods_attr'] = $row['goods_attr'];
|
|
|
$goods[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
|
|
|
sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];
|
|
|
$goods[$idx]['shop_price'] = $row['goods_price'];
|
|
|
$goods[$idx]['goods_thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);
|
|
|
}
|
|
|
|
|
|
$need_cache = $GLOBALS['smarty']->caching;
|
|
|
$GLOBALS['smarty']->caching = false;
|
|
|
$GLOBALS['smarty']->assign('number', $number);
|
|
|
$GLOBALS['smarty']->assign('amount', $amount);
|
|
|
$GLOBALS['smarty']->assign('cart_list', $goods);
|
|
|
|
|
|
$val = $GLOBALS['smarty']->fetch('library/cart_info_top.lbi');
|
|
|
$GLOBALS['smarty']->caching = $need_cache;
|
|
|
return $val;
|
|
|
}
|
|
|
|
|
|
function getcontent($url){
|
|
|
if(function_exists("file_get_contents")){
|
|
|
$file_contents = file_get_contents($url);
|
|
|
}else{
|
|
|
$ch = curl_init();
|
|
|
$timeout = 5;
|
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
|
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
|
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
|
|
|
$file_contents = curl_exec($ch);
|
|
|
curl_close($ch);
|
|
|
}
|
|
|
return $file_contents;
|
|
|
}
|
|
|
|
|
|
function get_brands1($cat = 0, $app = 'brand')
|
|
|
{
|
|
|
$children = ($cat > 0) ? ' AND ' . get_children($cat) : '';
|
|
|
|
|
|
$sql = "SELECT b.brand_id, b.brand_name, b.brand_logo, b.brand_desc, COUNT(*) AS goods_num, IF(b.brand_logo > '', '1', '0') AS tag ".
|
|
|
"FROM " . $GLOBALS['ecs']->table('brand') . "AS b, ".
|
|
|
$GLOBALS['ecs']->table('goods') . " AS g ".
|
|
|
"WHERE g.brand_id = b.brand_id $children AND is_show = 1 " .
|
|
|
" AND g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 ".
|
|
|
"GROUP BY b.brand_id HAVING goods_num > 0 ORDER BY tag DESC, b.sort_order ASC";
|
|
|
$row = $GLOBALS['db']->getAll($sql);
|
|
|
|
|
|
foreach ($row AS $key => $val)
|
|
|
{
|
|
|
$row[$key]['url'] = build_uri($app, array('cid' => $cat, 'bid' => $val['brand_id']), $val['brand_name']);
|
|
|
$row[$key]['brand_desc'] = htmlspecialchars($val['brand_desc'],ENT_QUOTES);
|
|
|
}
|
|
|
|
|
|
return $row;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 獲得指定分類下的推薦商品
|
|
|
*
|
|
|
* @access public
|
|
|
* @param string $type 推薦類型,可以是 best, new, hot, promote
|
|
|
* @param string $cats 分類的ID
|
|
|
* @return array
|
|
|
*/
|
|
|
function get_cat_recommend_goods($type = '', $cats = '')
|
|
|
{
|
|
|
$brand_where = ($brand > 0) ? " AND g.brand_id = '$brand'" : '';
|
|
|
|
|
|
$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ' .
|
|
|
"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".
|
|
|
'promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, goods_img ' .
|
|
|
'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .
|
|
|
"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".
|
|
|
"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".
|
|
|
'WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 ';
|
|
|
|
|
|
switch ($type)
|
|
|
{
|
|
|
case 'best':
|
|
|
$sql .= ' AND is_best = 1';
|
|
|
break;
|
|
|
case 'new':
|
|
|
$sql .= ' AND is_new = 1';
|
|
|
break;
|
|
|
case 'hot':
|
|
|
$sql .= ' AND is_hot = 1';
|
|
|
break;
|
|
|
case 'promote':
|
|
|
$time = gmtime();
|
|
|
$sql .= " AND is_promote = 1 AND promote_start_date <= '$time' AND promote_end_date >= '$time'";
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (!empty($cats))
|
|
|
{
|
|
|
$cats = get_children($cats);
|
|
|
$sql .= " AND (" . $cats . " OR " . get_extension_goods($cats) .")";
|
|
|
}
|
|
|
|
|
|
$sql .= ' ORDER BY g.sort_order, g.last_update DESC';
|
|
|
$res = $GLOBALS['db']->selectLimit($sql, 4);
|
|
|
|
|
|
$idx = 0;
|
|
|
$goods = array();
|
|
|
while ($row = $GLOBALS['db']->fetchRow($res))
|
|
|
{
|
|
|
if ($row['promote_price'] > 0)
|
|
|
{
|
|
|
$promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);
|
|
|
$goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$goods[$idx]['promote_price'] = '';
|
|
|
}
|
|
|
|
|
|
$goods[$idx]['id'] = $row['goods_id'];
|
|
|
$goods[$idx]['name'] = $row['goods_name'];
|
|
|
$goods[$idx]['brief'] = $row['goods_brief'];
|
|
|
$goods[$idx]['brand_name'] = $row['brand_name'];
|
|
|
$goods[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
|
|
|
sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];
|
|
|
$goods[$idx]['market_price'] = price_format($row['market_price']);
|
|
|
$goods[$idx]['shop_price'] = price_format($row['shop_price']);
|
|
|
$goods[$idx]['thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);
|
|
|
$goods[$idx]['goods_img'] = get_image_path($row['goods_id'], $row['goods_img']);
|
|
|
$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
|
|
|
|
|
|
$goods[$idx]['short_style_name'] = add_style($goods[$idx]['short_name'], $row['goods_name_style']);
|
|
|
$idx++;
|
|
|
}
|
|
|
|
|
|
return $goods;
|
|
|
}
|
|
|
|
|
|
function get_index_cat_brands( $cat, $num = 0, $app = "category" )
|
|
|
{
|
|
|
$where = "";
|
|
|
if ( $num != 0 )
|
|
|
{
|
|
|
$where = " limit ".$num;
|
|
|
}
|
|
|
$children = 0 < $cat ? " AND ".get_children( $cat ) : "";
|
|
|
$sql = "SELECT b.brand_id, b.brand_name, b.brand_logo, COUNT(g.goods_id) AS goods_num, IF(b.brand_logo > '', '1', '0') AS tag FROM ".$GLOBALS['ecs']->table( "brand" )."AS b, ".$GLOBALS['ecs']->table( "goods" )." AS g ".( "WHERE g.brand_id = b.brand_id ".$children." " )."GROUP BY b.brand_id HAVING goods_num > 0 ORDER BY tag DESC, b.sort_order ASC ".$where;
|
|
|
$row = $GLOBALS['db']->getAll( $sql );
|
|
|
foreach ( $row as $key => $val )
|
|
|
{
|
|
|
$row[$key]['id'] = $val['brand_id'];
|
|
|
$row[$key]['name'] = $val['brand_name'];
|
|
|
$row[$key]['logo'] = $val['brand_logo'];
|
|
|
$row[$key]['url'] = build_uri( $app, array(
|
|
|
"cid" => $cat,
|
|
|
"bid" => $val['brand_id']
|
|
|
), $val['brand_name'] );
|
|
|
}
|
|
|
return $row;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 獲得最新評論
|
|
|
*/
|
|
|
function get_comment_diy($type=0, $count=8,$cat=0)
|
|
|
{
|
|
|
if($cat!=0)
|
|
|
{
|
|
|
$children=' and '.get_children($cat);
|
|
|
}
|
|
|
|
|
|
$arr = array();
|
|
|
$sql = "select c.*, g.goods_id, g.goods_thumb, g.goods_name,g.shop_price,g.market_price from ".$GLOBALS['ecs']->table( "comment" )." AS c JOIN ".$GLOBALS['ecs']->table( "goods" )." AS g ON c.id_value = g.goods_id where c.comment_type = ".$type." and c.status=1 $children order by c.add_time desc limit ".$count;
|
|
|
$res = $GLOBALS['db']->getAll( $sql );
|
|
|
foreach ( $res as $idx => $row )
|
|
|
{
|
|
|
$arr[$idx]['id_value'] = $row['id_value'];
|
|
|
$arr[$idx]['content'] = $row['content'];
|
|
|
$arr[$idx]['comment_rank'] = $row['comment_rank'];
|
|
|
$arr[$idx]['time'] = local_date( "Y-m-d", $row['add_time'] );
|
|
|
$arr[$idx]['goods_id'] = $row['goods_id'];
|
|
|
$arr[$idx]['goods_name'] = $row['goods_name'];
|
|
|
$arr[$idx]['goods_thumb'] = get_image_path( $row['goods_id'], $row['goods_thumb'], TRUE );
|
|
|
$arr[$idx]['url'] = build_uri( "goods", array(
|
|
|
"gid" => $row['goods_id']
|
|
|
), $row['goods_name'] );
|
|
|
$arr[$idx]['user_name'] = substr($row['user_name'], 0, 2);
|
|
|
$arr[$idx]['user_name'] .= '***'.substr($row['user_name'], -1);
|
|
|
|
|
|
$arr[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($arr[$idx]['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $arr[$idx]['goods_name'];
|
|
|
$arr[$idx]['shop_price'] = price_format($row['shop_price']);
|
|
|
$arr[$idx]['market_price'] = price_format($row['market_price']);
|
|
|
$arr[$idx]['comment_rank2'] = $row['comment_rank']/5*100;
|
|
|
|
|
|
}
|
|
|
return $arr;
|
|
|
}
|
|
|
|
|
|
?>
|