Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已答复] supesite 7.5 调用论坛子版面的解决办法

[复制链接]
playfish05 发表于 2010-1-23 17:11:12 | 显示全部楼层 |阅读模式
本帖最后由 playfish05 于 2010-01-23 17:13 编辑

今天发现挺严重的问题,就是7.5无法调用论坛子版面。按照常规的生成模块然后调用的话,根本就显示不出来。而很奇怪的是,原先默认的dz跟supesite整合的是可以显示得出来的。不知道问题出在哪里,下午搜索了论坛发现很多人碰到一样的问题没找到解决方法,自己摸索了代码,解决了这个问题。与各位分享。。

其实这个不应该说是bug,只是说明手册不够详细。

解决的方法:supesite的后台-》聚合设置-》论坛版块设置。

首先,所有想要调用的子论坛都要设置成可显示,就是把显示的勾起来。


然后提交保存。

然后呢?然后就可以了!就这么简单。

可是这么简单的一个问题啊。。我也是摸索了很多代码才发现的。

首先发现调用的block函数,需要读取论坛的缓存data/system/bbsforums.cache.php。又摸索到这个缓存只有admin/admin_bbsforums.php这个文件中,有专门的方法进行更新。也就是说:这个缓存文件,不会随着你论坛的更新而更新,而是手动执行过admin_bbsforums.php才会更新。
而admin_bbsforums.php就是后台聚合设置里面的论坛版块设置。

所以要切记,如果你的discuz论坛更新了版面版块设置,一定要在supesite中同步的更新,否则就会出现无法调用的状况!

另外还有一个问题,是根据分析sql得出来的。。跟采集到的文章有关系。我的某个子版面里的内容都是通过采集来的,用的狂人采集器。结果发现还是显示不出来。后来发现分析sql的时候,需要一个字段t.supe_pushstatus > 0。所有采集到论坛的文章这个字段值都是0。这同样会导致无法显示。

所以,如果使用狂人采集器的同学,要注意,一个是手动的数据库执行UPDATE dz_threads SET supe_pushstatus=1 ;将所有状态都改成1,这样就可以调用了。另外一个解决的方法是修改function/block.func.php,大约1662行,
  1. if(empty($paramarr['sgid'])) {
  2.         if(B_VER == '5') {
  3.                 $wherearr[] = 't.supe_pushstatus > 0';//版本5推送
  4.         }
  5. }
复制代码
将这段代码注释掉。因为我懒得每次都手动做数据库更新,所以我注释掉这句。这句貌似是影响推送功能的一个sql。因为我没用到推送功能,所以没什么影响。一劳永逸。

我的个人博客http://www.fangyuqiang.com 欢迎与我交流。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-18 22:49 , Processed in 0.028153 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表