Zen-cart裏創建module的方法

雖然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的製作方法,製作完成後的效果如下圖所示:

zen-cart_module_make.png

可 以參考、對比

/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 = '<label>' . BOX_HEADING_CURRENCIES . '</label>'; 
$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生成數據 了:

<?php 
require(DIR_WS_MODULES . 'sideboxes/currencies_header.php'); 
echo $content; 
?>

用 上面的方法,就不單單可以修改現有的module,還能根據自己的需要,創作更多的module出來。

 

 

--- 摘自:細節之錘 [blog.waterlin.org]


轉載出處:http://blog.fashion-century.com/archives/86

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章