XOOPS 核心 Smarty 模板變數速查表
XOOPS 使用 Smarty 模板引擎,主題開發者需熟悉核心變數以正確輸出內容、區塊、中繼資料。本文整理官方核心變數分類參考。
一、網站中繼資料與基本資訊
| 變數 |
說明 |
用途範例 |
{$xoops_sitename} |
站點名稱 |
<title>{$xoops_sitename} - {$xoops_pagetitle}</title> |
{$xoops_pagetitle} |
當前頁面標題 |
同上 |
{$xoops_meta_keywords} |
Meta 關鍵字 |
<meta name="keywords" content="{$xoops_meta_keywords}"> |
{$xoops_meta_description} |
Meta 描述 |
<meta name="description" content="{$xoops_meta_description}"> |
{$meta_copyright} |
版權資訊 |
<meta name="copyright" content="{$meta_copyright}"> |
{$meta_robots} |
Robots 設定 |
<meta name="robots" content="{$meta_robots}"> |
{$meta_rating} |
內容分級 |
<meta name="rating" content="{$meta_rating}"> |
{$xoops_url} |
站點完整 URL |
<a href="{$xoops_url}">首頁</a> |
二、樣式、腳本與版面結構
| 變數 |
說明 |
用途範例 |
{$xoops_themecss} |
主題 CSS 路徑 |
<link rel="stylesheet" href="{$xoops_themecss}"> |
{$xoops_js} |
核心 JavaScript |
<script src="{$xoops_js}"></script> |
{$xoops_banner} |
橫幅廣告區塊 |
<div class="banner">{$xoops_banner}</div> |
{$xoops_contents} |
主內容區域 |
<main>{$xoops_contents}</main> |
{$xoops_footer} |
頁腳內容 |
<footer>{$xoops_footer}</footer> |
三、區塊系統變數 (依區域分類)
XOOPS 區塊系統提供多區域變數,均為 Smarty 陣列,需用 {foreach} 迴圈輸出。
| 區域 |
變數 |
條件變數 |
輸出範例 |
| 左側 |
$xoops_lblocks |
無 |
{foreach $xoops_lblocks as $block}{$block}{/foreach} |
| 中間左 |
$xoops_clblocks |
$xoops_showcblock == 1 |
{if $xoops_showcblock}{foreach $xoops_clblocks as $block}{$block}{/foreach}{/if} |
| 中間中 |
$xoops_ccblocks |
$xoops_showcblock == 1 |
同上 |
| 中間右 |
$xoops_crblocks |
$xoops_showcblock == 1 |
同上 |
| 右側 |
$xoops_rblocks |
$xoops_showrblock == 1 |
{if $xoops_showrblock}{foreach $xoops_rblocks as $block}{$block}{/foreach}{/if} |
四、用戶狀態與資訊
| 變數 |
說明 |
型別/值 |
{$xoops_isadmin} |
是否管理員 |
Boolean (true/false) |
{$xoops_isuser} |
是否註冊用戶 |
Boolean |
{$xoops_userid} |
用戶 ID |
Integer (未登入為 0) |
{$xoops_uname} |
用戶名稱 |
String (未登入為空) |
五、完整主題範例架構
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{$xoops_sitename} - {$xoops_pagetitle}</title>
<meta name="keywords" content="{$xoops_meta_keywords}">
<meta name="description" content="{$xoops_meta_description}">
<link rel="stylesheet" href="{$xoops_themecss}">
{$xoops_js}
</head>
<body>
<header>
<h1><a href="{$xoops_url}">{$xoops_sitename}</a></h1>
{$xoops_banner}
</header>
<div class="container">
<aside class="sidebar-left">
{foreach $xoops_lblocks as $block}
{$block}
{/foreach}
</aside>
<main class="content">
{if $xoops_showcblock}
{foreach $xoops_clblocks as $block}{$block}{/foreach}
{foreach $xoops_ccblocks as $block}{$block}{/foreach}
{foreach $xoops_crblocks as $block}{$block}{/foreach}
{/if}
{$xoops_contents}
</main>
<aside class="sidebar-right">
{if $xoops_showrblock}
{foreach $xoops_rblocks as $block}{$block}{/foreach}
{/if}
</aside>
</div>
<footer>
{$xoops_footer}
</footer>
</body>
</html>
六、開發者常用技巧
- 除錯輸出所有變數:
{$smarty.get|@print_r} 或 {$GLOBALS|@print_r} (僅開發環境)
- 判斷模組/動作:
{$xoops_dirname} (模組目錄名)、{$xoops_module_header} (模組自訂 header)
- 多語系支援:使用
{_t('文字')} 或 {$lang.常數}
- 自訂區塊標題樣式:區塊輸出包含標題,可用 CSS 覆寫
.blockTitle
版本差異提醒
- XOOPS 2.5.x / 2.6.x 核心變數相容
- 第三方模組可能提供額外變數,請參考模組文檔
- Smarty 版本差異:XOOPS 內建 Smarty 3.x,語法支援
{$var|modifier}、{function} 等
- 主題目錄:
themes/your_theme/,必須包含 theme.html、style.css、theme.ini