/// <summary>
 /// 写出引用通告处理状态
 /// </summary>
 public void OutWrite()
 {
     //取值
     PostItem postItem = new PostData(conn).GetPost(SiteFun.ToInt(SiteFun.Query("id")));
     CommentItem value = new CommentItem();
     value.PostID = postItem.ID;
     value.Author = SiteFun.Post("blog_name");
     value.Content = SiteFun.Post("excerpt");
     value.Title = SiteFun.Post("title");
     value.Trackback = true;
     value.URL = SiteFun.FormatUrl(SiteFun.Post("url"));
     value.Verify = postItem.AutoVerifyTrackback;
     //错误状态和返回信息
     int error = 1;
     string msg = string.Empty;
     if (postItem.ID > 0 && postItem.Show)
     {
         if (postItem.SwitchTrackback)
         {
             if (string.IsNullOrEmpty(value.Content)) { msg = SiteDat.GetLan("MsgNoContent"); }
             else
             {
                 if (value.Content.Length > 255) { value.Content = value.Content.Substring(0, 252) + "..."; }
                 if (string.IsNullOrEmpty(value.Author)) { msg = SiteDat.GetLan("MsgNoName"); }
                 else
                 {
                     bool haveFilter = false;
                     string[] filters = new SettingData(conn).GetSetting().Basic.Filter.Split(',');
                     foreach (string filter in filters)
                     {
                         if (value.Content.Contains(filter)) { haveFilter = true; }
                     }
                     if (haveFilter) { msg = SiteDat.GetLan("MsgFilterTxt"); }
                     else
                     {
                         new CommentData(conn).InsertComment(value);
                         msg = SiteDat.GetLan("MsgSaveSucc");
                         error = 0;
                     }
                 }
             }
         }
         else { msg = SiteDat.GetLan("MsgArtAllowedSendTb"); }
     }
     else { msg = SiteDat.GetLan("MsgArtNotExists"); }
     //处理和返回
     StringBuilder xml = new StringBuilder();
     xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
     xml.Append("<response>\n");
     xml.AppendFormat("\t<error>0</error>\n", error);
     xml.AppendFormat("\t<message>{0}</message>\n", SiteFun.CDATA(msg));
     xml.Append("</response>");
     HttpContext.Current.Response.ContentType = "text/xml";
     HttpContext.Current.Response.Write(xml);
 }
 /// <summary>
 /// 发表评论过程
 /// </summary>
 private void OutWritePost()
 {
     string msg = string.Empty;
     SettingItem setting = new SettingData(conn).GetSetting();
     //取值和设置
     PostItem postItem = new PostData(conn).GetPost(SiteFun.ToInt(SiteFun.Query("artId")));
     CommentItem postVal = new CommentItem();
     postVal.PostID = postItem.ID;
     postVal.Author = SiteFun.Post("author");
     postVal.Mail = SiteFun.Post("mail");
     postVal.URL = SiteFun.FormatUrl(SiteFun.Post("url"));
     postVal.Content = SiteFun.Post("content");
     postVal.Verify = postItem.AutoVerifyComment;
     //设置Cookie
     _wc.Set(postVal.Author, postVal.Mail, postVal.URL);
     //开始判断并发布
     if (postItem.ID > 0 && postItem.SwitchComment)
     {
         if (string.IsNullOrEmpty(postVal.Author)) { msg = SiteDat.GetLan("MsgNoNickName"); }
         else
         {
             if (string.IsNullOrEmpty(postVal.Mail)) { msg = SiteDat.GetLan("MsgNoMail"); }
             else
             {
                 if (string.IsNullOrEmpty(postVal.Content)) { msg = SiteDat.GetLan("MsgNoContent"); }
                 else
                 {
                     if (postVal.Content.Length > 255) { msg = SiteDat.GetLan("MsgContLenMax"); }
                     else
                     {
                         bool haveFilter = false;
                         string[] filters = setting.Basic.Filter.Split(',');
                         foreach (string filter in filters)
                         {
                             if (postVal.Content.Contains(filter)) { haveFilter = true; break; }
                         }
                         if (haveFilter) { msg = SiteDat.GetLan("MsgFilterTxt"); }
                         else
                         {
                             new CommentData(conn).InsertComment(postVal);
                             SiteDat.RemoveDat(SiteCache.NewComment);
                             SiteDat.RemoveDat(SiteCache.RandomPost);
                             SiteDat.ClearDat(string.Format("Comments-{0}-", postItem.ID));
                         }
                     }
                 }
             }
         }
     }
     else { msg = SiteDat.GetLan("MsgArtNotExistsOrLocked"); }
     PrintList(msg, postItem.ID);
 }
