您的位置:首页 > 其它

Zen-cart里创建module的方法

2011-03-09 14:24 399 查看
虽然Zen-cart左右栏都有相关的module放在sideboxes里,但是,有的时候,需要在页面上某个地方单独显示这些box的内容。比 如说,我想把Shopping Cart和Currencies的内容显示在页面的头部。这个时候,并不能直接用Zen-cart提供的module;唯有对现有的module进行相关 的改造,才能自如的显示内容。
Zen-cart 1.3.8 采用的模板技术比较特殊,/includes/modules里存放的是相关的module文件,负责页面数据的生成;而模板文件则是放在各个模板目录, 处理相关页面内容的生成。整个过程更像是对zen-cart的hack,而不是module的制作。
下面就以创建一个页面头部的currencies,来简单说明一下页面module的制作方法,制作完成后的效果如下图所示:



可以参考、对比
/includes/templates/template_default/sideboxes/tpl_search_header.php
/includes/templates/template_default/sideboxes/tpl_search.php


/includes/modules/sideboxes/search_header.php
/includes/modules/sideboxes/search.php

来获得灵感。
按以下三个步骤来制作这个module:
1)
在/includes/modules/sideboxes目录下,新建一个名叫currencies_header.php的文件。
如果需要,在这个文件里可以依照/includes/modules/sideboxes/search_header.php提供的方法来直接操作数据库。
在这里,我们根据/includes/modules/sideboxes/currencies.php来创建文件,主要是把 currencies.php里用于sidebox显示的句子删掉:
    $title = ‘’ . BOX_HEADING_CURRENCIES . ‘’;
    $title_link = false;
    require($template->get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,’common’) . ‘/’ . $column_box_default);
这样,我们就不会在调用这个module的时候,调用到用于sidebox里显示的相关语句。
同样,在这个文件里,我们可以根据自己的需要,加入一个module生成数据所需要的所有元素。
2)
新建一个名叫tpl_currencies_header.php的文件到/includes/templates/YourTemplate /sideboxes,为这个module创建单独的显示风格。这里根据你需要放置的地方,对其中的CSS/XHTML代码进行修改即可。用于显示的数据,是从第一步的module里传进来的全局变量。
注意:Zen-cart 1.3.8 里,按习惯用$content来存储生成的页面显示代码。
3) 在/includes/templates/YourTemplate/common文件夹里,到指定的页面模板里,加入相关的显示生成语句。
在这个例子中,因为是要在页首显示这个currencies显示框,则要在tpl_header.php里加入这么一段话就可以调用module生成数据了:


用上面的方法,就不单单可以修改现有的module,还能根据自己的需要,创作更多的module出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: