private static async Task CreateContentAsync(SiteInfo siteInfo, string tableName, int channelId, int contentId) { var contentInfo = Content.GetContentInfo(tableName, contentId); if (contentInfo == null) { return; } //引用链接,不需要生成内容页;引用内容,需要生成内容页; if (contentInfo.ReferenceId > 0 && ETranslateContentTypeUtils.GetEnumType(contentInfo.GetString(ContentAttribute.TranslateContentType)) != ETranslateContentType.ReferenceContent) { return; } if (!string.IsNullOrEmpty(contentInfo.GetString(ContentAttribute.LinkUrl))) { return; } if (!contentInfo.IsChecked) { return; } if (siteInfo.Additional.IsCreateStaticContentByAddDate && contentInfo.AddDate < siteInfo.Additional.CreateStaticContentAddDate) { return; } var templateInfo = TemplateManager.GetContentTemplateInfo(siteInfo.Id, channelId); var pageInfo = new PageInfo(channelId, contentId, siteInfo, templateInfo); var contextInfo = new ContextInfo(pageInfo) { ContextType = EContextType.Content, ContentInfo = contentInfo }; var filePath = PathUtility.GetContentPageFilePath(siteInfo, pageInfo.PageChannelId, contentInfo, 0); var contentBuilder = new StringBuilder(TemplateManager.GetTemplateContent(siteInfo, templateInfo)); var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); //如果标签中存在<stl:content type="PageContent"></stl:content> if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList))//内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(ContentUtility.PagePlaceHolder, pageContentHtml) + 1;//一共需要的页数 Parser.Parse(siteInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageChannelId, pageInfo.PageContentId, pageInfo.SiteInfo, pageInfo.TemplateInfo); var index = pageContentHtml.IndexOf(ContentUtility.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + ContentUtility.PagePlaceHolder.Length); } } } //如果标签中存在<stl:pageContents> else if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageContentsElementParser = new StlPageContents(stlElement, pageInfo, contextInfo, false); int totalNum; var pageCount = pageContentsElementParser.GetPageCount(out totalNum); Parser.Parse(siteInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageChannelId, pageInfo.PageContentId, pageInfo.SiteInfo, pageInfo.TemplateInfo); var pageHtml = pageContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, true); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } //如果标签中存在<stl:pageChannels> else if (StlParserUtility.IsStlElementExists(StlPageChannels.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageChannelsElementParser = new StlPageChannels(stlElement, pageInfo, contextInfo, false); int totalNum; var pageCount = pageChannelsElementParser.GetPageCount(out totalNum); Parser.Parse(siteInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageChannelId, pageInfo.PageContentId, pageInfo.SiteInfo, pageInfo.TemplateInfo); var pageHtml = pageChannelsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } //如果标签中存在<stl:pageSqlContents> else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = new StlPageSqlContents(stlElement, pageInfo, contextInfo, false); int totalNum; var pageCount = pageSqlContentsElementParser.GetPageCount(out totalNum); Parser.Parse(siteInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageChannelId, pageInfo.PageContentId, pageInfo.SiteInfo, pageInfo.TemplateInfo); var pageHtml = pageSqlContentsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, channelId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(siteInfo, thePageInfo.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } else//无翻页 { Parser.Parse(siteInfo, pageInfo, contextInfo, contentBuilder, filePath, false); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, contentBuilder); } }
private HttpResponseMessage GetResponseMessage(VisualInfo visualInfo) { if (visualInfo.SiteInfo == null || visualInfo.TemplateInfo == null) { return(null); } var siteInfo = visualInfo.SiteInfo; var templateInfo = visualInfo.TemplateInfo; var pageInfo = new PageInfo(visualInfo.ChannelId, visualInfo.ContentId, siteInfo, templateInfo, new Dictionary <string, object>()) { IsLocal = true }; var contextInfo = new ContextInfo(pageInfo) { ContextType = visualInfo.ContextType }; var contentBuilder = new StringBuilder(TemplateManager.GetTemplateContent(siteInfo, templateInfo)); //需要完善,考虑单页模板、内容正文、翻页及外部链接 if (templateInfo.TemplateType == TemplateType.FileTemplate) //单页 { Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); return(Response(contentBuilder.ToString(), siteInfo)); } if (templateInfo.TemplateType == TemplateType.IndexPageTemplate || templateInfo.TemplateType == TemplateType.ChannelTemplate) //栏目页面 { var nodeInfo = ChannelManager.GetChannelInfo(siteInfo.Id, visualInfo.ChannelId); if (nodeInfo == null) { return(null); } if (nodeInfo.ParentId > 0) { if (!string.IsNullOrEmpty(nodeInfo.LinkUrl)) { PageUtils.Redirect(nodeInfo.LinkUrl); return(null); } } var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); //如果标签中存在Content var stlContentElement = string.Empty; foreach (var label in stlLabelList) { if (StlParserUtility.IsStlChannelElement(label, ChannelAttribute.PageContent)) { stlContentElement = label; break; } } if (!string.IsNullOrEmpty(stlContentElement))//内容存在 { var innerBuilder = new StringBuilder(stlContentElement); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); var contentAttributeHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(ContentUtility.PagePlaceHolder, contentAttributeHtml) + 1;//一共需要的页数 if (pageCount > 1) { Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var index = contentAttributeHtml.IndexOf(ContentUtility.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? contentAttributeHtml.Length : index; if (currentPageIndex == visualInfo.PageIndex) { var pagedContentAttributeHtml = contentAttributeHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlContentElement, pagedContentAttributeHtml)); StlParserManager.ReplacePageElementsInChannelPage(pagedBuilder, thePageInfo, stlLabelList, thePageInfo.PageChannelId, currentPageIndex, pageCount, 0); return(Response(pagedBuilder.ToString(), siteInfo)); } if (index != -1) { contentAttributeHtml = contentAttributeHtml.Substring(length + ContentUtility.PagePlaceHolder.Length); } } return(null); } contentBuilder.Replace(stlContentElement, contentAttributeHtml); } if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList))//如果标签中存在<stl:pageContents> { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageContentsElementParser = new StlPageContents(stlElement, pageInfo, contextInfo); var pageCount = pageContentsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInChannelPage(pagedBuilder, thePageInfo, stlLabelList, thePageInfo.PageChannelId, currentPageIndex, pageCount, totalNum); return(Response(pagedBuilder.ToString(), siteInfo)); } } } else if (StlParserUtility.IsStlElementExists(StlPageChannels.ElementName, stlLabelList))//如果标签中存在<stl:pageChannels> { var stlElement = StlParserUtility.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageChannelsElementParser = new StlPageChannels(stlElement, pageInfo, contextInfo); var pageCount = pageChannelsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageChannelsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInChannelPage(pagedBuilder, thePageInfo, stlLabelList, thePageInfo.PageChannelId, currentPageIndex, pageCount, totalNum); return(Response(pagedBuilder.ToString(), siteInfo)); } } } else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList))//如果标签中存在<stl:pageSqlContents> { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = new StlPageSqlContents(stlElement, pageInfo, contextInfo); var pageCount = pageSqlContentsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageSqlContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInChannelPage(pagedBuilder, thePageInfo, stlLabelList, thePageInfo.PageChannelId, currentPageIndex, pageCount, totalNum); return(Response(pagedBuilder.ToString(), siteInfo)); } } } Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); return(Response(contentBuilder.ToString(), siteInfo)); } if (templateInfo.TemplateType == TemplateType.ContentTemplate) //内容页面 { if (contextInfo.ContentInfo == null) { return(null); } if (!string.IsNullOrEmpty(contextInfo.ContentInfo.GetString(ContentAttribute.LinkUrl))) { PageUtils.Redirect(contextInfo.ContentInfo.GetString(ContentAttribute.LinkUrl)); return(null); } var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList))//内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(ContentUtility.PagePlaceHolder, pageContentHtml) + 1;//一共需要的页数 Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var index = pageContentHtml.IndexOf(ContentUtility.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + ContentUtility.PagePlaceHolder.Length); } } } if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList))//如果标签中存在<stl:pageContents> { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageContentsElementParser = new StlPageContents(stlElement, pageInfo, contextInfo); var pageCount = pageContentsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } } } else if (StlParserUtility.IsStlElementExists(StlPageChannels.ElementName, stlLabelList))//如果标签中存在<stl:pageChannels> { var stlElement = StlParserUtility.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageChannelsElementParser = new StlPageChannels(stlElement, pageInfo, contextInfo); var pageCount = pageChannelsElementParser.GetPageCount(out _); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageChannelsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } } } else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList))//如果标签中存在<stl:pageSqlContents> { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = new StlPageSqlContents(stlElement, pageInfo, contextInfo); var pageCount = pageSqlContentsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageSqlContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } } } Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); StlParserManager.ReplacePageElementsInContentPage(contentBuilder, pageInfo, stlLabelList, contextInfo.ContentInfo.ChannelId, contextInfo.ContentInfo.Id, 0, 1); return(Response(contentBuilder.ToString(), siteInfo)); } return(null); }
private HttpResponseMessage GetContentTemplate(VisualInfo visualInfo, ContextInfo contextInfo, StringBuilder contentBuilder, PageInfo pageInfo, SiteInfo siteInfo) { if (contextInfo.ContentInfo == null) { return(null); } if (!string.IsNullOrEmpty(contextInfo.ContentInfo.GetString(ContentAttribute.LinkUrl))) { PageUtils.Redirect(contextInfo.ContentInfo.GetString(ContentAttribute.LinkUrl)); return(null); } var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList)) //内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(ContentUtility.PagePlaceHolder, pageContentHtml) + 1; //一共需要的页数 Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var index = pageContentHtml.IndexOf(ContentUtility.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + ContentUtility.PagePlaceHolder.Length); } } } if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) //如果标签中存在<stl:pageContents> { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageContentsElementParser = new StlPageContents(stlElement, pageInfo, contextInfo); var pageCount = pageContentsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } } } else if (StlParserUtility.IsStlElementExists(StlPageChannels.ElementName, stlLabelList)) //如果标签中存在<stl:pageChannels> { var stlElement = StlParserUtility.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageChannelsElementParser = new StlPageChannels(stlElement, pageInfo, contextInfo); var pageCount = pageChannelsElementParser.GetPageCount(out _); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageChannelsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } } } else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList) ) //如果标签中存在<stl:pageSqlContents> { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = StlParserManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = new StlPageSqlContents(stlElement, pageInfo, contextInfo); var pageCount = pageSqlContentsElementParser.GetPageCount(out var totalNum); Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var thePageInfo = pageInfo.Clone(); thePageInfo.IsLocal = true; var pageHtml = pageSqlContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, visualInfo.ChannelId, visualInfo.ContentId, currentPageIndex, pageCount); return(Response(pagedBuilder.ToString(), siteInfo)); } } } Parser.Parse(pageInfo, contextInfo, contentBuilder, visualInfo.FilePath, true); StlParserManager.ReplacePageElementsInContentPage(contentBuilder, pageInfo, stlLabelList, contextInfo.ContentInfo.ChannelId, contextInfo.ContentInfo.Id, 0, 1); return(Response(contentBuilder.ToString(), siteInfo)); }
private async Task ExecuteContentAsync(Site site, Channel channel, int contentId) { var contentInfo = await _contentRepository.GetAsync(site, channel, contentId); if (contentInfo == null) { return; } if (!contentInfo.Checked) { await DeleteContentAsync(site, channel.Id, contentId); return; } if (!ContentUtility.IsCreatable(channel, contentInfo)) { return; } if (site.IsCreateStaticContentByAddDate && contentInfo.AddDate < site.CreateStaticContentAddDate) { return; } var template = await _templateRepository.GetContentTemplateAsync(site.Id, channel, contentInfo.TemplateId); await _parseManager.InitAsync(EditMode.Default, site, channel.Id, contentId, template); _parseManager.ContextInfo.ContextType = ParseType.Content; _parseManager.ContextInfo.SetContent(contentInfo); var filePath = await _pathManager.GetContentPageFilePathAsync(site, _parseManager.PageInfo.PageChannelId, contentInfo, 0); var contentBuilder = new StringBuilder(await _pathManager.GetTemplateContentAsync(site, template)); var stlLabelList = ParseUtils.GetStlLabels(contentBuilder.ToString()); //如果标签中存在<stl:content type="PageContent"></stl:content> if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList)) //内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); await _parseManager.ParseInnerContentAsync(innerBuilder); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(Constants.PagePlaceHolder, pageContentHtml) + 1; //一共需要的页数 await _parseManager.ParseAsync(contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var page = _parseManager.PageInfo; _parseManager.PageInfo = _parseManager.PageInfo.Clone(); var index = pageContentHtml.IndexOf(Constants.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); filePath = await _pathManager.GetContentPageFilePathAsync(site, page.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pagedBuilder); if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + Constants.PagePlaceHolder.Length); } _parseManager.PageInfo = page; } } //如果标签中存在<stl:channel type="PageContent"></stl:channel> else if (StlParserUtility.IsStlChannelElementWithTypePageContent(stlLabelList)) //内容存在 { var stlElement = StlParserUtility.GetStlChannelElementWithTypePageContent(stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); await _parseManager.ParseInnerContentAsync(innerBuilder); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(Constants.PagePlaceHolder, pageContentHtml) + 1; //一共需要的页数 await _parseManager.ParseAsync(contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var page = _parseManager.PageInfo; _parseManager.PageInfo = _parseManager.PageInfo.Clone(); var index = pageContentHtml.IndexOf(Constants.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); filePath = await _pathManager.GetContentPageFilePathAsync(site, page.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pagedBuilder); if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + Constants.PagePlaceHolder.Length); } _parseManager.PageInfo = page; } } //如果标签中存在<stl:pageContents> else if (ParseUtils.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) { var stlElement = ParseUtils.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); var pageContentsElementParser = await StlPageContents.GetAsync(stlElement, _parseManager); var(pageCount, totalNum) = pageContentsElementParser.GetPageCount(); await _parseManager.ParseAsync(contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var page = _parseManager.PageInfo; _parseManager.PageInfo = _parseManager.PageInfo.Clone(); var pageHtml = await pageContentsElementParser.ParseAsync(totalNum, currentPageIndex, pageCount, true); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); filePath = await _pathManager.GetContentPageFilePathAsync(site, page.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pagedBuilder); _parseManager.PageInfo = page; } } //如果标签中存在<stl:pageChannels> else if (ParseUtils.IsStlElementExists(StlPageChannels.ElementName, stlLabelList)) { var stlElement = ParseUtils.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); var pageChannelsElementParser = await StlPageChannels.GetAsync(stlElement, _parseManager); var pageCount = pageChannelsElementParser.GetPageCount(out _); await _parseManager.ParseAsync(contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var page = _parseManager.PageInfo; _parseManager.PageInfo = _parseManager.PageInfo.Clone(); var pageHtml = await pageChannelsElementParser.ParseAsync(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); filePath = await _pathManager.GetContentPageFilePathAsync(site, page.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pagedBuilder); _parseManager.PageInfo = page; } } //如果标签中存在<stl:pageSqlContents> else if (ParseUtils.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList)) { var stlElement = ParseUtils.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = await StlPageSqlContents.GetAsync(stlElement, _parseManager); var pageCount = pageSqlContentsElementParser.GetPageCount(out var totalNum); await _parseManager.ParseAsync(contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var page = _parseManager.PageInfo; _parseManager.PageInfo = _parseManager.PageInfo.Clone(); var pageHtml = await pageSqlContentsElementParser.ParseAsync(totalNum, currentPageIndex, pageCount, true); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); filePath = await _pathManager.GetContentPageFilePathAsync(site, page.PageChannelId, contentInfo, currentPageIndex); await GenerateFileAsync(filePath, pagedBuilder); _parseManager.PageInfo = page; } } else //无翻页 { await _parseManager.ParseAsync(contentBuilder, filePath, false); await GenerateFileAsync(filePath, contentBuilder); } }
private async Task <FileResult> GetContentTemplateAsync(VisualInfo visualInfo, StringBuilder contentBuilder) { var content = await _parseManager.GetContentAsync(); if (content == null) { return(null); } if (!string.IsNullOrEmpty(content.LinkUrl)) { HttpContext.Response.Redirect(content.LinkUrl); return(null); } var stlLabelList = ParseUtils.GetStlLabels(contentBuilder.ToString()); if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList)) //内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); await _parseManager.ParseInnerContentAsync(innerBuilder); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(Constants.PagePlaceHolder, pageContentHtml) + 1; //一共需要的页数 await _parseManager.ParseAsync(contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var index = pageContentHtml.IndexOf(Constants.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; if (currentPageIndex == visualInfo.PageIndex) { var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); return(GetResponse(pagedBuilder.ToString())); } if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + Constants.PagePlaceHolder.Length); } } } if (ParseUtils.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) //如果标签中存在<stl:pageContents> { var stlElement = ParseUtils.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); var pageContentsElementParser = await StlPageContents.GetAsync(stlElement, _parseManager); var(pageCount, totalNum) = pageContentsElementParser.GetPageCount(); await _parseManager.ParseAsync(contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var pageHtml = await pageContentsElementParser.ParseAsync(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); return(GetResponse(pagedBuilder.ToString())); } } } else if (ParseUtils.IsStlElementExists(StlPageChannels.ElementName, stlLabelList)) //如果标签中存在<stl:pageChannels> { var stlElement = ParseUtils.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); var pageChannelsElementParser = await StlPageChannels.GetAsync(stlElement, _parseManager); var pageCount = pageChannelsElementParser.GetPageCount(out _); await _parseManager.ParseAsync(contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var pageHtml = await pageChannelsElementParser.ParseAsync(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); return(GetResponse(pagedBuilder.ToString())); } } } else if (ParseUtils.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList) ) //如果标签中存在<stl:pageSqlContents> { var stlElement = ParseUtils.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = _parseManager.StlEncrypt(stlElement); var pageSqlContentsElementParser = await StlPageSqlContents.GetAsync(stlElement, _parseManager); var pageCount = pageSqlContentsElementParser.GetPageCount(out var totalNum); await _parseManager.ParseAsync(contentBuilder, visualInfo.FilePath, true); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex == visualInfo.PageIndex) { var pageHtml = await pageSqlContentsElementParser.ParseAsync(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); await _parseManager.ReplacePageElementsInContentPageAsync(pagedBuilder, stlLabelList, currentPageIndex, pageCount); return(GetResponse(pagedBuilder.ToString())); } } } await _parseManager.ParseAsync(contentBuilder, visualInfo.FilePath, true); await _parseManager.ReplacePageElementsInContentPageAsync(contentBuilder, stlLabelList, 0, 1); return(GetResponse(contentBuilder.ToString())); }
public void CreateContent(ETableStyle tableStyle, string tableName, int nodeId, int contentId) { var contentInfo = DataProvider.ContentDao.GetContentInfo(tableStyle, tableName, contentId); if (contentInfo == null) { return; } //引用链接,不需要生成内容页;引用内容,需要生成内容页; if (contentInfo.ReferenceId > 0 && ETranslateContentTypeUtils.GetEnumType(contentInfo.GetExtendedAttribute(ContentAttribute.TranslateContentType)) != ETranslateContentType.ReferenceContent) { return; } if (tableStyle == ETableStyle.BackgroundContent && !string.IsNullOrEmpty(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.LinkUrl))) { return; } if (!contentInfo.IsChecked) { return; } if (PublishmentSystemInfo.Additional.IsCreateStaticContentByAddDate && contentInfo.AddDate < PublishmentSystemInfo.Additional.CreateStaticContentAddDate) { return; } var templateInfo = TemplateManager.GetTemplateInfo(PublishmentSystemId, nodeId, ETemplateType.ContentTemplate); var pageInfo = new PageInfo(nodeId, contentId, PublishmentSystemInfo, templateInfo, null); var contextInfo = new ContextInfo(pageInfo) { ContentInfo = contentInfo }; var filePath = PathUtility.GetContentPageFilePath(PublishmentSystemInfo, pageInfo.PageNodeId, contentInfo, 0); var contentBuilder = new StringBuilder(StlCacheManager.FileContent.GetTemplateContent(PublishmentSystemInfo, templateInfo)); var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); //如果标签中存在<stl:content type="PageContent"></stl:content> if (StlParserUtility.IsStlContentElementWithTypePageContent(stlLabelList))//内容存在 { var stlElement = StlParserUtility.GetStlContentElementWithTypePageContent(stlLabelList); var stlElementTranslated = StlPageContents.Translate(stlElement); contentBuilder.Replace(stlElement, stlElementTranslated); var innerBuilder = new StringBuilder(stlElement); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); var pageContentHtml = innerBuilder.ToString(); var pageCount = StringUtils.GetCount(ContentUtility.PagePlaceHolder, pageContentHtml) + 1;//一共需要的页数 StlUtility.ParseStl(PublishmentSystemInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageNodeId, pageInfo.PageContentId, pageInfo.PublishmentSystemInfo, pageInfo.TemplateInfo, null); var index = pageContentHtml.IndexOf(ContentUtility.PagePlaceHolder, StringComparison.Ordinal); var length = index == -1 ? pageContentHtml.Length : index; var pageHtml = pageContentHtml.Substring(0, length); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, nodeId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(PublishmentSystemInfo, thePageInfo.PageNodeId, contentInfo, currentPageIndex); GenerateFile(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); if (index != -1) { pageContentHtml = pageContentHtml.Substring(length + ContentUtility.PagePlaceHolder.Length); } } } //如果标签中存在<stl:pageContents> else if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlElementTranslated = StlPageContents.Translate(stlElement); var pageContentsElementParser = new StlPageContents(stlElement, pageInfo, contextInfo, false); int totalNum; var pageCount = pageContentsElementParser.GetPageCount(out totalNum); StlUtility.ParseStl(PublishmentSystemInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageNodeId, pageInfo.PageContentId, pageInfo.PublishmentSystemInfo, pageInfo.TemplateInfo, null); var pageHtml = pageContentsElementParser.Parse(totalNum, currentPageIndex, pageCount, true); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, nodeId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(PublishmentSystemInfo, thePageInfo.PageNodeId, contentInfo, currentPageIndex); GenerateFile(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } //如果标签中存在<stl:pageChannels> else if (StlParserUtility.IsStlElementExists(StlPageChannels.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageChannels.ElementName, stlLabelList); var stlElementTranslated = StlPageChannels.Translate(stlElement); var pageChannelsElementParser = new StlPageChannels(stlElement, pageInfo, contextInfo, false); int totalNum; var pageCount = pageChannelsElementParser.GetPageCount(out totalNum); StlUtility.ParseStl(PublishmentSystemInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageNodeId, pageInfo.PageContentId, pageInfo.PublishmentSystemInfo, pageInfo.TemplateInfo, null); var pageHtml = pageChannelsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, nodeId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(PublishmentSystemInfo, thePageInfo.PageNodeId, contentInfo, currentPageIndex); GenerateFile(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } //如果标签中存在<stl:pageSqlContents> else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlElementTranslated = StlPageSqlContents.Translate(stlElement); var pageSqlContentsElementParser = new StlPageSqlContents(stlElement, pageInfo, contextInfo, false); int totalNum; var pageCount = pageSqlContentsElementParser.GetPageCount(out totalNum); StlUtility.ParseStl(PublishmentSystemInfo, pageInfo, contextInfo, contentBuilder, filePath, false); for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { var thePageInfo = new PageInfo(pageInfo.PageNodeId, pageInfo.PageContentId, pageInfo.PublishmentSystemInfo, pageInfo.TemplateInfo, null); var pageHtml = pageSqlContentsElementParser.Parse(currentPageIndex, pageCount); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElementTranslated, pageHtml)); StlParserManager.ReplacePageElementsInContentPage(pagedBuilder, thePageInfo, stlLabelList, nodeId, contentId, currentPageIndex, pageCount); filePath = PathUtility.GetContentPageFilePath(PublishmentSystemInfo, thePageInfo.PageNodeId, contentInfo, currentPageIndex); GenerateFile(filePath, pageInfo.TemplateInfo.Charset, pagedBuilder); } } else//无翻页 { StlUtility.ParseStl(PublishmentSystemInfo, pageInfo, contextInfo, contentBuilder, filePath, false); GenerateFile(filePath, pageInfo.TemplateInfo.Charset, contentBuilder); } }