/// <summary> /// search文档列表 /// </summary> public void Search_GET() { HttpRequest request = HttpContext.Current.Request; const int __pageSize = 10; object data; //返回的数据 int pageSize, pageIndex, recordCount, pages; string _keyword = request["keyword"], _pageIndex = request["page"] ?? "1", _pageSize = request["size"]; if (String.IsNullOrEmpty(_keyword)) { data = new { keyword = _keyword ?? "", headerText = "", archiveListHtml = "", pagerHtml = "" }; } else { StringBuilder sb = new StringBuilder(); string pagerHtml, //分页链接 tableHeaderText, //表头字段 archiveListHtml; //文档列表HTML //获取表头 bool isMaster = (UserGroups)UserState.Administrator.Current.GroupID == UserGroups.Master; tableHeaderText = isMaster ? "<th>发布人</th>" : String.Empty; //处理页码大小并保存 if (!Regex.IsMatch(_pageIndex, "^(?!0)\\d+$")) { pageIndex = 1; //If pageindex start with zero or lower } else { pageIndex = int.Parse(_pageIndex); } if (String.IsNullOrEmpty(_pageSize)) { int.TryParse(HttpContext.Current.Session["archivelist_pagesize"] as string, out pageSize); } else { int.TryParse(_pageSize, out pageSize); HttpContext.Current.Session["archivelist_pagesize"] = pageSize; } if (pageSize == 0) { pageSize = __pageSize; } //文档数据表,并生成Html DataTable dt = null;// CmsLogic.Archive.Search(this.CurrentSite.SiteId, _keyword, pageSize, pageIndex, out recordCount, out pages, null); IDictionary <string, bool> flagsDict; bool isSpecial, isSystem, isVisible, isPage; foreach (DataRow dr in dt.Rows) { flagsDict = ArchiveFlag.GetFlagsDict(dr["flags"].ToString()); isSpecial = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)]; isSystem = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)]; isVisible = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)]; isPage = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)]; //编号 sb.Append("<tr><td align=\"center\">").Append(dr["id"].ToString()).Append("</td>"); //标题 sb.Append("<td").Append(isSpecial ? " class=\"special\">" : ">").Append(dr["title"].ToString()).Append("</td>"); //管理员可以查看发布人 if (isMaster) { sb.Append("<td><a href=\"?module=archive&action=list&moduleID=&author=") .Append(dr["author"].ToString()).Append("\" title=\"查看该用户发布的文档\">").Append(dr["Author"].ToString()).Append("</a></td>"); } sb.Append("<td>").Append(String.Format("{0:yyyy/MM/dd HH:mm}", Convert.ToDateTime(dr["CreateDate"]))).Append("</td><td align=\"center\">") .Append(dr["ViewCount"].ToString()).Append("</td><td><button class=\"refresh\" /></td><td><button class=\"file\" /></td><td><button class=\"edit\" /></td><td><button class=\"delete\" /></td></tr>"); } archiveListHtml = sb.ToString(); string format = String.Format("?module=archive&action=search&keyword={1}&page={0}&size={2}", "{0}", HttpUtility.UrlEncode(_keyword), pageSize); //pagerHtml = Helper.BuildPagerInfo(format, pageIndex, recordCount, pages); data = new { keyword = _keyword ?? "", headerText = tableHeaderText, archiveListHtml = archiveListHtml, // pagerHtml = pagerHtml }; } base.RenderTemplate(ResourceMap.SearchArchiveList, data); }
/// <summary> /// 更新文档 /// </summary> public void Update_GET() { object data; int archiveId = int.Parse(base.Request["archive.id"]); string tpls, nodesHtml, //栏目JSON extendFieldsHtml = "", //属性Html extendItemsHtml = ""; Module module; int siteId = this.CurrentSite.SiteId; ArchiveDto archive = ServiceCall.Instance.ArchiveService.GetArchiveById(siteId, archiveId); int categoryId = archive.Category.ID; #region 旧的 //获取上次发布的栏目 //Category category = CmsLogic.Category.Get(a => a.ID == archive.Category.ID); //if (base.CompareSite(category.SiteId)) return; //bool categoryIsNull = category == null; /* * if (!categoryIsNull) * { * * module = CmsLogic.Module.GetModule(category.ModuleID); * * //============= 拼接模块的属性值 ==============// * * StringBuilder sb = new StringBuilder(50); * IList<DataExtend> extends = null;// new List<DataExtend>(CmsLogic.DataExtend.GetExtendsByModule(module)); * * if (extends.Count > 0) * { * * //========= 统计tab =============// * sb.Append("<ul class=\"dataExtend_tabs\">"); * foreach (DataExtend e in extends) * { * sb.Append("<li><span>").Append(e.Name).Append("</span></li>"); * } * sb.Append("</ul>"); * * extendItemsHtml = sb.ToString(); * * sb.Capacity = 1000; * sb.Remove(0, sb.Length); * * * //======== 生成值 =============// * * IEnumerable<DataExtendAttr> attrs; * IDictionary<string, string> extendFields = null;// CmsLogic.DataExtend.GetExtendFiledDictionary(archive.ID); * string attrValue; * * foreach (DataExtend e in extends) * { * sb.Append("<div class=\"dataextend_item\">"); * * attrs = CmsLogic.DataExtend.GetExtendAttrs(e.ID); * * foreach (DataExtendAttr p in attrs) * { * * * attrValue = extendFields.ContainsKey(p.AttrName) ? extendFields[p.AttrName] : p.AttrVal; * * sb.Append("<dl><dt>").Append(p.AttrName).Append(":</dt><dd>"); * * if (p.AttrType == ((int)PropertyUI.Text).ToString()) * { * sb.Append("<input type=\"text\" class=\"tb_normal\" name=\"extend_").Append(p.ID.ToString()) * .Append("\" value=\"").Append(attrValue).Append("\"/>"); * } * else if (p.AttrType == ((int)PropertyUI.Upload).ToString()) * { * sb.Append("<input type=\"text\" disabled=\"disabled\" class=\"tb_normal\" id=\"extend_").Append(p.ID.ToString()).Append("\" name=\"extend_").Append(p.ID.ToString()) * .Append("\" value=\"").Append(attrValue).Append("\"/><span id=\"upload_") * .Append(p.ID.ToString()).Append("\">选择文件</span>") * .Append("<script type=\"text/javascript\">cms.propertyUpload(") * .Append("'upload_").Append(p.ID.ToString()).Append("','extend_").Append(p.ID.ToString()).Append("');</script>"); * } * * * sb.Append("</dd></dl>"); * * //<p><span class="txt">标签:</span> * // <span class="input"><input type="text" name="tags" size="30"/></span> * // <span class="msg"></span></p> * * } * * * sb.Append("</div>"); * } * * extendFieldsHtml = sb.ToString(); * } * * // extendFieldsHtml = "<div style=\"color:red;padding:20px;\">所选栏目模块不包含任何自定义属性,如需添加请到模块管理-》属性设置</div>"; * * } */ #endregion //============= 拼接模块的属性值 ==============// StringBuilder sb = new StringBuilder(50); string attrValue; IExtendField field; sb.Append("<div class=\"dataextend_item\">"); foreach (IExtendValue extValue in archive.ExtendValues) { field = extValue.Field; attrValue = extValue.Value ?? field.DefaultValue; sb.Append("<dl><dt>").Append(field.Name).Append(":</dt><dd>"); if (field.Type == ((int)PropertyUI.Text).ToString()) { sb.Append("<input type=\"text\" class=\"tb_normal\" field=\"extend_").Append(field.ID.ToString()) .Append("\" value=\"").Append(attrValue).Append("\"/>"); } else if (field.Type == ((int)PropertyUI.Upload).ToString()) { sb.Append("<input type=\"text\" disabled=\"disabled\" class=\"tb_normal\" id=\"extend_").Append(field.ID.ToString()) .Append("\" field=\"extend_").Append(field.ID.ToString()) .Append("\" value=\"").Append(attrValue).Append("\"/><span id=\"upload_") .Append(field.ID.ToString()).Append("\">选择文件</span>") .Append("<script type=\"text/javascript\">cms.propertyUpload(") .Append("'upload_").Append(field.ID.ToString()).Append("','extend_").Append(field.ID.ToString()) .Append("');</script>"); } sb.Append("</dd></dl>"); } sb.Append("</div>"); extendFieldsHtml = sb.ToString(); //获取模板视图下拉项 StringBuilder sb2 = new StringBuilder(); //模板目录 DirectoryInfo dir = new DirectoryInfo( String.Format("{0}templates/{1}", AppDomain.CurrentDomain.BaseDirectory, Settings.TPL_MultMode ? "" : base.CurrentSite.Tpl + "/" )); EachClass.EachTemplatePage(dir, sb2, TemplatePageType.Custom, TemplatePageType.Archive ); tpls = sb2.ToString(); sb2.Remove(0, sb2.Length); ServiceCall.Instance.SiteService.HandleCategoryTree(this.SiteId, 1, (_category, level) => { sb2.Append("<option value=\"").Append(_category.ID.ToString()).Append("\""); //if (_category.ModuleID != category.ModuleID) //{ // sb2.Append(" disabled=\"disabled\" class=\"disabled\""); //} sb2.Append(_category.ID == categoryId ? " selected=\"selected\"" : "").Append(">"); for (int i = 0; i < level; i++) { sb2.Append(CmsCharMap.Dot); } sb2.Append(_category.Name).Append("</option>"); }); nodesHtml = sb2.ToString(); //标签 Dictionary <string, bool> flags = ArchiveFlag.GetFlagsDict(archive.Flags); string thumbnail = !String.IsNullOrEmpty(archive.Thumbnail) ? archive.Thumbnail : "/" + CmsVariables.FRAMEWORK_ARCHIVE_NoPhoto; object json = new { IsSpecial = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)], IsSystem = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)], IsNotVisible = !(flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)]), AsPage = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)], Id = archive.Id, Title = archive.Title, Alias = archive.Alias ?? String.Empty, Tags = archive.Tags, Source = archive.Source, Outline = archive.Outline, Content = archive.Content, TemplatePath = archive.IsSelfTemplate && !String.IsNullOrEmpty(archive.TemplatePath) ? archive.TemplatePath : String.Empty, Thumbnail = thumbnail }; data = new { extendFieldsHtml = extendFieldsHtml, extendItemsHtml = extendItemsHtml, thumbPrefix = CmsVariables.Archive_ThumbPrefix, nodes = nodesHtml, url = Request.Url.PathAndQuery, tpls = tpls, json = JsonSerializer.Serialize(json) }; base.RenderTemplate( BasePage.CompressHtml(ResourceMap.GetPageContent(ManagementPage.Archive_Update)), data); }
/// <summary> /// 文档列表 /// </summary> public void List_GET() { HttpRequest request = HttpContext.Current.Request; const int __pageSize = 10; object data; //返回的数据 int pageSize, pageIndex, recordCount, pages; bool?visible, special, system, aspage; int?categoryID = null, moduleID = null; string _categoryId = request["category.id"], //只有这个参数为必传 _moduleId = request["moduleId"], _pageIndex = request["page"] ?? "1", _pageSize = request["size"], _author = request["author"], _visible = request["visible"], _special = request["special"], _system = request["system"], _aspage = request["aspage"]; StringBuilder sb = new StringBuilder(); string categoryOpts, //栏目Options pagerHtml, //分页链接 tableHeaderText, //表头字段 archiveListHtml; //文档列表HTML goto result; //处理页码大小并保存 if (!Regex.IsMatch(_pageIndex, "^(?!0)\\d+$")) { pageIndex = 1; //If pageindex start with zero or lower } else { pageIndex = int.Parse(_pageIndex); } if (String.IsNullOrEmpty(_pageSize)) { object o = HttpContext.Current.Session["archivelist_pagesize"]; int.TryParse(HttpContext.Current.Session["archivelist_pagesize"] as string, out pageSize); } else { int.TryParse(_pageSize, out pageSize); HttpContext.Current.Session["archivelist_pagesize"] = pageSize; } if (pageSize == 0) { pageSize = __pageSize; } //文档显示选项 #region if (String.IsNullOrEmpty(_visible)) { visible = null; } else { visible = String.Compare(_visible, String.Intern("true"), true) == 0; } if (String.IsNullOrEmpty(_special)) { special = null; } else { special = String.Compare(_special, String.Intern("true"), true) == 0; } if (String.IsNullOrEmpty(_system)) { system = null; } else { system = String.Compare(_system, String.Intern("true"), true) == 0; } if (String.IsNullOrEmpty(_aspage)) { aspage = null; } else { aspage = String.Compare(_aspage, String.Intern("true"), true) == 0; } #endregion //获取表头 bool isMaster = (UserGroups)UserState.Administrator.Current.GroupID == UserGroups.Master; tableHeaderText = isMaster ? "<th style=\"width:60px\" class=\"center\">发布人</th>" : String.Empty; //加载栏目 ServiceCall.Instance.SiteService.HandleCategoryTree(this.SiteId, 1, (category, level) => { sb.Append("<option value=\"").Append(category.ID.ToString()).Append("\">"); for (var i = 0; i < level; i++) { sb.Append("-"); } sb.Append(category.Name).Append("</option>"); }); categoryOpts = sb.ToString(); sb.Remove(0, sb.Length); string[,] flags = new string[, ] { { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem), system == null?"":(system.Value?"1":"0") }, { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial), special == null?"":(special.Value?"1":"0") }, { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible), visible == null?"":(visible.Value?"1":"0") }, { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage), aspage == null?"":(aspage.Value?"1":"0") } }; //文档数据表,并生成Html DataTable dt = ServiceCall.Instance.ArchiveService.GetPagedArchives(this.SiteId, categoryID, _author, flags, null, false, pageSize, pageIndex, out recordCount, out pages); //moduleID == null ? CmsLogic.Archive.GetPagedArchives(categoryID, _author,flags, null, false, pageSize, pageIndex, out recordCount, out pages) //: CmsLogic.Archive.GetPagedArchives((SysModuleType)(moduleID ?? 1), _author, flags,null, false, pageSize, pageIndex, out recordCount, out pages); IDictionary <string, bool> flagsDict; bool isSpecial, isSystem, isVisible, isPage; foreach (DataRow dr in dt.Rows) { flagsDict = ArchiveFlag.GetFlagsDict(dr["flags"].ToString()); isSpecial = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)]; isSystem = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)]; isVisible = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)]; isPage = flagsDict.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) && flagsDict[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)]; //编号 sb.Append("<tr indent=\"").Append(dr["id"].ToString()).Append("\"><td align=\"center\">").Append(dr["id"].ToString()).Append("</td>"); //标题 sb.Append("<td").Append(isSpecial ? " class=\"special\">" : ">").Append(dr["title"].ToString()); if (!String.IsNullOrEmpty(dr["alias"] as string)) { sb.Append(" <span style=\"color:#777\">( 别名:").Append(dr["alias"].ToString()).Append(" )</span>"); } sb.Append("</td>"); //管理员可以查看发布人 if (isMaster) { sb.Append("<td class=\"center\"><a href=\"?module=archive&action=list&moduleID=").Append(_moduleId).Append("&author=") .Append(dr["author"].ToString()).Append("\" title=\"查看该用户发布的文档\">").Append(dr["Author"].ToString()).Append("</a></td>"); } sb.Append("<td>").Append(String.Format("{0:yyyy/MM/dd HH:mm}", Convert.ToDateTime(dr["CreateDate"]))).Append("</td><td align=\"center\">") .Append(dr["ViewCount"].ToString()).Append("</td><td><button class=\"refresh\" /></td><td><button class=\"file\" /></td><td><button class=\"edit\" /></td><td><button class=\"delete\" /></td></tr>"); } archiveListHtml = sb.ToString(); string format = String.Format("?module=archive&action=list&categoryID={0}&moduleID={1}&page={2}&size={3}&author={4}&visible={5}&special={6}&system={7}", _categoryId, _moduleId, "{0}", pageSize, _author, _visible, _special, _system); pagerHtml = Helper.BuildPagerInfo(format, pageIndex, recordCount, pages); result: data = new { moduleID = _moduleId ?? String.Empty, categoryID = _categoryId ?? String.Empty, username = _author }; base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Archive_List), data); }
/// <summary> /// 更新文档 /// </summary> public void Update_GET() { object data; int archiveId = int.Parse(base.Request["archive.id"]); string tpls, nodesHtml, //栏目JSON extendFieldsHtml = ""; //属性Html Module module; int siteId = this.CurrentSite.SiteId; ArchiveDto archive = ServiceCall.Instance.ArchiveService.GetArchiveById(siteId, archiveId); int categoryId = archive.Category.Id; //============= 拼接模块的属性值 ==============// StringBuilder sb = new StringBuilder(50); string attrValue; IExtendField field; sb.Append("<div class=\"dataextend_item\">"); foreach (IExtendValue extValue in archive.ExtendValues) { field = extValue.Field; attrValue = (extValue.Value ?? field.DefaultValue).Replace("<br />", "\n"); this.AppendExtendFormHtml(sb, field, attrValue); } sb.Append("</div>"); extendFieldsHtml = sb.ToString(); //获取模板视图下拉项 StringBuilder sb2 = new StringBuilder(); //模板目录 DirectoryInfo dir = new DirectoryInfo( String.Format("{0}templates/{1}", AppDomain.CurrentDomain.BaseDirectory, base.CurrentSite.Tpl + "/" )); IDictionary <String, String> names = Cms.TemplateManager.Get(base.CurrentSite.Tpl).GetNameDictionary(); EachClass.EachTemplatePage(dir, dir, sb2, names, TemplatePageType.Custom, TemplatePageType.Archive ); tpls = sb2.ToString(); nodesHtml = Helper.GetCategoryIdSelector(this.SiteId, categoryId); //标签 Dictionary <string, bool> flags = ArchiveFlag.GetFlagsDict(archive.Flags); string thumbnail = !String.IsNullOrEmpty(archive.Thumbnail) ? archive.Thumbnail : "/" + CmsVariables.FRAMEWORK_ARCHIVE_NoPhoto; object json = new { IsSpecial = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial)], IsSystem = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem)], IsNotVisible = !(flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible)]), AsPage = flags.ContainsKey(ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)) && flags[ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage)], Id = archive.Id, Title = archive.Title, SmallTitle = archive.SmallTitle, Alias = archive.Alias ?? String.Empty, Tags = archive.Tags, Source = archive.Source, Outline = archive.Outline, Content = archive.Content, TemplatePath = archive.IsSelfTemplate && !String.IsNullOrEmpty(archive.TemplatePath) ? archive.TemplatePath : String.Empty, Thumbnail = thumbnail, Location = archive.Location }; data = new { extendFieldsHtml = extendFieldsHtml, extend_cls = archive.ExtendValues.Count == 0 ? "hidden" : "", thumbPrefix = CmsVariables.Archive_ThumbPrefix, nodes = nodesHtml, url = Request.Url.PathAndQuery, tpls = tpls, json = JsonSerializer.Serialize(json) }; base.RenderTemplate( BasePage.CompressHtml(ResourceMap.GetPageContent(ManagementPage.Archive_Update)), data); }