13.
XOOPS的樣板檔
一、 模組套用簡易樣板步驟
- 請到xoops_version.php做以下設定。設定也是兩個一組,陣列從1開始。
- (1) $modversion['templates'][1]['file'] = 'tad_note_index.html';
檔名盡量特別,別和其他樣板檔相衝。
- (2) $modversion['templates'][1]['description'] = "佈景說明";
樣板描述,從後台的樣板管理就會看得到。(常數不用加引號,不然系統讀不到)
- 建立templates/index_tpl.html,該檔內容一行即可,樣板碼可自訂:<{$樣板碼}> 例如:<{$content}>
- 到後台更新您的模組,讓XOOPS重讀xoops_version.php設定檔。
- 在index.php前面加入$xoopsOption['template_main'] = "tad_note_index .html";
- 用「$xoopsTpl->assign( "content" , $main) ;」來把內容套入樣板,其中 content就是樣板標籤<{$content}>,而$main就是要套用進去的內容。
- $xoopsTpl是在header.php產生的物件,所以,$xoopsTpl必須在header.php之後使用。若要在函數中使用,記得global $xoopsTpl;
二、 設一個獨立頁面view.php
- 由於目前總列表和單一頁面都是設在index.php,這樣雖然可以,但要套用比較精細的樣板時,難度會增加許多,因此建議增設一個獨立頁面,也就是秀出單一文章用的頁面,如此在製作樣板時會更簡單。
- 另存index.php為view.php,並留下顯示頁面的函數,其餘函數及流程均可刪除。
- 修改index.php中的連結至view.php,搜尋檔的$ret[$i]['link']也一樣需要修改。
三、 精細的樣板
- 把樣板細分成各種網頁元件,由樣板提供標籤,PHP負責產生標籤所需的套用值。
- 按照樣版產生流程,替view.php產生一組樣板tad_note_view.html,其內容為: tad_note_view.html
<h1><{$title}></h1>
<div><{$date}></div>
<div><{$content}></div>
view.php
$xoopsTpl->assign( "title" , $doc['note_title']) ;
$xoopsTpl->assign( "date" , sprintf(_MD_TADNOTE_POST_DATE,$doc['note_date'])) ;
$xoopsTpl->assign( "content" , $doc['note_content']) ;
四、 Smarty迴圈
- 列表部份需要用到smarty迴圈。
tad_note_index.html
<table style='font-size:11pt;'>
<{foreach item=page from=$news}>
<tr>
<td><a href='view.php?note_sn=<{$page .note_sn}>'>
<{$page .note_title}></a></td>
<td><{$page .note_date}></td>
<td><{$page .tool}></td>
</tr>
<{/foreach}>
</table>
<div align='center'><{$bar}></div>
index.php
$i=0;
while($doc=$xoopsDB->fetchArray($result)){
//處理部份省略
$main[$i]['note_sn']=$doc['note_sn'];
$main[$i]['note_title']=$doc['note_title'];
$main[$i]['note_date']=$doc['note_date'];
$main[$i]['tool']=$tool;
$i++;
}
$xoopsTpl->assign( "news" , $main) ;
$xoopsTpl->assign( "bar" , $bar) ;