现在的位置: 首页 > 综合 > 正文

关于Discuz 2.5的整合说明(1)

2013年03月27日 ⁄ 综合 ⁄ 共 12996字 ⁄ 字号 评论关闭

 一、整合

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代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Discuz.Common;
  5. using Discuz.Forum;
  6. using Discuz.Config;
  7. using Discuz.Entity;
  8. namespace DiscuzIntegration
  9. {
  10.     public class Integration
  11.     {
  12.         public static void Login(string username, string password)
  13.         {
  14.             try
  15.             {
  16.                 Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
  17.                 int uid = Users.GetUserID(username);
  18.                 if (uid == -1 || !Users.Exists(uid))
  19.                 {
  20.                     Regedit(username, password);
  21.                     uid = Users.GetUserID(username);
  22.                 }
  23.                 //删除之前的错误登录信息
  24.                 LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
  25.                 //根据积分公式刷新用户总积分
  26.                 UserCredits.UpdateUserCredits(uid);
  27.                 //写入用户登录后的cookie
  28.                 ForumUtils.WriteUserCookie(uid, Utils.StrToInt(DNTRequest.GetString("expires"), -1), config.Passwordkey, DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));
  29.                 //更新用户最后动作,如不需要可不执行
  30.                 //OnlineUsers.UpdateAction(olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
  31.                 //更新该用户最后访问时间
  32.                 Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());
  33.             }
  34.             catch
  35.             {
  36.             }
  37.         }
  38.         public static void Logout(string username)
  39.         {
  40.             try
  41.             {
  42.                 int uid = Users.GetUserID(username);
  43.                 int olid = OnlineUsers.GetOlidByUid(uid);
  44.                 OnlineUsers.DeleteRows(olid);
  45.                 ForumUtils.ClearUserCookie();
  46.             }
  47.             catch
  48.             {
  49.             }
  50.         }
  51.         public static bool Regedit(string tmpUsername, string password)
  52.         {
  53.             try
  54.             {
  55.                 //以下为用户注册代码
  56.                 Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
  57.                 UserGroupInfo usergroupinfo = new UserGroupInfo();
  58.                 usergroupinfo.Groupid = 10; //新手上路
  59.                 //如果用户名符合注册规则, 则判断是否已存在
  60.                 if (Users.Exists(tmpUsername))
  61.                 {
  62.                     //
  63.                     // 这里提示错误信息"用户名已经存在!"
  64.                     //
  65.                     return false;
  66.                 }
  67.                 UserInfo __userinfo = new UserInfo();
  68.                 __userinfo.Username = Utils.HtmlEncode(tmpUsername);
  69.                 __userinfo.Nickname = Utils.HtmlEncode(DNTRequest.GetString(""));
  70.                 __userinfo.Password = Utils.MD5(password);
  71.                 __userinfo.Secques = "";// ForumUtils.GetUserSecques(DNTRequest.GetInt("question", 0), DNTRequest.GetString("answer"));
  72.                 __userinfo.Gender = DNTRequest.GetInt("gender", 0);
  73.                 __userinfo.Adminid = 0;
  74.                 __userinfo.Groupexpiry = 0;
  75.                 __userinfo.Extgroupids = "";
  76.                 __userinfo.Regip = DNTRequest.GetIP();
  77.                 __userinfo.Joindate = Utils.GetDateTime();
  78.                 __userinfo.Lastip = DNTRequest.GetIP();
  79.                 __userinfo.Lastvisit = Utils.GetDateTime();
  80.                 __userinfo.Lastactivity = Utils.GetDateTime();
  81.                 __userinfo.Lastpost = Utils.GetDateTime();
  82.                 __userinfo.Lastpostid = 0;
  83.                 __userinfo.Lastposttitle = "";
  84.                 __userinfo.Posts = 0;
  85.                 __userinfo.Digestposts = 0;
  86.                 __userinfo.Oltime = 0;
  87.                 __userinfo.Pageviews = 0;
  88.                 __userinfo.Credits = 0;
  89.                 __userinfo.Extcredits1 = Scoresets.GetScoreSet(1).Init;
  90.                 __userinfo.Extcredits2 = Scoresets.GetScoreSet(2).Init;
  91.                 __userinfo.Extcredits3 = Scoresets.GetScoreSet(3).Init;
  92.                 __userinfo.Extcredits4 = Scoresets.GetScoreSet(4).Init;
  93.                 __userinfo.Extcredits5 = Scoresets.GetScoreSet(5).Init;
  94.                 __userinfo.Extcredits6 = Scoresets.GetScoreSet(6).Init;
  95.                 __userinfo.Extcredits7 = Scoresets.GetScoreSet(7).Init;
  96.                 __userinfo.Extcredits8 = Scoresets.GetScoreSet(8).Init;
  97.                 __userinfo.Avatarshowid = 0;
  98.                 __userinfo.Email = "";
  99.                 __userinfo.Bday = "";
  100.                 __userinfo.Sigstatus = DNTRequest.GetInt("sigstatus", 0);
  101.                 if (__userinfo.Sigstatus != 0)
  102.                 {
  103.                     __userinfo.Sigstatus = 1;
  104.                 }
  105.                 __userinfo.Tpp = DNTRequest.GetInt("tpp", 0);
  106.                 __userinfo.Ppp = DNTRequest.GetInt("ppp", 0);
  107.                 __userinfo.Templateid = DNTRequest.GetInt("templateid", 1);
  108.                 __userinfo.Pmsound = DNTRequest.GetInt("pmsound", 0);
  109.                 __userinfo.Showemail = DNTRequest.GetInt("showemail", 0);
  110.                 int receivepmsetting = 1;
  111.                 foreach (string rpms in DNTRequest.GetString("receivesetting").Split(','))
  112.                 {
  113.                     if (rpms != string.Empty)
  114.                     {
  115.                         int tmp = int.Parse(rpms);
  116.                         receivepmsetting = receivepmsetting | tmp;
  117.                     }
  118.                 }
  119.                 if (config.Regadvance == 0)
  120.                 {
  121.                     receivepmsetting = 7;
  122.                 }
  123.                 __userinfo.Newsletter = (ReceivePMSettingType)receivepmsetting;
  124.                 __userinfo.Invisible = DNTRequest.GetInt("invisible", 0);
  125.                 __userinfo.Newpm = 0;
  126.                 __userinfo.Medals = "";
  127.                 if (config.Welcomemsg == 1)
  128.                 {
  129.                     __userinfo.Newpm = 1;
  130.                 }
  131.                 __userinfo.Accessmasks = DNTRequest.GetInt("accessmasks", 0);
  132.                 //
  133.                 __userinfo.Website = Utils.HtmlEncode(DNTRequest.GetString("website"));
  134.                 __userinfo.Icq = Utils.HtmlEncode(DNTRequest.GetString("icq"));
  135.                 __userinfo.Qq = Utils.HtmlEncode(DNTRequest.GetString("qq"));
  136.                 __userinfo.Yahoo = Utils.HtmlEncode(DNTRequest.GetString("yahoo"));
  137.                 __userinfo.Msn = Utils.HtmlEncode(DNTRequest.GetString("msn"));
  138.                 __userinfo.Skype = Utils.HtmlEncode(DNTRequest.GetString("skype"));
  139.                 __userinfo.Location = Utils.HtmlEncode(DNTRequest.GetString("location"));
  140.                 if (usergroupinfo.Allowcstatus == 1)
  141.                 {
  142.                     __userinfo.Customstatus = Utils.HtmlEncode(DNTRequest.GetString("customstatus"));
  143.                 }
  144.                 else
  145.                 {
  146.                     __userinfo.Customstatus = "";
  147.                 }
  148.                 __userinfo.Avatar = @"avatars/common/0.gif";
  149.                 __userinfo.Avatarwidth = 0;
  150.                 __userinfo.Avatarheight = 0;
  151.                 __userinfo.Bio = DNTRequest.GetString("bio");
  152.                 __userinfo.Signature = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("signature")));
  153.                 PostpramsInfo _postpramsinfo = new PostpramsInfo();
  154.                 _postpramsinfo.Usergroupid = usergroupinfo.Groupid;
  155.                 _postpramsinfo.Attachimgpost = config.Attachimgpost;
  156.                 _postpramsinfo.Showattachmentpath = config.Showattachmentpath;
  157.                 _postpramsinfo.Hide = 0;
  158.                 _postpramsinfo.Price = 0;
  159.                 _postpramsinfo.Sdetail = __userinfo.Signature;
  160.                 _postpramsinfo.Smileyoff = 1;
  161.                 _postpramsinfo.Bbcodeoff = 1 - usergroupinfo.Allowsigbbcode;
  162.                 _postpramsinfo.Parseurloff = 1;
  163.                 _postpramsinfo.Showimages = usergroupinfo.Allowsigimgcode;
  164.                 _postpramsinfo.Allowhtml = 0;
  165.                 _postpramsinfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo();
  166.                 _postpramsinfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo();
  167.                 _postpramsinfo.Smiliesmax = config.Smiliesmax;
  168.                 __userinfo.Sightml = UBB.UBBToHTML(_postpramsinfo);
  169.                 //
  170.                 __userinfo.Authtime = Utils.GetDateTime();
  171.                 //邮箱激活链接验证
  172.                 if (config.Regverify == 1)
  173.                 {
  174.                     __userinfo.Authstr = ForumUtils.CreateAuthStr(20);
  175.                     __userinfo.Authflag = 1;
  176.                     __userinfo.Groupid = 8;
  177.                     //SendEmail(tmpUsername, DNTRequest.GetString("password").Trim(), DNTRequest.GetString("email").Trim(), __userinfo.Authstr);
  178.                 }
  179.                 //系统管理员进行后台验证
  180.                 else if (config.Regverify == 2)
  181.                 {
  182.                     __userinfo.Authstr = DNTRequest.GetString("website");
  183.                     __userinfo.Groupid = 8;
  184.                     __userinfo.Authflag = 1;
  185.                 }
  186.                 else
  187.                 {
  188.                     __userinfo.Authstr = "";
  189.                     __userinfo.Authflag = 0;
  190.                     __userinfo.Groupid = UserCredits.GetCreditsUserGroupID(0).Groupid;
  191.                 }
  192.                 __userinfo.Realname = DNTRequest.GetString("realname");
  193.                 __userinfo.Idcard = DNTRequest.GetString("idcard");
  194.                 __userinfo.Mobile = DNTRequest.GetString("mobile");
  195.                 __userinfo.Phone = DNTRequest.GetString("phone");
  196.                 int uid = Users.CreateUser(__userinfo);
  197.                 if (config.Welcomemsg == 1)
  198.                 {
  199.                     PrivateMessageInfo __privatemessageinfo = new PrivateMessageInfo();
  200.                     string curdatetime = Utils.GetDateTime();
  201.                     // 收件箱
  202.                     __privatemessageinfo.Message = config.Welcomemsgtxt;
  203.                     __privatemessageinfo.Subject = "欢迎您的加入! (请勿回复本信息)";
  204.                     __privatemessageinfo.Msgto = __userinfo.Username;
  205.                     __privatemessageinfo.Msgtoid = uid;
  206.                     __privatemessageinfo.Msgfrom = PrivateMessages.SystemUserName;
  207.                     __privatemessageinfo.Msgfromid = 0;
  208.                     __privatemessageinfo.New = 1;
  209.                     __privatemessageinfo.Postdatetime = curdatetime;
  210.                     __privatemessageinfo.Folder = 0;
  211.                     PrivateMessages.CreatePrivateMessage(__privatemessageinfo, 0);
  212.                 }
  213.                 if (config.Regverify == 0)
  214.                 {
  215.                     UserCredits.UpdateUserCredits(uid);
  216.                     //ForumUtils.WriteUserCookie(uid, -1, config.Passwordkey);
  217.                     OnlineUsers.UpdateAction(0, UserAction.Register.ActionID, 0, config.Onlinetimeout);
  218.                     Statistics.ReSetStatisticsCache();
  219.                     //SetUrl("index.aspx");
  220.                     //SetMetaRefresh();
  221.                     //SetShowBackLink(false);
  222.                     //这里添加代码提示“注册成功, 返回登录页"并return退出
  223.                     //...
  224.                     //
  225.                     return true;
  226.                 }
  227.                 else
  228.                 {
  229.                     //SetUrl("index.aspx");
  230.                     //SetMetaRefresh(5);
  231.                     //SetShowBackLink(false);
  232.                     if (config.Regverify == 1)
  233.                     {
  234.                         //这里添加代码提示“注册成功, 请您到您的邮箱中点击激活链接来激活您的帐号"并return退出
  235.                         //...
  236.                         //
  237.                     }
  238.                     if (config.Regverify == 2)
  239.                     {
  240.                         //这里添加代码提示“您注册成功, 但需要系统管理员审核您的帐户后才可登陆使用"并return退出
  241.                         //...
  242.                         //
  243.                     }
  244.                     return true;
  245.                 }
  246.             }
  247.             catch
  248.             {
  249.                 return false;
  250.             }
  251.         }
  252.         public static bool Delete(string userName)
  253.         {
  254.             int uid = Users.GetUserID(userName);
  255.             if (Convert.ToInt32(uid) > 1) //判断是不是当前UID是不是系统初始化时生成的UID
  256.             {
  257.                 int deluserid = Convert.ToInt32(uid);
  258.                 AdminUsers.DelUserAllInf(deluserid, truetrue);
  259.                 return true;
  260.             }
  261.             return false;
  262.         }
  263.         public static bool ChangePassword(string userName, string password)
  264.         {
  265.             try
  266.             {
  267.                 int uid = Users.GetUserID(userName);
  268.                 return Users.UpdateUserPassword(uid, password);
  269.             }
  270.             catch
  271.             {
  272.                 return false;
  273.             }
  274.             //UserFactory.UpdateUserPassword(uid, newpassword);
  275.             //ForumUtils.WriteCookie("password", ForumUtils.SetCookiePassword(Utils.MD5(newpassword), config.Passwordkey));
  276.             //OnlineUserFactory.UpdatePassword(olid, Utils.MD5(newpassword)); 
  277.         }
  278.     }
  279. }

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 (为生成上面的文件)

百思特网络 www.bestwl.com

抱歉!评论已关闭.