Example #1
0
        public string newPost(string blogid, string username, string password, Post post, bool publish)
        {
            int uid = ValidateUser(username, password);

            if (uid < 1)
            {
                throw new XmlRpcFaultException(0, "用户不存在");
            }
            Entity.SpaceConfigInfo spaceconfig = Space.Spaces.GetSpaceConfigByUserId(uid);

            Discuz.Entity.SpacePostInfo spacepostsinfo = new Discuz.Entity.SpacePostInfo();
            spacepostsinfo.Title          = Discuz.Forum.ForumUtils.BanWordFilter(post.title);
            spacepostsinfo.Content        = Utils.RemoveUnsafeHtml(ForumUtils.BanWordFilter(post.description));
            spacepostsinfo.Category       = Space.Spaces.GetCategoryIds(post.categories, uid);
            spacepostsinfo.PostStatus     = publish ? 1 : 0;
            spacepostsinfo.CommentStatus  = spaceconfig.Commentpref;
            spacepostsinfo.Postdatetime   = DateTime.Now;
            spacepostsinfo.Author         = username;
            spacepostsinfo.Uid            = uid;
            spacepostsinfo.PostUpDateTime = DateTime.Now;
            spacepostsinfo.Commentcount   = 0;

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

            if (postid < 1)
            {
                throw new XmlRpcFaultException(0, "发表文章不成功");
            }
            return(postid.ToString());
        }
        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 = "请求的日志不存在";
            }
        }
Example #3
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;
            }
         
		}
Example #4
0
        public string newPost(string blogid, string username, string password, Post post, bool publish)
        {
            int uid = ValidateUser(username, password);
            if (uid < 1)
                throw new XmlRpcFaultException(0, "用户不存在");
            Entity.SpaceConfigInfo spaceconfig = Space.Spaces.GetSpaceConfigByUserId(uid);

            Discuz.Entity.SpacePostInfo spacepostsinfo = new Discuz.Entity.SpacePostInfo();
            spacepostsinfo.Title = Discuz.Forum.ForumUtils.BanWordFilter(post.title);
            spacepostsinfo.Content = Utils.RemoveUnsafeHtml(ForumUtils.BanWordFilter(post.description));
            spacepostsinfo.Category = Space.Spaces.GetCategoryIds(post.categories, uid);
            spacepostsinfo.PostStatus = publish ? 1 : 0;
            spacepostsinfo.CommentStatus = spaceconfig.Commentpref;
            spacepostsinfo.Postdatetime = DateTime.Now;
            spacepostsinfo.Author = username;
            spacepostsinfo.Uid = uid;
            spacepostsinfo.PostUpDateTime = DateTime.Now;
            spacepostsinfo.Commentcount = 0;

            int postid = DbProvider.GetInstance().AddSpacePost(spacepostsinfo);
            if (postid < 1)
                throw new XmlRpcFaultException(0, "发表文章不成功");
            return postid.ToString();
        } 
		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>");
			}
		}
Example #6
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;
 }
Example #7
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);
        }
Example #8
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();
        }
