在ecshop后台商品编辑的页面,有段这样的代码。
<tr>
<td class=”label”>{$lang.lab_other_cat}</td>
<td>
<input type=”button” value=”{$lang.add}” onclick=”addOtherCat(this.parentNode)” class=”button” />
{foreach from=$goods.other_cat item=cat_id}
<select name=”other_cat[]”><option value=”0″>{$lang.select_please}</option>{$other_cat_list.$cat_id}</select>
{/foreach}
</td>
</tr>
这里就是通过这个按扭,可以调用出相关的ecshop扩展分类。
1:ecshop商品扩展分类存放的数据库和操作程序是什么样子的。
首先我们看ecshop后台商品管理的程序goods.php。里面有段代码
if (isset($_POST[‘other_cat’]))
{
handle_other_cat($goods_id, array_unique($_POST[‘other_cat’]));
}
这个就是处理商品扩展分类的。
2:我们分析ecshop处理商品扩展分类的具体操作。
handle_other_cat这个函数。有以下代码
/* 查询现有的扩展分类 */
$sql = “SELECT cat_id FROM ” . $GLOBALS[‘ecs’]->table(‘goods_cat’) .
” WHERE goods_id = ‘$goods_id'”;
$exist_list = $GLOBALS[‘db’]->getCol($sql);
通过这个我们看的很清楚,ecshop的商品扩展分类是放在ecshop数据库goods_cat表里面的。当录入某个商品的时候,如果存在扩展分类。那么就通过商品的ID对应将ECSHOP商品扩展分类录入到这个里面。完成了ECSHOP商品扩展分类的录入。
3:如何调用ECSHOP商品扩展分类。
我们看到ecshop商品分类页面,存在这样的代码,来调用ecshop分类下和扩展分类下的商品。
$display = $GLOBALS[‘display’];
$where = “g.is_on_sale = 1 AND g.is_alone_sale = 1 AND “.
“g.is_delete = 0 AND ($children OR ” . get_extension_goods($children) . ‘)’;
而且这个里面调用的以下函数就是来取ecshop商品扩展分类下的商品的。
function get_extension_goods($cats)
{
$extension_goods_array = ”;
$sql = ‘SELECT goods_id FROM ‘ . $GLOBALS[‘ecs’]->table(‘goods_cat’) . ” AS g WHERE $cats”;
$extension_goods_array = $GLOBALS[‘db’]->getCol($sql);
return db_create_in($extension_goods_array, ‘g.goods_id’);
}
这样操作,最后就在商品列表的时候。将该商品分类下商品和扩展分类下的商品。都取得了。综合显示。就可以达到ecshop商品扩展分类的目的。
评论回复