研究discuz论坛发现的第三方解决方案

本文介绍如何使用ASP.NET整合Discuz!NT论坛,包括用户登录状态及信息获取、登录后退出、自动发帖等功能实现方法。

ASP.NET整合Discuz!NT3.5实例说明(含用户登录、评论等)

前一阵想做一个团购导航网站,看到某些团购导航站都有论坛,自己也想加一个,研究了下Discuz!NT,发现有API接口,就忽然想到了用Discuz!NT来整合网站,岂不是很方便,会员那部分就不需要自己开发了。

说干就干, 下来API的例子 和开发包研究了一下,看了一遍仍然是一头雾水,不知道是不是自己太笨。而且发现API还有错误,来官方论坛求助貌似没有得到回答,看来还是只能靠自己啊。看了N遍终于明白了大概,整个API都熟悉了一下使用方法,发现API虽然方便但是的问题多多,其中用户登录后跳转行为(不停的跳来跳去,效率太低,影响搜索引擎收录)还有“ Code: 103, Message: 当前会话所提交的call_id没有大于前一次的call_id ”错误,更是让我彻底对API无语郁闷,最后只好采用第二套方法下载源码自己整合+Discuz!NT API。

还好Discuz!NT是开源程序,否则我真放弃使用了,说下我的网站徐州86516团购导航 http://www.86516tuan.com/ ,可以看到我主要整合了用户的登录状态和登录信息的获取(登录和注册都在论坛完成)、登录后退出、用户的评论、自动发帖以及系统后台的计划任务等,下面一一介绍一下在整合方法,需要Discuz!NT的DLL,我是把所有的DLL都放到自己网站的bin目录下,附上代码。

1、用户的登录状态和登录信息的获取 using Discuz.Forum;
using Discuz.Entity;string discuzName = string.Empty;
if (Request.Cookies["dnt"] != null)
{
//已经登录
int uid = Convert.ToInt32(Request.Cookies["dnt"]["userid"]);
//获取登录用户信息
UserInfo info = Users.GetUserInfo(uid);
if (info != null)
{
discuzName = info.Username;
}
else
{
DiscuzSession ds = DiscuzSessionHelper.GetSession();
ds.Logout(string.Empty);
}
}
else
{
//未登录
}
2、登录后退出,需要API的DiscuzToolKit开发包的dll,下载地址是: http://nt.discuz.net/showtopic-81187.html
using Discuz.Toolkit;DiscuzSession ds = DiscuzSessionHelper.GetSession();
ds.Logout(string.Empty);
3、自动发帖,我每采集一条团购数据就会给Discuz!NT论坛发一个帖子,同时两边利用ID对应上
比如: http://www.86516tuan.com/goods/787.html http://www.86516tuan.com/bbs/showtopic-817.aspx
自动创建主题采用的也是API,方法如下,具体参数请参考 官方API开发指南

DiscuzSession ds = DiscuzSessionHelper.GetSession();
TopicCreateResponse tcr = ds.CreateTopic(uid, title, fid ,message,tags,type_id);
4、获取用户评论,采用官方API
DiscuzSession ds = DiscuzSessionHelper.GetSession();
TopicGetRencentRepliesResponse trr = ds.GetRecentReplies(fid, tid, page_size, page_index);


5、发表新评论,这里是当初没有彻底采用API的主要原因,API需要不停跳转验证用户。经过研究源码,自己写出来评论功能,主要调用官方的存储过程“dnt_createpost1‘,由于参数过多,这里就不写代码了,主要就是给参数赋值,用户数据可以根据上面获取用户信息的方法来获得,另外还可以在官方下载数据字典,来确定参数功能。

 

再送大家一份ASP.NET整合Discuz!NT资料包,集合我收集来的所有整合资源

下载地址是http://nt.discuz.net/showtopic-140682.html#599637

Discuz!NT具有安全、高效、易用等特点,产品开放源代码下载三年的时间,受到了国内众多ASP.net项目用户的欢迎,成为国内ASP.net社区论坛产品的标杆。Discuz!NT3.1版本全面支持Windowsserver2008R2系统,并且支持集成模式。免费为商业用户提供64位编译版本。Discuz!NT3.1版本为项目用户专门开发了负载均衡、数据库读写分离、分布式缓存和检测工具一系列套件,为超大型社区建设提供了完美的技术解决方案Discuz!NTv3.6.601修复的问题 游客查看附件的样式不正确 编辑器转义了不应转义html代码 图片格式不正确导致官网出现内存不足 invisible=-2的帖子,有主题通知,但是却无法在帖子中看到 主题下沉无法沉到列表最底下 头像上传在子目录下潜在问题 版块/分类设置中,显示模式改为”传统模式“导致版块图标换行 发一个带有flash的主题或回帖,再编辑此贴,上传图片会缺少提示 简洁版页面,没有输出页面编码信息导致乱码 用快捷键发帖出现空白页,刷新正常 搜索页面里鼠标移至楼主名称上点'删除用户7天帖子'失效 后台开启远程附件后没法关闭 login.aspx页面,tab顺序不正确 开启2个web园后,在线时间不增加,排查代码 帖子英文内容导致热点调用被撑开 IE下,如果图片附件过大,导致上传框被遮挡 提示余额不足的样式错误 开启图片点击加载后,简洁版无法看图(点击加载无效) 帖子关闭状态下,依然会出现回帖框 窄版下,公告过长会导致文字遮挡 发帖时在'视频'按钮里插入土豆,优酷等视频无效 首页轮显图的出现错误,很有可能是缩略图方法的问题 附件上传,多了一些不应该出现的文字,而且样式没对齐 在24小时新帖的版块名称长度中设置0前台页面报错 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值