2014-02-10 24 views
0

你好我使用Smarty的,並試圖獲得的if/else在TPL其中顯示工作{$代碼}Smarty的 - PHP的if/else

php文件

$this->_Smarty->assign("License_Key", TRUE); 

$Value = ' 
License Key : 
{if $License_Key} 
Valid 
{else} 
Not Valid 
{/if}'; 

$this->_Smarty->assign("Code", $Value); 

在TPL文件:

{$Code} 

輸出爲

License Key : 
{if $License_Key} 
Valid 
{else} 
Not Valid 
{/if} 

出認沽應該是:

License Key : Valid 
+0

您正在爲任何其他Smarty變量分配'$ Value'。你沒有告訴Smarty它應該將該片段解釋爲Smarty模板。 – deceze

回答

1

你必須把的$Value內容爲.tpl文件,而不是到PHP。所以.tpl內容將是:

License Key : 
{if $License_Key} 
    Valid 
{else} 
    Not Valid 
{/if} 

PHP,只分配$License_Key

$this->_Smarty->assign("License_Key", TRUE); 

編輯:但是,如果你需要做的是你究竟是如何寫的,你可以使用{eval},試試這樣:

{eval var=$Code} 

但我仍建議你在Smarty模板中使用Smarty標記,而不是在PHP文件中使用它。

+0

是的,但我正在尋找其他的東西,所以我必須用這種方式,有沒有解決方案?所以我可以使用if/else在分配 –

+0

我剛剛更新了我的文章 –

+0

好吧它工作正常,非常感謝你,你最好:) –

0

我認爲這是你在找什麼:

$Value = 'License Key : '.($License_Key) ? 'Valid' : 'Not Valid'; 

?基本上是如果和:基本上是別的。

+0

這比在PHP中使用smarty標籤更有意義。這不是它的目的。只要在PHP中這樣做,並輸出結果smarty。 –

+0

謝謝,這是非常真實的。 – Anonymous