了解篇
===========================================================================
一、如何安装和修改zencart新模板
1.下载ZenCart模板
提示: 比如下载的模板名为bluesky,是中文语言下的套用的网店模板。至于英语语言下用用哪个模板,调用方法是一样的。
2.备份好网店数据库和原来的模板文件个性化网页!

二、安装ZenCart模板
1.将下载后的模板包用winrar或7zip解压缩。
2.将模板目录整个复制到 includes/templates/ 下

三、选择新安装的模板
1.进入ZenCart后台管理,工具(Tools)–模板选择(Template Selection),可以看到右边已安装模板有模板名:【ecsure.com】
2.选择要替换哪个现有模板(这里选的是ZCDemo Chinese),然后点击右边的编辑按钮,从现安装模板的下拉菜单中选择新模板,最后点击更新按钮。
3.此时Default(All)语言使用了:bluesky这个新模板,但是还没有生效。

四、正式启用刚选择的模板
1.转到工具(Tools)–外观设置(Layout Boxes Controller),
2. 在屏幕最下面,选择 重置 按钮。

五、最后检查
查看中文语言下的zencart网页源代码,发现:
href=”/includes/templates/bluesky/css/style_imagehover.css” />,说明zencart网店调用新模板成功!

七、开始个性化刚启用的模板
提示:保护好下载的模板主题包,万一自己修改失误,还可以从头再来的。

开发Sidebox插件 (两个变量:$title   $content )

首先需要搞清楚什么是Sidebox,Sidebox是一个显示在左侧或者右侧的内容区域,当然你也可以将Sidebox的单栏状态打开,使其显示在网页的任何位置。你可以通过进入后台的Tools/Layout Boxes Controller来进行Sidebox的设置。注意的是如果开启了单栏Sidebox的话,你必须通过一句代码手动将其显示到模板中去,否则你是看不到任何效果的。zen-cart中自带了很多Sidebox, 例如显示产品分类的Sidebox, 显示最新产品的Sidebox, 选择语言的Sidebox等等。

Sidebox相关的文件和目录

输出左侧sidebox的文件:/includes/modules/column_left.php

输出右侧侧sidebox的文件:/includes/modules/column_right.php

输出单栏sidebox的文件:/includes/modules/column_single.php

存储sidebox的位置:/includes/modules/sideboxes

Sidebox模版位置:/includes/templates/template_default/sideboxes

默认左侧sidebox模版/includes/templates/template_default/common/tpl_box_default_left.php

默认右侧sidebox模版:/includes/templates/template_default/common/tpl_box_default_right.php

默认单栏sidebox模版:/includes/templates/template_default/common/ tpl_box_default_single.php

实例: hello_sidebox的开发
<!–[endif]–>下面我们来开发一个简单的sidebox,以说明开发一个Sidebox的基本步骤,该sidebox只显示一段文字,并不实现任何功能, 我们将这个 sizebox命名为 hello_sidebox。
<!–[endif]–>1). 设置语言和要在sidebox中显示的内容
在目录” /includes/languages/english/extra_definitions”新建一个PHP文件,命名为” hello_sidebox.php”, 并设置英语环境下sidebox的Title和要显示的内容。该文件中定义了两个常量BOX_HEADING_HELLOW_SIDEBOX(sidebox的标题), ‘BOX_HEADING_HELLOW_SIDEBOX_CONTENT(显示的内容),代码如下

define(BOX_HEADING_HELLOW_SIDEBOX, “Hello sidebox”);
define(BOX_HEADING_HELLOW_SIDEBOX_CONTENT, “This is a sidebox demo”);

2).    新建sidebox文件
在目录”/includes/modules/sideboxes”下面新建一个 文件, 命名为” hello_sidebox.php”, 并输入以下代码, 其中第一行加载了hello_sidebox的模板文件, 第二行设置了sidebox的标题, 第三行代码加载了用来输出sidebox的模板文件.

require($template->get_template_dir(‘tpl_hello_sidebox.php’,DIR_WS_TEMPLATE, $current_page_base,’sideboxes’). ‘/tpl_hello_sidebox.php’);
$title =   BOX_HEADING_HELLOW_SIDEBOX;
require($template->get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,’common’) . ‘/’ . $column_box_default);

3).    新建sidebox模版文件
sidebox模板文件实际上并不会输出任何内容到网页上面, 这里只是构造了要在Sidebox内部显示的内容(变量$content). 这里, 我们的内容仅仅是将常量BOX_HEADING_HELLOW_SIDEBOX_CONTENT的值赋给$content, 在/includes/templates/template_default/sideboxes下新建一个 文件, 命名为” tpl_hello_sidebox.php”,代码如下.

