团购列表功能优化仿聚美优品增加市场价、团购价、为您节省、倒计时等!

2016-07-07 15:11 来源:www.chinab4c.com 作者:ecshop专家



我在http://bbs.ecshop.com/thread-210120-1-1.html此贴曾经求助过此方法,结果运气很好,有一位高手加我无偿为我解决了此问题,非常感谢!经过我俩几天的调试,目前只有1个小问题,其它均完美实现。我整理了详细的教程,经过高手的同意,现在分享给大家,大家都装上后看一下是否都有我遇到的问题。先贴问题,再贴教程。

问题:在我本地和我的服务器上,都出现了团购价调用不出来的现象。而在那位高手兄弟的机子上却没有这个问题,这个问题我们搞了好几天都没解决。甚至他把他的网站程序备份后传给我安装,到我本地还是会出现此问题,奇了怪了。我对这个问题的看法是数据写不到数据库,可能是我俩的环境版本的问题。目前我的解决方法是去数据库字段里修改,没办法,手工修改。
QQ截图20120907225703.jpg
看,团购价格应该是50元,在我这就是出不来,一直显示的是市场价格。

教程,共5步

1,网站后台-数据库管理-SQL查询-执行sql语句:
ALTER TABLE `ecs_goods_activity` ADD `tuan_price` DECIMAL( 10, 2 ) UNSIGNED NOT NULL DEFAULT '0.00'

2,admin/templates/group_buy_info.htm
找到“<a href="javascript:;"><strong>[+]</strong></a>”注释掉。
找到<a href="javascript:;"><strong>[-]</strong></a> </td>
</tr>
{/if}
{/foreach}
在其下面添加
<tr>
<td class="label">团购价格:</td>
<td><input type="text" name="market_price" value="{$group_buy.market_price}" size="30" /> 该价格与价格阶梯价格相同,2个都不能少!</td>
</tr>

