Example #1
0
 /// <summary>
 /// 执行SQL语句
 /// </summary>
 public string SQL()
 {
     StringBuilder sr = new StringBuilder();
     string sql = SiteFun.Post("sql");
     bool reCount = SiteFun.ToInt(SiteFun.Post("reCount")) == 0 ? false : true;
     if (SiteFun.IsPost && reCount)
     {
         int count = new PostData(conn).CountPost();
         count += new ColumnData(conn).CountColumnPost();
         sr.Append(AdminUI.SuccessBox(string.Format(SiteDat.GetLan("MsgCountSucc"), count)));
     }
     //数量重计
     sr.Append(AdminUI.AdminBoxStart(true));
     sr.Append(HtmlUI.FormStart());
     sr.Append(HtmlUI.TableStart("onCenter"));
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("ReCount")));
     sr.Append(HtmlUI.CreateTd(HtmlUI.HiddenInput("reCount", 1) + HtmlUI.SubmitButton(SiteDat.GetLan("BtnCount")) + SiteDat.GetLan("IntroCount")));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TableFinal());
     sr.Append(HtmlUI.FormFinal());
     sr.Append(AdminUI.AdminBoxFinal());
     //SQL执行
     sr.Append(AdminUI.AdminBoxStart(true));
     sr.Append(HtmlUI.FormStart());
     sr.Append(HtmlUI.TableStart("onCenter"));
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh("SQL") + HtmlUI.CreateTd(HtmlUI.Textarea("sql", 20, 0, SiteFun.HtmlEncode(sql))));
     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());
     //取得默认值
     if (SiteFun.IsPost && !string.IsNullOrEmpty(sql))
     {
         try
         {
             DataSet ds = new DataBase().ExecSql(sql);
             sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgExeSqlSucc")));
             //显示执行结果
             if (ds.Tables.Count > 0)
             {
                 sr.Append(AdminUI.AdminBoxStart(true));
                 sr.Append(HtmlUI.FormStart());
                 sr.Append(HtmlUI.TableStart());
                 sr.Append(HtmlUI.TrStart());
                 for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                 {
                     sr.Append(HtmlUI.CreateTh(ds.Tables[0].Columns[i].ColumnName));
                 }
                 sr.Append(HtmlUI.TrFinal());
                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                 {
                     sr.Append(HtmlUI.TrStart());
                     for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                     {
                         sr.Append(HtmlUI.CreateTd(SiteFun.HtmlEncode(ds.Tables[0].Rows[i][j].ToString())));
                     }
                     sr.Append(HtmlUI.TrFinal());
                 }
                 sr.Append(HtmlUI.TableFinal());
                 sr.Append(HtmlUI.FormFinal());
                 sr.Append(AdminUI.AdminBoxFinal());
             }
         }
         catch (Exception err) { sr.Append(AdminUI.ErrorBox(err.Message)); }
     }
     return sr.ToString();
 }
