最近在用DEDE做项目,遇到一个需求是要在article_image.htm模板中直接取出附加表addonimages中的某一记录的imgurls字段的内容。而这条记录是不断变化的,比如我点击了《武夷山》图集,那么article_image.htm中就要读取aid=94这条记录的imgurls字段,比如我点击了《丝瓜架》图集,那么article_image.htm中就要读取aid=90这条记录的imgurls字段,因为图片文章模板只有一个,也就是说article_image.htm读取的内容随着我选择的图集而变动,即aid需要动态获取。
获取aid字段的值就让我纠结了很久,最后发现很简单,模板中获取当前文档的id {dede:field.id/} ,只要这一句就行了,dede标签还是用的不熟练啊。
起初我是这么写的:
{dede:loop table='#@__addonimages' if="aid={dede:field.aid/}"}
[field:imgurls runphp='yes']
echo '<pre>';
echo $GLOBALS['a']=@me;
echo '</pre>';
[/field:imgurls]
{/dede:loop}
实验失败,原因很简单,dede标签不能嵌套使用!({dede:channelArtlist}标签除外)
因此只能换一个标签了:
{dede:sql sql='SELECT imgurls FROM #@__addonimages where aid=~aid~'}
[field:imgurls runphp='yes']
echo '<pre>';
echo $GLOBALS['a']=@me;
echo '</pre>';
[/field:imgurls]
{/dede:sql}
浏览器输出成功,事实证明,{dede:sql}很强大!