05.12
首先说明的是,这里只是说明复制网站模板的理论,用于学习用途,复制并使用未经授权的模板是非法的。
第一次写这类说明,没有经验,欢迎大家指正、补充。
这里以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 或者 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 [...]
主样式表
includes\templates\classic\css\stylesheet.css
整个页面组织
D:\WEB\zen-cart\includes\templates\template_default\common\tpl_main_page.php
网页左右栏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 } ?>
去掉欢迎信息:
<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.php
将其代码掏空,重新添加导航代码:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<?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 http://www.zen-cart.com/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>
后台设置部分
一、商店设置
1、基础设置:
修改(商店名称) 根据自己店铺设置
2、客户资料
修改(创建帐号时的缺省国家) 为主销售国家
修改(显示电子商情选择框) 为0
3、配送参数
修改(始发国家或地区) 为自己店铺始发地,默认中国
修改(邮编) 为自己店铺始发地邮编,似乎没什么用
修改(最大包裹重量) 为10000,表示店铺最大单包裹上限10公斤
修改(大包裹包装材料) 为10:1,表示包裹总重量的每10%增加1克作为包装重量
修改(在发票管理中显示订单说明) 为2
修改(在装箱单管理中显示订单说明) 为2
4、电子邮件
修改(SMTP帐号邮箱) 为管理员邮箱帐号 -或另设置,但不推荐
修改(SMTP帐号密码) 为管理员邮箱密码 -或另设置,但不推荐
修改(SMTP主机) 为管理员邮箱SMTP主机 -Gmail=smtp.gmail.com,其他信箱根据信箱要求设置
修改(SMTP服务器端口) 为邮件SMTP主机端口 -Gmail=465
5、属性设置
修改(允许下载) 为false
6、布局设置
修改(分类栏 - 显示特价商品链接) 为false -本处为自由设置,请根据个人情况而定
修改(分类栏 - 显示新进商品链接) 为false -本处为自由设置,请根据个人情况而定
修改(分类栏 - 显示推荐商品链接) 为false -本处为自由设置,请根据个人情况而定
修改(广告显示组 - 标题位置 1) 为空
修改(广告显示组 - 标题位置 3) 为空
修改(顾客欢迎词 - 显示在首页) 为1
7、新进商品
修改(显示商品名称) 为2105
修改(显示商品加入日期) 为0
8、推荐商品
修改(显示商品名称) 为2105
修改(显示商品加入日期) 为0
9、所有商品
修改(显示商品名称) 为2105
修改(显示商品加入日期) 为0
10、定义页面
修改(定义优惠券说明) 为3
修改(定义页面二) 为3
修改(定义页面三) 为3
修改(定义页面四) 为3
二、商品管理
1、商品类型
修改(商品 - 普通)
-选择编辑布局->显示厂商 修改为False
-选择编辑布局->显示上市日期 修改为False
-选择编辑布局->显示加入日期 修改为False
三、模块管理
1、支付模块
修改(信用卡 - 脱机处理) 选择卸载
修改(免费商品) 选择卸载
修改(PayPal IPN - Website Payments Standard) 选择安装
-商业编号 =输入Paypal主EMAIL
-PDT Token =输入Paypal内分配PDT Token
-交易货币 =默认,不选择
-其他均为默认,然后确认安装
2、配送模块
修改(固定运费) 选择卸载
修改(免运费) 选择卸载
修改(按件计价) 选择卸载
修改(商店提货) 选择卸载
修改(标准运费) 选择安装
-如果使用邮政小包,请输入以下内容,其他选项默认
(说明:本处运费描述方式为,参考下方EMS运费范例)
100:2.2,200:3.7,300:5.2,400:6.7,500:8.2,600:9.7,700:11.2,800:12.7,900:14.2,1000:15.7
修改(地区运费) 选择安装
-此处为EMS选择,以下为EMS 3.6折运费,如使用UPS或DHL,请另计算以及说明
范例 : 500 : 13.5 ,
单位:克 对应运费符号 运费价格 下一级运费分割符
以上为范例描述,请严格按照以下方式书写
地区1
US,CA
500:13.5,1000:17.5,1500:21.5,2000:25.5,2500:29.5,3000:33.5,3500:37.5,4000:41.5
地区2
BE,GB,FR,DK,FI,GR,AT,IE,NO,PT,DE,SE
500:15.3,1000:19.8,1500:24.3,2000:28.8,2500:33.3,3000:37.8,3500:42.3,4000:46.8
地区3
AU,NZ
500:11.5,1000:14.5,1500:17.5,2000:20.5,2500:23.5,3000:26.5,3500:29.5,4000:32.5
3、总额计算
修改(团体优惠) 选择卸载
修改(礼券) 选择卸载
修改(低额订单费) 选择卸载
修改(税额) 选择卸载
四、界面设定
1、货币代码
修改(人民币) 选择卸载
修改(Canadian Dollar) 选择卸载
点击更新货币
到以下地址检查货币汇率
-http://www.ebay.cn/pages/jsp/fm/third/bank/bankmain.jsp
修改对应货币汇率,自动更新相对不够准确,货币价值兑换有点吃亏,本处可将PAYPAL的2.5%兑换费用增加进去
五、工具/TOOLS
1、模板选择
根据自己需要使用模板修改,本处请注意,中文与英文模板均需要修改,否则会造成错误
2、外观控制/Layout Boxes Controller
请尽量对应选择,选择语言为简体中文时,此处修改的为中文模板,选择语言为英文时,此处修改的为英文模板
文件名——————————模块名——————功能—————————目前所显示的位置
sideboxes/search.php—————-搜索(带高级搜索)——–对产品进行搜索—————–左边
sideboxes/search_header.php———搜索(简单的搜索)——–对产品进行搜索—————–左边
sideboxes/shopping_cart.php———购物车——————显示所订购的商品—————左边
sideboxes/categories.php————分类——————–按产品的类别分类—————左边
sideboxes/manufactures.php———-品牌——————–显示所有产品的品牌————-左边
sideboxes/payment.php—————支付——————–付款(logo形式出现)————-左边
sideboxes/document_categories.php—文档类商品————–通常指可以下载的商品类型——-左边
sideboxes/order_history.php———订单历史—————-以往订单的历史记录————-左边
sideboxes/reviews.php—————评论——————–买家对所买商品的评价———–左边
sideboxes/featured.php————–推荐商品—————-随机显示推荐商品,在后台设—–左边
sideboxes/banner_box.php————赞助商——————显示赞助商家——————-左边
sideboxes/login_box.php————-登录——————–显示费员的登录入口————-右边
sideboxes/information.php———–消息——————–显示商家的最新消息————-右边
sideboxes/more_information.php——更多消息—————-展示更多的消息—————–右边
sideboxes/whos_online.php———–在线名单—————-显示有多少人在线—————右边
sideboxes/what_new.php————–新登商品—————-显示新登产品(随机)————-右边
sideboxes/music_genres.php———-音乐流派—————-显示音乐的流派—————–右边
sideboxes/record_companies.php——唱片公司—————-显示唱片公司——————-右边
sideboxes/weblink_box.php———–友情连接—————-以logo的形式显示连接———–右边
sideboxes/best_sellers.php———-畅销商品—————-随机显示畅销商品—————右边
sideboxes/manufacture_info.php——厂家消息—————-显示具体产品时在右边显示出来—右边
sideboxes/specials.php————–特价商品—————-随机显示特价商品,在后台设置—右边
sideboxes/product_notifications.php-商品通知—————-买家知道新的产品可以通知卖家—右边
sideboxes/tell_a_friend.php———推荐给朋友————–如果感觉商品很好可以推荐给朋友-右边
sideboxes/languages.php————-语言——————–以何种语言显示—————–右边
sideboxes/currencies.php————货币——————–以何货币付款——————-右边
sideboxes/banner_box2.php———–不明——————–做相应的logo连接—————右边
一般情况下 可以关闭以下模块
sideboxes/manufactures.php
sideboxes/document_categories.php
sideboxes/banner_box.php
sideboxes/more_information.php
sideboxes/what_new.php
sideboxes/music_genres.php
sideboxes/record_companies.php
sideboxes/weblink_box.php(没有就不用理了)
sideboxes/manufacture_info.php
sideboxes/product_notifications.php
其他模块根据自己情况去调整
3、广告管理
修改所有广告项目的状态为关闭(绿色状态按钮点成红色)
4、管理设置
此处可增加管理员名单,以及修改管理员密码等,可增设管理名单,以方便工人登陆上货
5、简易页面管理/EZ-Pages
本处也需要同时修改中英文,或者仅修改英文也可
修改(Home) 选择编辑-页眉排序: 5
选择Header开启
修改(Register) 选择编辑-页眉排序: 10
修改(News) 选择Header关闭
修改(Site Map) 选择Header开启
选择编辑-页眉排序: 90
6、图像管理
选择安装图象管理
OK,到此,基本上,一个一般可以运行的网站已经在后台调整完毕,但还有一些需要微调的东西如下
1、修改Paypal.pap模块,否则收到的钱都是未提供地址的,方法如下
2、将网站根目录的htaccess_sample修改为" .htaccess ",并用记事本打开此文件,修改其中的 /shop/ 为您的zen cart目录。如果Zen Cart安装在网页服务器的根目录下,就设置为 /
3、商店设置->搜索引擎优化,选择打开
4、安装GOOGLE SITMAPS,并且根据说明制作SITMAP XML文件,上传到GOOGLE去,当然,YAHOO,MSN的也可以在这时一起做了
5、安装RSS,建议可以同时把两个RSS模块都安装上
6、修改在结帐时购物车显示的运费名称,修改如下
这个是标准运费的语言文件 -\includes\languages\english\modules\shipping\table.php
这个是地区运费的语言文件 -\includes\languages\english\modules\shipping\zones.php
7、如果购买的空间是GODADDY的,并且买了GODADDY的SSL,推荐再装一个GODADDY的SSL显示插件
*****************个人经验-修改PHP文件后导致Cannot modify header information ******************************
以下内容为转贴
Cannot modify header information - headers already sent by…解决方法
今天把PHP代码用记事本保存为utf编码,就出现了下面提示:
Warning: Cannot modify header information - headers already sent by (output started at E:\My documents\My Work\zgjdwx\test2.php:1) in E:\My documents\My Work\zgjdwx\include\common.inc.php on line 20
这个错误是因为在header前面有html输出导致的。因为之前程序运行正常,所以排除了程序的问题。
经过查询,原来是BOM的问题。
在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
PHP也不支持BOM。
PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符。由于必须在<?或者<?php后面的代码才会作为PHP代码执行,所以这三个字符将会直接输出。
用ultraedit打开,对ultraedit进行设置:高级-配置-文件处理-Unicode/utf-8检测,所有选项都不选择。然后会发现文件前面有一个“锘?”,删除掉,然后保存为无BOM的utf编码。 也可用Dreamweaver保存为utf编码。
总结:如果程序中无中文,可以直接使用ANSI编码。如果存在中文,要保存为无BOM的utf编码。切记不要使用记事本来进行转换。
*****************个人经验-1.38a自带Paypal.PHP模块默认为服务交易模式******************************
位置:\includes\modules\payment\paypal.php
Paypal.PHP模块直接安装后,如果不做任何修改,从商店内购买,并支付到PAYPAL的款项会作为一笔服务交易,买家PAYPAL不提供送货地址
修改Paypal支付模块中以下内容
‘no_shipping’ => MODULE_PAYMENT_PAYPAL_ADDRESS_REQUIRED,
修改成
//’no_shipping’ => MODULE_PAYMENT_PAYPAL_ADDRESS_REQUIRED,
‘no_shipping’ == 2
首先说明的是,这里只是说明复制网站模板的理论,用于学习用途,复制并使用未经授权的模板是非法的。
第一次写这类说明,没有经验,欢迎大家指正、补充。
这里以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目录中的按钮,可以自己用图像处理软件转换成中文。
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="http://zzm8109.blog.163.com/blog/<?php echo zen_href_link(FILENAME_LOGOFF, ”, ‘SSL’); ?>"><?php echo HEADER_TITLE_LOGOFF; ?></a>&nbsp;|&nbsp;
<a href="http://zzm8109.blog.163.com/blog/<?php echo zen_href_link(FILENAME_ACCOUNT, ”, ‘SSL’); ?>"><?php echo HEADER_TITLE_MY_ACCOUNT; ?></a>
<?php
} else {
if (STORE_STATUS == ‘0′) {
?>
<a href="http://zzm8109.blog.163.com/blog/<?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="http://zzm8109.blog.163.com/blog/’ . 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>&nbsp;&nbsp;’;
$lng_cnt ++;
if ($lng_cnt >= MAX_LANGUAGE_FLAGS_COLUMNS) {
$lng_cnt = 0;
$content .= ‘
‘;
}
}
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’); ?>