Example #2
0
 /// <summary>
 ///  获取文章列表页完整XML内容
 /// </summary>
 /// <param name="cateId">分类编号</param>
 /// <param name="cateLocal">分类标签名</param>
 /// <param name="tag">搜索标签名</param>
 /// <param name="key">搜索关键字</param>
 /// <param name="page">当前页</param>
 /// <param name="pageSize">分页大小</param>
 /// <returns>完整XML内容</returns>
 public string OutWriteList(int cateId, string cateLocal, string tag, string key, int page, int pageSize)
 {
     SettingItem setting = this.OutSetting;
     ColumnItem cateItem = new ColumnItem();
     if (cateId > 0) { cateItem = new ColumnData(conn).GetColumn(cateId); }
     else { cateItem = new ColumnData(conn).GetColumn(cateLocal); }
     string listCacheName = string.Format(SiteCache.PostsListFormat, page, cateItem.ID, tag, key);
     if (SiteDat.GetDat(listCacheName) == null)
     {
         SiteDat.SetDat(listCacheName, new PostData(conn).SelectPost(cateItem.ID, tag, key, page, pageSize, 0, "A", false));
     }
     DataList<PostItem> artList = (DataList<PostItem>)SiteDat.GetDat(listCacheName);
     //本页XML处理
     StringBuilder xml = new StringBuilder();
     xml.AppendFormat("\t\t<tagName>{0}</tagName>\n", SiteFun.CDATA(tag));
     xml.AppendFormat("\t\t<searchKey>{0}</searchKey>\n", SiteFun.CDATA(key));
     xml.AppendFormat("\t\t<categoryName>{0}</categoryName>\n", SiteFun.CDATA(cateItem.Name));
     xml.Append("\t\t<articles>\n");
     //取得文章列表数据
     string pagerLink = string.Format(SitePath.PagerFormat, SiteCfg.Path, cateItem.ID, SiteFun.UrlEncode(tag), SiteFun.UrlEncode(key), "{0}");
     xml.AppendFormat("\t\t\t<pages>{0}</pages>\n", SiteFun.CDATA(new SitePages().Make(artList.Number, page, pageSize, pagerLink)));
     foreach (PostItem vItem in artList)
     {
         ColumnItem columnItem = new ColumnItem();
         if (SiteDat.GetDat(string.Format(SiteCache.ColumnFormat, vItem.ColumnID)) == null)
         {
             SiteDat.SetDat(string.Format(SiteCache.ColumnFormat, vItem.ColumnID), new ColumnData(conn).GetColumn(vItem.ColumnID));
         }
         columnItem = (ColumnItem)SiteDat.GetDat(string.Format(SiteCache.ColumnFormat, vItem.ColumnID));
         xml.Append("\t\t\t<item>\n");
         xml.AppendFormat("\t\t\t\t<link>{0}</link>\n", SiteFun.CDATA(string.Format(SitePath.ArticleLinkFormat, SiteCfg.Path, SiteFun.UrlEncode(vItem.Local))));
         xml.AppendFormat("\t\t\t\t<id>{0}</id>\n", vItem.ID);
         xml.AppendFormat("\t\t\t\t<title>{0}</title>\n", SiteFun.CDATA(vItem.Title));
         xml.AppendFormat("\t\t\t\t<local>{0}</local>\n", SiteFun.CDATA(vItem.Local));
         xml.AppendFormat("\t\t\t\t<tags>{0}</tags>\n", SiteFun.CDATA(vItem.Tags));
         xml.AppendFormat("\t\t\t\t<explain>{0}</explain>\n", SiteFun.CDATA(CheckPasswordContent(vItem.Password, vItem.Explain, vItem.Local, false)));
         xml.AppendFormat("\t\t\t\t<content>{0}</content>\n", SiteFun.CDATA(CheckPasswordContent(vItem.Password, vItem.Content, vItem.Local, false)));
         xml.AppendFormat("\t\t\t\t<publish>{0}</publish>\n", vItem.Publish);
         xml.AppendFormat("\t\t\t\t<author>{0}</author>\n", SiteFun.CDATA(vItem.Author));
         xml.AppendFormat("\t\t\t\t<postCount>{0}</postCount>\n", vItem.PostCount);
         xml.AppendFormat("\t\t\t\t<reader>{0}</reader>\n", vItem.Reader);
         xml.AppendFormat("\t\t\t\t<vote>{0}</vote>\n", vItem.Vote);
         xml.AppendFormat("\t\t\t\t<fine>{0}</fine>\n", vItem.Fine);
         xml.Append("\t\t\t\t<category>\n");
         xml.AppendFormat("\t\t\t\t\t<link>{0}</link>\n", SiteFun.CDATA(string.Format(SitePath.CategoryLinkFormat, SiteCfg.Path, SiteFun.UrlEncode(columnItem.Local))));
         xml.AppendFormat("\t\t\t\t\t<id>{0}</id>\n", columnItem.ID);
         xml.AppendFormat("\t\t\t\t\t<local>{0}</local>\n", SiteFun.CDATA(columnItem.Local));
         xml.AppendFormat("\t\t\t\t\t<name>{0}</name>\n", SiteFun.CDATA(columnItem.Name));
         xml.AppendFormat("\t\t\t\t\t<intro>{0}</intro>\n", SiteFun.CDATA(columnItem.Intro));
         xml.AppendFormat("\t\t\t\t\t<postCount>{0}</postCount>\n", columnItem.PostCount);
         xml.Append("\t\t\t\t</category>\n");
         xml.Append("\t\t\t</item>\n");
     }
     xml.Append("\t\t</articles>\n");
     //绑定XML并写出
     string title = string.Format("{0} - {1}", setting.Basic.Name, setting.Basic.Intro);
     if (cateItem.ID > 0) { title = string.Format("{0}: {1} - {2}", SiteDat.GetLan("Category"), cateItem.Name, setting.Basic.Name); }
     if (!string.IsNullOrEmpty(tag)) { title = string.Format("{0}: {1} - {2}", SiteDat.GetLan("Tag"), tag, setting.Basic.Name); }
     if (!string.IsNullOrEmpty(key)) { title = string.Format("{0}: {1} - {2}", SiteDat.GetLan("Search"), key, setting.Basic.Name); }
     return new _WebBaseXml(conn).OutBaseXml(title, xml.ToString());
 }
 /// <summary>
 /// 系统文章分类操作
 /// </summary>
 /// <returns>分类列表及操作表单</returns>
 public string List()
 {
     StringBuilder sr = new StringBuilder();
     DataList<ColumnItem> list = new ColumnData(conn).SelectColumn(-1, -1, true);
     if (list.Count > 0)
     {
         ColumnData cData = new ColumnData(conn);
         if (SiteFun.IsPost)
         {
             //取值
             ColumnItem postVal = new ColumnItem();
             postVal.ID = SiteFun.ToInt(SiteFun.Post("id"));
             postVal.Name = SiteFun.Post("name");
             postVal.Sorting = SiteFun.ToInt(SiteFun.Post("sorting"));
             postVal.Show = SiteFun.ToInt(SiteFun.Post("show")) == 0 ? false : true;
             postVal.Nav = SiteFun.ToInt(SiteFun.Post("nav")) == 0 ? false : true;
             //处理
             if (string.IsNullOrEmpty(postVal.Name)) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoName"))); }
             else
             {
                 if (postVal.ID > 0)
                 {
                     if (SiteFun.ToInt(SiteFun.Post("del")) == 0) { cData.UpdateColumnSome(postVal.ID, postVal.Name, postVal.Sorting, postVal.Nav, postVal.Show); sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgUpdateDat"))); }
                     else
                     {
                         PostData pData = new PostData(conn);
                         foreach (PostItem tmpPost in pData.SelectPost(postVal.ID, 1, int.MaxValue, null))
                         {
                             //删除附件
                             if (!string.IsNullOrEmpty(tmpPost.Attachments))
                             {
                                 AttachmentData attData = new AttachmentData(conn);
                                 foreach (AttachmentItem delAtt in attData.SelectAttachment(tmpPost.Attachments))
                                 {
                                     File.Delete(Path.Combine(SiteCfg.Router, delAtt.Path));
                                 }
                                 attData.DeleteAttachment(tmpPost.Attachments);
                             }
                         }
                         cData.DeleteColumn(postVal.ID);
                         sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgDelDat")));
                     }
                 }
             }
             ClearCache();
         }
         sr.Append(AdminUI.AdminBoxStart(true));
         sr.Append(HtmlUI.TableStart());
         sr.Append(HtmlUI.TrStart());
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Name")));
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Article")));
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Sorting")));
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Nav")));
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Show")));
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Delete")));
         sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Operate")));
         sr.Append(HtmlUI.TrFinal());
         int i = 1;
         foreach (ColumnItem vItem in list)
         {
             i++;
             sr.Append(HtmlUI.FormStart());
             sr.Append(HtmlUI.TrStart(i % 2 == 0 ? " cRow" : null));
             sr.Append(HtmlUI.CreateTd(HtmlUI.HiddenInput("id", vItem.ID) + HtmlUI.Input("name", 10, null, SiteFun.HtmlEncode(vItem.Name)) + HtmlUI.Link(SiteDat.GetLan("Edit"), string.Format("?act=column&amp;mode=post&amp;id={0}", vItem.ID))));
             sr.Append(HtmlUI.CreateTd(vItem.PostCount));
             sr.Append(HtmlUI.CreateTd(HtmlUI.Input("sorting", 5, null, vItem.Sorting)));
             sr.Append(HtmlUI.CreateTd(HtmlUI.CheckBoxInput("nav", 1, vItem.Nav)));
             sr.Append(HtmlUI.CreateTd(HtmlUI.CheckBoxInput("show", 1, vItem.Show)));
             sr.Append(HtmlUI.CreateTd(HtmlUI.CheckBoxInput("del", 1, false)));
             sr.Append(HtmlUI.CreateTd(HtmlUI.SubmitButton(SiteDat.GetLan("BtnSave"))));
             sr.Append(HtmlUI.TrFinal());
             sr.Append(HtmlUI.FormFinal());
         }
         sr.Append(HtmlUI.TableFinal());
         sr.Append(AdminUI.AdminBoxFinal());
     }
     else { sr.Append(Post()); }
     return sr.ToString();
 }
 /// <summary>
 /// 提交分类数据
 /// </summary>
 /// <returns>返回发布分类代码</returns>
 public string Post()
 {
     StringBuilder sr = new StringBuilder();
     int id = SiteFun.ToInt(SiteFun.Query("id"));
     string theme = new SettingData(conn).GetTheme;
     ColumnData cateData = new ColumnData(conn);
     //取得默认值
     ColumnItem old = cateData.GetColumn(id);
     if (old.ID == 0)
     {
         //默认显示
         old.Show = true;
     }
     if (SiteFun.IsPost)
     {
         ColumnItem postVal = new ColumnItem();
         postVal.ID = id;
         postVal.Name = SiteFun.Post("name");
         postVal.Local = SiteFun.Post("local");
         postVal.Target = SiteFun.Post("target");
         postVal.ListTemplate = SiteFun.Post("listTpl");
         postVal.ViewTemplate = SiteFun.Post("viewTpl");
         postVal.PageSize = SiteFun.ToInt(SiteFun.Post("pageSize"));
         postVal.Jump = SiteFun.ToInt(SiteFun.Post("jump")) == 0 ? false : true;
         postVal.JumpUrl = SiteFun.Post("jumpUrl");
         postVal.Intro = SiteFun.Post("intro");
         postVal.Sorting = SiteFun.ToInt(SiteFun.Post("sorting"));
         postVal.Nav = SiteFun.ToInt(SiteFun.Post("nav")) == 0 ? false : true;
         postVal.Show = SiteFun.ToInt(SiteFun.Post("show")) == 0 ? false : true;
         if (string.IsNullOrEmpty(postVal.Name)) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoName"))); }
         else
         {
             if (!string.IsNullOrEmpty(postVal.Local)) { postVal.Local = postVal.Local.Replace(" ", "-"); }
             if (!string.IsNullOrEmpty(postVal.Local) && (!SiteFun.IsLocal(postVal.Local) || cateData.ExistsLocal(postVal.Local, postVal.ID))) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoLocalOrExists"))); }
             else
             {
                 if (postVal.ID == 0)
                 {
                     cateData.InsertColumn(postVal);
                     sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgInsertDat"), "?act=column&mode=list"));
                 }
                 else
                 {
                     cateData.UpdateColumn(postVal);
                     sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgUpdateDat"), "?act=column&mode=list"));
                 }
             }
         }
         ClearCache();
         old = postVal;
     }
     sr.Append(AdminUI.AdminBoxStart(true));
     sr.Append(HtmlUI.FormStart());
     sr.Append(HtmlUI.TableStart("onCenter"));
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Name")) + HtmlUI.CreateTd(HtmlUI.Input("name", 20, null, SiteFun.HtmlEncode(old.Name))));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     if (Regex.IsMatch(old.Local, @"^\d+$")) { old.Local = string.Empty; }
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Local")) + HtmlUI.CreateTd(string.Format(SitePath.CategoryLinkFormat, null, HtmlUI.Input("local", 15, null, SiteFun.HtmlEncode(old.Local)))));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd(HtmlUI.CheckBoxInput(SiteDat.GetLan("Jump"), "jump", 1, old.Jump) + HtmlUI.Input("jumpUrl", 50, null, SiteFun.HtmlEncode(old.JumpUrl))));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Intro")) + HtmlUI.CreateTd(HtmlUI.Input("intro", 50, null, SiteFun.HtmlEncode(old.Intro))));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Sorting")) + HtmlUI.CreateTd(HtmlUI.Input("sorting", 5, null, old.Sorting)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Target")) + HtmlUI.CreateTd(HtmlUI.Input("target", 10, null, SiteFun.HtmlEncode(old.Target))));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("ListTpl")) + HtmlUI.CreateTd(string.Format(SitePath.ThemePathFormat, theme, HtmlUI.Input("listTpl", 15, null, SiteFun.HtmlEncode(old.ListTemplate)))));
     sr.Append(HtmlUI.TrFinal());
     if (!string.IsNullOrEmpty(old.ListTemplate) && !File.Exists(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, theme, old.ListTemplate))))
     {
         sr.Append(HtmlUI.TrStart());
         sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd(string.Format(SiteDat.GetLan("MsgFileNotExistsFormat"), old.ListTemplate)));
         sr.Append(HtmlUI.TrFinal());
     }
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("ViewTpl")) + HtmlUI.CreateTd(string.Format(SitePath.ThemePathFormat, theme, HtmlUI.Input("viewTpl", 15, null, SiteFun.HtmlEncode(old.ViewTemplate)))));
     sr.Append(HtmlUI.TrFinal());
     if (!string.IsNullOrEmpty(old.ViewTemplate) && !File.Exists(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, theme, old.ViewTemplate))))
     {
         sr.Append(HtmlUI.TrStart());
         sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd(string.Format(SiteDat.GetLan("MsgFileNotExistsFormat"), old.ViewTemplate)));
         sr.Append(HtmlUI.TrFinal());
     }
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("PageSize")) + HtmlUI.CreateTd(HtmlUI.Input("pageSize", 5, null, old.PageSize)));
     sr.Append(HtmlUI.TrFinal());
     sr.Append(HtmlUI.TrStart());
     sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Virtue")) + HtmlUI.CreateTd(HtmlUI.CheckBoxInput(SiteDat.GetLan("Nav"), "nav", 1, old.Nav) + HtmlUI.CheckBoxInput(SiteDat.GetLan("Show"), "show", 1, old.Show)));
     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();
 }
 /// <summary>
 /// 显示内容
 /// </summary>
 /// <param name="sender">基类对象</param>
 /// <param name="e">事件对象</param>
 protected void Page_Load(object sender, EventArgs e)
 {
     using (_DbHelper conn = new _DbHelper(SiteCfg.Conn))
     {
         conn.Open();
         conn.BeginTransaction();
         try
         {
             XsltTemplate tpl = new XsltTemplate(conn);
             //初始化全局页面类库
             _WebBase wb = new _WebBase();
             wb.InitConn();
             //开始执行
             switch (SiteFun.Query("act"))
             {
                 case "page":
                     {
                         int id = SiteFun.ToInt(SiteFun.Query("id"));
                         string local = SiteFun.Query("local");
                         WebPage webPg = new WebPage(conn);
                         tpl.LoadXslt(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webPg.OutTheme, "Page.View")));
                         tpl.BindXml(webPg.OutWrite(id, local));
                         break;
                     }
                 case "tags":
                     {
                         WebTags webTags = new WebTags(conn);
                         tpl.LoadXslt(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webTags.OutTheme, "Tag.List")));
                         tpl.BindXml(webTags.OutWrite());
                         break;
                     }
                 case "fellows":
                     {
                         WebFellows webFlw = new WebFellows(conn);
                         tpl.LoadXslt(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webFlw.OutTheme, "Fellow.List")));
                         tpl.BindXml(webFlw.OutWrite());
                         break;
                     }
                 case "expand":
                     {
                         foreach (object type in new SiteExpand().GetTypes(typeof(IWebExpand).FullName))
                         {
                             IWebExpand iae = ((IWebExpand)type);
                             if (iae.Key == SiteFun.Query("key"))
                             {
                                 StringBuilder xml = new StringBuilder();
                                 xml.Append("\t\t<expand>\n");
                                 xml.AppendFormat("\t\t\t<css>{0}</css>\n", SiteFun.CDATA(iae.Css));
                                 xml.AppendFormat("\t\t\t<html>{0}</html>\n", SiteFun.CDATA(iae.OutHtml()));
                                 xml.Append("\t\t</expand>\n");
                                 tpl.LoadXslt(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, iae.OutTheme, "Expand.View")));
                                 tpl.BindXml(new _WebBaseXml(conn).OutBaseXml(iae.Name, xml.ToString()));
                                 break;
                             }
                         }
                         break;
                     }
                 default:
                     {
                         WebArticle webArt = new WebArticle(conn);
                         switch (SiteFun.Query("mode"))
                         {
                             case "view":
                                 {
                                     int id = SiteFun.ToInt(SiteFun.Query("id"));
                                     string local = SiteFun.Query("local");
                                     string pwd = SiteFun.Post("pwd");
                                     int page = SiteFun.ToInt(SiteFun.Query("page"));
                                     int pageSize = webArt.OutSetting.Parameter.CommentNum;
                                     string tplFile = "Article.View";
                                     PostItem postItem = new PostData(conn).GetPost(id);
                                     ColumnItem columnItem = new ColumnData(conn).GetColumn(postItem.ColumnID);
                                     if (postItem.ID == 0) { postItem = new PostData(conn).GetPost(local); }
                                     if (!string.IsNullOrEmpty(columnItem.ViewTemplate) && File.Exists(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webArt.OutTheme, columnItem.ViewTemplate)))) { tplFile = columnItem.ViewTemplate; }
                                     tpl.LoadXslt(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webArt.OutTheme, tplFile)));
                                     tpl.BindXml(webArt.OutWriteView(id, local, pwd, page, pageSize));
                                     break;
                                 }
                             default:
                                 {
                                     int cid = SiteFun.ToInt(SiteFun.Query("cid"));
                                     string clocal = SiteFun.Query("clocal");
                                     string tag = SiteFun.Query("tag");
                                     string key = SiteFun.Query("key");
                                     int page = SiteFun.ToInt(SiteFun.Query("page"));
                                     int pageSize = webArt.OutSetting.Parameter.ArticleNum;
                                     string tplFile = "Article.List";
                                     //开始处理
                                     ColumnItem column = new ColumnData(conn).GetColumn(cid);
                                     if (column.ID == 0) { column = new ColumnData(conn).GetColumn(clocal); }
                                     if (column.ID == 0 && string.IsNullOrEmpty(tag) && string.IsNullOrEmpty(key) && page == 0 && File.Exists(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webArt.OutTheme, "Index")))) { tplFile = "Index"; }
                                     else
                                     {
                                         if (column.ID > 0)
                                         {
                                             if (!string.IsNullOrEmpty(column.ListTemplate) && File.Exists(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webArt.OutTheme, column.ListTemplate)))) { tplFile = column.ListTemplate; }
                                             if (column.PageSize > 0) { pageSize = column.PageSize; }
                                         }
                                     }
                                     tpl.LoadXslt(Path.Combine(SiteCfg.Router, string.Format(SitePath.ThemePathFormat, webArt.OutTheme, tplFile)));
                                     tpl.BindXml(webArt.OutWriteList(cid, clocal, tag, key, page, pageSize));
                                     break;
                                 }
                         }
                         break;
                     }
             }
             if (conn.ExecuteCount > 0) { conn.Commit(); }
             tpl.Print();
         }
         catch (Exception err)
         {
             if (conn.ExecuteCount > 0) { conn.Rollback(); }
             IMyError exeError = new MyError();
             foreach (IMyError myError in new SiteExpand().GetTypes(typeof(IMyError).FullName))
             {
                 exeError = myError;
                 break;
             }
             exeError.PrintError(err);
         }
         conn.Close();
     }
 }
