二次开发基础知识:Ecshop
ECShop功能介绍
E-Commerce Online Shop网上商店系统特色功能介绍By Weber Liu2007年10月24日目录1. 系统特点 (3)1.1. 技术架构 (3)1.2. 开放的插件机制 (3)1.3. 功能Ajax化 (4)1.4. 安全高效 (4)1.5. 搜索引擎友好性 (5)2. 商品展示 (5)2.1. 商品分类与品牌 (6)2.2. 商品类型与属性 (6)2.3. 推荐商品 (8)2.4. 商品详情页 (8)2.4.1. 相关商品 (9)2.4.2. 配件 (9)2.4.3. 关联文章 (9)2.4.4. 购买过该商品的人还买过的商品 (9)2.5. RSS Feeds和Tag (9)3. 购物流程 (9)3.1. 智能化的购物流程 (9)3.2. 聪明的配送方式 (10)4. 推广促销 (10)4.1. 拍卖 (11)4.2. 夺宝奇兵 (11)4.3. 团购 (11)4.4. 灵活多样的优惠活动 (11)4.5. 推荐提成 (12)4.6. 会员信用额度 (12)4.7. 销售专题 (12)5. 会员系统 (12)5.1. 会员数据整合 (12)5.2. 积分兑换 (13)6. 网店管理 (13)6.1. 报表统计 (13)6.2. 办事处 (15)6.3. 短信 (15)6.4. 计划任务 (15)7. 结束语 (15)1.系统特点1.1. 技术架构ECShop采用PHP、Ajax技术开发,系统可运行于Linux、Windows等多种操作系统平台。
系统采用MVC(Module, View Controller)三层架构设计,从根本上保证了系统的健壮性与可扩展性。
图表 11.2. 开放的插件机制对于电子商务网站来说支付与配送是业务流程中至关重要的一个环节,也正是网上支付与各物流公司的兴起促使了电子商务快速的发展。
ECShop抛弃了传统的固定公式,由用户来设置各种参数的方式,而是采用了一个开放式的插件机制来管理各种支付和配送方式。
ECShop功能介绍
指导老师:黄华毕业学校:清远职业技术学院ECShop简介是Comsenz公司推出的一款B2C独立网店系统,现已出售给ShopEX的开发商上海商派网络科技有限公司。
适合企业及个人快速构建个性化网上商店。
系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。
ECShop悉心听取每一位商家的需求与建议,不仅设计了人性化的网店管理系统帮助商家快速上手,还根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。
经过近两年的发展,ECShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和SEO支持(搜索引擎优化)等方面都居国内同类产品领先地位,成为国内最流行的购物系统之一。
ECShop功能介绍1. 灵活的模版机制ECShop开发了独有的高效模板引擎(2.15以前版本使用smarty模板引擎),并结合了Dreamweaver的模板和库功能,使得编辑制作模板变得更简单。
2. 开放的插件机制支付、配送,会员整合都是以插件形式实现。
商家可以随时增加或变更的支付方式和配送体系。
ecshop支持大部分php开发的论坛系统,包括discuz,phpwind 等,只需在后台做简单参数配置,即可完成会员整合。
3. 功能 AJAX 化ECSHOP 使用目前流行的 AJAX 技术,批量数据编辑变得更迅速,方便。
4. 促销功能ECSHOP提供了积分、红包、赠品,夺宝奇兵等多种促销方法。
5. 高效率的代码和执行性能通过优化代码与数据库结构,配合ecshop独家设计的缓存机制,在不考虑网速的情况下,网店动态页面与纯静态页面访问速度相当。
6. 常规功能的更完善实现针对常规功能尤其是后台管理和购物流程,ECShop进行了更简洁的设计,实现更好的用户体验。
7. 搜索引擎优化在 SEO (搜索引擎优化)上,ECShop独家支持两种 URL 重写方式,并且是同类软件中第一家支持 google/ yahoo / microsoft 三家共同发布的 sitemaps 0.9 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和帮助。
二次开发技术文档
ShopExV4.8二次开发技术文档一、开发需求:ShopExV4.8网店系统是一套基于网上快速建店的标准化B2C电子商务系统。
系统集成了最基本最普通最常用的电子商务运作流程及使用功能,可以满足正常的开店需求。
定制可以根据客户的需求对网站进行相应功能的添加修改或者删除,同时定制也存在一定的弊端。
ShopExV4.8以前版本的定制是在原来的程序上修改的所以定制过的网站就不能使用该版本后发布的相关补丁。
ShopExV4.8版本采用MVC开发模式,二次开发解决了定制在原程序上进行修改导致程序不能升级的问题,使新的程序模块可以很好的融合到ShopExV4.8系统中同时也可以继承原有程序的所有功能。
二、技术描述:本着不与原程序冲突的原则,需要新建一个目录去存放二次开发所用的程序,这就要求在ShopExV4.8的配置文件中定义一个存放二次开发程序目录的常量。
同时为了使二次开发程序能够兼容原程序的所有功能也要求要包含原来的控制器文件或模型层文件,通过类继承和函数重载的方式实现原有功能的保留、修改和新功能的开发,当然如果该功能完全与原有功能没有联系则只需继承控制器文件或模型层文件的基类。
三、流程说明:1、配置config.php文件:define(‘CUSTOM_CORE_DIR’,’自定义文件路径’)[自定义文件路径建议和core同级]2、后台菜单新增规则(customSchema.php):格式参照原有后台菜单文件的书写格式但数组名必须为$cusmenu①、新增菜单项此处格式参照adminSchema.php即可,数组名称注意应为$cusmenu②、在已有菜单项中添加根据菜单出现的位置添加不同的参数如在“统计报表”下新增二级菜单“测试二次开发”$cusmenu['analytics']=array('items'=>array(array('type'=>'group','label'=>'测试二次开发','position'=>'after|begin|end|before','reference'=>'访问统计','items'=>array(array('type'=>'menu','label'=>'测试二次开发1','link'=>'index.php?ctl=vip/vote&act=index'),array('type'=>'menu','label'=>'测试二次开发2','link'=>'index.php?ctl=vip/vote&act=index')))));position值及说明:I、after:在某个菜单项的后面,此时reference必须为一个同级已存在的菜单项。
ECshop_模板开发与优化教程
ecshop教程-ecshop模板中lbi和dwt文件的关系ecshop教程-ecshop模板中lbi和dwt文件的关系要修改ecshop模板必要要了解下lbi和dwt文件,如果把这个问题弄明白了,那对我们修改ecshop模板的帮助就很大了。
之间讲过了[ecshop教程-ecshop 修改对应参考] ,下面我们讲下ecshop中的dwt和lbi文件首先要明白dwt模板文件是一个(框架),控制着ecshop的大体框架,里面链接着所需的lbi库文件(内容)。
修改dwt里面lbi部分的内容是不会发生变化的.需要修改lbi文件.然而lbi内容也可以镶嵌到dwt模板文件里面(镶嵌就是分离到模板文件里面了,和原先的lbi文件没有关系了.)但是这样的话.其他dwt模板页面也使用到相同的lbi板块的话,内容就不能同步了.只能再继续镶嵌,造成了效率不高。
所以ecshop才把内容lbi文件分离出来,方便链接。
在模板文件里面添加可编辑区域.(可编辑区域是给程序使用的.每在模板里面添加一个可编辑区域都可以在"模板管理=>设置模板"的区域里面看到已添加的可编辑区域的名字.),然后就可以通过后台管理的"设置模板",把库文件调到您想要的可编辑区域里面.明白这些对于ecshop初学者来说可能比较困难,但寨卒认为,只要多动手修改,别人给出代码的时候不要一味的直接抄袭来,按部就班的修改完之后,再回头思考下,慢慢的就会总结出来好的代码修改方法了。
当然多来我的博客也会有好处的。
下面举个例子来说明,拿ecshop2.6.2中的默认模板来说。
index.dwt里 <body>之后有如下代码。
<body><!-- #BeginLibraryItem "/library/page_header.lbi" --><!--#EndLibraryItem --><div class="blank"></div><div class="block clearfix"><!--left start--><div class="AreaL"><!--站内公告 start--><div class="box"><div class="box_1"><h3><span>{$lang.shop_notice}</span></h3><div class="boxCenterList RelaArticle">{$shop_notice}</div></div></div><div class="blank5"></div><!--站内公告 end-->上面代码中的 <!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->就是调用了page_header.lbi的内容,就是调用了头部文件。
织梦CMS二次开发技术资料
DedeCMS V5.3二次开发手册一、模板篇1.1、主要模板文件与功能说明DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS 也支持使用风格的形式使用模板,默认风格是default,它表示系统默认使用{cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如style2 等,然后在后台修改了默认的模板风格名称为style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。
一、概念,设计和使用模板,必须要理解下面几个概念1、板块(封面)模板:指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:指网站某个栏目的所有文章列表的模板,一般用“list_识别ID.htm” 命名。
3、档案模板:表示文档查看页的模板,如文章模板,一般用“article_识别ID.htm” 命名。
4、其它模板:一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。
二、命名,DedeCMS模板默认命名规则如下1、模板保存位置:模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}2、模板文件命名规范:(1)index_识别ID.htm:表示板块(栏目封面)模板;(2)list_识别ID.htm:表示栏目列表模板;(3)article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);(4)search.htm:搜索结果列表模板;(5)index.htm:主页模板;注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。
05ecshop项目概述
回顾PDO:PHP数据对象,作为了一个数据抽象层来负责向下连接各种指定的数据库。
1.加载PDO扩展2.创建PDO对象(连接数据库):new PDO($dsn,$user,$pass)3.组织SQL并发送a)PDO::exec:没有数据(结果集返回),返回受影响的行数b)PDOStatement PDO::query:有结果集,返回结果集对象4.处理返回结果a)结果集记录数:PDOStatement::rowCount,columnCountb)取出结果集:fetch(PDO::FETCH_BOTH,FETCH_ASSOC,FETCH_NUM),fetchAll,fetchColumn,fetchObject5.关闭PDO(unset(PDO对象))预处理1.发送预处理:PDOStatement PDO::prepare2.准备执行数据a)传入一个参数数据:PDOStatement::execute($array)b)在执行前绑定变量:bindParam,bindValue,使用PDOStatement::executePDO事务处理PDO::beginTransaction:开启事务PDO::commit:确认提交PDO::rollback:回滚PDO异常处理1.设置错误处理模式为异常模式:PDO::setAttribute(PDO::ATTR_ERRORMODE,PDO::ERRMODE_EXCEPTION)2.指定异常语句库去捕捉异常try{//可能出现错误的语句}catch(PDOException $e){//抓取错误并处理$e->getTrace()}反射:Reflection将一个类的内部的结构给反映出来:ReflectionClass获取常量:getConstants获取属性:getProperties获取方法:getMethodsECSHOPEcshop是一个电子购物商城,功能非常完善。
ecshop二次开发手册
ecshop二次开发手册【基本结构】【基本熟悉】前言:ECSHOP是一套完整的网络商店解决方案,包括前台的商品展示、购物流程和强大易用的后台管理。
由于ecshop简单易用,使用者几乎可以在3几分钟简单的设置一下就可以拥有一个网上商店系统,所以很多的B2C站点都选择了使用ECShop网上商店系统,但是有时候我们需要做一些ecshop本来没有的功能或者前端展示,这时候就需要我们自己去进行对ecshop的二次开发了。
一、ecshop系统功能二次开发ecshop的代码结构非常易懂,只有有一点php基础都可以在原有的程序基础上进行修改,或功能插件的开发。
ecshop中的一些公用函数都会放在includes文件夹里,而这些公用函数几乎我们都可以用来参照一下就能轻松做出我们想要的其他功能了。
我们要对ecshop进行二次开发,简单来说其实就是对数据库的读写操作,所以只要我们读懂ecshop的数据库操作类,接下来的实现就很轻松了。
ecshop的数据库操作类是很强大的,一些常用的函数如下:1.获取单条记录$GLOBALS['db']->getRow($sql);2.获取单一字段$GLOBALS['db']->getOne($sql);例如查询产品总数:echo $GLOBALS['db']->getOne(…SELECT COUNT(*) FROM … .$GLOBALS['ecs']->table(…goods‟) ;3.获取所有记录$GLOBALS['db']->getAll($sql);4.执行sql语句$GLOBALS['db']->query($sql);//执行删除(DELETE),插入(INSERT),更新(UPDATE)等操作可用此方法5.把数组元素插入数据库$parent['goods_number'] = ‟1′;$parent['parent_id'] = 0;$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table(…cart‟), $parent, …INSERT‟);基于此基础上就能轻松进行ecshop二次开发了。
ec二次开发
• 技术架构 • ECShop采用PHP 、Ajax、Mysql技 术开发,系统可 运行于Linux、 Windows等多种 操作系统平台。 系统采用MVC( Module, View Controller)三层 架构设计,从根 本上保证了系统 的健壮性与可扩 展性。
第一 、整体框架结构 : 个人认为 整个系统是层结构 有数据层 有外观层比如我们 index.php 是外观层(和用户打交道的层) 那推荐产品来说吧 在 index.php 是对数据层函 数的 调用 get_recommend_goods('new') 这个函数那么他是在 include 目录下的 lib_goods.php 进行定义既数据层。 第二、重要目录:首先大多前台程序是在根目录下admin 这个文件夹是我们后台的文件夹后台的 模板文件是在下一层的 templates 里。这里我强调几个后台文件首先需要了解 init.php 这个是对 后台 session 访问权限调 用模板的路径等功能的设置 第二个文件是 inc_menu.php这是定义 功能菜单文件看到论坛有人要把后台一些功能去掉 你就可以改这文件把里面的一些模块删了 即 可。templates下_list.htm是列表页_info.htm是修改添加页的模板文件。 data文件夹里面我们用的最多的是要打开config.php 对 数据库参数进行修改 (移动 代码 不安装的情况下需要在这修改数据库参数)order_print.html这个也很重要有些客户要修改订 单打印页的效果 需要在这修改。 includes 文件夹 是很重要的 里面经常打开的文件init.php lib_common.php 是共同函数lib_ goos.php 是处理前台所有商品调用的函数库 lib_order.php 当然是处理订单的文件cls_transpo rt.php 处理会员中心功能的文件lib_article.php 文章数据层。 lib_insert.php这个文件也不可忽视,有点时候会让你一些东西找不到,结果就在他里面。比如 ,购入车,就是在这文件里广告调用。浏览历史, 比如,浏览历史的函数,为了可以 显示图片 ,你就可以在这个地方改 。
ecshop二次开发详细解答
在ECSHOP会员中心实现物流跟踪或包裹跟踪(非jquery版)前些日子,本站已经发表过一篇讲述“在ECSHOP会员中心集成物流跟踪或快递跟踪功能”的文章,不过以前那个方法用到了 jquery 。
今日公布的这个教程是不用JQUERY的方法。
下面是具体的修改教程:1)、首先下载物流跟踪插件 ecshop_express.rar,点击这里下载将它下载到你网站根目录的 plugins 子目录中,然后右键点击 ecshop_express.rar 文件,选择 "解压到 ecshop_express " ,解压后 ecshop_express 子目录下应该只存在两个文件: express.php 、snoopy.php2)、以下修改是以官方默认模板为例,其他模板本文不做讲解,请自行对照解决。
打开 /themes/default/user_transaction.dwt 文件将{$order.invoice_no}修改为<b id="shipping_name">{$order.shipping_name}</b> <bid="invoice_no">{$order.invoice_no|strip_tags}</b>接着,将<!--{if $order.to_buyer}-->修改为至此,大功告成,是不是比那个使用JQUERY的方法还简单。
到后台订单里发布一个运单号去看一下效果吧,下面是我在自己网站测试的效果在Ecshop商品详情页的本店售价中显示当前登录会员的等级价格问题描述:会员登录状态下,在ECSHOP商品详情页的本店售价中显示当前登录会员对应的等级价格,在未登录状态下,则还默认显示原来的本店售价。
解决方法:这个需要修改ECSHOP程序代码来实现。
其实也非常简单,只需要修改一行代码即可。
ecshop二次开发
ecshop订单操作的状态对应的值ecshop电子商务系统中,ECSHOP的订单有很多的状态。
这些状态,是维持和保证ECSHOP后台操作订单状态转换的依据。
order_status = 0表示订单未确认order_status = 1表示订单已经确认order_status = 2表示订单已经取消pay_status = 0表示未付款pay_status = 2表示已付款shipping_status = 3表示已配货shipping_status = 1表示已发货shipping_status = 2表示已收货总结以上ecshop订单的状态,方便开发人员总结开发操作。
、Ecshop 前台显示已售出的数量category.php下面的category_get_goods函数中foreach循环添加$arr[$row['goods_id']]['count'] = selled_count($row['goods_id']);文件的最后部分添加函数function selled_count($goods_id){$sql= "select sum(goods_number) as count from ".$GLOBALS['ecs']->table('order_goods')."where goods_id ='".$goods_id."'";$res = $GLOBALS['db']->getOne($sql);if($res>0){return $res;}else{return('0');}模板goods_list.lbi<a href="javascript:;" id="compareLink"html"}','{$goods.type}')" class="f6">{$pare}</a> 下添加销售量:{$goods.count}如何轻松实现ecshop不同商品调用不同模板我们这里就按照分类来调用模板假如有4个分类CAT_ID 为 1 2 3 4对应的模板 goods.dwt goods1.dwt goods2.dwt goods3.dwt那麽在 goods.php中找到$smarty->display('goods.dwt', $cache_id);switch ($goods['cat_id']){case 1:$smarty->display('goods.dwt', $cache_id);break;case 2:$smarty->display('goods1.dwt', $cache_id);break;case 3:$smarty->display('goods2.dwt', $cache_id);break;case 4:$smarty->display('goods3.dwt', $cache_id);break;}如何将ecshop会员注册页的E-MAIL由必填项改为非必填项看到论坛里有不少朋友发帖询问解决办法,故共享之。
ECShop的二次开发
一phpStudy的安装与环境的搭建(本地php环境、mysql数据库环境、appache服务器)1.如下图,可以看到该安装包集成了最新的apache 、php、mysql、phpmyadmin等多种开发环境。
直接点击“下一步”进行安装。
2.在此可以选择更换安装程序的路径,确定后点击“下一步”。
3.在此可以选择网站程序的路径,即你的网站php代码所在的目录。
确定后点击“下一步”。
4.在此可以看到该phpstudy安装包的组件,你可以在此进行配置。
缺省情况下不用做修改,点击“下一步”。
5.后面的步骤也不需配置,直接点“下一步”。
当你看到下图界面时,表示你也完成phpstudy的安装,点击“完成”介绍安装过程。
6.安装完成后,启动phpstudy,phpstudy程序的主界面如下图。
在此可以控制Apache服务器和Mysql服务器的启停。
同时也有Mysql管理器菜单和其它选项菜单对系统进行一些配置。
二、安装ecshop7.登录网址免费下载ecshop网店系统最新版本8.将下载好的压缩包解压后得到三个文件夹9.把upload这个文件夹里面的内容拷贝到php运行环境的根目录(要安装多个ecshop时直接把upload拷贝到php环境的根目录就行,upload文件夹可以被改成自己喜欢的名字)。
10.打开浏览器输入localhost(或者localhost/upload安装多个),回车,进入安装欢迎界面。
11.下一步,进入环境检测,全包所有模块可写。
、12.下一步,填写数据库配置和用户信息。
若要安装测试数据注意勾选相应选项。
13.安装完成三、ecshop的二次开发1.进入管理后台,如下图所示。
要想对ecshop进行二次开发,就要先熟悉这个后台的所有功能。
2.首先进行商品添加,如下图所示。
3.进行产品分类如下图所示。
4.对于电商来说,品牌很重要。
所以,我们添加的都是国际品牌,添加分类针对的是对高端产品需求强烈的人群。
ecshop二次开发,常用功能开发
ecshop二次开发,常用功能开发ecshop二次开发,常用功能开发1、ECSHOP 搜索智能提示(即联想功能)2、购物车动态更新,数量左右有+ - 点击即可实时改变价格,购买商品“加入购物车”,弹出特效窗口,购物车属性,加减号3、信任登陆:QQ、新浪微博、淘宝/支付宝等合作登录功能插件含后台设置功能(可选)4、ecshop自定义URL/链接,支持无限级目录,对提高SEO排名很有帮助、/thread-__-1-1.html5、Ecshop自动生成购买记录和评论插件6、物流跟综7、资讯站自动内链功能,在后台设置关键词,资讯站相关关键词可点到商品或分类8、简化购物流程购物流程整合成单页面运费无刷新变化所有操作在单页面完成,简化了购物流程,提高成交,将购物车、填写收货地址、物流方式和支付方式集成在一个页面上完成,9、ecshop 网站商品图片分步加载,(图片太多,加载会很慢,页面在第一屏就加载第一屏,拖动后自动加载),类似于京东,趣玩网的图片预加载..ecshop二次开发,常用功能开发。
ecshop二次开发,常用功能开发10、ECSHOP CPS 广告联盟插件,11、促销期内,每个用户最多只允许购买N 件。
不论你是昨天买的,还是今天买的,还是明天买的,也不论你下多少订单,只要是在促销期内,购买数量加在一起不能超过N 件。
这个数字N 可以在后台设置。
例如对商品A做促销活动,规定在2022年-01-01 至2022年-02-01 期间,每个用户最多只能购买2件,在这个时间段之前或在这个时间段之后购买的话,不做任何限制。
12、限时抢购(限时抢拍)、团购(两种方式:普通团购、满多少团购价减多少)、秒杀、买就送、倒计时功能13、ECSHOP优惠套餐插件,仿趣玩网,支持多套餐,支持勾选ecshop二次开发,常用功能开发14、实现用户名或Email都能登陆15、未注册等提示性跳转,以浮动层表现15、其它,如浮动返回到顶部、浮动客服等ecshop二次开发,常用功能开发怎样把ECSHOP商城系统中的相对地址变成带域名的绝对地址?答:我们一般所说的绝对地址(也有朋友称其为:完整地址)是页前台查看源文件时,在源文件中都所能看到的带域名的完整URL形式,比如:“a href=“/sitemap.xml "__/a”修改说明:这样修改的好处:也许很多朋友都非常想把以mon.php这个文件把return $uri;修改为return 'http:// /'.$uri;为什么我的ECSHOP首页和商品列表页中的商品缩略图很模糊,我应该怎么做,图片才会清晰呢?答:经常看到论坛里有人反映说首页或列表页的缩略图的质量不高,比较模糊......原因是因为ECSHOP生成缩略图时,用到的函数imagejpeg() 没有设置质量参数。
ECshop使用手册
ECshop使用手册ECshop使用手册1、简介1.1 什么是ECshop1.2 ECshop的特点1.3 ECshop的优势2、安装与配置2.1 系统要求2.2 与安装ECshop2.3 配置ECshop2.4 数据库设置2.5 后台管理设置3、商品管理3.1 添加商品3.2 编辑商品3.3 删除商品3.4 商品分类管理3.5 商品属性管理4、订单管理4.1 创建订单4.2 订单支付4.3 订单发货4.4 查看订单详情 4.5 取消订单4.6 退款与售后服务5、用户管理5.1 用户注册5.2 用户登录5.3 修改个人信息 5.4 查看订单历史 5.5 购物车管理5.6 用户评论与评分6、促销与营销6.1 优惠券6.2 积分系统6.3 团购与拼团活动7、物流与配送7.1 物流公司管理7.2 配送区域设置7.3 发货流程8、网站设置8.1 网站基本信息设置 8.3 导航菜单管理8.4 页面布局管理8.5 插件与扩展管理9、数据备份与恢复9.1 数据库备份9.2 数据库恢复10、系统日志与错误处理 10.1 系统日志查看10.2 错误处理与调试11、常见问题与解答11.1 如何处理商品缺货情况?11.2 如何配置多个支付方式?11.3 如何添加新的配送方式?附件:- ECshop安装包- ECshop使用手册PDF版法律名词及注释:- 商标:商标是指为区别商品或者服务来源,以图形、字词、数字、三维标志、颜色组合等方式,以及联合声音等方式,单独或者结合使用,能够区别商品或者服务来源并能够在法律上受到保护的标志。
- 版权:版权是指作者对其创作的文学、艺术、科学等作品享有的权利,包括对作品的复制权、发行权、表演权、放映权、广播权、信息网络传播权等权利。
shopex 二次开发实战指南(罕见教程)
<?php
/*********************/
/*
*/
/* Dezend for PHP5 */
/*
NWS
*/
/*
Nulled.WS */
/*
*/
/*********************/
include_once( "shopObject.php" ); class mdl_warehouse extends shopObject {
/** * 设置商品仓库 * @param unknown_type $id */
public function count($id,$goodsName){ $houses = &$this->system->loadModel('goods/warehouse'); $list = $houses->getLogList($id);
一、效果预览
1.在‘商品’菜单栏中添加‘仓库’的菜单组:
1
2.仓库列表:
3.添加/编辑仓库
2
二、添加菜单及创建数据表
1.思路
1)因为后台的菜单是加密了,网上有通过用户自定义目录的方式来添加后台菜单,不过讲 得不够详细,没试成功=.= 于是我直接修改后台菜单的 php,文件路径为:core\include_v5\adminSchema.php 使用 dezender 工具将这个文件解密。这里顺带说一下解密,如图:
库名称')); exit;
}
$houses = &$this->system->loadModel('goods/warehouse');
Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料
Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料这篇文章主要为大家介绍了Ecshop二次开发之自定义库文件和模板数据调用方法,是进行ecshop二次开发中非常实用的重要技巧,涉及底层库文件的修改与应用,需要的朋友可以参考下本文实例讲述了Ecshop二次开发之自定义库文件和模板数据调用方法,。
分享给大家供大家参考。
具体方法如下:Smarty的标签非常多,也比较繁琐,所以Ecshop使用了精简版的Smarty,其中用到的Smarty模板语法:{$keywords} 输出模板变量{$array.test.abc} 输出二维数组{$lang.remark_package} 语言包$lang[remark_package]{insert_scripts files=‘common.js‘} 引入js文件xxxx 循环xxxx 判断引入goods_tags.lbi库文件,相当于PHP的include{*内容*} html注释,只在模板上显示,页面上会被删除掉.Ecshop二次开发的数据调用,主要动用到以下两个目录下的文件dwt(模板文件)路径: themes\\defaultlbi(库文件)路径: themes\\default\\library举个例子就很清楚了,是我从网上找来的,由于转载得很严重,所以不知道真正出处。
我们在themes\\default\\library下新建一个名为newest_comments.lbi的库文件,写入以下内容:代码如下:if(!function_exists("get_new_comments")){function get_new_comments($num){$sql = ‘SELECT * FROM ‘.$GLOBALS[‘ecs‘]->table(‘comment‘) .‘ WHERE status = 1 AND parent_id = 0 and comment_type=0 ‘.‘ ORDER BY add_time DESC‘;if ($num > 0){$sql .= ‘ LIMIT ‘ . $num;}//echo $sql;$res = $GL OBALS[‘db‘]->getAll($sql);$comments = array();foreach ($res AS $idx => $row){$comments[$idx][‘add_time‘] = $comments[$idx][‘add_time‘] = local_date($GLOBALS[‘_CFG‘][‘time_format‘],$row[‘add_time‘]);$comments[$idx][‘user_name‘] = $row[‘user_name‘];$comments[$idx][‘content‘] = $row[‘content‘];$comments[$idx][‘id_value‘] = $row[‘id_value‘];}return $comments;}}$this->assign(‘new_comments‘,get_new_comments(10)); // 10条最新评论>{$comment.content|truncate:15:""}时间:{$comment.add_time}这样一个库文件就做好了,电脑资料《Ecshop二次开发之自定义库文件和模板数据调用实例》(https://www.)。
ecshop二次开发函数大全
ecshop二次开发函数大全所有函数功能说明:lib_time.phpgmtime()方法:获得当前格林威治时间的时间戳server_timezone()方法:获得服务器的时区local_mktime($hour = NULL , $minute= NULL, $second = NULL, $month = NULL, $day = NULL, $year = NULL)方法:生成一个用户自定义时区日期的GMT时间戳local_date($format, $time = NULL)方法:将GMT时间戳格式化为用户自定义时区日期gmstr2time($str)方法:转换字符串形式的时间表达式为GMT时间戳local_strtotime($str)方法:将一个用户自定义时区的日期转为GMT时间戳local_gettime($timestamp = NULL)方法:获得用户所在时区指定的时间戳local_getdate($timestamp = NULL)方法:获得用户所在时区指定的日期和时间信息lib_base.phpsub_str($str, $length = 0, $append = true)方法:截取UTF-8编码下字符串的函数real_ip()方法:获得用户的真实IP地址str_len($str)方法:计算字符串的长度(汉字按照两个字符计算)get_crlf()方法:获得用户操作系统的换行符send_mail($name, $email, $subject, $content, $type = 0, $notification=false) 方法:邮件发送gd_version()方法:获得服务器上的GD 版本file_get_contents($file)方法:如果系统不存在file_get_contents函数则声明该函数file_put_contents($file, $data, $flags = ”)方法:如果系统不存在file_put_contents函数则声明该函数floatval($n)方法:如果系统不存在floatval 函数则声明该函数file_mode_info($file_path)方法:文件或目录权限检查函数log_write($arg, $file = ”, $line = ”)方法:写入日志内容make_dir($folder)方法:检查目标文件夹是否存在,如果不存在则自动创建该目录gzip_enabled()方法:获得系统是否启用了gzipaddslashes_deep($value)方法:递归方式的对变量中的特殊字符进行转义addslashes_deep_obj($obj)方法:将对象成员变量或者数组的特殊字符进行转义stripslashes_deep($value)方法:递归方式的对变量中的特殊字符去除转义make_semiangle($str)方法:将一个字串中含有全角的数字字符、字母、空格或‟%+-()‟字符转换为相应半角字符check_file_type($filename, $realname = ”, $limit_ext_types = ”)方法:检查文件类型/文件名/真实文件名/允许的文件类型mysql_like_quote($str)方法:对MYSQL LIKE 的内容进行转义过滤掉_ %等字符.real_server_ip()方法:获取服务器的ipecs_header($string, $replace = true, $http_response_code = 0)方法:自定义header 函数,用于过滤可能出现的安全隐患ecs_iconv($source_l ang, $target_lang, $source_string = ”)方法:自定义的编码转换ecs_geoip($ip)方法:取得IP的地址,采用IP库trim_right($str)方法:去除字符串右侧可能出现的乱码move_upload_file($file_name, $target_name = ”)方法:将上传文件转移到指定位置json_str_iconv($str)方法:将JSON传递的参数转码get_file_suffix($file_name, $allow_type = array())方法:获取文件后缀名,并判断是否合法read_static_cache($cache_name)方法:读结果缓存文件write_static_cache($cache_name, $caches)方法:写结果缓存文件lib_common.php (公用函数库)db_create_in($item_list, $field_name = ”)方法:创建像这样的查询: “IN(…a‟,'b‟)” $item_list为数组is_email($user_email)方法:验证输入的邮件地址是否合法is_time($time)方法:检查是否为一个合法的时间格式assign_query_info()方法:获得查询时间和次数,并赋值给smartyregion_result($parent, $sel_name, $type)方法:创建地区的返回信息get_regions($type = 0, $parent = 0)方法:获得指定国家的所有省份, 函数需要数据库支持.get_shipping_config($area_id)方法:获得配送区域中指定的配送方式的配送费用的计算参数比如快捷公司不同. init_users()方法:初始化会员数据整合类cat_list($cat_id = 0, $selected = 0, $re_type = true, $level = 0, $is_show_all= true)方法:获得指定分类下的子分类的数组, $re_type控制返回类型cat_options($spec_cat_id, $arr)方法:过滤和排序所有分类,返回一个带有缩进级别的数组load_config()方法:载入配置信息get_brand_list()方法:取得品牌列表get_brands($cat = 0, $app = …brand‟)方法:获得某个分类下的品牌列表get_promotion_info($goods_id = ”)方法:所有的促销活动信息get_children($cat = 0)方法:获得指定分类下所有底层分类的IDget_article_children ($cat = 0)方法:获得指定文章分类下所有底层分类的IDget_mail_template($tpl_name)方法:获取邮件模板order_action($order_sn, $order_status, $shipping_status, $pay_status, $note = ”, $username = null)方法:记录订单操作记录price_format($price, $change_price = true)方法:格式化商品价格get_virtual_goods($order_id, $shipping = false)方法:返回订单中的虚拟商品记录是否发货.virtual_goods_ship(&$virtual_goods, &$msg, $order_sn, $return_result = false, $process = …other‟)方法:虚拟商品发货virtual_card_shipping ($goods, $order_sn, &$msg, $process = …other‟)方法:虚拟卡发货virtual_card_result($order_sn, $goods)方法:返回虚拟卡信息get_snatch_result($id)方法:获取指定id snatch 活动的结果clear_tpl_files($is_cache = true, $ext = ”)方法:清除指定后缀的模板缓存或编译文件clear_com piled_files($ext = ”)方法:清除模版编译文件clear_cache_files($ext = ”)方法:清除缓存文件clear_all_files($ext = ”)方法:清除模版编译和缓存文件smarty_insert_scripts($args)方法:页面上调用的j s文件,组合功能.smarty_create_pages($params)方法:创建分页的列表build_uri($app, $params, $app end = ”, $page = 0, $size = 0)方法:重写URL 地址formated_weight($weight)方法:格式化重量log_account_change($user_id, $user_money = 0, $frozen_money = 0, $rank_points = 0, $pay_points = 0, $change_desc = ”, $change_type = ACT_OTHER)方法:记录帐户变动article_cat_list($cat_id = 0, $selected = 0, $re_type = true, $level = 0)方法:获得指定分类下的子分类的数组/ 向下取数组.article_cat_options($spec_cat_id, $arr)方法:过滤和排序所有文章分类,返回一个带有缩进级别的数组uc_call($func, $params=null)方法:调用UCenter的函数exception_handler($errno, $errstr, $errfile, $errline)方法:error_handle回调函数未启用.get_image_path($goods_id, $image=”, $thumb=false, $call=‟goods‟, $del=false)方法:重新获得商品图片与商品相册的地址user_uc_call($func, $params = null)方法:调用使用UCenter插件时的函数get_volume_price_list($goods_id, $price_ty pe = ‟1′)方法:取得商品优惠价格列表get_final_price($goods_id, $goods_num = ‟1′, $is_spec_price = false, $spec = array())方法:取得商品最终使用价格get_package_info($id)方法:获取指定id package 的信息get_package_goods($package_id)方法:获得指定礼包的商品lib_main.php (前台公用函数库)update_user_info()方法:更新用户SESSION,COOKIE及登录时间、登录次数。
二次开发培训教程
二次开发培训教程一、引言二次开发是指在已有软件的基础上进行功能扩展或改进,以满足用户特定需求的一种开发模式。
在实际的软件开发过程中,二次开发可以大大提高软件的定制性和适用性,同时也能为软件的推广和应用提供更多的可能性。
因此,二次开发技能已经成为了软件开发领域中必不可少的一部分。
本教程将介绍二次开发的基本概念、工具、技术和实现方法,帮助读者快速入门并掌握二次开发的相关技能。
二、二次开发的基本概念1. 二次开发的定义二次开发是指在原有软件基础上进行功能扩展或改进的一种软件开发方式,常用于定制化开发或适应特定需求的软件开发过程中。
2. 二次开发的分类根据二次开发的目的和方式,可以将其分类为插件开发、定制化开发和接口开发等几种类型。
其中,插件开发通常是指通过开发插件或扩展,为原有软件增加新的功能或功能模块;定制化开发则是指根据用户特定需求对软件进行定制开发,满足用户个性化需求;而接口开发则是指通过开发接口或SDK,实现与其他系统的集成或对接。
三、二次开发的工具和技术1. 二次开发的常用工具常见的二次开发工具包括IDE(集成开发环境)、文本编辑器、调试工具、版本控制工具等。
在实际开发过程中,可以根据具体的开发需求和技术框架选择合适的开发工具。
2. 二次开发的常用技术常见的二次开发技术包括脚本语言、面向对象编程语言、Web开发技术等。
在实际开发过程中,可以根据具体的开发需求和软件架构选择合适的开发技术。
四、二次开发的实现方法与步骤1. 了解原有软件结构在进行二次开发之前,首先要了解原有软件的结构和功能,包括核心模块、接口和数据交互等,以便确定二次开发的具体目标和范围。
2. 确定二次开发需求根据用户的具体需求和软件的现状,确定二次开发的具体需求和目标,明确二次开发的功能模块和实现方式。
3. 选择合适的开发工具和技术根据二次开发的具体需求和软件的技术框架,选择合适的开发工具和技术,为二次开发提供技术支持和开发环境。
最好最实用的二次开发教程
最好最实⽤的⼆次开发教程 最好最实⽤的⼆次开发教程 ◆⼆次开发 什么是⼆次开发? ⼆次开发,简单的说就是在现有的软件上进⾏定制修改,功能的扩展,然后达到⾃⼰想要的功能和效果,⼀般来说都不会改变原有系统的内核。
为什么要⼆次开发? 随着信息化技术的不断发展,IT⾏业涌现出了⼀系列优秀的开源作品,其作者或是个⼈,或是项⽬⼩组,或是软件公司。
选择和应⽤这些优秀的开源软件,并在此基础上进⾏符合业务需求的⼆次开发,将给企业节省信息化成本(时间成本及开发成本)的同时,更能带来技术上的保障。
这就是我们常听的:站在巨⼈的肩膀上,你将看的更远。
所以国内很多公司需要⼆次开发的⼈才。
怎么做⼆次开发? 第⼀,你要有这个开源产品的所⽤语⾔的语⾔基础,能看懂代码是最基本的。
第⼆,你要对这个开源产品的功能和使⽤要有⽐较熟悉,因为你熟悉了,你才知道⼀个需求下来,你要改什么,什么是系统⾃带的,⼤概要怎么改。
第三,你要熟悉这个开源产品的数据结构,代码结构,系统的框架结构,核⼼是哪⾥,附属功能是在哪⾥。
简单点说,就是数据库,代码逻辑,⽂件⽬录的熟悉。
第四,根据你的需求,然后利⽤开源产品的内核,进⾏系统的扩展和修改,以达到你的需求介绍PHP的开源产品的⼆次开发的基本要求: 第⼀,基本要求:HTML(必须要⾮常熟悉),PHP(能看懂代码,能写⼀些⼩系统,如:留⾔板,⼩型CMS),Mysql(⾄少会⼀种数据库),Javascript(能看懂,能改现成的⼀些代码),Div+Css(能进⾏界⾯的调整,明⽩CSS是怎么使⽤的) 第⼆,熟悉开源产品的使⽤,⽐如 Dedecms,你要知道怎么登录,怎么新建栏⽬,怎么添加⽂章,模板标签的使⽤⽅法,模型的概念和使⽤⽅法等等⼀些功能 第三,要熟悉这个开源产品的数据库结构,还要理解⾥⾯核⼼⽂件的内容,⽐如:数据库类怎么使⽤,常 ⽤的安全过滤是怎么做的,模板引擎⼜是怎么使⽤的等等⼀些核⼼内容。
还要知道这个开源产品的⽬录结构,就 是说,你要知道哪是放模板的,哪⾥是做控制的,哪⾥是放样式的,等等 第四, 熟悉你的需求,对需求进⾏解读,然后确定如何对这个开源产品进⾏修改和扩展 经过⼆次开发后,你能获取到的是什么呢? 你能完成你的需求,你能积累经验,这⾥的经验有你⾃⼰的,也有别⼈的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基础知识
一、文件夹功能说明
1、根目录:前台程序文件
2、admin:后台程序文件夹
–根目录:后台程序文件*.php文件
–help\zh_cn:各功能的帮助文件*.xml文件
–images:后台页面用图片
–includes:后台公用文件和函数
–js:后台用js脚本
–styles:后台用样式表
–templates:后台页面模板*.htm文件
3、api:调用API的系统公用函数
4、cert:存放证书的文件夹
5、data:数据连接设置等,包括各种广告的上传图片等
–afficheimg:首页flash广告图片
–brandlogo:品牌logo
6、images:上传商品图片文件夹,按日期分目录
–200902:按月份划分商品图片
–upload:上传文件夹,包括file、flash、image和media
7、includes:前台公用文件和函数
–codetable:语言对应的代码表
–fckeditor:开源html文本编辑器
–modules\convert:shopex转换文件
–modules\cron:如自动上下架、ip删除等函数
–modules\integrates:整合各种插件和函数基础类
–modules\payment:各种支付接口插件
–modules\shipping:各种送货方式插件
8、install:系统安装文件夹,用后请删除
9、js:前台用js脚本
–calendar:日历控件
10、languages:语言文件
–zh_cn:简体中文语言文件,存储简体中文下使用的函数变量等–zh_tw:繁体中文语言文件,存储繁体中文下使用的函数变量等
11、temp:存放临时缓存等文件
12、themes:模板文件夹,可以随意拷贝模板样式
13、wap:手机浏览程序
–includes;公用文件和函数
–templates:页面模板*.wml文件
14、widget:搜狐博客小插件
二、主要文件功能说明
模板文件说明
style.css –模板所使用样式表
activity.dwt –活动列表
article.dwt –文章内容页
article_cat.dwt –文章列表页
article_pro.dwt –前一篇文章
auction.dwt –拍卖商品首页
auction_list.dwt –拍卖商品详细页
brand.dwt –商品品牌页
brand_list.dwt –品牌列表页
catalog.dwt –所有商品分类列表页
category.dwt –商品列表页
compare.dwt –商品比较页
exchange_goods.dwt –积分商品详细页
exchange_list.dwt –积分商品首页
flow.dwt –购物车和购物流程页
gallery.dwt –商品相册页
goods.dwt –商品详情页
group_buy_goods.dwt –团购商品详细页
group_buy_list.dwt –团购商品首页
index.dwt –商城首页
links_apply.dwt –在线申请友情链接页
message.dwt –信息提示页(错误处理等)
message_board.dwt –留言板页面
myship.dwt –配送方式页
pick_out.dwt –选购中心页
quotation.dwt –报价单页面
receive.dwt –收货确认信息页
respond.dwt –在线支付提示信息页
secarch.dwt –商品搜索页
snatch.dwt –夺宝奇兵页
tag_cloud.dwt –标签云页
topic.dwt –专题首页
user_clips.dwt –用户中心页(包含:欢迎页,我的留言,我的标签,收藏商品,缺货登记列表,添加缺货登记等)
user_passport.dwt –用户安全页(包含:会员登录,会员注册,找回密码等)
user_transaction.dwt –用户中心页(包含:个人资料,我的红包,添加红包,我的订单,订单详情,合并订单,订单状态,商品列表,费用总计,收货人信息,支付方式,其他信息,会员余额)
wholesale_list.dwt –批发活动列表页
library 库文件说明
ad_position.lbi –广告
article_category_tree.lbi –文章分类树
auction.lbi –拍卖商品
bought_goods.lbi –购买过此商品的人购买过哪些商品
brand_goods.lbi –品牌商品
brands.lbi –所有品牌
cart.lbi –购物车
cat_articles.lbi –分类下的文章
cat_goods.lbi –分类下的商品category_tree.lbi –商品分类树categorys.lbi –所有小类+商品数量comments.lbi –用户评论comments_list.lbi –评论列表consignee.lbi –收货人信息
email_list.lbi –邮件订阅
exchange_hot.lbi –积分商城热卖商品exchange_list.lbi –积分商城商品列表filter_attr.lbi –扩展属性
goods_article.lbi –商品相关文章列表goods_attrlinked.lbi –属性关联商品goods_fittings.lbi –相关配件列表goods_gallery.lbi –商品相册
goods_list.lbi –商品列表
goods_related.lbi –相关商品列表goods_tags.lbi –商品标签
group_buy.lbi –团购商品
help.lbi –帮助内容
history.lbi –历史记录
invoice_query.lbi –发货单查询member.lbi –会员登录区
member_info.lbi –会员信息myship.lbi –收货信息
new_articles.lbi –最新文章
online.lbi –在线用户
order_query.lbi –订单查询
order_total.lbi –订单费用总数
page_footer.lbi -页面底部
page_header.lbi -页面顶部
pages.lbi –列表分页
price_grade.lbi –价格区间promotion_info.lbi –促销信息recommend_best.lbi –精品推荐recommend_hot.lbi –热卖商品recommend_new.lbi –最新商品recommend_promotion.lbi –特价商品relatetag.lbi -
snatch.lbi –夺宝奇兵
snatch_price.lbi –夺宝奇兵价格列表top10.lbi –销售排行
ur_here.lbi –当前位置
user_menu.lbi –用户菜单
vote.lbi –用户投票
vote_list.lbi –在线调查
本文转自最模板,原文地址:/php/ecshop/351.html。