一、ecshop调用指定的广告位的方法,在include/lib_goods.php文件下面新增(第一種方法):
function getads($cat,$num)
{
$time = gmtime();
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('ad') . " where position_id=".$cat." and start_time <= '" . $time . "' AND end_time >= '" . $time . "' ORDER BY ad_id desc limit ".$num;
$res = $GLOBALS['db']->getAll($sql);
$arr = array();
foreach ($res AS $idx => $row)
{
$arr[$idx]['id'] = $row['ad_id'];
$arr[$idx]['title'] = $row['ad_name'];
$arr[$idx]['ad_link'] = $row['ad_link'];
$arr[$idx]['ad_code'] = "data/afficheimg/".$row['ad_code'];
}
return $arr;
}
二、然后再指定的位置的控制页面增加:
例如首页调用,我们在index.php页面增加
找到:$smarty->assign('promotion_goods', get_promote_goods()); // 特价商品
在他下面添加
$smarty->assign("banner",getads(1,4));
其中:1表示广告位置的id,4表示调用的数量。
打开 模板文件index.dwt,在指定位置调用即可。
<!--{foreach from=$banner name=ban item=banner}-->
<li><a href="{$banner.ad_link}"><img src="{$banner.ad_code}"></a></li>
<!--{/foreach}-->
三、這個是第二種方法,建議用這個方法:
想在哪裏添加廣告就在那裏放入:{insert name='ads' id=2 num=1}
id值表达广告位置的id。num表示数量
如果后台添加廣告后,模板不顯示有以下這些原因:
ecshop前台页面广告位不显示不外乎以下几种情况,一一检查,一般都可以解决。
1.检查一下后台的广告位的时间是否到期了,如果到期之后,广告位的图片就不会显示。
修改方式:进入ecshop后台->广告列表->编辑,把广告位的结束日期定在今日之后,刷新前台页面就可以显示出广告位了,ps:不显示的话,就清空一下缓存在刷新页面。
2.确定你上传的图片名称,是不是英文加数字,因为某些服务器不读取中文,所以先确定是不是这个原因
3.确定你上传的图片格式有没有问题,上传图片必须是jpg或者gif或者png,推荐jpg与gif。如果是jpg,确定格式不是cmyk格式,必须是jpg格式。 如果还是不行可以从网上随便下载一个图片上传,来确定排除图片格式问题。
4.确定你有在后台 模板管理-设置模板 调用,因为你加了广告与广告位,结果在设置模板中没有调用,那么还是不行的。
來源參考:http://www.moke8.com/article-14316-1.html
http://blog.csdn.net/u013785779/article/details/19965279