亚洲精品国产字幕久久vr|色噜噜视频在线观看|久热精品男人的天堂在线视频|久久综合九色综合亚洲小说|欧美日韩一区二区不卡|精品国语对白精品自拍视

Skip to content
快速導航

DedeCMS動(dòng)態(tài)模板引擎 ?

核心文件 ?

include/dedetemplate.class.php

功能描述 ?

用于非核心模塊的動(dòng)態(tài)頁(yè)面或列表頁(yè)的模板解析, 如:member/content_list.php ,通常是在 datalistcp.class.php 中使用,這個(gè)類(lèi)在動(dòng)態(tài)運行的情況下,由于本身是把模板編譯成PHP的,因此性能上會(huì )優(yōu)級于舊的解析類(lèi),這個(gè)方法將在未來(lái)版本中作為通用的方式。

使用方法 ?

php
$tpl = new DedeTemplate(
	模板對象實(shí)例名稱(chēng),通常是'tpl',
	[模板存放目錄(生成緩存時(shí)會(huì )存放在這個(gè)目錄),
	include語(yǔ)法默認引用目錄]
);

通常情況下參數二和參數三是不必要的,如:

php
$tpl = new  DedeTemplate('tpl');

如果在類(lèi)文件中調用,應該加上設置:

php
$this->tpl->SetObject($this);

在一些塊調用中默認將使用當前類(lèi)的成員函數。

php
$tpl->LoadTemplate(模板的物理路徑);

如果模板中帶有 {dede:config name='' value=''/} 可以在載入模板后,通過(guò) $tpl->GetConfig($name) 獲得這些變量的值。

顯示頁(yè)面或保存頁(yè)面為文件

php
$tpl->Display();
php
$tpl->SaveTo(/*物理絕對路徑的文件名*/);

標記語(yǔ)法 ?

標記通用特性 ?

短標記 ?

html
{dede:tagname.name /}

等同于

html
{dede:tagname name='' /}

塊標記 ?

html
{dede:tagname}
	循環(huán)代碼...
{/dede:tagname}

標記的具體語(yǔ)法及對應的PHP代碼 ?

配置變量 ?

html
{dede:config name='' value='' /}

配置變量可以在載入模板后通過(guò) $tpl->GetConfig($name) 獲得,僅作為配置,不在模板中顯示。

短標記 ?

html
{dede:global.name /}

外部變量,等同于 <?php echo $name; ?>

html
{dede:var.name /}

var數組,等同于 <?php echo $_vars['name']; ?>

html
{dede:field.name /}

field數組,等同于 <?php echo $fields['name']; ?>

html
{dede:cfg.name/}

系統配置變量,等同于 <?php echo $cfg_name; ?>

考慮到大多數情況下都會(huì )在函數或類(lèi)中調用模板,因此 $_vars 、$fields 數組必須聲明為 global 數組,否則模板引擎無(wú)法獲得它的值從而導致產(chǎn)生錯誤。

自由調用塊標記 ?

html
{tag:blockname bind='GetArcList'  bindtype='class'}
	循環(huán)代碼
{/tag:blockname}
必要屬性: ?
  • bind - 數據源來(lái)源函數
  • bindtype - 函數類(lèi)型,默認是 class 可選為 sub
  • rstype - 返回結果類(lèi)型,默認是 array ,可選項為 string 。

自定義函數格式必須為 function(array $atts,object $refObj, array $fields); 在沒(méi)有指定 bind 綁定的函數的情況下,默認指向 MakePublicTag($atts,$tpl->refObj,$fields) 統一管理。

固定塊標記 ?

datalist ?

從綁定類(lèi)成員函數 GetArcList 中獲取數組并輸出

html
{dede:datalist}
	循環(huán)代碼
{/dede:datalist}

遍歷一個(gè)二維數組,數據源是固定的,只適用用類(lèi)調用。等同于

html
{tag:blockname bind='GetArcList' bindtype='class' rstype='arrayu'}
	循環(huán)代碼
{/tag:blockname}
label ?

從綁定函數中獲取字符串值并輸出。等同于

html
{tag:blockname bind='func' bindtype='sub' rstype='string'/}
pagelist ?

從綁定類(lèi)成員函數 GetPageList 中獲取字符串值并輸出。等同于

html
{tag:blockname bind='GetPageList' bindtype='class' rstype='string'/}
include ?
html
{dede:include file='文件路徑'/}

html
{dede:include filename='文件路徑'/}
php ?
html
{dede:php php代碼... /}

html
{dede:php}
	php代碼...
{/dede:php}
If ?

僅支持 if ,else ,else 直接用 {else} 表示,但不支持 {else if} 這樣的語(yǔ)法 ,一般建議模板中不要使用太復雜的條件語(yǔ)法,如果確實(shí)有需要,可以直接使用 php 語(yǔ)法。

html
{dede:if 條件}
	a-block
{else}
	b-block
{/dede:if}

條件中允許使用 var.name 、global.name 、 field.name 、cfg.name 表示相應的變量。

如:

html
{dede:if field.id>10 }
	......
{/dede:if}
遍歷一個(gè) array數組 ?
html
{dede:array.name}
	{dede:key/} = {dede:value/}
{/dede:array}

各種語(yǔ)法的具體編譯后的代碼,可查看 dedetemplate.class.php 中的 function CompilerOneTag(&$cTag) 函數。

織夢(mèng)官方 版權所有 | 未經(jīng)授權禁止轉載 | | 云主機支持:藍隊云

亚洲精品国产字幕久久vr|色噜噜视频在线观看|久热精品男人的天堂在线视频|久久综合九色综合亚洲小说|欧美日韩一区二区不卡|精品国语对白精品自拍视