zencart模板修改 (详细)
下面简单的介绍下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>
<?php echo BOX_SHOPPING_CART_NOWYOU; ?> <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>
| <?php if ($_SESSION['customer_id']) { ?>
<a href="<?php echo zen_href_link(FILENAME_LOGOFF, '', 'SSL'); ?>"><?php echo HEADER_TITLE_LOGOFF; ?></a> |
<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 ($_SESSION['cart']->count_contents() != 0) { ?>
<a href="<?php echo zen_href_link(FILENAME_SHOPPING_CART, '', 'NONSSL'); ?>"><?php echo HEADER_TITLE_CART_CONTENTS; ?></a> |
<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,删除类似这样的语句
在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,修改该文件就可以了。