Example #9
0
		public bool AddSpacePost(SpacePostInfo spaceposts)
		{
			//try
			//{
			IDataParameter[] prams = 
				{
					DbHelper.MakeInParam("@postid", (DbType)SqlDbType.Int, 4,spaceposts.PostID),
					DbHelper.MakeInParam("@author", (DbType)SqlDbType.NVarChar, 20,spaceposts.Author),
					DbHelper.MakeInParam("@uid", (DbType)SqlDbType.Int, 4,spaceposts.Uid),
					DbHelper.MakeInParam("@postdatetime", (DbType)SqlDbType.DateTime, 8,spaceposts.PostDateTime),
					DbHelper.MakeInParam("@content", (DbType)SqlDbType.NText, 0,spaceposts.Content),
					DbHelper.MakeInParam("@title", (DbType)SqlDbType.NVarChar, 150,spaceposts.Title),
					DbHelper.MakeInParam("@category", (DbType)SqlDbType.VarChar, 255,spaceposts.Category),
					DbHelper.MakeInParam("@poststatus", (DbType)SqlDbType.TinyInt, 1,spaceposts.PostStatus),
					DbHelper.MakeInParam("@commentstatus", (DbType)SqlDbType.TinyInt, 1,spaceposts.CommentStatus),
					DbHelper.MakeInParam("@postupdatetime", (DbType)SqlDbType.DateTime, 8,spaceposts.PostUpDateTime),
					DbHelper.MakeInParam("@commentcount", (DbType)SqlDbType.Int, 4,spaceposts.CommentCount)
				};
			string sqlstring = String.Format("INSERT INTO [" + BaseConfigs.GetTablePrefix + "spaceposts] ([author], [uid], [postdatetime], [content], [title], [category], [poststatus], [commentstatus], [postupdatetime], [commentcount]) VALUES ( @author, @uid, @postdatetime, @content, @title, @category, @poststatus, @commentstatus, @postupdatetime, @commentcount);SELECT SCOPE_IDENTITY();");

			//向关联表中插入相关数据
			IDataReader reader = DbHelper.ExecuteReader(CommandType.Text, sqlstring, prams);
			sqlstring = "UPDATE [" + BaseConfigs.GetTablePrefix + "spaceconfigs] SET [updatedatetime]=@postupdatetime WHERE [userid]=@uid";
			DbHelper.ExecuteNonQuery(CommandType.Text, sqlstring, prams);

			if (reader != null)
			{
				reader.Read();

				foreach (string cateogryid in spaceposts.Category.Split(','))
				{
					if (cateogryid != "")
					{
						SpacePostCategoryInfo spacepostCategoryInfo = new SpacePostCategoryInfo();
						spacepostCategoryInfo.PostID = Convert.ToInt32(reader[0].ToString());
						spacepostCategoryInfo.CategoryID = Convert.ToInt32(cateogryid);
						AddSpacePostCategory(spacepostCategoryInfo);
					}
				}
			}

			IDataParameter[] prams1 = 
				{
					DbHelper.MakeInParam("@spacepostid", (DbType)SqlDbType.Int, 4,reader[0].ToString()),
					DbHelper.MakeInParam("@uid", (DbType)SqlDbType.Int, 4,spaceposts.Uid)
				};

			reader.Close();

			//更新与当前日志关联的附件表中的数据
			DbHelper.ExecuteReader(CommandType.Text, "UPDATE [" + BaseConfigs.GetTablePrefix + "spaceattachments] SET [spacepostid] = @spacepostid  WHERE [spacepostid] = 0 AND [uid] = @uid ", prams1);

			//对当前用户日志加1
			CountUserSpacePostCountByUserID(spaceposts.Uid, 1);

            

			return true;
			//}
			//catch (Exception ex)
			//{
			//    errormsg = Globals.TransferSqlErrorInfo(ex.Message);
			//    return false;
			//}
		}
Example #10
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;
			}
		}
Example #11
0
        public bool SaveSpacePost(SpacePostInfo spaceposts)
        {
            DbParameter[] parms = 
				{
					DbHelper.MakeInParam("@postid", (DbType)SqlDbType.Int, 4, spaceposts.Postid),
					DbHelper.MakeInParam("@author", (DbType)SqlDbType.NVarChar, 20, spaceposts.Author),
					DbHelper.MakeInParam("@uid", (DbType)SqlDbType.Int, 4, spaceposts.Uid),
					DbHelper.MakeInParam("@postdatetime", (DbType)SqlDbType.DateTime, 8, spaceposts.Postdatetime),
					DbHelper.MakeInParam("@content", (DbType)SqlDbType.NText, 0, spaceposts.Content),
					DbHelper.MakeInParam("@title", (DbType)SqlDbType.NVarChar, 150, spaceposts.Title),
					DbHelper.MakeInParam("@category", (DbType)SqlDbType.VarChar, 255, spaceposts.Category),
					DbHelper.MakeInParam("@poststatus", (DbType)SqlDbType.TinyInt, 1, spaceposts.PostStatus),
					DbHelper.MakeInParam("@commentstatus", (DbType)SqlDbType.TinyInt, 1, spaceposts.CommentStatus),
					DbHelper.MakeInParam("@postupdatetime", (DbType)SqlDbType.DateTime, 8, spaceposts.PostUpDateTime)
				};
            string commandText = string.Format("UPDATE [{0}spaceposts]  SET [author] = @author, [uid] = @uid, [postdatetime] = @postdatetime, [content] = @content, [title] = @title, [category] = @category, [poststatus] = @poststatus, [commentstatus] = @commentstatus, [postupdatetime] = @postupdatetime WHERE [postid] = @postid", BaseConfigs.GetTablePrefix);

            DbHelper.ExecuteNonQuery(CommandType.Text, commandText, parms);

            commandText = string.Format("UPDATE [{0}spaceconfigs] SET [updatedatetime]=@postupdatetime WHERE [userid]=@uid", BaseConfigs.GetTablePrefix);

            DbHelper.ExecuteNonQuery(CommandType.Text, commandText, parms);
            //先删除指定的日志关联数据再插入新数据
            DeleteSpacePostCategoryByPostID(spaceposts.Postid);

            foreach (string cateogryid in spaceposts.Category.Split(','))
            {
                if (cateogryid != "")
                {
                    SpacePostCategoryInfo spacepostCategoryInfo = new SpacePostCategoryInfo();
                    spacepostCategoryInfo.PostID = spaceposts.Postid;
                    spacepostCategoryInfo.CategoryID = Convert.ToInt32(cateogryid);
                    AddSpacePostCategory(spacepostCategoryInfo);
                }
            }
            return true;
        }
