帝国CMS中实现高效随机调用的代码函数分享
帝国CMS是一个功能强大的PHP内容管理系统,它提供了许多内置函数来帮助开发者快速实现各种功能。其中,随机调用文章是一种常见的需求。为了实现这一目标,我们可以使用帝国CMS的`rand_show()`函数。这个函数接受一个参数,即要随机显示的文章ID列表。例如,如果我们想要随机显示ID为1、2、3和4的文章,我们可以这样调用该函数:`$r = rand_show(1,2,3,4);`。这将返回一个包含随机选择的文章ID的数组。
帝国CMS随机调用用’rand()’参数就可以了。
SQL随机调用方法
[e:loop={'select*from[!db.pre!]ecms_newswherechecked=1orderbyrand()desclimit10',10,24,0}]<li><ahref="<?=$bqsr['titleurl']?>"target="_blank"><?=$bqr['title']?></a></li>[/e:loop]
灵动标签随机调用方法
[e:loop={'selfinfo',8,0,0,'','rand()'}]<li><ahref="<?=$bqsr['titleurl']?>"target="_blank"><?=$bqr['title']?></a></li>[/e:loop]
下面这段是官方给出大数据高效随机调用方法,先用PHP随机出信息ID,然后SQL调用用id in (php随机的ID列表)
高效随机调用方法
<?php$randnum=10;//随机数量$randids='';$randdh='';for($i=1;$i<=$randnum;$i++){$randids.=$randdh.rand(1,100000);//1为最小ID,100000为最大ID$randdh=',';}?>[e:loop={栏目ID,显示条数,操作类型,只显示有标题图片,"idin($randids)"}]<li><ahref="<?=$bqsr['titleurl']?>"target="_blank"><?=$bqr['title']?></a></li>[/e:loop]
不过这段中的调用数量是固定死的,不方便多次调用,菜鸡源码封装成函数方法。
高效随机调用函数
<?php$nuber=$empire->gettotal('selectcount(*)astotalfromphome_ecms_news');functionrands($num,$nubers){$randnum=$num;$randids='';$randdh='';for($i=1;$i<=$randnum;$i++){$randids.=$randdh.rand(1,$nubers);$randdh=',';}$allstr.=$randids;echo$allstr;}?>
首先查询所有信息总数,然后在赋值随机数量。
这段代码只需要写一次,可以重复多次调用。
调用方法
<?=rands(10,$nuber)?>
10代表调用10个,调用多少改成多少数字。
附上灵动标签的调用方法:
[e:loop={0,1,3,0,"idin('rands(1,$nuber)')"}]<li><ahref="<?=$bqsr['titleurl']?>"target="_blank"><?=$bqr['title']?></a></li>[/e:loop]