public static string ParseInDynamicPage(string stlElement, PageInfo pageInfo, string pageUrl, int channelId, int currentPageIndex, int pageCount, int totalNum, bool isPageRefresh, string ajaxDivId) { string parsedContent; try { var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, false); XmlNode node = xmlDocument.DocumentElement; node = node?.FirstChild; if (pageCount <= 1) { return(string.Empty); } var index = stlElement.IndexOf(">", StringComparison.Ordinal) + 1; var length = stlElement.LastIndexOf("<", StringComparison.Ordinal) - index; if (index <= 0 || length <= 0) { stlElement = node?.InnerXml; } else { stlElement = stlElement.Substring(index, length); } parsedContent = StlPageElementParser.ParseStlPageItemsInDynamicPage(stlElement, pageInfo, pageUrl, channelId, currentPageIndex, pageCount, totalNum, isPageRefresh, ajaxDivId); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, stlElement, ex); } return(parsedContent); }
//API StlActionsSearchController调用 public StlPageContents(string stlPageContentsElement, PageInfo pageInfo, ContextInfo contextInfo, int pageNum, string tableName, string whereString) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageContentsElement, false); _node = xmlDocument.DocumentElement; if (_node != null) { _node = _node.FirstChild; ListInfo = ListInfo.GetListInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.Content); } ListInfo.Scope = EScopeType.All; _contextInfo.TitleWordNum = ListInfo.TitleWordNum; ListInfo.Where += whereString; if (pageNum > 0) { ListInfo.PageNum = pageNum; } SqlString = StlDataUtility.GetPageContentsSqlStringBySearch(tableName, ListInfo.GroupContent, ListInfo.GroupContentNot, ListInfo.Tags, ListInfo.IsImageExists, ListInfo.IsImage, ListInfo.IsVideoExists, ListInfo.IsVideo, ListInfo.IsFileExists, ListInfo.IsFile, ListInfo.IsNoDup, ListInfo.StartNum, ListInfo.TotalNum, ListInfo.OrderByString, ListInfo.IsTopExists, ListInfo.IsTop, ListInfo.IsRecommendExists, ListInfo.IsRecommend, ListInfo.IsHotExists, ListInfo.IsHot, ListInfo.IsColorExists, ListInfo.IsColor, ListInfo.Where, ListInfo.Scope, ListInfo.GroupChannel, ListInfo.GroupChannelNot); }
//API SearchOutput调用 public StlPageContents(string stlPageContentsElement, PageInfo pageInfo, ContextInfo contextInfo, int pageNum, string whereString) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageContentsElement, false); _node = xmlDocument.DocumentElement; if (_node != null) { _node = _node.FirstChild; DisplayInfo = ContentsDisplayInfo.GetContentsDisplayInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.Content); } DisplayInfo.Scope = EScopeType.All; _contextInfo.TitleWordNum = DisplayInfo.TitleWordNum; DisplayInfo.Where += whereString; if (pageNum > 0) { DisplayInfo.PageNum = pageNum; } var channelId = StlDataUtility.GetNodeIdByLevel(pageInfo.PublishmentSystemId, _contextInfo.ChannelID, DisplayInfo.UpLevel, DisplayInfo.TopLevel); channelId = StlCacheManager.NodeId.GetNodeIdByChannelIdOrChannelIndexOrChannelName(pageInfo.PublishmentSystemId, channelId, DisplayInfo.ChannelIndex, DisplayInfo.ChannelName); SqlString = StlDataUtility.GetPageContentsSqlString(_pageInfo.PublishmentSystemInfo, channelId, DisplayInfo.GroupContent, DisplayInfo.GroupContentNot, DisplayInfo.Tags, DisplayInfo.IsImageExists, DisplayInfo.IsImage, DisplayInfo.IsVideoExists, DisplayInfo.IsVideo, DisplayInfo.IsFileExists, DisplayInfo.IsFile, DisplayInfo.IsNoDup, DisplayInfo.StartNum, DisplayInfo.TotalNum, DisplayInfo.OrderByString, DisplayInfo.IsTopExists, DisplayInfo.IsTop, DisplayInfo.IsRecommendExists, DisplayInfo.IsRecommend, DisplayInfo.IsHotExists, DisplayInfo.IsHot, DisplayInfo.IsColorExists, DisplayInfo.IsColor, DisplayInfo.Where, DisplayInfo.Scope, DisplayInfo.GroupChannel, DisplayInfo.GroupChannelNot); }
//对“翻页项容器”(stl:pageItems)元素进行解析,此元素在生成页面时单独解析,不包含在ParseStlElement方法中。 public static string Parse(string stlElement, PageInfo pageInfo, int channelId, int contentId, int currentPageIndex, int pageCount, int totalNum, EContextType contextType) { pageInfo.AddPageBodyCodeIfNotExists(PageInfo.Const.Jquery); string parsedContent; try { var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, false); XmlNode node = xmlDocument.DocumentElement; node = node?.FirstChild; var ie = node?.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (attr == null) { continue; } var name = attr.Name; if (StringUtils.EqualsIgnoreCase(name, Context.Name)) { contextType = EContextTypeUtils.GetEnumType(attr.Value); } } } if (pageCount <= 1) { return(string.Empty); } bool isXmlContent; var index = stlElement.IndexOf(">", StringComparison.Ordinal) + 1; var length = stlElement.LastIndexOf("<", StringComparison.Ordinal) - index; if (index <= 0 || length <= 0) { stlElement = node?.InnerXml; isXmlContent = true; } else { stlElement = stlElement.Substring(index, length); isXmlContent = false; } parsedContent = StlPageElementParser.ParseStlPageItems(stlElement, pageInfo, channelId, contentId, currentPageIndex, pageCount, totalNum, isXmlContent, contextType); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, stlElement, ex); } return(parsedContent); }
//对“翻页项容器”(stl:pageItems)元素进行解析,此元素在生成页面时单独解析,不包含在ParseStlElement方法中。 public static string Parse(string stlElement, PageInfo pageInfo, int nodeId, int contentId, int currentPageIndex, int pageCount, int totalNum, EContextType contextType) { pageInfo.AddPageScriptsIfNotExists(PageInfo.Components.Jquery); string parsedContent; try { var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, false); XmlNode node = xmlDocument.DocumentElement; node = node.FirstChild; var ie = node.Attributes.GetEnumerator(); var autoHide = true; while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var attributeName = attr.Name.ToLower(); if (attributeName.Equals(AttributeAutoHide)) { autoHide = TranslateUtils.ToBool(attr.Value); } else if (attributeName.Equals(AttributeContext)) { contextType = EContextTypeUtils.GetEnumType(attr.Value); } } if (pageCount <= 1 && autoHide) { return(string.Empty); } bool isXmlContent; var index = stlElement.IndexOf(">", StringComparison.Ordinal) + 1; var length = stlElement.LastIndexOf("<", StringComparison.Ordinal) - index; if (index <= 0 || length <= 0) { stlElement = node.InnerXml; isXmlContent = true; } else { stlElement = stlElement.Substring(index, length); isXmlContent = false; } parsedContent = StlPageElementParser.ParseStlPageItems(stlElement, pageInfo, nodeId, contentId, currentPageIndex, pageCount, totalNum, isXmlContent, contextType); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
public StlPageComments(string stlPageCommentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageCommentsElement, isXmlContent); _node = xmlDocument.DocumentElement; _node = _node?.FirstChild; ListInfo = ListInfo.GetListInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.Comment); _dataSet = StlDataUtility.GetPageCommentsDataSet(pageInfo.PublishmentSystemId, contextInfo.ChannelId, contextInfo.ContentId, null, ListInfo.StartNum, ListInfo.TotalNum, ListInfo.IsRecommend, ListInfo.OrderByString, ListInfo.Where); }
public StlPageComments(string stlPageCommentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { this.pageInfo = pageInfo; this.contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageCommentsElement, isXmlContent); node = xmlDocument.DocumentElement; node = node.FirstChild; displayInfo = ContentsDisplayInfo.GetContentsDisplayInfoByXmlNode(node, pageInfo, this.contextInfo, EContextType.Comment); dataSet = StlDataUtility.GetPageCommentsDataSet(pageInfo.PublishmentSystemId, contextInfo.ChannelID, contextInfo.ContentID, null, displayInfo.StartNum, displayInfo.TotalNum, displayInfo.IsRecommend, displayInfo.OrderByString, displayInfo.Where); }
public StlPageInputContents(string stlPageInputContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { this.pageInfo = pageInfo; this.contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageInputContentsElement, isXmlContent); node = xmlDocument.DocumentElement; node = node.FirstChild; displayInfo = ContentsDisplayInfo.GetContentsDisplayInfoByXmlNode(node, pageInfo, this.contextInfo, EContextType.InputContent); var inputID = DataProvider.InputDao.GetInputIdAsPossible(displayInfo.OtherAttributes[Attribute_InputName], pageInfo.PublishmentSystemId); dataSet = StlDataUtility.GetPageInputContentsDataSet(pageInfo.PublishmentSystemId, inputID, displayInfo); }
public StlPageInputContents(string stlPageInputContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageInputContentsElement, isXmlContent); _node = xmlDocument.DocumentElement; _node = _node?.FirstChild; _listInfo = ListInfo.GetListInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.InputContent); var inputId = DataProvider.InputDao.GetInputIdAsPossible(_listInfo.Others.Get(AttributeInputName), pageInfo.PublishmentSystemId); _dataSet = StlDataUtility.GetPageInputContentsDataSet(pageInfo.PublishmentSystemId, inputId, _listInfo); }
public StlPageChannels(string stlPageChannelsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _stlPageChannelsElement = stlPageChannelsElement; _pageInfo = pageInfo; var xmlDocument = StlParserUtility.GetXmlDocument(_stlPageChannelsElement, isXmlContent); _node = xmlDocument.DocumentElement; _node = _node?.FirstChild; var attributes = new Dictionary <string, string>(); var ie = _node?.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(value)) { value = string.Empty; } attributes[key] = value; } } } _contextInfo = contextInfo.Clone(stlPageChannelsElement, attributes, _node?.InnerXml, _node?.ChildNodes); DisplayInfo = ListInfo.GetListInfoByXmlNode(pageInfo, _contextInfo, EContextType.Channel); var channelId = StlDataUtility.GetChannelIdByLevel(pageInfo.SiteId, _contextInfo.ChannelId, DisplayInfo.UpLevel, DisplayInfo.TopLevel); channelId = StlDataUtility.GetChannelIdByChannelIdOrChannelIndexOrChannelName(pageInfo.SiteId, channelId, DisplayInfo.ChannelIndex, DisplayInfo.ChannelName); var isTotal = TranslateUtils.ToBool(DisplayInfo.Others.Get(AttributeIsTotal)); if (TranslateUtils.ToBool(DisplayInfo.Others.Get(AttributeIsAllChildren))) { DisplayInfo.Scope = EScopeType.Descendant; } _dataSet = StlDataUtility.GetPageChannelsDataSet(pageInfo.SiteId, channelId, DisplayInfo.GroupChannel, DisplayInfo.GroupChannelNot, DisplayInfo.IsImageExists, DisplayInfo.IsImage, DisplayInfo.StartNum, DisplayInfo.TotalNum, DisplayInfo.OrderByString, DisplayInfo.Scope, isTotal, DisplayInfo.Where); }
public static string ParseInDynamicPage(string stlElement, PageInfo pageInfo, string pageUrl, int nodeId, int currentPageIndex, int pageCount, int totalNum, bool isPageRefresh, string ajaxDivId) { string parsedContent; try { var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, false); XmlNode node = xmlDocument.DocumentElement; node = node.FirstChild; var ie = node.Attributes.GetEnumerator(); var autoHide = true; while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var attributeName = attr.Name.ToLower(); if (attributeName.Equals(AttributeAutoHide)) { autoHide = TranslateUtils.ToBool(attr.Value); } } if (pageCount <= 1 && autoHide) { return(string.Empty); } var index = stlElement.IndexOf(">", StringComparison.Ordinal) + 1; var length = stlElement.LastIndexOf("<", StringComparison.Ordinal) - index; if (index <= 0 || length <= 0) { stlElement = node.InnerXml; } else { stlElement = stlElement.Substring(index, length); } parsedContent = StlPageElementParser.ParseStlPageItemsInDynamicPage(stlElement, pageInfo, pageUrl, nodeId, currentPageIndex, pageCount, totalNum, isPageRefresh, ajaxDivId); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
//API StlActionsSearchController调用 public StlPageContents(string stlPageContentsElement, PageInfo pageInfo, ContextInfo contextInfo, int pageNum, string tableName, string whereString) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageContentsElement, false); _node = xmlDocument.DocumentElement; if (_node != null) { _node = _node.FirstChild; var attributes = new Dictionary <string, string>(); var ie = _node?.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(value)) { value = string.Empty; } attributes[key] = value; } } } _contextInfo = contextInfo.Clone(stlPageContentsElement, attributes, _node?.InnerXml, _node?.ChildNodes); ListInfo = ListInfo.GetListInfoByXmlNode(_pageInfo, _contextInfo, EContextType.Content); } ListInfo.Scope = EScopeType.All; ListInfo.Where += whereString; if (pageNum > 0) { ListInfo.PageNum = pageNum; } SqlString = StlDataUtility.GetPageContentsSqlStringBySearch(tableName, ListInfo.GroupContent, ListInfo.GroupContentNot, ListInfo.Tags, ListInfo.IsImageExists, ListInfo.IsImage, ListInfo.IsVideoExists, ListInfo.IsVideo, ListInfo.IsFileExists, ListInfo.IsFile, ListInfo.IsNoDup, ListInfo.StartNum, ListInfo.TotalNum, ListInfo.OrderByString, ListInfo.IsTopExists, ListInfo.IsTop, ListInfo.IsRecommendExists, ListInfo.IsRecommend, ListInfo.IsHotExists, ListInfo.IsHot, ListInfo.IsColorExists, ListInfo.IsColor, ListInfo.Where, ListInfo.Scope, ListInfo.GroupChannel, ListInfo.GroupChannelNot); }
public StlPageSqlContents(string stlPageSqlContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _pageInfo = pageInfo; _contextInfo = contextInfo; try { var xmlDocument = StlParserUtility.GetXmlDocument(stlPageSqlContentsElement, isXmlContent); _node = xmlDocument.DocumentElement; _node = _node?.FirstChild; _listInfo = ListInfo.GetListInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.SqlContent); _dataSet = StlDataUtility.GetPageSqlContentsDataSet(_listInfo.ConnectionString, _listInfo.QueryString, _listInfo.StartNum, _listInfo.TotalNum, _listInfo.OrderByString); } catch { _listInfo = new ListInfo(); } }
public StlPageSqlContents(string stlPageSqlContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { this.pageInfo = pageInfo; this.contextInfo = contextInfo; try { var xmlDocument = StlParserUtility.GetXmlDocument(stlPageSqlContentsElement, isXmlContent); node = xmlDocument.DocumentElement; node = node.FirstChild; displayInfo = ContentsDisplayInfo.GetContentsDisplayInfoByXmlNode(node, pageInfo, this.contextInfo, EContextType.SqlContent); dataSet = StlDataUtility.GetPageSqlContentsDataSet(displayInfo.ConnectionString, displayInfo.QueryString, displayInfo.StartNum, displayInfo.TotalNum, displayInfo.OrderByString); } catch { displayInfo = new ContentsDisplayInfo(); } }
public StlPageContents(string stlPageContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageContentsElement, isXmlContent); _node = xmlDocument.DocumentElement; if (_node != null) { _stlPageContentsElement = _node.InnerXml; _node = _node.FirstChild; var attributes = new Dictionary <string, string>(); var ie = _node?.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(value)) { value = string.Empty; } attributes[key] = value; } } } _contextInfo = contextInfo.Clone(stlPageContentsElement, attributes, _node?.InnerXml, _node?.ChildNodes); ListInfo = ListInfo.GetListInfoByXmlNode(_pageInfo, _contextInfo, EContextType.Content); } var channelId = StlDataUtility.GetChannelIdByLevel(_pageInfo.SiteId, _contextInfo.ChannelId, ListInfo.UpLevel, ListInfo.TopLevel); channelId = StlDataUtility.GetChannelIdByChannelIdOrChannelIndexOrChannelName(_pageInfo.SiteId, channelId, ListInfo.ChannelIndex, ListInfo.ChannelName); SqlString = StlDataUtility.GetStlPageContentsSqlString(_pageInfo.SiteInfo, channelId, ListInfo.GroupContent, ListInfo.GroupContentNot, ListInfo.Tags, ListInfo.IsImageExists, ListInfo.IsImage, ListInfo.IsVideoExists, ListInfo.IsVideo, ListInfo.IsFileExists, ListInfo.IsFile, ListInfo.IsNoDup, ListInfo.StartNum, ListInfo.TotalNum, ListInfo.OrderByString, ListInfo.IsTopExists, ListInfo.IsTop, ListInfo.IsRecommendExists, ListInfo.IsRecommend, ListInfo.IsHotExists, ListInfo.IsHot, ListInfo.IsColorExists, ListInfo.IsColor, ListInfo.Where, ListInfo.Scope, ListInfo.GroupChannel, ListInfo.GroupChannelNot); }
public StlPageSqlContents(string stlPageSqlContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent, bool isLoadData) { _stlPageSqlContentsElement = stlPageSqlContentsElement; _pageInfo = pageInfo; try { var xmlDocument = StlParserUtility.GetXmlDocument(_stlPageSqlContentsElement, isXmlContent); _node = xmlDocument.DocumentElement; _node = _node?.FirstChild; var attributes = new Dictionary <string, string>(); var ie = _node?.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(value)) { value = string.Empty; } attributes[key] = value; } } } _contextInfo = contextInfo.Clone(stlPageSqlContentsElement, attributes, _node?.InnerXml, _node?.ChildNodes); _listInfo = ListInfo.GetListInfoByXmlNode(_pageInfo, _contextInfo, EContextType.SqlContent); if (isLoadData) { _dataSet = StlDataUtility.GetPageSqlContentsDataSet(_listInfo.ConnectionString, _listInfo.QueryString, _listInfo.StartNum, _listInfo.TotalNum, _listInfo.OrderByString); } } catch { _listInfo = new ListInfo(); } }
internal static string ParseStlElement(string stlElement, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent = null; var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, contextInfo.IsInnerElement); XmlNode node = xmlDocument.DocumentElement; if (node != null) { node = node.FirstChild; if (node?.Name != null) { var elementName = node.Name.ToLower(); if (ElementsToTranslateDic.ContainsKey(elementName)) { Func <string, string> func; if (ElementsToTranslateDic.TryGetValue(elementName, out func)) { parsedContent = func(stlElement); } } else if (ElementsToParseDic.ContainsKey(elementName)) { Func <string, XmlNode, PageInfo, ContextInfo, string> func; if (ElementsToParseDic.TryGetValue(elementName, out func)) { parsedContent = func(stlElement, node, pageInfo, contextInfo); } } } } if (parsedContent == null) { return(stlElement); } return(contextInfo.IsInnerElement ? parsedContent : StlParserUtility.GetBackHtml(parsedContent, pageInfo)); }
public StlPageContents(string stlPageContentsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageContentsElement, isXmlContent); _node = xmlDocument.DocumentElement; if (_node != null) { _stlPageContentsElement = _node.InnerXml; _node = _node.FirstChild; ListInfo = ListInfo.GetListInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.Content); } _contextInfo.TitleWordNum = ListInfo.TitleWordNum; var channelId = StlDataUtility.GetNodeIdByLevel(pageInfo.PublishmentSystemId, _contextInfo.ChannelId, ListInfo.UpLevel, ListInfo.TopLevel); channelId = StlCacheManager.NodeId.GetNodeIdByChannelIdOrChannelIndexOrChannelName(pageInfo.PublishmentSystemId, channelId, ListInfo.ChannelIndex, ListInfo.ChannelName); SqlString = StlDataUtility.GetPageContentsSqlString(_pageInfo.PublishmentSystemInfo, channelId, ListInfo.GroupContent, ListInfo.GroupContentNot, ListInfo.Tags, ListInfo.IsImageExists, ListInfo.IsImage, ListInfo.IsVideoExists, ListInfo.IsVideo, ListInfo.IsFileExists, ListInfo.IsFile, ListInfo.IsNoDup, ListInfo.StartNum, ListInfo.TotalNum, ListInfo.OrderByString, ListInfo.IsTopExists, ListInfo.IsTop, ListInfo.IsRecommendExists, ListInfo.IsRecommend, ListInfo.IsHotExists, ListInfo.IsHot, ListInfo.IsColorExists, ListInfo.IsColor, ListInfo.Where, ListInfo.Scope, ListInfo.GroupChannel, ListInfo.GroupChannelNot); }
public StlPageChannels(string stlPageChannelsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { _pageInfo = pageInfo; _contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageChannelsElement, isXmlContent); _node = xmlDocument.DocumentElement; _node = _node?.FirstChild; DisplayInfo = ListInfo.GetListInfoByXmlNode(_node, pageInfo, _contextInfo, EContextType.Channel); var channelId = StlDataUtility.GetNodeIdByLevel(pageInfo.PublishmentSystemId, _contextInfo.ChannelId, DisplayInfo.UpLevel, DisplayInfo.TopLevel); channelId = StlCacheManager.NodeId.GetNodeIdByChannelIdOrChannelIndexOrChannelName(pageInfo.PublishmentSystemId, channelId, DisplayInfo.ChannelIndex, DisplayInfo.ChannelName); var isTotal = TranslateUtils.ToBool(DisplayInfo.Others.Get(AttributeIsTotal)); if (TranslateUtils.ToBool(DisplayInfo.Others.Get(AttributeIsAllChildren))) { DisplayInfo.Scope = EScopeType.Descendant; } _dataSet = StlDataUtility.GetPageChannelsDataSet(pageInfo.PublishmentSystemId, channelId, DisplayInfo.GroupChannel, DisplayInfo.GroupChannelNot, DisplayInfo.IsImageExists, DisplayInfo.IsImage, DisplayInfo.StartNum, DisplayInfo.TotalNum, DisplayInfo.OrderByString, DisplayInfo.Scope, isTotal, DisplayInfo.Where); }
public StlPageChannels(string stlPageChannelsElement, PageInfo pageInfo, ContextInfo contextInfo, bool isXmlContent) { this.pageInfo = pageInfo; this.contextInfo = contextInfo; var xmlDocument = StlParserUtility.GetXmlDocument(stlPageChannelsElement, isXmlContent); node = xmlDocument.DocumentElement; node = node.FirstChild; displayInfo = ContentsDisplayInfo.GetContentsDisplayInfoByXmlNode(node, pageInfo, this.contextInfo, EContextType.Channel); channelID = StlDataUtility.GetNodeIdByLevel(pageInfo.PublishmentSystemId, this.contextInfo.ChannelID, displayInfo.UpLevel, displayInfo.TopLevel); channelID = StlCacheManager.NodeId.GetNodeIdByChannelIdOrChannelIndexOrChannelName(pageInfo.PublishmentSystemId, channelID, displayInfo.ChannelIndex, displayInfo.ChannelName); var isTotal = TranslateUtils.ToBool(displayInfo.OtherAttributes[AttributeIsTotal]); if (TranslateUtils.ToBool(displayInfo.OtherAttributes[AttributeIsAllChildren])) { displayInfo.Scope = EScopeType.Descendant; } dataSet = StlDataUtility.GetPageChannelsDataSet(pageInfo.PublishmentSystemId, channelID, displayInfo.GroupChannel, displayInfo.GroupChannelNot, displayInfo.IsImageExists, displayInfo.IsImage, displayInfo.StartNum, displayInfo.TotalNum, displayInfo.OrderByString, displayInfo.Scope, isTotal, displayInfo.Where); }
internal static string ParseStlElement(string stlElement, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent = null; //var parsedContent = StlCacheManager.ParsedContent.GetParsedContent(stlElement, pageInfo, contextInfo); //if (parsedContent != null) return parsedContent; var xmlDocument = StlParserUtility.GetXmlDocument(stlElement, contextInfo.IsInnerElement); XmlNode node = xmlDocument.DocumentElement; if (node != null) { node = node.FirstChild; if (node?.Name != null) { var elementName = node.Name.ToLower(); if (ElementsToTranslateDic.ContainsKey(elementName)) { Func <string, string> func; if (ElementsToTranslateDic.TryGetValue(elementName, out func)) { parsedContent = func(stlElement); } } else if (ElementsToParseDic.ContainsKey(elementName)) { var isDynamic = false; var attributes = new Dictionary <string, string>(); var innerXml = StringUtils.Trim(node.InnerXml); var childNodes = node.ChildNodes; var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, "isDynamic")) { isDynamic = TranslateUtils.ToBool(attr.Value, false); } else { var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(StringUtils.Trim(value))) { value = string.Empty; } attributes[key] = value; } } } } if (isDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { try { Func <PageInfo, ContextInfo, string> func; if (ElementsToParseDic.TryGetValue(elementName, out func)) { parsedContent = func(pageInfo, contextInfo.Clone(stlElement, attributes, innerXml, childNodes)); } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(elementName, stlElement, ex); } } } else { var parsers = PluginStlParserContentManager.GetParses(); if (parsers.ContainsKey(elementName)) { var isDynamic = false; var attributes = new Dictionary <string, string>(); var innerXml = StringUtils.Trim(node.InnerXml); var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, "isDynamic")) { isDynamic = TranslateUtils.ToBool(attr.Value, false); } else { var key = attr.Name; if (!string.IsNullOrEmpty(key)) { var value = attr.Value; if (string.IsNullOrEmpty(StringUtils.Trim(value))) { value = string.Empty; } attributes[key] = value; } } } } if (isDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { try { Func <PluginParseContext, string> func; if (parsers.TryGetValue(elementName, out func)) { var context = new PluginParseContext(attributes, innerXml, pageInfo, contextInfo); parsedContent = func(context); } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(elementName, stlElement, ex); } } } } } } if (parsedContent == null) { parsedContent = stlElement; } else { parsedContent = contextInfo.IsInnerElement ? parsedContent : StlParserUtility.GetBackHtml(parsedContent, pageInfo); } //StlCacheManager.ParsedContent.SetParsedContent(stlElement, pageInfo, contextInfo, parsedContent); return(parsedContent); }