示例#3
0
 /// <summary>
 /// 插入新的评论数据
 /// </summary>
 /// <param name="value">评论数据</param>
 /// <returns>返回新增评论的编号</returns>
 public int InsertComment(CommentItem value)
 {
     int id = 0;
     _DbParameter[] pars ={
                            new _DbParameter().Set("@PostID", DbType.Int32, value.PostID),
                            new _DbParameter().Set("@Author", DbType.String, value.Author),
                            new _DbParameter().Set("@Title", DbType.String, value.Title),
                            new _DbParameter().Set("@Mail", DbType.String, value.Mail),
                            new _DbParameter().Set("@URL", DbType.String, value.URL),
                            new _DbParameter().Set("@Content", DbType.String, value.Content),
                            new _DbParameter().Set("@Reply", DbType.String, value.Reply),
                            new _DbParameter().Set("@IsTB", DbType.Int32, value.Trackback ? 1 : 0),
                            new _DbParameter().Set("@Publish", DbType.String, value.Publish.ToString("yyyy-MM-dd HH:mm:ss")),
                            new _DbParameter().Set("@Verify", DbType.Int32, value.Verify ? 1 : 0)
                        };
     conn.ExecuteNonQuery("INSERT INTO [Comment] ([PostID], [Author], [Title], [Mail], [URL], [Content], [Reply], [IsTB], [Publish], [Verify]) VALUES (@PostID, @Author, @Title, @Mail, @URL, @Content, @Reply, @IsTB, @Publish, @Verify)", pars);
     conn.ExecuteNonQuery("UPDATE [Post] SET [PostCount] = [PostCount] + 1 WHERE [ID] = @PostID", pars);
     id = Convert.ToInt32(conn.ExecuteNewField("[Comment]", null, null));
     return id;
 }
