找不到帮助文档?你想要哪方面的帮助教程?提交文档建议 >
帮助文档首页
DiYunCMS公众号
公众号二维码

模块内容列表循环

更新时间:2023-03-12 加入收藏
0

一、作用

用于循环查询模块内容数据(支持分页查询)

二、语法

{module module=模块名称 ....}{/module}

三、参数介绍

参数
介绍
module
模块名称,默认为当期模块(仅在模块模板中有效),例如新闻模块,填写news
site
站点id,默认当前站点,填写其他站点id表示查询其他站点的模块数据
catid
栏目id,支持多个栏目以小写分号分开,例如1,2,3,4
field可用字段,多个字段以小写分号分开,默认全部字段
order
排序方式,多个排序以小写分号分开,默认降序排列,例如updatetime_asc表示按更新时间升序排列
num
表示显示数量,支持定点查询,例如1,2表示从第1条记录开始,共显示2条数据
more
当等于more=1时表示查询栏目模型字段,附表字段不支持查询(more=1参数必须与catid共存)
flag
推荐位id,只支持一个推荐位查询
join
关联表查询
on关联条件,格式为on=关联字段,被关联字段
page
当page=1时表示开启分页查询,否则pagesize与urlrule是不会生效的
pagesize分页显示数据量(当存在catid时会自动取该栏目设置的数量,修改栏目-模块设置-设置数量即可)
urlrule分页地址规则:[page]表示分页标识符(当存在catid时会自动取该栏目设置的URL分页规则)
sbpage当存在catid参数时又想按照自定义方式来分页需要设置参数sbpage=1,表示强制按自定义分页
cache
缓存时间单位秒,默认关闭缓存;当cache=3600时,表示缓存时间1小时,建议数据查询的标签都加上缓存参数
return
默认返回变量为t,调用方式就是{$t.字段值}


四、返回变量

