Пример #1
0
        public ajaxviewuserpost()
        {
            if (postid == 0)
            {
                return;
            }
            else
            {
                __spacepostsinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(postid));
                if (_userinfo != null && Forum.AdminGroups.GetAdminGroupInfo(_userinfo.Groupid) != null)
                {
                    isAdmin = true;
                }

                if (__spacepostsinfo != null)
                {
                    //当是发布状态或当前作者的日志时
                    if (__spacepostsinfo.PostStatus == 1 || __spacepostsinfo.Uid == userid)
                    {
                        categorylink = GetCategoryLink(__spacepostsinfo.Category);
                        ForumUtils.WriteCookie("referer", string.Format("space/viewspacepost.aspx?postid={0}&spaceid={1}", postid, sid));
                    }
                    else
                    {
                        errorinfo = "当前请求的内容无效!";
                    }
                }
                else
                {
                    errorinfo = "请求的日志不存在";
                }
            }
        }
Пример #2
0
        private string ParseLinkTemplate(StringBuilder sbLinkTemplate, SpacePostInfo post, Dictionary <string, Dictionary <string, string> > categorys)
        {
            StringBuilder sbTemp = new StringBuilder(sbLinkTemplate.ToString());

            sbTemp.Replace("{$Root}", configspaceurlnopage);
            sbTemp.Replace("{$PostId}", post.Postid.ToString());
            sbTemp.Replace("{$SpaceId}", SpaceConfig.SpaceID.ToString());
            sbTemp.Replace("{$Title}", post.Title);
            sbTemp.Replace("{$Views}", post.Views.ToString());
            sbTemp.Replace("{$ComentCount}", post.Commentcount.ToString());
            if (categorys != null && categorys.ContainsKey(post.Postid.ToString()))
            {
                StringBuilder sbCategory = new StringBuilder();
                foreach (System.Collections.Generic.KeyValuePair <string, string> category in categorys[post.Postid.ToString()])
                {
                    sbCategory.Append(category.Value);
                    sbCategory.Append(",");
                }

                if (sbCategory.Length > 0)
                {
                    sbCategory.Length = sbCategory.Length - 1;
                }

                sbTemp.Replace("{$Category}", sbCategory.ToString());
            }
            else
            {
                sbTemp.Replace("{$Category}", string.Empty);
            }

            return(sbTemp.ToString());
        }
Пример #3
0
        /// <summary>
        /// 获取空间日志
        /// </summary>
        /// <param name="__idatareader"></param>
        /// <returns></returns>
        public static SpacePostInfo GetSpacepostsInfo(IDataReader idatareader)
        {
            if (idatareader == null)
            {
                return(null);
            }

            if (idatareader.Read())
            {
                SpacePostInfo spacepostsinfo = new SpacePostInfo();
                spacepostsinfo.Postid         = TypeConverter.ObjectToInt(idatareader["postid"]);
                spacepostsinfo.Author         = idatareader["author"].ToString();
                spacepostsinfo.Uid            = TypeConverter.ObjectToInt(idatareader["uid"]);
                spacepostsinfo.Postdatetime   = Convert.ToDateTime(idatareader["postdatetime"]);
                spacepostsinfo.Content        = idatareader["content"].ToString();
                spacepostsinfo.Title          = idatareader["title"].ToString();
                spacepostsinfo.Category       = idatareader["category"].ToString();
                spacepostsinfo.PostStatus     = Convert.ToInt16(idatareader["poststatus"]);
                spacepostsinfo.CommentStatus  = Convert.ToInt16(idatareader["commentstatus"]);
                spacepostsinfo.PostUpDateTime = Convert.ToDateTime(idatareader["postupdatetime"]);
                spacepostsinfo.Commentcount   = TypeConverter.ObjectToInt(idatareader["commentcount"]);
                spacepostsinfo.Views          = TypeConverter.ObjectToInt(idatareader["views"]);

                idatareader.Close();
                return(spacepostsinfo);
            }
            else
            {
                idatareader.Close();
                return(null);
            }
        }
Пример #4
0
        /// <summary>
        /// 获取日志数组
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static SpacePostInfo[] GetSpacepostsInfo(DataTable dt)
        {
            if (dt == null || dt.Rows.Count == 0)
            {
                return(null);
            }

            SpacePostInfo[] spacepostsinfoarray = new SpacePostInfo[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                spacepostsinfoarray[i]                = new SpacePostInfo();
                spacepostsinfoarray[i].Postid         = TypeConverter.ObjectToInt(dt.Rows[i]["postid"]);
                spacepostsinfoarray[i].Author         = dt.Rows[i]["author"].ToString();
                spacepostsinfoarray[i].Uid            = TypeConverter.ObjectToInt(dt.Rows[i]["uid"]);
                spacepostsinfoarray[i].Postdatetime   = Convert.ToDateTime(dt.Rows[i]["postdatetime"]);
                spacepostsinfoarray[i].Content        = dt.Rows[i]["content"].ToString();
                spacepostsinfoarray[i].Title          = dt.Rows[i]["title"].ToString();
                spacepostsinfoarray[i].Category       = dt.Rows[i]["category"].ToString();
                spacepostsinfoarray[i].PostStatus     = TypeConverter.ObjectToInt(dt.Rows[i]["poststatus"]);
                spacepostsinfoarray[i].CommentStatus  = TypeConverter.ObjectToInt(dt.Rows[i]["commentstatus"]);
                spacepostsinfoarray[i].PostUpDateTime = Convert.ToDateTime(dt.Rows[i]["postupdatetime"]);
                spacepostsinfoarray[i].Commentcount   = TypeConverter.ObjectToInt(dt.Rows[i]["commentcount"]);
                spacepostsinfoarray[i].Views          = TypeConverter.ObjectToInt(dt.Rows[i]["views"].ToString());
            }

            dt.Dispose();
            return(spacepostsinfoarray);
        }