Example #12
0
        public int AddSpacePost(SpacePostInfo spaceposts)
        {
            DbParameter[] parms = 
				{
					DbHelper.MakeInParam("@postid", (DbType)SqlDbType.Int, 4,spaceposts.Postid),
					DbHelper.MakeInParam("@author", (DbType)SqlDbType.NVarChar, 20,spaceposts.Author),
					DbHelper.MakeInParam("@uid", (DbType)SqlDbType.Int, 4,spaceposts.Uid),
					DbHelper.MakeInParam("@postdatetime", (DbType)SqlDbType.DateTime, 8,spaceposts.Postdatetime),
					DbHelper.MakeInParam("@content", (DbType)SqlDbType.NText, 0,spaceposts.Content),
					DbHelper.MakeInParam("@title", (DbType)SqlDbType.NVarChar, 150,spaceposts.Title),
					DbHelper.MakeInParam("@category", (DbType)SqlDbType.VarChar, 255,spaceposts.Category),
					DbHelper.MakeInParam("@poststatus", (DbType)SqlDbType.TinyInt, 1,spaceposts.PostStatus),
					DbHelper.MakeInParam("@commentstatus", (DbType)SqlDbType.TinyInt, 1,spaceposts.CommentStatus),
					DbHelper.MakeInParam("@postupdatetime", (DbType)SqlDbType.DateTime, 8,spaceposts.PostUpDateTime),
					DbHelper.MakeInParam("@commentcount", (DbType)SqlDbType.Int, 4,spaceposts.Commentcount)
				};
            string commandText = string.Format("INSERT INTO [{0}spaceposts] ([author], [uid], [postdatetime], [content], [title], [category], [poststatus], [commentstatus], [postupdatetime], [commentcount]) VALUES ( @author, @uid, @postdatetime, @content, @title, @category, @poststatus, @commentstatus, @postupdatetime, @commentcount);SELECT SCOPE_IDENTITY();", BaseConfigs.GetTablePrefix);

            //向关联表中插入相关数据
            int postid = TypeConverter.ObjectToInt(DbHelper.ExecuteScalar(CommandType.Text, commandText, parms));

            commandText = string.Format("UPDATE [{0}spaceconfigs] SET [updatedatetime]=@postupdatetime WHERE [userid]=@uid", BaseConfigs.GetTablePrefix);
           
            DbHelper.ExecuteNonQuery(CommandType.Text, commandText, parms);

            if (postid > 0)
            {
                foreach (string cateogryid in spaceposts.Category.Split(','))
                {
                    if (cateogryid != "")
                    {
                        SpacePostCategoryInfo spacepostCategoryInfo = new SpacePostCategoryInfo();
                        spacepostCategoryInfo.PostID = postid;
                        spacepostCategoryInfo.CategoryID = Convert.ToInt32(cateogryid);
                        AddSpacePostCategory(spacepostCategoryInfo);
                    }
                }
            }

            DbParameter[] prams1 = 
				{
					DbHelper.MakeInParam("@spacepostid", (DbType)SqlDbType.Int, 4, postid),
					DbHelper.MakeInParam("@uid", (DbType)SqlDbType.Int, 4,spaceposts.Uid)
				};
            //更新与当前日志关联的附件表中的数据
            DbHelper.ExecuteReader(CommandType.Text, 
                                   string.Format("UPDATE [{0}spaceattachments] SET [spacepostid] = @spacepostid  WHERE [spacepostid] = 0 AND [uid] = @uid ", BaseConfigs.GetTablePrefix), 
                                   prams1);
            //对当前用户日志加1
            CountUserSpacePostCountByUserID(spaceposts.Uid, 1);

            return postid;
        }
