目录

X-Cart 学习笔记(一)了解和安装X-Cart

X-Cart 学习笔记(二)X-Cart框架1

X-Cart 学习笔记(三)X-Cart框架2

X-Cart 学习笔记(四)常见操作

3、了解X-Cart 站点目录结构

在进行开发之前,我们首先需要了解X-Cart系统的结构。

以下是我在PhpStorm上面的截图:

下面是对上面截图的说明:

根目录

客户在访问网站的时候所需要浏览的页面(除了一些自定义的静态页面)全部都在站点跟目录下面,如登陆页面login.php,产品页面product.php。

跟目录下面还有一些重要的文件,在开发中要非常的注意:

  • prepare.php 为适应不同服务器与数据库版本作准备、重改一些函数;
  • init.php 初始化文件(加载必要函数、设定内存限制、数据表字段构建等);
  • config.php 配置文件,包括站点的auto code, security key等信息的验证等,该文件非常重要,不能轻易手动更改,否则会照成整个站点打不开的情况。
  • auth.php  用户认证
  • cleanup.php 用于清理站点缓存。请求的时候需要加上Auth code, 如:

www.x-cart-plus.com/cleanup.php?auth_code=XXXXXXXXXXXXXXXXXXXXX

  • top.inc.php定义核心常量与变量。

由于x-cart使用的时模块开发,很多模块代码都是公用的,所以,更目录下的*.php会加在其他地方的*.php。如,使用x_load()方法加载include/func文件夹下面的代码文件。

admin文件夹

admin用户在进入网站,访问的页面都是直接请求的admin目录下面的文件,如admin访问搜索页面请求的是:http://www.x-cart-plus.com/admin/search.php

常用文件:

  • admin/home.php 起始文件
  • admin/auth.php 用户认证文件(主要是利用session保存用户登录信息到数据库)
  • admin/home.tpl 包含菜单 折扣 位置 认证等模板(main/authentication.tpl)、
  • admin/main.php 仪表板接口 (xcart运行状况)
  • admin/configuration.php  大体设置与模块配置

catalog 文件夹

该文件夹用来保存admin在后台管理页面HTML catalog生成的HTML页面。

files 文件夹

用来保存上传到站点的文件,当管理员在选择站点中文件(例如图片)进行设置的时候,访问的就是该文件夹下面的文件。

images 文件夹

该文件用来保存站点中的各种图片,如产品分类的图片,产品的图片,广告图片等等。

include 文件夹

这个文件夹下面的文件非常的重要,相当于是系统的逻辑处理和数据处理层,逻辑处理的文件直接保存在include文件夹下面。详细介绍如下:

  1. include/classes:用来保存系统用到的几个大的类,如数据存储的类class.DataStorage.php;
  2. include/func:数据处理层的文件;
  3. include/lib:用于保存一些程序库,如:

include/lib/smarty --smarty模板引擎

include/lib/phpmailer --邮件收发用的

  1. include/payment:与支付相关的处理文件;
  2. include/templater:smarty继承与插件扩展。
  3. include目录下文件:逻辑处理的相关文件,如:

include/xcartmailer.php  --smtp发送邮件类

module 文件夹

该文件夹用来保存需要加载的模块的控制器代码,如订单管理模块的控制器代码就在目录module/ Advanced_Order_Management下面。

partner 文件夹

产家提供商设计到页面都保存在该目录下。

payment 文件夹

与支付相关的控制器文件。

provider 文件夹

厂家提供商相关的处理文件。

shipping 文件夹

与运费相关的处理文件。

skin 文件夹

用于保存不同的皮肤,无论是前台还是后的模版页面全都保存在skin文件夹下面。请见详细介绍章节。

skin_backup 文件夹

用于保存备份的皮肤文件。

sql 文件夹

用于保存一些*.sql文件。

var 文件夹

用于保存系统日志文件,缓存文件,临时文件等。可以清理。

其他文件夹

customer文件夹,mail 文件夹,schemes 文件夹,tools 文件夹,upgrade 文件夹,这些不是非常的清楚就不做介绍了。

4、skin文件夹

skin 文件夹保存了系统的所有皮肤,含有系统所有的模版文件,无论是前台页面的还是admin页面的。