Пример #5
0
        public SpaceBasePage()
        {
            OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);

            olid     = oluserinfo.Olid;
            userid   = oluserinfo.Userid;
            username = oluserinfo.Username;

            if (DNTRequest.GetInt("postid", 0) > 0)
            {
                SpacePostInfo spacePostInfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(DNTRequest.GetInt("postid", 0)));
                spaceuid = spacePostInfo != null? spacePostInfo.Uid:0;
            }

            if (spaceuid > 0)
            {
                spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid);
                spaceid         = spaceconfiginfo.SpaceID;
            }
            else
            {
                if (spaceid > 0)
                {
                    spaceuid        = BlogProvider.GetUidBySpaceid(spaceid.ToString());
                    spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid);
                }
            }

            if (spaceconfiginfo == null)
            {
                spaceconfiginfo        = new SpaceConfigInfo();
                spaceconfiginfo.Status = SpaceStatusType.AdminClose;
            }

            if (spaceconfiginfo.Status != SpaceStatusType.Natural)
            {
                Context.Response.Redirect("index.aspx");
            }

            spaceurl = Utils.GetRootUrl(BaseConfigs.GetForumPath) + "space/";

            if (SpaceActiveConfigs.GetConfig().Enablespacerewrite > 0 && spaceconfiginfo.Rewritename != string.Empty)
            {
                spaceurl += spaceconfiginfo.Rewritename;
            }
            else
            {
                spaceurl += "?uid=" + spaceconfiginfo.UserID;
            }

            //去掉http地址中的文件名称
            if (forumurl.ToLower().IndexOf("http://") == 0)
            {
                forumurlnopage = forumurl.Substring(0, forumurl.LastIndexOf('/')) + "/";
            }
            else
            {
                forumurl = "../" + config.Forumurl;
            }
        }
Пример #6
0
 private string ParseTimeTemplate(string sbTimeTemplate, SpacePostInfo post)
 {
     sbTimeTemplate = sbTimeTemplate.Replace("{$Year}", post.Postdatetime.Year.ToString());
     sbTimeTemplate = sbTimeTemplate.Replace("{$Month}", post.Postdatetime.Month.ToString("00"));
     sbTimeTemplate = sbTimeTemplate.Replace("{$Date}", post.Postdatetime.Day.ToString("00"));
     return(sbTimeTemplate.ToString());
 }
Пример #7
0
        public DiscuzSpaceUCBase()
        {
            OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);

            olid      = oluserinfo.Olid;
            userid    = oluserinfo.Userid;
            username  = oluserinfo.Username;
            _userinfo = Users.GetUserInfo(userid);

            if (DNTRequest.GetInt("postid", 0) > 0)
            {
                SpacePostInfo __spacepostinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(DNTRequest.GetInt("postid", 0)));
                spaceuid = __spacepostinfo != null? __spacepostinfo.Uid:0;
            }

            if (spaceuid > 0)
            {
                spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid);
                spaceid         = spaceconfiginfo.SpaceID;
            }
            else
            {
                if (spaceid > 0)
                {
                    spaceuid        = BlogProvider.GetUidBySpaceid(spaceid.ToString());
                    spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid);
                }
            }

            if (spaceconfiginfo == null)
            {
                spaceconfiginfo = new SpaceConfigInfo();
            }

            pagesize = spaceconfiginfo.Bpp;
            //去掉http地址中的文件名称
            if (forumurl.ToLower().IndexOf("http://") == 0)
            {
                forumurlnopage = forumurl.Substring(0, forumurl.LastIndexOf('/')) + "/";
            }
            else
            {
                forumurl = "../" + forumurl;
            }

            if (configspaceurlnopage.ToLower().IndexOf("http://") < 0)
            {
                configspaceurlnopage = forumurlnopage;
            }
            else
            {
                configspaceurlnopage = configspaceurlnopage.ToLower().Substring(0, configspaceurlnopage.LastIndexOf('/')) + "/";
            }
        }
