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); }