变量
参数
{$debug}
当查询不到数据时,会返回错误信息,调试模板时很有用哦(写在标签以外)
{$total}
用于分页时查询的总记录数量(写在标签以外)
{$count}当前查询的记录,当存在分页时,表示当前页的记录数(写在标签以外)
{$nums}用于分页时返回总的页数(写在标签以外
{$pagesize} 用于分页时返回当前每页查询数量(写在标签以外
{$pages}
显示分页代码(写在标签以外)
{$key}
当前记录指针位置,从0开始(写在标签以内)
{$return}当前查询的结果集数组
当存在return=字母时,以上变量都要写成这种格式{$变量_字母},例如{...reutrn=a}时,变量格式{$key_a}
{$is_first}判断是否第一条,{if $is_first}第一条{/if}
{$is_last}判断是否最后一条,{if $is_last}最后一条{/if}


、显示字段

{$t.字段名称}或者{$t['字段名称']}

每个字段类型的输出方式不一样


六、字段查询方法

修饰符
介绍
LIKE_字段
模糊匹配查询,例如LIKE_title=%名称%表示like title '%标题%'
IN_字段
IN子句查询,例如IN_id=1,2,3,4表示id in (1,2,3,4)
NOTIN_字段NOTE IN子句查询,例如NOTIN_id=1,2,3,4表示id not in (1,2,3,4)
BEWTEEN_字段两者之间查询,例如BEWTEEN_id=1,100表示id在1到100的数据
BW_字段同上,简写
NOT_字段逻辑非查询,例如NOT_name=1,表示name不能等1的数据
字段=值
字段条件查询,例如uid=1表示会员id=1的数据

七、部分实例

1、显示文章指定栏目1的数据,num表示显示10条,order表示按排序值与更新时间排序,默认cache缓存时间10小时

{module module=news catid=1 field=title,url,updatetime order=displayorder_desc,updatetime num=10}
标题:{$t.title}
地址:{$t.url}
更新时间:{$t.updatetime}
自定义更新时间:{dr_date($t._updatetime, 'Y-m-d')}
栏目名称:{dr_cat_value($t.catid, 'name')}
栏目名称:{dr_cat_value('news', $t['catid'], 'name')}
栏目URL:{dr_cat_value($t.catid, 'url')}
简介:{$t.description}
图片:{dr_thumb($t.thumb, 宽, 高, 是否水印)}或者{dr_get_file($t.thumb)}
发布会员信息:
{php $user=dr_member_info($t.uid);}
用户名:{$user.username}
头像:{dr_avatar($user.id)}
{/module}

循环中其它字段调用

单选字段:

字段值:{$t['danxuananniu']}
字段名称:
{php $field = dr_field_options(字段ID);}
{$field[$t['字段名称']]}
{/module}

复选框:

选择值:
{loop $t['fuxuankuang'] $v}
{$v}
{/loop}

选择的名称:
{php $field = dr_field_options(64);}
{loop $field $name $v}
{if in_array($name, $t['fuxuankuang'])}
{$v}
{/if}
{/loop}


增加条件:关联会员在其它表中发布了信息才显示

如下,循环news表,但必须关联会员在zhaopin表中发布过信息

<?php
$rt = \Phpcmf\Service::M()->db->query("select uid from dr_1_zhaopin group by uid");
if ($rt) {
    $rows = $rt->getResultArray();
    foreach ($rows as $t) {
        $uid.= $t['uid'].',';
    }

}
?>
{module module=news IN_uid=$uid order=displayorder_desc,updatetime num=10}
{/module}


2、显示文章指定栏目1,2,3,4,5数据,num表示显示10条,order表示按人气排序

{module module=news catid=1,2,3,4 num=10 order=hits}
......
{/module}


3、显示文章在站点2的数据

{module module=news site=2}
....
{/module}


4、显示其他模块photo的数据

{module module=photo}
....
{/module}


5、分页显示文章模块的栏目为10的数据(当存在catid参数时只需加page参数就能分页输出)

{module module=news catid=10 page=1}
.....
{/module}
{$pages}表示分页输出代码


6、自定义分页显示文章模块的数据(可以在任何页面)

{module module=news page=1 pagesize=10 urlrule=index.php?page=[page]}
.....
{/module}
{$pages}表示分页输出代码
pagesize表示指定分页显示数据量
urlrule表示分页地址规则,[page]参数必须有哦,否则分页链接不正常


7、推荐位查询,flag表示推荐位的id号,后台可以看到,你懂得

{module module=news flag=1 num=10}
.....
{/module}


8、错误排查方式,必须掌握,很实用

{module catid=1 num=10}
.....
{/module}
{$debug}:表示这段查询的sql语句解析
如果遇到查询错误,它会返回相关信息


9、显示news模块的带缩略图的10条文章并按时间先后顺序排列 

{module  module=news thumb=1 num=10 order=updatetime}
图片:{dr_thumb($t.thumb, 宽, 高, 是否水印)}或者{dr_get_file($t.thumb)}
.....
{/module}


10、随机调用news模块的10条内容

{module  module=news order=RAND cache=0 num=10}
.....
{/module}


11、调用栏目1的内容和他模型字段的内容

{module  module=news catid=1 more=1}
.....
{/module}
参数more=1表示调用模型字段,必须存在catid,否则不知道调用哪个栏目的模型字段


12、栏目的模型字段筛选

{module module=news 字段=值 catid=1 more=1}
.....
{/module}
方法和内容字段一样 
参数more=1表示调用模型字段,必须存在catid,否则不知道调用哪个栏目的附加字


13、查询某个会员发布的news内容

{module module=news uid=会员id号}
....
{/module}


14、查询当前内容的作者的全部发布news内容

{module module=news uid=$uid}
....
{/module}


15、调用news模块下demo字段有值的内容,也就是demo字段没填写的不调用

https://www.diyuncms.com/help/show/1385.html



--
有帮助
--
没帮助
0
收藏
0
打赏
相关文档
Hello,欢迎来咨询~
点击在线咨询