Пример #8
0
        private static SpacePostInfo GetSpacePostEntity(IDataReader reader)
        {
            SpacePostInfo post = new SpacePostInfo();

            post.Postid       = Utils.StrToInt(reader["postid"], 0);
            post.Title        = reader["title"].ToString();
            post.Author       = reader["author"].ToString();
            post.Postdatetime = Convert.ToDateTime(reader["postdatetime"]);
            post.Commentcount = Utils.StrToInt(reader["commentcount"], 0);
            post.Views        = Utils.StrToInt(reader["views"], 0);
            return(post);
        }
        public ajaxuserspacecommentlist()
        {
            postid = DNTRequest.GetInt("postid", 0);

            if (postid > 0)
            {
                if (Discuz.Common.DNTRequest.GetString("load") == "true")
                {
                    //当前用户是否是日志的作者
                    SpacePostInfo __spacepostinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(postid));
                    if (__spacepostinfo.Uid == userid)
                    {
                        ispostauthor = true;
                    }

                    if (Forum.AdminGroups.GetAdminGroupInfo(_userinfo.Groupid) != null)
                    {
                        isadmin = true;
                    }

                    //当是发布状态或当前作者的日志时
                    if (__spacepostinfo.PostStatus == 0)
                    {
                        errorinfo = "当前请求的内容无效!";
                        return;
                    }

                    //当有要删除的记录时
                    int delcommentid = DNTRequest.GetInt("delcommentid", 0);
                    if (delcommentid > 0)
                    {
                        //判断该用户是否为本人或管理组内
                        if ((UserGroups.GetUserGroupInfo(_userinfo.Groupid).Radminid == 1 && this.isadmin) || (this.spaceconfiginfo.UserID == this.userid))
                        {
                            Space.Data.DbProvider.GetInstance().DeleteSpaceComment(delcommentid);
                        }

                        //更新相关评论数
                        Space.Data.DbProvider.GetInstance().CountUserSpaceCommentCountByUserID(__spacepostinfo.Uid, -1);
                        Space.Data.DbProvider.GetInstance().CountSpaceCommentCountByPostID(postid, -1);
                    }

                    //得到当前评论列表
                    __spacecommentinfos = GetSpaceCommentInfoList(currentpage, postid);
                    //得到页码链接
                    pagelink = AjaxPagination(Space.Data.DbProvider.GetInstance().GetSpaceCommentsCountByPostid(postid), 16, currentpage);
                }
            }
            else
            {
                errorinfo = "当前请求日志回复信息无效!";
            }
        }
Пример #10
0
        private void Submit_CategoryInfo()
        {
            if (!OnlineUsers.CheckUserVerifyCode(olid, DNTRequest.GetString("vcode")))
            {
                completeinfo = "验证码错误,请重新输入";
                return;
            }
            if (commentcontent == "")
            {
                completeinfo = "请输入评论内容";
                return;
            }

            SpacePostInfo __spacepostinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(postid));

            if (__spacepostinfo.CommentStatus == 1)
            {
                completeinfo = "当前日志不允许评论";
                return;
            }
            if ((__spacepostinfo.CommentStatus == 2) && (userid < 1))
            {
                completeinfo = "当前日志仅允许注册用户评论";
                return;
            }

            SpaceCommentInfo __spacecommentinfo = new SpaceCommentInfo();

            __spacecommentinfo.PostID       = postid;
            __spacecommentinfo.Author       = Utils.HtmlEncode(commentauthor != ""?commentauthor:"匿名");
            __spacecommentinfo.Email        = Utils.HtmlEncode(commentemail);
            __spacecommentinfo.Url          = commenturl;
            __spacecommentinfo.Ip           = DNTRequest.GetIP();
            __spacecommentinfo.PostDateTime = DateTime.Now;
            __spacecommentinfo.Content      = Utils.HtmlEncode(ForumUtils.BanWordFilter(commentcontent));
            __spacecommentinfo.ParentID     = 0;
            __spacecommentinfo.Uid          = (commentauthor == username) ? userid: -1;
            __spacecommentinfo.PostTitle    = Utils.HtmlEncode(ForumUtils.BanWordFilter(__spacepostinfo.Title));

            Space.Data.DbProvider.GetInstance().AddSpaceComment(__spacecommentinfo);
            Space.Data.DbProvider.GetInstance().CountUserSpaceCommentCountByUserID(__spacepostinfo.Uid, 1);
            Space.Data.DbProvider.GetInstance().CountSpaceCommentCountByPostID(postid, 1);

            if (DNTRequest.GetString("notice") == "true")
            {
                SendSpaceCommentNotice(__spacecommentinfo);
            }
        }
Пример #11
0
        protected override void OnTopicCreated(TopicInfo topic, PostInfo post, AttachmentInfo[] attachs)
        {
            SpacePostInfo spacepost = new SpacePostInfo();

            spacepost.Author = post.Poster;
            string content = Posts.GetPostMessageHTML(post, attachs);

            spacepost.Category       = "";
            spacepost.Content        = content;
            spacepost.Postdatetime   = DateTime.Now;
            spacepost.PostStatus     = 1;
            spacepost.PostUpDateTime = DateTime.Now;
            spacepost.Title          = post.Title;
            spacepost.Uid            = post.Posterid;

            DbProvider.GetInstance().AddSpacePost(spacepost);
        }
