① ecshop如何调用优惠活动产品的介绍跪求。。。。。
修改 includes/lib_goods.php 文件,找到 get_recommend_goods 函数部分
修改下面代码
$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.goods_desc, 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, g.goods_img, RAND() AS rnd " .
'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]' ";
$type_merge = array_merge($type_array['new'], $type_array['best'], $type_array['hot']);
$type_merge = array_unique($type_merge);
$sql .= ' WHERE g.goods_id ' . db_create_in($type_merge);
$sql .= ' ORDER BY g.sort_order, g.last_update DESC';
$result = $GLOBALS['db']->getAll($sql);
foreach ($result AS $idx => $row)
{
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]['goods_desc'] = sub_str(strip_tags($row['goods_desc']), 50);
$goods[$idx]['brief'] = $row['goods_brief'];
$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';
$goods[$idx]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']);
......................
接下来就是在
/themes/default/library/recommend_best.lbi
/themes/default/library/recommend_hot.lbi
/themes/default/library/recommend_new.lbi
几个文件中的调用了。。
这么调用 {$goods.goods_desc}
主要调用代码 要放在循环里面
② ecshop怎么弄满减促销
1 后台促销管理-优惠活动,添加优惠活动
2,进入之后如下图
设置以上内容,金额就是可以享受折扣的范围,优惠方式就是减免多少元
③ ecshop的限时促销怎么使用
您好,您可以进入后台=》商品管理=》商品列表,编辑要限时促销的商品,添加促销价和修改促销日期,点击“确定”即可。
④ 如何在ecshop的促销商品下显示时间
在ECSHOP首页的促销商品是没有读取促销时间段的,
需要二次开发才能实现“在ECSHOP首页的促销商品下显示促销时间”
下面就来告诉你具体的解决办法:
修改方法:
打开 /includs/lib_goods.php文件
找到 function get_promote_goods($cats = '') 函数部分
在
$goods[$idx]['name'] = $row['goods_name'];
下边增加两行代码
$goods[$idx]['promote_start_date'] = local_date($GLOBALS['_CFG']['date_format'], $row['promote_start_date'] );
$goods[$idx]['promote_end_date'] = local_date($GLOBALS['_CFG']['date_format'], $row['promote_end_date'] );
注意千万别加错位置哦,加错了位置我可不负责任哦。
进行上面程序文件的修改以后,下面我们就可以在ecshop模板文件中调用 促销开始时间 和 促销结束时间了。
调用方法为:
打开 /themes/模板文件夹/library/recommend_promotion.lbi
在 foreach 循环里的适当位置调用如下标签即可:
开始时间:{$goods.promote_start_date}
结束时间:{$goods.promote_end_date}
⑤ ecshop首页如何调用指定分类下的推荐热销最新商品
其实这个在ecshop中预留这个函数,不知道是不是开发者特意留下,但不想让所有人知道而已,函数在includes/lib_goods.php里面。
下面开始教你如何添加指定分类的下热销产品:
1.在首页index.php中找到
1
/* 页面中的动态内容 */
2
assign_dynamic('index');
2.在上面添加如下代码
1
$children = get_children(1);
2
$smarty->assign('index_hot_goods_1', get_category_recommend_goods("hot", $children)); // 热销商品
其中分类编号1,根据你想调用分类而填写
如果是最新产品就再加上
1
$children = get_children(1);
2
$smarty->assign('index_new_goods_1', get_category_recommend_goods("new", $children)); // 最新商品
若果是精品产品
1
$children = get_children(1);
2
$smarty->assign('index_best_goods_1', get_category_recommend_goods("best", $children)); // 精品商品
3.然后再模板库文件中新建index_hot_goods_1.lbi。文件内容如下:
1
<!--{foreach from=$index_hot_goods_1 item=goods}-->
2
<li><a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}" class="goodsimg" border="0" width="160" height="200" /></a>
3
<h1><a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name|escape:html}</a></h1>
4
<!-- {if $goods.promote_price neq ""} -->
5
<span>一口价 <b>{$goods.promote_price}</b></span>
6
<!-- {else}-->
7
<span>一口价 <b>{$goods.shop_price}</b></span>
8
<!--{/if}-->
9
</li>
10
<!--{/foreach}-->
4.然后在首页模板index.dwt中调用index_hot_goods_1.lbi。
1
<!-- #BeginLibraryItem "/library/index_hot_goods_19.lbi" --><!-- #EndLibraryItem -->
5.如果有多个分类要调用,可以重复1-3的步骤
至于每个调用的商品的数量 ,在后台》》模板设置》》
⑥ ecshop首页怎样可以显示所有促销商品
二)、首页限时抢购调用以及剩余时间显示
1、首先修改程序部分
打开includes/lib_goods.php
找到get_promote_goods()函数部分
在 $goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
下面增加代码
$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;
}
2、
然后将 library/recommend_promotion.lbi
全部替换为下面代码:
<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"}-->
<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>
<script>
Tday[{$key}] = new Date("{$goods.gmt_end_time}");
window.setInterval(function()
{clock({$key});}, 1000);
</script>
<!--{/foreach}-->
</div>
</div>
<!-- {/if} -->
这是我自己整理的促销调用,有倒计时功能的,如果不需要就删了那段代码就可以了。
⑦ ecshop如何调用所有商品
打开themes/我的模板名称/library/category_tree.lbi
找到这个 <!--{foreach from=$categories item=cat}-->
替换成 <!--{foreach from=get_categories_tree() item=cat}-->
就可以了
⑧ Ecshop后台促销、优惠日期无法选择
修改前请先备份:
languages\语言样式\calendar.php中的
$_LANG['calendar_lang']['calendar_time'] = "'T';
改为:
$_LANG['calendar_lang']['calendar_time'] = 'T';
⑨ ecshop 促销商品怎么做一个倒计时效果,js还是ecshop就有这个功能,怎么调用
给促销商品添加倒计时效果,
第一步 在模板文件中有个php文件夹,打开init.php文件,搜索get_advlist要sql后追加,意思就是在$sql = "select ap.ad_width,ap.ad_height,ad.ad_id,ad.ad_name,ad.ad_code,后面添加搜索字段ad.start_time,ad.end_time,如果存在该字段,就不需要再添加了。
第二步 然后在$arr[$row['ad_id']]['name'] = $row['ad_name'];后添加
$time = gmtime();
if ($time >= $row['start_time'] && $time <= $row['end_time'])
{
$arr[$row['ad_id']]['etime'] = local_date('M d, Y H:i:s',$row['end_time']);
}
else
{
$arr[$row['ad_id']]['etime'] = 0;
}
第三步
<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,num)
{
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=#666>"+DifferHour+"</font>天";
if(convertMinute != DifferMinute) b="<font color=#666>"+DifferMinute+"</font>时";
if(convertSecond != DifferSecond) c="<font color=#666>"+DifferSecond+"</font>分"
d="<font color=#666>"+dSecs+"</font>秒"
if (DifferHour>0) {a=a}
else {a=''}
document.getElementById("leftTime"+num+key).innerHTML = a + b + c + d; //显示倒计时信息
}
</script>
<!--{foreach from=$goods_list item=goods name=name key=key}-->
<!-- {if $smarty.foreach.name.iteration < 2} -->
<div class="tab-pannel">
<h6 style="visibility: visible;" class="countDownWrapper J_countDownWrapper">离结束仅剩:<span class="J_countDown countDown" id="leftTime1{$key}"></span></h6>
<h5 class="slideTitle">{$goods.goods_name}</h5>
<h6 class="slideSubTitle" style="height:36px; overflow:hidden;"><span class="greenTip">{$goods.goods_brief}</span></h6>
<a href="pro_goods.php?id={$goods.goods_id}" style="width:290px; height:220px; overflow:hidden;"><img src="{$goods.goods_img}" width="220" height="220" style="margin-left:35px;" ></a>
</div>
<script>
Tday[{$key}] = new Date("{$ad.etime}");
window.setInterval(function()
{clock({$key},1);}, 1000);
</script>
<!--{/if}-->
<!--{/foreach}-->
代码参考,样式自行定义
⑩ 如何在ecshop首页调用指定分类的热销,推荐,新
找到ecshop的includes/lib_goods.php,
把SQL语句改一下,与category表关联即可
将
$sql = 'SELECT g.goods_id,g.goods_name, g.goods_name_style,
g.market_price, g.shop_price AS org_price, g.promote_price, ' .
修改为
$sql = 'SELECT g.goods_id,g.cat_id,c.parent_id,g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ' .
继续找到
'LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON b.brand_id = g.brand_id ' .
在它下面加一句
'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS c ON c.cat_id = g.cat_id ' .
然后将
if (!empty($cats))
{
$sql .= " AND (" . $cats . " OR " . get_extension_goods($cats) .")";
}
改为
if (!empty($cats))
{
$sql .= " AND (c.parent_id =" . $cats. " OR " . get_extension_goods($cats) .")";
}
这个是和分类表建立关联,调出商品所在分类的上级分类
然后在index.php中增加下面代码
$smarty->assign('chot_goods_35', get_category_recommend_goods('hot','35')); //指定分类下的热销商品
注意这个35是一级分类的ID,然后在模板中调用即可
<!--{foreach from=$chot_goods_35 item=goods}-->
<div style="padding-top: 8px;" class="new-tr">
<a target="_blank" href="{$goods.url}"><img width="116" height="130" border="0" alt="{$goods.name|escape:html}" src="{$goods.thumb}"></a>
<div>
<a target="_blank" href="{$goods.url}">{$goods.name|escape:html}</a><br>
<span style="color: rgb(102, 102, 102); text-decoration: line-through;">市场价:{$goods.market_price}</span><br>
特卖价:<span style="color: rgb(255, 0, 0);">{$goods.shop_price}</span><br>
<span class="font-gmm"><a href="javascript:addToCart({$goods.id})">立即抢购</a></span>
</div>
<span class="new-line"></span>
</div>
<!--{/foreach}-->
同理,新品,推荐都可以调,只要把hot改为new 或者best就可以了