0

Smarty テンプレート ファイルがあります。$listing.activation_date は、Smarty から php に渡すときに null です。解決策はありますか?

{$listing.activation_date}
{php}
$startDate = strtotime('now');

$interval = $startDate - strtotime($this->get_template_vars('$listing.activation_date'));

{$listing.activation_date} = 2012-Sep-05

非オブジェクト エラーを防ぐために、$smarty を $this に変更しました。

$this->assign("interval", $interval); 
$days = floor($this/ (60 * 60 * 24)); {/php} 
{if $days < 1} <img src=" {$GLOBALS.site_url}/templates/Natural/main/images/new.gif"/> 
{/if} 

$days は {php} と Smarty $days<1 で正しいですか?

4

2 に答える 2

0

インラインPHPSmartyを使用して、その変数をブラケットに割り当ててラップすることができます。

{php}
    $startDate = strtotime('now');
    $interval = $startDate - strtotime('{$listing.activation_date}');
    $smarty->assign("interval", $interval);
{/php}
于 2012-09-06T06:40:37.060 に答える
0

Smarty3 では {php} は必要ありません:

{$interval = $smarty.now - {$listening.activation_date|strtotime}}

Smarty2 では「複雑な」インライン式が許可されていないため、「馬鹿にする」必要があります。

{assign var="now" value=$smarty.now}
{assign var="then" value=$listening.activation_date|strtotime}
{assign var="interval" value=$now-$then}

{php} を使用していることに気付くときはいつでも、何か「間違った」ことをしているのです。Smarty には、プレゼンテーションからロジックを分離できる機能豊富なプラグイン システムがあります。

于 2012-09-08T12:13:23.053 に答える