Пример #12
0
        override protected void OnInit(EventArgs e)
        {
            if (GeneralConfigs.GetConfig().Enablespace != 1)
            {
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Write("<script>alert('" + config.Spacename + "功能已被关闭!');document.location = '" + forumurlnopage + "/index.aspx';</script>");
                HttpContext.Current.Response.End();
                return;
            }

            if (DNTRequest.GetString("act") == "del")
            {
                Discuz.Space.Spaces.DeleteSpacePost(DNTRequest.GetString("postid"), spaceconfiginfo.UserID);
                HttpContext.Current.Response.Write("<script>alert('日志已经被删除!');document.location = 'viewspacepostlist.aspx?spaceid=" + DNTRequest.GetString("spaceid") + "';</script>");
                return;
            }
            postid = DNTRequest.GetInt("postid", 0);
            if (postid == 0)
            {
                return;
            }
            else
            {
                spacepostinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(postid));
                commentcount  = spacepostinfo != null ? spacepostinfo.Commentcount : 0;
                if (spacepostinfo == null)
                {
                    spacepostinfo = new SpacePostInfo();
                }
                else
                {
                    //对用户空间浏览量加1
                    Space.Data.DbProvider.GetInstance().CountUserSpacePostByUserID(postid);

                    //对用户空间访问量加1
                    Space.Data.DbProvider.GetInstance().CountUserSpaceVisitedTimesByUserID(spaceconfiginfo.UserID);
                }
            }

            configspaceurl = GeneralConfigs.GetConfig().Spaceurl;
            if (configspaceurl.ToLower().IndexOf("http://") < 0)
            {
                configspaceurl = forumurlnopage + configspaceurl;
            }
        }
Пример #13
0
        private string ParseTagItem(StringBuilder sbTagItem, SpacePostInfo post)
        {
            string xx = SpaceTags.GetSpacePostTagsCacheFile(post.Postid);
            object o  = JsonConvert.DeserializeObject(xx, typeof(TagInfo[]));

            TagInfo[]     tags     = o as TagInfo[];
            StringBuilder sbResult = new StringBuilder();

            if (tags != null)
            {
                foreach (TagInfo tag in tags)
                {
                    StringBuilder sbTemp = new StringBuilder(sbTagItem.ToString());
                    sbTemp.Replace("{$TagUrl}", GetTagURL(tag.Tagid));
                    sbTemp.Replace("{$TagName}", tag.Tagname);
                    sbResult.Append(sbTemp);
                }
            }
            return(sbResult.ToString());
        }
Пример #14
0
        /// <summary>
        /// 日志评论通知
        /// </summary>
        /// <param name="commentinfo">日志评论信息</param>
        public void SendSpaceCommentNotice(SpaceCommentInfo commentinfo)
        {
            //要回复的用户id
            int replyuserid = DNTRequest.GetInt("userid", 0);

            //当日志有效时
            if (commentinfo.PostID > 0)
            {
                SpacePostInfo __spacepostsinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(commentinfo.PostID));
                //当日志有效时
                if (__spacepostsinfo != null)
                {
                    NoticeInfo __noticeinfo = new NoticeInfo();
                    __noticeinfo.Type         = NoticeType.SpaceCommentNotice;
                    __noticeinfo.New          = 1;
                    __noticeinfo.Posterid     = commentinfo.Uid;
                    __noticeinfo.Poster       = commentinfo.Author;
                    __noticeinfo.Postdatetime = Utils.GetDateTime();

                    //当回复人与评论作者不是同一人时,则向评论作者发送通知
                    if (__noticeinfo.Posterid != replyuserid && replyuserid > 0)
                    {
                        __noticeinfo.Note = Utils.HtmlEncode(string.Format("<a href=\"userinfo.aspx?userid={0}\">{1}</a> 回复了您的日志信息 <a href =\"viewspacepost.aspx?postid={3}\">{4}</a>.", commentinfo.Uid, commentinfo.Author, config.Spacename, commentinfo.PostID, __spacepostsinfo.Title));
                        __noticeinfo.Uid  = replyuserid;
                        Notices.CreateNoticeInfo(__noticeinfo);
                    }

                    //当上面通知的用户与该空间日志作者不同,则还要向主题作者发通知
                    if (__noticeinfo.Posterid != __spacepostsinfo.Uid && __spacepostsinfo.Uid > 0)
                    {
                        __noticeinfo.Note = Utils.HtmlEncode(string.Format("<a href=\"userinfo.aspx?userid={0}\">{1}</a> 评论了您的{2}日志 <a href =\"viewspacepost.aspx?postid={3}\">{4}</a>.", commentinfo.Uid, commentinfo.Author, config.Spacename, commentinfo.PostID, __spacepostsinfo.Title));
                        __noticeinfo.Uid  = __spacepostsinfo.Uid;
                        Notices.CreateNoticeInfo(__noticeinfo);
                    }
                }
            }
        }
