0

我有 Smarty 模板文件。从 Smarty 传递到 php 时,$listing.activation_date 为空。有什么解决办法吗?

{$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

您可以使用内联 PHP Smarty 分配并将该变量包装到括号中:

{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 回答