ECShop网店系统技术交流论坛's Archiver

qboyang 发表于 2010-3-11 22:17

最新-首页特价促销商品显示剩余时间倒计时效果

声明:本帖是在以下帖子基础上做的简单完善:
[url=http://bbs.ecshop.com/viewthread.php?tid=106937&extra=&highlight=%B4%D9%CF%FA&page=1]http://bbs.ecshop.com/viewthread.php?tid=106937&extra=&highlight=%B4%D9%CF%FA&page=1[/url]

如有不当之处,请跟帖留言,欢饮拍砖。


看到不少朋友在找首页特价商品倒计时的修改方法,写了这篇文章希望能帮到有此需要的朋友们
[img]http://bbs.ecshop.com/images/default/attachimg.gif[/img] [img]http://bbs.ecshop.com/attachment.php?aid=30362&k=3e31f00266f180a434b2a56d409bc54c&t=1268315499&noupdate=yes&sid=3705BO%2BVRnGwOFsT4jyLlQLa5Nukoy84EyRlUjtPEOFit5Q[/img]
[url=http://bbs.ecshop.com/attachment.php?aid=30362&k=3e31f00266f180a434b2a56d409bc54c&t=1268315499&nothumb=yes&sid=3705BO%2BVRnGwOFsT4jyLlQLa5Nukoy84EyRlUjtPEOFit5Q][b]下载[/b][/url] (78.16 KB)
2009-11-17 18:12


1、首先修改程序部分
打开includes/lib_goods.php
找到get_promote_goods()函数部分

[list=1][*]$goods[$idx]['url']          = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);[/list]
[size=2][color=#0099cc]复制代码[/color][/size]
[color=red](注:这里一定要谨慎,一定要找准位置,很多同志都是绊倒在这里的,如果你没修改过这个文件的话,大概是在394行的位置,找错了就出不来了)[/color]
下面增加代码
[list=1][*]/* [b][color=#ff0000]促销[/color][/b]时间倒计时 */[*]        $time = gmtime();[*]        if ($time >= $row['promote_start_date'] && $time <= $row['promote_end_date'])[*]        {[*]             $goods[$idx]['gmt_end_time']  = local_date('M d, Y H:i:s',$row['promote_end_date']);[*]        }[*]        else[*]        {[*]            $goods[$idx]['gmt_end_time'] = 0;[*]        }[/list]
[size=2][color=#0099cc]复制代码[/color][/size]
2、
然后将 library/recommend_promotion.lbi
全部替换为下面代码:
[list=1][*]<meta http-equiv="Content-Type" content="text/html; charset=gbk">[*]<!-- {if $promotion_goods} -->[*]<script >[*]var Tday = new Array();[*]var daysms = 24 * 60 * 60 * 1000[*]var hoursms = 60 * 60 * 1000[*]var Secondms = 60 * 1000[*]var microsecond = 1000[*]var DifferHour = -1[*]var DifferMinute = -1[*]var DifferSecond = -1[*]function clock(key)[*]  {[*]   var time = new Date()[*]   var hour = time.getHours()[*]   var minute = time.getMinutes()[*]   var second = time.getSeconds()[*]   var timevalue = ""+((hour > 12) ? hour-12:hour)[*]   timevalue +=((minute < 10) ? ":0":":")+minute[*]   timevalue +=((second < 10) ? ":0":":")+second[*]   timevalue +=((hour >12 ) ? " PM":" AM")[*]   var convertHour = DifferHour[*]   var convertMinute = DifferMinute[*]   var convertSecond = DifferSecond[*]   var Diffms = Tday[key].getTime() - time.getTime()[*]   DifferHour = Math.floor(Diffms / daysms)[*]   Diffms -= DifferHour * daysms[*]   DifferMinute = Math.floor(Diffms / hoursms)[*]   Diffms -= DifferMinute * hoursms[*]   DifferSecond = Math.floor(Diffms / Secondms)[*]   Diffms -= DifferSecond * Secondms[*]   var dSecs = Math.floor(Diffms / microsecond)[*][*]   if(convertHour != DifferHour) a="<font color=red>"+DifferHour+"</font>天";[*]   if(convertMinute != DifferMinute) b="<font color=red>"+DifferMinute+"</font>时";[*]   if(convertSecond != DifferSecond) c="<font color=red>"+DifferSecond+"</font>分"[*]     d="<font color=red>"+dSecs+"</font>秒"[*]     if (DifferHour>0) {a=a}[*]     else {a=''}[*]   document.getElementById("leftTime"+key).innerHTML = a + b + c + d; //显示倒计时信息[*][*]  }[*]</script>[*]<div id="sales" class="f_l clearfix">[*]      <h1><a href="../search.php?intro=promotion"><img src="images/more.gif" /></a></h1>[*]       <div class="clearfix goodBox">[*]         <!--{foreach from=$promotion_goods key=key item=goods name="promotion_foreach"}-->[*]         {if $smarty.foreach.promotion_foreach.index <= 3}[*]           <div class="goodList">[*]           <a href="{$goods.url}"><img src="{$goods.thumb}" border="0" alt="{$goods.name|escape:html}"/></a><br />[*]      <p><a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name|escape:html}</a></p>[*]           {$lang.promote_price}<font class="f1">{$goods.promote_price}</font><br><font class="f4" id="leftTime{$key}">{$lang.please_waiting}</font>[*]           </div>[*]         {/if}[*]<script>[*]Tday[{$key}] = new Date("{$goods.gmt_end_time}");[*]window.setInterval(function()[*]{clock({$key});}, 1000);[*]</script>[*]         <!--{/foreach}-->[*]       </div>[*]      </div>[*][*]<!-- {/if} -->[/list]
[size=2][color=#0099cc]复制代码[/color][/size]
以上方法是在官方默认模板下实现的,如果你的是其他模板,有选择的把里面的一些代码挑出来增加(或修改)到你的recommend_promotion.lbi里即可。

由于经常会修改错,本人折腾了两个小时后,搞定,请下载以下文件,按照上述要求,直接覆盖相应文件既可;

panfeng 发表于 2010-5-7 01:33

改完效果不对,请帮忙,谢谢  [url]http://www.xsp8.com/[/url]

panfeng 发表于 2010-5-7 01:34

2.7.1,UTF-8,是不是不能直接上传?

wudaoshop 发表于 2010-5-8 18:17

这个功能还不错,有空了给加上。。

bmzm8361 发表于 2010-5-28 16:41

声明:本帖是在以下帖子基础上做的简单完善:
[url]http://bbs.ecshop.com/viewthread.php?tid=106937&extra=&highlight=%B4%D9%CF%FA&page=1[/url]


请问你的这个 和之前的完善了哪里 ??、

itbenson 发表于 2010-6-1 18:05

收藏了!谢谢··

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.