discuz diy模块随机调用贴子的方法

网站建设 提交于 2016-10-23 19:45:42

discuz的DIY模块默认不支持随机调用贴子列表,可以通过下面的方法实现。

1、打开source\class\block\forum\block_thread.php(修改前请备份原文件)

2、查找

$query = DB::query("SELECT DISTINCT t.*$sqlfield
            FROM `".DB::table('forum_thread')."` t
            $sqlfrom WHERE {$maxwhere}t.readperm='0'
            $sql
            AND t.displayorder>='0'
            ORDER BY t.$orderby DESC
            LIMIT $startrow,$items;"
            );

将下面的代码添加到查找的代码上面。

if($startrow==1000){
                $tuhongweicom = DB::query("SELECT DISTINCT t.*$sqlfield
            FROM `".DB::table('forum_thread')."` t
            $sqlfrom WHERE {$maxwhere}t.readperm='0'
            $sql
            AND t.displayorder>='0'
            ORDER BY t.$orderby DESC;"
            );
                $sqlNum =  mysql_num_rows($tuhongweicom);
                $startrow = mt_rand(0,$sqlNum-$items);
                }
代码中的$startrow==1000代表调用时的随机起始值,可以根据网站数据量来增加或减少。

保存代码后,在DIY模块时属性按照下面的方法调整即可。

discuz diy模块随机调用贴子的方法

模块标识、模块分类、数据来源均可自定义,选择哪种类型的模式会自动将模块中的数据随机调用并排序。

discuz diy模块随机调用贴子的方法

当指定了主题发布时间或最后更新时间则会只调用符合时间范围内的数据。

discuz diy模块随机调用贴子的方法

图片中标记的 起始数据行数 必须和代码中的$startrow设置相同,否则所有操作无效,其他如标题最大字节数,显示条数以及数据缓存更新时间等均可自定义。

标签

如果文章对你有帮助,请赞赏支持本站发展!

发表评论

此字段内容将保密,不会被其他人看见。