我正在使用Smarty 3.1.8如何在另一個自定義函數中使用include函數?
我想只在頁面上包含一個tpl文件,即使tpl文件調用次數更多。我不知道我可以用Smarty做這些,而不用寫一個新的自定義函數所以我想爲此寫一個新的自定義包含函數。
我可以在自定義包含函數中使用smarty的include函數嗎?
我想在我的自定義包含函數中使用smarty包含函數來編譯給定的模板。 我該怎麼做?
我想如下使用:
{include_js file="script.users.tpl"}
我正在使用Smarty 3.1.8如何在另一個自定義函數中使用include函數?
我想只在頁面上包含一個tpl文件,即使tpl文件調用次數更多。我不知道我可以用Smarty做這些,而不用寫一個新的自定義函數所以我想爲此寫一個新的自定義包含函數。
我可以在自定義包含函數中使用smarty的include函數嗎?
我想在我的自定義包含函數中使用smarty包含函數來編譯給定的模板。 我該怎麼做?
我想如下使用:
{include_js file="script.users.tpl"}
您是否使用PHP?如果,請嘗試以下操作:
即使它位於Smarty中,也可以使用include_once(「/ dir/filename」);使用php 。功能。
使用smarty_bc或SMARTY2:
{} some_smarty.tpl
<html>
<p>ex paragraph one</p>
<p>ex paragraph two</p>
{php} include_once("script.users.tpl"); {/php}
</html>
這樣你就可以依靠具有文件只被插入一次PHP監視器。
PHP無法直接在tpl文件中使用,所以我寫了一個聰明的函數,我正在檢查函數內的給定路徑如果沒有包含tpl文件,我正在將它推送到html.I認爲這是最好的方法。 '{include_once file =「user_scripts.tpl」}' –
對不起,我更新了答案以反映您的意見。如果這不適合你,你可能需要一個靜態類來跟蹤它是否被調用,如果它已被使用則返回一個空值。 – RightHandedMonkey
感謝您的建議@ RightHandedMonkey。使用靜態類是適用的,但我認爲使用smarty函數更好的方法。 –
也許我只是不太明白你的問題,但模板並不是你只是'包括一次'的東西。它只是表示數據的藍圖,然後將數據應用到它。所以我不太明白你的意思包括一個模板文件... – Quasdunk
對不起,我知道一點英語。所以我沒有完全解釋我想要什麼。如果我可以在include_js函數中編譯include_js函數中的模板作爲參數,我會檢查模板是否加載之前,如果模板加載之前,我不會再包括模板。你明白我嗎? –
我想我現在知道你的意思了:你想傳遞一個模板名稱給函數include_js($ template_name)',並且在函數內部,你想檢查這個模板是否已經被渲染過,否則現在渲染它。嗯,是的,這很有可能,但是知道你的編碼語言或者看一些代碼會是有幫助的......模式非常簡單:將模板保存到一個(某種全局)變量(比如'$ tmpl_1 = $ smarty-> fetch(...);'in PHP),然後在'include_js()'中檢查變量是否被設置。我希望這能夠以某種方式回答你的問題。 – Quasdunk