对DNT二次开发的一些经验总结!

引子

这几天一直在做DNT的二次开发,产生 了一些经验,跟大家分享下。
客户需要导入旧论坛数据和开发一个新活动功能。
所以详细研究DNT的帖子相关表(dnt_topics,dnt_postid, dnt_posts1)。
向园子里的代兄和戏水请教,代兄反应极快,他说戏水是做数据转换的,比他更有经验!汗,并要我去官方论坛发贴。
我去发了,点击量很高,至今0回复。

而给戏水的消息,有去无回。

 

看来,得自已动手。花了些时间,终于明白:
dnt_topics 保存主题相关信息,注意没保存正文。主键为自动增长。
dnt_posts1 系统保存主题正文,和回帖。主键却来源于dnt_postid.

这样做可以提高查询主题列表的速度。
但如果站长需要从主题正文提取部分做为摘要显示,那就得不偿失了。

用dnt_postid 单独生成帖子主键,不太理解,反正是增加了导入其它论坛数据的难度。
或者增加了将数据导出到其它论坛的难度。
反正导入旧数据,花了好长时间,才弄明白。
人为制造门槛?

数据导入完成。

开发活动功能,还是比较顺利和快速的。基本可以借用DNT的通用类和方法。

经验
  1. 导入数据后,dnt_topics 和dnt_posts1 的 lastposterid,posterid 必须大于0,不然主题和回帖不能翻页或不显示。花了好久时间还找此原因。
  2. 需要手工改变dnt_postid的pid的初始值,不然回复贴会出现在前面,pid也会重复。
BUG
  1. 如果修改表情组名称和表情文件夹名称不同,发贴时将不能转换表情。修改默认表情名将出现图片出现红叉叉.
  2. 在默认安装下没有相册和空间,查找查看用户的所有发贴时。如/search.aspx?posterid=2988,出现"对象名 'dnt_albums' 无效。对象名 'dnt_spaceposts' 无效。"
  3. 修改广告时没有绑定原状态,展现方式每次都变成默认。
  4. 有时登陆时提示你已登陆,不用重复登陆,返回首页看不到登陆信息,查看本机COOKIE却又COOKIE记录。
  5. 用户分组的问题。现在分为积分组,管理组,系统组,特殊组。不明白特殊组存在的意义。而且还有问题。添加一个特殊组,修改时关联管理组,就变成了管理组,再修改时取消关联管理组,就变成了积分组。变不回特殊组了。
  6. 无缘无故出现错误,刷新一下又好了。如: 无法在“Discuz.Plugin.Spread”已存在的情况下创建/影像复制该文件。
  7. ...
不足(个人看法)
  1. 添加分表后,不能撤销,或删除,估计有些站长喜欢抱着试试看的心态。
  2. 太庞大,刚安装,就占用了二三十MB的空间了.asp.net 较asp 占资源,特别是内存,不太适合虚拟主机,VPS也比较悬。
  3. 还要N多操作上的不便。 比例添加表情要将相应文件夹拷到相应目录,然后刷新页面。但我在后台页面上始终找不到相应的帮助,或者说明。
  4. 上传头像时路径前加了"/",而选择系统头像时没"/";完全可以统一的。给二次开发者造成不变.
  5. 表太多了,越来越不像论坛了。
  6. ...
总结
  1. 套用一名话,革命尚未成功,DNT仍需努力。
  2. ...

posted on 2008-12-21 18:15  老农  阅读(3211)  评论(15编辑  收藏  举报

导航