示例#4
0
 /// <summary>
 /// 获取评论
 /// </summary>
 /// <param name="cmtId">评论编号</param>
 /// <returns>返回评论数据</returns>
 public CommentItem GetComment(int cmtId)
 {
     CommentItem item = new CommentItem();
     int rows = 0;
     using (IDataReader reader = conn.ExecutePager("[Comment]", "[ID], [PostID], [Author], [Title], [Mail], [URL], [Content], [Reply], [IsTB], [Publish], [Verify]", string.Format("[ID] = {0}", cmtId), null, null, 1, 1, ref rows))
     {
         while (reader.Read())
         {
             item.ID = reader.GetInt32(0);
             item.PostID = reader.GetInt32(1);
             item.Author = reader.GetString(2);
             item.Title = reader.GetString(3);
             item.Mail = reader.GetString(4);
             item.URL = reader.GetString(5);
             item.Content = reader.GetString(6);
             item.Reply = reader.GetString(7);
             item.Trackback = reader.GetInt32(8) == 0 ? false : true;
             item.Publish = reader.GetDateTime(9);
             item.Verify = reader.GetInt32(10) == 0 ? false : true;
         }
     }
     return item;
 }
 /// <summary>
 /// 提交页面窗体
 /// </summary>
 /// <returns>返回发布页面控件代码</returns>
 public string Post()
 {
     StringBuilder sr = new StringBuilder();
     int id = SiteFun.ToInt(SiteFun.Query("id"));
     CommentData cmtData = new CommentData(conn);
     CommentItem old = cmtData.GetComment(id);
     PostItem postItem = new PostData(conn).GetPost(old.PostID);
     if (SiteFun.IsPost)
     {
         bool sendMail = false;
         if (SiteFun.ToInt(SiteFun.Post("sendMail")) != 0) { sendMail = true; }
         CommentItem postVal = new CommentItem();
         postVal.ID = id;
         postVal.PostID = postItem.ID;
         postVal.Author = old.Author;
         postVal.Mail = old.Mail;
         postVal.URL = old.URL;
         postVal.Title = old.Title;
         postVal.Content = old.Content;
         postVal.Reply = SiteFun.Post("reply");
         postVal.Trackback = SiteFun.ToInt(SiteFun.Post("isTb")) == 0 ? false : true;
         postVal.Publish = old.Publish;
         postVal.Verify = SiteFun.ToInt(SiteFun.Post("verify")) == 0 ? false : true;
         if (string.IsNullOrEmpty(postVal.Author)) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoAuthor"))); }
         else
         {
             if (string.IsNullOrEmpty(postVal.Mail)) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoMail"))); }
             else
             {
                 if (string.IsNullOrEmpty(postVal.Content)) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoContent"))); }
                 else
                 {
                     try
                     {
                         if (sendMail)
                         {
                             SettingBasicItem basic = new SettingData(conn).GetSetting().Basic;
                             SiteMail mail = new SiteMail();
                             mail.To = old.Mail;
                             mail.Subject = string.Format(SiteDat.GetLan("MailTitle"), basic.Name);
                             mail.From = basic.MailFrom;
                             mail.Body = string.Format("<p><b>{0}: </b>{1}</p><p><b>{2}: </b>{3}</p><p><b>{4}: </b>{5}</p>", SiteDat.GetLan("Content"), SiteFun.ClearHtml(old.Content), SiteDat.GetLan("Reply"), SiteFun.ClearHtml(postVal.Reply), SiteDat.GetLan("URL"), string.Format(SitePath.ArticleLinkFormat, basic.URL, postItem.Local));
                             mail.Host = basic.MailHost;
                             mail.Port = basic.MailPort;
                             mail.UserName = basic.MailUserID;
                             mail.Password = basic.MailPassword;
                             mail.Send();
                         }
                         sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgSaveSucc"), "?act=comment&mode=list"));
                     }
                     catch (Exception err) { sr.Append(AdminUI.ErrorBox(err.Message)); }
                     old = cmtData.GetComment(cmtData.UpdateComment(postVal));
                 }
             }
         }
         ClearCache();
     }
     //取得默认值
     sr.Append(AdminUI.AdminBoxStart(true));
     sr.Append(HtmlUI.FormStart());
     sr.Append(HtmlUI.TableStart("onCenter"));
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Author")) + HtmlUI.CreateTd(SiteFun.HtmlEncode(old.Author)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Mail")) + HtmlUI.CreateTd(SiteFun.HtmlEncode(old.Mail)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Website")) + HtmlUI.CreateTd(HtmlUI.Link(SiteFun.HtmlEncode(old.URL), old.URL, null, true)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Article")) + HtmlUI.CreateTd(SiteFun.HtmlEncode(postItem.Title)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Content")) + HtmlUI.CreateTd(SiteFun.HtmlEncode(old.Content)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Reply")) + HtmlUI.CreateTd(AdminUI.Editor("reply", SiteFun.HtmlEncode(old.Reply))));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("DateTime")) + HtmlUI.CreateTd(old.Publish));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Virtue")) + HtmlUI.CreateTd(HtmlUI.CheckBoxInput(SiteDat.GetLan("Trackback"), "isTb", 1, old.Trackback) + HtmlUI.CheckBoxInput(SiteDat.GetLan("Verify"), "verify", 1, old.Verify) + HtmlUI.CheckBoxInput(SiteDat.GetLan("MailNotice"), "sendMail", 1, false)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd(HtmlUI.SubmitButton() + HtmlUI.ResetButton()));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TableFinal());
     sr.Append(HtmlUI.FormFinal());
     sr.Append(AdminUI.AdminBoxFinal());
     return sr.ToString();
 }
