一、模板存放及調用規則
模板存放于系統 template 目錄,template 目錄下的一個目錄
例如:template/default/ 即為一套模板
模板文件以 .htm 為擴展名,可直接存放于模板目錄
例如 template/default/index.htm
也可以存放于模板目錄的子目錄里
例如:template/default/member/index.htm
在PHP文件里,使用模板語法為
1
2
3
|
<?php include template( 'index' ); ?> |
或者
1
2
3
|
<?php include template( 'index' , 'member' ); ?> |
如果當前默認模板套系為default,則:
1
2
3
|
<?php include template( 'header' ); ?> |
表示使用 template/default/header.htm 模板文件
1
2
3
|
<?php include template( 'header' , 'member' ); ?> |
表示使用 template/default/member/header.htm 模板文件
模板目錄下在 these.name.php 是模板別名的配置文件,模板別名可以在后臺模板管理修改。
模板解析后的緩存文件保存于cache/tpl/目錄,擴展名為 .tpl.php
二、模板語法
1、包含模板:{template 'header'} 或{template 'header', 'member'}
{template 'header'}被解析為
1
2
3
|
<?php include template( 'header' ); ?> |
表示使用 template/default/header.htm 模板文件
{template 'header', 'member'}
被解析為:
1
2
3
|
<?php include template( 'header' , 'member' ); ?> |
表示使用 template/default/member/header.htm 模板文件
2、變量或常量表示:
變量 {$destoon} 被解析為:
1
2
3
|
<?php echo $destoon ; ?> |
常量 {DESTOON} 被解析為:
1
2
3
|
<?php echo DESTOON; ?> |
對于數組,標準寫法應為 例如 {$destoon['index']},可簡寫為{$destoon[index]},模板在解析時會自動追加引號。
3、函數 {func_name($par1, $par2)}
{func_name($par1, $par2)}被解析為
1
2
3
|
<?php func_name( $par1 , $par2 ); ?> |
4、PHP表達式 {php expression}
{php expression}被解析為
1
2
3
|
<?php expression ?> |
5、條件語句 {if $a=='b'} do A {/if} 或{if $a=='b'} do A {else} do B {/if} 或 {if $a=='b'} do A{elseif $b=='c'} do C {else} do B {/if}
{if $a=='b'} do A {/if}被解析為
1
2
3
4
5
|
<?php if ( $a == 'b' ) { do A } ?> |
{if $a=='b'} do A {else} do B {/if}被解析為
1
2
3
4
5
6
7
|
<?php if ( $a == 'b' ) { do A } else { do B } ?> |
{if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if}被解析為
1
2
3
4
5
6
7
8
9
|
<?php if ( $a == 'b' ) { do A } else if ( $b == 'c' ) { do C } else { do B } ?> |
6、LOOP循環 {loop $var $v}...{loop} 或
{loop $var $k $v}...{loop}
{loop $var $v}...{loop}被解析為
1
2
3
4
5
6
|
<?php if ( is_array ( $var )) { foreach ( $var as $v ) { ... } } ?> |
{loop $var $k $v}...{loop}被解析為
1
2
3
4
5
6
|
<?php if ( is_array ( $var )) { foreach ( $var as $k => $v ) { ... } } ?> |
三、特殊用法
1、變量或表達式可以用HTML注釋,例如<!--{$destoon}--> 仍被解析為 <?php echo $destoon; ?> (可自動過濾此類注釋)
2、可直接在模板里書寫PHP代碼,直接書寫PHP代碼與DESTOON 模板語法是兼容的。