public IHttpActionResult Main() { try { var request = new AuthRequest(); var form = request.GetPostCollection(); var isAllSites = request.GetPostBool(StlSearch.IsAllSites.Name.ToLower()); var siteName = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.SiteName.Name.ToLower())); var siteDir = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.SiteDir.Name.ToLower())); var siteIds = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.SiteIds.Name.ToLower())); var channelIndex = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.ChannelIndex.Name.ToLower())); var channelName = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.ChannelName.Name.ToLower())); var channelIds = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.ChannelIds.Name.ToLower())); var type = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.Type.Name.ToLower())); var word = PageUtils.FilterSql(request.GetPostString(StlSearch.Word.Name.ToLower())); var dateAttribute = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.DateAttribute.Name.ToLower())); var dateFrom = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.DateFrom.Name.ToLower())); var dateTo = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.DateTo.Name.ToLower())); var since = PageUtils.FilterSqlAndXss(request.GetPostString(StlSearch.Since.Name.ToLower())); var pageNum = request.GetPostInt(StlSearch.PageNum.Name.ToLower()); var isHighlight = request.GetPostBool(StlSearch.IsHighlight.Name.ToLower()); var siteId = request.GetPostInt("siteid"); var ajaxDivId = PageUtils.FilterSqlAndXss(request.GetPostString("ajaxdivid")); var template = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("template")); var pageIndex = request.GetPostInt("page", 1) - 1; var templateInfo = new TemplateInfo(0, siteId, string.Empty, TemplateType.FileTemplate, string.Empty, string.Empty, string.Empty, ECharset.utf_8, false); var siteInfo = SiteManager.GetSiteInfo(siteId); var pageInfo = new PageInfo(siteId, 0, siteInfo, templateInfo, new Dictionary <string, object>()) { UserInfo = request.UserInfo }; var contextInfo = new ContextInfo(pageInfo); var contentBuilder = new StringBuilder(StlRequestEntities.ParseRequestEntities(form, template)); var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlPageContentsElement = stlElement; var stlPageContentsElementReplaceString = stlElement; var whereString = DataProvider.ContentDao.GetWhereStringByStlSearch(isAllSites, siteName, siteDir, siteIds, channelIndex, channelName, channelIds, type, word, dateAttribute, dateFrom, dateTo, since, siteId, ApiRouteActionsSearch.ExlcudeAttributeNames, form); var stlPageContents = new StlPageContents(stlPageContentsElement, pageInfo, contextInfo, pageNum, siteInfo.TableName, whereString); int totalNum; var pageCount = stlPageContents.GetPageCount(out totalNum); if (totalNum == 0) { return(NotFound()); } for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex != pageIndex) { continue; } var pageHtml = stlPageContents.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlPageContentsElementReplaceString, pageHtml)); StlParserManager.ReplacePageElementsInSearchPage(pagedBuilder, pageInfo, stlLabelList, ajaxDivId, pageInfo.PageChannelId, currentPageIndex, pageCount, totalNum); if (isHighlight && !string.IsNullOrEmpty(word)) { var pagedContents = pagedBuilder.ToString(); pagedBuilder = new StringBuilder(); pagedBuilder.Append(RegexUtils.Replace( $"({word.Replace(" ", "\\s")})(?!</a>)(?![^><]*>)", pagedContents, $"<span style='color:#cc0000'>{word}</span>")); } Parser.Parse(pageInfo, contextInfo, pagedBuilder, string.Empty, false); return(Ok(pagedBuilder.ToString())); } } Parser.Parse(pageInfo, contextInfo, contentBuilder, string.Empty, false); return(Ok(contentBuilder.ToString())); } catch (Exception ex) { return(InternalServerError(ex)); } }
public void Page_Load(object sender, EventArgs e) { if (IsForbidden) { return; } var permissions = PermissionsManager.GetPermissions(Body.AdministratorName); PageUtils.CheckRequestParameter("PublishmentSystemID", "NodeID"); var nodeID = Body.GetQueryInt("NodeID"); relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(PublishmentSystemId, nodeID); nodeInfo = NodeManager.GetNodeInfo(1, nodeID); tableName = NodeManager.GetTableName(PublishmentSystemInfo, nodeInfo); tableStyle = NodeManager.GetTableStyle(PublishmentSystemInfo, nodeInfo); styleInfoList = TableStyleManager.GetTableStyleInfoList(tableStyle, tableName, relatedIdentities); Dictionary <string, string> category = DataProvider.NodeDao.GetNodeIdListLevel(2, nodeID); int contentNum = 0; if (nodeInfo.Additional.IsPreviewContents) { new Action(() => { DataProvider.ContentDao.DeletePreviewContents(PublishmentSystemId, tableName, nodeInfo); }).BeginInvoke(null, null); } if (!HasChannelPermissions(nodeID, AppManager.Cms.Permission.Channel.ContentView, AppManager.Cms.Permission.Channel.ContentAdd, AppManager.Cms.Permission.Channel.ContentEdit, AppManager.Cms.Permission.Channel.ContentDelete, AppManager.Cms.Permission.Channel.ContentTranslate)) { if (!Body.IsAdministratorLoggin) { PageUtils.RedirectToLoginPage(); return; } PageUtils.RedirectToErrorPage("您无此栏目的操作权限!"); return; } attributesOfDisplay = TranslateUtils.StringCollectionToStringCollection(NodeManager.GetContentAttributesOfDisplay(PublishmentSystemId, nodeID)); //this.attributesOfDisplay = TranslateUtils.StringCollectionToStringCollection(this.nodeInfo.Additional.ContentAttributesOfDisplay); spContents.ControlToPaginate = rptContents; rptContents.ItemDataBound += rptContents_ItemDataBound; spContents.ItemsPerPage = PublishmentSystemInfo.Additional.PageSize; var administratorName = AdminUtility.IsViewContentOnlySelf(Body.AdministratorName, PublishmentSystemId, nodeID) ? Body.AdministratorName : string.Empty; if (Body.IsQueryExists("SearchType")) { string nodeListString = Body.GetQueryString("ChildNodeId"); string[] nodeArray = nodeListString.Split(new char[] { ',' }); List <int> owningNodeIdList = new List <int>(); foreach (string node in nodeArray) { if (!string.IsNullOrEmpty(node)) { int nodeId = Convert.ToInt32(node); owningNodeIdList.Add(nodeId); contentNum = contentNum + DataProvider.NodeDao.GetNodeInfo(nodeId).ContentNum; } } nodeListString = nodeListString.TrimEnd(','); spContents.SelectCommand = DataProvider.ContentDao.GetSelectCommendForLower(nodeListString, tableStyle, tableName, PublishmentSystemId, nodeID, permissions.IsSystemAdministrator, owningNodeIdList, Body.GetQueryString("SearchType"), Body.GetQueryString("Keyword"), Body.GetQueryString("DateFrom"), string.Empty, false, ETriState.All, false, false, false, administratorName); } else { //spContents.SelectCommand = BaiRongDataProvider.ContentDao.GetSelectCommendForLowerLevel(tableName, nodeCollectionIdStr, ETriState.All, administratorName, base.PublishmentSystemId); spContents.SelectCommand = $@"select * from siteserver_examination where ExaminationPaperId={PageUtils.FilterSqlAndXss(Body.GetQueryString( "ArticleId"))} and NodeId={PageUtils.FilterSqlAndXss(Body.GetQueryString("NodeId"))}"; } spContents.SortField = BaiRongDataProvider.ContentDao.GetSortFieldName(); spContents.SortMode = SortMode.DESC; spContents.OrderByString = ETaxisTypeUtils.GetOrderByString(tableStyle, ETaxisType.OrderByTaxisDesc); //分页的时候,不去查询总条数,直接使用栏目的属性:ContentNum spContents.IsQueryTotalCount = false; spContents.TotalCount = nodeInfo.ContentNum;//nodeInfo.ContentNum; if (!IsPostBack) { var nodeName = NodeManager.GetNodeNameNavigation(PublishmentSystemId, nodeID); //BreadCrumbWithItemTitle(AppManager.Cms.LeftMenu.IdContent, "内容管理", nodeName, string.Empty); ltlContentButtons.Text = WebUtils.GetContentCommandsStandardForExamination(Body.AdministratorName, PublishmentSystemInfo, nodeInfo, PageUrlReturn, GetRedirectUrl(base.PublishmentSystemId, nodeInfo.NodeId), false, Body.GetQueryInt("ArticleId")); spContents.DataBind(); if (styleInfoList != null) { foreach (var styleInfo in styleInfoList) { if (styleInfo.IsVisible) { var listitem = new ListItem(styleInfo.DisplayName, styleInfo.AttributeName); SearchType.Items.Add(listitem); } } } string NodeIdAll = nodeID + ","; if (category != null) { foreach (var chanelCategory in category) { NodeIdAll = NodeIdAll + chanelCategory.Value + ","; var nodechildId = DataProvider.NodeDao.GetNodeInfoListByParentId(1, Convert.ToInt32(chanelCategory.Value)); if (nodechildId != null && nodechildId.Count > 0) { string chidNodeList = string.Empty; foreach (var child in nodechildId) { NodeIdAll = NodeIdAll + child.NodeId + ","; chidNodeList = chidNodeList + child.NodeId + ","; } var listitem = new ListItem(chanelCategory.Key, chidNodeList); ChannelCategory.Items.Add(listitem); } else { var listitem = new ListItem(chanelCategory.Key, chanelCategory.Value); NodeIdAll = NodeIdAll + chanelCategory.Value + ","; ChannelCategory.Items.Add(listitem); } } } var listitemAll = new ListItem("全部", NodeIdAll); ChannelCategory.Items.Add(listitemAll); ListItem listItemSelect = null; foreach (ListItem listItem in ChannelCategory.Items) { if (listItem.Value.Equals(Body.GetQueryString("ChildNodeId"))) { listItemSelect = listItem; } } if (listItemSelect != null) { listItemSelect.Selected = true; } else { listitemAll.Selected = true; } //添加隐藏属性 SearchType.Items.Add(new ListItem("内容ID", ContentAttribute.Id)); SearchType.Items.Add(new ListItem("添加者", ContentAttribute.AddUserName)); SearchType.Items.Add(new ListItem("最后修改者", ContentAttribute.LastEditUserName)); SearchType.Items.Add(new ListItem("内容组", ContentAttribute.ContentGroupNameCollection)); if (Body.IsQueryExists("SearchType")) { DateFrom.Text = Body.GetQueryString("DateFrom"); ControlUtils.SelectListItems(SearchType, Body.GetQueryString("SearchType")); Keyword.Text = Body.GetQueryString("Keyword"); ltlContentButtons.Text += @" <script> $(document).ready(function() { $('#contentSearch').show(); }); </script> "; } ltlColumnHeadRows.Text = ContentUtility.GetColumnHeadRowsHtml(styleInfoList, attributesOfDisplay, tableStyle, PublishmentSystemInfo); ltlCommandHeadRows.Text = ContentUtility.GetCommandHeadRowsHtml(Body.AdministratorName, tableStyle, PublishmentSystemInfo, nodeInfo); } }