src/SSCMS.Core/StlParser/Utility/TemplateUtility.cs
(开头部分) 16KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Specialized;
using System.Text;
using System.Threading.Tasks;
using SSCMS.Parse;
using SSCMS.Core.StlParser.StlElement;
using SSCMS.Services;
using SSCMS.Utils;
namespace SSCMS.Core.StlParser.Utility
{
public static class TemplateUtility
{
public static async Task<string> GetContentsItemTemplateStringAsync(string templateString, NameValueCollection selectedItems, NameValueCollection selectedValues, string containerClientId, IParseManager parseManager, ParseType contextType)
{
var context = parseManager.ContextInfo;
var pageInfo = parseManager.PageInfo;
var itemContainer = DbItemContainer.GetItemContainer(pageInfo);
var content = itemContainer.ContentItem.Value;
parseManager.ContextInfo = parseManager.ContextInfo.Clone();
parseManager.ContextInfo.ContextType = contextType;
parseManager.ContextInfo.ItemContainer = itemContainer;
parseManager.ContextInfo.ContainerClientId = containerClientId;
parseManager.ContextInfo.ChannelId = content.ChannelId;
parseManager.ContextInfo.ContentId = content.Id;
parseManager.ContextInfo.SetContent(content);
var preSite = pageInfo.Site;
var prePageChannelId = pageInfo.PageChannelId;
var prePageContentId = pageInfo.PageContentId;
if (content.SiteId != pageInfo.SiteId)
{
var siteInfo = await parseManager.DatabaseManager.SiteRepository.GetAsync(content.SiteId);
parseManager.ContextInfo.Site = siteInfo;
pageInfo.ChangeSite(siteInfo, siteInfo.Id, 0, parseManager.ContextInfo);
}
var theTemplateString = string.Empty;
if (selectedItems != null && selectedItems.Count > 0)
{
foreach (var itemTypes in selectedItems.AllKeys)
{
var itemTypeArrayList = ListUtils.GetStringList(itemTypes);
var isTrue = true;
foreach (var itemType in itemTypeArrayList)
{
var (success, contentTemplateString) = await IsContentTemplateStringAsync(itemType, itemTypes,
selectedItems, selectedValues, parseManager);
if (!success)
{
isTrue = false;
}
else
{
theTemplateString = contentTemplateString;
}
}
if (isTrue)
后面还有 332 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
