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 = "请求的日志不存在"; } }
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; } }
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>"); } }
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; }
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); }
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(); }
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; //} }
/// <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; } }
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; }
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; }
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(); }
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(); } } }
/// <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; }
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("文章增加成功"); } }
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); }
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; //} }
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(); }