Пример #15
0
        protected override void ShowPage()
        {
            pagetitle = "用户控制面板";

            if (userid == -1)
            {
                AddErrLine("你尚未登录");
                return;
            }
            user = Users.GetUserInfo(userid);
            if (config.Enablespace != 1)
            {
                AddErrLine("个人空间功能已被关闭");
                return;
            }
            if (user.Spaceid <= 0)
            {
                AddErrLine("您尚未开通个人空间");
                return;
            }

            enabletag     = config.Enabletag == 1;
            categoryslist = Space.Data.DbProvider.GetInstance().GetSpaceCategoryListByUserId(userid);
            spaceconfig   = Spaces.GetSpaceConfigByUserId(userid);
            if (DNTRequest.IsPost())
            {
                if (ForumUtils.IsCrossSitePost())
                {
                    AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。");
                    return;
                }
                if (!Utils.IsNumeric(DNTRequest.GetString("poststatus")) || !Utils.IsNumeric(DNTRequest.GetString("commentstatus")))
                {
                    AddErrLine("请您确保 发布类型,评论类型,数据项有效!");
                    return;
                }
                if (DNTRequest.GetString("title") == "")
                {
                    AddErrLine("请您输入文章标题");
                    return;
                }
                if (DNTRequest.GetString("title").Length > 150)
                {
                    AddErrLine("请将文章标题保持在150字以内");
                    return;
                }
                if (blogcontent == "")
                {
                    AddErrLine("请您输入文章内容");
                    return;
                }

                SpacePostInfo spacepostsinfo = new SpacePostInfo();
                spacepostsinfo.Title          = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("title")));
                spacepostsinfo.Content        = Utils.HtmlEncode(ForumUtils.BanWordFilter(blogcontent));
                spacepostsinfo.Category       = DNTRequest.GetString("category");
                spacepostsinfo.PostStatus     = DNTRequest.GetFormInt("poststatus", 0);
                spacepostsinfo.CommentStatus  = DNTRequest.GetFormInt("commentstatus", 0);
                spacepostsinfo.Postdatetime   = DateTime.Now;
                spacepostsinfo.Author         = username;
                spacepostsinfo.Uid            = userid;
                spacepostsinfo.PostUpDateTime = DateTime.Now;
                spacepostsinfo.Commentcount   = 0;

                int postid = Space.Data.DbProvider.GetInstance().AddSpacePost(spacepostsinfo);

                //启用了标签功能
                if (enabletag)
                {
                    string   tags      = DNTRequest.GetString("tags").Trim();
                    string[] tagsArray = null;
                    if (!Utils.StrIsNullOrEmpty(tags))
                    {
                        tagsArray = Utils.SplitString(tags, " ", true, 10);
                        if (tagsArray != null && tagsArray.Length > 0)
                        {
                            Space.Data.DbProvider.GetInstance().CreateSpacePostTags(string.Join(" ", tagsArray), postid, userid, Utils.GetDateTime());
                            SpaceTags.WriteSpacePostTagsCacheFile(postid);
                        }
                    }
                }
                DNTCache.GetCacheService().RemoveObject("/Space/RecentUpdateSpaceAggregationList");
                SetUrl("usercpspacemanageblog.aspx");
                SetMetaRefresh();
                SetShowBackLink(true);
                AddMsgLine("文章增加成功");
            }
        }
Пример #16
0
        private void PassApply_Click(object sender, EventArgs e)
        {
            if (DNTRequest.GetString("uid") != "")
            {
                string uidlist = DNTRequest.GetString("uid");
                foreach (string uid in uidlist.Split(','))
                {
                    Discuz.Data.DatabaseProvider.GetInstance().UpdateUserSpaceId(Convert.ToInt32(uid));
                    //string sql = "UPDATE [" + BaseConfigs.GetTablePrefix + "users] SET [spaceid]=ABS([spaceid]) WHERE [uid]=" + uid;
                    //sql += ";SELECT [spaceid] FROM [" + BaseConfigs.GetTablePrefix + "users] WHERE [uid]=" + uid;
                    //int spceid = (int)AdminDatabase.ExecuteScalar(sql);
                    int     tabid = Spaces.GetNewTabId(Convert.ToInt32(uid));
                    TabInfo tab   = new TabInfo();
                    tab.TabID        = tabid;
                    tab.UserID       = Convert.ToInt32(uid);
                    tab.DisplayOrder = 0;
                    tab.TabName      = "首页";
                    tab.IconFile     = "";
                    tab.Template     = "template_25_75.htm";
                    Spaces.AddTab(tab);
                    //sql = "INSERT INTO [" + BaseConfigs.GetTablePrefix + "spacetabs] ([uid],[displayorder], [tabname], [iconfile],[template])  VALUES(" + uid + ",0,'默认','','template_25_75.htm');SELECT SCOPE_IDENTITY()";
                    //int tabid = Utils.StrToInt(AdminDatabase.ExecuteScalar(sql),0);
                    Spaces.AddLocalModule("builtin_calendarmodule.xml", int.Parse(uid), tabid, 1);
                    Spaces.AddLocalModule("builtin_statisticmodule.xml", int.Parse(uid), tabid, 1);
                    Spaces.AddLocalModule("builtin_postlistmodule.xml", int.Parse(uid), tabid, 2);

                    if (spaceConfig.Spacegreeting != string.Empty)
                    {
                        SpacePostInfo spacepostsinfo = new SpacePostInfo();
                        spacepostsinfo.Title          = string.Format("欢迎使用 {0} {1}", config.Forumtitle, config.Spacename);
                        spacepostsinfo.Content        = spaceConfig.Spacegreeting;
                        spacepostsinfo.Category       = string.Empty;
                        spacepostsinfo.PostStatus     = 1;
                        spacepostsinfo.CommentStatus  = 0;
                        spacepostsinfo.Postdatetime   = DateTime.Now;
                        spacepostsinfo.Author         = username;
                        spacepostsinfo.Uid            = Utils.StrToInt(uid, -1);
                        spacepostsinfo.PostUpDateTime = DateTime.Now;
                        spacepostsinfo.Commentcount   = 0;

                        DbProvider.GetInstance().AddSpacePost(spacepostsinfo);
                    }
                    ///添加最新主题到日志
                    List <TopicInfo> list = Topics.GetTopicsByUserId(userid, 1, config.Topictoblog, 0, 0);
                    foreach (TopicInfo mytopic in list)
                    {
                        int      pid  = Posts.GetFirstPostId(mytopic.Tid);
                        PostInfo post = Posts.GetPostInfo(mytopic.Tid, pid);
                        if (post != null && post.Message.Trim() != string.Empty)
                        {
                            SpacePostInfo spacepost = new SpacePostInfo();
                            spacepost.Author = username;
                            string content = Posts.GetPostMessageHTML(post, new AttachmentInfo[0]);
                            spacepost.Category       = "";
                            spacepost.Content        = content;
                            spacepost.Postdatetime   = DateTime.Now;
                            spacepost.PostStatus     = 1;
                            spacepost.PostUpDateTime = DateTime.Now;
                            spacepost.Title          = post.Title;
                            spacepost.Uid            = Utils.StrToInt(uid, -1);;

                            DbProvider.GetInstance().AddSpacePost(spacepost);
                        }
                    }

                    //短信通知用户个人空间已经开通
                    PrivateMessageInfo privatemessageinfo = new PrivateMessageInfo();
                    ShortUserInfo      userInfo           = Users.GetShortUserInfo(Convert.ToInt32(uid));
                    privatemessageinfo.Msgto        = userInfo == null ? "" : userInfo.Username;
                    privatemessageinfo.Msgtoid      = Convert.ToInt32(uid);
                    privatemessageinfo.Postdatetime = Utils.GetDateTime();
                    privatemessageinfo.Message      = "恭喜您,您的" + config.Spacename + "已经被管理员" + username + "开通!";
                    privatemessageinfo.Subject      = "恭喜,您的" + config.Spacename + "已经开通";
                    privatemessageinfo.Msgfrom      = username;
                    privatemessageinfo.Msgfromid    = userid;
                    privatemessageinfo.New          = 1;
                    privatemessageinfo.Folder       = 0;

                    PrivateMessages.CreatePrivateMessage(privatemessageinfo, 0);
                    //AdminDatabase.ExecuteNonQuery("INSERT INTO [" + BaseConfigs.GetTablePrefix + "pms] (msgfrom,msgfromid,msgto,msgtoid,folder,new,subject,postdatetime,message) VALUES ('" + username + "','" + userid + "','" + msgto.Replace("'", "''") + "','" + uid + "','0','1','" + subject + "','" + curdatetime + "','" + message + "')");
                    //AdminDatabase.ExecuteNonQuery("UPDATE [" + BaseConfigs.GetTablePrefix + "users] SET [newpmcount]=[newpmcount]+1  WHERE [uid] =" + uid);
                }
                base.RegisterStartupScript("PAGE", "window.location.href='space_spaceapplymanage.aspx';");
            }
            else
            {
                base.RegisterStartupScript("", "<script>alert('请选择要开通的空间!');window.location.href='space_spaceapplymanage.aspx';</script>");
            }
        }
