在SDCMS四合一企业网站管理系统中随机调用一条广告的图片可以实现吗?
当然是可以实现的,虽然四合一的广告是以JSON形式存储的,但是也可以实现随机调用其中一条图片的。下面来看实现方法。
我们先看默认广告的调用标签:
{sdcms:rs table="sd_ad" where="akey='pc' and islock=1"} {php $adlist=jsdecode($rs[datalist],1)} {php $step=0} {foreach $adlist as $num=>$val} <div class="ui-carousel-item{if $step==0} active{/if}"><a style="background:url('{$val['image']}') no-repeat center;" href="{$val['url']}" title="{$val['desc']}"></a></div> {php $step++} {/foreach} {/sdcms:rs}
这是系统首页调用的Banner广告,默认是多张的,原理是,将Json转化为数组,然后循环遍历数组显示,既然是数组,那么我们即可使用php的随机函数,默认获取一条,代码为:
{php $num=array_rand($adlist,1)}
解释:定义$num变量,使用array_rand函数,随机获取一个下标,然后重新赋值给数组,代码如下:
{php $adlist=[$adlist[$num]]}
最后再循环这个数组即可,也可以不循环,直接显示数组对应的内容,我们使用循环的方法,省得修改代码,最终结果如下:
{sdcms:rs table="sd_ad" where="akey='pc' and islock=1"} {php $adlist=jsdecode($rs[datalist],1)} {php $step=0} {php $num=array_rand($adlist,1)} {php $adlist=[$adlist[$num]]} {foreach $adlist as $num=>$val} <div class="ui-carousel-item{if $step==0} active{/if}"><a style="background:url('{$val['image']}') no-repeat center;" href="{$val['url']}" title="{$val['desc']}"></a></div> {php $step++} {/foreach} {/sdcms:rs}