ecshop自带函数就可以实现这个功能,函数如下:
include/lib_goods.php
中的 get_category_recommend_goods($type = '', $cats = '', $brand = 0, $min =0, $max = 0, $ext='')
函数。
调用步骤:
第一步:在根目录 index.php
文件 $smarty->assign('shop_notice', $_CFG['shop_notice']); // 商店公告
下方(约128行),插入如下代码:
$smarty->assign('category_recommend_goods22', get_category_recommend_goods('hot',22)); //调用指定分类下推荐商品
其中 category_recommend_goods22
为在模板中调用的名称,hot
为要调用的推荐类型,22 为指定分类的分类id。
第二步:打开你的首页模板文件,在需要调用的地方插入下边代码:
<!--{foreach from=$category_recommend_goods22 item=goods name="category_recommend_goods"}-->
<!-- {if $smarty.foreach.category_recommend_goods.iteration < 7} **商品显示数量 -->
<li><a href="{$goods.url}"><img src="{$goods.thumb}" width="194" height="172" /></a><div><br />
<a href="{$goods.url}">{$goods.name|truncate:10:"...":true}</a><br />{$goods.brief}<br />
¥{$goods.shop_price}</div>
</li>
<!--{/if}-->
<!--{/foreach}-->
完成上边两部基本上就大功告成了,但是有个问题,就是不能获取到该指定分类的子分类下的推荐商品,这样就需要对默认的函数进行改造,方法见第三步。
第三步:找到第一步用到的函数 get_category_recommend_goods
,查找
if (!empty($cats))
{
$sql .= " AND (" . $cats . " OR " . get_extension_goods($cats) .")";
}
替换为:
if (!empty($cats))
{
//获取指定分类的所有子分类id cjm 20141111
$cat_tree = get_children($cats);
$sql .= " AND (".$cat_tree." OR " . get_extension_goods($cats) .")";
}
通过以上三步,就是可以实现在首页调用任意分类下的推荐商品了。