雖然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 = '<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]