2012-02-13 5 views

答えて

5

Smartyにロジックをさせるのではなく、代わりに実際のPHPを使用する方が良いと言えます。

if (file_exists($filename)) 
{ 
    $path = $filename; 
} 
else 
{ 
    $path = 'default.jpg'; 
} 

はその後、テンプレートには、任意の if文を必要としません。

PHPでは、あなたのような何かを行うことができます。通常通り、imgタグを使用してください。

<img src="{$path}" /> 

あなたは本当にただのSmartyのif文で正常にPHPの関数を使用し、テンプレートファイルにチェックをしたい場合。

{if file_exists($path . $imagename)} 

<img src='{$path}{$imagename}'> 

{else} 

<img src='{$path}default.jpg'> 

{/if} 
+0

が、私は、私はさてあなたは、単にPHPでループを持っていると、あまりにもチェックを行うことができます –

+0

チェックするSmartyのを必要とする理由です、TPLファイルにすることができますsmartyloop使用していますあなたは?また、実際にテンプレートファイルのチェックをしたい場合は、同じことをすることができます。私は私の答えを更新しました。 –

+0

{file_exists($ imagename)}が機能していない場合: –

0
{if $(image variable whatever u used) ne ""}{$pathtoimagedirectory}/{$imagename}{else}{$path to default image}/{$defaultimagename}{/if} 
3

Smartyのfile_exists機能だけ絶対パスを受け付けます。

ので、uは以下のように行うことができます。

{assign var="specialmsg" value="/var/www/html/public/uploads/{$logo}"} 
{if file_exists({$specialmsg})} 
\\SOME CODE HERE 
{else} 
\\ELSE CODE HERE 
{/if} 
関連する問題