|
|
|
|
zencart 模板嵌套2012-10-16 zencart 模板嵌套
$directory_array = $template->get_template_part($template->get_template_dir(’.css’,DIR_WS_TEMPLATE, $current_page_base,’css’), ‘/^style/’, ‘.css’); 其中 /^style/是个正则表达式,表示程序会自动匹配以style开头的任意CSS文件。所以你在命名CSS的时候,需要满足这个表达式,程序才会加载,同理JS也有自己的规范命名方法。 D:htdocszencartincludestemplatesdigital_chinacommontpl_header.php这个就是 头部的可见元素模板了. 一般来说是从<body>以后开始的内容(不包含<body>);这里需要注意的是图片的路径.从设计那里拿来的模板中,图片路 径一般是 src=’images/aaa.jpg’ ,在模板里要改为 src=’<?php echo DIR_WS_TEMPLATE_IMAGES;?>aaa.jpg’ ZEN—CART里的中部不是我们平常意义中header和footer之间的所有。在zencart中,在header和footer之间包含3个部分:left,main_page,right。所以,这里我说的中部,是不包括left和right 两个边栏的。 比如页面格式为: <html> <div id=’main’> <div id=’footer’></div> 那你需要注意修改的就是<div id=’main’>和</div> 2个标签的位置和名称 如果你使用的是默认的模板属性,你可能会发现有很多的banner图片和左右分栏。关于这一点不需要从tpl_main_page.php中修改, 你可以在 [后台->工具->外观控制] 中 将所有不熟悉的栏目文件 全部设置为[左/右 栏目状态: 关](关于这里的具体使用说明,我后面的文章会继续介绍到); 还有[后台->商店设置->布局设置]里,你可以看到 广告显示组 – 边框 banner_box 你可以逐个编辑其属性,将值设置为空,这里修改的所有默认为横版的banner图片广告 关于 $header_template = ‘tpl_header.php’; $footer_template = ‘tpl_footer.php’; $left_column_file = ‘column_left.php’; 由于我的页面格局被我分成上,下,左,中 4部分,“中”是默认所有都有的,所以我只定义了上,下,左三个边栏的模板文件。当然,你可以换些其他的名字,或者添加右边栏。 进阶技巧: 放在各模块的tpl_header.php里,可以分别设置具体的某个模块里,是否显示上,左,右,下边栏。(值为true,表示不显示。为false或者不定义,则按默认全局设置); 左边栏,column_left.php; D:htdocsZenCartincludesmodulescolumn_left.php 这个文件类似 D:htdocsZenCartincludestemplatesdigital_chinacommontpl_main_page.php的功能和 写法,实现了左边栏的所有功能。注:由于我的左边栏是分为4个小模块,所以我把4个小模块做成了4个sidebox 并在column_left.php中控制自动载入。可以发现 column_left.php 文件很简单,其实他的作用就是自动读取所有已定义的sidebox,如果其属性中位置为左,并且属性为开,存在对应的模块文件和模板文件,则按其设置好的 顺序,依次输出到 column_left中。详情请看第4步。 注意:这个方法不仅仅适用于左边栏,甚至头部文件中的导航菜单和搜索条,登陆条等,都可以通过这个方法来设置。 1.建立一个模块文件,比如我要添加一个销售排行 selling_rank。 那么你应该建立一个文件 selling_rank.php放在 D:htdocsZenCartincludesmodulessideboxesselling_rank.php 里. 此模块的所有程序和SQL语句,操作等均写在这个文件中。并且将模板中将要用到的标签变量都赋好值。 小窍门:第一次设置模块的时候,模块程序文件可以只写2句话: require($template->get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,’common’) . ‘/’ . $column_box_default); // 加载显示 |