ecshop商品扩展分类原理分析

2011-11-03 22:31 来源:www.chinab4c.com 作者:ecshop专家

     ecshop商品扩展分类原理分析,这个文章主要是讲述ecshop的商品里面。为了可以一个商品在多个分类里面出现。我们可以在录入ecshop的时候对ecshop进行分类扩展。这就方便很多商品在不同的分类或者在相关分类里面得到暴光的机会。这就是ecshop商品分类的作用。

    在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商品扩展分类的目的。

   来源:http://www.chinab4c.com