public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent; try { var styleName = string.Empty; string yes; string no; StlInnerUtility.GetYesNo(node, pageInfo, out yes, out no); var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeStyleName)) { styleName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } } } parsedContent = ParseImpl(pageInfo, contextInfo, styleName, yes, no); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent; try { var channelId = string.Empty; var channelIndex = string.Empty; var channelName = string.Empty; var interactName = string.Empty; string inputTemplateString; string loadingTemplateString; string successTemplateString; string failureTemplateString; StlInnerUtility.GetTemplateLoadingYesNo(node, pageInfo, out inputTemplateString, out loadingTemplateString, out successTemplateString, out failureTemplateString); var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeChannelId)) { channelId = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeChannelIndex)) { channelIndex = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeChannelName)) { channelName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeInteractName)) { interactName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } } } parsedContent = ParseImpl(pageInfo, contextInfo, TranslateUtils.ToInt(channelId), channelIndex, channelName, interactName, inputTemplateString, successTemplateString, failureTemplateString); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent; try { var isDynamic = false; string inputTemplateString; string loadingTemplateString; string successTemplateString; string failureTemplateString; StlInnerUtility.GetTemplateLoadingYesNo(node, pageInfo, out inputTemplateString, out loadingTemplateString, out successTemplateString, out failureTemplateString); var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeIsDynamic)) { isDynamic = TranslateUtils.ToBool(attr.Value); } } } parsedContent = isDynamic ? StlDynamic.ParseDynamicElement(stlElement, pageInfo, contextInfo) : ParseImpl(pageInfo, contextInfo, inputTemplateString); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent; try { var inputName = string.Empty; var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeInputName)) { inputName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(attr.Value, pageInfo, contextInfo); } } } var inputId = DataProvider.InputDao.GetInputIdAsPossible(inputName, pageInfo.PublishmentSystemId); if (inputId <= 0) { return(string.Empty); } var inputInfo = DataProvider.InputDao.GetInputInfo(inputId); var relatedIdentities = RelatedIdentities.GetRelatedIdentities(ETableStyle.InputContent, pageInfo.PublishmentSystemId, inputInfo.InputId); var styleInfoList = TableStyleManager.GetTableStyleInfoList(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, relatedIdentities); var pageScripts = new NameValueCollection(); var attributesHtml = GetAttributesHtml(pageScripts, pageInfo.PublishmentSystemInfo, styleInfoList); string template; string loading; string yes; string no; StlInnerUtility.GetTemplateLoadingYesNo(node, pageInfo, out template, out loading, out yes, out no); if (string.IsNullOrEmpty(template)) { template = attributesHtml + StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Input.TemplatePath); } if (string.IsNullOrEmpty(loading)) { loading = StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Input.LoadingPath); } if (string.IsNullOrEmpty(yes)) { yes = StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Input.YesPath); } if (string.IsNullOrEmpty(no)) { no = StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Input.NoPath); } parsedContent = ParseImpl(pageInfo, contextInfo, inputInfo, pageScripts, styleInfoList, template, loading, yes, no); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
public Dictionary <string, string> GetStlElements(string innerXml, List <string> stlElementNames) { return(StlInnerUtility.GetStlElements(innerXml, stlElementNames)); }
private static string ParseImpl(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, HtmlAnchor stlAnchor, string type, string emptyText, string tipText, int wordNum, bool isKeyboard) { string parsedContent; string successTemplateString; string failureTemplateString; StlInnerUtility.GetYesNo(node, pageInfo, out successTemplateString, out failureTemplateString); if (string.IsNullOrEmpty(successTemplateString)) { var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId); if (type.ToLower().Equals(TypePreviousChannel.ToLower()) || type.ToLower().Equals(TypeNextChannel.ToLower())) { var taxis = nodeInfo.Taxis; var isNextChannel = !StringUtils.EqualsIgnoreCase(type, TypePreviousChannel); var siblingNodeId = DataProvider.NodeDao.GetNodeIdByParentIdAndTaxis(nodeInfo.ParentId, taxis, isNextChannel); if (siblingNodeId != 0) { var siblingNodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, siblingNodeId); var url = PageUtility.GetChannelUrl(pageInfo.PublishmentSystemInfo, siblingNodeInfo); if (url.Equals(PageUtils.UnclickedUrl)) { stlAnchor.Target = string.Empty; } stlAnchor.HRef = url; if (string.IsNullOrEmpty(node.InnerXml)) { stlAnchor.InnerHtml = NodeManager.GetNodeName(pageInfo.PublishmentSystemId, siblingNodeId); if (wordNum > 0) { stlAnchor.InnerHtml = StringUtils.MaxLengthText(stlAnchor.InnerHtml, wordNum); } } else { contextInfo.ChannelId = siblingNodeId; var innerBuilder = new StringBuilder(node.InnerXml); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); stlAnchor.InnerHtml = innerBuilder.ToString(); } } } else if (type.ToLower().Equals(TypePreviousContent.ToLower()) || type.ToLower().Equals(TypeNextContent.ToLower())) { if (contextInfo.ContentId != 0) { var taxis = contextInfo.ContentInfo.Taxis; var isNextContent = !StringUtils.EqualsIgnoreCase(type, TypePreviousContent); var tableStyle = NodeManager.GetTableStyle(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); var siblingContentId = BaiRongDataProvider.ContentDao.GetContentId(tableName, contextInfo.ChannelId, taxis, isNextContent); if (siblingContentId != 0) { var siblingContentInfo = DataProvider.ContentDao.GetContentInfo(tableStyle, tableName, siblingContentId); var url = PageUtility.GetContentUrl(pageInfo.PublishmentSystemInfo, siblingContentInfo); if (url.Equals(PageUtils.UnclickedUrl)) { stlAnchor.Target = string.Empty; } stlAnchor.HRef = url; if (isKeyboard) { var keyCode = isNextContent ? 39 : 37; var scriptContent = new StringBuilder(); pageInfo.AddPageScriptsIfNotExists(PageInfo.Components.Jquery); scriptContent.Append($@"<script language=""javascript"" type=""text/javascript""> $(document).keydown(function(event){{ if(event.keyCode=={keyCode}){{location = '{url}';}} }}); </script> "); var nextOrPrevious = isNextContent ? "nextContent" : "previousContent"; pageInfo.SetPageScripts(nextOrPrevious, scriptContent.ToString(), true); } if (string.IsNullOrEmpty(node.InnerXml)) { stlAnchor.InnerHtml = siblingContentInfo.Title; if (wordNum > 0) { stlAnchor.InnerHtml = StringUtils.MaxLengthText(stlAnchor.InnerHtml, wordNum); } } else { var innerBuilder = new StringBuilder(node.InnerXml); contextInfo.ContentId = siblingContentId; StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); stlAnchor.InnerHtml = innerBuilder.ToString(); } } } } parsedContent = string.IsNullOrEmpty(stlAnchor.HRef) ? emptyText : ControlUtils.GetControlRenderHtml(stlAnchor); } else { var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId); var isSuccess = false; var theContextInfo = contextInfo.Clone(); if (type.ToLower().Equals(TypePreviousChannel.ToLower()) || type.ToLower().Equals(TypeNextChannel.ToLower())) { var taxis = nodeInfo.Taxis; var isNextChannel = !StringUtils.EqualsIgnoreCase(type, TypePreviousChannel); var siblingNodeId = DataProvider.NodeDao.GetNodeIdByParentIdAndTaxis(nodeInfo.ParentId, taxis, isNextChannel); if (siblingNodeId != 0) { isSuccess = true; theContextInfo.ContextType = EContextType.Channel; theContextInfo.ChannelId = siblingNodeId; } } else if (type.ToLower().Equals(TypePreviousContent.ToLower()) || type.ToLower().Equals(TypeNextContent.ToLower())) { if (contextInfo.ContentId != 0) { var taxis = contextInfo.ContentInfo.Taxis; var isNextContent = !StringUtils.EqualsIgnoreCase(type, TypePreviousContent); var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); var siblingContentId = BaiRongDataProvider.ContentDao.GetContentId(tableName, contextInfo.ChannelId, taxis, isNextContent); if (siblingContentId != 0) { isSuccess = true; theContextInfo.ContextType = EContextType.Content; theContextInfo.ContentId = siblingContentId; theContextInfo.ContentInfo = null; } } } parsedContent = isSuccess ? successTemplateString : failureTemplateString; if (!string.IsNullOrEmpty(parsedContent)) { var innerBuilder = new StringBuilder(parsedContent); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, theContextInfo); parsedContent = innerBuilder.ToString(); } } parsedContent = tipText + parsedContent; return(parsedContent); }
public static string Parse(PageInfo pageInfo, ContextInfo contextInfo) { var isAllSites = false; var siteName = string.Empty; var siteDir = string.Empty; var siteIds = string.Empty; var channelIndex = string.Empty; var channelName = string.Empty; var channelIds = string.Empty; var type = ContentAttribute.Title; var word = string.Empty; var dateAttribute = ContentAttribute.AddDate; var dateFrom = string.Empty; var dateTo = string.Empty; var since = string.Empty; var pageNum = 0; var isHighlight = false; foreach (var name in contextInfo.Attributes.Keys) { var value = contextInfo.Attributes[name]; if (StringUtils.EqualsIgnoreCase(name, IsAllSites.Name)) { isAllSites = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, SiteName.Name)) { siteName = value; } else if (StringUtils.EqualsIgnoreCase(name, SiteDir.Name)) { siteDir = value; } else if (StringUtils.EqualsIgnoreCase(name, SiteIds.Name)) { siteIds = value; } else if (StringUtils.EqualsIgnoreCase(name, ChannelIndex.Name)) { channelIndex = value; } else if (StringUtils.EqualsIgnoreCase(name, ChannelName.Name)) { channelName = value; } else if (StringUtils.EqualsIgnoreCase(name, ChannelIds.Name)) { channelIds = value; } else if (StringUtils.EqualsIgnoreCase(name, Type.Name)) { type = value; } else if (StringUtils.EqualsIgnoreCase(name, Word.Name)) { word = value; } else if (StringUtils.EqualsIgnoreCase(name, DateAttribute.Name)) { dateAttribute = value; } else if (StringUtils.EqualsIgnoreCase(name, DateFrom.Name)) { dateFrom = value; } else if (StringUtils.EqualsIgnoreCase(name, DateTo.Name)) { dateTo = value; } else if (StringUtils.EqualsIgnoreCase(name, Since.Name)) { since = value; } else if (StringUtils.EqualsIgnoreCase(name, PageNum.Name)) { pageNum = TranslateUtils.ToInt(value, 0); } else if (StringUtils.EqualsIgnoreCase(name, IsHighlight.Name)) { isHighlight = TranslateUtils.ToBool(value); } } string loading; string yes; string no; StlInnerUtility.GetLoadingYesNo(contextInfo.InnerXml, out loading, out yes, out no); if (string.IsNullOrEmpty(loading)) { loading = TemplateManager.GetContentByFilePath(SiteFilesAssets.Search.LoadingTemplatePath); } if (string.IsNullOrEmpty(yes)) { yes = TemplateManager.GetContentByFilePath(SiteFilesAssets.Search.YesTemplatePath); } if (string.IsNullOrEmpty(no)) { no = TemplateManager.GetContentByFilePath(SiteFilesAssets.Search.NoTemplatePath); } pageInfo.AddPageBodyCodeIfNotExists(PageInfo.Const.Jquery); var ajaxDivId = StlParserUtility.GetAjaxDivId(pageInfo.UniqueId); var apiUrl = ApiRouteActionsSearch.GetUrl(pageInfo.ApiUrl); var apiParameters = ApiRouteActionsSearch.GetParameters(isAllSites, siteName, siteDir, siteIds, channelIndex, channelName, channelIds, type, word, dateAttribute, dateFrom, dateTo, since, pageNum, isHighlight, pageInfo.SiteId, ajaxDivId, yes); var builder = new StringBuilder(); builder.Append($@" <div id=""{ajaxDivId}""> <div class=""stl_loading"">{loading}</div> <div class=""stl_yes"" style=""display:none""></div> <div class=""stl_no"" style=""display:none"">{no}</div> </div> "); builder.Append($@" <script type=""text/javascript"" language=""javascript""> jQuery(document).ready(function(){{ var url = '{apiUrl}'; var parameters = {apiParameters}; var queryString = document.location.search; if (queryString && queryString.length > 1) {{ queryString = queryString.substring(1); var arr = queryString.split('&'); for(var i=0; i < arr.length; i++) {{ var item = arr[i]; var arr2 = item.split('='); if (arr2 && arr2.length == 2) {{ var key = (arr2[0] || '').toLowerCase(); if (key) {{ parameters[key] = decodeURIComponent(arr2[1]); }} }} }} if (!parameters['page']) {{ parameters['page'] = 1; }} jQuery.support.cors = true; jQuery.ajax({{ url: url, type: 'POST', contentType: 'application/json', data: JSON.stringify(parameters), dataType: 'json', success: function(res) {{ jQuery(""#{ajaxDivId} .stl_loading"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").show(); jQuery(""#{ajaxDivId} .stl_no"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").html(res); }}, error: function(e) {{ jQuery(""#{ajaxDivId} .stl_loading"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").hide(); jQuery(""#{ajaxDivId} .stl_no"").show(); }} }}); }} else {{ jQuery(""#{ajaxDivId} .stl_loading"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").hide(); jQuery(""#{ajaxDivId} .stl_no"").hide(); }} }}); function stlRedirect{ajaxDivId}(page) {{ var queryString = document.location.search; if (queryString && queryString.length > 1) {{ queryString = queryString.substring(1); var parameters = ''; var arr = queryString.split('&'); for(var i=0; i < arr.length; i++) {{ var item = arr[i]; var arr2 = item.split('='); if (arr2 && arr2.length == 2) {{ if (arr2[0] !== 'page') {{ parameters += item + '&'; }} }} }} parameters += 'page=' + page; location.href = location.protocol + '//' + location.host + location.pathname + location.hash + '?' + parameters; }} }} function stlJump{ajaxDivId}(selObj) {{ stlRedirect{ajaxDivId}(selObj.options[selObj.selectedIndex].value); }} </script> "); return(builder.ToString()); }
public static string Parse(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo) { string parsedContent; try { var isAllSites = false; var siteName = string.Empty; var siteDir = string.Empty; var siteIds = string.Empty; var channelIndex = string.Empty; var channelName = string.Empty; var channelIds = string.Empty; var type = ContentAttribute.Title; var word = string.Empty; var dateAttribute = ContentAttribute.AddDate; var dateFrom = string.Empty; var dateTo = string.Empty; var since = string.Empty; var pageNum = 0; var isHighlight = false; var isDefaultDisplay = false; var ie = node.Attributes?.GetEnumerator(); if (ie != null) { while (ie.MoveNext()) { var attr = (XmlAttribute)ie.Current; if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeIsAllSites)) { isAllSites = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeSiteName)) { siteName = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeSiteDir)) { siteDir = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeSiteIds)) { siteIds = 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, AttributeChannelIds)) { channelIds = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeType)) { type = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeWord)) { word = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeDateAttribute)) { dateAttribute = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeDateFrom)) { dateFrom = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeDateTo)) { dateTo = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeSince)) { since = attr.Value; } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributePageNum)) { pageNum = TranslateUtils.ToInt(attr.Value, 0); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeIsHighlight)) { isHighlight = TranslateUtils.ToBool(attr.Value); } else if (StringUtils.EqualsIgnoreCase(attr.Name, AttributeIsDefaultDisplay)) { isDefaultDisplay = TranslateUtils.ToBool(attr.Value); } } } string loading; string yes; string no; StlInnerUtility.GetLoadingYesNo(node, pageInfo, out loading, out yes, out no); if (string.IsNullOrEmpty(loading)) { loading = StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Search.LoadingTemplatePath); } if (string.IsNullOrEmpty(yes)) { yes = StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Search.YesTemplatePath); } if (string.IsNullOrEmpty(no)) { no = StlCacheManager.FileContent.GetContentByFilePath(SiteFilesAssets.Search.NoTemplatePath); } pageInfo.AddPageScriptsIfNotExists(PageInfo.Components.Jquery); var ajaxDivId = StlParserUtility.GetAjaxDivId(pageInfo.UniqueId); var apiUrl = ActionsSearch.GetUrl(pageInfo.PublishmentSystemInfo.Additional.ApiUrl); var apiParameters = ActionsSearch.GetParameters(isAllSites, siteName, siteDir, siteIds, channelIndex, channelName, channelIds, type, word, dateAttribute, dateFrom, dateTo, since, pageNum, isHighlight, isDefaultDisplay, pageInfo.PublishmentSystemId, ajaxDivId, yes); var builder = new StringBuilder(); builder.Append($@" <div id=""{ajaxDivId}""> <div class=""stl_loading"">{loading}</div> <div class=""stl_yes"" style=""display:none""></div> <div class=""stl_no"" style=""display:none"">{no}</div> </div> "); builder.Append($@" <script type=""text/javascript"" language=""javascript""> jQuery(document).ready(function(){{ var url = '{apiUrl}'; var parameters = {apiParameters}; var queryString = document.location.search; if (queryString && queryString.length > 1) {{ queryString = queryString.substring(1); var arr = queryString.split('&'); for(var i=0; i < arr.length; i++) {{ var item = arr[i]; var arr2 = item.split('='); if (arr2 && arr2.length == 2) {{ var key = (arr2[0] || '').toLowerCase(); if (key) {{ parameters[key] = decodeURIComponent(arr2[1]); }} }} }} if (!parameters['page']) {{ parameters['page'] = 1; }} jQuery.support.cors = true; jQuery.ajax({{ url: url, type: 'POST', contentType: 'application/json', data: JSON.stringify(parameters), dataType: 'json', success: function(res) {{ jQuery(""#{ajaxDivId} .stl_loading"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").show(); jQuery(""#{ajaxDivId} .stl_no"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").html(res); }}, error: function(e) {{ jQuery(""#{ajaxDivId} .stl_loading"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").hide(); jQuery(""#{ajaxDivId} .stl_no"").show(); }} }}); }} else {{ jQuery(""#{ajaxDivId} .stl_loading"").hide(); jQuery(""#{ajaxDivId} .stl_yes"").hide(); jQuery(""#{ajaxDivId} .stl_no"").show(); }} }}); function stlRedirect{ajaxDivId}(page) {{ var queryString = document.location.search; if (queryString && queryString.length > 1) {{ queryString = queryString.substring(1); var parameters = ''; var arr = queryString.split('&'); for(var i=0; i < arr.length; i++) {{ var item = arr[i]; var arr2 = item.split('='); if (arr2 && arr2.length == 2) {{ if (arr2[0] !== 'page') {{ parameters += item + '&'; }} }} }} parameters += 'page=' + page; location.href = location.protocol + '//' + location.host + location.pathname + location.hash + '?' + parameters; }} }} function stlJump{ajaxDivId}(selObj) {{ stlRedirect{ajaxDivId}(selObj.options[selObj.selectedIndex].value); }} </script> "); parsedContent = builder.ToString(); } catch (Exception ex) { parsedContent = StlParserUtility.GetStlErrorMessage(ElementName, ex); } return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string testType, string testOperate, string testValue) { string successTemplateString; string failureTemplateString; StlInnerUtility.GetYesNo(contextInfo.InnerXml, out successTemplateString, out failureTemplateString); if (StringUtils.EqualsIgnoreCase(testType, TypeIsUserLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeIsAdministratorLoggin) || StringUtils.EqualsIgnoreCase(testType, TypeIsUserOrAdministratorLoggin)) { StlParserManager.ParseInnerContent(new StringBuilder(successTemplateString), pageInfo, contextInfo); StlParserManager.ParseInnerContent(new StringBuilder(failureTemplateString), pageInfo, contextInfo); return(TestTypeDynamic(pageInfo, contextInfo, testType, testValue, testOperate, successTemplateString, failureTemplateString)); } var isSuccess = false; if (StringUtils.EqualsIgnoreCase(testType, TypeChannelName)) { var channelName = ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId).ChannelName; isSuccess = TestTypeValue(testOperate, testValue, channelName); } else if (StringUtils.EqualsIgnoreCase(testType, TypeChannelIndex)) { var channelIndex = ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId).IndexName; isSuccess = TestTypeValue(testOperate, testValue, channelIndex); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTemplateName)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.TemplateInfo.TemplateName); } else if (StringUtils.EqualsIgnoreCase(testType, TypTemplateType)) { isSuccess = TestTypeValue(testOperate, testValue, pageInfo.TemplateInfo.TemplateType.Value); } else if (StringUtils.EqualsIgnoreCase(testType, TypeTopLevel)) { var topLevel = ChannelManager.GetTopLevel(pageInfo.SiteId, contextInfo.ChannelId); isSuccess = IsNumber(topLevel, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannel)) { isSuccess = TestTypeUpChannel(pageInfo, contextInfo, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeUpChannelOrSelf)) { isSuccess = TestTypeUpChannelOrSelf(pageInfo, contextInfo, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeSelfChannel)) { isSuccess = pageInfo.PageChannelId == contextInfo.ChannelId; } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupChannel)) { var groupChannels = TranslateUtils.StringCollectionToStringList( ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId).GroupNameCollection); isSuccess = TestTypeValues(testOperate, testValue, groupChannels); } else if (StringUtils.EqualsIgnoreCase(testType, TypeGroupContent)) { if (contextInfo.ContextType == EContextType.Content) { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, contextInfo.ChannelId); //var groupContents = TranslateUtils.StringCollectionToStringList(DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.ContentGroupNameCollection)); var groupContents = TranslateUtils.StringCollectionToStringList(Content.GetValue(tableName, contextInfo.ContentId, ContentAttribute.GroupNameCollection)); isSuccess = TestTypeValues(testOperate, testValue, groupContents); } } else if (StringUtils.EqualsIgnoreCase(testType, TypeAddDate)) { var addDate = GetAddDateByContext(pageInfo, contextInfo); isSuccess = IsDateTime(addDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeLastEditDate)) { var lastEditDate = GetLastEditDateByContext(pageInfo, contextInfo); isSuccess = IsDateTime(lastEditDate, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeItemIndex)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = IsNumber(itemIndex, testOperate, testValue); } else if (StringUtils.EqualsIgnoreCase(testType, TypeOddItem)) { var itemIndex = StlParserUtility.GetItemIndex(contextInfo); isSuccess = itemIndex % 2 == 1; } else { isSuccess = TestTypeDefault(pageInfo, contextInfo, testType, testOperate, testValue); } var parsedContent = isSuccess ? successTemplateString : failureTemplateString; if (string.IsNullOrEmpty(parsedContent)) { return(string.Empty); } var innerBuilder = new StringBuilder(parsedContent); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); parsedContent = innerBuilder.ToString(); return(parsedContent); }