Пример #17
0
        protected override void ShowPage()
        {
            pagetitle = string.Format("激活{0}", config.Spacename);

            if (userid == -1)
            {
                AddErrLine("你尚未登录");
                return;
            }

            UserInfo user = Users.GetUserInfo(userid);

            if (config.Enablespace != 1)
            {
                AddErrLine(string.Format("{0}功能已被关闭", config.Spacename));
                return;
            }

            bool isactivespace = false;
            bool isallowapply  = true;

            if (user.Spaceid > 0)
            {
                isactivespace = true;
            }
            else
            {
                if (user.Spaceid < 0)
                {
                    isallowapply = false;
                }
                else
                {
                    if (spaceactiveconfig.AllowPostcount == "1" || spaceactiveconfig.AllowDigestcount == "1" ||
                        spaceactiveconfig.AllowScore == "1" || spaceactiveconfig.AllowUsergroups == "1")
                    {
                        if (spaceactiveconfig.AllowPostcount == "1")
                        {
                            isallowapply = isallowapply && (Convert.ToInt32(spaceactiveconfig.Postcount) <= user.Posts);
                        }
                        if (spaceactiveconfig.AllowDigestcount == "1")
                        {
                            isallowapply = isallowapply &&
                                           (Convert.ToInt32(spaceactiveconfig.Digestcount) <= user.Digestposts);
                        }
                        if (spaceactiveconfig.AllowScore == "1")
                        {
                            isallowapply = isallowapply && (Convert.ToInt32(spaceactiveconfig.Score) <= user.Credits);
                        }
                        if (spaceactiveconfig.AllowUsergroups == "1")
                        {
                            isallowapply = isallowapply &&
                                           (("," + spaceactiveconfig.Usergroups + ",").IndexOf("," + user.Groupid + ",") !=
                                            -1);
                        }
                    }
                    else
                    {
                        isallowapply = false;
                    }
                }
            }

            if (isactivespace)
            {
                AddErrLine("您已经申请过个人空间!");
                return;
            }
            if (!isallowapply)
            {
                AddErrLine("您未被允许申请个人空间!");
                return;
            }

            if (DNTRequest.IsPost())
            {
                if (ForumUtils.IsCrossSitePost())
                {
                    AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。");
                    return;
                }
                if (DNTRequest.GetString("spacetitle").Length > 100)
                {
                    AddErrLine("个人空间标题不得超过100个字符");
                    return;
                }
                if (DNTRequest.GetString("description").Length > 200)
                {
                    AddErrLine("个人空间描述不得超过200个字符");
                    return;
                }
                if (DNTRequest.GetInt("bpp", 0) == 0)
                {
                    AddErrLine("显示日志篇数必需是一个大于0的数字");
                    return;
                }

                if (page_err == 0)
                {
                    DataRow dr = DbProvider.GetInstance().GetThemes();
                    spaceconfiginfo                = new SpaceConfigInfo();
                    spaceconfiginfo.UserID         = userid;
                    spaceconfiginfo.Spacetitle     = DNTRequest.GetHtmlEncodeString("spacetitle");
                    spaceconfiginfo.Description    = DNTRequest.GetHtmlEncodeString("description");
                    spaceconfiginfo.BlogDispMode   = DNTRequest.GetInt("blogdispmode", 0);
                    spaceconfiginfo.Bpp            = DNTRequest.GetInt("bpp", 0);
                    spaceconfiginfo.Commentpref    = DNTRequest.GetInt("commentpref", 0);
                    spaceconfiginfo.MessagePref    = DNTRequest.GetInt("messagepref", 0);
                    spaceconfiginfo.UpdateDateTime = spaceconfiginfo.CreateDateTime = DateTime.Now;
                    string rewritename = DNTRequest.GetFormString("rewritename").Trim();
                    if (rewritename != string.Empty)
                    {
                        if (Globals.CheckSpaceRewriteNameAvailable(rewritename) == 0)
                        {
                            spaceconfiginfo.Rewritename = rewritename;
                        }
                        else
                        {
                            AddErrLine("您输入的 个性域名 不可用或含有非法字符");
                            return;
                        }
                    }
                    else
                    {
                        spaceconfiginfo.Rewritename = "";
                    }

                    spaceconfiginfo.ThemeID      = int.Parse(dr["themeid"].ToString());
                    spaceconfiginfo.ThemePath    = dr["directory"].ToString();
                    spaceconfiginfo.PostCount    = 0;
                    spaceconfiginfo.CommentCount = 0;
                    spaceconfiginfo.VisitedTimes = 0;
                    spaceconfiginfo.DefaultTab   = 0;

                    string errorinfo = "";
                    int    blogid    = DbProvider.GetInstance().AddSpaceConfigData(spaceconfiginfo);
                    Users.UpdateUserSpaceId(-blogid, userid);

                    SpaceActiveConfigInfo _spaceconfiginfo = SpaceActiveConfigs.GetConfig();
                    if (_spaceconfiginfo.ActiveType == "0")
                    {
                        if (errorinfo == "")
                        {
                            SetUrl("index.aspx");
                            SetMetaRefresh();
                            SetShowBackLink(true);
                            AddMsgLine("您的申请已经提交,请等待管理员开通您的个人空间");
                        }
                        else
                        {
                            AddErrLine(errorinfo);
                            return;
                        }
                    }
                    else
                    {
                        Discuz.Data.DatabaseProvider.GetInstance().UpdateUserSpaceId(userid);
                        int     tabid = Spaces.GetNewTabId(userid);
                        TabInfo tab   = new TabInfo();
                        tab.TabID        = tabid;
                        tab.UserID       = userid;
                        tab.DisplayOrder = 0;
                        tab.TabName      = "首页";
                        tab.IconFile     = "";
                        tab.Template     = "template_25_75.htm";
                        Spaces.AddTab(tab);
                        Spaces.AddLocalModule("builtin_calendarmodule.xml", userid, tabid, 1);
                        Spaces.AddLocalModule("builtin_statisticmodule.xml", userid, tabid, 1);
                        Spaces.AddLocalModule("builtin_postlistmodule.xml", userid, tabid, 2);
                        if (SpaceActiveConfigs.GetConfig().Spacegreeting != string.Empty)
                        {
                            SpacePostInfo spacepostsinfo = new SpacePostInfo();
                            spacepostsinfo.Title          = string.Format("欢迎使用 {0} 个人空间", config.Forumtitle);
                            spacepostsinfo.Content        = SpaceActiveConfigs.GetConfig().Spacegreeting;
                            spacepostsinfo.Category       = string.Empty;
                            spacepostsinfo.PostStatus     = 1;
                            spacepostsinfo.CommentStatus  = 0;
                            spacepostsinfo.Postdatetime   = DateTime.Now;
                            spacepostsinfo.Author         = username;
                            spacepostsinfo.Uid            = userid;
                            spacepostsinfo.PostUpDateTime = DateTime.Now;
                            spacepostsinfo.Commentcount   = 0;
                            DbProvider.GetInstance().AddSpacePost(spacepostsinfo);
                        }

                        ///添加最新主题到日志
                        List <TopicInfo> list = Topics.GetTopicsByUserId(userid, 1, config.Topictoblog, 0, 0);
                        foreach (TopicInfo mytopic in list)
                        {
                            int      pid  = Posts.GetFirstPostId(mytopic.Tid);
                            PostInfo post = Posts.GetPostInfo(mytopic.Tid, pid);
                            if (post != null && post.Message.Trim() != string.Empty)
                            {
                                SpacePostInfo spacepost = new SpacePostInfo();
                                spacepost.Author = username;
                                string content = Posts.GetPostMessageHTML(post, new AttachmentInfo[0]);
                                spacepost.Category       = "";
                                spacepost.Content        = content;
                                spacepost.Postdatetime   = DateTime.Now;
                                spacepost.PostStatus     = 1;
                                spacepost.PostUpDateTime = DateTime.Now;
                                spacepost.Title          = post.Title;
                                spacepost.Uid            = userid;
                                DbProvider.GetInstance().AddSpacePost(spacepost);
                            }
                        }
                        SetUrl("space/");
                        SetMetaRefresh();
                        SetShowBackLink(true);
                        AddMsgLine("恭喜您,您的个人空间已经被开通");
                    }
                }
            }
            else
            {
                spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(userid);
            }
        }
