src/SSCMS.Core/StlParser/StlElement/StlContainer.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Text;
using System.Threading.Tasks;
using SSCMS.Core.StlParser.Attributes;
using SSCMS.Parse;
using SSCMS.Core.StlParser.Utility;
using SSCMS.Services;
using SSCMS.Utils;
namespace SSCMS.Core.StlParser.StlElement
{
[StlElement(Title = "容器", Description = "通过 stl:container 标签在模板中定义容器,切换上下文")]
public static class StlContainer
{
public const string ElementName = "stl:container";
[StlAttribute(Title = "栏目索引")]
private const string ChannelIndex = nameof(ChannelIndex);
[StlAttribute(Title = "栏目索引")]
private const string Index = nameof(Index);
[StlAttribute(Title = "栏目名称")]
private const string ChannelName = nameof(ChannelName);
[StlAttribute(Title = "父栏目")]
private const string Parent = nameof(Parent);
[StlAttribute(Title = "上级栏目的级别")]
private const string UpLevel = nameof(UpLevel);
[StlAttribute(Title = "从首页向下的栏目级别")]
private const string TopLevel = nameof(TopLevel);
[StlAttribute(Title = "所处上下文")]
private const string Context = nameof(Context);
public static async Task<object> ParseAsync(IParseManager parseManager)
{
var contextInfo = parseManager.ContextInfo;
if (contextInfo.IsStlEntity || string.IsNullOrWhiteSpace(contextInfo.InnerHtml)) return string.Empty;
var channelIndex = string.Empty;
var channelName = string.Empty;
var upLevel = 0;
var topLevel = -1;
var context = contextInfo.ContextType;
foreach (var name in contextInfo.Attributes.AllKeys)
{
var value = contextInfo.Attributes[name];
if (StringUtils.EqualsIgnoreCase(name, ChannelIndex) || StringUtils.EqualsIgnoreCase(name, Index))
{
channelIndex = await parseManager.ReplaceStlEntitiesForAttributeValueAsync(value);
}
else if (StringUtils.EqualsIgnoreCase(name, ChannelName))
{
channelName = await parseManager.ReplaceStlEntitiesForAttributeValueAsync(value);
}
后面还有 44 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
