一、整合
1、复制 Discuz.Forum.dll、Discuz.Entity.dll、Discuz.Common.dll、Discuz.Data.dll、Discuz.Data.SqlServer.dll、Discuz.Config.dll、Discuz.Cache.dll 到 bin目录。
2、复制 DNT.config、/config/general.config 至相应目录
注:在论坛配置好后再复制。(主要指:Cookie的Domain,论坛后台有设置:bbs.abc.com=>.abc.com)
3、添加Discuz.cs类,主要是使用其中的登录、退出、注册、修改密码等方法,是一个强人写的,表示感谢。cs代码:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Discuz.Common;
- using Discuz.Forum;
- using Discuz.Config;
- using Discuz.Entity;
- namespace DiscuzIntegration
- {
- public class Integration
- {
- public static void Login(string username, string password)
- {
- try
- {
- Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
- int uid = Users.GetUserID(username);
- if (uid == -1 || !Users.Exists(uid))
- {
- Regedit(username, password);
- uid = Users.GetUserID(username);
- }
- //删除之前的错误登录信息
- LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
- //根据积分公式刷新用户总积分
- UserCredits.UpdateUserCredits(uid);
- //写入用户登录后的cookie
- ForumUtils.WriteUserCookie(uid, Utils.StrToInt(DNTRequest.GetString("expires"), -1), config.Passwordkey, DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));
- //更新用户最后动作,如不需要可不执行
- //OnlineUsers.UpdateAction(olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
- //更新该用户最后访问时间
- Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());
- }
- catch
- {
- }
- }
- public static void Logout(string username)
- {
- try
- {
- int uid = Users.GetUserID(username);
- int olid = OnlineUsers.GetOlidByUid(uid);
- OnlineUsers.DeleteRows(olid);
- ForumUtils.ClearUserCookie();
- }
- catch
- {
- }
- }
- public static bool Regedit(string tmpUsername, string password)
- {
- try
- {
- //以下为用户注册代码
- Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
- UserGroupInfo usergroupinfo = new UserGroupInfo();
- usergroupinfo.Groupid = 10; //新手上路
- //如果用户名符合注册规则, 则判断是否已存在
- if (Users.Exists(tmpUsername))
- {
- //
- // 这里提示错误信息"用户名已经存在!"
- //
- return false;
- }
- UserInfo __userinfo = new UserInfo();
- __userinfo.Username = Utils.HtmlEncode(tmpUsername);
- __userinfo.Nickname = Utils.HtmlEncode(DNTRequest.GetString(""));
- __userinfo.Password = Utils.MD5(password);
- __userinfo.Secques = "";// ForumUtils.GetUserSecques(DNTRequest.GetInt("question", 0), DNTRequest.GetString("answer"));
- __userinfo.Gender = DNTRequest.GetInt("gender", 0);
- __userinfo.Adminid = 0;
- __userinfo.Groupexpiry = 0;
- __userinfo.Extgroupids = "";
- __userinfo.Regip = DNTRequest.GetIP();
- __userinfo.Joindate = Utils.GetDateTime();
- __userinfo.Lastip = DNTRequest.GetIP();
- __userinfo.Lastvisit = Utils.GetDateTime();
- __userinfo.Lastactivity = Utils.GetDateTime();
- __userinfo.Lastpost = Utils.GetDateTime();
- __userinfo.Lastpostid = 0;
- __userinfo.Lastposttitle = "";
- __userinfo.Posts = 0;
- __userinfo.Digestposts = 0;
- __userinfo.Oltime = 0;
- __userinfo.Pageviews = 0;
- __userinfo.Credits = 0;
- __userinfo.Extcredits1 = Scoresets.GetScoreSet(1).Init;
- __userinfo.Extcredits2 = Scoresets.GetScoreSet(2).Init;
- __userinfo.Extcredits3 = Scoresets.GetScoreSet(3).Init;
- __userinfo.Extcredits4 = Scoresets.GetScoreSet(4).Init;
- __userinfo.Extcredits5 = Scoresets.GetScoreSet(5).Init;
- __userinfo.Extcredits6 = Scoresets.GetScoreSet(6).Init;
- __userinfo.Extcredits7 = Scoresets.GetScoreSet(7).Init;
- __userinfo.Extcredits8 = Scoresets.GetScoreSet(8).Init;
- __userinfo.Avatarshowid = 0;
- __userinfo.Email = "";
- __userinfo.Bday = "";
- __userinfo.Sigstatus = DNTRequest.GetInt("sigstatus", 0);
- if (__userinfo.Sigstatus != 0)
- {
- __userinfo.Sigstatus = 1;
- }
- __userinfo.Tpp = DNTRequest.GetInt("tpp", 0);
- __userinfo.Ppp = DNTRequest.GetInt("ppp", 0);
- __userinfo.Templateid = DNTRequest.GetInt("templateid", 1);
- __userinfo.Pmsound = DNTRequest.GetInt("pmsound", 0);
- __userinfo.Showemail = DNTRequest.GetInt("showemail", 0);
- int receivepmsetting = 1;
- foreach (string rpms in DNTRequest.GetString("receivesetting").Split(','))
- {
- if (rpms != string.Empty)
- {
- int tmp = int.Parse(rpms);
- receivepmsetting = receivepmsetting | tmp;
- }
- }
- if (config.Regadvance == 0)
- {
- receivepmsetting = 7;
- }
- __userinfo.Newsletter = (ReceivePMSettingType)receivepmsetting;
- __userinfo.Invisible = DNTRequest.GetInt("invisible", 0);
- __userinfo.Newpm = 0;
- __userinfo.Medals = "";
- if (config.Welcomemsg == 1)
- {
- __userinfo.Newpm = 1;
- }
- __userinfo.Accessmasks = DNTRequest.GetInt("accessmasks", 0);
- //
- __userinfo.Website = Utils.HtmlEncode(DNTRequest.GetString("website"));
- __userinfo.Icq = Utils.HtmlEncode(DNTRequest.GetString("icq"));
- __userinfo.Qq = Utils.HtmlEncode(DNTRequest.GetString("qq"));
- __userinfo.Yahoo = Utils.HtmlEncode(DNTRequest.GetString("yahoo"));
- __userinfo.Msn = Utils.HtmlEncode(DNTRequest.GetString("msn"));
- __userinfo.Skype = Utils.HtmlEncode(DNTRequest.GetString("skype"));
- __userinfo.Location = Utils.HtmlEncode(DNTRequest.GetString("location"));
- if (usergroupinfo.Allowcstatus == 1)
- {
- __userinfo.Customstatus = Utils.HtmlEncode(DNTRequest.GetString("customstatus"));
- }
- else
- {
- __userinfo.Customstatus = "";
- }
- __userinfo.Avatar = @"avatars/common/0.gif";
- __userinfo.Avatarwidth = 0;
- __userinfo.Avatarheight = 0;
- __userinfo.Bio = DNTRequest.GetString("bio");
- __userinfo.Signature = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("signature")));
- PostpramsInfo _postpramsinfo = new PostpramsInfo();
- _postpramsinfo.Usergroupid = usergroupinfo.Groupid;
- _postpramsinfo.Attachimgpost = config.Attachimgpost;
- _postpramsinfo.Showattachmentpath = config.Showattachmentpath;
- _postpramsinfo.Hide = 0;
- _postpramsinfo.Price = 0;
- _postpramsinfo.Sdetail = __userinfo.Signature;
- _postpramsinfo.Smileyoff = 1;
- _postpramsinfo.Bbcodeoff = 1 - usergroupinfo.Allowsigbbcode;
- _postpramsinfo.Parseurloff = 1;
- _postpramsinfo.Showimages = usergroupinfo.Allowsigimgcode;
- _postpramsinfo.Allowhtml = 0;
- _postpramsinfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo();
- _postpramsinfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo();
- _postpramsinfo.Smiliesmax = config.Smiliesmax;
- __userinfo.Sightml = UBB.UBBToHTML(_postpramsinfo);
- //
- __userinfo.Authtime = Utils.GetDateTime();
- //邮箱激活链接验证
- if (config.Regverify == 1)
- {
- __userinfo.Authstr = ForumUtils.CreateAuthStr(20);
- __userinfo.Authflag = 1;
- __userinfo.Groupid = 8;
- //SendEmail(tmpUsername, DNTRequest.GetString("password").Trim(), DNTRequest.GetString("email").Trim(), __userinfo.Authstr);
- }
- //系统管理员进行后台验证
- else if (config.Regverify == 2)
- {
- __userinfo.Authstr = DNTRequest.GetString("website");
- __userinfo.Groupid = 8;
- __userinfo.Authflag = 1;
- }
- else
- {
- __userinfo.Authstr = "";
- __userinfo.Authflag = 0;
- __userinfo.Groupid = UserCredits.GetCreditsUserGroupID(0).Groupid;
- }
- __userinfo.Realname = DNTRequest.GetString("realname");
- __userinfo.Idcard = DNTRequest.GetString("idcard");
- __userinfo.Mobile = DNTRequest.GetString("mobile");
- __userinfo.Phone = DNTRequest.GetString("phone");
- int uid = Users.CreateUser(__userinfo);
- if (config.Welcomemsg == 1)
- {
- PrivateMessageInfo __privatemessageinfo = new PrivateMessageInfo();
- string curdatetime = Utils.GetDateTime();
- // 收件箱
- __privatemessageinfo.Message = config.Welcomemsgtxt;
- __privatemessageinfo.Subject = "欢迎您的加入! (请勿回复本信息)";
- __privatemessageinfo.Msgto = __userinfo.Username;
- __privatemessageinfo.Msgtoid = uid;
- __privatemessageinfo.Msgfrom = PrivateMessages.SystemUserName;
- __privatemessageinfo.Msgfromid = 0;
- __privatemessageinfo.New = 1;
- __privatemessageinfo.Postdatetime = curdatetime;
- __privatemessageinfo.Folder = 0;
- PrivateMessages.CreatePrivateMessage(__privatemessageinfo, 0);
- }
- if (config.Regverify == 0)
- {
- UserCredits.UpdateUserCredits(uid);
- //ForumUtils.WriteUserCookie(uid, -1, config.Passwordkey);
- OnlineUsers.UpdateAction(0, UserAction.Register.ActionID, 0, config.Onlinetimeout);
- Statistics.ReSetStatisticsCache();
- //SetUrl("index.aspx");
- //SetMetaRefresh();
- //SetShowBackLink(false);
- //这里添加代码提示“注册成功, 返回登录页"并return退出
- //...
- //
- return true;
- }
- else
- {
- //SetUrl("index.aspx");
- //SetMetaRefresh(5);
- //SetShowBackLink(false);
- if (config.Regverify == 1)
- {
- //这里添加代码提示“注册成功, 请您到您的邮箱中点击激活链接来激活您的帐号"并return退出
- //...
- //
- }
- if (config.Regverify == 2)
- {
- //这里添加代码提示“您注册成功, 但需要系统管理员审核您的帐户后才可登陆使用"并return退出
- //...
- //
- }
- return true;
- }
- }
- catch
- {
- return false;
- }
- }
- public static bool Delete(string userName)
- {
- int uid = Users.GetUserID(userName);
- if (Convert.ToInt32(uid) > 1) //判断是不是当前UID是不是系统初始化时生成的UID
- {
- int deluserid = Convert.ToInt32(uid);
- AdminUsers.DelUserAllInf(deluserid, true, true);
- return true;
- }
- return false;
- }
- public static bool ChangePassword(string userName, string password)
- {
- try
- {
- int uid = Users.GetUserID(userName);
- return Users.UpdateUserPassword(uid, password);
- }
- catch
- {
- return false;
- }
- //UserFactory.UpdateUserPassword(uid, newpassword);
- //ForumUtils.WriteCookie("password", ForumUtils.SetCookiePassword(Utils.MD5(newpassword), config.Passwordkey));
- //OnlineUserFactory.UpdatePassword(olid, Utils.MD5(newpassword));
- }
- }
- }
4、在相应的登录与退出页引用上面所说的方法就行了。
5、注册、修改密码与邮箱可以通过触发器完成。
二、修改外观
1、修改logo image/logo.gif
2、论坛名称、友情链接与广告在后台可以管理
3、修改页首与页尾的显示信息。
步骤:1)修改 /templete/_header.htm _copyright.htm
2)删除 /aspx/1/*.aspx 所有aspx文件(这些可以自动生成)
3)将general.config中的配置节BrowseCreateTemplate的值设置为1 (为生成上面的文件)