首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>程序集锦>Discuz!>资讯:将一老论坛数据转换到Discuz! 6 的程序开发手记

将一老论坛数据转换到Discuz! 6 的程序开发手记

www.jz123.cn  2008-07-25   来源:   中国建站    编辑整理    我要投递新闻

老论坛的原名 Snitz Forums 2000 Version 3.1 SR4 然后大概好像是经过 www.asp50.com 修改

ASP银河论坛 版本,后来又由 网虫资讯中国网
的 Jacky Lee 修改成为 WormCN Forums 3000 II ,界面再次得到优化和美观,我是在2002拿到

的是郭子 (Shines)的 翔浩论坛 ver.2001 版本。我是在这个版本
的基础上改的,目标是朝着更好更漂亮的ASP论坛的方向和模仿动网论坛的多功能为方向,增加功

能如下(小改动不记其内)

1、增添信息分类,增加了论坛资源显示文件 bodyasp.asp,将论坛信息显示在网页。
2、增加了评分系统,可以想动网论坛那样给帖子送花或者投鸡蛋
3、增加帖子的两种分类属性,可以将帖子设置成为“新闻”-“国内新闻”等分类,使本论坛
集成了一个新闻系统(xwyd.asp、xwyd2.asp等新闻显示文件),使论坛成集成了一个新闻系统,并成为网站的后台管理程序
4、增加新闻显示、人气帖排行、最新文章等首页调用 top-txt.ASP、new-txt.ASP等(*-txt.asp


5、增加了生成静态首页功能
6、增加了看贴发帖限制:[post=10],可以设置本帖内容必须发帖量达到10才能看到
7、增加了看贴回帖限制:[reply],可以设置本帖内容必须回复才能看到
8、增加了特殊帖子的使用菜单
9、增加了mpe、avi、asf电影的在线播放功能
10、增加了rm电影的在线播放功能
11、修改了下载连接方式,实现防止别人盗链资源
12、增加了大话西游的聊天符号和输入方式
13、更改了分类属性的设置方式,使其更加灵活方便
14、增加了论坛外看帖限制,看5帖后必须登录
15、为bodyasp.asp文件增加了帖子搜索功能
16、美化了论坛界面,为下一步做换皮肤功能做好了所有准备,使论坛全面接近动网
17、增加了发帖审核功能,并且内容修改后需要重新审核
18、增加了聊天室,用论坛身份进入,毋需再次登录

随着时间的推移,这个论坛日显落后,于是由hotworm用Discuz! 6 建立了一个新论坛。为了保持论坛人气,在论坛建立后,我用asp做了一个用户转换程序,将老用户一个不剩地转到了新论坛。但是却对帖子的转移束手无策。因为用户数据库的转换,就是一个access库循环读取到一个mysql库,比较简单。而帖子转换,不仅要转移首帖,还要转移回帖。并且Discuz! 6 的帖子和回帖都是记录在同一个库cdb_posts ,同时还有一个首帖列表cdb_threads,而在老论坛数据库中,回帖和首帖是分开的。转到新库后,要保证所有首帖的id和回复的ID保持对应。
但是因为广大用户的强烈要求,最终我们还是决定尽最大的努力将老论坛数据转换到新论坛来。为此我开始着手用比较擅长的asp做一个转换程序。
在实际动手制作的时候,又发现了新问题。那就是附件和用户。在把首帖和回帖保持对应的同时,还要和附件库cdb_attachments还有用户库cdb_members 保持对应。使工作量成倍增长。

最后为了完美,还要在cdb_mythreads、cdb_myposts这两个库中增添对应数据,以便用户点击“我的帖子”是能看到自己以前发表的文章。经过两天的埋头苦干,程序终于拿出来了,在测试的时候又发现了新问题,就是新论坛个别用户改了名字,致使数据无法对应而出错,为此,只能先将无主帖归入匿名旗下。

程序分为4个部分,
index.html    提交页,每次转换一个分栏目,在这里要填写老论坛数据源栏目,和新论坛目标栏目。
DATA.ASP     用Conn连接老论坛的access数据库
coun.asp     用Conn2连接新论坛的mysql数据库
start.asp    主要处理程序,进行多次循环和查询写入操作,将老数据写入新论坛数据库。因为转换是一次性的,因此没有费心思对数据及资源占用进行优化。程序已经完成,并通过初步测试。即将对论坛进行转换,这里只是记录一下开发这个小程序的思路和过程,如果您也有类似的需要,或者像交流asp编成经验,请回帖支持,代码将在实际转换数据成功后,发给回帖者。

------------------补充:数据转换完成,发现一个小问题,并附上解决办法--------------
论坛数据已经转换完毕,目前发现的唯一缺点是,附件中的jpg文件,扩展名是大写"JPG",结果转换程序有点小BUG,把它当作其他类型了,于是无法直接显示图片,最后用phpmyadmin工具,直接用SQL命令在cdb_attachments批量修改,语法如下:
update `cdb_attachments`  set  `filetype` =CONVERT( _utf8 'image/pjpeg' USING gbk )  WHERE `filename` LIKE CONVERT( _utf8 '%jpg%' USING gbk )
COLLATE gbk_chinese_ci AND `filetype` != CONVERT( _utf8 'image/pjpeg' USING gbk )


备份好数据库后,一次执行通过,数据一切正常,目前唯一缺点是,是点击“我的帖子”,可以看到以前发的主题,但是点击“我的回复”,无法看到以前的数据。Discuz! 6好像不带修复这项功能的工具,用asp做的话也很简单,但是这个功能也算是无关紧要,要是论坛上要求的用户多再搞吧,我要赶紧忙其他事情去了。


上一篇:解决Discuz 6.0 广告加载速度慢 头部广告靠左 下一篇:SupeSite模块参数说明

评论总数:1 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图