Example #13
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();
 }
Example #14
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();
                }
            }
        }
Example #15
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;
		}
Example #16
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("文章增加成功");
            }
        }
Example #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);
		}	
Example #18
0
		public bool SaveSpacePost(SpacePostInfo spaceposts)
		{
			//try
			//{
			IDataParameter[] prams = 
				{
					DbHelper.MakeInParam("@postid", (DbType)SqlDbType.Int, 4, spaceposts.PostID),
					DbHelper.MakeInParam("@author", (DbType)SqlDbType.NVarChar, 20, spaceposts.Author),
					DbHelper.MakeInParam("@uid", (DbType)SqlDbType.Int, 4, spaceposts.Uid),
					DbHelper.MakeInParam("@postdatetime", (DbType)SqlDbType.DateTime, 8, spaceposts.PostDateTime),
					DbHelper.MakeInParam("@content", (DbType)SqlDbType.NText, 0, spaceposts.Content),
					DbHelper.MakeInParam("@title", (DbType)SqlDbType.NVarChar, 150, spaceposts.Title),
					DbHelper.MakeInParam("@category", (DbType)SqlDbType.VarChar, 255, spaceposts.Category),
					DbHelper.MakeInParam("@poststatus", (DbType)SqlDbType.TinyInt, 1, spaceposts.PostStatus),
					DbHelper.MakeInParam("@commentstatus", (DbType)SqlDbType.TinyInt, 1, spaceposts.CommentStatus),
					DbHelper.MakeInParam("@postupdatetime", (DbType)SqlDbType.DateTime, 8, spaceposts.PostUpDateTime)
				};
			string sqlstring = String.Format("UPDATE [" + BaseConfigs.GetTablePrefix + "spaceposts]  SET [author] = @author, [uid] = @uid, [postdatetime] = @postdatetime, [content] = @content, [title] = @title, [category] = @category, [poststatus] = @poststatus, [commentstatus] = @commentstatus, [postupdatetime] = @postupdatetime WHERE [postid] = @postid");

			DbHelper.ExecuteNonQuery(CommandType.Text, sqlstring, prams);
			sqlstring = "UPDATE [" + BaseConfigs.GetTablePrefix + "spaceconfigs] SET [updatedatetime]=@postupdatetime WHERE [userid]=@uid";
			DbHelper.ExecuteNonQuery(CommandType.Text, sqlstring, prams);
			//先删除指定的日志关联数据再插入新数据
			DeleteSpacePostCategoryByPostID(spaceposts.PostID);

			foreach (string cateogryid in spaceposts.Category.Split(','))
			{
				if (cateogryid != "")
				{
					SpacePostCategoryInfo spacepostCategoryInfo = new SpacePostCategoryInfo();
					spacepostCategoryInfo.PostID = spaceposts.PostID;
					spacepostCategoryInfo.CategoryID = Convert.ToInt32(cateogryid);
					AddSpacePostCategory(spacepostCategoryInfo);
				}
			}


			return true;
			//}
			//catch (Exception ex)
			//{
			//    errormsg = Globals.TransferSqlErrorInfo(ex.Message);
			//    return false;
			//}
		}
Example #19
0
        private string ParseTagItem(StringBuilder sbTagItem, SpacePostInfo post)
        {
            string xx = SpaceTags.GetSpacePostTagsCacheFile(post.Postid);
            object o = JavaScriptConvert.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();
        }