void rptContents_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { var contentID = SqlUtils.EvalInt(e.Item.DataItem, "ID"); var contentInfo = DataProvider.InputContentDao.GetContentInfo(contentID); var columnItemRows = (Literal)e.Item.FindControl("ColumnItemRows"); var itemEidtRow = (Literal)e.Item.FindControl("ItemEidtRow"); var itemViewRow = (Literal)e.Item.FindControl("ItemViewRow"); var itemRowReply = e.Item.FindControl("ItemRowReply") as Literal; var itemDateTime = e.Item.FindControl("ItemDateTime") as Literal; if (_styleInfoList != null) { foreach (var styleInfo in _styleInfoList) { if (styleInfo.IsVisibleInList) { var value = contentInfo.Attributes.Get(styleInfo.AttributeName); if (!string.IsNullOrEmpty(value)) { value = InputParserUtility.GetContentByTableStyle(value, PublishmentSystemInfo, ETableStyle.InputContent, styleInfo); } if (contentInfo.IsChecked == false && string.IsNullOrEmpty(columnItemRows.Text)) { columnItemRows.Text += $@"<td>{value}<span style=""color:red"">[未审核]</span></td>"; } else { columnItemRows.Text += $@"<td>{value}</td>"; } } } } itemViewRow.Text = $@"<a href=""javascript:;"" onclick=""{ModalInputContentView.GetOpenWindowString( PublishmentSystemId, _inputInfo.InputId, contentInfo.Id)}"">查看</a>"; itemEidtRow.Text = $@"<a href=""javascript:;"" onclick=""{ModalInputContentAdd.GetOpenWindowStringToEdit( PublishmentSystemId, _inputInfo.InputId, contentInfo.Id, PageUrl)}"">修改</a>"; if (_inputInfo.IsReply) { var text = string.IsNullOrEmpty(contentInfo.Reply) ? "提交回复" : "修改回复"; itemRowReply.Text = $@" <td class=""center"">{StringUtils.GetTrueImageHtml(!string.IsNullOrEmpty(contentInfo.Reply))}</a></td> <td class=""center""><a href=""javascript:;"" onclick=""{ModalInputContentReply.GetOpenWindowString( PublishmentSystemId, _inputInfo.InputId, contentInfo.Id)}"">{text}</a></td>"; } itemDateTime.Text = DateUtils.GetDateString(contentInfo.AddDate); } }
private static string ParseImpl(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, StringDictionary attributes, string leftText, string rightText, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBr, bool isLower, bool isUpper, string type) { var parsedContent = string.Empty; if (InputContentAttribute.Id.ToLower().Equals(type)) { parsedContent = SqlUtils.EvalString(contextInfo.ItemContainer.InputItem.DataItem, InputContentAttribute.Id); } else if (InputContentAttribute.AddDate.ToLower().Equals(type)) { var addDate = SqlUtils.EvalDateTime(contextInfo.ItemContainer.InputItem.DataItem, InputContentAttribute.AddDate); parsedContent = DateUtils.Format(addDate, formatString); } else if (InputContentAttribute.UserName.ToLower().Equals(type)) { parsedContent = SqlUtils.EvalString(contextInfo.ItemContainer.InputItem.DataItem, InputContentAttribute.UserName); } else if (InputContentAttribute.Reply.ToLower().Equals(type)) { var content = SqlUtils.EvalString(contextInfo.ItemContainer.InputItem.DataItem, InputContentAttribute.Reply); parsedContent = content; parsedContent = StringUtils.ParseString(EInputType.TextEditor, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } else if (StringUtils.StartsWithIgnoreCase(type, StlParserUtility.ItemIndex)) { parsedContent = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.InputItem.ItemIndex, type, contextInfo).ToString(); } else { var id = SqlUtils.EvalInt(contextInfo.ItemContainer.InputItem.DataItem, InputContentAttribute.Id); var inputContentInfo = DataProvider.InputContentDao.GetContentInfo(id); if (inputContentInfo != null) { parsedContent = inputContentInfo.GetExtendedAttribute(type); if (!string.IsNullOrEmpty(parsedContent)) { if (!InputContentAttribute.HiddenAttributes.Contains(type.ToLower())) { var styleInfo = TableStyleManager.GetTableStyleInfo(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, type, RelatedIdentities.GetRelatedIdentities(ETableStyle.InputContent, pageInfo.PublishmentSystemId, inputContentInfo.InputId)); parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.PublishmentSystemInfo, ETableStyle.InputContent, styleInfo, formatString, attributes, node.InnerXml, false); parsedContent = StringUtils.ParseString(EInputTypeUtils.GetEnumType(styleInfo.InputType), parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } return(parsedContent); }
void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { var styleInfo = (TableStyleInfo)e.Item.DataItem; var helpHtml = $"{styleInfo.DisplayName}:"; var inputHtml = InputParserUtility.GetContentByTableStyle(_contentInfo.GetExtendedAttribute(styleInfo.AttributeName), PublishmentSystemInfo, _tableStyle, styleInfo); var ltlHtml = e.Item.FindControl("ltlHtml") as Literal; ltlHtml.Text = $@" <tr> <td>{helpHtml}</td> <td colspan=""2"">{inputHtml}</td> </tr> "; } }
void rptContents_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { var styleInfo = e.Item.DataItem as TableStyleInfo; var dataValue = _contentInfo.GetExtendedAttribute(styleInfo.AttributeName); dataValue = InputParserUtility.GetContentByTableStyle(dataValue, PublishmentSystemInfo, ETableStyle.InputContent, styleInfo); var ltlDataKey = e.Item.FindControl("ltlDataKey") as Literal; var ltlDataValue = e.Item.FindControl("ltlDataValue") as Literal; if (ltlDataKey != null) { ltlDataKey.Text = styleInfo.DisplayName; } if (ltlDataValue != null) { ltlDataValue.Text = dataValue; } } }
private void RptContents_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) { return; } var styleInfo = (TableStyleInfo)e.Item.DataItem; var inputHtml = InputParserUtility.GetContentByTableStyle(_contentInfo.GetString(styleInfo.AttributeName), SiteInfo, styleInfo); var ltlHtml = (Literal)e.Item.FindControl("ltlHtml"); ltlHtml.Text = $@" <div class=""form-group form-row""> <label class=""col-sm-1 col-form-label"">{styleInfo.DisplayName}</label> <div class=""col-sm-10 form-control-plaintext""> {inputHtml} </div> <div class=""col-sm-1""></div> </div> "; }
private static string GetColumnValue(Dictionary <string, string> nameValueCacheDict, SiteInfo siteInfo, ContentInfo contentInfo, TableStyleInfo styleInfo) { var value = string.Empty; if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.AddUserName)) { if (!string.IsNullOrEmpty(contentInfo.AddUserName)) { var key = ContentAttribute.AddUserName + ":" + contentInfo.AddUserName; if (!nameValueCacheDict.TryGetValue(key, out value)) { value = AdminManager.GetDisplayName(contentInfo.AddUserName, false); nameValueCacheDict[key] = value; } } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.LastEditUserName)) { if (!string.IsNullOrEmpty(contentInfo.LastEditUserName)) { var key = ContentAttribute.LastEditUserName + ":" + contentInfo.LastEditUserName; if (!nameValueCacheDict.TryGetValue(key, out value)) { value = AdminManager.GetDisplayName(contentInfo.LastEditUserName, false); nameValueCacheDict[key] = value; } } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.CheckUserName)) { var checkUserName = contentInfo.GetString(ContentAttribute.CheckUserName); if (!string.IsNullOrEmpty(checkUserName)) { var key = ContentAttribute.CheckUserName + ":" + checkUserName; if (!nameValueCacheDict.TryGetValue(key, out value)) { value = AdminManager.GetDisplayName(checkUserName, false); nameValueCacheDict[key] = value; } } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.CheckDate)) { var checkDate = contentInfo.GetDateTime(ContentAttribute.CheckDate, DateTime.MinValue); if (checkDate != DateTime.MinValue) { value = DateUtils.GetDateAndTimeString(checkDate); } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.CheckReasons)) { value = contentInfo.GetString(ContentAttribute.CheckReasons); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.AddDate)) { value = DateUtils.GetDateAndTimeString(contentInfo.AddDate); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.LastEditDate)) { value = DateUtils.GetDateAndTimeString(contentInfo.LastEditDate); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.SourceId)) { value = SourceManager.GetSourceName(contentInfo.SourceId); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.Tags)) { value = contentInfo.Tags; } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.GroupNameCollection)) { value = contentInfo.GroupNameCollection; } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.Hits)) { value = contentInfo.Hits.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.HitsByDay)) { value = contentInfo.HitsByDay.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.HitsByWeek)) { value = contentInfo.HitsByWeek.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.HitsByMonth)) { value = contentInfo.HitsByMonth.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.LastHitsDate)) { value = DateUtils.GetDateAndTimeString(contentInfo.LastHitsDate); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.IsTop) || StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.IsColor) || StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.IsHot) || StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.IsRecommend)) { value = StringUtils.GetTrueImageHtml(contentInfo.GetString(styleInfo.AttributeName)); } else { value = InputParserUtility.GetContentByTableStyle(contentInfo.GetString(styleInfo.AttributeName), siteInfo, styleInfo); } return(value); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, SiteInfo siteInfo, string type, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBr, bool isLower, bool isUpper) { if (siteInfo == null) { return(string.Empty); } var parsedContent = string.Empty; if (!string.IsNullOrEmpty(contextInfo.InnerHtml)) { var preSiteInfo = pageInfo.SiteInfo; var prePageChannelId = pageInfo.PageChannelId; var prePageContentId = pageInfo.PageContentId; pageInfo.ChangeSite(siteInfo, siteInfo.Id, 0, contextInfo); var innerBuilder = new StringBuilder(contextInfo.InnerHtml); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); parsedContent = innerBuilder.ToString(); pageInfo.ChangeSite(preSiteInfo, prePageChannelId, prePageContentId, contextInfo); return(parsedContent); } var inputType = InputType.Text; if (type.ToLower().Equals(TypeSiteName.ToLower())) { parsedContent = pageInfo.SiteInfo.SiteName; } else if (type.ToLower().Equals(TypeSiteUrl.ToLower())) { parsedContent = pageInfo.SiteInfo.Additional.WebUrl; } else if (pageInfo.SiteInfo.Additional.GetString(type) != null) { parsedContent = pageInfo.SiteInfo.Additional.GetString(type); if (!string.IsNullOrEmpty(parsedContent)) { var styleInfo = TableStyleManager.GetTableStyleInfo(DataProvider.SiteDao.TableName, type, TableStyleManager.GetRelatedIdentities(pageInfo.SiteId)); // 如果 styleInfo.TableStyleId <= 0,表示此字段已经被删除了,不需要再显示值了 ekun008 if (styleInfo.Id > 0) { if (isClearTags && InputTypeUtils.EqualsAny(styleInfo.InputType, InputType.Image, InputType.File)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } else { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.SiteInfo, styleInfo, formatString, contextInfo.Attributes, contextInfo.InnerHtml, false); inputType = styleInfo.InputType; //parsedContent = StringUtils.ParseString(styleInfo.InputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } else { // 如果字段已经被删除或不再显示了,则此字段的值为空。有时虚拟字段值不会清空 parsedContent = string.Empty; } } } if (string.IsNullOrEmpty(parsedContent)) { return(string.Empty); } return(InputTypeUtils.ParseString(inputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString)); }
internal static string Parse(string stlEntity, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; try { var entityName = StlParserUtility.GetNameFromEntity(stlEntity); var channelIndex = StlParserUtility.GetValueFromEntity(stlEntity); var attributeName = entityName.Substring(9, entityName.Length - 10); var upLevel = 0; var topLevel = -1; var channelId = contextInfo.ChannelId; if (!string.IsNullOrEmpty(channelIndex)) { //channelId = DataProvider.ChannelDao.GetIdByIndexName(pageInfo.SiteId, channelIndex); channelId = Node.GetIdByIndexName(pageInfo.SiteId, channelIndex); if (channelId == 0) { channelId = contextInfo.ChannelId; } } if (attributeName.ToLower().StartsWith("up") && attributeName.IndexOf(".", StringComparison.Ordinal) != -1) { if (attributeName.ToLower().StartsWith("up.")) { upLevel = 1; } else { var upLevelStr = attributeName.Substring(2, attributeName.IndexOf(".", StringComparison.Ordinal) - 2); upLevel = TranslateUtils.ToInt(upLevelStr); } topLevel = -1; attributeName = attributeName.Substring(attributeName.IndexOf(".", StringComparison.Ordinal) + 1); } else if (attributeName.ToLower().StartsWith("top") && attributeName.IndexOf(".", StringComparison.Ordinal) != -1) { if (attributeName.ToLower().StartsWith("top.")) { topLevel = 1; } else { var topLevelStr = attributeName.Substring(3, attributeName.IndexOf(".", StringComparison.Ordinal) - 3); topLevel = TranslateUtils.ToInt(topLevelStr); } upLevel = 0; attributeName = attributeName.Substring(attributeName.IndexOf(".", StringComparison.Ordinal) + 1); } var nodeInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, StlDataUtility.GetChannelIdByLevel(pageInfo.SiteId, channelId, upLevel, topLevel)); if (StringUtils.EqualsIgnoreCase(ChannelId, attributeName))//栏目ID { parsedContent = nodeInfo.Id.ToString(); } else if (StringUtils.EqualsIgnoreCase(Title, attributeName) || StringUtils.EqualsIgnoreCase(ChannelName, attributeName))//栏目名称 { parsedContent = nodeInfo.ChannelName; } else if (StringUtils.EqualsIgnoreCase(ChannelIndex, attributeName))//栏目索引 { parsedContent = nodeInfo.IndexName; } else if (StringUtils.EqualsIgnoreCase(Content, attributeName))//栏目正文 { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, nodeInfo.Content, pageInfo.IsLocal); } else if (StringUtils.EqualsIgnoreCase(NavigationUrl, attributeName))//栏目链接地址 { parsedContent = PageUtility.GetChannelUrl(pageInfo.SiteInfo, nodeInfo, pageInfo.IsLocal); } else if (StringUtils.EqualsIgnoreCase(ImageUrl, attributeName))//栏目图片地址 { parsedContent = nodeInfo.ImageUrl; if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } } else if (StringUtils.EqualsIgnoreCase(AddDate, attributeName))//栏目添加日期 { parsedContent = DateUtils.Format(nodeInfo.AddDate, string.Empty); } else if (StringUtils.EqualsIgnoreCase(DirectoryName, attributeName))//生成文件夹名称 { parsedContent = PathUtils.GetDirectoryName(nodeInfo.FilePath, true); } else if (StringUtils.EqualsIgnoreCase(Group, attributeName))//栏目组别 { parsedContent = nodeInfo.GroupNameCollection; } else if (StringUtils.StartsWithIgnoreCase(attributeName, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ChannelItem != null) { parsedContent = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ChannelItem.ItemIndex, attributeName, contextInfo).ToString(); } else if (StringUtils.EqualsIgnoreCase(ChannelAttribute.Keywords, attributeName))//栏目组别 { parsedContent = nodeInfo.Keywords; } else if (StringUtils.EqualsIgnoreCase(ChannelAttribute.Description, attributeName))//栏目组别 { parsedContent = nodeInfo.Description; } else { //var styleInfo = TableStyleManager.GetTableStyleInfo(ETableStyle.Channel, DataProvider.ChannelDao.TableName, attributeName, RelatedIdentities.GetChannelRelatedIdentities(pageInfo.SiteId, nodeInfo.ChannelId)); //parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, ",", pageInfo.SiteInfo, ETableStyle.Channel, styleInfo, string.Empty, null, string.Empty, true); var formCollection = nodeInfo.Additional.ToNameValueCollection(); if (formCollection != null && formCollection.Count > 0) { var styleInfo = TableStyleManager.GetTableStyleInfo(DataProvider.ChannelDao.TableName, attributeName, RelatedIdentities.GetChannelRelatedIdentities(pageInfo.SiteId, nodeInfo.Id)); // 如果 styleInfo.TableStyleId <= 0,表示此字段已经被删除了,不需要再显示值了 ekun008 if (styleInfo.Id > 0) { parsedContent = GetValue(attributeName, formCollection, false, styleInfo.DefaultValue); if (!string.IsNullOrEmpty(parsedContent)) { if (InputTypeUtils.EqualsAny(styleInfo.InputType, InputType.Image, InputType.File)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } else { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, null, pageInfo.SiteInfo, styleInfo, string.Empty, null, string.Empty, true); } } } } } } catch { // ignored } return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string leftText, string rightText, string type, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBr, bool isLower, bool isUpper, ChannelInfo channel, int channelId) { if (string.IsNullOrEmpty(type)) { type = ChannelAttribute.Title; } type = type.ToLower(); var parsedContent = string.Empty; if (!string.IsNullOrEmpty(formatString)) { formatString = formatString.Trim(); if (!formatString.StartsWith("{0")) { formatString = "{0:" + formatString; } if (!formatString.EndsWith("}")) { formatString = formatString + "}"; } } var inputType = InputType.Text; if (type.Equals(ChannelAttribute.Id.ToLower())) { parsedContent = channelId.ToString(); } else if (type.Equals(ChannelAttribute.SiteId.ToLower())) { parsedContent = channel.SiteId.ToString(); } else if (type.Equals(ChannelAttribute.ContentModelPluginId.ToLower())) { parsedContent = channel.ContentModelPluginId; } else if (type.Equals(ChannelAttribute.ContentRelatedPluginIds.ToLower())) { parsedContent = channel.ContentRelatedPluginIds; } else if (type.Equals(ChannelAttribute.ParentId.ToLower())) { parsedContent = channel.ParentId.ToString(); } else if (type.Equals(ChannelAttribute.ParentsPath.ToLower())) { parsedContent = channel.ParentsPath; } else if (type.Equals(ChannelAttribute.ParentsCount.ToLower())) { parsedContent = channel.ParentsCount.ToString(); } else if (type.Equals(ChannelAttribute.ChildrenCount.ToLower())) { parsedContent = channel.ChildrenCount.ToString(); } else if (type.Equals(ChannelAttribute.IsLastNode.ToLower())) { parsedContent = channel.IsLastNode.ToString(); } else if (type.Equals(ChannelAttribute.ChannelIndex.ToLower()) || type.Equals(ChannelAttribute.IndexName.ToLower())) { parsedContent = channel.IndexName; if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.Equals(ChannelAttribute.GroupNameCollection.ToLower())) { parsedContent = channel.GroupNameCollection; } else if (type.Equals(ChannelAttribute.Taxis.ToLower())) { parsedContent = channel.Taxis.ToString(); } else if (type.Equals(ChannelAttribute.AddDate.ToLower())) { inputType = InputType.DateTime; parsedContent = DateUtils.Format(channel.AddDate, formatString); } else if (type.Equals(ChannelAttribute.ImageUrl.ToLower())) { inputType = InputType.Image; parsedContent = InputParserUtility.GetImageOrFlashHtml(pageInfo.SiteInfo, channel.ImageUrl, contextInfo.Attributes, contextInfo.IsStlEntity); // contextInfo.IsStlEntity = true 表示实体标签 } else if (type.Equals(ChannelAttribute.Content.ToLower())) { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, channel.Content, pageInfo.IsLocal); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.Equals(ChannelAttribute.FilePath.ToLower())) { parsedContent = channel.FilePath; } else if (type.Equals(ChannelAttribute.ChannelFilePathRule.ToLower())) { parsedContent = channel.ChannelFilePathRule; } else if (type.Equals(ChannelAttribute.ContentFilePathRule.ToLower())) { parsedContent = channel.ContentFilePathRule; } else if (type.Equals(ChannelAttribute.LinkUrl.ToLower())) { parsedContent = channel.LinkUrl; } else if (type.Equals(ChannelAttribute.LinkType.ToLower())) { parsedContent = channel.LinkType; } else if (type.Equals(ChannelAttribute.ChannelTemplateId.ToLower())) { parsedContent = channel.ChannelTemplateId.ToString(); } else if (type.Equals(ChannelAttribute.ContentTemplateId.ToLower())) { parsedContent = channel.ContentTemplateId.ToString(); } else if (type.Equals(ChannelAttribute.Keywords.ToLower())) { parsedContent = channel.Keywords; } else if (type.Equals(ChannelAttribute.Description.ToLower())) { parsedContent = channel.Description; } else if (type.Equals(ChannelAttribute.ExtendValues.ToLower())) { parsedContent = channel.Additional.ToString(); } else if (type.Equals(ChannelAttribute.Title.ToLower()) || type.Equals(ChannelAttribute.ChannelName.ToLower())) { parsedContent = channel.ChannelName; if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.Equals(ChannelAttribute.PageContent.ToLower())) { if (contextInfo.IsInnerElement || pageInfo.TemplateInfo.TemplateType != TemplateType.ChannelTemplate) { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, channel.Content, pageInfo.IsLocal); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else { return(contextInfo.OuterHtml); } } else if (StringUtils.StartsWithIgnoreCase(type, ChannelAttribute.ItemIndex) && contextInfo.ItemContainer?.ChannelItem != null) { var itemIndex = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ChannelItem.ItemIndex, type, contextInfo); parsedContent = !string.IsNullOrEmpty(formatString) ? string.Format(formatString, itemIndex) : itemIndex.ToString(); } else if (type.Equals(ChannelAttribute.CountOfChannels.ToLower())) { parsedContent = channel.ChildrenCount.ToString(); } else if (type.Equals(ChannelAttribute.CountOfContents.ToLower())) { var count = ContentManager.GetCount(pageInfo.SiteInfo, channel, true); parsedContent = count.ToString(); } else if (type.Equals(ChannelAttribute.CountOfImageContents.ToLower())) { var count = StlContentCache.GetCountCheckedImage(pageInfo.SiteId, channel.Id); parsedContent = count.ToString(); } else { var attributeName = type; var styleInfo = TableStyleManager.GetTableStyleInfo(DataProvider.ChannelDao.TableName, attributeName, TableStyleManager.GetRelatedIdentities(channel)); // 如果 styleInfo.TableStyleId <= 0,表示此字段已经被删除了,不需要再显示值了 ekun008 if (styleInfo.Id > 0) { parsedContent = GetValue(attributeName, channel.Additional, false, styleInfo.DefaultValue); if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.SiteInfo, styleInfo, formatString, contextInfo.Attributes, contextInfo.InnerHtml, false); inputType = styleInfo.InputType; } } } if (string.IsNullOrEmpty(parsedContent)) { return(string.Empty); } parsedContent = InputTypeUtils.ParseString(inputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); return(leftText + parsedContent + rightText); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string type, int no, string src, bool isFilesize, bool isCount, string leftText, string rightText) { if (!string.IsNullOrEmpty(contextInfo.InnerXml)) { var innerBuilder = new StringBuilder(contextInfo.InnerXml); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); contextInfo.InnerXml = innerBuilder.ToString(); } var fileUrl = string.Empty; if (!string.IsNullOrEmpty(src)) { fileUrl = src; } else { if (contextInfo.ContextType == EContextType.Undefined) { contextInfo.ContextType = EContextType.Content; } if (contextInfo.ContextType == EContextType.Content) { if (contextInfo.ContentId != 0) { var contentInfo = contextInfo.ContentInfo; if (!string.IsNullOrEmpty(contentInfo?.GetString(type))) { if (no <= 1) { fileUrl = contentInfo.GetString(StringUtils.EqualsIgnoreCase(type, BackgroundContentAttribute.FileUrl) ? BackgroundContentAttribute.FileUrl : type); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(type); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (var extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == no) { fileUrl = extendValue; break; } index++; } } } } } } else if (contextInfo.ContextType == EContextType.Each) { fileUrl = contextInfo.ItemContainer.EachItem.DataItem as string; } } var parsedContent = InputParserUtility.GetFileHtmlWithoutCount(pageInfo.SiteInfo, fileUrl, contextInfo.Attributes, contextInfo.InnerXml, contextInfo.IsStlEntity); if (isFilesize) { var filePath = PathUtility.MapPath(pageInfo.SiteInfo, fileUrl); parsedContent += " (" + FileUtils.GetFileSizeByFilePath(filePath) + ")"; } else { if (isCount && contextInfo.ContentInfo != null) { parsedContent = InputParserUtility.GetFileHtmlWithCount(pageInfo.SiteInfo, contextInfo.ContentInfo.ChannelId, contextInfo.ContentInfo.Id, fileUrl, contextInfo.Attributes, contextInfo.InnerXml, contextInfo.IsStlEntity); } else { parsedContent = InputParserUtility.GetFileHtmlWithoutCount(pageInfo.SiteInfo, fileUrl, contextInfo.Attributes, contextInfo.InnerXml, contextInfo.IsStlEntity); } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } return(parsedContent); }
private static string GetColumnValue(Hashtable valueHashtable, ETableStyle tableStyle, PublishmentSystemInfo publishmentSystemInfo, ContentInfo contentInfo, TableStyleInfo styleInfo) { var value = string.Empty; if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.AddUserName)) { if (!string.IsNullOrEmpty(contentInfo.AddUserName)) { var key = ContentAttribute.AddUserName + ":" + contentInfo.AddUserName; value = valueHashtable[key] as string; if (value == null) { value = $@"<a rel=""popover"" class=""popover-hover"" data-content=""{AdminManager.GetFullName( contentInfo.AddUserName)}"" data-original-title=""管理员"">{AdminManager.GetDisplayName( contentInfo.AddUserName, false)}</a>"; valueHashtable[key] = value; } } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.LastEditUserName)) { if (!string.IsNullOrEmpty(contentInfo.LastEditUserName)) { var key = ContentAttribute.LastEditUserName + ":" + contentInfo.LastEditUserName; value = valueHashtable[key] as string; if (value == null) { value = $@"<a rel=""popover"" class=""popover-hover"" data-content=""{AdminManager.GetFullName( contentInfo.LastEditUserName)}"" data-original-title=""管理员"">{AdminManager.GetDisplayName( contentInfo.LastEditUserName, false)}</a>"; valueHashtable[key] = value; } } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.CheckUserName)) { var checkUserName = contentInfo.GetExtendedAttribute(ContentAttribute.CheckUserName); if (!string.IsNullOrEmpty(checkUserName)) { var key = ContentAttribute.CheckUserName + ":" + checkUserName; value = valueHashtable[key] as string; if (value == null) { value = $@"<a rel=""popover"" class=""popover-hover"" data-content=""{AdminManager.GetFullName( checkUserName)}"" data-original-title=""管理员"">{AdminManager.GetDisplayName(checkUserName, false)}</a>"; valueHashtable[key] = value; } } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.CheckCheckDate)) { var checkDate = contentInfo.GetExtendedAttribute(ContentAttribute.CheckCheckDate); if (!string.IsNullOrEmpty(checkDate)) { value = DateUtils.GetDateAndTimeString(TranslateUtils.ToDateTime(checkDate)); } } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.CheckReasons)) { value = contentInfo.GetExtendedAttribute(ContentAttribute.CheckReasons); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.AddDate)) { value = DateUtils.GetDateString(contentInfo.AddDate); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.LastEditDate)) { value = DateUtils.GetDateString(contentInfo.LastEditDate); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.SourceId)) { value = SourceManager.GetSourceName(contentInfo.SourceId); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.Tags)) { value = contentInfo.Tags; } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.ContentGroupNameCollection)) { value = contentInfo.ContentGroupNameCollection; } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.Hits)) { value = contentInfo.Hits.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.HitsByDay)) { value = contentInfo.HitsByDay.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.HitsByWeek)) { value = contentInfo.HitsByWeek.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.HitsByMonth)) { value = contentInfo.HitsByMonth.ToString(); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.LastHitsDate)) { value = DateUtils.GetDateAndTimeString(contentInfo.LastHitsDate); } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, ContentAttribute.IsTop)) { value = StringUtils.GetTrueImageHtml(contentInfo.IsTop); } else { var isSettting = false; if (tableStyle == ETableStyle.BackgroundContent) { isSettting = true; if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, BackgroundContentAttribute.Star)) { var showPopWinString = ModalContentStarSet.GetOpenWindowString(publishmentSystemInfo.PublishmentSystemId, contentInfo.NodeId, contentInfo.Id); value = $@"<a href=""javascript:;"" onclick=""{showPopWinString}"" title=""点击设置评分"">{StarsManager .GetStarString(publishmentSystemInfo.PublishmentSystemId, contentInfo.NodeId, contentInfo.Id)}</a>"; } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, BackgroundContentAttribute.Digg)) { var showPopWinString = ModalContentDiggSet.GetOpenWindowString(publishmentSystemInfo.PublishmentSystemId, contentInfo.NodeId, contentInfo.Id); var nums = BaiRongDataProvider.DiggDao.GetCount(publishmentSystemInfo.PublishmentSystemId, contentInfo.Id); string display = $"赞同:{nums[0]} 不赞同:{nums[1]}"; value = $@"<a href=""javascript:;"" onclick=""{showPopWinString}"" title=""点击设置Digg数"">{display}</a>"; } else if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, BackgroundContentAttribute.IsColor) || StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, BackgroundContentAttribute.IsHot) || StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, BackgroundContentAttribute.IsRecommend)) { value = StringUtils.GetTrueImageHtml(contentInfo.GetExtendedAttribute(styleInfo.AttributeName)); } else { isSettting = false; } } if (!isSettting) { value = InputParserUtility.GetContentByTableStyle(contentInfo.GetExtendedAttribute(styleInfo.AttributeName), publishmentSystemInfo, tableStyle, styleInfo); } } return(value); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string leftText, string rightText, string channelIndex, string channelName, int upLevel, int topLevel, string type, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBr, bool isLower, bool isUpper) { var parsedContent = string.Empty; 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); if (!string.IsNullOrEmpty(formatString)) { formatString = formatString.Trim(); if (!formatString.StartsWith("{0")) { formatString = "{0:" + formatString; } if (!formatString.EndsWith("}")) { formatString = formatString + "}"; } } if (!string.IsNullOrEmpty(type)) { if (type.ToLower().Equals(ChannelAttribute.Title.ToLower())) { parsedContent = channel.ChannelName; if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.ToLower().Equals(ChannelAttribute.ChannelIndex.ToLower())) { parsedContent = channel.IndexName; if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.ToLower().Equals(ChannelAttribute.Content.ToLower())) { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, channel.Content, pageInfo.IsLocal); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.ToLower().Equals(ChannelAttribute.PageContent.ToLower())) { if (contextInfo.IsInnerElement || pageInfo.TemplateInfo.TemplateType != TemplateType.ChannelTemplate) { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, channel.Content, pageInfo.IsLocal); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else { return(contextInfo.StlElement); } } else if (type.ToLower().Equals(ChannelAttribute.AddDate.ToLower())) { parsedContent = DateUtils.Format(channel.AddDate, formatString); } else if (type.ToLower().Equals(ChannelAttribute.ImageUrl.ToLower())) { parsedContent = InputParserUtility.GetImageOrFlashHtml(pageInfo.SiteInfo, channel.ImageUrl, contextInfo.Attributes, contextInfo.IsCurlyBrace); // contextInfo.IsCurlyBrace = true 表示实体标签 } else if (type.ToLower().Equals(ChannelAttribute.Id.ToLower())) { parsedContent = channelId.ToString(); } else if (StringUtils.StartsWithIgnoreCase(type, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ChannelItem != null) { var itemIndex = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ChannelItem.ItemIndex, type, contextInfo); parsedContent = !string.IsNullOrEmpty(formatString) ? string.Format(formatString, itemIndex) : itemIndex.ToString(); } else if (type.ToLower().Equals(ChannelAttribute.CountOfChannels.ToLower())) { parsedContent = channel.ChildrenCount.ToString(); } else if (type.ToLower().Equals(ChannelAttribute.CountOfContents.ToLower())) { parsedContent = channel.ContentNum.ToString(); } else if (type.ToLower().Equals(ChannelAttribute.CountOfImageContents.ToLower())) { var count = Content.GetCountCheckedImage(pageInfo.SiteId, channel.Id); parsedContent = count.ToString(); } else if (type.ToLower().Equals(ChannelAttribute.Keywords.ToLower())) { parsedContent = channel.Keywords; } else if (type.ToLower().Equals(ChannelAttribute.Description.ToLower())) { parsedContent = channel.Description; } else { var attributeName = type; var formCollection = channel.Additional.ToNameValueCollection(); if (formCollection != null && formCollection.Count > 0) { var styleInfo = TableStyleManager.GetTableStyleInfo(DataProvider.ChannelDao.TableName, attributeName, RelatedIdentities.GetChannelRelatedIdentities(pageInfo.SiteId, channel.Id)); // 如果 styleInfo.TableStyleId <= 0,表示此字段已经被删除了,不需要再显示值了 ekun008 if (styleInfo.Id > 0) { parsedContent = GetValue(attributeName, formCollection, false, styleInfo.DefaultValue); if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.SiteInfo, styleInfo, formatString, contextInfo.Attributes, contextInfo.InnerXml, false); parsedContent = StringUtils.ParseString(styleInfo.InputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } } return(parsedContent); }
internal static string Parse(string stlEntity, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; try { var entityName = StlParserUtility.GetNameFromEntity(stlEntity); var attributeName = entityName.Substring(5, entityName.Length - 6); if (StringUtils.EqualsIgnoreCase(PoweredBy, attributeName))//支持信息 { parsedContent = @"Powered by <a href=""http://www.siteserver.cn"" target=""_blank"">SiteServer CMS</a>"; } else if (StringUtils.EqualsIgnoreCase(RootUrl, attributeName))//系统根目录地址 { parsedContent = PageUtils.ParseConfigRootUrl("~"); if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = parsedContent.TrimEnd('/'); } } else if (StringUtils.EqualsIgnoreCase(ApiUrl, attributeName))//API地址 { parsedContent = pageInfo.ApiUrl.TrimEnd('/'); } else if (StringUtils.EqualsIgnoreCase(SiteId, attributeName))//ID { parsedContent = pageInfo.SiteId.ToString(); } else if (StringUtils.EqualsIgnoreCase(SiteName, attributeName))//名称 { parsedContent = pageInfo.SiteInfo.SiteName; } else if (StringUtils.EqualsIgnoreCase(SiteUrl, attributeName))//域名地址 { parsedContent = PageUtility.GetSiteUrl(pageInfo.SiteInfo, pageInfo.IsLocal).TrimEnd('/'); } else if (StringUtils.EqualsIgnoreCase(SiteDir, attributeName))//文件夹 { parsedContent = pageInfo.SiteInfo.SiteDir; } else if (StringUtils.EqualsIgnoreCase(CurrentUrl, attributeName))//当前页地址 { parsedContent = StlParserUtility.GetStlCurrentUrl(pageInfo.SiteInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.Id, pageInfo.IsLocal); } else if (StringUtils.EqualsIgnoreCase(ChannelUrl, attributeName))//栏目页地址 { parsedContent = PageUtility.GetChannelUrl(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId), pageInfo.IsLocal); } //else if (StringUtils.EqualsIgnoreCase(HomeUrl, attributeName))//用户中心地址 //{ // parsedContent = pageInfo.HomeUrl.TrimEnd('/'); //} //else if (StringUtils.EqualsIgnoreCase(attributeName, LoginUrl)) //{ // var returnUrl = StlUtility.GetStlCurrentUrl(pageInfo.SiteInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.TemplateId); // parsedContent = HomeUtils.GetLoginUrl(pageInfo.HomeUrl, returnUrl); //} //else if (StringUtils.EqualsIgnoreCase(attributeName, LogoutUrl)) //{ // var returnUrl = StlUtility.GetStlCurrentUrl(pageInfo.SiteInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.TemplateId); // parsedContent = HomeUtils.GetLogoutUrl(pageInfo.HomeUrl, returnUrl); //} //else if (StringUtils.EqualsIgnoreCase(attributeName, RegisterUrl)) //{ // var returnUrl = StlUtility.GetStlCurrentUrl(pageInfo.SiteInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.TemplateId); // parsedContent = HomeUtils.GetRegisterUrl(pageInfo.HomeUrl, returnUrl); //} else if (StringUtils.StartsWithIgnoreCase(attributeName, "TableFor"))// { if (StringUtils.EqualsIgnoreCase(attributeName, "TableForContent")) { parsedContent = pageInfo.SiteInfo.TableName; } } else if (StringUtils.StartsWithIgnoreCase(attributeName, "Site"))// { parsedContent = pageInfo.SiteInfo.Additional.GetString(attributeName.Substring(4)); } else { if (pageInfo.SiteInfo.Additional.ContainsKey(attributeName)) { parsedContent = pageInfo.SiteInfo.Additional.GetString(attributeName); if (!string.IsNullOrEmpty(parsedContent)) { var styleInfo = TableStyleManager.GetTableStyleInfo(DataProvider.SiteDao.TableName, attributeName, RelatedIdentities.GetRelatedIdentities(pageInfo.SiteId, pageInfo.SiteId)); // 如果 styleInfo.TableStyleId <= 0,表示此字段已经被删除了,不需要再显示值了 ekun008 if (styleInfo.Id > 0) { parsedContent = InputTypeUtils.EqualsAny(styleInfo.InputType, InputType.Image, InputType.File) ? PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal) : InputParserUtility.GetContentByTableStyle(parsedContent, string.Empty, pageInfo.SiteInfo, styleInfo, string.Empty, null, string.Empty, true); } else { // 如果字段已经被删除或不再显示了,则此字段的值为空。有时虚拟字段值不会清空 parsedContent = string.Empty; } } } } } catch { // ignored } return(parsedContent); }
public override void Submit_OnClick(object sender, EventArgs e) { var isChanged = false; if (_contentId != 0) { try { var contentInfo = DataProvider.InputContentDao.GetContentInfo(_contentId); InputTypeParser.AddValuesToAttributes(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, PublishmentSystemInfo, _relatedIdentities, Page.Request.Form, contentInfo.Attributes); DataProvider.InputContentDao.Update(contentInfo); var builder = new StringBuilder(); var styleInfoList = TableStyleManager.GetTableStyleInfoList(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, _relatedIdentities); foreach (var styleInfo in styleInfoList) { if (styleInfo.IsVisible == false) { continue; } var theValue = InputParserUtility.GetContentByTableStyle(contentInfo.GetExtendedAttribute(styleInfo.AttributeName), PublishmentSystemInfo, ETableStyle.InputContent, styleInfo); builder.Append($@"{styleInfo.DisplayName}:{theValue},"); } if (builder.Length > 0) { builder.Length = builder.Length - 1; } if (builder.Length > 60) { builder.Length = 60; } Body.AddSiteLog(PublishmentSystemId, "修改提交表单内容", $"提交表单:{_inputInfo.InputName},{builder}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, "信息修改失败:" + ex.Message); } } else { try { var ipAddress = PageUtils.GetIpAddress(); var contentInfo = new InputContentInfo(0, _inputInfo.InputId, 0, true, string.Empty, ipAddress, DateTime.Now, string.Empty); InputTypeParser.AddValuesToAttributes(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, PublishmentSystemInfo, _relatedIdentities, Page.Request.Form, contentInfo.Attributes); DataProvider.InputContentDao.Insert(contentInfo); var builder = new StringBuilder(); var styleInfoList = TableStyleManager.GetTableStyleInfoList(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, _relatedIdentities); foreach (var styleInfo in styleInfoList) { if (styleInfo.IsVisible == false) { continue; } var theValue = InputParserUtility.GetContentByTableStyle(contentInfo.GetExtendedAttribute(styleInfo.AttributeName), PublishmentSystemInfo, ETableStyle.InputContent, styleInfo); builder.Append($@"{styleInfo.DisplayName}:{theValue},"); } if (builder.Length > 0) { builder.Length = builder.Length - 1; } if (builder.Length > 60) { builder.Length = 60; } Body.AddSiteLog(PublishmentSystemId, "添加提交表单内容", $"提交表单:{_inputInfo.InputName},{builder}"); isChanged = true; } catch (Exception ex) { FailMessage(ex, "信息添加失败:" + ex.Message); } } if (isChanged) { PageUtils.CloseModalPageAndRedirect(Page, _returnUrl); } }
public static void CreateExcelFileForInputContents(string filePath, PublishmentSystemInfo publishmentSystemInfo, InputInfo inputInfo) { DirectoryUtils.CreateDirectoryIfNotExists(DirectoryUtils.GetDirectoryPath(filePath)); FileUtils.DeleteFileIfExists(filePath); var head = new List <string>(); var rows = new List <List <string> >(); var relatedidentityes = RelatedIdentities.GetRelatedIdentities(ETableStyle.InputContent, publishmentSystemInfo.PublishmentSystemId, inputInfo.InputID); var tableStyleInfoList = TableStyleManager.GetTableStyleInfoList(ETableStyle.InputContent, DataProvider.InputContentDao.TableName, relatedidentityes); if (tableStyleInfoList.Count == 0) { throw new Exception("表单无字段,无法导出"); } foreach (var tableStyleInfo in tableStyleInfoList) { head.Add(tableStyleInfo.DisplayName); } if (inputInfo.IsReply) { head.Add("回复"); } head.Add("添加时间"); var contentIdList = DataProvider.InputContentDao.GetContentIdListWithChecked(inputInfo.InputID); foreach (var contentId in contentIdList) { var contentInfo = DataProvider.InputContentDao.GetContentInfo(contentId); if (contentInfo != null) { var row = new List <string>(); foreach (var tableStyleInfo in tableStyleInfoList) { var value = contentInfo.Attributes.Get(tableStyleInfo.AttributeName); if (!string.IsNullOrEmpty(value)) { value = InputParserUtility.GetContentByTableStyle(value, publishmentSystemInfo, ETableStyle.InputContent, tableStyleInfo); } row.Add(StringUtils.StripTags(value)); } if (inputInfo.IsReply) { row.Add(StringUtils.StripTags(contentInfo.Reply)); } row.Add(DateUtils.GetDateAndTimeString(contentInfo.AddDate)); rows.Add(row); } } CsvUtils.Export(filePath, head, rows); }
internal static string Parse(string stlEntity, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; if (contextInfo.ContentId != 0) { try { if (contextInfo.ContentInfo != null && contextInfo.ContentInfo.ReferenceId > 0 && contextInfo.ContentInfo.SourceId > 0 && contextInfo.ContentInfo.GetExtendedAttribute(ContentAttribute.TranslateContentType) != ETranslateContentType.ReferenceContent.ToString()) { var targetNodeId = contextInfo.ContentInfo.SourceId; var targetPublishmentSystemId = DataProvider.NodeDao.GetPublishmentSystemId(targetNodeId); var targetPublishmentSystemInfo = PublishmentSystemManager.GetPublishmentSystemInfo(targetPublishmentSystemId); var targetNodeInfo = NodeManager.GetNodeInfo(targetPublishmentSystemId, targetNodeId); var tableStyle = NodeManager.GetTableStyle(targetPublishmentSystemInfo, targetNodeInfo); var tableName = NodeManager.GetTableName(targetPublishmentSystemInfo, targetNodeInfo); var targetContentInfo = DataProvider.ContentDao.GetContentInfo(tableStyle, tableName, contextInfo.ContentInfo.ReferenceId); if (targetContentInfo != null && targetContentInfo.NodeId > 0) { //标题可以使用自己的 targetContentInfo.Title = contextInfo.ContentInfo.Title; contextInfo.ContentInfo = targetContentInfo; } } var entityName = StlParserUtility.GetNameFromEntity(stlEntity); var attributeName = entityName.Substring(9, entityName.Length - 10); if (StringUtils.EqualsIgnoreCase(ContentAttribute.Id, attributeName))//内容ID { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.ReferenceId > 0 ? contextInfo.ContentInfo.ReferenceId.ToString() : contextInfo.ContentInfo.Id.ToString(); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Id); } } else if (StringUtils.EqualsIgnoreCase(Title, attributeName))//内容标题 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.Title; } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Title); } } else if (StringUtils.EqualsIgnoreCase(FullTitle, attributeName))//内容标题全称 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.Title; } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Title); } } else if (StringUtils.EqualsIgnoreCase(NavigationUrl, attributeName))//内容链接地址 { if (contextInfo.ContentInfo != null) { parsedContent = PageUtility.GetContentUrl(pageInfo.PublishmentSystemInfo, contextInfo.ContentInfo); } else { var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId); parsedContent = PageUtility.GetContentUrl(pageInfo.PublishmentSystemInfo, nodeInfo, contextInfo.ContentId, false); } } else if (StringUtils.EqualsIgnoreCase(ImageUrl, attributeName))//内容图片地址 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetExtendedAttribute(BackgroundContentAttribute.ImageUrl); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.ImageUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, parsedContent); } } else if (StringUtils.EqualsIgnoreCase(VideoUrl, attributeName))//内容视频地址 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetExtendedAttribute(BackgroundContentAttribute.VideoUrl); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.VideoUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, parsedContent); } } else if (StringUtils.EqualsIgnoreCase(FileUrl, attributeName))//内容附件地址 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetExtendedAttribute(BackgroundContentAttribute.FileUrl); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.FileUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, parsedContent); } } else if (StringUtils.EqualsIgnoreCase(DownloadUrl, attributeName))//内容附件地址(可统计下载量) { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetExtendedAttribute(BackgroundContentAttribute.FileUrl); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.FileUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = ActionsDownload.GetUrl(pageInfo.PublishmentSystemInfo.Additional.ApiUrl, pageInfo.PublishmentSystemId, contextInfo.ChannelId, contextInfo.ContentId, parsedContent); } } else if (StringUtils.EqualsIgnoreCase(AddDate, attributeName))//内容添加日期 { if (contextInfo.ContentInfo != null) { parsedContent = DateUtils.Format(contextInfo.ContentInfo.AddDate, string.Empty); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); parsedContent = DateUtils.Format(BaiRongDataProvider.ContentDao.GetAddDate(tableName, contextInfo.ContentId), string.Empty); } } else if (StringUtils.EqualsIgnoreCase(LastEditDate, attributeName))//替换最后修改日期 { if (contextInfo.ContentInfo != null) { parsedContent = DateUtils.Format(contextInfo.ContentInfo.LastEditDate, string.Empty); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); parsedContent = DateUtils.Format(BaiRongDataProvider.ContentDao.GetLastEditDate(tableName, contextInfo.ContentId), string.Empty); } } else if (StringUtils.EqualsIgnoreCase(Content, attributeName))//内容正文 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetExtendedAttribute(BackgroundContentAttribute.Content); } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.Content); } parsedContent = StringUtility.TextEditorContentDecode(parsedContent, pageInfo.PublishmentSystemInfo); } else if (StringUtils.EqualsIgnoreCase(Group, attributeName))//内容组别 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.ContentGroupNameCollection; } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.ContentGroupNameCollection); } } else if (StringUtils.EqualsIgnoreCase(Tags, attributeName))//标签 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.Tags; } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Tags); } } else if (StringUtils.EqualsIgnoreCase(AddUserName, attributeName)) { string addUserName; if (contextInfo.ContentInfo != null) { addUserName = contextInfo.ContentInfo.AddUserName; } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contextInfo.ChannelId)); addUserName = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.AddUserName); } if (!string.IsNullOrEmpty(addUserName)) { var displayName = BaiRongDataProvider.AdministratorDao.GetDisplayName(addUserName); parsedContent = string.IsNullOrEmpty(displayName) ? addUserName : displayName; } } else if (StringUtils.StartsWithIgnoreCase(attributeName, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ContentItem != null) { parsedContent = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ContentItem.ItemIndex, attributeName, contextInfo).ToString(); } else { int contentNodeId; if (contextInfo.ContentInfo != null) { contentNodeId = contextInfo.ContentInfo.NodeId; if (contextInfo.ContentInfo.ContainsKey(attributeName)) { parsedContent = contextInfo.ContentInfo.GetExtendedAttribute(attributeName); } } else { var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, contextInfo.ChannelId); contentNodeId = BaiRongDataProvider.ContentDao.GetNodeId(tableName, contextInfo.ContentId); tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contentNodeId)); parsedContent = BaiRongDataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, attributeName); } if (!string.IsNullOrEmpty(parsedContent)) { var relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(pageInfo.PublishmentSystemId, contentNodeId); var styleInfo = TableStyleManager.GetTableStyleInfo(ETableStyle.BackgroundContent, pageInfo.PublishmentSystemInfo.AuxiliaryTableForContent, attributeName, relatedIdentities); parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, ",", pageInfo.PublishmentSystemInfo, ETableStyle.BackgroundContent, styleInfo, string.Empty, null, string.Empty, true); } } } catch { // ignored } } return(parsedContent); }
private static string ParseImpl(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, StringDictionary attributes, string leftText, string rightText, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBR, bool isLower, bool isUpper, string type) { var parsedContent = string.Empty; if (!string.IsNullOrEmpty(type) && contextInfo.ItemContainer != null && contextInfo.ItemContainer.PhotoItem != null) { if (!string.IsNullOrEmpty(formatString)) { formatString = formatString.Trim(); if (!formatString.StartsWith("{0")) { formatString = "{0:" + formatString; } if (!formatString.EndsWith("}")) { formatString = formatString + "}"; } } else { formatString = "{0}"; } if (string.IsNullOrEmpty(type) || StringUtils.EqualsIgnoreCase(type, "imageUrl")) { type = Type_LargeUrl; } if (StringUtils.StartsWithIgnoreCase(type, StlParserUtility.ItemIndex)) { var itemIndex = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.PhotoItem.ItemIndex, type, contextInfo); if (!string.IsNullOrEmpty(formatString)) { parsedContent = string.Format(formatString, itemIndex); } else { parsedContent = itemIndex.ToString(); } } else if (StringUtils.StartsWithIgnoreCase(type, Type_SmallUrl) || StringUtils.StartsWithIgnoreCase(type, Type_MiddleUrl) || StringUtils.StartsWithIgnoreCase(type, Type_LargeUrl)) { parsedContent = DataBinder.Eval(contextInfo.ItemContainer.PhotoItem.DataItem, type, formatString); parsedContent = InputParserUtility.GetImageOrFlashHtml(pageInfo.PublishmentSystemInfo, parsedContent, attributes, false); } else if (StringUtils.StartsWithIgnoreCase(type, "description") || StringUtils.StartsWithIgnoreCase(type, "content")) { parsedContent = DataBinder.Eval(contextInfo.ItemContainer.PhotoItem.DataItem, "description", formatString); parsedContent = StringUtils.ReplaceNewlineToBr(parsedContent); } else { parsedContent = DataBinder.Eval(contextInfo.ItemContainer.PhotoItem.DataItem, type, formatString); } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = StringUtils.ParseString(parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBR, isLower, isUpper, formatString); if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } } return(parsedContent); }
public string ReplacePlaceHolder(string template, bool isLoadValues, string successTemplateString, string failureTemplateString) { var parsedContent = new StringBuilder(); parsedContent.Append($@" <div id=""inputSuccess_{_inputInfo.InputId}"" class=""is_success"" style=""display:none""></div> <div id=""inputFailure_{_inputInfo.InputId}"" class=""is_failure"" style=""display:none""></div> <div id=""inputContainer_{_inputInfo.InputId}"">"); //添加遮罩层 parsedContent.Append($@" <div id=""inputModal_{_inputInfo.InputId}"" times=""2"" id=""xubox_shade2"" class=""xubox_shade"" style=""z-index:19891016; background-color: #FFF; opacity: 0.5; filter:alpha(opacity=10);top: 0;left: 0;width: 100%;height: 100%;position: fixed;display:none;""></div> <div id=""inputModalMsg_{_inputInfo.InputId}"" times=""2"" showtime=""0"" style=""z-index: 19891016; left: 50%; top: 206px; width: 500px; height: 360px; margin-left: -250px;position: fixed;text-align: center;display:none;"" id=""xubox_layer2"" class=""xubox_layer"" type=""iframe""><img src = ""{SiteFilesAssets.GetUrl(_publishmentSystemInfo.Additional.ApiUrl, SiteFilesAssets.FileWaiting)}"" style=""""> <br> <span style=""font-size:10px;font-family:Microsoft Yahei"">正在提交...</span> </div> <script> function openModal() {{ document.getElementById(""inputModal_{_inputInfo.InputId}"").style.display = ''; document.getElementById(""inputModalMsg_{_inputInfo.InputId}"").style.display = ''; }} function closeModal() {{ document.getElementById(""inputModal_{_inputInfo.InputId}"").style.display = 'none'; document.getElementById(""inputModalMsg_{_inputInfo.InputId}"").style.display = 'none'; }} </script>"); var actionUrl = ActionsInputAdd.GetUrl(_publishmentSystemInfo.Additional.ApiUrl, _publishmentSystemInfo.PublishmentSystemId, _inputInfo.InputId); parsedContent.Append($@" <form id=""frmInput_{_inputInfo.InputId}"" name=""frmInput_{_inputInfo.InputId}"" style=""margin:0;padding:0"" method=""post"" enctype=""multipart/form-data"" action=""{actionUrl}"" target=""loadInput_{_inputInfo.InputId}""> "); if (!string.IsNullOrEmpty(successTemplateString)) { parsedContent.AppendFormat(@"<input type=""hidden"" id=""successTemplateString"" value=""{0}"" />", TranslateUtils.EncryptStringBySecretKey(successTemplateString)); } if (!string.IsNullOrEmpty(failureTemplateString)) { parsedContent.AppendFormat(@"<input type=""hidden"" id=""failureTemplateString"" value=""{0}"" />", TranslateUtils.EncryptStringBySecretKey(failureTemplateString)); } parsedContent.Append(template); parsedContent.AppendFormat(@" </form> <iframe id=""loadInput_{0}"" name=""loadInput_{0}"" width=""0"" height=""0"" frameborder=""0""></iframe> </div>", _inputInfo.InputId); var pageScripts = new NameValueCollection(); GetAttributesHtml(pageScripts, _publishmentSystemInfo, _styleInfoList); foreach (string key in pageScripts.Keys) { parsedContent.Append(pageScripts[key]); } if (_inputInfo.Additional.IsCtrlEnter) { parsedContent.AppendFormat(@" <script>document.body.onkeydown=function(e) {{e=e?e:window.event;var tagname=e.srcElement?e.srcElement.tagName:e.target.tagName;if(tagname=='INPUT'||tagname=='TEXTAREA'){{if(e!=null&&e.ctrlKey&&e.keyCode==13){{document.getElementById('submit_{0}').click();}}}}}}</script>", _inputInfo.InputId); } string clickString = $@"if (checkFormValueById('frmInput_{HolderInputId}')){{openModal(); document.getElementById('frmInput_{HolderInputId}').submit();}}"; StlHtmlUtility.ReWriteSubmitButton(parsedContent, clickString); var stlFormElements = StlHtmlUtility.GetStlFormElementsArrayList(parsedContent.ToString()); if (stlFormElements != null && stlFormElements.Count > 0) { foreach (string stlFormElement in stlFormElements) { XmlNode elementNode; NameValueCollection attributes; StlHtmlUtility.ReWriteFormElements(stlFormElement, out elementNode, out attributes); var validateAttributes = string.Empty; var validateHtmlString = string.Empty; if (!string.IsNullOrEmpty(attributes["id"])) { foreach (var styleInfo in _styleInfoList) { if (StringUtils.EqualsIgnoreCase(styleInfo.AttributeName, attributes["id"])) { validateHtmlString = InputParserUtility.GetValidateHtmlString(styleInfo, out validateAttributes); attributes["id"] = styleInfo.AttributeName; } } } if (StringUtils.EqualsIgnoreCase(elementNode.Name, "input")) { parsedContent.Replace(stlFormElement, $@"<{elementNode.Name} {TranslateUtils.ToAttributesString(attributes)} {validateAttributes}/>{validateHtmlString}"); } else { parsedContent.Replace(stlFormElement, $@"<{elementNode.Name} {TranslateUtils.ToAttributesString(attributes)} {validateAttributes}>{elementNode .InnerXml}</{elementNode.Name}>{validateHtmlString}"); } } } parsedContent.Replace(HolderInputId, _inputInfo.InputId.ToString()); if (isLoadValues) { parsedContent.AppendFormat(@" <script type=""text/javascript"">stlInputLoadValues('frmInput_{0}');</script> ", _inputInfo.InputId); } return(parsedContent.ToString()); }
private static string ParseImpl(string stlElement, XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, StringDictionary attributes, string leftText, string rightText, string channelIndex, string channelName, int upLevel, int topLevel, string type, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBr, bool isLower, bool isUpper) { var parsedContent = string.Empty; var channelId = StlDataUtility.GetNodeIdByLevel(pageInfo.PublishmentSystemId, contextInfo.ChannelID, upLevel, topLevel); channelId = StlCacheManager.NodeId.GetNodeIdByChannelIdOrChannelIndexOrChannelName(pageInfo.PublishmentSystemId, channelId, channelIndex, channelName); var channel = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, channelId); if (!string.IsNullOrEmpty(formatString)) { formatString = formatString.Trim(); if (!formatString.StartsWith("{0")) { formatString = "{0:" + formatString; } if (!formatString.EndsWith("}")) { formatString = formatString + "}"; } } if (!string.IsNullOrEmpty(type)) { if (type.ToLower().Equals(NodeAttribute.Title.ToLower())) { parsedContent = channel.NodeName; if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (wordNum == 0 && contextInfo.TitleWordNum > 0) { wordNum = contextInfo.TitleWordNum; } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.ToLower().Equals(NodeAttribute.ChannelIndex.ToLower())) { parsedContent = channel.NodeIndexName; if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.ToLower().Equals(NodeAttribute.Content.ToLower())) { parsedContent = StringUtility.TextEditorContentDecode(channel.Content, pageInfo.PublishmentSystemInfo); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else if (type.ToLower().Equals(NodeAttribute.PageContent.ToLower())) { if (contextInfo.IsInnerElement || pageInfo.TemplateInfo.TemplateType != ETemplateType.ChannelTemplate) { parsedContent = StringUtility.TextEditorContentDecode(channel.Content, pageInfo.PublishmentSystemInfo); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (!string.IsNullOrEmpty(parsedContent) && wordNum > 0) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } } else { return(stlElement); } } else if (type.ToLower().Equals(NodeAttribute.AddDate.ToLower())) { parsedContent = DateUtils.Format(channel.AddDate, formatString); } else if (type.ToLower().Equals(NodeAttribute.ImageUrl.ToLower())) { parsedContent = InputParserUtility.GetImageOrFlashHtml(pageInfo.PublishmentSystemInfo, channel.ImageUrl, attributes, false); } else if (type.ToLower().Equals(NodeAttribute.Id.ToLower())) { parsedContent = channelId.ToString(); } else if (StringUtils.StartsWithIgnoreCase(type, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ChannelItem != null) { var itemIndex = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ChannelItem.ItemIndex, type, contextInfo); parsedContent = !string.IsNullOrEmpty(formatString) ? string.Format(formatString, itemIndex) : itemIndex.ToString(); } else if (type.ToLower().Equals(NodeAttribute.CountOfChannels.ToLower())) { parsedContent = channel.ChildrenCount.ToString(); } else if (type.ToLower().Equals(NodeAttribute.CountOfContents.ToLower())) { parsedContent = channel.ContentNum.ToString(); } else if (type.ToLower().Equals(NodeAttribute.CountOfImageContents.ToLower())) { var count = DataProvider.BackgroundContentDao.GetCountCheckedImage(pageInfo.PublishmentSystemId, channel.NodeId); parsedContent = count.ToString(); } else if (type.ToLower().Equals(NodeAttribute.Keywords.ToLower())) { parsedContent = channel.Keywords; } else if (type.ToLower().Equals(NodeAttribute.Description.ToLower())) { parsedContent = channel.Description; } else { var attributeName = type; var formCollection = channel.Additional.Attributes; if (formCollection != null && formCollection.Count > 0) { var styleInfo = TableStyleManager.GetTableStyleInfo(ETableStyle.Channel, DataProvider.NodeDao.TableName, attributeName, RelatedIdentities.GetChannelRelatedIdentities(pageInfo.PublishmentSystemId, channel.NodeId)); parsedContent = GetValue(attributeName, formCollection, false, styleInfo.DefaultValue); if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.PublishmentSystemInfo, ETableStyle.Channel, styleInfo, formatString, attributes, node.InnerXml, false); parsedContent = StringUtils.ParseString(EInputTypeUtils.GetEnumType(styleInfo.InputType), parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } } return(parsedContent); }
private static string ParseImpl(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, string leftText, string rightText, string formatString, string no, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, string isReturnToBrStr, bool isLower, bool isUpper, bool isOriginal, string type, StringDictionary attributes, string imageType) { var parsedContent = string.Empty; var isReturnToBr = false; if (string.IsNullOrEmpty(isReturnToBrStr)) { if (BackgroundContentAttribute.Summary.ToLower().Equals(type)) { isReturnToBr = true; } } else { isReturnToBr = TranslateUtils.ToBool(isReturnToBrStr, true); } var contentId = contextInfo.ContentID; var contentInfo = contextInfo.ContentInfo; if (contentInfo == null) { return(string.Empty); } if (isOriginal) { if (contentInfo.ReferenceId > 0 && contentInfo.SourceId > 0 && contentInfo.GetExtendedAttribute(ContentAttribute.TranslateContentType) == ETranslateContentType.Reference.ToString()) { var targetNodeId = contentInfo.SourceId; var targetPublishmentSystemId = DataProvider.NodeDao.GetPublishmentSystemId(targetNodeId); var targetPublishmentSystemInfo = PublishmentSystemManager.GetPublishmentSystemInfo(targetPublishmentSystemId); var targetNodeInfo = NodeManager.GetNodeInfo(targetPublishmentSystemId, targetNodeId); var tableStyle = NodeManager.GetTableStyle(targetPublishmentSystemInfo, targetNodeInfo); var tableName = NodeManager.GetTableName(targetPublishmentSystemInfo, targetNodeInfo); var targetContentInfo = DataProvider.ContentDao.GetContentInfo(tableStyle, tableName, contentInfo.ReferenceId); if (targetContentInfo != null && targetContentInfo.NodeId > 0) { //标题可以使用自己的 targetContentInfo.Title = contentInfo.Title; contentInfo = targetContentInfo; } } } if (!string.IsNullOrEmpty(formatString)) { formatString = formatString.Trim(); if (!formatString.StartsWith("{0")) { formatString = "{0:" + formatString; } if (!formatString.EndsWith("}")) { formatString = formatString + "}"; } } if (contentId != 0) { if (ContentAttribute.Title.ToLower().Equals(type)) { var relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(pageInfo.PublishmentSystemId, contentInfo.NodeId); var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contentInfo.NodeId); var tableStyle = NodeManager.GetTableStyle(pageInfo.PublishmentSystemInfo, nodeInfo); var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, nodeInfo); var styleInfo = TableStyleManager.GetTableStyleInfo(tableStyle, tableName, type, relatedIdentities); if (wordNum == 0) { wordNum = contextInfo.TitleWordNum; } parsedContent = InputParserUtility.GetContentByTableStyle(contentInfo.Title, separator, pageInfo.PublishmentSystemInfo, tableStyle, styleInfo, formatString, attributes, node.InnerXml, false); parsedContent = StringUtils.ParseString(EInputTypeUtils.GetEnumType(styleInfo.InputType), parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); if (!isClearTags && !string.IsNullOrEmpty(contentInfo.Attributes[BackgroundContentAttribute.TitleFormatString])) { parsedContent = ContentUtility.FormatTitle(contentInfo.Attributes[BackgroundContentAttribute.TitleFormatString], parsedContent); } if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } if (pageInfo.PublishmentSystemInfo.Additional.IsContentTitleBreakLine) { parsedContent = parsedContent.Replace(" ", !contextInfo.IsInnerElement ? "<br />" : string.Empty); } } else if (BackgroundContentAttribute.Summary.ToLower().Equals(type)) { parsedContent = StringUtils.ParseString(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.Summary), replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } } else if (BackgroundContentAttribute.Content.ToLower().Equals(type)) { parsedContent = StringUtility.TextEditorContentDecode(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.Content), pageInfo.PublishmentSystemInfo); if (pageInfo.PublishmentSystemInfo.Additional.IsInnerLink) { var innerLinkInfoList = pageInfo.CacheOfInnerLinkInfoList; if (innerLinkInfoList != null && innerLinkInfoList.Count > 0) { InnerLinkInfo newInnerLinkInfo; for (var i = 0; i < innerLinkInfoList.Count - 1; i++) { for (var j = i + 1; j < innerLinkInfoList.Count; j++) { if (innerLinkInfoList[i].InnerLinkName.Length < innerLinkInfoList[j].InnerLinkName.Length) { newInnerLinkInfo = innerLinkInfoList[i]; innerLinkInfoList[i] = innerLinkInfoList[j]; innerLinkInfoList[j] = newInnerLinkInfo; } } } var arrayLinkName = new List <string>(); var arrayInnerLink = new List <string>(); for (var i = 0; i < innerLinkInfoList.Count; i++) { newInnerLinkInfo = innerLinkInfoList[i]; arrayLinkName.Add(newInnerLinkInfo.InnerLinkName); arrayInnerLink.Add(newInnerLinkInfo.InnerString); } for (var m = 0; m < arrayLinkName.Count; m++) { var innerLinkName = arrayLinkName[m]; arrayLinkName[m] = Guid.NewGuid().ToString(); parsedContent = RegexUtils.Replace( $"({innerLinkName.Replace(" ", "\\s")})(?!</a>)(?![^><]*>)", parsedContent, arrayLinkName[m], pageInfo.PublishmentSystemInfo.Additional.InnerLinkMaxNum); } for (var n = 0; n < arrayLinkName.Count; n++) { parsedContent = RegexUtils.Replace( $"({arrayLinkName[n].Replace(" ", "\\s")})(?!</a>)(?![^><]*>)", parsedContent, arrayInnerLink[n], pageInfo.PublishmentSystemInfo.Additional.InnerLinkMaxNum); } } } if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (wordNum > 0 && !string.IsNullOrEmpty(parsedContent)) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } if (!string.IsNullOrEmpty(formatString)) { parsedContent = string.Format(formatString, parsedContent); } if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } } else if (BackgroundContentAttribute.PageContent.ToLower().Equals(type)) { //if (contextInfo.IsInnerElement) // { parsedContent = StringUtility.TextEditorContentDecode(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.Content), pageInfo.PublishmentSystemInfo); if (pageInfo.PublishmentSystemInfo.Additional.IsInnerLink) { var innerLinkInfoList = pageInfo.CacheOfInnerLinkInfoList; if (innerLinkInfoList != null && innerLinkInfoList.Count > 0) { InnerLinkInfo newInnerLinkInfo; for (var i = 0; i < innerLinkInfoList.Count - 1; i++) { for (var j = i + 1; j < innerLinkInfoList.Count; j++) { if (innerLinkInfoList[i].InnerLinkName.Length < innerLinkInfoList[j].InnerLinkName.Length) { newInnerLinkInfo = innerLinkInfoList[i]; innerLinkInfoList[i] = innerLinkInfoList[j]; innerLinkInfoList[j] = newInnerLinkInfo; } } } for (var i = 0; i < innerLinkInfoList.Count; i++) { newInnerLinkInfo = innerLinkInfoList[i]; for (var j = i + 1; j < innerLinkInfoList.Count; j++) { var lastInnerLinkInfo = innerLinkInfoList[j]; if (newInnerLinkInfo.InnerLinkName.Contains(lastInnerLinkInfo.InnerLinkName)) { innerLinkInfoList.Remove(lastInnerLinkInfo); } } parsedContent = RegexUtils.Replace( $"({newInnerLinkInfo.InnerLinkName.Replace(" ", "\\s")})(?!</a>)(?![^><]*>)", parsedContent, newInnerLinkInfo.InnerString, pageInfo.PublishmentSystemInfo.Additional.InnerLinkMaxNum); } } } if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (wordNum > 0 && !string.IsNullOrEmpty(parsedContent)) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } if (!string.IsNullOrEmpty(formatString)) { parsedContent = string.Format(formatString, parsedContent); } } else if (ContentAttribute.AddDate.ToLower().Equals(type)) { parsedContent = DateUtils.Format(contentInfo.AddDate, formatString); } else if (ContentAttribute.LastEditDate.ToLower().Equals(type)) { parsedContent = DateUtils.Format(contentInfo.LastEditDate, formatString); } else if (BackgroundContentAttribute.ImageUrl.ToLower().Equals(type)) { if (no == "all") { var sbParsedContent = new StringBuilder(); //第一条 if (contextInfo.IsCurlyBrace) { sbParsedContent.Append(PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, GetImageUrlByType(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.ImageUrl), imageType))); } else { sbParsedContent.Append(InputParserUtility.GetImageOrFlashHtml(pageInfo.PublishmentSystemInfo, GetImageUrlByType(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.ImageUrl), imageType), attributes, false)); } //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.ImageUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { var newExtendValue = GetImageUrlByType(extendValue, imageType); if (contextInfo.IsCurlyBrace) { sbParsedContent.Append(PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, newExtendValue)); } else { sbParsedContent.Append(InputParserUtility.GetImageOrFlashHtml(pageInfo.PublishmentSystemInfo, newExtendValue, attributes, false)); } } } parsedContent = sbParsedContent.ToString(); } else { var num = TranslateUtils.ToInt(no, 0); if (num <= 1) { if (contextInfo.IsCurlyBrace) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, GetImageUrlByType(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.ImageUrl), imageType)); } else { parsedContent = InputParserUtility.GetImageOrFlashHtml(pageInfo.PublishmentSystemInfo, GetImageUrlByType(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.ImageUrl), imageType), attributes, false); } } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.ImageUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { var newExtendValue = GetImageUrlByType(extendValue, imageType); if (index == num) { if (contextInfo.IsCurlyBrace) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, newExtendValue); } else { parsedContent = InputParserUtility.GetImageOrFlashHtml(pageInfo.PublishmentSystemInfo, newExtendValue, attributes, false); } break; } index++; } } } } } else if (BackgroundContentAttribute.VideoUrl.ToLower().Equals(type)) { if (no == "all") { var sbParsedContent = new StringBuilder(); //第一条 sbParsedContent.Append(InputParserUtility.GetVideoHtml(pageInfo.PublishmentSystemInfo, contentInfo.GetExtendedAttribute(BackgroundContentAttribute.VideoUrl), attributes, false)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.VideoUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { sbParsedContent.Append(InputParserUtility.GetVideoHtml(pageInfo.PublishmentSystemInfo, extendValue, attributes, false)); } } parsedContent = sbParsedContent.ToString(); } else { var num = TranslateUtils.ToInt(no, 0); if (num <= 1) { parsedContent = InputParserUtility.GetVideoHtml(pageInfo.PublishmentSystemInfo, contentInfo.GetExtendedAttribute(BackgroundContentAttribute.VideoUrl), attributes, false); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.VideoUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == num) { parsedContent = InputParserUtility.GetVideoHtml(pageInfo.PublishmentSystemInfo, extendValue, attributes, false); break; } index++; } } } } } else if (BackgroundContentAttribute.FileUrl.ToLower().Equals(type)) { if (no == "all") { var sbParsedContent = new StringBuilder(); if (contextInfo.IsCurlyBrace) { //第一条 sbParsedContent.Append(contentInfo.GetExtendedAttribute(BackgroundContentAttribute.FileUrl)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { sbParsedContent.Append(extendValue); } } } else { //第一条 sbParsedContent.Append(InputParserUtility.GetFileHtmlWithCount(pageInfo.PublishmentSystemInfo, contentInfo.NodeId, contentInfo.Id, contentInfo.GetExtendedAttribute(BackgroundContentAttribute.FileUrl), attributes, node.InnerXml, false)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { sbParsedContent.Append(InputParserUtility.GetFileHtmlWithCount(pageInfo.PublishmentSystemInfo, contentInfo.NodeId, contentInfo.Id, extendValue, attributes, node.InnerXml, false)); } } } parsedContent = sbParsedContent.ToString(); } else { var num = TranslateUtils.ToInt(no, 0); if (contextInfo.IsCurlyBrace) { if (num <= 1) { parsedContent = contentInfo.GetExtendedAttribute(BackgroundContentAttribute.FileUrl); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == num) { parsedContent = extendValue; break; } index++; } } } } else { if (num <= 1) { parsedContent = InputParserUtility.GetFileHtmlWithCount(pageInfo.PublishmentSystemInfo, contentInfo.NodeId, contentInfo.Id, contentInfo.GetExtendedAttribute(BackgroundContentAttribute.FileUrl), attributes, node.InnerXml, false); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetExtendedAttribute(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == num) { parsedContent = InputParserUtility.GetFileHtmlWithCount(pageInfo.PublishmentSystemInfo, contentInfo.NodeId, contentInfo.Id, extendValue, attributes, node.InnerXml, false); break; } index++; } } } } } } else if (BackgroundContentAttribute.NavigationUrl.ToLower().Equals(type)) { parsedContent = PageUtility.GetContentUrl(pageInfo.PublishmentSystemInfo, contentInfo); } else if (ContentAttribute.Tags.ToLower().Equals(type)) { parsedContent = contentInfo.Tags; } else if (StringUtils.StartsWithIgnoreCase(type, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ContentItem != null) { var itemIndex = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ContentItem.ItemIndex, type, contextInfo); parsedContent = !string.IsNullOrEmpty(formatString) ? string.Format(formatString, itemIndex) : itemIndex.ToString(); } else if (ContentAttribute.AddUserName.ToLower().Equals(type)) { if (!string.IsNullOrEmpty(contentInfo.AddUserName)) { var displayName = BaiRongDataProvider.AdministratorDao.GetDisplayName(contentInfo.AddUserName); parsedContent = string.IsNullOrEmpty(displayName) ? contentInfo.AddUserName : displayName; } } else { var isSelected = false; var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, contentInfo.NodeId); var tableStyle = NodeManager.GetTableStyle(pageInfo.PublishmentSystemInfo, nodeInfo); //WCM SPECIFIC if (tableStyle == ETableStyle.GovInteractContent) { isSelected = true; if (GovInteractContentAttribute.State.ToLower().Equals(type)) { parsedContent = EGovInteractStateUtils.GetText(EGovInteractStateUtils.GetEnumType(contentInfo.GetExtendedAttribute(GovInteractContentAttribute.State))); } else if (StringUtils.EqualsIgnoreCase(type, GovInteractContentAttribute.Reply)) { var replyInfo = DataProvider.GovInteractReplyDao.GetReplyInfoByContentId(pageInfo.PublishmentSystemId, contentInfo.Id); if (replyInfo != null) { parsedContent = replyInfo.Reply; if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = StringUtils.ParseString(EInputType.TextEditor, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } } else if (StringUtils.EqualsIgnoreCase(type, GovInteractContentAttribute.ReplyDepartment)) { var replyInfo = DataProvider.GovInteractReplyDao.GetReplyInfoByContentId(pageInfo.PublishmentSystemId, contentInfo.Id); if (replyInfo != null) { parsedContent = DepartmentManager.GetDepartmentName(replyInfo.DepartmentID); } } else if (StringUtils.EqualsIgnoreCase(type, GovInteractContentAttribute.ReplyUserName)) { var replyInfo = DataProvider.GovInteractReplyDao.GetReplyInfoByContentId(pageInfo.PublishmentSystemId, contentInfo.Id); if (replyInfo != null) { parsedContent = replyInfo.UserName; } } else if (StringUtils.EqualsIgnoreCase(type, GovInteractContentAttribute.ReplyDate)) { var replyInfo = DataProvider.GovInteractReplyDao.GetReplyInfoByContentId(pageInfo.PublishmentSystemId, contentInfo.Id); if (replyInfo != null) { var addDate = replyInfo.AddDate; parsedContent = DateUtils.Format(addDate, formatString); } } else if (StringUtils.EqualsIgnoreCase(type, GovInteractContentAttribute.ReplyFileUrl)) { var replyInfo = DataProvider.GovInteractReplyDao.GetReplyInfoByContentId(pageInfo.PublishmentSystemId, contentInfo.Id); if (replyInfo != null) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, replyInfo.FileUrl); } } else { isSelected = false; } } //WCM SPECIFIC if (!isSelected && contentInfo.ContainsKey(type)) { if (!ContentAttribute.HiddenAttributes.Contains(type.ToLower())) { var relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(pageInfo.PublishmentSystemId, contentInfo.NodeId); var tableName = NodeManager.GetTableName(pageInfo.PublishmentSystemInfo, nodeInfo); var styleInfo = TableStyleManager.GetTableStyleInfo(tableStyle, tableName, type, relatedIdentities); var num = TranslateUtils.ToInt(no); parsedContent = InputParserUtility.GetContentByTableStyle(contentInfo, separator, pageInfo.PublishmentSystemInfo, tableStyle, styleInfo, formatString, num, attributes, node.InnerXml, false); parsedContent = StringUtils.ParseString(EInputTypeUtils.GetEnumType(styleInfo.InputType), parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } else { parsedContent = contentInfo.GetExtendedAttribute(type); parsedContent = StringUtils.ParseString(parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } } else { if (!string.IsNullOrEmpty(type) && contextInfo.ItemContainer != null && contextInfo.ItemContainer.ContentItem != null) { parsedContent = DataBinder.Eval(contextInfo.ItemContainer.ContentItem.DataItem, type, "{0}"); parsedContent = StringUtils.ParseString(parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } } } return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string leftText, string rightText, string formatString, string no, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, string isReturnToBrStr, bool isLower, bool isUpper, bool isOriginal, string type) { var parsedContent = string.Empty; var isReturnToBr = false; if (string.IsNullOrEmpty(isReturnToBrStr)) { if (BackgroundContentAttribute.Summary.ToLower().Equals(type)) { isReturnToBr = true; } } else { isReturnToBr = TranslateUtils.ToBool(isReturnToBrStr, true); } var contentId = contextInfo.ContentId; var contentInfo = contextInfo.ContentInfo; if (contentInfo == null) { return(string.Empty); } if (isOriginal) { if (contentInfo.ReferenceId > 0 && contentInfo.SourceId > 0 && contentInfo.GetString(ContentAttribute.TranslateContentType) == ETranslateContentType.Reference.ToString()) { var targetChannelId = contentInfo.SourceId; //var targetSiteId = DataProvider.ChannelDao.GetSiteId(targetChannelId); var targetSiteId = Node.GetSiteId(targetChannelId); var targetSiteInfo = SiteManager.GetSiteInfo(targetSiteId); var targetNodeInfo = ChannelManager.GetChannelInfo(targetSiteId, targetChannelId); var tableName = ChannelManager.GetTableName(targetSiteInfo, targetNodeInfo); //var targetContentInfo = DataProvider.ContentDao.GetContentInfo(tableStyle, tableName, contentInfo.ReferenceId); var targetContentInfo = Content.GetContentInfo(tableName, contentInfo.ReferenceId); if (targetContentInfo != null && targetContentInfo.ChannelId > 0) { //标题可以使用自己的 targetContentInfo.Title = contentInfo.Title; contentInfo = targetContentInfo; } } } if (!string.IsNullOrEmpty(formatString)) { formatString = formatString.Trim(); if (!formatString.StartsWith("{0")) { formatString = "{0:" + formatString; } if (!formatString.EndsWith("}")) { formatString = formatString + "}"; } } if (contentId != 0) { if (ContentAttribute.Title.ToLower().Equals(type)) { var relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(pageInfo.SiteId, contentInfo.ChannelId); var nodeInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, contentInfo.ChannelId); var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, nodeInfo); var styleInfo = TableStyleManager.GetTableStyleInfo(tableName, type, relatedIdentities); parsedContent = InputParserUtility.GetContentByTableStyle(contentInfo.Title, separator, pageInfo.SiteInfo, styleInfo, formatString, contextInfo.Attributes, contextInfo.InnerXml, false); parsedContent = StringUtils.ParseString(styleInfo.InputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); if (!isClearTags && !string.IsNullOrEmpty(contentInfo.GetString(BackgroundContentAttribute.TitleFormatString))) { parsedContent = ContentUtility.FormatTitle(contentInfo.GetString(BackgroundContentAttribute.TitleFormatString), parsedContent); } if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } if (pageInfo.SiteInfo.Additional.IsContentTitleBreakLine) { parsedContent = parsedContent.Replace(" ", !contextInfo.IsInnerElement ? "<br />" : string.Empty); } } else if (BackgroundContentAttribute.Summary.ToLower().Equals(type)) { parsedContent = StringUtils.ParseString(contentInfo.GetString(BackgroundContentAttribute.Summary), replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } } else if (BackgroundContentAttribute.Content.ToLower().Equals(type)) { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.Content), pageInfo.IsLocal); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (wordNum > 0 && !string.IsNullOrEmpty(parsedContent)) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } if (!string.IsNullOrEmpty(formatString)) { parsedContent = string.Format(formatString, parsedContent); } if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } } else if (BackgroundContentAttribute.PageContent.ToLower().Equals(type)) { //if (contextInfo.IsInnerElement) // { parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.Content), pageInfo.IsLocal); if (isClearTags) { parsedContent = StringUtils.StripTags(parsedContent); } if (!string.IsNullOrEmpty(replace)) { parsedContent = StringUtils.Replace(replace, parsedContent, to); } if (wordNum > 0 && !string.IsNullOrEmpty(parsedContent)) { parsedContent = StringUtils.MaxLengthText(parsedContent, wordNum, ellipsis); } if (!string.IsNullOrEmpty(formatString)) { parsedContent = string.Format(formatString, parsedContent); } } else if (ContentAttribute.AddDate.ToLower().Equals(type)) { parsedContent = DateUtils.Format(contentInfo.AddDate, formatString); } else if (ContentAttribute.LastEditDate.ToLower().Equals(type)) { parsedContent = DateUtils.Format(contentInfo.LastEditDate, formatString); } else if (BackgroundContentAttribute.ImageUrl.ToLower().Equals(type)) { if (no == "all") { var sbParsedContent = new StringBuilder(); //第一条 sbParsedContent.Append(contextInfo.IsCurlyBrace ? PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.ImageUrl), pageInfo.IsLocal) : InputParserUtility.GetImageOrFlashHtml(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.ImageUrl), contextInfo.Attributes, false)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.ImageUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (var extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { var newExtendValue = extendValue; sbParsedContent.Append(contextInfo.IsCurlyBrace ? PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, newExtendValue, pageInfo.IsLocal) : InputParserUtility.GetImageOrFlashHtml(pageInfo.SiteInfo, newExtendValue, contextInfo.Attributes, false)); } } parsedContent = sbParsedContent.ToString(); } else { var num = TranslateUtils.ToInt(no, 0); if (num <= 1) { parsedContent = contextInfo.IsCurlyBrace ? PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.ImageUrl), pageInfo.IsLocal) : InputParserUtility.GetImageOrFlashHtml(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.ImageUrl), contextInfo.Attributes, false); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.ImageUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (var extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { var newExtendValue = extendValue; if (index == num) { parsedContent = contextInfo.IsCurlyBrace ? PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, newExtendValue, pageInfo.IsLocal) : InputParserUtility.GetImageOrFlashHtml(pageInfo.SiteInfo, newExtendValue, contextInfo.Attributes, false); break; } index++; } } } } } else if (BackgroundContentAttribute.VideoUrl.ToLower().Equals(type)) { if (no == "all") { var sbParsedContent = new StringBuilder(); //第一条 sbParsedContent.Append(InputParserUtility.GetVideoHtml(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.VideoUrl), contextInfo.Attributes, contextInfo.IsCurlyBrace)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.VideoUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { sbParsedContent.Append(InputParserUtility.GetVideoHtml(pageInfo.SiteInfo, extendValue, contextInfo.Attributes, contextInfo.IsCurlyBrace)); } } parsedContent = sbParsedContent.ToString(); } else { var num = TranslateUtils.ToInt(no, 0); if (num <= 1) { parsedContent = InputParserUtility.GetVideoHtml(pageInfo.SiteInfo, contentInfo.GetString(BackgroundContentAttribute.VideoUrl), contextInfo.Attributes, contextInfo.IsCurlyBrace); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.VideoUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == num) { parsedContent = InputParserUtility.GetVideoHtml(pageInfo.SiteInfo, extendValue, contextInfo.Attributes, contextInfo.IsCurlyBrace); break; } index++; } } } } } else if (BackgroundContentAttribute.FileUrl.ToLower().Equals(type)) { if (no == "all") { var sbParsedContent = new StringBuilder(); if (contextInfo.IsCurlyBrace) { //第一条 sbParsedContent.Append(contentInfo.GetString(BackgroundContentAttribute.FileUrl)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { sbParsedContent.Append(extendValue); } } } else { //第一条 sbParsedContent.Append(InputParserUtility.GetFileHtmlWithCount(pageInfo.SiteInfo, contentInfo.ChannelId, contentInfo.Id, contentInfo.GetString(BackgroundContentAttribute.FileUrl), contextInfo.Attributes, contextInfo.InnerXml, false)); //第n条 var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { sbParsedContent.Append(InputParserUtility.GetFileHtmlWithCount(pageInfo.SiteInfo, contentInfo.ChannelId, contentInfo.Id, extendValue, contextInfo.Attributes, contextInfo.InnerXml, false)); } } } parsedContent = sbParsedContent.ToString(); } else { var num = TranslateUtils.ToInt(no, 0); if (contextInfo.IsCurlyBrace) { if (num <= 1) { parsedContent = contentInfo.GetString(BackgroundContentAttribute.FileUrl); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == num) { parsedContent = extendValue; break; } index++; } } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } } else { if (num <= 1) { parsedContent = InputParserUtility.GetFileHtmlWithCount(pageInfo.SiteInfo, contentInfo.ChannelId, contentInfo.Id, contentInfo.GetString(BackgroundContentAttribute.FileUrl), contextInfo.Attributes, contextInfo.InnerXml, false); } else { var extendAttributeName = ContentAttribute.GetExtendAttributeName(BackgroundContentAttribute.FileUrl); var extendValues = contentInfo.GetString(extendAttributeName); if (!string.IsNullOrEmpty(extendValues)) { var index = 2; foreach (string extendValue in TranslateUtils.StringCollectionToStringList(extendValues)) { if (index == num) { parsedContent = InputParserUtility.GetFileHtmlWithCount(pageInfo.SiteInfo, contentInfo.ChannelId, contentInfo.Id, extendValue, contextInfo.Attributes, contextInfo.InnerXml, false); break; } index++; } } } } } } else if (BackgroundContentAttribute.NavigationUrl.ToLower().Equals(type)) { parsedContent = PageUtility.GetContentUrl(pageInfo.SiteInfo, contentInfo, pageInfo.IsLocal); } else if (ContentAttribute.Tags.ToLower().Equals(type)) { parsedContent = contentInfo.Tags; } else if (StringUtils.StartsWithIgnoreCase(type, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ContentItem != null) { var itemIndex = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ContentItem.ItemIndex, type, contextInfo); parsedContent = !string.IsNullOrEmpty(formatString) ? string.Format(formatString, itemIndex) : itemIndex.ToString(); } else if (ContentAttribute.AddUserName.ToLower().Equals(type)) { if (!string.IsNullOrEmpty(contentInfo.AddUserName)) { //var displayName = DataProvider.AdministratorDao.GetDisplayName(contentInfo.AddUserName); var displayName = Administrator.GetDisplayName(contentInfo.AddUserName); parsedContent = string.IsNullOrEmpty(displayName) ? contentInfo.AddUserName : displayName; } } else { var nodeInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, contentInfo.ChannelId); if (contentInfo.ContainsKey(type)) { if (!ContentAttribute.AllAttributesLowercase.Contains(type.ToLower())) { var relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(pageInfo.SiteId, contentInfo.ChannelId); var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, nodeInfo); var styleInfo = TableStyleManager.GetTableStyleInfo(tableName, type, relatedIdentities); //styleInfo.IsVisible = false 表示此字段不需要显示 styleInfo.TableStyleId = 0 不能排除,因为有可能是直接辅助表字段没有添加显示样式 var num = TranslateUtils.ToInt(no); parsedContent = InputParserUtility.GetContentByTableStyle(contentInfo, separator, pageInfo.SiteInfo, styleInfo, formatString, num, contextInfo.Attributes, contextInfo.InnerXml, false); parsedContent = StringUtils.ParseString(styleInfo.InputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } else { parsedContent = contentInfo.GetString(type); parsedContent = StringUtils.ParseString(parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } if (!contextInfo.IsInnerElement) { parsedContent = parsedContent.Replace("&", "&"); } } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = leftText + parsedContent + rightText; } } return(parsedContent); }
internal static string Parse(string stlEntity, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; if (contextInfo.ContentId != 0) { try { if (contextInfo.ContentInfo != null && contextInfo.ContentInfo.ReferenceId > 0 && contextInfo.ContentInfo.SourceId > 0 && contextInfo.ContentInfo.GetString(ContentAttribute.TranslateContentType) != ETranslateContentType.ReferenceContent.ToString()) { var targetChannelId = contextInfo.ContentInfo.SourceId; var targetSiteId = StlChannelCache.GetSiteId(targetChannelId); var targetSiteInfo = SiteManager.GetSiteInfo(targetSiteId); var targetNodeInfo = ChannelManager.GetChannelInfo(targetSiteId, targetChannelId); var targetContentInfo = ContentManager.GetContentInfo(targetSiteInfo, targetNodeInfo, contextInfo.ContentInfo.ReferenceId); if (targetContentInfo != null && targetContentInfo.ChannelId > 0) { //标题可以使用自己的 targetContentInfo.Title = contextInfo.ContentInfo.Title; contextInfo.ContentInfo = targetContentInfo; } } var entityName = StlParserUtility.GetNameFromEntity(stlEntity); var attributeName = entityName.Substring(9, entityName.Length - 10); if (StringUtils.EqualsIgnoreCase(ContentAttribute.Id, attributeName))//内容ID { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.ReferenceId > 0 ? contextInfo.ContentInfo.ReferenceId.ToString() : contextInfo.ContentInfo.Id.ToString(); } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Id); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Id); } } else if (StringUtils.EqualsIgnoreCase(Title, attributeName))//内容标题 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.Title; } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Title); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Title); } } else if (StringUtils.EqualsIgnoreCase(FullTitle, attributeName))//内容标题全称 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.Title; } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Title); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Title); } } else if (StringUtils.EqualsIgnoreCase(NavigationUrl, attributeName))//内容链接地址 { if (contextInfo.ContentInfo != null) { parsedContent = PageUtility.GetContentUrl(pageInfo.SiteInfo, contextInfo.ContentInfo, pageInfo.IsLocal); } else { var nodeInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId); parsedContent = PageUtility.GetContentUrl(pageInfo.SiteInfo, nodeInfo, contextInfo.ContentId, pageInfo.IsLocal); } } else if (StringUtils.EqualsIgnoreCase(ImageUrl, attributeName))//内容图片地址 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetString(BackgroundContentAttribute.ImageUrl); } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.ImageUrl); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.ImageUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } } else if (StringUtils.EqualsIgnoreCase(VideoUrl, attributeName))//内容视频地址 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetString(BackgroundContentAttribute.VideoUrl); } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.VideoUrl); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.VideoUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } } else if (StringUtils.EqualsIgnoreCase(FileUrl, attributeName))//内容附件地址 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetString(BackgroundContentAttribute.FileUrl); } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.FileUrl); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.FileUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } } else if (StringUtils.EqualsIgnoreCase(DownloadUrl, attributeName))//内容附件地址(可统计下载量) { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetString(BackgroundContentAttribute.FileUrl); } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.FileUrl); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.FileUrl); } if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = ApiRouteActionsDownload.GetUrl(pageInfo.ApiUrl, pageInfo.SiteId, contextInfo.ChannelId, contextInfo.ContentId, parsedContent); } } else if (StringUtils.EqualsIgnoreCase(AddDate, attributeName))//内容添加日期 { if (contextInfo.ContentInfo != null) { parsedContent = DateUtils.Format(contextInfo.ContentInfo.AddDate, string.Empty); } } else if (StringUtils.EqualsIgnoreCase(LastEditDate, attributeName))//替换最后修改日期 { if (contextInfo.ContentInfo != null) { parsedContent = DateUtils.Format(contextInfo.ContentInfo.LastEditDate, string.Empty); } } else if (StringUtils.EqualsIgnoreCase(Content, attributeName))//内容正文 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GetString(BackgroundContentAttribute.Content); } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.Content); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, BackgroundContentAttribute.Content); } parsedContent = ContentUtility.TextEditorContentDecode(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } else if (StringUtils.EqualsIgnoreCase(Group, attributeName))//内容组别 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.GroupNameCollection; } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.ContentGroupNameCollection); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.GroupNameCollection); } } else if (StringUtils.EqualsIgnoreCase(Tags, attributeName))//标签 { if (contextInfo.ContentInfo != null) { parsedContent = contextInfo.ContentInfo.Tags; } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Tags); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.Tags); } } else if (StringUtils.EqualsIgnoreCase(AddUserName, attributeName)) { string addUserName; if (contextInfo.ContentInfo != null) { addUserName = contextInfo.ContentInfo.AddUserName; } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contextInfo.ChannelId)); //addUserName = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, ContentAttribute.AddUserName); addUserName = StlContentCache.GetValue(tableName, contextInfo.ContentId, ContentAttribute.AddUserName); } if (!string.IsNullOrEmpty(addUserName)) { parsedContent = addUserName; } } else if (StringUtils.StartsWithIgnoreCase(attributeName, StlParserUtility.ItemIndex) && contextInfo.ItemContainer?.ContentItem != null) { parsedContent = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ContentItem.ItemIndex, attributeName, contextInfo).ToString(); } else { int contentChannelId; if (contextInfo.ContentInfo != null) { contentChannelId = contextInfo.ContentInfo.ChannelId; if (contextInfo.ContentInfo.ContainsKey(attributeName)) { parsedContent = contextInfo.ContentInfo.GetString(attributeName); } } else { var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, contextInfo.ChannelId); //contentChannelId = DataProvider.ContentDao.GetChannelId(tableName, contextInfo.ContentId); contentChannelId = StlContentCache.GetChannelId(tableName, contextInfo.ContentId); tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, ChannelManager.GetChannelInfo(pageInfo.SiteId, contentChannelId)); //parsedContent = DataProvider.ContentDao.GetValue(tableName, contextInfo.ContentId, attributeName); parsedContent = StlContentCache.GetValue(tableName, contextInfo.ContentId, attributeName); } if (!string.IsNullOrEmpty(parsedContent)) { var channelInfo = ChannelManager.GetChannelInfo(pageInfo.SiteId, contentChannelId); var tableName = ChannelManager.GetTableName(pageInfo.SiteInfo, channelInfo); var relatedIdentities = TableStyleManager.GetRelatedIdentities(channelInfo); var styleInfo = TableStyleManager.GetTableStyleInfo(tableName, attributeName, relatedIdentities); //styleInfo.IsVisible = false 表示此字段不需要显示 styleInfo.TableStyleId = 0 不能排除,因为有可能是直接辅助表字段没有添加显示样式 parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, ",", pageInfo.SiteInfo, styleInfo, string.Empty, null, string.Empty, true); } } } catch { // ignored } } parsedContent = parsedContent.Replace(ContentUtility.PagePlaceHolder, string.Empty); return(parsedContent); }
private static string ParseImpl(XmlNode node, PageInfo pageInfo, ContextInfo contextInfo, string type, StringDictionary attributes, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBR, bool isLower, bool isUpper) { var parsedContent = string.Empty; if (type.Length > 0) { if (type.ToLower().Equals(Type_SiteName.ToLower())) { parsedContent = pageInfo.PublishmentSystemInfo.PublishmentSystemName; } else if (type.ToLower().Equals(Type_SiteUrl.ToLower())) { parsedContent = pageInfo.PublishmentSystemInfo.PublishmentSystemUrl; } else if (type.ToLower().Equals(Type_Date.ToLower())) { pageInfo.AddPageScriptsIfNotExists("datestring.js", $@"<script charset=""{SiteFilesAssets.DateString.Charset}"" src=""{SiteFilesAssets.GetUrl( pageInfo.ApiUrl, SiteFilesAssets.DateString.Js)}"" type=""text/javascript""></script>"); parsedContent = @"<script language=""javascript"" type=""text/javascript"">RunGLNL(false);</script>"; } else if (type.ToLower().Equals(Type_DateOfTraditional.ToLower())) { pageInfo.AddPageScriptsIfNotExists("datestring", $@"<script charset=""{SiteFilesAssets.DateString.Charset}"" src=""{SiteFilesAssets.GetUrl( pageInfo.ApiUrl, SiteFilesAssets.DateString.Js)}"" type=""text/javascript""></script>"); parsedContent = @"<script language=""javascript"" type=""text/javascript"">RunGLNL(true);</script>"; } else { if (pageInfo.PublishmentSystemInfo.Additional.Attributes.Get(type) == null) { var stlTagInfo = DataProvider.StlTagDao.GetStlTagInfo(pageInfo.PublishmentSystemId, type); if (stlTagInfo == null) { stlTagInfo = DataProvider.StlTagDao.GetStlTagInfo(0, type); } if (stlTagInfo != null && !string.IsNullOrEmpty(stlTagInfo.TagContent)) { var innerBuilder = new StringBuilder(stlTagInfo.TagContent); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); parsedContent = innerBuilder.ToString(); } } else { parsedContent = pageInfo.PublishmentSystemInfo.Additional.Attributes[type]; if (!string.IsNullOrEmpty(parsedContent)) { var styleInfo = TableStyleManager.GetTableStyleInfo(ETableStyle.Site, DataProvider.PublishmentSystemDao.TableName, type, RelatedIdentities.GetRelatedIdentities(ETableStyle.Site, pageInfo.PublishmentSystemId, pageInfo.PublishmentSystemId)); if (isClearTags && EInputTypeUtils.EqualsAny(styleInfo.InputType, EInputType.Image, EInputType.File)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, parsedContent); } else { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.PublishmentSystemInfo, ETableStyle.Site, styleInfo, formatString, attributes, node.InnerXml, false); parsedContent = StringUtils.ParseString(EInputTypeUtils.GetEnumType(styleInfo.InputType), parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBR, isLower, isUpper, formatString); } } } } } return(parsedContent); }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, string type, string formatString, string separator, int startIndex, int length, int wordNum, string ellipsis, string replace, string to, bool isClearTags, bool isReturnToBr, bool isLower, bool isUpper) { if (string.IsNullOrEmpty(type)) { return(string.Empty); } var parsedContent = string.Empty; if (contextInfo.ContextType == EContextType.Each) { parsedContent = contextInfo.ItemContainer.EachItem.DataItem as string; return(parsedContent); } if (type.ToLower().Equals(TypeSiteName.ToLower())) { parsedContent = pageInfo.SiteInfo.SiteName; } else if (type.ToLower().Equals(TypeSiteUrl.ToLower())) { parsedContent = pageInfo.SiteInfo.Additional.WebUrl; } else if (type.ToLower().Equals(TypeDate.ToLower())) { if (!pageInfo.BodyCodes.ContainsKey("datestring.js")) { pageInfo.BodyCodes.Add("datestring.js", $@"<script charset=""{SiteFilesAssets.DateString.Charset}"" src=""{SiteFilesAssets.GetUrl( pageInfo.ApiUrl, SiteFilesAssets.DateString.Js)}"" type=""text/javascript""></script>"); } parsedContent = @"<script language=""javascript"" type=""text/javascript"">RunGLNL(false);</script>"; } else if (type.ToLower().Equals(TypeDateOfTraditional.ToLower())) { if (!pageInfo.BodyCodes.ContainsKey("datestring")) { pageInfo.BodyCodes.Add("datestring", $@"<script charset=""{SiteFilesAssets.DateString.Charset}"" src=""{SiteFilesAssets.GetUrl( pageInfo.ApiUrl, SiteFilesAssets.DateString.Js)}"" type=""text/javascript""></script>"); } parsedContent = @"<script language=""javascript"" type=""text/javascript"">RunGLNL(true);</script>"; } else if (pageInfo.Parameters != null && pageInfo.Parameters.ContainsKey(type)) { pageInfo.Parameters.TryGetValue(type, out parsedContent); parsedContent = StringUtils.ParseString(InputType.Text, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } else { if (pageInfo.SiteInfo.Additional.GetString(type) != null) { parsedContent = pageInfo.SiteInfo.Additional.GetString(type); if (!string.IsNullOrEmpty(parsedContent)) { var styleInfo = TableStyleManager.GetTableStyleInfo(DataProvider.SiteDao.TableName, type, RelatedIdentities.GetRelatedIdentities(pageInfo.SiteId, pageInfo.SiteId)); // 如果 styleInfo.TableStyleId <= 0,表示此字段已经被删除了,不需要再显示值了 ekun008 if (styleInfo.Id > 0) { if (isClearTags && InputTypeUtils.EqualsAny(styleInfo.InputType, InputType.Image, InputType.File)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.SiteInfo, parsedContent, pageInfo.IsLocal); } else { parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, separator, pageInfo.SiteInfo, styleInfo, formatString, contextInfo.Attributes, contextInfo.InnerXml, false); parsedContent = StringUtils.ParseString(styleInfo.InputType, parsedContent, replace, to, startIndex, length, wordNum, ellipsis, isClearTags, isReturnToBr, isLower, isUpper, formatString); } } else { // 如果字段已经被删除或不再显示了,则此字段的值为空。有时虚拟字段值不会清空 parsedContent = string.Empty; } } } } return(parsedContent); }
internal static string Parse(string stlEntity, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; try { var entityName = StlParserUtility.GetNameFromEntity(stlEntity); var channelIndex = StlParserUtility.GetValueFromEntity(stlEntity); var attributeName = entityName.Substring(9, entityName.Length - 10); var upLevel = 0; var topLevel = -1; var channelID = contextInfo.ChannelID; if (!string.IsNullOrEmpty(channelIndex)) { channelID = DataProvider.NodeDao.GetNodeIdByNodeIndexName(pageInfo.PublishmentSystemId, channelIndex); if (channelID == 0) { channelID = contextInfo.ChannelID; } } if (attributeName.ToLower().StartsWith("up") && attributeName.IndexOf(".") != -1) { if (attributeName.ToLower().StartsWith("up.")) { upLevel = 1; } else { var upLevelStr = attributeName.Substring(2, attributeName.IndexOf(".") - 2); upLevel = TranslateUtils.ToInt(upLevelStr); } topLevel = -1; attributeName = attributeName.Substring(attributeName.IndexOf(".") + 1); } else if (attributeName.ToLower().StartsWith("top") && attributeName.IndexOf(".") != -1) { if (attributeName.ToLower().StartsWith("top.")) { topLevel = 1; } else { var topLevelStr = attributeName.Substring(3, attributeName.IndexOf(".") - 3); topLevel = TranslateUtils.ToInt(topLevelStr); } upLevel = 0; attributeName = attributeName.Substring(attributeName.IndexOf(".") + 1); } var nodeInfo = NodeManager.GetNodeInfo(pageInfo.PublishmentSystemId, StlDataUtility.GetNodeIdByLevel(pageInfo.PublishmentSystemId, channelID, upLevel, topLevel)); if (StringUtils.EqualsIgnoreCase(ChannelID, attributeName))//栏目ID { parsedContent = nodeInfo.NodeId.ToString(); } else if (StringUtils.EqualsIgnoreCase(Title, attributeName) || StringUtils.EqualsIgnoreCase(ChannelName, attributeName))//栏目名称 { parsedContent = nodeInfo.NodeName; } else if (StringUtils.EqualsIgnoreCase(ChannelIndex, attributeName))//栏目索引 { parsedContent = nodeInfo.NodeIndexName; } else if (StringUtils.EqualsIgnoreCase(Content, attributeName))//栏目正文 { parsedContent = StringUtility.TextEditorContentDecode(nodeInfo.Content, pageInfo.PublishmentSystemInfo); } else if (StringUtils.EqualsIgnoreCase(NavigationUrl, attributeName))//栏目链接地址 { parsedContent = PageUtility.GetChannelUrl(pageInfo.PublishmentSystemInfo, nodeInfo); } else if (StringUtils.EqualsIgnoreCase(ImageUrl, attributeName))//栏目图片地址 { parsedContent = nodeInfo.ImageUrl; if (!string.IsNullOrEmpty(parsedContent)) { parsedContent = PageUtility.ParseNavigationUrl(pageInfo.PublishmentSystemInfo, parsedContent); } } else if (StringUtils.EqualsIgnoreCase(AddDate, attributeName))//栏目添加日期 { parsedContent = DateUtils.Format(nodeInfo.AddDate, string.Empty); } else if (StringUtils.EqualsIgnoreCase(DirectoryName, attributeName))//生成文件夹名称 { parsedContent = PathUtils.GetDirectoryName(nodeInfo.FilePath); } else if (StringUtils.EqualsIgnoreCase(Group, attributeName))//栏目组别 { parsedContent = nodeInfo.NodeGroupNameCollection; } else if (StringUtils.StartsWithIgnoreCase(attributeName, StlParserUtility.ItemIndex) && contextInfo.ItemContainer != null && contextInfo.ItemContainer.ChannelItem != null) { parsedContent = StlParserUtility.ParseItemIndex(contextInfo.ItemContainer.ChannelItem.ItemIndex, attributeName, contextInfo).ToString(); } else if (StringUtils.EqualsIgnoreCase(NodeAttribute.Keywords, attributeName))//栏目组别 { parsedContent = nodeInfo.Keywords; } else if (StringUtils.EqualsIgnoreCase(NodeAttribute.Description, attributeName))//栏目组别 { parsedContent = nodeInfo.Description; } else { var styleInfo = TableStyleManager.GetTableStyleInfo(ETableStyle.Channel, DataProvider.NodeDao.TableName, attributeName, RelatedIdentities.GetChannelRelatedIdentities(pageInfo.PublishmentSystemId, nodeInfo.NodeId)); parsedContent = InputParserUtility.GetContentByTableStyle(parsedContent, ",", pageInfo.PublishmentSystemInfo, ETableStyle.Channel, styleInfo, string.Empty, null, string.Empty, true); } } catch { } return(parsedContent); }