W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有時(shí)候部分模板中的代碼是不需要或者不希望被Smarty解析的, 比較典型的例子是嵌入在頁(yè)面HTML中的Javascript或CSS代碼。 問(wèn)題通常發(fā)生在這些語(yǔ)言會(huì)經(jīng)常使用{ 和 },但{ 和 }也恰好是Smarty的定界符。
避免被解析的一個(gè)良好方式,是分離你的Javascript/CSS代碼到單獨(dú)的文件中, 然后在HTML中引入它們。而且這樣也有利于瀏覽器進(jìn)行緩存。 當(dāng)你需要嵌入Smarty的變量或者函數(shù)到Javascript/CSS中,請(qǐng)參考下面的方式:
Smarty模板中,當(dāng){ 和 }定界符兩邊都是空格的時(shí)候,將會(huì)被自動(dòng)忽略解析。 此特性可以通過(guò)設(shè)置Smarty的成員變量 $auto_literal
為false來(lái)關(guān)閉。
Example 3.8. 使用自動(dòng)忽略解析的特性
<script> // 下面的定界符兩邊都是空格,所以可以被自動(dòng)忽略解析 function foobar { alert('foobar!'); } // 下面需要手動(dòng)忽略解析 {literal} function bazzy {alert('foobar!');} {/literal} </script>
{literal}..{/literal}
可以讓塊中間的內(nèi)容忽略Smarty的解析。 在需要使用定界符的時(shí)候,可以通過(guò) {ldelim}
,{rdelim}
標(biāo)簽,或者 {$smarty.ldelim}
,{$smarty.rdelim}
的變量來(lái)使用。
Smarty的默認(rèn)定界符{ 和 }可以整齊地界定一般內(nèi)容的顯示。 然而你可以通過(guò)修改Smarty的$left_delimiter
和 $right_delimiter
的變量值,設(shè)置更適合的定界符。
修改定界符會(huì)影響到全部模板代碼和解析,請(qǐng)確保在修改前已清除了全部的緩存和編譯文件。
Example 3.9. 改變定界符的例子
<?php $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; $smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl'); ?>
模板:
Welcome <!--{$name}--> to Smarty <script language="javascript"> var foo = <!--{$foo}-->; function dosomething() { alert("foo is " + foo); } dosomething(); </script>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: