您现在的位置是:首页 > cms教程 > ecshop商城教程ecshop商城教程
ecshop二次开发实现较新交易滚动显示
冰枫2025-02-06 17:49:32ecshop商城教程已有4人查阅
导读昨天给购物网添加了首页滚动显示较新交易的功能,今天整理一下发上来造福民众,O(∩_∩)O~ 对于ecshop添加新功能我感觉无外乎就是两个地方的修改,显示的要修改模板,为了方便
昨天给购物网添加了首页滚动显示较新交易的功能,今天整理一下发上来造福民众,O(∩_∩)O~ 对于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语句如下: 上面语句的意思从ecs_order_info里面提取前20个交易,然后根据order_id,goods_id和user_id的关联来获取用户名、商品名、商品id和订单时间。搞定了sql语句, 下面我们就要按照ecshop的模式来写个函数,这个函数从通过数据库获取sql语句的内容,然后把这个sql的record封装到一个array里面,传给smarty模板来使用。 下面给出代码,大家参考一下: > 上面代码使用了 来获取数据库里面记录,这个db是在init.php里面系统初始化加载好的全局变量,他负责和数据库交互,获取 数据等功能。有时间我写几篇ecshop代码分析的文章,详细讲解一下ecshop的初始化过程,大家就可以了解ecshop高质量的代码了。下面的那个foreach做的而 工作其实就是把数据封装到array,smarty在模板处理时数组友好的。上面只是获取了array,下面的语句是赋值array到smarty模板” 把这句话加到index.php的类似的地方就可以,基本上在80多行,ecshop集中模板赋值的地方。在面我们来看看赋过去的值smarty模板是怎么用的。
二、模板层面的修改
我们建立一个BusinessActivities.lbi来放我们的smarty模板内容。下面是代码,看完代码我来分析: 大家注意看上面的是来说明你的模板内容基本信息的,我这里是utf8,如果你是gbk,要改成gbk哦。 是和我们上面php程序里面的 对应的,若果你给recent_buys赋值, 并且这个值不为空或者0的话才显示咱们的模板内容。我们重点看,foreach是smarty模板内置函数,其 主要作用是遍历传入的数组,然后生成内容,类似于其他语言里面的foreach。这句话就是遍历recent_buys,然后把每次遍历的项做buy_info,其实这个buy_info 就是咱们数据的2维数组的第二维了。你可以直接用{$buy_info.goodName}这种形式来调用你数组传入的内容。用smarty模板绝对的数据和现实分离,很爽的。
下面你在你需要显示的地方加入 就可以显示了。
一、程序层面修改
我们想要显示的无非就是什么人在什么时间购买了什么东西,这样分析下来我们需要去从数据库读取出来这来信息。从网上找到ecshop的数据字典,看了看 和咱们相关的表有三个ecs_order_info,ecs_order_goods,ecs_users,分别存储了订单信息,订单对应的商品信息和购买商品的用户信息。这三个表同 user_id,order_id和goods_id三个key来联系,下面我们要写出sql语句从中取出我们需要的那些信息,sql语句如下: 上面语句的意思从ecs_order_info里面提取前20个交易,然后根据order_id,goods_id和user_id的关联来获取用户名、商品名、商品id和订单时间。搞定了sql语句, 下面我们就要按照ecshop的模式来写个函数,这个函数从通过数据库获取sql语句的内容,然后把这个sql的record封装到一个array里面,传给smarty模板来使用。 下面给出代码,大家参考一下: > 上面代码使用了 来获取数据库里面记录,这个db是在init.php里面系统初始化加载好的全局变量,他负责和数据库交互,获取 数据等功能。有时间我写几篇ecshop代码分析的文章,详细讲解一下ecshop的初始化过程,大家就可以了解ecshop高质量的代码了。下面的那个foreach做的而 工作其实就是把数据封装到array,smarty在模板处理时数组友好的。上面只是获取了array,下面的语句是赋值array到smarty模板” 把这句话加到index.php的类似的地方就可以,基本上在80多行,ecshop集中模板赋值的地方。在面我们来看看赋过去的值smarty模板是怎么用的。
二、模板层面的修改
我们建立一个BusinessActivities.lbi来放我们的smarty模板内容。下面是代码,看完代码我来分析: 大家注意看上面的是来说明你的模板内容基本信息的,我这里是utf8,如果你是gbk,要改成gbk哦。 是和我们上面php程序里面的 对应的,若果你给recent_buys赋值, 并且这个值不为空或者0的话才显示咱们的模板内容。我们重点看,foreach是smarty模板内置函数,其 主要作用是遍历传入的数组,然后生成内容,类似于其他语言里面的foreach。这句话就是遍历recent_buys,然后把每次遍历的项做buy_info,其实这个buy_info 就是咱们数据的2维数组的第二维了。你可以直接用{$buy_info.goodName}这种形式来调用你数组传入的内容。用smarty模板绝对的数据和现实分离,很爽的。
下面你在你需要显示的地方加入 就可以显示了。
本文标签:
很赞哦! (1)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
ecshop收货人信息中邮件必填选项的删除方法
Ecshop用户下了订单之后有一步,是要求填写收货人信息,其中邮件地址是必须填写的。第一步:找到模板下 flow.dwt,找到email部分的{$lang.require_field}直接去掉。ecshop手机h5商城内容不显示商品图片怎么解决跨域问题
ecshop4.1以上版本h5手机版不显示商城内容和商品图片,因为跨域问题导致接口不能通信,所以要解决跨域问题。ecshop H5手机版不显示商城内容和图片信息如图:怎么在ecshop后台左侧导航中增加新菜单的代码实例
有个别高级用户(懂PHP的),提到这样的问题:在后台管理左侧导航中新增一个菜单项,或者是修改菜单项的名字、或者是删除某菜单项。ecshop商品本店价格为0显示为价格面议
需要修改的文件:includes/lib_common.php本次修改的目的:【将全站所有“0元”商品都显示为“价格面议”】
留言与评论 (共有 0 条评论) |