OPENCART 程序架构
opencart 和其它的购物车程序不同,市面上的购物车程序大都使用现成的模版引擎 来开发,而 opencart 则是基于 MVC+L 的模式来作为开发的架构进而全新开发的一套系统,所以程序代码相当轻巧,执行效率更是超越其它购物程序,这样 的架构和程序代码让后续的程序开发人员在编写时更容易且清楚,程序和视觉设计分离,有利于日后的维护,而有别于其它的 MVC 模式,opencart 更加入了 语言层,能够更轻松完成多语言的实现

MVC+L 模式
Model – 数据和组件处理
View – 外观处理
Controller – 主控制程序
Language – 语言处理
OpenCart 相对于 MVC+L 的程序位置

OpenCart 相对于 MVC+L 的程序位置
前台
M: \catalog\model\
V: \catalog\view\
C: \catalog\controller\
L: \catalog\language\
后台
M: \admin\model\
V: \admin\view\
C: \admin\controller\
L: \admin\language\

参考上面的程序位置,我们如果要修改外观模版就到 catalog\view\找相关程序修改,要修改控制的程序就到 catalog\controller\,以此类推,以下是 opencart 的主要目录
OpenCart 主要目录
\admin 后台
\catalog 前台
\download 下载类商品存放位置(由程控,非直接复制档案至此)
\image 图片文件
\install 安装档(安全起见,安装完请删除)
\system 系统程序
\.htaccess 网址改写控制档(SEO urls)
\config.php 系统配置文件
\php.ini php 设定

前台程序行表(显示接口)

显示接口的程序除了少数几个是共享一个控制程序外,其余的和控制程序的位置大致相同, 像结账功能的 guest_step_3.php 直接输出到 confirm.tpl 显示,所以就没有
guest_step_3.tpl,还有 module 功 能模块的 bestseller.tpl 和 bestseller_home.tpl同样受 bestseller.php 控制,所以也找不到 bestseller_home.php,还有 success.tpl
成功显示接口也是一样,只要是动作完成或成功的画面大都是使用它来作输出,其余的请 自行体会,以下就是前台显示接口的程序行表
Catalog\view\theme\your template\template\account 会员功能
—— account.tpl 会员功能主页

—— address.tpl 地址管理(更改,新增)
—— addresses.tpl 地址管理(列表,删除)
—— create.tpl 创建账号
—— download.tpl 商品下载
—— edit.tpl 编辑个人资料
—— forgotten.tpl 取回密码
—— history.tpl 订单记录列表
—— invoice.tpl 折扣券接收处理程序
—— login.tpl 登入
—— newsletter.tpl 电子报订阅取消
—— password.tpl 密码变更

Catalog\view\theme\your template\template\checkout 结账功能

—— address.tpl 地址处理(配送,账单地址)
—— cart.tpl 浏览购物清单(购物车)
—— confirm.tpl 结账功能-最后确认
—— guest_step_1.tpl 免登入结账第一步
—— guest_step_2.tpl 免登入结账第二步
—— payment.tpl 结账功能-选择付款方式
—— shipping.tpl 结账功能-选择配送方式

Catalog\view\theme\your template\template\common 主要版面
—— column_left.tpl 左栏模块加载
—— column_right.tpl 右栏模块加载
—— footer.tpl 页尾
—— header.tpl 页首
—— home.tpl 首页

—— maintenance.tpl 维护中显示页
—— success.tpl 成功讯息
Catalog\view\theme\your template\template\error 404 错误
—— not_found.tpl 无此页
Catalog\view\theme\your template\template\information 网站信息
—— contact.tpl 发送信件给店家
—— information.tpl 商店文章
—— sitemap.tpl 网站导览
Catalog\view\theme\your template\template\mail 订单通知信
—— order_confirm.tpl 订单通知信
Catalog\view\theme\your template\template\module 功能模块
—— bestseller.tpl 畅销商品(侧栏)
—— bestseller_home.tpl 畅销商品(中间)
—— cart.tpl 购物清单(侧栏)
—— category.tpl 目录(侧栏)
—— featured.tpl 推荐商品(侧栏)
—— featured_home.tpl 推荐商品(中间)
—— google_talk.tpl google 实时通(侧栏)
—— information.tpl 商店文章(侧栏)
—— latest.tpl 最新商品(侧栏)
—— latest_home.tpl 最新商品(中间)
—— manufacturer.tpl 品牌选单(侧栏)
—— special.tpl 特价商品(侧栏)
—— special_home.tpl 特价商品(中间)
Catalog\view\theme\your template\template\product 商品功能
—— category.tpl 同目录商品列表
—— manufacturer.tpl 同品牌商品列表
—— product.tpl 商品详细内容页
—— review.tpl 商品评论
—— search.tpl 搜寻功能
—— special.tpl 特价商品列表
Catalog\view\theme\your template\template\payment 付款模块
以上就是前台显示接口程序的列表

 

