zencart目录结构及模板修改
Zencart二次开发资料

Zencart二次开发资料(由 zencart-magento论坛整理)数据库分析模块机制分析admin后台管理目录cache 缓存目录docs 文档目录download 用于存放下载类商品editors 所见即所得编辑器email 电子邮件模版目录extras 测试文件目录images 商品图片目录includes 前台media 媒体类商品目录pub 公用目录(空)includes里面的目录:auto_loaders 自动加载的脚本classes 主要的类函数extra_cart_actions 空extra_configures 第三方模块设置文件extra_datafiles 第三方模块数据表名定义functions 主要的功能函数index_filters 过滤功能init_includes 初始化功能languages 语言文件包目录modules 所有的模块目录templates 模版目录zencart与oscommerce在某中意义上很相似,可以看做是一个升级版,两者之间共用了很多相同的函数或类,不同的是他们是按照不同的方式组织在一起zencart 采用摸板,单一文件index.php入口,后面跟参数,参数决定显示的内容,基本上网页变换的部分只是中间的主区域重点介绍几个文件includes目录,该目录无疑是zencart的核心(前台),通常情况下index.php第一句话则是包含include目录下的application_top.php文件,如:require('includes/application_top.php');在该系统中application_top.php负责的是初始化工作,比如加载配置文件include('includes/configure.php');如果系统程序没检测到该文件的存在则会尝试调用安装文件,然后它会自动遍历include/extra_configures下的配置文件并包含进来在加载了系统配置文件以后接下来是一个非常重要的文件,这也导致了zencart和oscommerce感觉上很大不同的原因(事实上都一回事)首先调用一个文件require('includes/initsystem.php'); 在initsystem.php中最先加载include/auto_loaders/config.core.php,config.core.php 是一个二围数组$autoLoadConfig,即以数组的形式保存文件的信息供后面文件调用,然后系统会接着加载完include/auto_loaders目录下所有文件名匹配$loaderPrefix(默认为config)的文件上面程序执行完以后就可以加载自动执行程序了require('includes/autoload_func.php');在这里它会遍历$autoLoadConfig数组,它最终执行的效果会包含所有必须用到的函数或者类的定义,还有变量的初始化,config.core.php里面的注释比较清楚比如$autoLoadConfig[0][] = array('autoType'=>'class','loadFile'=>'class.base.php');在autoload_func.php里面执行完以后的效果就是require(DIR_WS_CLASSES . 'class.base.php'),事实上本人是不赞成这种写法,大部分的初始化化工作是通过包含init_includes目录下的文件来实现的如: $autoLoadConfig[110][] = array('autoType'=>'init_script','loadFile'=> 'init_templates.php');它在执行完autoload_func.php文件后就已经加载了init_includes目录下的init_templates.php文件,由于里面包含的文件太多,在这就不做一一介绍了下面我来介绍下zencart是怎么根据摸版把内容显示出来的require('includes/application_top.php');初始化所以需要用到的公共信息以后接下来就应该是显示了在index.php的第29行有句$directory_array = $template->get_template_part($code_page_directory, '/^header_php/');由于所有初始化工作已经完成,所有我们就可以在上面的文件找到他们的定义,如$autoLoadConfig[100][] = array('autoType'=>'classInstantiate','className'=>'template_func','objectName'=>'template');在这里就定义了$template = new template_func(); ,然后$code_page_directory变量的定义是在init_includes/init_sanitize.php文件中定义在这里必须要对class/template_func.php中定义的template_func类比较熟悉,在改类中主要定义了两个方法get_template_dir()和get_template_part();这两个方法在zencart的摸版中起到了决定性的作用我简单的说下get_template_dir方法function get_template_dir($template_code, $current_template, $current_page, $template_dir, $debug=false),它定义了5个参数,第一个参数一般是个文件名,它是用来判断后两个参数组成的目录中有没有匹配$template_code的这个文件,该类复写了默认的系统函数file_exists所以很多初学者可能会比较迷惑function get_template_dir($template_code, $current_template, $current_page, $template_dir, $debug=false) {// echo 'template_default/' . $template_dir . '=' . $template_code;if ($this->file_exists($current_template . $current_page, $template_code)) {return $current_template . $current_page . '/';} elseif ($this->file_exists(DIR_WS_TEMPLATES . 'template_default/' . $current_page, ereg_replace('/', '', $template_code), $debug)) {return DIR_WS_TEMPLATES . 'template_default/' . $current_page;} elseif ($this->file_exists($current_template . $template_dir, ereg_replace('/', '', $template_code), $debug)) {return $current_template . $template_dir;} else {return DIR_WS_TEMPLATES . 'template_default/' . $template_dir;// return $current_template . $template_dir;}}/*如includes/templates/zccn/indexincludes/templates/template_default/indexincludes/templates/zccn/commonincludes/templates/template_default/common*/get_template_part()方法有两个函数,第一个参数是文件目录,第二个参数是匹配的条件,执行的结果是包含该目录下所有文件名匹配这个条件的文件比如$directory_array = $template->get_template_part($code_page_directory, '/^header_php/');这句话执行的结果就是返回目录下$code_page_directory所有文件名以header_php开头的文件如此时的url(http://localhost/zencart/index.php?main_page=product_info&cPath=49_27&products_id=83)你现在应该查看init_sanitize.php中$code_page_directory的定义此时的$code_page_directory 的值应该是includes/modules/product_info/所以它就应该包含该目录下所有以header_php开头的文件,在这里好象就只有一个header_php.php$directory_array = $template->get_template_part($code_page_directory, '/^header_php/');这个包含文件其实是初始化前台不同页面显示所需要用到的变量函数,主要是初始化数据库的东西,因为每个页面需要的数据资料都有可能不同,所以index.php?main_page=index 当main_page 的值不同是在includes/modules/目录下都会有个对应的目录,这里是index目录只要知道了这两个方法的用法,你就会知道模板文件都是怎么显示出来的了再来解释一require($template->get_template_dir('html_header.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/html_header.php');假设当前http://localhost/zencart/index.php?main_page=index&cPath=48DIR_WS_TEMPLATE 定义是在includes/init_templates.php中定义define('DIR_WS_TEMPLA TE', DIR_WS_TEMPLATES . $template_dir . '/');,因为我现在用的是默认的zccn模板所以现在的DIR_WS_TEMPLATE=includes/templates/zccn/$current_page_base在这里已经就是index上面已经解释了$template->get_template_dir()的方法了程序会依次在includes/templates/zccn/indexincludes/templates/template_default/indexincludes/templates/zccn/commonincludes/templates/template_default/common这四个目录下找html_header.php,在这里,最终在template_default\common目录下找到html_header.php到这里就可以自己写摸板文件了,因为$template->get_template_dir()是按顺序找的,所以你只要在你的模板文件中存在该文件即可zencart的sidebox机制zencart的左右边栏很有特色,由一块一块的sidebox拼合起来的,在模板的sidebox文件夹建立一个sidebox程序,登陆管理后台后,选择外观控制,系统会自动检测到新增加的sidebox程序,并提醒你操作。
OpenCart 系统主要文件结构介绍

目前网络上有zencart的文件结构介绍,但是没有opencart电子商城系统文件结构介绍,所以就从网上收集了些opencart相关资料,希望对修改opencart 系统有帮助.前台控制程序列表-catalog/controllerCatalog|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/viewcatalog/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 结账功能-选择付款方式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/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 特价商品列表。
zencart页面mate标签修改方法

zencart页⾯mate标签修改⽅法⼀般⽹站分为⼤体的3种页⾯,即为:⾸页、分类页、产品页。
下⾯介绍Mate标签的修改⽅法1.⾸页:通过修改代码⽂件⾃定义内容title、keywords、discription具体处理⽅法:在include\modules\mate_tags.php⽂件中找到 case ($this_is_home_page):然后:define('META_TAG_TITLE',define('META_TAG_DESCRIPTION',define('META_TAG_KEYWORDS',将上⾯三⾏代码逗号后⾯的内容替换相应内容2.商品分类页+产品页,后台风⽕轮设置。
分类页⾯的话:Zen Cart的Meta风⽕轮设置.如果分类不多的话完全可⼿动修改商品详情页⾯,后台风⽕轮⾃定义设置处理⽅法:登陆ZenCart⽹站后台管理平台-> 商品管理->商品分类⾥新建分类和商品后,在商品分类列表看到类似风轮的图标,⿊的为Meta标签未定义,红的为Meta标签已定义,默认为⿊⾊。
⿊⾊意味着页⾯的title、description、keywords为系统⾃动⽣成的。
你可点击类似风轮的图标⾃由编辑ZenCart系统商品页⾯的title、description、keywords。
ZenCart系统⾃动⽣成的title为:商品名称+[商品编号]+PRIMARY_SECTION+TITLE+TERTIARY_SECTION+SITE_TAGLINEzencart系统⾃动⽣成的description为:TITLE+商品名称+[商品编号]+SECONDARY_SECTION+商品简介zencart系统⾃动⽣成的keywords为:商品名称+[商品编号]+所有⼀级商品分类的名称3.除了商品分类页和商品详情页可以通过Zen Cart的后台⾃定义设置外,其他页⾯都需要修改代码⽂件。
zencart模板系统文件笔记5:tpl_modules_create_account.php

<?php if ($flag_show_pulldown_states == true) { ?>
------------------------------------------------------------------------------------------------------------------------------------
<br class="clearBoth" />
------------------------------------------------------------------------------------------------------------------------------------
(zencart 建站 vip 内部交流俱乐部--体验)
文件名:tpl_modules_create_account.php
文件隶属于: 英文版 zen-cart-v139h
文件路径:includes\tem来自lates\template_default\templates\tpl_modules_create_account.php
echo zen_draw_pull_down_menu('zone_id', zen_prepare_country_zones_pull_down($selected_country), $zone_id, 'id="stateZone"');
if (zen_not_null(ENTRY_STATE_TEXT)) echo ' <span class="alert">' . ENTRY_STATE_TEXT . '</span>';
ZenCart目录说明

ZenCart目录说明get_template_dir('tpl_modules_whats_new.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/' .'tpl_modules_whats_new.php');?>是读取includes/templates/template_default/templates/下的tpl_modules_whats_new.php文件ZenCart采用摸板,单一文件index.php入口,后面跟参数,参数决定显示的内容,基本上网页变换的部分只是中间的主区域。
admin 后台管理目录cache 缓存目录docs 文档目录download 用于存放下载类商品editors 所见即所得编辑器email 电子邮件模版目录extras 测试文件目录images 商品图片目录includes 前台media 媒体类商品目录pub 公用目录(空)includes里面的目录:auto_loaders 自动加载的脚本classes 主要的类函数extra_cart_actions 空extra_configures 第三方模块设置文件extra_datafiles 第三方模块数据表名定义functions 主要的功能函数index_filters 过滤功能init_includes 初始化功能languages 语言文件包目录modules 所有的模块目录templates 模版目录重点介绍几个文件includes目录,该目录无疑是zencart的核心(前台),通常情况下index.php第一句话则是包含include目录下的application_top.php文件,如:require(’includes/application_top.php’);在该系统中application_top.php负责的是初始化工作,比如加载配置文件include(’includes/configure.php’);,如果系统程序没检测到该文件的存在则会尝试调用安装文件,然后它会自动遍历include/extra_configures下的配置文件并包含进来,在加载了系统配置文件以后接下来是一个非常重要的文件,这也导致了zencart和oscommerce感觉上很大不同的原因(事实上都一回事),首先调用一个文件require(’includes/initsystem.php’); 在initsystem.php中最先加载include/auto_loaders/config.core.php,config.core.php 是一个二围数组$autoLoadConfig,即以数组的形式保存文件的信息供后面文件调用,然后系统会接着加载完include/auto_loaders目录下所有文件名匹配$loaderPrefix(默认为config)的文件。
ZenCart模块对应文件路径

ZenCart模块对应的文件路径总结---Edit by Haoqin Jiang(蒋浩钦) 2010-02-06 说明:左右边栏的独立模块,模型文件存放路径为includes/modules/sideboxes/目录下,视图文件存放路径为includes/templates/template_default/sideboxes/目录下。
classic模板文件夹内没有对应的文件,则调用的是默认的文件,以Document模块举例如下:如果includes/modules/sideboxes/classic/目录下不存在document_categories.php这个文件,则调用includes/modules/sideboxes/目录下的document_categories.php。
首页头部:includes/templates/template_default/common/tpl_main_page.php (View)首页主体模板includes/templates/template_default/common/tpl_header.php (View)首页头部模板文件首页左边栏独立模块:Document:includes/modules/sideboxes/document_categories.php (Model)includes/modules/sideboxes/classic/document_categories.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_document_categories.php (View)控制Document内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题Categories:includes/modules/sideboxes/categories.php (Model)includes/modules/sideboxes/classic/categories.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_categories.php (View)控制Categories内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题New Products:includes/modules/sideboxes/whats_new.php (Model)includes/modules/sideboxes/classic/whats_new.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_whats_new.php (View)控制New Products内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题Manufacturers:includes/modules/sideboxes/manufacturers.php (Model)includes/modules/sideboxes/classic/manufacturers.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_manufacturers_select.php (View)控制Manufacturers内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题Reviews:includes/modules/sideboxes/reviews.php (Model)includes/modules/sideboxes/classic/reviews.php (Model)接着调用模板文件(分三种情况,有评论调用tpl_reviews_random,没评论调用tpl_reviews_none.php,产品ID有效时显示tpl_reviews_write.php页面): includes/templates/template_default/sideboxes/tpl_reviews_random.php (View)includes/templates/template_default/sideboxes/tpl_reviews_write.php (View)includes/templates/template_default/sideboxes/tpl_reviews_none.php (View)includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题Featured(特定的、专栏):includes/modules/sideboxes/featured.php (Model)includes/modules/sideboxes/classic/featured.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_featured.php (View)控制Featured内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题Information:includes/modules/sideboxes/information.php (Model)includes/modules/sideboxes/classic/information.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_information.php (View)控制Information内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题More Information:includes/modules/sideboxes/more_information.php (Model)includes/modules/sideboxes/classic/more_information.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_more_information.php (View)控制More Information内部显示内容 includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题 Sponsors:includes/modules/sideboxes/banner_box.php (Model)includes/modules/sideboxes/classic/banner_box.php (Model)接着调用模板:includes/templates/template_default/sideboxes/tpl_banner_box.php (View)控制Sponsors内部显示内容includes/templates/template_default/common/tpl_box_default_left.php (View)控制左边栏每一个独立模块的标题首页右边栏独立模块:Important Links:includes/modules/sideboxes/ezpages.php (Model)includes/modules/sideboxes/classic/ezpages.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_ezpages.php (View)控制Important Links内部显示内容includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题Record Companies:includes/modules/sideboxes/record_companies.php (Model)includes/modules/sideboxes/classic/record_companies.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_record_company_select.php (View)控制Record Companies内部显示内容 includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题Music Genies:includes/modules/sideboxes/music_genres.php (Model)includes/modules/sideboxes/classic/music_genres.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_music_genres_select.php (View)控制Music Genies内部显示内容 includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Sponsors:includes/modules/sideboxes/banner_box_all.php (Model)includes/modules/sideboxes/classic/banner_box_all.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_banner_box_all.php (View)控制Sponsors内部显示内容includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Search:includes/modules/sideboxes/search.php (Model)includes/modules/sideboxes/classic/search.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_search.php (View)控制Search内部显示内容includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Have you seen …:includes/modules/sideboxes/banner_box2.php (Model)includes/modules/sideboxes/classic/banner_box2.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_banner_box2.php (View)控制Have you seen …内部显示内容 includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Bestsellers:includes/modules/sideboxes/best_sellers.php (Model)includes/modules/sideboxes/classic/best_sellers.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_best_sellers.php (View)控制Bestsellers内部显示内容includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Specials [more]:includes/modules/sideboxes/specials.php (Model)includes/modules/sideboxes/classic/specials.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_specials.php (View)控制Specials [more]内部显示内容 includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Languages:includes/modules/sideboxes/languages.php (Model)includes/modules/sideboxes/classic/languages.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_languages.php (View)控制Languages内部显示内容includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Currencies:includes/modules/sideboxes/currencies.php (Model)includes/modules/sideboxes/classic/currencies.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_currencies.php (View)控制Currencies内部显示内容includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题 Who’s Online:includes/modules/sideboxes/whos_online.php (Model)includes/modules/sideboxes/classic/whos_online.php (Model)接着调用模板文件:includes/templates/template_default/sideboxes/tpl_whos_online.php (View)控制Who’s Online内部显示内容 includes/templates/template_default/common/tpl_box_default_right.php (View)控制右边栏每一个独立模块的标题首页中栏独立模块:includes/templates/template_default/templates/tpl_index_default.php (View)中栏顶部内容模板页面路径(经典模板):includes/languages/english/html_includes/classic/define_main_page.php (View)New Products For %s (eg.New Products For February):includes/templates/template_default/templates/tpl_modules_whats_new.php (View)再调用includes/templates/template_default/common/tpl_columnar_display.php (View)显示具体里面每个DIV内的内容Featured Products:includes/templates/template_default/templates/tpl_modules_featured_products.php (View)再调用includes/templates/template_default/common/tpl_columnar_display.php (View) 显示具体里面每个DIV内的内容 Monthly Specials For %s(eg.Monthly Specials For February):includes/templates/template_default/templates/tpl_modules_specials_default.php (View)再调用includes/templates/template_default/common/tpl_columnar_display.php (View) 显示具体里面每个DIV内的内容首页底部:includes/modules/footer.php (Model)includes/templates/template_default/common/tpl_footer.php (View)显示首页页脚内容站点底部banner:includes/templates/template_default/common/tpl_main_page.php (View)的<div id="bannerSix" class="banners">内。
Zencart模板修改(必看)

一、如何安装和修改zencart新模板1.下载ZenCart模板提示:比如下载的模板名为jinxu99mbcn,是中文语言下的套用的网店模板。
至于英语语言下用用哪个模板,调用方法是一样的。
2.备份好网店数据库和原来的模板文件个性化网页!二、安装ZenCart模板1.将下载后的模板包用winrar或7zip解压缩。
2.将模板目录整个复制到includes/templates/ 下三、选择新安装的模板1.进入ZenCart后台管理,工具(Tools) 模板选择(Template Selection),可以看到右边已安装模板有模板名:【】2.选择要替换哪个现有模板(这里选的是ZCDemo Chinese),然后点击右边的编辑按钮,从现安装模板的下拉菜单中选择新模板,最后点击更新按钮。
3.此时Default(All)语言使用了:【】这个新模板。
但是还没有生效。
四、正式启用刚选择的模板1.转到工具(Tools) 外观设置(Layout Boxes Controller),2. 在屏幕最下面,选择重置按钮。
五、最后检查查看中文语言下的zencart网页源代码,发现:href="/includes/templates/【】/css/style_imagehover.css" />,说明zencart网店调用新模板成功!七、开始个性化刚启用的模板提示:保护好下载的模板主题包,万一自己修改失误,还可以从头再来的。
开发Sidebox插件(两个变量:$title $content )首先需要搞清楚什么是Sidebox,Sidebox是一个显示在左侧或者右侧的内容区域,当然你也可以将Sidebox的单栏状态打开,使其显示在网页的任何位置。
你可以通过进入后台的Tools/Layout Boxes Controller来进行Sidebox的设置。
注意的是如果开启了单栏Sidebox 的话,你必须通过一句代码手动将其显示到模板中去,否则你是看不到任何效果的。
深入剖析Zen cart模板目录结构

Zen Cart的模板设计说简单其实也挺简单的说复杂也比较复杂,需要一定的时间来熟悉。
一旦你了解了它的结构,就会慢慢习惯了。
首先要阅读常见问答部分的:如何添加、制作新模板。
Zen Cart的设计没有什么特别,与以前设计HTML页面是一样的。
只是整个页面分成了好几个部分,并加入了php代码。
通常,页面分为页眉(header),页脚(footer),边框(sideboxes)。
所以设计页面的时候,要记住Zen Cart是如何组织这些页面的。
页面是通过CSS样式表来控制的。
样式表控制表格单元的背景图案、字体的颜色和样式等等。
所以,假如你需要修改边框标题栏的字体,那么查看样式表文件。
Zen Cart在页面添加图像有两种方式。
可以使用图像目录的相对路径,或者在模板中用php变量定义图像。
如果你使用https服务器,并且采用相对图像路径,那么https的图像目录下也要有同样的图像,否则https服务器很可能会给出警告提示。
Zen Cart可以设置成任意的html/flash的界面,只是比通常的html页面的设计费时。
你可以从修改缺省的模板开始,先修改CSS文件和三栏格式的界面。
开始先采用不同的颜色,很快就可以设计出完全不同的风格。
最后,在设计模板前要先计划好你网页的内容,事半功倍。
下面是zen cart页面各部分相对应模板文件的一个列表:
有2篇文档很有参考价值:
/modules/ipb/index.php?showtopic=9912 /modules/xoopsfaq/index.php?cat_id=3#14。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
zencart目录结构及模板修改1、zen-cart模板规则1.1 /include/目录底下文件夹存放规则及其作用language常数定义;modules具体页修改这个文件夹底下是放模板的这面是默认模板目录,所有在自定义模板找不到自己所要安装的模板的文件都可以在这里找到1.2 文件夹底下文件的规则及其作用板文件夹底下一般有如下的文件夹:这个文件夹主要存放按钮图片例如:之类的。
这个文件夹非常的重要,是主模板文件存放处,模板的修改一半以上在这这个文件夹是存放模板的css样式文件。
通常zencart模板都是css+div 这个文件夹是存放模板的图片文件夹这个文件夹存放具体页面的模板文件(细节页面,及其功能模块)是填写该模板的信息。
1.3 目录底下所有文件夹的具体文件解释::头部代码,主要是关于title meta link等标签代码,基本用html代码完成:底部版权、导航等代码。
PHP语句。
:头部代码,主要是logo 导航等。
PHP语句。
:主文件。
Body标签之间的代码都在这里面。
PHP语句。
:一些具体描述页面的CSS,基本用不上。
:主要的css样式修改文件,百分之九十都在这里面修改。
重中之重。
:一些按钮留言板信息框的css样式文件,基本用不上。
(注:这个文件夹底下的具体的文件就不解释了)2、zen-cart模板修改和制作第一章介绍了zencart模板的存放规则,接下来开始介绍zen-cart模板的修改。
当了解了一个网站模板的存放规则之后,接下来可以了解改模板代码的规律,这样对于模板的制作和修改就更加清晰。
2.1 zen-cart模板源代码的规律了解一个网站的代码规则,对于二次开发或者模板制作都是必须的。
2.1.1 代码规则url解释:例如:http://localhost/zc/index.php?main_page=login那么该文件的位置是:modules/pages/login这样可以看出来,url可以提示当前访问页面的位置,而且改url也是有规律的àpages/login 。
Zencart函数:例如:$template->get_template_dir()那么该函数是在function文件里面。
这个函数的作用是取得template文件夹底下的文件。
Tempalte -- get --- template --- dirZencart常数:例如:DIR_WS_TEMPLATE那么该常数一般存放在includes\languages\english文件夹的index.php文件里面。
具体页面的常数可以到includes\languages\english这里面查找对应的文件。
强调:zencart是一个基本用常数代替所有具体语言的网站系统,如果你想修改网站中的描述文字,那么基本要到includes\languages\english这个文件夹底下进行查找修改。
这样做的好处有很多,其一可以让改网站方便开发语言包,国际化等等。
Zencart的if语句特别多解释:因为zencart是一个功能模块特别多,而且方便进行二次开发的网站系统,而且可以方便的在后台进行控制,这些if语句基本后台进行控制的看了以上的解释,如果以后看源代码看到有if语句进行判断的,如果不想去掉源代码或者不好调试,那么可以到后台进行查找。
2.1.2 tpl_main_page.php主要文件的代码规律tpl_main_page.php文件的图模型:tpl_main_page.php文件的简单模型,以上图可以进行对照:2.1.2 tpl_header.php主要文件的代码规律2.1.3 其他的具体页面省了(底部的和头部的一样)2.2 zencart模板的修改的具体代码详解2.2.1 模板左侧所有板块Main.php -> module (left) -> require(DIR_WS_MODULES . 'sideboxes/' . $column_left_display->fields['layout_box_name']);2.2.2 左侧模板目录栏下面的小分栏导航栏修改地方CSS:.leftBoxHeading, .rightBoxHeading {2.2.3 HEADING_TITLE –》在language/english/index.php里面代码在2.2.4、修改centerColumn可以修改中间产品方框的大小2.2.5 、BODY文件在这个文件生效require($body_code)includes/modules/pages/index/main_template_vars.php2.2.6、去掉首页顶部的目录:--》如果还有的话请去掉tpl_header.php里面的这段代码:<!--<?php //require($template->get_template_dir('tpl_modules_categories_tabs.php',DIR_W S_TEMPLATE, $current_page_base,'templates').'/tpl_modules_categories_tabs.php'); ?>-->2.2.7.更改底部版权信息,可以在后台直接修改。
具体的地方为:configuration----my store --- footer text body2.2.8、当在调试IE 和FF 的时候出现模板的版式不一样时候,可以看看模板的CSS样式里面是不是多处了一个特别的CSS。
如果有,那么它就是罪魁祸首。
2.2.9、#navMain 在模板CSS的主样式里面这个的主要功能是修改模板的导航条。
2.2.10、centerColumn 在模板的CSS主样式里面这个的主要功能是修改模板内容模块,即图片显示区域。
2.2.11、#mainWrapper 在模板的CSS主样式里面这个的主要功能是修改模板的宽度。
2.2.12、#logoWrapper 修改logo2.2.13 meta 标签位置在includes\language\English2.2.14 、navSuppWrapper底部导航条的CSS样式。
2.2.15、#navColumnOne 修改左边栏目背景色2.2.16、sideBoxContent 这个可以改主要模块的背景色。
(左中右)2.2.17 、如果看到诸如h3之类的标题,要修改其样式可以直接在css样式里面找。
2.2.18、如果底部版权出现在旁边可能CSS的样式出现错误比如float:right 2.2.19、legend 修改注册的input背景色及其字体2.2.20、contentMainWrapper 这个是设置整个内容的背景色2.2.21 logo出现向左飘逸有如下的原因:logo样式含有float::left2.2.22 出现购物空白页上传文件checkout_shipping以下是代码的具体修改DIR_WS_CATALOG // zent cat目录这些在includes/configure.php定义meta_tags.php //定义网站的meta信息。
这些是从数据库中取出来的。
在includes/modules/下面HTML_PARAMS //模板语言常量文件定义的。
$current_page_base 在includes/init_inicludes/init_sanitize.php$_GET['main_page']manufacturers_id 生产厂商IDproduct_id 产品ID$tmp_pagename index_home有加载modules/pages=========================================首页加载的文件html_header.phptpl_index_default.php {indeXDefaultMainContent 首页可以编辑}tpl_modules_featured_products.php -> tpl_columnar_display.php bannerOne banners [后台bannner控制]logo 修改tpl_header.php 页面在模板的images/logo.gifid="mainwrapper"common/tpl_header.php 功能:所有页面的页眉基本可以不用或者用广告id="headerwrapper"navColumnOnewrappernavEZpagesTOp 简易页面的连接左边分类在templates/模板/sideboxes/下面sql参数在categories.php================================================== ================1. 在首页顶部增加连接的方法。
找到模板文件夹下面的zcen/tpl_header.php在#topbarwrap与#topbar 增加一个<div>连接</div> 里面写上你要的连接2. Logo的替换。
这个在后台是没有的。
在语包的文件里定义。
找到languages/english/zcen/header.php 找到Header_logo_image 常量修改或者替换模板下面的logo.gif文件/includes/templates/zcen/images/logo.gif3. 导航栏的东西〔这个后台的设计的)样式调节#navEZPagesTop后台的参数调整:0 1 2后台的ezpage设置4. 首页分类名称的修改打开/templates/languages/english.php找到:define("BOX_HEADING_CATEGORIES","CATEGORIES")改为:define("BOX_HEADING_CATEGORIES","Select you game");主`D:\WEB\zen-cart\includes\templates\classic\css\stylesheet.css整个页面组织D:\WEB\zen-cart\includes\templates\template_default\common\tpl_main_page.p hp网页左右栏width源代码:<td id="navColumnOne" class="columnLeft" style="width: 150px;">动态调用width: <?php echo COLUMN_WIDTH_LEFT; ?>">,在后台-configuration-layout里可以更改Column Width/Column Width - Left Boxes 商品分类名称Categories更改:BOX_HEADING_CATEGORIES,"D:\WEB\zen-cart\includes\languages\english.php"(78,11):define('BOX_HEADING_CATEGORIES', 'Categories');spooer名称更改:define('BOX_HEADING_BANNER_BOX','Sponsors')默认模板,左spooner对应'BOX_HEADING_BANNER_BOX' 右上spooer对'BOX_HEADING_BANNER_BOX_ALL'右下spooer对应BOX_HEADING_BANNER_BOX2左边栏处理:只保留includes\templates\template_default\sideboxes\tpl_categories.php,在里面增加图片链接右边栏的处理:1.后台设置为保留who's onlie(sideboxes/whos_online.php),与之对应的tpl_box_default_right.php,查找<?php echo $title; ?>进行替换2.添加左边栏目内容,对tpl_box_default_right.php更改:中部修改:=================\includes\templates\template_default\templates\tpl_index_default.php去掉顶部说明:<?php if (SHOW_CUSTOMER_GREETING == 1) { ?><h2 class="greeting"><?php echo zen_customer_greeting(); ?></h2><?php } ?><div id="indexDefaultMainContent" class="content"><?phprequire($define_page); ?></div>去掉欢迎信息:<h1 id="indexDefaultHeading"><?php echo HEADING_TITLE; ?></h1>去掉顶部导航:\includes\templates\template_default\common\tpl_main_page.php<div id="navBreadCrumb"><?php echo$breadcrumb->trail(BREAD_CRUMBS_SEPARATOR); ?></div>模板顶部修改:================\zen-cart\includes\templates\template_default\common\tpl_header.php<div id="navMain"></div>内可增加链接<?php/*** prepares and displays header output**/if (CUSTOMERS_APPROVAL_AUTHORIZATION == 1 &&CUSTOMERS_AUTHORIZATION_HEADER_OFF == 'true' and($_SESSION['customers_authorization'] != 0 or $_SESSION['customer_id'] == '')) {$flag_disable_header = true;}require($template->get_template_dir('tpl_header.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/tpl_header.php');?>上段从<div id="mainWrapper">抽出,放在它前面做全屏导航版块顶部搜索按钮修改:\includes\templates\template_default\common\tpl_header.php :<div id="navMainSearch"><?php require(DIR_WS_MODULES . 'sideboxes/search_header.php'); ?></div>自动生成导航栏:\includes\templates\template_default\templates\tpl_modules_categories_tabs.ph p将其代码掏空,重新添加导航代码:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <?php/*** Module Template - categories_tabs** Template stub used to display categories-tabs output** @package templateSystem* @copyright Copyright 2003-2005 Zen Cart Development Team* @copyright Portions Copyright 2003 osCommerce* @license /license/2_0.txt GNU Public License V2.0* @version $Id: tpl_modules_categories_tabs.php 3395 2006-04-08 21:13:00Z ajeh $*/include(DIR_WS_MODULES .zen_get_module_directory(FILENAME_CATEGORIES_TABS));?><?php if (CATEGORIES_TABS_STATUS == '1' && sizeof($links_list) >= 1) { ?> <div id="navCatTabsWrapper"><div id="navCatTabs"><ul><?php for ($i=0, $n=sizeof($links_list); $i<$n; $i++) { ?><li><?php echo $links_list[$i];?></li><?php } ?></ul></div></div><?php } ?>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~清除多余的log背景:\zen-cart\includes\templates\template_default\common\tpl_header.php<div id="tagline"><?php echo HEADER_SALES_TEXT;?></div>底部导航修改:\includes\templates\template_default\common\tpl_main_page.php<div id="bannerSix" class="banners"><?php echo zen_display_banner('static', $banner); ?></div>DIR_WS_CATALOG // zent cat目录这些在includes/configure.php定义meta_tags.php //定义网站的meta信息。