2

以下是 smarty 模板的代码片段。实际上有一个关联数组,我们在 smarty 模板中显示它的值。关联数组的一个这样的元素是$ans.answer_text,我必须检查<img>内容(值)中是否存在任何标签,如果<img>标签存在,我必须做一些逻辑,如果没有,我必须做其他一些逻辑。但我面临的主要问题是如何检查<img>数组元素数据中是否存在标签?请帮我解决这个问题。提前致谢。

<tr valign="top">
    {foreach from=$qstn_ans.answer item=ans key=ans_no}
         <td valign="top" valign="top">
         {if $ans.answer_is_right==1}{assign var='correct_ans' value=$ans_no+1}{/if}
         <b>{$ans_no+1}.</b>&nbsp;&nbsp;
         {if $ans.answer_text!=''}{$ans.answer_text}{/if}
         <br />
         {if $ans.answer_file!=''}<img src="{$ans_thumb_img_path}{$ans.answer_id}_{$ans.answer_file}" />{/if}
         </td>
    {/foreach}
</tr>
4

2 回答 2

1

这种用法违背了使用寺庙引擎的目的。理想情况下,您应该在控制器中进行这些检查。

我会通过以下方式做到这一点:

$qstn_ans = array();
// PHP Controller
foreach ($qstn_ans as $key => $value) {
    $imgPath = ''; // generate the name here
    $qstn_ans[$key]['hasImage'] = (file_exists($imgPath))?1:0;
}

// Template file
{if $ans.hasImage}<img src="<!-- insert image here -->" />{/if}
于 2013-01-28T12:39:17.150 回答
0

您是否尝试过使用 {html_image}?

http://www.smarty.net/docsv2/en/language.function.html.image.tpl

于 2013-01-28T12:34:19.160 回答