20150411--Dede二次开发-01

image

目录

一、目前市场流行的电子商城系统 1

二、ecshop的介绍 1

三、安装 2

四、echsop 的目录结构 5

五、分析ecshop里面程序的架构 5

六、小试牛刀把面包屑导航改成两个大于号 6

1、根据php页面找出该页面对应的模板。 6

2、找到category.dwt模板文件,打开找到面包屑导航的位置 6

3、在library目录中找出  ur_here.lbi文件 7

七、init.php文件分析 9

八、完成在用户登录是, 可以使用邮箱登录。 11

九、完成余额显示: 15

十、在添加新商品的时候,添加一个seotitle,便于在商品的详情页面显示。 17

十一、套模板 20

1、把模板文件拷贝到themes目录下面。模板的样式和图片的路径要和ecshop里面默认的一致 20

2、在模板文件中取出导航信息。 21

3、显示出商品的分类 22

4、取出热销排行 24

5、取出精品推荐数据 25

一、目前市场流行的电子商城系统

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

三、安装

1、下载解压,把upload目录拷贝网站的根目录(虚拟主机目录)

wpsB619.tmpwpsB61A.tmpwpsB61B.tmpwpsB61C.tmpwpsB62D.tmpwpsB62E.tmpwpsB63F.tmp

2、配置一个虚拟主机

wpsB65F.tmp

3、如果你的php的版本比较高,则屏蔽一些输出提示错误。

wpsB66F.tmp

打开includes目录下面的init.php文件

wpsB680.tmp

wpsB6A0.tmp

wpsB6B1.tmp

在打开后台目录(admin)的init.php文件。

wpsB6D1.tmp

4、执行安装,在浏览器里面访问域名即可。

wpsB6D2.tmp

四、echsop 的目录结构

wpsB6E3.tmpwpsB6E4.tmpwpsB6E5.tmpwpsB6F5.tmpwpsB6F6.tmpwpsB6F7.tmpwpsB6F8.tmpwpsB709.tmpwpsB70A.tmpwpsB70B.tmpwpsB72B.tmp

五、分析ecshop里面程序的架构

1:Ecshop属于面向过程+函数调用为主, 而且没用单入口模式具体的功能对应具体的页面.

2:用的模板引擎是简化的smarty模板.

第一步:包括include/init.php,进行数据库以及smarty等的初始化工作

第二步:调用相关函数从数据库中取数据,然后Assign

第三步:display一个静态页

总结:也是一个MVC的架构,只不过不是纯OOP的,也不是单一入口的。

纯OOP:所有的东西必须属于一个类,不能游离在类的外面。

控制器: 根目录下的php文件

模型层:includes/下的一些以lib_开头的文件,如:lib_article:文件相关操作。

视图层:themes/ 前台静态页

六、小试牛刀把面包屑导航改成两个大于号

wpsB73C.tmp

1、根据php页面找出该页面对应的模板。

wpsB74D.tmp

wpsB75D.tmp

2、找到category.dwt模板文件,打开找到面包屑导航的位置

思路:根据在静态页面分析:只需在模板中找到<div id=”ur_here”>位置,即可找到。

wpsB77D.tmp

通过分析,导航是在library目录下面的ur_here.lbi文件中,

wpsB78E.tmp

3、在library目录中找出  ur_here.lbi文件

发现导航的输出是通过{$ur_here}变量输出的

wpsB78F.tmp

说明在php页面中必定有一个$smarty->assign(‘ur_here’,);

wpsB7AF.tmp

搜索当前没有该函数,说明该函数是在其他页面中定义的。

打开init.php文件,通过该文件中require的其他文件进行查找

wpsB7C0.tmp

最后发现是在lib_main.php文件中的。

wpsB7E0.tmp

自己练习 :去掉标题里面的powered by echsop字样。

wpsB7F1.tmp

七、init.php文件分析

1、定义一个根目录,便于引入其他的文件。

wpsB7F2.tmp

2、判断是否安装
wpsB822.tmp

3、初始化设置,当没有权限修改服务器在中的php.ini文件时可以自己在页面通过ini_set函数来完成修改。

wpsB832.tmp

4、判断魔术引号是否开启,如果没有开启则要自定义函数完成数据的过滤。

wpsB833.tmp

$sql=”select * from user where username=’$username’#’ and password=’$password’”;

5、初始化数据库的类

wpsB854.tmp

$ecs->table('sessions_data')//返回参数的实际表名

6、载入语言包文件目录

wpsB855.tmp

7、判断访问来者

wpsB875.tmp

wpsB895.tmp

8、创建smarty对象

wpsB8A6.tmp

原文地址:https://www.cnblogs.com/lifushan/p/5472011.html