3,admin/group_buy.php
找到'ext_info'=> serialize(array(
在其上面一行添加
'tuan_price'=> $tuan_price,

4,themes/default/group_buy_list.dwt大约61行 添加
市场价格:{$group_buy.shop_price1}<br />
团购价格:{$group_buy.tuan_price1}<br />
为您节省:{$group_buy.js}<br />
折扣:{$group_buy.zk}<br />
倒计时:<font id="timeszc{$group_buy.i}" color="#717171"size="2"></font><br />
例:我的是在“{$lang.gb_price_ladder}<br />”上一行添加的

搜索</body>,在其上面一行添加:
<SCRIPT LANGUAGE="JavaScript">
<!-- {foreach from=$gb_list item=val} -->
function _fresh{$val.i}()
{
var endtime{$val.i}=new Date("{$val.end_timeno}");
var nowtime = new Date();
var leftsecond=parseInt((endtime{$val.i}.getTime()-nowtime.getTime())/1000);
__d=parseInt(leftsecond/3600/24);
__h=parseInt((leftsecond/3600)%24);
__m=parseInt((leftsecond/60)%60);
__s=parseInt(leftsecond%60);
var c=new Date();
var q=((c.getMilliseconds())%10);
if(leftsecond<=0){
document.getElementById("timeszc{$val.i}").innerHTML="促销已结束";
clearInterval(sh{$val.i});
}
else
{
if (__h<10) {__h="0"+__h}
//分数取两位,不足补0
if (__m<10) {__m="0"+__m}
//秒数取两位,不足补0
if (__s<10) {__s="0"+__s}

  document.getElementById("timeszc{$val.i}").innerHTML=__d+" 天"+__h+" 时"+__m+" 分"+__s+" 秒";
}
}
_fresh{$val.i}()
var sh{$val.i};
sh{$val.i}=setInterval(_fresh{$val.i},100);
<!--{/foreach}-->
</SCRIPT>

5,根目录/group_buy.php
找到function group_buy_list($size, $page)
下面全部替换
{
/* 取得团购活动 */
$gb_list = array();
$now = gmtime();
$sql = "SELECT b.*, IFNULL(g.goods_thumb, '') AS goods_thumb, b.tuan_price, b.act_id AS group_buy_id, g.shop_price,".
"b.start_time AS start_date, b.end_time AS end_date " .
"FROM " . $GLOBALS['ecs']->table('goods_activity') . " AS b " .
"LEFT JOIN " . $GLOBALS['ecs']->table('goods') . " AS g ON b.goods_id = g.goods_id " .
"WHERE b.act_type = '" . GAT_GROUP_BUY . "' " .
"AND b.start_time <= '$now' AND b.is_finished < 3 ORDER BY b.act_id DESC";
$res = $GLOBALS['db']->selectLimit($sql, $size, ($page - 1) * $size);

$i = 1;
while ($group_buy = $GLOBALS['db']->fetchRow($res))
{
$ext_info = unserialize($group_buy['ext_info']);
$group_buy = array_merge($group_buy, $ext_info);
/* 格式化时间 */
$group_buy['i'] = $i ++;
$group_buy['formated_start_date']= local_date($GLOBALS['_CFG']['time_format'], $group_buy['start_date']);
$group_buy['formated_end_date']= local_date($GLOBALS['_CFG']['time_format'], $group_buy['end_date']);

$group_buy['end_timeno']= local_date('Y/m/d H:i:s', $group_buy['end_date']);
/* 格式化保证金 */
$group_buy['formated_deposit'] = price_format($group_buy['deposit'], false);
$group_buy['shop_price1'] = price_format($group_buy['shop_price'], false);
if ( $group_buy['tuan_price'] == 0)
{
$group_buy['tuan_price1'] = $group_buy['shop_price1'];
$group_buy['js'] = 0;
$group_buy['zk'] = 1;
}
else
{
$group_buy['tuan_price1'] = price_format($group_buy['tuan_price'], false);
$group_buy['tuan_price'] = $group_buy['tuan_price'];
$group_buy['js'] = $group_buy['shop_price']-$group_buy['tuan_price'];
$group_buy['zk'] = round(($group_buy['tuan_price']/$group_buy['shop_price'])*10 ,2);
}

/* 处理价格阶梯 */
$price_ladder = $group_buy['price_ladder'];
if (!is_array($price_ladder) || empty($price_ladder))
{
$price_ladder = array(array('amount' => 0, 'price' => 0));
}
else
{
foreach ($price_ladder as $key => $amount_price)
{
$price_ladder[$key]['formated_price'] = price_format($amount_price['price']);
}
}
$group_buy['price_ladder'] = $price_ladder;
/* 处理图片 */
if (empty($group_buy['goods_thumb']))
{
$group_buy['goods_thumb'] = get_image_path($group_buy['goods_id'], $group_buy['goods_thumb'], true);
}
/* 处理链接 */
$group_buy['url'] = build_uri('group_buy', array('gbid'=>$group_buy['group_buy_id']));
/* 加入数组 */
$gb_list[] = $group_buy;
}
return $gb_list;
}
?>


或者下载下面的文件直接覆盖
tuangou.rar (14.81 KB)


声明:大家有没有遇到问题都贴出来啊,一起交流一起成长!

回答:


http://bbs.ecshop.com/thread-224616-1-1.html

来,哪位高手把我这个问题也给报销了!

没办法啊,一切以用户体验为主啊!

我当初也是这个意思 我是想把团购那个直接改成促销,不需要团购,没有人数限制,就向聚美优品那样

楼主很不错啊

我是打酱油的,努力升级

顶起来!!!

看的人多 回复的人少啊!

这不挺好的吗?别改了。

按照步骤 也是这个问题 请问楼主怎么解决啊?

我的也是啊。按照步骤 可是团购价格那里还是不能显示自己添加的价格出来。是不是因为我把表名修改过所以才出不来呢

在admin/templates/group_buy_info.htm这里的
团购价格: <td><input type="text" name="market_price" value="{$group_buy.market_price}" size="30" /> 该价格与价格阶梯价格相同,2个都不能少!</td>
要把红色的那两个改成tuan_price

不错,支持了

高手啊