您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop首页怎么滚动显示最新订单
韦烽凌2023-12-12Ecshop商城教程已有人查阅
导读ecshop添 加新功能我感觉无外乎就是两个地方的修改,显示的要修改模板,为了方便下次升级,很好都做成lbi,下次升级了直接把lbi拷进去
ecshop添 加新功能我感觉无外乎就是两个地方的修改,显示的要修改模板,为了方便下次升级,很好都做成lbi,下次升级了直接把lbi拷进去, 然后稍微修改一下dwt的模板就行了。而对于程序部分的修改,我建议做一个自己的目录,比如dev,然后把自己加的每个功能做成一个php文件放到 dev目录里面,在需要的时候在原来的ecshop的php里面include或者require进来就行了。这样下次系统升级目录一拷,然后在该 include的地方include 一下就ok了,省时省心。当然,我个人建议你维护一个表,用来保存你都在哪些地方做过哪些修改,以方便下次升级的使用。下面我从模板和程序两个 方面说一下需要修改什么地方。
一、程序层面修改
我们想要显示的无非就是什么人在什么时间购买了什么东西,这样分析下来我们需要去从数据库读取出来这来信息。 从网上找到ecshop的数据字典,看了看 和咱们相关的表有三个ecs_order_info,ecs_order_goods,ecs_users,分别存储了订单信息,订单对应的商品信息和购 买商品的用户信息。这三个表同 user_id,order_id和goods_id三个key来联系,下面我们要写出sql语句从中取出我们需要的那些信息,sql语句如下:
//获取很新的购买者信息
$smarty->assign('recent_buys', index_get_recent_buy_query());
把这句话加到index.php的类似的地方就可以,基本上在80多行,ecshop集中模板赋值的地方。在面我们来看看赋过去的值smarty模板是怎么用的。
二、模板层面的修改
我们建立一个BusinessActivities.lbi来放我们的smarty模板内容。下面是代码,看完代码我来分析:
下面你在你需要显示的地方加入 就可以显示了。
提示:sql调用的时候一定要注意表名要换成你自己的表名
一、程序层面修改
我们想要显示的无非就是什么人在什么时间购买了什么东西,这样分析下来我们需要去从数据库读取出来这来信息。 从网上找到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, 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;';
$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模板内容。下面是代码,看完代码我来分析:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--{if $invoice_list}-->
<style type="text/css">
.boxCenterList form{display:inline;}
.boxCenterList form a{color:#404040; text-decoration:underline;}
</style>
<div class="box">
<div class="box_1">
<h3><span>{$lang.sale_activities}</span></h3>
<div class="boxCenterList">
<MARQUEE onmouseover=this.stop() onmouseout=this.start()
scrollAmount=1 direction=up height=155px>
<!-- 发货单查询{foreach from=$recent_buys item=buy_info} -->
<image src='images/speaker.gif'> {$buy_info.username} 在 {$buy_info.add_time} 买了
<a href='goods.php?id={$buy_info.goodID}'> {$buy_info.goodName}</a><br>
<div class="blank"></div>
<!-- 结束发货单查询{/foreach}-->
</MARQUEE>
</div>
</div>
</div>
<div class="blank5"></div>
<!-- {/if} -->
大家注意看上面的是来说明你的模板内容基本信息的,我这里是utf8,如果你是gbk,要改成gbk哦。 是和我们上面php程序里面的$smarty->assign(’recent_buys’, index_get_recent_buy_query())对应的,若果你给recent_buys赋值, 并且这个值不为空或者0的话才显示咱们的模板内容。我们重点看,foreach是smarty模板内置函数,其 主要作用是遍历传入的数组,然后生成内容,类似于其他语言里面的foreach。这句话就是遍历recent_buys,然后把每次遍历的项做 buy_info,其实这个buy_info 就是咱们数据的2维数组的第二维了。你可以直接用{$buy_info.goodName}这种形式来调用你数组传入的内容。用smarty模板 的数 据和现实分离,很爽的。下面你在你需要显示的地方加入 就可以显示了。
提示:sql调用的时候一定要注意表名要换成你自己的表名
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop添加商品时候选择品牌让品牌按拼音字母排列的方法
ecshop添加商品时候选择品牌让品牌按拼音字母排列ECSHOP后台添加新商品时,有一个选择品牌的下拉框,如果品牌太多,在下拉框里查找起来很不方便。
ecshop标签模板调用大全
父分类列表 {foreach from=$categories item=cat }订单编号 {$order_query.order_sn} 里面还有不少标签,没弄明白,之后在添加,修改
ecshop商品批量上传商品属性自定义的方法
ECSHOP的批量上传功能没有像shopex一样可以根据商品类型导出相应的csv,也就是说批量上传只能上传一般的商品属 ,对于我们自己定义的特殊属 还是要自己一个一个填过去。
解决ecshop登录自动退出ession失效无法下单动态ip问题
修改lib_base.php文件real_ip()函数:
相关源码
-
(自适应)平面设计网络工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为设计工作室、创意机构打造的作品展示解决方案。通过模块化布局与极简交互设计,呈现设计作品的视觉细节,支持作品分类、案例解析等多维度展示方式。查看源码 -
(PC+WAP)餐饮奶茶美食小吃招商加盟pbootcms模板源码下载为茶饮烘焙、小吃快餐等餐饮品牌打造的招商加盟系统,助力品牌快速拓展市场;双端pc+wap设计呈现加盟政策对比表。支持后台实时更新菜品图片、加盟费用等关键信息。查看源码 -
(自适应)WordPress二次元博客主题SakurairoSakurairo主题为二次元内容创作者设计,提供丰富的动漫风格元素和个性化的展示效果。该主题在原有Sakura主题基础上进行了功能增强,支持多种自定义设置,满足动漫爱好者建立个人博客的需求。查看源码 -
响应式粉色美容整形化妆品pbootcms网站模板开源源码该网站模板为美容整形、化妆品企业设计,采用响应式布局确保在手机、平板及PC端自动适配显示效果。基于PbootCMS内核开发,支持一键替换图文内容快速转换至其他行业应用。查看源码 -
响应式艺考培训学校机构pbootcms模板html5源码基于PbootCMS免费开源内核开发,为艺考培训学校与艺术机构设计,替换图文即可快速适配全行业需求。响应式布局兼容手机/PC端,数据实时同步,运维效率提升300%。查看源码 -
(自适应响应式)陶瓷研磨盘抛光机械设备pbootcms网站模板本模板基于PbootCMS系统开发,为研磨抛光设备制造企业设计,特别适合陶瓷研磨盘、抛光设备等表面处理设备展示。采用响应式布局技术,确保各类设备的参数和工艺在不同终端上都能清晰呈现。查看源码
| 分享笔记 (共有 篇笔记) |
