ecshop讲解
目录
ecshop讲解 (1)
一、目前市场流行的电子商城系统 (1)
二、ecshop的介绍 (1)
三、ecshop的安装 (2)
1、下载软件包,并进行解压。 (2)
四、目录结构 (4)
五、ecshop里面的程序架构 (5)
六、小试牛刀 (6)
七、使用邮箱登陆: (11)
1、ecshop里面的数据库操作; (11)
2、如何实现通过邮箱登陆。 (12)
八、模板的替换 (16)
1、准备模板文件, (16)
2、完成首页 (17)
3、完成栏目页面的套用 (20)
4、在栏目页面取出栏目对应的数据 (21)
九、放大镜效果 (23)
一、目前市场流行的电子商城系统
Ecshop
shopNC(代码部分加密)
国外:zencart,magento(麦金斗)
一般在外贸的公司,用zencart,magento用的多一些.
Magento是基于zendframework来开发的.
二、ecshop的介绍
ecshop是上海商派网络科技有限公司(shopEx)旗下—B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于php语言及mysql数据库架构开发的跨平台开源程序。历史:
2006年6月,ecshop推出第一个版本1.0
2007年5月到6月,ecshop管理层将ecshop卖给康盛世纪。
2008年10月10日,ecshop系列软件(包括ecshop,ecmall, maifou等),被上海商派网络科技有限公司(shopEx)整体收购。
2012年4月,发布ecshop v2.7.3 release 0411
三、ecshop的安装
1、下载软件包,并进行解压。
下载地址:
https://www.wendangku.net/doc/ca2573530.html,/download.php
2、新建一个虚拟主机:
3、把解压的upload目录拷贝到虚拟主机目录里面,根据虚拟主机的配置,改名为myshop
4、要修改ecshop里面的源代码,防止在高版本的php环境中出现一些提示。
(1)打开ecshop目录里面的includes目录下面的init.php文件
把error_reporting该为error_reporting(0)
(2)打开ecshop 目录下面的admin目录下面的includes目录下面的init.php文件,做同样的修改。
5、通过浏览器访问域名开始安装;
四、目录结构
admin:后台的程序及静态页
includes:公共的核心类库,比如数据库操作类、图片处理类、Smarty类以及常用的功能函数等。
themes:前台所有的静态页
mobile:手机客户端访问时的页面
install :安装目录
languages:语言包的目录(后台->商店设置->基本设置->系统语言)
temp:Smarty有关的目录,比如缓存,编译目录。
五、ecshop里面的程序架构
1:Ecshop属于面向过程+函数调用为主, 而且没用单入口模式具体的功能对应具体的页面. 2:用的模板引擎是简化的smarty模板.
ecshop的程序流程(MVC)及几个重要的目录
第一步:包括include/init.php,进行数据库以及smarty等的初始化工作
第二步:调用相关函数从数据库中取数据,然后Assign
第三步:display一个静态页
总结:也是一个MVC的架构,只不过不是纯OOP的,也不是单一入口的。
纯OOP:所有的东西必须属于一个类,不能游离在类的外面。
控制器: 根目录下的php文件
模型层:includes/下的一些以lib_开头的文件,如:lib_article:文件相关操作。
视图层:themes/ 前台静态页
六、小试牛刀
修改面包屑导航的连接符。
(1)先在页面的源文件中找出显示面包屑导航的位置。
2、查找goods.php页面对应的模板文件。
3、打开goods.php对应的模板文件goods.dwt文件。
4、根据分析页面的源文件,在模板文件中查找id=”ur_here”的位置
找到的ur_here位置
通过分析goods.dwt文件,ur_here位置,是引入了ur_here.lbi文件。
注意:在ecshop的模板中,有很多被分割的小文件,存储在library目录下面。
面包屑导航的内容就存储在被分割的,ur_here.lbi文件中。
注意:
5、打开library目录下面的ur_here.lbi文件。
{$lang.ur_here}是一个语言包的内容,是显示“当前位置”字样的。
{$ur_here}是显示的面包屑导航的内容。
6、查找goods.php文件,找出分配的$ur_here变量:
在该文件中,肯定有一个$smarty->assign(‘ur_here’,$ur_here)的操作。
7、查找assign_ur_here的函数,
通过查找,在goods.php页面中,没有查找到assign_ur_here函数,因此需要在被引入的init.php文件中查找。
8、打开includes目录下面的init.php文件。
通过查找在init.php 文件中,没有查找到assign_ur_here,因此需要在init.php文件中引入的其他文件里面查找。
通过查找,在includes目录下面的lib_main.php文件中找到。
9、修改assign_ur_hrere函数。
如果修改完成后,没有效果,则需要进入后台,清除缓存。
最后效果如下:
作业:
(1)把标题里面的“powery by ecshop”字样去掉。(2)在页面的尾部把“powery by ecshop”字样去掉。
七、使用邮箱登陆:
1、ecshop里面的数据库操作;
$ecs->table('没有表前缀的表名')//获取具有表前缀的表名$row = $db->GetRow($sql);//返回的是一个一维数组。$db->getOne($sql);//是获取一个具体的值。
$db->getAll($sql);//是获取多行数据,是一个二维数组。
2、如何实现通过邮箱登陆。
思路:在ecshop里面默认是通过用户名完成登录的,
对输入的用户名进行判断,如果是一个邮箱,则根据该邮箱找出用户名。因为用户名和邮箱是一一对应的关系。
(1)修改会员登录的表单,把“用户名”改为”用户名或邮箱”
分析user.php页面,该页面是完成多个业务逻辑的。我们就找“显示登录”的哪个代码段。
查找对应的“用户登录”界面的,模板文件
(2)打开登录界面的模板文件:user_passport.dwt,找到显示用户名的位置,发现其是一个语言包内容。
打开对应的语言包文件,添加一个语言包。
语言包的文件在languages目录下面,默认支持3套语言包,
根据user.php文件的开头引入的语言包,找到对应的语言包文件。
因此我们就打开语言包对应的user.php文件,添加如下语言包。
(3)在“用户登录”的模板中使用该语言包
(4)在user.php文件中,查找处理用户登录的代码段。
注意:is_email是ecshop里面定义的一个函数,不是系统函数。
八、模板的替换
1、准备模板文件,
(1)把需要的模板文件的后缀改成ecshop支持的后缀格式:
(2)模板文件和样式文件是同级的,要和ecshop里面模板默认的布局一致。(3)要一个样式文件,style. css文件的前10行是该模板文件的说明。
(5)模板的缩略图文件:screenshot.png(该图片的宽度:200*150)
效果:
2、完成首页
把首页的模板文件后缀改名为.dwt的。
(1)取出首页里面的导航信息。
把模板中的头部信息单独摘出来,做成一个文件page_header.lbi
在index.dwt模板中使用如下标签引入;
(2)取出栏目的信息
第一步:把模板中显示栏目信息的代码移动到一个library/category_tree.lbi
再用 标签引入被分割的小文件。
第二步:找出默认模板中显示栏目的标签。
(3)在首页中取出精品数据
思路:查找默认模板中,显示精品商品的标签。
把我们自己的模板中,显示精品推荐商品的位置,添加标签:
3、完成栏目页面的套用
(1)查看栏目页面使用的模板名称
根据导航的连接,栏目页面的php页面是category.php页面。打开该页面查看对应的模板文件。
ecshop留言板添加一项必填项-联系人 一、首先要为你的数据库的ecs_comment增加一个字段以存储联系人姓名: 可以直接在后台-->数据库管理--->SQL查询里里直接执行以下sql语句: alter table ecs_comment add contact varchar(60) not null default ''; 此处注意,这条sql语句中的表前缀ecs_要和你网站的前缀一致,不然会报错,如果你不知道你ecshop网站的数据表前缀. 二: 步骤1. 更改文件message_board.dwt