在skin文件夹下有一个common_files的文件夹,这个文件夹保存了系统的所有的基础模版,其他的文件夹都是不同的皮肤,是在common_files的基础上的二次开发,也可以说是重写。在这里,我就把common_files文件夹下的文件详细介绍一下:

  • common_files目录下文件:改目录下的模版文件基本都是所有页面公共的模版,如bottom.tpl, dialog.tpl;
  • 404:很显然,该文件夹用于存储错误提示页面;
  • common_files/admin:admin管理页面的模版;
  • common_files/buttons:网站一些按钮的模版;
  • common_files/css:网站所有的模版样式文件;
  • common_files/customer:前台页面的模版;
  • common_files/help:帮助模块的模版;
  • common_files/images:模版用到的一些图片;
  • common_files/js:模版用到的js文件;
  • common_files/lib:模版用到的一些js类库,如jquery;
  • common_files/mail:系统发送各种邮件时,各模块所用的模版;
  • common_files/main:admin管理页面的一些模版;
  • common_files/modules:前台页面的模块模版,如客户评价模版Customer_Reviews
  • common_files/pages:admin创建的静态页面;
  • common_files/partner:与合作伙伴相关页面的模版;
  • common_files/payment:支付模块的模版;
  • common_files/provider:厂商供应商模版;
  • common_files/fulfilment与common_files/single:包含home.tpl与menu_box.tpl。

5、自带bug

更新order问题

在Edit ordered products页面,修改订单,点击update,当前页面的数据修改了,但是数据没有保存到数据库,原因就是没有调用func.edit.php中的更新函数func_update_order,调用了即可修复。

Taxed price问题

Related products 和 Bestsellers都没有计算taxed price, 不能应用自定义的tax在上面。

修改如下:

func.product.php  1387行,

if ($current_area == 'C' && empty($skip_tables['product_taxes']){
//…… } To: if ($current_area == 'C' && !empty($skip_tables['product_taxes']){ //…… }

  

Edit order total问题

Edit order totals页面,管理员在修改了订单的payment method, delivery method, discount, coupon, shipping price等之后,点击update当页面刷新的时候会看到修改后的状态,但是这些修改的数据并没有更新到数据库中。

如果有错误,请指出来,共同学习,谢谢。

尊重作者,转载请说明出处。

X-Cart 学习笔记(三)X-Cart框架2的更多相关文章

  1. Gin-Go学习笔记三:Gin-Web框架 JS分页

    JS 分页 1>     JS分页,业务逻辑 (1)     分页采用的是一个叫jquery.pagination.js的一个jquery插件 (2)     需要jquery的支持,此项目中使 ...

  2. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  3. muduo网络库学习笔记(三)TimerQueue定时器队列

    目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...

  4. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  5. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  6. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  7. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  8. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  9. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  10. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

随机推荐

  1. ubuntu 14.04 下找不到命令,路径出错

    在安装一些东西时,可能操作上不小心把路径覆盖或打错,造成一些基本命令如ls mkdir等无法使用,就会出现以下提示错误. 错误: 由于/usr/bin 不在PATH 环境变量中,故无法找到该命令 根本 ...

  2. uboot make xxx_config与make的过程分析

    一直很想捋清楚make xxx_config,make 的执行过程. 在uboot的makefile中有这样的话: %_config::unconfig @$(MKCONFIG) -A $(@:_co ...

  3. 【matlab】MATLAB程序调试方法和过程

    3.8  MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...

  4. docker 源码分析 二(基于1.8.2版本),docker client与daemon交互

    (2) 那我们通过docker客户端发送一个命令,docker是怎样接收到并处理的呢,我们就举个例子来看一下,比如docker pull 命令: 我们回到 docker/docker.go 中,在上一 ...

  5. UIMenuController的使用,对UILabel拷贝以及定制菜单

    分类: ios开发2012-08-06 17:15 11961人阅读 评论(0) 收藏 举报 actionmenuuiview 1. Menu所处的View必须实现 – (BOOL)canBecome ...

  6. PC缺少一个或多个网络协议 qq可登录(win10)

    打开适配器连接 1打开网络适配器   2卸载microsoft  3 网络客户端   4重启

  7. linux命令:whereis

    1.命令介绍: whereis用来查找二进制文件,源代码文件和帮助说明文件,whereis是在系统的数据库文件中查找,所以速度非常快,但是系统的文件数据库不是实时更新的,默认一个星期更新一次. 2.命 ...

  8. import和from import陷阱二

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 #from os import path import os.path path='/home/vamei/doc/file.txt' ...

  9. HDU 1209

    http://acm.hdu.edu.cn/showproblem.php?pid=1209 水题,按五个时针分针成的锐角从小到大排序,角度相同时间从早到晚,输出中间的那个 时针一小时走30度,一分钟 ...

  10. 第三个Sprint冲刺第三天

    讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:增强了界面的效果,改善了视角