2015-11-24 92 views
0

在當前網站上,我試圖執行一個函數,它來自一個變量。Smarty - 調用函數並呈現響應

我當前的代碼片段:

<textarea rows="10" name="{$field.name}" class="form-control">{$field.placeholder}</textarea> 

那麼,什麼是佔位符變量裏面?

{$plugin->getMessage()} 

而且從我的textarea的內容目前是這樣設置:

{$plugin->getMessage()} 

但我們的目標是,是智者執行的功能和使用的內容,從函數返回。所以我試圖使用一些過濾器。

  • 首先我用"ldelim""rdelim"

    {ldelim}{$field.placeholder}{rdelim} 
    

在我的瀏覽器的響應(textarea的內在價值):

{{$plugin->getMessage()}} 
  • 而且我嘗試使用"literal"

    {literal}{$field.placeholder}{/literal} 
    

在我的瀏覽器(textarea的內在價值)的響應:

{$field.placeholder} 

但我應該用什麼,讓我的功能"$plugin->getMessage()"的反應?

編輯: 別人,誰擁有了同樣的問題還有:使用{eval var=$foo}

http://www.smarty.net/docs/en/language.function.eval.tpl

回答

1

我認爲可以就如何Smarty的作品相混淆。似乎你只是將一個字符串「{$ plugin-> getMessage()}」分配給一個變量$ field.placeholder,並且希望smarty能夠評估它。但它不,所以這就是爲什麼它顯示字符串。

爲了使它工作,你應該在你的PHP腳本函數的結果分配給一個變量

+0

是啊,我是一個有點困惑,因爲在嫩枝你能重新解析利用可變內容'| raw'。因此,我在變量中調用的函數作爲字符串正在執行一次,並返回函數結果。我真的懷疑,聰明的人也不能那樣做。 – Tyralcori

+1

那麼,smarty有{eval} - http://www.smarty.net/docs/en/language.function.eval.tpl,不知道它是否像小樹枝一樣工作,但你可以試試 – Borgtex

+0

這正是我期待的!非常感謝你。 – Tyralcori

相關問題