【发布时间】:2012-02-13 07:03:15
【问题描述】:
我想做这样的事情
{if image_exists}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
我该如何解决这个问题?
【问题讨论】:
我想做这样的事情
{if image_exists}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
我该如何解决这个问题?
【问题讨论】:
与其让 Smarty 做逻辑,不如让实际的 PHP 来做。
在 PHP 中,您可以执行以下操作:
if (file_exists($filename))
{
$path = $filename;
}
else
{
$path = 'default.jpg';
}
然后在模板中你将不需要任何if 语句。只需像往常一样使用img 标签。
<img src="{$path}" />
如果你真的想在模板文件中做check,只要正常使用PHP函数,配合Smarty的if语句即可。
{if file_exists($path . $imagename)}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
【讨论】:
Smarty file_exists 函数只接受绝对路径。
所以你可以像下面这样:
{assign var="specialmsg" value="/var/www/html/public/uploads/{$logo}"}
{if file_exists({$specialmsg})}
\\SOME CODE HERE
{else}
\\ELSE CODE HERE
{/if}
【讨论】:
{if $(image variable whatever u used) ne ""}{$pathtoimagedirectory}/{$imagename}{else}{$path to default image}/{$defaultimagename}{/if}
【讨论】: