Discuz教程网

[代码修改] Discuz X2修改版块fid

[复制链接]
authicon dly 发表于 2011-10-24 17:49:48 | 显示全部楼层 |阅读模式
不是插件是数据库升级语句,但是似乎别的地方和这个内容更无关了,所以就发到这里吧0 0

主要是X2因为群组id和版块id合并所以版块id从1、2之后就是36嘛,所以找了这个方法。
升级前先备份免得升级错了,然后要确定新的fid没有占用,也就是需要先删掉那些占用fid的群组。
因为修改数据库不可避免会造成一些错误,建议是新建一个版块,修改新版块fid,然后把旧版块东西挪过去比较不容易出错。
如果直接修改现有板块,可能会出现分类消失(那个分类的帖子就只能在后台找到了),版块规则消失之类的。

  1. UPDATE `pre_forum_access` SET `fid` = '新版块id' WHERE `pre_forum_access`.`fid` =旧版块id LIMIT 1 ;
  2. UPDATE `pre_forum_forumfield` SET `fid` = '新版块id' WHERE `pre_forum_forumfield`.`fid` =旧版块id LIMIT 1 ;
  3. UPDATE `pre_forum_forum` SET `fid` = '新版块id' WHERE `pre_forum_forum`.`fid` =旧版块id LIMIT 1 ;
  4. UPDATE `pre_forum_moderator` SET `fid` = '新版块id' WHERE `pre_forum_moderator`.`fid` =旧版块id LIMIT 1 ;
  5. UPDATE `pre_forum_post` SET `fid` = '新版块id' WHERE `pre_forum_post`.`fid` =旧版块id LIMIT 1 ;
  6. UPDATE `pre_forum_rsscache` SET `fid` = '新版块id' WHERE `pre_forum_rsscache`.`fid` =旧版块id LIMIT 1 ;
  7. UPDATE `pre_common_session` SET `fid` = '新版块id' WHERE `pre_common_session`.`fid` =旧版块id LIMIT 1 ;
  8. UPDATE `pre_forum_thread` SET `fid` = '新版块id' WHERE `pre_forum_thread`.`fid` =旧版块id LIMIT 1 ;
  9. UPDATE `pre_common_credit_rule_log` SET `fid` = '新版块id' WHERE `pre_common_credit_rule_log`.`fid` =旧版块id LIMIT 1 ;
  10. UPDATE `pre_common_report` SET `fid` = '新版块id' WHERE `pre_common_report`.`fid` =旧版块id LIMIT 1 ;
  11. UPDATE `pre_forum_forumrecommend` SET `fid` = '新版块id' WHERE `pre_forum_forumrecommend`.`fid` =旧版块id LIMIT 1 ;
  12. UPDATE `pre_forum_groupcreditslog` SET `fid` = '新版块id' WHERE `pre_forum_groupcreditslog`.`fid` =旧版块id LIMIT 1 ;
  13. UPDATE `pre_forum_groupfield` SET `fid` = '新版块id' WHERE `pre_forum_groupfield`.`fid` =旧版块id LIMIT 1 ;
  14. UPDATE `pre_forum_groupinvite` SET `fid` = '新版块id' WHERE `pre_forum_groupinvite`.`fid` =旧版块id LIMIT 1 ;
  15. UPDATE `pre_forum_groupranking` SET `fid` = '新版块id' WHERE `pre_forum_groupranking`.`fid` =旧版块id LIMIT 1 ;
  16. UPDATE `pre_forum_groupuser` SET `fid` = '新版块id' WHERE `pre_forum_groupuser`.`fid` =旧版块id LIMIT 1 ;
  17. UPDATE `pre_forum_optionvalue1` SET `fid` = '新版块id' WHERE `pre_forum_optionvalue1`.`fid` =旧版块id LIMIT 1 ;
  18. UPDATE `pre_forum_optionvalue旧版块id` SET `fid` = '新版块id' WHERE `pre_forum_optionvalue旧版块id`.`fid` =旧版块id LIMIT 1 ;
  19. UPDATE `pre_forum_optionvalue3` SET `fid` = '新版块id' WHERE `pre_forum_optionvalue3`.`fid` =旧版块id LIMIT 1 ;
  20. UPDATE `pre_forum_optionvalue4` SET `fid` = '新版块id' WHERE `pre_forum_optionvalue4`.`fid` =旧版块id LIMIT 1 ;
  21. UPDATE `pre_forum_postlog` SET `fid` = '新版块id' WHERE `pre_forum_postlog`.`fid` =旧版块id LIMIT 1 ;
  22. UPDATE `pre_forum_typeoptionvar` SET `fid` = '新版块id' WHERE `pre_forum_typeoptionvar`.`fid` =旧版块id LIMIT 1 ;
  23. UPDATE `pre_forum_threadtype` SET `fid` = '新版块id' WHERE `pre_forum_threadtype`.`fid` =旧版块id LIMIT 1 ;
  24. UPDATE `pre_forum_threadlog` SET `fid` = '新版块id' WHERE `pre_forum_threadlog`.`fid` =旧版块id LIMIT 1 ;
  25. UPDATE `pre_forum_threadclass` SET `fid` = '新版块id' WHERE `pre_forum_threadclass`.`fid` =旧版块id LIMIT 1 ;
  26. UPDATE `pre_forum_statlog` SET `fid` = '新版块id' WHERE `pre_forum_statlog`.`fid` =旧版块id LIMIT 1 ;
复制代码

注意替换时不要删掉那些符号,比如'新版块id'替换为'3'而不是3

然后还有一个方法改fid,是在安装论坛之前修改安装文件。
因为这些群组都不是系统内置的,而是安装文件时执行的,用记事本打开install/data里面的文件,删掉不要的就可以。
我附上一个我删得比较彻底的包,我就是用这个安装的,理论上没缺什么东西……
地区数据全都删掉了,然后那些群组全删了,默认友链删了,默认的用户组只留下了管理、超版、版和普通会员四个,还删了不少其他的,group_index这个文件我没有修改。
data.rar (26.77 KB, 下载次数: 7)



上一篇:Discuz x2右下角自动弹窗 美化简易版X1.5、X2
下一篇:VB+wget 写的discuz论坛自动发帖(自动顶贴工具)附 防御对策
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 06:51

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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