$content = “”;
$content .= BOX_HEADING_HELLOW_SIDEBOX_CONTENT;

4).    安装sidebox

进入管理后台>>Tools>>Layout Boxes Controller, 就可以看到我们刚才开发的hello_sidebox插件了, 选中hello_sidebox, 点击编辑按钮, 将Left/Right Column Status设置为on, 再点击Update按钮, 这样安装过程就完成了. 现在再刷新一下首页, 是不是就能看到我们的hello_sidebox盒子了呢?

5).    发布sidebox
将刚才的文件按照原始的目录结构进行打包, 如<!–[if supportFields]–>下图所示, 就算发布成功了. 这样就可以把我们开发好的插件共享给别人使用了.

实践篇
===================================================================
Zencart后台可进行哪些修改

1.商店设置——》布局设置 里面可进行页面的一些整体布局,如:

左、右栏目宽度,左右栏目是否显示,是否显示子分类等等

2.工具——》外观控制   里面可以进行所有功能模块的设定,可进行如下设置:

阿里云-推广AD

是否在左右栏目中开启、显示在左边栏目还是右边、模块的排序、是否开启单栏SIDEBOX (注意的是如果开启了单栏Sidebox的话,你必须通过一句代码手动将其显示到模板中去,否则你是看不到任何效果的)

Zencart要修改哪些文件

1. Templates/template_default/下的文件是系统默认文件,不要做任何修改!

2. Templates/当前模板名/   下的文件是你可修改的,修改的依照是Templates/template_default/ 下的那些文件, 有需要修改的地方可把Templates/template_default/ 底下的文件拷贝到Templates/当前模板名/   相应目录下,然后进行修改。没有拷贝过去的则系统默认调用Templates/template_default/ 下的文件。

2.1   Templates/当前模板名/ common/tpl_header.php    导航起以上(包括导航)的文件  

2.2   Templates/当前模板名/ common/ tpl_footer.php    底部横线及下的文件

2.3   Templates/当前模板名/ common/ tpl_main_page.php   控制一整个页面的显示,它包含(require)了tpl_header.php与tpl_footer.php文件

而介于导航与横线之间的内容则是在

<?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’);?>


<?php
/**
* prepares and displays footer output
*
*/
if (CUSTOMERS_APPROVAL_AUTHORIZATION == 1 && CUSTOMERS_AUTHORIZATION_FOOTER_OFF == ‘true’ and ($_SESSION[‘customers_authorization’] != 0 or $_SESSION[‘customer_id’] == ”)) {
     $flag_disable_footer = true;
   }
require($template->get_template_dir(‘tpl_footer.php’,DIR_WS_TEMPLATE, $current_page_base,’common’). ‘/tpl_footer.php’);
?>

之间的代码

(测试时可把该文件里面的内容全部删除后刷新页面查看,即可知道它控制页面哪一部分)

3. Templates/当前模板名/sidebox   下的文件是参照Templates/template_default/ sidebox 里面的文件编写的,就是模块模板。Templates/当前模板名/sidebox里面没有的文件就默认调用Templates/template_default/ sidebox下的同名文件。所以要修改某个功能模块时可以把Templates/template_default/ sidebox下相应的文件拷贝到Templates/当前模板名/sidebox下再做修改。

4. Templates/当前模板名/css 控制页面的样式显示。是参照Templates/template_default/css 下编写。 要修改页面显示可把Templates/template_default/css下相应文件拷贝到Templates/当前模板名/css目录下再做修改。

5. 同理Templates/当前模板名/images 里的图片修改参照

6. Templates/当前模板名/images/buttons 直接修改里面图片(注意不要改变文件名)

7. includes\modules\当前模板名\ 下的三个文件可以修改:

specials_index.php   首页 特价商品

new_products.php    首页   新进商品

featured_products.php   首页 推荐产品

注意: 后台设置结合修改Templates/当前模板名/CSS 与Templates/当前模板名/CSS/IMAGES 下的文件即可达到大致修改效果

一些未达到的模块功能效果可通过修改Templates/当前模板名/sidebox 下的文件来实现

页面的全局部署则要通过修改

Templates/当前模板名/ common/tpl_header.php  

Templates/当前模板名/ common/ tpl_footer.php  

Templates/当前模板名/ common/ tpl_main_page.php

 实现以上是部分需要修改的地方。