前台程序行表(控制接口)
刚刚学习一套系统或程序时总是在一片程序海中寻找,要改一个地方都还要找来找去,实在 有够麻烦,看其它程序像 oscommerce 或 zencart 都有人将程序位置列出,让想修改的人能够更快找到相关的程序位置,节省很多时间,也减少一开 始的不熟悉带来的麻烦,在网上找了许久还找不到 opencart 关于这类的信息,就花了点时间整理一下,下面是前台”控制程序”的列表和说明

Catalog\controller\account 会员功能
—— account.php 会员功能主页
—— address.php 会员功能-地址管理
—— create.php 创建账号
—— download.php 会员功能-商品下载
—— edit.php 会员功能-编辑个人资料
—— forgotten.php 取回密码
—— history.php 会员功能-订单记录列表
—— invoice.php 折扣券接收处理程序
—— login.php 登入
—— logout.php 注销完成页
—— newsletter.php 会员功能-电子报订阅取消
—— password.php 会员功能-密码变更
—— success.php 创建账号成功讯息
Catalog\controller\checkout 结账功能
—— address.php 结账功能-地址处理(配送,账单..地址)
—— cart.php 浏览购物清单(购物车)
—— confirm.php 结账功能-最后确认
—— guest_step_1.php 免登入结账第一步
—— guest_step_2.php 免登入结账第二步
—— guest_step_3.php 免登入结账第三步
—— payment.php 结账功能-选择付款方式
—— shipping.php 结账功能-选择配送方式
—— success.php 完成结账成功讯息
Catalog\controller\common 主要版面
—— column_left.php 左栏模块加载
—— column_right.php 右栏模块加载
—— footer.php 页尾
—— header.php 页首
—— home.php 首页
—— maintenance.php 维护中显示页
—— seo_url.php 网址优化处理程序之一(缩短网址)
Catalog\controller\error 404 错误
—— not_found.php 无此页
Catalog\controller\feed 网站地图和订阅
—— google_base.php 网站订阅(feed)
—— google_sitemap.php 网站地图
Catalog\controller\information 网站信息
—— contact.php 发送信件给店家
—— information.php 商店文章
—— sitemap.php 网站导览
Catalog\controller\module 功能模块
—— bestseller.php 畅销商品
—— cart.php 购物清单(侧栏)
—— category.php 目录(侧栏)
—— featured.php 推荐商品
—— google_talk.php google 实时通(侧栏)
—— information.php 商店文章(侧栏)
—— latest.php 最新商品
—— manufacturer.php 品牌选单(侧栏)
—— special.php 特价商品
Catalog\controller\product 商品功能
—— category.php 同目录商品列表
—— manufacturer.php 同品牌商品列表
—— product.php 商品详细内容页
—— search.php 搜寻功能
—— special.php 特价商品列表
Catalog\controller\payment 付款模块
以上就是前台控制程序的列表

看到很多使用 opencart 架设的商店仅使用单一语言和货币,目标应该是针对单一国家 做销售,这时候语言和货币选单似乎就显得有点多于,只需要修改 header.tpl 就可以删 掉,以下是以 1.4.9.1 版做范例且模版为默认模版,其他版本请发挥想象力,大致上是相

同的 1. 开启 catalog\view\theme\default\template\common\header.tpl

2. 找到下列这段程序代码(大约第 110 到 151 行),并删除它即可除去货币和语言选单

<div class="div7">
<?php if ($currencies) { ?>
<form action="<?php echo str_replace('&', '&amp;', $action); ?>"
method="post" enctype="multipart/form-data" id="currency_form"> 
<div>
<?php foreach ($currencies as $currency) { ?>
<?php if ($currency['code'] == $currency_code) { ?>
<div><a><?php echo $currency['title']; ?></a></div>
<?php } ?>
<?php } ?>
<div>
<?php foreach ($currencies as $currency) { ?>
<a onclick="$('input[name=\'currency_code\']').attr('value', '<?php
echo $currency['code']; ?>'); $('#currency_form').submit();"><?php echo
$currency['title']; ?></a>
<?php } ?>
</div>
</div>
<div style="display: inline;">
<input type="hidden" name="currency_code" value="" />
<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
</div>
</form>
<?php } ?>
<?php if ($languages) { ?>
<form action="<?php echo str_replace('&', '&amp;', $action); ?>"
method="post" enctype="multipart/form-data" id="language_form">
<div>
<?php foreach ($languages as $language) { ?>
<?php if ($language['code'] == $language_code) { ?>
<div><a><img src="image/flags/<?php echo $language['image']; ?>"
alt="<?php echo $language['name']; ?>" />&nbsp;&nbsp;<?php echo
$language['name']; ?></a></div> 
<?php } ?>
<?php } ?>
<div>
<?php foreach ($languages as $language) { ?>
<a onclick="$('input[name=\'language_code\']').attr('value', '<?php
echo $language['code']; ?>'); $('#language_form').submit();"><img
src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo
$language['name']; ?>" />&nbsp;&nbsp;<?php echo
$language['name']; ?></a>
<?php } ?>
</div>
</div>
<div>
<input type="hidden" name="language_code" value="" />
<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
</div>
</form>
<?php } ?>
</div>

贴上:OpenCart二次开发,如有错误欢迎提出…

 

打赏