public static string Parse(PageInfo pageInfo, ContextInfo contextInfo) { var type = string.Empty; var channelIndex = string.Empty; var channelName = string.Empty; var upLevel = 0; var topLevel = -1; var scope = EScopeType.Self; var since = string.Empty; foreach (var name in contextInfo.Attributes.Keys) { var value = contextInfo.Attributes[name]; if (StringUtils.EqualsIgnoreCase(name, AttributeType)) { type = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeChannelIndex)) { channelIndex = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeChannelName)) { channelName = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeUpLevel)) { upLevel = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeTopLevel)) { topLevel = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeScope)) { scope = EScopeTypeUtils.GetEnumType(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeSince)) { since = value; } } return(ParseImpl(pageInfo, contextInfo, type, channelIndex, channelName, upLevel, topLevel, scope, since)); }
public static List <int> GetNodeIdListByScopeType(NodeInfo nodeInfo, EScopeType scopeType) { List <int> list; var dic = GetDictionary(); var key = EScopeTypeUtils.GetValue(scopeType) + nodeInfo.NodeId; if (dic.ContainsKey(key)) { list = dic[key]; } else { list = DataProvider.NodeDao.GetNodeIdListByScopeType(nodeInfo, scopeType, string.Empty, string.Empty); dic[key] = list; } return(list); }
public static List <int> GetIdListByScopeType(int channelId, EScopeType scopeType, string groupChannel, string groupChannelNot) { var cacheKey = StlCacheUtils.GetCacheKey(nameof(Node), nameof(GetIdListByScopeType), channelId.ToString(), EScopeTypeUtils.GetValue(scopeType), groupChannel, groupChannelNot); var retval = StlCacheUtils.GetCache <List <int> >(cacheKey); if (retval != null) { return(retval); } lock (LockObject) { retval = StlCacheUtils.GetCache <List <int> >(cacheKey); if (retval == null) { retval = DataProvider.ChannelDao.GetIdListByScopeType(channelId, scopeType, groupChannel, groupChannelNot); StlCacheUtils.SetCache(cacheKey, retval); } } return(retval); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, HtmlSelect selectControl, bool isChannel, string channelIndex, string channelName, int upLevel, int topLevel, string scopeTypeString, string groupChannel, string groupChannelNot, string groupContent, string groupContentNot, string tags, string order, int totalNum, int titleWordNum, string where, string queryString, bool isTop, bool isTopExists, bool isRecommend, bool isRecommendExists, bool isHot, bool isHotExists, bool isColor, bool isColorExists, string displayTitle, bool openWin) { EScopeType scopeType; if (!string.IsNullOrEmpty(scopeTypeString)) { scopeType = EScopeTypeUtils.GetEnumType(scopeTypeString); } else { scopeType = isChannel ? EScopeType.Children : EScopeType.Self; } var orderByString = isChannel ? StlDataUtility.GetChannelOrderByString(pageInfo.SiteId, order, ETaxisType.OrderByTaxis) : StlDataUtility.GetContentOrderByString(pageInfo.SiteId, order, ETaxisType.OrderByTaxisDesc); var channelId = StlDataUtility.GetChannelIdByLevel(pageInfo.SiteId, contextInfo.ChannelId, upLevel, topLevel); channelId = StlDataUtility.GetChannelIdByChannelIdOrChannelIndexOrChannelName(pageInfo.SiteId, channelId, channelIndex, channelName); var channel = ChannelManager.GetChannelInfo(pageInfo.SiteId, channelId); var uniqueId = "Select_" + pageInfo.UniqueId; selectControl.ID = uniqueId; string scriptHtml; if (openWin) { scriptHtml = $@" <script language=""JavaScript"" type=""text/JavaScript""> <!-- function {uniqueId}_jumpMenu(targ,selObj) {"{"} //v3.0 window.open(selObj.options[selObj.selectedIndex].value); selObj.selectedIndex=0; {"}"} //--> </script>"; selectControl.Attributes.Add("onChange", $"{uniqueId}_jumpMenu('parent',this)"); } else { scriptHtml = $"<script language=\"JavaScript\">function {uniqueId}_jumpMenu(targ,selObj,restore){{eval(targ+\".location=\'\"+selObj.options[selObj.selectedIndex].value+\"\'\");if (restore) selObj.selectedIndex=0;}}</script>"; selectControl.Attributes.Add("onChange", $"{uniqueId}_jumpMenu('self',this,0)"); } if (!string.IsNullOrEmpty(displayTitle)) { var listitem = new ListItem(displayTitle, PageUtils.UnclickedUrl) { Selected = true }; selectControl.Items.Add(listitem); } if (isChannel) { var channelIdList = StlDataUtility.GetChannelIdList(pageInfo.SiteId, channel.Id, orderByString, scopeType, groupChannel, groupChannelNot, false, false, totalNum, where); if (channelIdList != null && channelIdList.Count > 0) { foreach (var channelIdInSelect in channelIdList) { var nodeInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, channelIdInSelect); if (nodeInfo != null) { var title = StringUtils.MaxLengthText(nodeInfo.ChannelName, titleWordNum); var url = PageUtility.GetChannelUrl(pageInfo.SiteInfo, nodeInfo, pageInfo.IsLocal); if (!string.IsNullOrEmpty(queryString)) { url = PageUtils.AddQueryString(url, queryString); } var listitem = new ListItem(title, url); selectControl.Items.Add(listitem); } } } } else { var dataSource = StlDataUtility.GetContentsDataSource(pageInfo.SiteInfo, channelId, contextInfo.ContentId, groupContent, groupContentNot, tags, false, false, false, false, false, false, false, false, 1, totalNum, orderByString, isTopExists, isTop, isRecommendExists, isRecommend, isHotExists, isHot, isColorExists, isColor, where, scopeType, groupChannel, groupChannelNot, null); if (dataSource != null) { foreach (var dataItem in dataSource.Tables[0].Rows) { var contentInfo = new ContentInfo(dataItem); if (contentInfo != null) { var title = StringUtils.MaxLengthText(contentInfo.Title, titleWordNum); var url = PageUtility.GetContentUrl(pageInfo.SiteInfo, contentInfo, pageInfo.IsLocal); if (!string.IsNullOrEmpty(queryString)) { url = PageUtils.AddQueryString(url, queryString); } var listitem = new ListItem(title, url); selectControl.Items.Add(listitem); } } //foreach (var dataItem in dataSource) //{ // var contentInfo = new BackgroundContentInfo(dataItem); // if (contentInfo != null) // { // var title = StringUtils.MaxLengthText(contentInfo.Title, titleWordNum); // var url = PageUtility.GetContentUrl(pageInfo.SiteInfo, contentInfo); // if (!string.IsNullOrEmpty(queryString)) // { // url = PageUtils.AddQueryString(url, queryString); // } // var listitem = new ListItem(title, url); // selectControl.Items.Add(listitem); // } //} } } return(scriptHtml + ControlUtils.GetControlRenderHtml(selectControl)); }
public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent; try { var type = string.Empty; var channelIndex = string.Empty; var channelName = string.Empty; var upLevel = 0; var topLevel = -1; var scope = EScopeType.Self; var since = string.Empty; var isDynamic = false; var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeType)) { type = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeChannelIndex)) { channelIndex = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeChannelName)) { channelName = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeUpLevel)) { upLevel = TranslateUtils.ToInt(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeTopLevel)) { topLevel = TranslateUtils.ToInt(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeScope)) { scope = EScopeTypeUtils.GetEnumType(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeSince)) { since = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeIsDynamic)) { isDynamic = TranslateUtils.ToBool(attr.Value, false); } } } parsedContent = isDynamic ? StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo) : ParseImpl(pageInfo, contextInfo, type, channelIndex, channelName, upLevel, topLevel, scope, since); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
//对“flash滚动焦点图”(stl:focusViewer)元素进行解析 public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; try { var genericControl = new HtmlGenericControl("div"); var ie = node.Attributes.GetEnumerator(); var channelIndex = string.Empty; var channelName = string.Empty; var scopeType = EScopeType.Self; var groupChannel = string.Empty; var groupChannelNot = string.Empty; var groupContent = string.Empty; var groupContentNot = string.Empty; var tags = string.Empty; var orderByString = ETaxisTypeUtils.GetOrderByString(ETableStyle.BackgroundContent, ETaxisType.OrderByTaxisDesc, string.Empty, null); var startNum = 1; var totalNum = 0; var isShowText = true; var isTopText = string.Empty; var titleWordNum = 0; var where = string.Empty; var isTop = false; var isTopExists = false; var isRecommend = false; var isRecommendExists = false; var isHot = false; var isHotExists = false; var isColor = false; var isColorExists = false; var theme = string.Empty; var imageWidth = 260; var imageHeight = 182; var textHeight = 25; var bgColor = string.Empty; var isDynamic = false; while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; var attributeName = attr.Name.ToLower(); if (attributeName.Equals(Attribute_ChannelIndex)) { channelIndex = attr.Value; } else if (attributeName.Equals(Attribute_ChannelName)) { channelName = attr.Value; } else if (attributeName.Equals(Attribute_Scope)) { scopeType = EScopeTypeUtils.GetEnumType(attr.Value); } else if (attributeName.Equals(Attribute_GroupChannel)) { groupChannel = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (attributeName.Equals(Attribute_GroupChannelNot)) { groupChannelNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (attributeName.Equals(Attribute_GroupContent)) { groupContent = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (attributeName.Equals(Attribute_GroupContentNot)) { groupContentNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (attributeName.Equals(Attribute_Tags)) { tags = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (attributeName.Equals(Attribute_Order)) { orderByString = StlDataUtility.GetOrderByString(pageInfo.PublishmentSystemId, attr.Value, ETableStyle.BackgroundContent, ETaxisType.OrderByTaxisDesc); } else if (attributeName.Equals(Attribute_StartNum)) { startNum = TranslateUtils.ToInt(attr.Value, 1); } else if (attributeName.Equals(Attribute_TotalNum)) { totalNum = TranslateUtils.ToInt(attr.Value); } else if (attributeName.Equals(Attribute_TitleWordNum)) { titleWordNum = TranslateUtils.ToInt(attr.Value); } else if (attributeName.Equals(Attribute_Where)) { where = attr.Value; } else if (attributeName.Equals(Attribute_IsTop)) { isTopExists = true; isTop = TranslateUtils.ToBool(attr.Value); } else if (attributeName.Equals(Attribute_IsRecommend)) { isRecommendExists = true; isRecommend = TranslateUtils.ToBool(attr.Value); } else if (attributeName.Equals(Attribute_IsHot)) { isHotExists = true; isHot = TranslateUtils.ToBool(attr.Value); } else if (attributeName.Equals(Attribute_IsColor)) { isColorExists = true; isColor = TranslateUtils.ToBool(attr.Value); } else if (attributeName.Equals(Attribute_Theme)) { theme = attr.Value; } else if (attributeName.Equals(Attribute_Width)) { if (StringUtils.EndsWithIgnoreCase(attr.Value, "px")) { attr.Value = attr.Value.Substring(0, attr.Value.Length - 2); } imageWidth = TranslateUtils.ToInt(attr.Value); } else if (attributeName.Equals(Attribute_Height)) { if (StringUtils.EndsWithIgnoreCase(attr.Value, "px")) { attr.Value = attr.Value.Substring(0, attr.Value.Length - 2); } imageHeight = TranslateUtils.ToInt(attr.Value); } else if (attributeName.Equals(Attribute_BgColor)) { bgColor = attr.Value; } else if (attributeName.Equals(Attribute_IsShowText)) { isShowText = TranslateUtils.ToBool(attr.Value, true); } else if (attributeName.Equals(Attribute_IsTopText)) { isTopText = attr.Value; } else if (attributeName.Equals(Attribute_IsDynamic)) { isDynamic = TranslateUtils.ToBool(attr.Value); } else { genericControl.Attributes.Remove(attributeName); genericControl.Attributes.Add(attributeName, attr.Value); } } if (isDynamic) { parsedContent = StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo); } else { parsedContent = ParseImpl(pageInfo, contextInfo, genericControl, channelIndex, channelName, scopeType, groupChannel, groupChannelNot, groupContent, groupContentNot, tags, orderByString, startNum, totalNum, isShowText, isTopText, titleWordNum, where, isTop, isTopExists, isRecommend, isRecommendExists, isHot, isHotExists, isColor, isColorExists, theme, imageWidth, imageHeight, textHeight, bgColor); } } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string version, string title, string description, string scopeTypeString, string groupChannel, string groupChannelNot, string groupContent, string groupContentNot, string tags, string channelIndex, string channelName, int totalNum, int startNum, string orderByString, bool isTop, bool isTopExists, bool isRecommend, bool isRecommendExists, bool isHot, bool isHotExists, bool isColor, bool isColorExists) { var parsedContent = string.Empty; var feed = new RssFeed(); feed.Encoding = ECharsetUtils.GetEncoding(pageInfo.TemplateInfo.Charset); if (string.IsNullOrEmpty(version)) { feed.Version = RssVersion.RSS20; } else { feed.Version = (RssVersion)TranslateUtils.ToEnum(typeof(RssVersion), version, RssVersion.RSS20); } var channel = new RssChannel(); channel.Title = title; channel.Description = description; EScopeType scopeType; if (!string.IsNullOrEmpty(scopeTypeString)) { scopeType = EScopeTypeUtils.GetEnumType(scopeTypeString); } else { scopeType = EScopeType.All; } var channelID = StlCacheManager.NodeId.GetNodeIdByChannelIdOrChannelIndexOrChannelName(pageInfo.PublishmentSystemId, contextInfo.ChannelID, channelIndex, channelName); var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, channelID); if (string.IsNullOrEmpty(channel.Title)) { channel.Title = nodeInfo.NodeName; } if (string.IsNullOrEmpty(channel.Description)) { channel.Description = nodeInfo.Content; if (string.IsNullOrEmpty(channel.Description)) { channel.Description = nodeInfo.NodeName; } else { channel.Description = StringUtils.MaxLengthText(channel.Description, 200); } } channel.Link = new Uri(PageUtils.AddProtocolToUrl(PageUtility.GetChannelUrl(pageInfo.PublishmentSystemInfo, nodeInfo))); var dataSource = StlDataUtility.GetContentsDataSource(pageInfo.PublishmentSystemInfo, channelID, 0, groupContent, groupContentNot, tags, false, false, false, false, false, false, false, false, startNum, totalNum, orderByString, isTopExists, isTop, isRecommendExists, isRecommend, isHotExists, isHot, isColorExists, isColor, string.Empty, scopeType, groupChannel, groupChannelNot, null); if (dataSource != null) { foreach (var dataItem in dataSource) { var item = new RssItem(); var contentInfo = new BackgroundContentInfo(dataItem); item.Title = StringUtils.Replace("&", contentInfo.Title, "&"); item.Description = contentInfo.Summary; if (string.IsNullOrEmpty(item.Description)) { item.Description = StringUtils.StripTags(contentInfo.Content); if (string.IsNullOrEmpty(item.Description)) { item.Description = contentInfo.Title; } else { item.Description = StringUtils.MaxLengthText(item.Description, 200); } } item.Description = StringUtils.Replace("&", item.Description, "&"); item.PubDate = contentInfo.AddDate; item.Link = new Uri(PageUtils.AddProtocolToUrl(PageUtility.GetContentUrl(pageInfo.PublishmentSystemInfo, contentInfo))); channel.Items.Add(item); } } feed.Channels.Add(channel); var builder = new StringBuilder(); var textWriter = new EncodedStringWriter(builder, ECharsetUtils.GetEncoding(pageInfo.TemplateInfo.Charset)); feed.Write(textWriter); parsedContent = builder.ToString(); return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string title, string description, string scopeTypeString, string groupChannel, string groupChannelNot, string groupContent, string groupContentNot, string tags, string channelIndex, string channelName, int totalNum, int startNum, string orderByString, bool isTop, bool isTopExists, bool isRecommend, bool isRecommendExists, bool isHot, bool isHotExists, bool isColor, bool isColorExists) { var feed = new RssFeed { Encoding = ECharsetUtils.GetEncoding(pageInfo.TemplateInfo.Charset), Version = RssVersion.RSS20 }; var channel = new RssChannel { Title = title, Description = description }; var scopeType = !string.IsNullOrEmpty(scopeTypeString) ? EScopeTypeUtils.GetEnumType(scopeTypeString) : EScopeType.All; var channelId = StlDataUtility.GetChannelIdByChannelIdOrChannelIndexOrChannelName(pageInfo.SiteId, contextInfo.ChannelId, channelIndex, channelName); var nodeInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, channelId); if (string.IsNullOrEmpty(channel.Title)) { channel.Title = nodeInfo.ChannelName; } if (string.IsNullOrEmpty(channel.Description)) { channel.Description = nodeInfo.Content; channel.Description = string.IsNullOrEmpty(channel.Description) ? nodeInfo.ChannelName : StringUtils.MaxLengthText(channel.Description, 200); } channel.Link = new Uri(PageUtils.AddProtocolToUrl(PageUtility.GetChannelUrl(pageInfo.SiteInfo, nodeInfo, pageInfo.IsLocal))); var minContentInfoList = StlDataUtility.GetMinContentInfoList(pageInfo.SiteInfo, channelId, 0, groupContent, groupContentNot, tags, false, false, false, false, false, false, false, startNum, totalNum, orderByString, isTopExists, isTop, isRecommendExists, isRecommend, isHotExists, isHot, isColorExists, isColor, string.Empty, scopeType, groupChannel, groupChannelNot, null); if (minContentInfoList != null) { foreach (var minContentInfo in minContentInfoList) { var item = new RssItem(); var contentInfo = ContentManager.GetContentInfo(pageInfo.SiteInfo, minContentInfo.ChannelId, minContentInfo.Id); item.Title = StringUtils.Replace("&", contentInfo.Title, "&"); item.Description = contentInfo.Summary; if (string.IsNullOrEmpty(item.Description)) { item.Description = StringUtils.StripTags(contentInfo.Content); item.Description = string.IsNullOrEmpty(item.Description) ? contentInfo.Title : StringUtils.MaxLengthText(item.Description, 200); } item.Description = StringUtils.Replace("&", item.Description, "&"); item.PubDate = contentInfo.AddDate.Value; item.Link = new Uri(PageUtils.AddProtocolToUrl(PageUtility.GetContentUrl(pageInfo.SiteInfo, contentInfo, false))); channel.Items.Add(item); } } feed.Channels.Add(channel); var builder = new StringBuilder(); var textWriter = new EncodedStringWriter(builder, ECharsetUtils.GetEncoding(pageInfo.TemplateInfo.Charset)); feed.Write(textWriter); return(builder.ToString()); }
//对“flash滚动焦点图”(stl:focusViewer)元素进行解析 public static string Parse(PageInfo pageInfo, ContextInfo contextInfo) { // 如果是实体标签则返回空 if (contextInfo.IsStlEntity) { return(string.Empty); } var channelIndex = string.Empty; var channelName = string.Empty; var scopeType = EScopeType.Self; var groupChannel = string.Empty; var groupChannelNot = string.Empty; var groupContent = string.Empty; var groupContentNot = string.Empty; var tags = string.Empty; var orderByString = ETaxisTypeUtils.GetContentOrderByString(ETaxisType.OrderByTaxisDesc); var startNum = 1; var totalNum = 0; var isShowText = true; var isTopText = string.Empty; var titleWordNum = 0; var where = string.Empty; var isTop = false; var isTopExists = false; var isRecommend = false; var isRecommendExists = false; var isHot = false; var isHotExists = false; var isColor = false; var isColorExists = false; var theme = string.Empty; var imageWidth = 260; var imageHeight = 182; var textHeight = 25; var bgColor = string.Empty; var genericControl = new HtmlGenericControl("div"); foreach (var name in contextInfo.Attributes.AllKeys) { var value = contextInfo.Attributes[name]; if (StringUtils.EqualsIgnoreCase(name, AttributeChannelIndex)) { channelIndex = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeChannelName)) { channelName = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeScope)) { scopeType = EScopeTypeUtils.GetEnumType(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeGroupChannel)) { groupChannel = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, AttributeGroupChannelNot)) { groupChannelNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, AttributeGroupContent)) { groupContent = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, AttributeGroupContentNot)) { groupContentNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, AttributeTags)) { tags = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, AttributeOrder)) { orderByString = StlDataUtility.GetContentOrderByString(pageInfo.SiteId, value, ETaxisType.OrderByTaxisDesc); } else if (StringUtils.EqualsIgnoreCase(name, AttributeStartNum)) { startNum = TranslateUtils.ToInt(value, 1); } else if (StringUtils.EqualsIgnoreCase(name, AttributeTotalNum)) { totalNum = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeTitleWordNum)) { titleWordNum = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeWhere)) { where = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeIsTop)) { isTopExists = true; isTop = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeIsRecommend)) { isRecommendExists = true; isRecommend = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeIsHot)) { isHotExists = true; isHot = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeIsColor)) { isColorExists = true; isColor = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeTheme)) { theme = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeWidth)) { if (StringUtils.EndsWithIgnoreCase(value, "px")) { value = value.Substring(0, value.Length - 2); } imageWidth = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeHeight)) { if (StringUtils.EndsWithIgnoreCase(value, "px")) { value = value.Substring(0, value.Length - 2); } imageHeight = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, AttributeBgColor)) { bgColor = value; } else if (StringUtils.EqualsIgnoreCase(name, AttributeIsShowText)) { isShowText = TranslateUtils.ToBool(value, true); } else if (StringUtils.EqualsIgnoreCase(name, AttributeIsTopText)) { isTopText = value; } else { genericControl.Attributes[name] = value; } } return(ParseImpl(pageInfo, contextInfo, genericControl, channelIndex, channelName, scopeType, groupChannel, groupChannelNot, groupContent, groupContentNot, tags, orderByString, startNum, totalNum, isShowText, isTopText, titleWordNum, where, isTop, isTopExists, isRecommend, isRecommendExists, isHot, isHotExists, isColor, isColorExists, theme, imageWidth, imageHeight, textHeight, bgColor)); }
public static ListInfo GetListInfo(PageInfo pageInfo, ContextInfo contextInfo, EContextType contextType) { var listInfo = new ListInfo { _contextType = contextType }; var innerHtml = contextInfo.InnerHtml; var itemTemplate = string.Empty; if (!string.IsNullOrEmpty(innerHtml)) { var stlElementList = StlParserUtility.GetStlElementList(innerHtml); if (stlElementList.Count > 0) { foreach (var theStlElement in stlElementList) { if (StlParserUtility.IsSpecifiedStlElement(theStlElement, StlItemTemplate.ElementName)) { var attributes = TranslateUtils.NewIgnoreCaseNameValueCollection(); var templateString = StlParserUtility.GetInnerHtml(theStlElement, attributes); if (!string.IsNullOrEmpty(templateString)) { foreach (var key in attributes.AllKeys) { if (!StringUtils.EqualsIgnoreCase(key, StlItemTemplate.Type)) { continue; } var type = attributes[key]; if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeItem)) { itemTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeHeader)) { listInfo.HeaderTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeFooter)) { listInfo.FooterTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeAlternatingItem)) { listInfo.AlternatingItemTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeSelectedItem)) { if (!string.IsNullOrEmpty(attributes[StlItemTemplate.Selected])) { var selected = attributes[StlItemTemplate.Selected]; var list = new List <string>(); if (selected.IndexOf(',') != -1) { list.AddRange(selected.Split(',')); } else { if (selected.IndexOf('-') != -1) { var first = TranslateUtils.ToInt(selected.Split('-')[0]); var second = TranslateUtils.ToInt(selected.Split('-')[1]); for (var i = first; i <= second; i++) { list.Add(i.ToString()); } } else { list.Add(selected); } } foreach (string val in list) { listInfo.SelectedItems.Set(val, templateString); } if (!string.IsNullOrEmpty(attributes[StlItemTemplate.SelectedValue])) { var selectedValue = attributes[StlItemTemplate.SelectedValue]; listInfo.SelectedValues.Set(selectedValue, templateString); } } } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeSeparator)) { var selectedValue = TranslateUtils.ToInt(attributes[StlItemTemplate.SelectedValue], 1); if (selectedValue <= 1) { listInfo.SeparatorTemplate = templateString; } else { listInfo.SeparatorRepeatTemplate = templateString; listInfo.SeparatorRepeat = selectedValue; } } } } innerHtml = innerHtml.Replace(theStlElement, string.Empty); } else if (StlParserUtility.IsSpecifiedStlElement(theStlElement, StlLoading.ElementName)) { var innerBuilder = new StringBuilder(StlParserUtility.GetInnerHtml(theStlElement)); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); listInfo.LoadingTemplate = innerBuilder.ToString(); innerHtml = innerHtml.Replace(theStlElement, string.Empty); } else if (contextType == EContextType.SqlContent && StlParserUtility.IsSpecifiedStlElement(theStlElement, StlQueryString.ElementName)) { var innerBuilder = new StringBuilder(StlParserUtility.GetInnerHtml(theStlElement)); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); listInfo.QueryString = innerBuilder.ToString(); innerHtml = innerHtml.Replace(theStlElement, string.Empty); } } } } if (string.IsNullOrEmpty(itemTemplate)) { listInfo.ItemTemplate = !string.IsNullOrEmpty(innerHtml) ? innerHtml : "<stl:a target=\"_blank\"></stl:a>"; } else { listInfo.ItemTemplate = itemTemplate; } var isSetDirection = false;//是否设置了direction属性 foreach (var name in contextInfo.Attributes.AllKeys) { var value = contextInfo.Attributes[name]; if (StringUtils.EqualsIgnoreCase(name, StlListBase.ChannelIndex)) { listInfo.ChannelIndex = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ChannelName)) { listInfo.ChannelName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Parent)) { listInfo.UpLevel = 1; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.UpLevel)) { listInfo.UpLevel = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.TopLevel)) { listInfo.TopLevel = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Scope)) { listInfo.Scope = EScopeTypeUtils.GetEnumType(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsTop)) { listInfo.IsTop = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsRecommend)) { listInfo.IsRecommend = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsHot)) { listInfo.IsHot = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsColor)) { listInfo.IsColor = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Where)) { listInfo.Where = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.TotalNum)) { listInfo.TotalNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(name, StlPageContents.PageNum)) { listInfo.PageNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo), Constants.PageSize); } else if (StringUtils.EqualsIgnoreCase(name, StlPageContents.MaxPage)) { listInfo.MaxPage = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.StartNum)) { listInfo.StartNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Order)) { if (contextType == EContextType.Content) { listInfo.OrderByString = StlDataUtility.GetContentOrderByString(pageInfo.SiteId, value, ETaxisType.OrderByTaxisDesc); } else if (contextType == EContextType.Channel) { listInfo.OrderByString = StlDataUtility.GetChannelOrderByString(pageInfo.SiteId, value, ETaxisType.OrderByTaxis); } //else if (contextType == EContextType.InputContent) //{ // listInfo.OrderByString = StlDataUtility.GetOrderByString(pageInfo.SiteId, value, ETableStyle.InputContent, ETaxisType.OrderByTaxisDesc); //} else { listInfo.OrderByString = value; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupChannel)) { listInfo.GroupChannel = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupChannel)) { listInfo.GroupChannel = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupChannelNot)) { listInfo.GroupChannelNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupChannelNot)) { listInfo.GroupChannelNot = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupContent) || StringUtils.EqualsIgnoreCase(name, "group")) { listInfo.GroupContent = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupContent)) { listInfo.GroupContent = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupContentNot) || StringUtils.EqualsIgnoreCase(name, "groupNot")) { listInfo.GroupContentNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupContentNot)) { listInfo.GroupContentNot = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Tags)) { listInfo.Tags = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Columns)) { listInfo.Columns = TranslateUtils.ToInt(value); listInfo.Layout = ELayout.Table; if (listInfo.Columns > 1 && isSetDirection == false) { listInfo.Direction = RepeatDirection.Horizontal; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Direction)) { listInfo.Layout = ELayout.Table; listInfo.Direction = TranslateUtils.ToRepeatDirection(value); isSetDirection = true; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Height)) { try { listInfo.Height = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Width)) { try { listInfo.Width = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Align)) { listInfo.Align = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemHeight)) { try { listInfo.ItemHeight = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemWidth)) { try { listInfo.ItemWidth = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemAlign)) { listInfo.ItemAlign = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemVerticalAlign)) { listInfo.ItemVerticalAlign = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemClass)) { listInfo.ItemClass = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsImage)) { listInfo.IsImage = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsVideo)) { listInfo.IsVideo = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsFile)) { listInfo.IsFile = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlContents.IsRelatedContents)) { listInfo.IsRelatedContents = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Layout)) { listInfo.Layout = ELayoutUtils.GetEnumType(value); } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(name, StlSqlContents.ConnectionString)) { listInfo.ConnectionString = value; } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(name, StlSqlContents.ConnectionStringName)) { listInfo.ConnectionString = WebConfigUtils.GetConnectionStringByName(value); if (string.IsNullOrEmpty(listInfo.ConnectionString)) { listInfo.ConnectionString = WebConfigUtils.ConnectionString; } } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(name, StlSqlContents.QueryString)) { listInfo.QueryString = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else { listInfo.Others.Set(name, value); } } return(listInfo); }
public static string GetStlSqlStringChecked(string tableName, int siteId, int channelId, int startNum, int totalNum, string orderByString, string whereString, EScopeType scopeType, string groupChannel, string groupChannelNot) { var cacheKey = StlCacheUtils.GetCacheKey(nameof(Content), nameof(GetStlSqlStringChecked), tableName, siteId.ToString(), channelId.ToString(), startNum.ToString(), totalNum.ToString(), orderByString, whereString, EScopeTypeUtils.GetValue(scopeType), groupChannel, groupChannelNot); var retval = StlCacheUtils.GetCache <string>(cacheKey); if (retval != null) { return(retval); } lock (LockObject) { retval = StlCacheUtils.GetCache <string>(cacheKey); if (retval == null) { var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); var channelIdList = ChannelManager.GetChannelIdList(channelInfo, scopeType, groupChannel, groupChannelNot, string.Empty); retval = DataProvider.ContentDao.GetStlSqlStringChecked(channelIdList, tableName, siteId, channelId, startNum, totalNum, orderByString, whereString, scopeType, groupChannel, groupChannelNot); StlCacheUtils.SetCache(cacheKey, retval); } } return(retval); }
public static int GetCountOfContentAdd(string tableName, int siteId, int channelId, EScopeType scope, DateTime begin, DateTime end, string userName, ETriState checkedState) { var cacheKey = StlCacheUtils.GetCacheKey(nameof(Content), nameof(GetCountOfContentAdd), siteId.ToString(), channelId.ToString(), EScopeTypeUtils.GetValue(scope), DateUtils.GetDateString(begin), DateUtils.GetDateString(end), userName, ETriStateUtils.GetValue(checkedState)); var retval = StlCacheUtils.GetIntCache(cacheKey); if (retval != -1) { return(retval); } lock (LockObject) { retval = StlCacheUtils.GetIntCache(cacheKey); if (retval == -1) { retval = DataProvider.ContentDao.GetCountOfContentAdd(tableName, siteId, channelId, scope, begin, end, userName, checkedState); StlCacheUtils.SetCache(cacheKey, retval); } } return(retval); }
public static ListInfo GetListInfoByXmlNode(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, EContextType contextType) { var listInfo = new ListInfo { _contextType = contextType }; var innerXml = node.InnerXml; var itemTemplate = string.Empty; if (!string.IsNullOrEmpty(innerXml)) { var stlElementList = StlParserUtility.GetStlElementList(innerXml); if (stlElementList.Count > 0) { foreach (var theStlElement in stlElementList) { if (StlParserUtility.IsSpecifiedStlElement(theStlElement, StlItemTemplate.ElementName)) { var attributes = new LowerNameValueCollection(); var templateString = StlParserUtility.GetInnerXml(theStlElement, true, attributes); if (!string.IsNullOrEmpty(templateString)) { foreach (var key in attributes.Keys) { if (!StringUtils.EqualsIgnoreCase(key, StlItemTemplate.AttributeType)) { continue; } var type = attributes.Get(key); if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeItem)) { itemTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeHeader)) { listInfo.HeaderTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeFooter)) { listInfo.FooterTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeAlternatingItem)) { listInfo.AlternatingItemTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeSelectedItem)) { if (!string.IsNullOrEmpty(attributes.Get(StlItemTemplate.AttributeSelected))) { var selected = attributes.Get(StlItemTemplate.AttributeSelected); var arraylist = new ArrayList(); if (selected.IndexOf(',') != -1) { arraylist.AddRange(selected.Split(',')); } else { if (selected.IndexOf('-') != -1) { var first = TranslateUtils.ToInt(selected.Split('-')[0]); var second = TranslateUtils.ToInt(selected.Split('-')[1]); for (var i = first; i <= second; i++) { arraylist.Add(i.ToString()); } } else { arraylist.Add(selected); } } foreach (string val in arraylist) { listInfo.SelectedItems.Set(val, templateString); } if (!string.IsNullOrEmpty(attributes.Get(StlItemTemplate.AttributeSelectedValue))) { var selectedValue = attributes.Get(StlItemTemplate.AttributeSelectedValue); listInfo.SelectedValues.Set(selectedValue, templateString); } } } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeSeparator)) { var selectedValue = TranslateUtils.ToInt(attributes.Get(StlItemTemplate.AttributeSelectedValue), 1); if (selectedValue <= 1) { listInfo.SeparatorTemplate = templateString; } else { listInfo.SeparatorRepeatTemplate = templateString; listInfo.SeparatorRepeat = selectedValue; } } } } innerXml = innerXml.Replace(theStlElement, string.Empty); } else if (StlParserUtility.IsSpecifiedStlElement(theStlElement, StlLoading.ElementName)) { var innerBuilder = new StringBuilder(StlParserUtility.GetInnerXml(theStlElement, true)); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); StlParserUtility.XmlToHtml(innerBuilder); listInfo.LoadingTemplate = innerBuilder.ToString(); innerXml = innerXml.Replace(theStlElement, string.Empty); } else if (contextType == EContextType.SqlContent && StlParserUtility.IsSpecifiedStlElement(theStlElement, StlQueryString.ElementName)) { var innerBuilder = new StringBuilder(StlParserUtility.GetInnerXml(theStlElement, true)); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); StlParserUtility.XmlToHtml(innerBuilder); listInfo.QueryString = innerBuilder.ToString(); innerXml = innerXml.Replace(theStlElement, string.Empty); } } } } if (string.IsNullOrEmpty(itemTemplate)) { listInfo.ItemTemplate = !string.IsNullOrEmpty(innerXml) ? innerXml : "<stl:a target=\"_blank\"></stl:a>"; } else { listInfo.ItemTemplate = itemTemplate; } var ie = node.Attributes.GetEnumerator(); var isSetDirection = false;//是否设置了direction属性 while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeChannelIndex)) { listInfo.ChannelIndex = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeChannelName)) { listInfo.ChannelName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeUpLevel)) { listInfo.UpLevel = TranslateUtils.ToInt(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeTopLevel)) { listInfo.TopLevel = TranslateUtils.ToInt(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeScope)) { listInfo.Scope = EScopeTypeUtils.GetEnumType(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsTop)) { listInfo.IsTop = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsRecommend)) { listInfo.IsRecommend = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsHot)) { listInfo.IsHot = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsColor)) { listInfo.IsColor = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeWhere)) { listInfo.Where = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsDynamic)) { listInfo.IsDynamic = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeTotalNum)) { listInfo.TotalNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlPageContents.AttributePageNum)) { listInfo.PageNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlPageContents.AttributeMaxPage)) { listInfo.MaxPage = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeTitleWordNum)) { listInfo.TitleWordNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeStartNum)) { listInfo.StartNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeOrder)) { if (contextType == EContextType.Content) { listInfo.OrderByString = StlDataUtility.GetOrderByString(pageInfo.PublishmentSystemId, attr.Value, ETableStyle.BackgroundContent, ETaxisType.OrderByTaxisDesc); } else if (contextType == EContextType.Channel) { listInfo.OrderByString = StlDataUtility.GetOrderByString(pageInfo.PublishmentSystemId, attr.Value, ETableStyle.Channel, ETaxisType.OrderByTaxis); } else if (contextType == EContextType.InputContent) { listInfo.OrderByString = StlDataUtility.GetOrderByString(pageInfo.PublishmentSystemId, attr.Value, ETableStyle.InputContent, ETaxisType.OrderByTaxisDesc); } else { listInfo.OrderByString = attr.Value; } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeGroupChannel)) { listInfo.GroupChannel = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupChannel)) { listInfo.GroupChannel = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeGroupChannelNot)) { listInfo.GroupChannelNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupChannelNot)) { listInfo.GroupChannelNot = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeGroupContent) || StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeGroup)) { listInfo.GroupContent = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupContent)) { listInfo.GroupContent = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeGroupContentNot) || StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeGroupNot)) { listInfo.GroupContentNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupContentNot)) { listInfo.GroupContentNot = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeTags)) { listInfo.Tags = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeColumns)) { listInfo.Columns = TranslateUtils.ToInt(attr.Value); listInfo.Layout = ELayout.Table; if (listInfo.Columns > 1 && isSetDirection == false) { listInfo.Direction = RepeatDirection.Horizontal; } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeDirection)) { listInfo.Layout = ELayout.Table; listInfo.Direction = Converter.ToRepeatDirection(attr.Value); isSetDirection = true; } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeHeight)) { try { listInfo.Height = Unit.Parse(attr.Value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeWidth)) { try { listInfo.Width = Unit.Parse(attr.Value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeAlign)) { listInfo.Align = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeItemHeight)) { try { listInfo.ItemHeight = Unit.Parse(attr.Value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeItemWidth)) { try { listInfo.ItemWidth = Unit.Parse(attr.Value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeItemAlign)) { listInfo.ItemAlign = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeItemVerticalAlign)) { listInfo.ItemVerticalAlign = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeItemClass)) { listInfo.ItemClass = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsImage)) { listInfo.IsImage = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsVideo)) { listInfo.IsVideo = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsFile)) { listInfo.IsFile = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsNoDup)) { listInfo.IsNoDup = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeIsRelatedContents)) { listInfo.IsRelatedContents = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, StlContents.AttributeLayout)) { listInfo.Layout = ELayoutUtils.GetEnumType(attr.Value); } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(attr.Name, StlSqlContents.AttributeConnectionString)) { listInfo.ConnectionString = attr.Value; } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(attr.Name, StlSqlContents.AttributeConnectionStringName)) { if (string.IsNullOrEmpty(listInfo.ConnectionString)) { listInfo.ConnectionString = WebConfigUtils.ConnectionString; } } else { listInfo.Others.Set(attr.Name, attr.Value); } } return(listInfo); }