Example #6
0
        /// <summary>
        /// 取得文章列表窗体
        /// </summary>
        /// <param name="mode">模式:A-文章,P-单页</param>
        /// <returns>返回文章列表代码</returns>
        public string List(string mode)
        {
            StringBuilder sr = new StringBuilder();
            int cid = SiteFun.ToInt(SiteFun.Query("cid"));
            string key = SiteFun.Query("key");
            //下面三行是分页设置
            int page = SiteFun.ToInt(SiteFun.Query("page"));
            if (page < 1) { page = 1; }
            int pageSize = 20;
            PostData pData = new PostData(conn);
            DataList<PostItem> list = pData.SelectPost(cid, null, key, page, pageSize, 0, mode, true);
            if (list.Count > 0)
            {
                if (mode == "A" || mode == "P")
                {
                    bool isArticle = mode == "A";
                    if (SiteFun.IsPost)
                    {
                        int id = SiteFun.ToInt(SiteFun.Post("id"));
                        bool del = SiteFun.ToInt(SiteFun.Post("del")) == 0 ? false : true;
                        if (del)
                        {
                            PostItem tmpPost = pData.GetPost(id);
                            //删除附件
                            if (!string.IsNullOrEmpty(tmpPost.Attachments))
                            {
                                AttachmentData attData = new AttachmentData(conn);
                                foreach (AttachmentItem delAtt in attData.SelectAttachment(tmpPost.Attachments))
                                {
                                    File.Delete(Path.Combine(SiteCfg.Router, delAtt.Path));
                                }
                                attData.DeleteAttachment(tmpPost.Attachments);
                            }
                            pData.DeletePost(id);
                            sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgArtDelSucc")));
                        }
                        else
                        {
                            bool fine = SiteFun.ToInt(SiteFun.Post("fine")) == 0 ? false : true;
                            bool show = SiteFun.ToInt(SiteFun.Post("show")) == 0 ? false : true;
                            pData.UpdatePostFineAndShow(id, fine, show);
                            sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgUpdateDat")));
                        }
                        ClearCache();
                    }
                    if (isArticle)
                    {
                        //设置分类数据
                        DataList<ColumnItem> cateList = new ColumnData(conn).SelectColumn(-1, 0, false);
                        ArrayList values = new ArrayList();
                        ArrayList captions = new ArrayList();
                        values.Add(0);
                        captions.Add("--" + SiteDat.GetLan("Category") + "--");
                        for (int j = 0; j < cateList.Count; j++)
                        {
                            values.Add(cateList[j].ID);
                            captions.Add(cateList[j].Name);
                        }
                        //搜索
                        sr.Append(AdminUI.AdminBoxStart(true));
                        sr.Append(HtmlUI.FormStart(false, null, false));
                        sr.Append(HtmlUI.TableStart("onCenter"));
                        sr.Append(HtmlUI.TrStart());
                        sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Search") + HtmlUI.HiddenInput("act", "post") + HtmlUI.HiddenInput("mode", "list") + HtmlUI.HiddenInput("m", mode)));
                        sr.Append(HtmlUI.CreateTd(HtmlUI.CreateSelect("cid", values, captions, cid) + HtmlUI.Input("key", 30, null, SiteFun.HtmlEncode(key)) + HtmlUI.SubmitButton(SiteDat.GetLan("Search"))));
                        sr.Append(HtmlUI.TrFinal());
                        sr.Append(HtmlUI.TableFinal());
                        sr.Append(HtmlUI.FormFinal());
                        sr.Append(AdminUI.AdminBoxFinal());
                    }

                    //正常列表
                    sr.Append(AdminUI.AdminBoxStart(true));
                    sr.Append(HtmlUI.TableStart());
                    sr.Append(HtmlUI.TrStart());
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Title")));
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Local")));
                    if (isArticle)
                    {
                        sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Category")));
                        sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Top")));
                    }
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Show")));
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Delete")));
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Operate")));
                    sr.Append(HtmlUI.TrFinal());
                    int i = 1;
                    foreach (PostItem vItem in list)
                    {
                        i++;
                        sr.Append(HtmlUI.FormStart());
                        sr.Append(HtmlUI.TrStart(i % 2 == 0 ? " cRow" : null));
                        sr.Append(HtmlUI.CreateTd(HtmlUI.Link(SiteFun.HtmlEncode(SiteFun.StrCut(vItem.Title, 50)), string.Format("?act=post&amp;mode=post&amp;m={1}&amp;id={0}", vItem.ID, mode))));
                        sr.Append(HtmlUI.CreateTd(SiteFun.HtmlEncode(SiteFun.StrCut(vItem.Local, 30))));
                        if (isArticle)
                        {
                            sr.Append(HtmlUI.CreateTd(SiteFun.HtmlEncode(new ColumnData(conn).GetColumn(vItem.ColumnID).Name)));
                            sr.Append(HtmlUI.CreateTd(HtmlUI.CheckBoxInput("fine", 1, vItem.Fine)));
                        }
                        sr.Append(HtmlUI.CreateTd(HtmlUI.CheckBoxInput("show", 1, vItem.Show)));
                        sr.Append(HtmlUI.CreateTd(HtmlUI.CheckBoxInput("del", 1, false)));
                        sr.Append(HtmlUI.CreateTd(HtmlUI.HiddenInput("id", vItem.ID) + HtmlUI.SubmitButton(SiteDat.GetLan("BtnSave"))));
                        sr.Append(HtmlUI.TrFinal());
                        sr.Append(HtmlUI.FormFinal());
                    }
                    sr.Append(HtmlUI.TrStart());
                    sr.Append(HtmlUI.CreateTd(new SitePages().Make(list.Number, page, pageSize, "?act=post&amp;mode=list&amp;cid=" + cid + "&amp;key=" + SiteFun.UrlEncode(key) + "&amp;m=" + mode + "&amp;page={0}"), (isArticle ? 7 : 5), null));
                    sr.Append(HtmlUI.TrFinal());
                    sr.Append(HtmlUI.TableFinal());
                    sr.Append(AdminUI.AdminBoxFinal());
                }
            }
            else { sr.Append(Post(mode)); }
            return sr.ToString();
        }