示例#6
0
 /// <summary>
 /// 修改一个评论
 /// </summary>
 /// <param name="value">评论数据</param>
 /// <returns>返回被修改的评论编号</returns>
 public int UpdateComment(CommentItem value)
 {
     int id = 0;
     _DbParameter[] pars ={
                            new _DbParameter().Set("@PostID", DbType.Int32, value.PostID),
                            new _DbParameter().Set("@Author", DbType.String, value.Author),
                            new _DbParameter().Set("@Title", DbType.String, value.Title),
                            new _DbParameter().Set("@Mail", DbType.String, value.Mail),
                            new _DbParameter().Set("@URL", DbType.String, value.URL),
                            new _DbParameter().Set("@Content", DbType.String, value.Content),
                            new _DbParameter().Set("@Reply", DbType.String, value.Reply),
                            new _DbParameter().Set("@IsTB", DbType.Int32, value.Trackback ? 1 : 0),
                            new _DbParameter().Set("@Publish", DbType.String, value.Publish.ToString("yyyy-MM-dd HH:mm:ss")),
                            new _DbParameter().Set("@Verify", DbType.Int32, value.Verify ? 1 : 0),
                            new _DbParameter().Set("@ID", DbType.Int32, value.ID)
                        };
     conn.ExecuteNonQuery("UPDATE [Comment] SET [PostID] = @PostID, [Author] = @Author, [Title] = @Title, [Mail] = @Mail, [URL] = @URL, [Content] = @Content, [Reply] = @Reply, [IsTB] = @IsTB, [Publish] = @Publish, [Verify] = @Verify WHERE [ID] = @ID", pars);
     id = value.ID;
     return id;
 }
示例#7
0
 /// <summary>
 /// 筛选评论
 /// </summary>
 /// <param name="artId">大于零则筛选相关文章下的评论</param>
 /// <param name="intCurPage">当前页</param>
 /// <param name="btePerPage">每页总数</param>
 /// <param name="selAll">是否筛选所有数据</param>
 /// <returns>返回评论数据列表</returns>
 public DataList<CommentItem> SelectComment(int artId, int intCurPage, int btePerPage, bool selAll)
 {
     DataList<CommentItem> list = new DataList<CommentItem>();
     string where = string.Empty;
     if (artId > 0) { where += string.Format(" AND [PostID] = {0}", artId); }
     if (!selAll) { where += " AND [Verify] <> 0"; }
     if (!string.IsNullOrEmpty(where)) { where = "[ID] > 0" + where; }
     int rows = 0;
     using (IDataReader reader = conn.ExecutePager("[Comment]", "[ID], [PostID], [Author], [Title], [Mail], [URL], [Content], [Reply], [IsTB], [Publish], [Verify]", where, "[Publish]", "DESC", intCurPage, btePerPage, ref rows))
     {
         while (reader.Read())
         {
             CommentItem item = new CommentItem();
             item.ID = reader.GetInt32(0);
             item.PostID = reader.GetInt32(1);
             item.Author = reader.GetString(2);
             item.Title = reader.GetString(3);
             item.Mail = reader.GetString(4);
             item.URL = reader.GetString(5);
             item.Content = reader.GetString(6);
             item.Reply = reader.GetString(7);
             item.Trackback = reader.GetInt32(8) == 0 ? false : true;
             item.Publish = reader.GetDateTime(9);
             item.Verify = reader.GetInt32(10) == 0 ? false : true;
             list.Add(item);
         }
     }
     list.Number = rows;
     return list;
 }