W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
{insert}
是廢棄的函數(shù),不應(yīng)該再使用。將你的PHP邏輯放到PHP腳本中或者通過插件來代替。
在Smarty 3.1,{insert}
僅在SmartyBC中可用.
{insert}
的工作方式和{include}
函數(shù)很像, 除了當(dāng)模板開啟了caching時,{insert}
函數(shù)是不會被緩存, 它會在每次模板調(diào)用的時候都執(zhí)行。
參數(shù)名稱 | 類型 | 必選參數(shù) | 默認(rèn)值 | 說明 |
---|---|---|---|---|
name | string | Yes | n/a | insert函數(shù)的名稱(insert_name ) 或 insert 插件 |
assign | string | No | n/a | 將輸出的內(nèi)容賦值給變量 |
script | string | No | n/a | 在insert函數(shù)調(diào)用前,載入的PHP文件名。 |
[var ...] | [var type] | No | n/a | 傳遞到insert函數(shù)的變量 |
我們假設(shè)你有一個包含了橫幅廣告的模板,廣告將顯示在頁面的頂部。 橫幅廣告將包括HTML、圖片、FLASH等。 所以我們不能在橫幅內(nèi)使用靜態(tài)鏈接,也不能對其進(jìn)行緩存。 我們用{insert}:模板可以從配置文件中獲取到 #banner_location_id# 和 #site_id# 值, 并且調(diào)用一個函數(shù)來顯示橫幅廣告的內(nèi)容。
Example 7.56. {insert} 函數(shù)
{* example of fetching a banner *} {insert name="getBanner" lid=#banner_location_id# sid=#site_id#} {insert "getBanner" lid=#banner_location_id# sid=#site_id#} {* short-hand *}
在這個例子中,我們使用了名為“getBanner”的insert函數(shù),并且傳遞了 #banner_location_id# 和 #site_id#參數(shù)。 Smarty將查詢PHP程序,找到insert_getBanner()函數(shù),用數(shù)組將#banner_location_id# 和 #site_id#作為該函數(shù)的第一個參數(shù)來傳遞。 程序中全部的{insert}對應(yīng)的函數(shù)都應(yīng)該以"insert_"開頭,以避免命名沖突。 你的insert_getBanner()函數(shù)應(yīng)該用傳進(jìn)去的參數(shù)做一些處理,并且返回結(jié)果。 這些結(jié)果將顯示在模板的{insert}標(biāo)簽的位置。 在這個例子中,Smarty將調(diào)用函數(shù)insert_getBanner(array("lid" => "12345","sid" => "67890")); 然后將返回的結(jié)果顯示在{insert}的位置。
如果設(shè)置了assign
屬性,那么{insert}
輸出的內(nèi)容將被賦值到 模板變量中,而不是進(jìn)行顯示。
當(dāng)caching開啟時,將輸出賦值到模板變量并非很有用。
如果設(shè)置了script
屬性, 在{insert}
函數(shù)執(zhí)行之前,該路徑的PHP文件將被載入(僅一次)。 當(dāng)該insert函數(shù)并不存在是,使用這個方法可以在該PHP文件中載入此函數(shù)。
載入的PHP文件路徑可以是絕對路徑,或是相對于 $trusted_dir
的路徑。 如果安全機制開啟,那么只有在$trusted_dir
目錄中的文件才可以被載入。 參見安全機制。
傳遞的第二個參數(shù)是Smarty對象。 這樣你可以在 {insert}
函數(shù)內(nèi)引用和修改Smarty對象的信息。
如果該PHP文件無法找到,Smarty將尋找是否有相應(yīng)名稱的insert插件。
這是一個使頁面部分區(qū)域不進(jìn)行緩存的方法。 即使你開啟了緩存,{insert}
函數(shù)也不會別緩存。 它會在每次頁面創(chuàng)建時都動態(tài)執(zhí)行,即使是緩存頁面。 在這一些場合,如橫幅廣告、投票調(diào)查、即時天氣,搜索結(jié)果、用戶反饋區(qū)域等比較有用。
參見 {include}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: