Notice: register_sidebar的调用方法不正确。“边栏1”侧边栏的参数数组中未设置id,缺省为“sidebar-1”。要消除此通知并保持现有的侧边栏内容,请手动将id设置为“sidebar-1”。 请查阅调试WordPress来获取更多信息。 (这个消息是在4.2.0版本添加的。) in /data/htdocs/seven2_blog/wp-includes/functions.php on line 3853
让你的 ECShop 新增收藏商品排行榜功能 | Seventwo Blog
Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /data/htdocs/seven2_blog/wp-includes/plugin.php on line 601

让你的 ECShop 新增收藏商品排行榜功能

2010-09-09 | 分类: ECShop
前段时间在淘宝看到收藏排行榜的功能,说实话的我很少去逛淘宝店的,至于它这个功能什么时候的也我不清楚。但本人这个功能也不错,可以让浏览者更容易关注商品和被关注商品的热度也可以促进销售。自己也想想在 ECShop 做了这个功能也不错,好的,有了想法就应该付偖行动。
前面说哪么费话都是想把广告位旁边的空白满,这样更便于大家看以下的代码。

关于这个函数的说明:
这个函数可以放在 /includes/lib_goods.php 或 /includes/lib_main.php 文件中,本人更喜欢放在前者。

关于这个函数的默认值:
时间:三个月(收藏商品统计时间);
获取数据的条数:5条;
如果这两个在后台修改的话,可自行在 ECShop 后台 ‘商店设置’ =》 ‘显示设置’中添加这个两选项。
/**
 * 收藏商品排行榜
 * @author  Seven2
 * @license http://www.seven2.com.cn/archives/793/
 * @version v.10
 * @since   2010-08-19
 * @access  public
 * @return  array
 */
function get_collect_goods()
{

    switch ($GLOBALS['_CFG']['collect_time'])
    {
        case 1: // 一年
            $base_where = '`c`.`add_time` >= "' . (gmtime() - 365 * 86400) . '" ';
            break;

        case 2: // 半年
            $base_where = '`c`.`add_time` >= "' . (gmtime() - 180 * 86400) . '" ';
            break;

        case 3: // 三个月
            $base_where = '`c`.`add_time` >= "' . (gmtime() - 90 * 86400) . '" ';
            break;

        case 4: // 一个月
            $base_where = '`c`.`add_time` >= "' . (gmtime() - 30 * 86400) . '" ';
            break;

        default:
            $base_where = '`c`.`add_time` >= "' . (gmtime() - 90 * 86400) . '" ';
    } 

    $row       = array();
    $arr       = array();
    $limit_num = isset($GLOBALS['_CFG']['collect_number']) ? (int) $GLOBALS['_CFG']['collect_number'] : 5;
    $sql = 'SELECT `c`.`goods_id`, COUNT(`c`.`goods_id`) AS `total`, `g`.`cat_id`, ' .
           '`g`.`goods_name`, `g`.`shop_price`, `g`.`goods_thumb` FROM ' .
           $GLOBALS['ecs']->table('collect_goods') . ' AS `c` LEFT JOIN ' .
           $GLOBALS['ecs']->table('goods') . ' AS `g` ON `c`.`goods_id` = `g`.`goods_id` ' .
           'WHERE ' . $base_where . 'AND `g`.`is_on_sale` = "1" AND ' .
           '`g`.`is_alone_sale` = "1" AND `g`.`is_delete` = "0" GROUP BY `c`.`goods_id` ' .
           'ORDER BY `total` DESC LIMIT ' .  $limit_num; 

    $res = $GLOBALS['db']->query($sql);
    while ($row = $GLOBALS['db']->fetchRow($res))
    {
        $arr[$row['goods_id']]['goods_id']          = $row['goods_id'];
        $arr[$row['goods_id']]['total']             = $row['total'];
        $arr[$row['goods_id']]['goods_name']        = $row['goods_name'];
        $arr[$row['goods_id']]['shop_price']        = $row['shop_price'];
        $arr[$row['goods_id']]['format_shop_price'] = price_format($row['shop_price']);
        $arr[$row['goods_id']]['goods_thumb']       = $row['goods_thumb'];
        $arr[$row['goods_id']]['url']               = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
    }

    return $arr;
}

本文首发于:http://www.seven2.com.cn/archives/793/

标签: