[TOC]
## 變量輸出
### 在 html 模板頁面上直接輸出變量的值.
**語法**
~~~
{$var} ? <?php echo $var;?>
~~~
**示例**
~~~
<table class="tb">
<tr>
<td>{$row['title']}</td>
<td>{$row['name']}</td>
</tr>
</table>
~~~
~~~
<p>歡迎你:{$_W['member']['username']}</p>
~~~
## 語句嵌入
**語法**
~~~
{php statement;}
~~~
**示例**
~~~
{php $i = 1;}
~~~
~~~
{php echo date('Y-m-d H:i:s', $row['dateline']);}
~~~
## 條件語法
~~~
{if expression_statement_1}
{elseif expression_statement_2}
{elseif expression_statement_3}
…
{else}
{/if}
~~~
**示例**
~~~
{if $row['flag'] == '-1' && $row['role'] != 'admin'}被禁用{/if}
~~~
~~~
{if $row['role'] == 'admin'}
管理員
{else}
普通用戶
{/if}
~~~
~~~
{if $row['role'] == 'founder'}
創始人
{else if $row['role'] == 'admin'}
管理員
{else}
普通用戶
{/if}
~~~
## 循環語法
**語法**
~~~
{loop $list $row}
{/loop}
{loop $list $key $value}
{/loop}
~~~
**示例**
~~~
{loop $wechats $wechat}
<li>Name: {$wechat['name']}</li>
{/loop}
~~~
~~~
{loop $wechats $weid $wechat}
<li>Id: {$weid}; Name: {$wechat['name']}</li>
{/loop}
~~~
## **模板嵌套**
**可以在模板的當前位置嵌入另一個或多個模板一次或多次**
**語法**
~~~
{template $name}
~~~
**說明**
> 主系統(app/web)的模板頁面調用模板方式, 如: {template 'common/header'} , 斜杠前面為文件夾名稱, 后面為模板名稱
> 自定義模塊(addons)中調用本模塊模板的方式, 如: {template 'setting'} 來實現'./addons/模塊/template/setting.html' 的調用
**示例**
~~~
{template 'common/header'} <!-- 嵌入標準頁頭。-->
<p>可以嵌套多個模板</p>
{template 'test'} <!-- 模塊模板嵌入模塊內模板。-->
{template 'common/footer'} <!-- 嵌入標準頁腳。-->
~~~
## 數據獲取標簽
**微擎系統內置了一種 數據獲取標簽 來直接呈現 自定義標簽函數 返回的數據.**
### 自定義標簽函數
在模塊中使用**數據獲取標簽**, 首先要在模塊目錄下創建 **model.php** 文件, 在該文件中定義標簽函數, 標簽函數的定義如下所示, 所有參數均從 **$params** 中獲取.
**model.php**
~~~
function function_name($params = array()) {
}
~~~
### 數據獲取標簽
~~~
{data module='' func='' assign='' item='' return='' limit='' index='iteration'}
{/data}
~~~
| 參數名稱 | 說明 |
| -- | -- |
| module | 指定獲取數據的模塊。可以在任意模板頁面調用任意模塊下定義的標簽函數, 缺省則使用已存在的標簽函數. |
| func | 指定獲取數據的函數,此函數定義在自定義模塊目錄下的 model.php 文件中 |
| assign | 指定該標簽得到數據后,存入的變量名稱。如果為空則存在與func同名的變量中,方便在下方的代碼中使用。 |
| item | 指定循環體內的迭代時的變量名。相當于 foreach ($foo as $i ? $row) 中 $row變量。 |
| return | 為true時,獲取到數據后作為變量返回;為false時,獲取到數據后直接循環輸出,默認為false |
| limit | 指定獲取變量時條數, 通常用于標簽函數中拼接 sql 限制獲取數據行數,$sql .= ” limit {$params['limit']}“ |
| index | 提供循環中的索引值,從 1開始。默認變量名為 ‘iteration’,也可以自定義變量名。通過{$row['iteration']} 調用。 |
注意: 以上列表是 **標簽函數** 預設處理的輸入變量, 開發者可以在標簽中任意傳入所需參數, 在標簽函數中訪問**$params**即可
**示例**
~~~
{data func='site_navs' section='2' item='nav' a='1' b='2' c='3'}
{$nav['html']} <br>
{/data}
~~~
目前支持的獲取數據 function:見【微站模版】