Example #7
0
        /// <summary>
        /// 提交文章窗体
        /// </summary>
        /// <param name="mode">模式:A-文章,P-单页</param>
        /// <returns>返回发布文章控件代码</returns>
        public string Post(string mode)
        {
            StringBuilder sr = new StringBuilder();
            if (mode == "A" || mode == "P")
            {
                bool isArticle = mode == "A";
                SettingItem setting = new SettingData(conn).GetSetting();
                string theme = new SettingData(conn).GetTheme;
                string tmpFilePath = Path.Combine(SiteCfg.Router, "Common/Temp/post_cache.tmp");
                int id = SiteFun.ToInt(SiteFun.Query("id"));
                PostData artData = new PostData(conn);
                ColumnData cData = new ColumnData(conn);
                TagData tagData = new TagData(conn);
                //取得默认值
                string[] myUserInfo = _ac.Get();
                UserItem myUser = new UserData(conn).CheckUser(myUserInfo[0], SiteFun.Encryption(myUserInfo[1]), true);
                PostItem old = artData.GetPost(id);
                ColumnItem oldColumn = new ColumnData(conn).GetColumn(old.ColumnID);
                if (old.ID == 0)
                {
                    //默认显示、可评论并自动审核,可发通告
                    old.Show = true;
                    old.SwitchComment = true;
                    old.AutoVerifyComment = true;
                    old.SwitchTrackback = true;
                }
                if (string.IsNullOrEmpty(old.Author)) { old.Author = myUser.Name; }
                if (SiteFun.IsPost)
                {
                    //处理文章数据
                    PostItem postVal = new PostItem();
                    string content = SiteFun.HtmlMatch(SiteFun.Post("content"));
                    string explain = content;
                    if (!string.IsNullOrEmpty(explain))
                    {
                        explain = Regex.Replace(explain, SiteCfg.PageBreakRegular, SiteCfg.PageBreakSymbol, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                        if (explain.IndexOf(SiteCfg.PageBreakSymbol) > 0)
                        {
                            explain = explain.Substring(0, explain.IndexOf(SiteCfg.PageBreakSymbol));
                            explain = SiteFun.HtmlMatch(explain);
                        }
                        explain = explain.Replace(SiteCfg.PageBreakSymbol, string.Empty);
                    }
                    postVal.ID = id;
                    postVal.ColumnID = SiteFun.ToInt(SiteFun.Post("cid"));
                    postVal.Title = SiteFun.Post("title");
                    postVal.Tags = SiteFun.Post("tags");
                    postVal.Local = SiteFun.Post("local");
                    postVal.Explain = explain;
                    postVal.Content = content;
                    postVal.Author = SiteFun.Post("author");
                    postVal.Publish = SiteFun.ToDate(SiteFun.Post("publish"));
                    postVal.Password = SiteFun.Post("pwd");
                    postVal.Vote = SiteFun.ToInt(SiteFun.Post("vote"));
                    postVal.Reader = SiteFun.ToInt(SiteFun.Post("reader"));
                    postVal.Fine = SiteFun.ToInt(SiteFun.Post("fine")) == 0 ? false : true;
                    postVal.Show = SiteFun.ToInt(SiteFun.Post("show")) == 0 ? false : true;
                    postVal.PostCount = old.PostCount;
                    postVal.SwitchComment = SiteFun.ToInt(SiteFun.Post("switchCmt")) == 0 ? false : true;
                    postVal.SwitchTrackback = SiteFun.ToInt(SiteFun.Post("switchTb")) == 0 ? false : true;
                    postVal.AutoVerifyComment = SiteFun.ToInt(SiteFun.Post("avcmt")) == 0 ? false : true;
                    postVal.AutoVerifyTrackback = SiteFun.ToInt(SiteFun.Post("avtb")) == 0 ? false : true;
                    postVal.Attachments = old.Attachments;
                    //分类
                    ColumnItem postColumn = new ColumnData(conn).GetColumn(postVal.ColumnID);
                    if (string.IsNullOrEmpty(postVal.Title)) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoTitle"))); }
                    else
                    {
                        if (!string.IsNullOrEmpty(postVal.Local)) { postVal.Local = postVal.Local.Replace(" ", "-"); }
                        if (!string.IsNullOrEmpty(postVal.Local) && (!SiteFun.IsLocal(postVal.Local) || artData.ExistsLocal(postVal.Local, postVal.ID))) { sr.Append(AdminUI.ErrorBox(SiteDat.GetLan("MsgNoLocalOrExists"))); }
                        else
                        {
                            //处理上传图片的内容循环替换
                            if (!string.IsNullOrEmpty(postVal.Content))
                            {
                                string[] tmpFilesHandle = { postVal.Content, postVal.Explain };
                                string atts = new _AdminUpload(conn).SaveAs(HttpContext.Current.Request.Files, ref tmpFilesHandle[0], ref tmpFilesHandle[1], SiteFun.ToInt(SiteFun.Post("ws")), Path.Combine(SiteCfg.Router, setting.Parameter.WatermarkPath));
                                postVal.Content = tmpFilesHandle[0];
                                postVal.Explain = tmpFilesHandle[1];
                                if (!string.IsNullOrEmpty(atts))
                                {
                                    if (string.IsNullOrEmpty(postVal.Attachments)) { postVal.Attachments = atts; }
                                    else { postVal.Attachments += "," + atts; }
                                }
                            }
                            //保存或新增文章数据处理
                            if (postVal.ID == 0)
                            {
                                artData.InsertPost(postVal, mode);
                                //标签处理
                                tagData.InsertTagList(postVal.Tags);
                                //分类统计
                                //cData.CountCategoryPost(postVal.Category.ID);
                                sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgArtInsertSucc"), "?act=post&mode=list&M=" + mode));
                            }
                            else
                            {
                                artData.UpdatePost(postVal);
                                //标签处理
                                tagData.InsertTagList(postVal.Tags);
                                //类统计
                                cData.CountColumnPost(oldColumn.ID);
                                cData.CountColumnPost(postColumn.ID);
                                //更新修改后的显示
                                sr.Append(AdminUI.SuccessBox(SiteDat.GetLan("MsgArtUpdateSucc"), "?act=post&mode=list&M=" + mode));
                            }
                            try { File.Delete(tmpFilePath); }
                            catch { }
                        }
                    }
                    //处理引用通告
                    TrackbackLogData tbld = new TrackbackLogData(conn);
                    SettingBasicItem sbi = setting.Basic;
                    string tbUrls = SiteFun.Post("tbUrls");
                    if (!string.IsNullOrEmpty(tbUrls))
                    {
                        foreach (string vItem in tbUrls.Split('\n'))
                        {
                            if (!string.IsNullOrEmpty(vItem))
                            {
                                string[] tbState = new SiteTrackback().SendTrackback(vItem, string.Format(SitePath.ArticleLinkFormat, sbi.URL + SiteCfg.Path, postVal.Local), sbi.Name, postVal.Title, SiteFun.ClearHtml(postVal.Explain)).Split('|');
                                TrackbackLogItem tbVal = new TrackbackLogItem();
                                tbVal.Error = SiteFun.ToInt(tbState[0]) == 0 ? false : true;
                                tbVal.Message = tbState[1];
                                tbVal.URL = vItem;
                                tbld.InsertTrackbackLog(tbVal);
                            }
                        }
                    }
                    ClearCache();
                    old = postVal;
                }
                //设置分类数据
                DataList<ColumnItem> cateList = cData.SelectColumn(-1, 0, true);
                ArrayList values = new ArrayList();
                ArrayList captions = new ArrayList();
                for (int i = 0; i < cateList.Count; i++)
                {
                    values.Add(cateList[i].ID);
                    captions.Add(cateList[i].Name);
                }
                sr.Append(AdminUI.AdminBoxStart(true));
                sr.Append(HtmlUI.FormStart(null, true));

                sr.Append(HtmlUI.TableStart("onCenter advancedBox"));
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Title")) + HtmlUI.CreateTd(HtmlUI.Input("title", 50, null, SiteFun.HtmlEncode(old.Title)) + (isArticle ? HtmlUI.CreateSelect("cid", values, captions, oldColumn.ID) : string.Empty)));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                if (Regex.IsMatch(old.Local, @"^\d+$")) { old.Local = string.Empty; }
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Local")) + HtmlUI.CreateTd(string.Format((isArticle ? SitePath.ArticleLinkFormat : SitePath.PageLinkFormat), null, HtmlUI.Input("local", 30, null, SiteFun.HtmlEncode(old.Local)))));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Content")) + HtmlUI.CreateTd(AdminUI.Editor("content", SiteFun.HtmlEncode(old.Content))));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd((File.Exists(tmpFilePath) ? "<a id=\"reInsertContent\">" + SiteDat.GetLan("MsgClickArtReload") + "</a>" : string.Empty) + string.Format(SiteDat.GetLan("MsgArtAutoSaveState"), "<span id=\"autoSaveCountdown\">--</span>", "<a id=\"autoSaveButton\">--</a>", "<span id=\"autoSaveIs\"></span>")));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Attach") + ", <a id=\"addFilesA\">" + SiteDat.GetLan("Add") + "</a>") + HtmlUI.CreateTd(string.Format("<span id=\"filesMainBox\">{0}</span><a id=\"filesMainInsertA\">{1}</a><div id=\"filesAttBox\"></div>", HtmlUI.FileInput(null, "files"), SiteDat.GetLan("Insert"))));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TableFinal());

                sr.Append(HtmlUI.TableStart("onCenter hidden advancedBox"));
                string attsHtml = string.Empty;
                DataList<AttachmentItem> attachments = new AttachmentData(conn).SelectAttachment(old.Attachments);
                foreach (AttachmentItem att in attachments)
                {
                    attsHtml += HtmlUI.Link(att.Name, att.Path, att.Type, true) + string.Format(", {0}, {1}, {2}<br/>", att.Publish, att.Size, att.Type);
                }
                if (attachments.Count > 0)
                {
                    sr.Append(HtmlUI.TrStart());
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Attach")) + HtmlUI.CreateTd(attsHtml));
                    sr.Append(HtmlUI.TrFinal());
                }
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Tag")) + HtmlUI.CreateTd(HtmlUI.Input("tags", "tags", 50, null, SiteFun.HtmlEncode(old.Tags))));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd(HtmlUI.Button("getInputTags", SiteDat.GetLan("BtnTagsNow")) + "<div id=\"getInputTagsDsp\"></div>"));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Author")) + HtmlUI.CreateTd(HtmlUI.Input("author", 10, null, SiteFun.HtmlEncode(old.Author))));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Time")) + HtmlUI.CreateTd(HtmlUI.Input("timeInput", "publish", 20, null, old.Publish) + HtmlUI.Button("updateTime", SiteDat.GetLan("BtnUpdateTime"))));
                sr.Append(HtmlUI.TrFinal());
                if (isArticle)
                {
                    sr.Append(HtmlUI.TrStart());
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Pwd")) + HtmlUI.CreateTd(HtmlUI.Input("pwd", 30, null, old.Password)));
                    sr.Append(HtmlUI.TrFinal());
                }
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("VoteNum")) + HtmlUI.CreateTd(HtmlUI.Input("vote", 5, null, old.Vote)));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Reader")) + HtmlUI.CreateTd(HtmlUI.Input("reader", 5, null, old.Reader)));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Virtue")) + HtmlUI.CreateTd((isArticle ? HtmlUI.CheckBoxInput(SiteDat.GetLan("Top"), "fine", 1, old.Fine) : string.Empty) + HtmlUI.CheckBoxInput(SiteDat.GetLan("Show"), "show", 1, old.Show)));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                ArrayList wmValues = new ArrayList();
                ArrayList caps = new ArrayList();
                for (int wmI = 0; wmI <= 9; wmI++) { wmValues.Add(wmI); }
                caps.Add("--" + SiteDat.GetLan("WmPosition") + "--");
                caps.Add(SiteDat.GetLan("PTopLeft"));
                caps.Add(SiteDat.GetLan("PTopCen"));
                caps.Add(SiteDat.GetLan("PTopRight"));
                caps.Add(SiteDat.GetLan("PMdlLeft"));
                caps.Add(SiteDat.GetLan("PMdlCen"));
                caps.Add(SiteDat.GetLan("PMdlRight"));
                caps.Add(SiteDat.GetLan("PBtmLeft"));
                caps.Add(SiteDat.GetLan("PBtmCen"));
                caps.Add(SiteDat.GetLan("PBtmRight"));
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Switch")) + HtmlUI.CreateTd(HtmlUI.CheckBoxInput(SiteDat.GetLan("InsertCmt"), "switchCmt", 1, old.SwitchComment) + HtmlUI.CheckBoxInput(SiteDat.GetLan("InsertTb"), "switchTb", 1, old.SwitchTrackback) + HtmlUI.CreateSelect("ws", wmValues, caps, setting.Parameter.WatermarkSeat)));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("AutoVerify")) + HtmlUI.CreateTd(HtmlUI.CheckBoxInput(SiteDat.GetLan("VerifyCmt"), "avcmt", 1, old.AutoVerifyComment) + HtmlUI.CheckBoxInput(SiteDat.GetLan("VerifyTb"), "avtb", 1, old.AutoVerifyTrackback)));
                sr.Append(HtmlUI.TrFinal());
                if (isArticle)
                {
                    sr.Append(HtmlUI.TrStart());
                    sr.Append(HtmlUI.CreateTh(SiteDat.GetLan("Trackback")) + HtmlUI.CreateTd(HtmlUI.Textarea("tbUrls", 5, 80, null)));
                    sr.Append(HtmlUI.TrFinal());
                }
                sr.Append(HtmlUI.TableFinal());

                sr.Append(HtmlUI.TableStart("onCenter"));
                sr.Append(HtmlUI.TrStart());
                sr.Append(HtmlUI.CreateTh() + HtmlUI.CreateTd(HtmlUI.SubmitButton() + HtmlUI.ResetButton() + HtmlUI.Button("advancedLink", SiteDat.GetLan("BtnAdvanced"))));
                sr.Append(HtmlUI.TrFinal());
                sr.Append(HtmlUI.TableFinal());

                sr.Append(HtmlUI.FormFinal());
                sr.Append(AdminUI.AdminBoxFinal());
            }
            return sr.ToString();
        }