2013-03-05 65 views
0
<div><div style="margin-left:67px"><table style="border:1px #80A0BB solid;" padding="5px"><tr><td><a href="{$link.URL|trim}" target="_blank"><img src="{$smarty.const.DOC_ROOT}/images/thumbs/{$link.ID}-300x225.png" alt="" /></a></td></tr></table></div></div> 

我想根据图片是否存在于我的服务器上来隐藏div。如何检查图像是否存在,如果不存在则隐藏div?还是有更好的方法来做到这一点?基于图像是否存在,在TPL文件中隐藏DIV?

回答

0

最简单的方法就是使用PHP编写一个函数,然后在Smarty中使用它。

在PHP:

function linkImageExists($link){ 

    //Check to see if image for link exists and return true if it does. 
    // otherwise: 
    return false; 
} 

在Smarty的模板:

{if linkImageExists($link)} 
<div> 
    <div style="margin-left:67px"> 
     <table style="border:1px #80A0BB solid;" padding="5px"> 
      <tr> 
       <td> 
        <a href="{$link.URL|trim}" target="_blank"> 
         <img src="{$smarty.const.DOC_ROOT}/images/thumbs/{$link.ID}-300x225.png" alt="" /> 
        </a> 
       </td> 
      </tr> 
     </table> 
    </div> 
</div> 

{else} 
    {* image doesn't exist *} 
{/if} 

您可能要考虑将$link成一个对象,然后你可以调用函数就可以了,而不必使用全局可能会在未来制定更清洁的代码。