ECSHOP首页显示最新订单交易滚动功能【ECSHOP二次开发】
2016-06-13 13:05 来源:www.chinab4c.com 作者:ecshop专家
我们想要显示的无非就是什么人在什么时间购买了什么东西,这样分析下来我们需要去从数据库读取出来这来信息。从网上找到ecshop的数据字典,看了看 和咱们相关的表有三个ecs_order_info,ecs_order_goods,ecs_users,分别存储了订单信息,订单对应的商品信息和购买商品的用户信息。这三个表同 user_id,order_id和goods_id三个key来联系,下面我们要写出sql语句从中取出我们需要的那些信息,sql语句如下: SELECT ecs_users.user_name, ecs_order_goods.goods_id, ecs_order_goods.goods_name, order_info.add_time FROM ecs_users, ( SELECT order_id, user_id, add_time FROM ecs_order_info ORDER BY ecs_order_info.add_time DESC LIMIT 0 , 20 ) AS order_info, ecs_order_goods WHERE order_info.order_id = ecs_order_goods.order_id AND order_info.user_id = ecs_users.user_id; 上面语句的意思从ecs_order_info里面提取前20个交易,然后根据order_id,goods_id和user_id的关联来获取用户名、商品名、商品id和订单时间。搞定了sql语句, 下面我们就要按照ecshop的模式来写个函数,这个函数从通过数据库获取sql语句的内容,然后把这个sql的record封装到一个array里面,传给smarty模板来使用。 下面给出代码,大家参考一下: /** * 调用获取最新购买者和物品檠? * * @access private * @return array */ function index_get_recent_buy_query() { $sql = 'SELECT ecs_users.user_name, ecs_order_goods.goods_id, ecs_order_goods.goods_name, ecs_order_info.add_time FROM ecs_users, ( SELECT order_id, user_id, add_time FROM ecs_order_info ORDER BY ecs_order_info.add_time DESC LIMIT 0 , 20 ) AS ecs_order_info, ecs_order_goods WHERE ecs_order_info.order_id = ecs_order_goods.order_id AND ecs_order_info.user_id = ecs_users.user_id;'; $all = $GLOBALS['db']->getAll($sql); $arr = array(); foreach ($all AS $idx => $row) { $arr[$idx]['username'] = $row['user_name']; $arr[$idx]['goodName'] = $row['goods_name']; $arr[$idx]['goodID'] = $row['goods_id']; $arr[$idx]['add_time'] = local_date( $GLOBALS['_CFG']['date_format'], $row['add_time']); } return $arr; } 上面代码使用了$GLOBALS['db']->getAll($sql);来获取数据库里面记录,这个db是在init.php里面系统初始化加载好的全局变量,他负责和数据库交互,获取 数据等功能。有时间我写几篇ecshop代码分析的文章,详细讲解一下ecshop的初始化过程,大家就可以了解ecshop高质量的代码了。下面的那个foreach做的而 工作其实就是把数据封装到array,smarty在模板处理时数组友好的。上面只是获取了array,下面的语句是赋值array到smarty模板” $smarty->assign('recent_buys', index_get_recent_buy_query());//获取最新的购买者信息 把这句话加到index.php的类似的地方就可以,基本上在80多行,ecshop集中模板赋值的地方。在面我们来看看赋过去的值smarty模板是怎么用的。 我们建立一个BusinessActivities.lbi来放我们的smarty模板内容。下面是代码:
-
{foreach from=$recent_buys item=buy_info}
- · {$buy_info.username} 在 {$buy_info.add_time} 买了 {$buy_info.goodName} {/foreach}
最近更新
常用插件
- ecshop快递发货单打印商品
ecshop快递发货单打印商品信息,大家都知道ecshop快递单打印的时候,只能...
- ecshop按分类筛选销售排行
ecshop按分类筛选销售排行...
- ecshop供应商插件免费下载
ecshop供应商插件免费下载...
- ecshop二次开发售后维修卡
插件介绍: 本插件是用于专门从事电子,信息,软件等售后服务关键比...
- ecshop选择下单时间插件
ecshop选择下单时间插件主要是根据不同的下单配送要求,在ecshop购物车...