如何实现SS中首页调用论坛图片,每主题只调用一张图片
[table][tr][td]目前,默认的会调用同一主题下的多张[b][color=#ff0000]图片[/color][/b],而出现标题重复的情况,对网站的体验不好。实际通过模块管理可以实现,只调用同一主题的一张[b][color=#ff0000]图片[/color][/b]。登录后台创建模块-》[b][color=#ff0000]论坛[/color][/b]附件-》高级模式 [list=1][*]SELECT t . * , a . *[*]FROM discuz.cdb_threads t[*]INNER JOIN discuz.cdb_attachments a ON t.tid = a.tid[*]AND t.authorid = a.uid[*]WHERE a.isimage=1[*]GROUP BY t.tid[*]ORDER BY t.views DESC[/list][i]复制代码[/i]其它选项按自己的需求填写。提交保存。将得到的代码复制到调用的部分比如我这里是 [list=1][*][/list][i]复制代码[/i]不要奇怪,上面不是什么乱码,是生成的调用代码。对上面几处特别说明的地方:1,t.authorid = a.uid 这里主要判断了这个主题与附件是不是为同一作者,不要这一处,会出现,lz发表的帖子没有[b][color=#ff0000]图片[/color][/b],如果回贴者发了[b][color=#ff0000]图片[/color][/b],也会调用出来。2,GROUP BY t.tid 利用tid的唯一性和 group by的分组查询就得到了只检索出一行包含图版主题的帖子。有朋友需要用到[b][color=red]时间限制[/color][/b]和[color=red][b]指定版块[/b][/color]的:完善了调用代码: [list=1][*]SELECT t. * , a. *[*]FROM yv_bbs.cdb_threads t[*]INNER JOIN yv_bbs.cdb_attachments a ON t.tid = a.tid[*]AND t.authorid = a.uid[*]WHERE t.log_CateID[*]IN ( 11, 13 )[*]AND a.isimage =1[*]AND t.log_PostTime >= UNIX_TIMESTAMP( ) -604800[*]GROUP BY t.tid[*]ORDER BY t.views DESC[*]LIMIT 0 , 30[/list][i]复制代码[/i][b][size=5]使用说明:[/size][/b][color=red][b][color=blue]yv_bbs [/color]要改成你自己的数据库名,(用了代码没有效果的应该是没有修改这儿)[color=blue]UNIX_TIMESTAMP( ) -604800[/color] 是对七天内的帖子的调用。7×24×60×60得来,举一反三、天、月的调用很容易实现了。[color=blue]t.log_CateID IN ( 11, 13 )[/color] 这里就是指定版块了。括号里是版块ID,注意是英文的逗号符,作为间隔的[/b][/color] [/td][/tr][/table]