Smarty 配置文件(.conf)讓設計師能將頁面標題、提示訊息等頻變文本集中管理,與模板邏輯解耦。格式類似 INI,支援區段與全局變量。
# 全局變量(無區段)
page_title = "我的網站"
site_name = "Demo Corp"
# 區段 [Aggregation]
[Aggregation]
title = "新聞聚合"
intro = "歡迎來到新聞聚合頁面"
warning = """這是一個
多行的
警告訊息"""
[SectionName] 定義,區段外為全局變量。# 開頭。{* 載入全局變量 *}
{config_load file="app.conf"}
{* 載入特定區段 *}
{config_load file="app.conf" section="Aggregation"}
{* 進階參數 *}
{config_load file="app.conf" section="Aggregation" scope="parent" global=false}
| 參數 | 說明 |
|---|---|
file | 必填,配置文件名(相對於 $config_dir) |
section | 可選,指定區段名;省略則僅載入全局變量 |
scope | 可選,變量作用域:local(預設,僅當前模板)、parent(含父模板)、global(所有模板) |
| 語法 | 範例 | 適用場景 |
|---|---|---|
井號前綴 #var# | <title>#page_title#</title> | 模板中最簡潔、最常用 |
物件屬性 $smarty.config.var | <title>{$smarty.config.page_title}</title> | 需在邏輯判斷中使用變量值時 |
方法調用 get_config_vars() | {php}$vars = $this->get_config_vars('title');{/php} | PHP 代碼區塊中獲取單個或所有配置值 |
{* 模板中 *}
{config_load file="app.conf" section="Aggregation"}
{php}
$title = $this->get_config_vars('title'); // 獲取單個
$all = $this->get_config_vars(); // 獲取所有(陣列)
{/php}
<h1>{$title}</h1>
注意:無論使用哪種引用語法,必須先在模板中呼叫 {config_load} 載入對應文件/區段。
Smarty 配置文件不會取代 CSS。樣式(顏色、字體、佈局)用 CSS;文本內容(標題、提示、標籤)用配置文件。兩者互補,共同實現表現層與內容的分離。