Пример #18
0
        protected override void ShowPage()
        {
            pagetitle = "用户控制面板";

            if (userid == -1)
            {
                AddErrLine("你尚未登录");
                return;
            }
            user = Users.GetUserInfo(userid);
            if (config.Enablespace != 1)
            {
                AddErrLine("个人空间功能已被关闭");
                return;
            }

            if (user.Spaceid <= 0)
            {
                AddErrLine("您尚未开通个人空间");
                return;
            }
            enabletag = config.Enabletag == 1;

            if (DNTRequest.IsPost())
            {
                if (ForumUtils.IsCrossSitePost())
                {
                    AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。");
                    return;
                }

                if (!Utils.IsNumeric(DNTRequest.GetString("poststatus")) ||
                    !Utils.IsNumeric(DNTRequest.GetString("commentstatus")))
                {
                    AddErrLine("请您确保: 发布类型, 评论类型 数据项有效!");
                    return;
                }
                if (DNTRequest.GetString("title") == "")
                {
                    AddErrLine("请您输入文章标题");
                    return;
                }
                if (DNTRequest.GetString("title").Length > 150)
                {
                    AddErrLine("请将文章标题保持在150字以内");
                    return;
                }
                if (blogcontent == "")
                {
                    AddErrLine("请您输入文章内容");
                    return;
                }
                int postid = DNTRequest.GetInt("postid", 0);
                if (postid == 0)
                {
                    AddErrLine("请正确选择文章");
                    return;
                }
                spacepostsinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(postid));
                if (spacepostsinfo == null || spacepostsinfo.Uid != userid)
                {
                    AddErrLine("您选择文章不存在");
                    return;
                }
                spacepostsinfo.Title          = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("title")));
                spacepostsinfo.Content        = Utils.HtmlEncode(ForumUtils.BanWordFilter(blogcontent));
                spacepostsinfo.Category       = DNTRequest.GetString("category");
                spacepostsinfo.PostStatus     = DNTRequest.GetFormInt("poststatus", 0);
                spacepostsinfo.CommentStatus  = DNTRequest.GetFormInt("commentstatus", 0);
                spacepostsinfo.PostUpDateTime = DateTime.Now;

                string errorinfo = "";
                Space.Data.DbProvider.GetInstance().SaveSpacePost(spacepostsinfo);
                if (enabletag)
                {
                    SpaceTags.DeleteSpacePostTags(spacepostsinfo.Postid);
                    string   tags      = DNTRequest.GetString("tags").Trim();
                    string[] tagsArray = null;
                    if (tags != string.Empty)
                    {
                        tagsArray = Utils.SplitString(tags, " ", true, 10);
                        if (tagsArray != null && tagsArray.Length > 0)
                        {
                            Space.Data.DbProvider.GetInstance().CreateSpacePostTags(string.Join(" ", tagsArray), postid, userid, Utils.GetDateTime());
                            SpaceTags.WriteSpacePostTagsCacheFile(postid);
                        }
                    }
                }

                DNTCache.GetCacheService().RemoveObject("/Space/RecentUpdateSpaceAggregationList");
                if (errorinfo == "")
                {
                    SetUrl("usercpspacemanageblog.aspx");
                    SetMetaRefresh();
                    SetShowBackLink(true);

                    AddMsgLine("文章修改成功");
                }
                else
                {
                    AddErrLine(errorinfo);
                    return;
                }
            }
            else
            {
                int postid = DNTRequest.GetInt("postid", 0);
                if (postid == 0)
                {
                    AddErrLine("请正确选择文章");
                    return;
                }
                categoryslist  = Space.Data.DbProvider.GetInstance().GetSpaceCategoryListByUserId(userid);
                spacepostsinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(postid));
                if (spacepostsinfo == null || spacepostsinfo.Uid != userid)
                {
                    AddErrLine("您选择文章不存在");
                    return;
                }
                categoryslist.Columns.Add(new DataColumn("checked", Type.GetType("System.Int32")));
                foreach (DataRow dr in categoryslist.Rows)
                {
                    dr["checked"] =
                        ("," + spacepostsinfo.Category + ",").IndexOf("," + dr["categoryid"].ToString() + ",");
                }
                blogcontent = spacepostsinfo.Content.Replace("'", "\"");

                if (enabletag)
                {
                    List <TagInfo> tags = SpaceTags.GetTagsListBySpacePost(spacepostsinfo.Postid);

                    foreach (TagInfo tag in tags)
                    {
                        if (tag.Orderid > -1)
                        {
                            spaceposttags += string.Format(" {0}", tag.Tagname);
                        }
                    }
                    spaceposttags = spaceposttags.Trim();
                }
            }
        }