public static List <AttrEnum> GetEnums(Type elementType, string name, int siteId) { var enums = new List <AttrEnum>(); if (name == "channelIndex") { var channelInfoList = ChannelManager.GetChannelInfoList(siteId); foreach (var channelInfo in channelInfoList) { if (!string.IsNullOrEmpty(channelInfo.IndexName)) { enums.Add(new AttrEnum(channelInfo.IndexName, string.Empty)); } } } else if (name == "channelName") { var channelInfoList = ChannelManager.GetChannelInfoList(siteId); foreach (var channelInfo in channelInfoList) { enums.Add(new AttrEnum(channelInfo.ChannelName, string.Empty)); } } else if (name == "context") { enums = new List <AttrEnum> { new AttrEnum("site", "站点"), new AttrEnum("channel", "栏目"), new AttrEnum("content", "内容"), new AttrEnum("sqlContent", "SQL") }; } else if (name == "type") { if (elementType == typeof(StlAudio)) { var siteInfo = SiteManager.GetSiteInfo(siteId); var tableName = ChannelManager.GetTableName(siteInfo, siteId); var relatedIdentities = RelatedIdentities.GetChannelRelatedIdentities(siteId, siteId); var styleInfoList = TableStyleManager.GetTableStyleInfoList(tableName, relatedIdentities); var editableStyleInfoList = ContentUtility.GetEditableTableStyleInfoList(styleInfoList); foreach (var styleInfo in editableStyleInfoList) { if (styleInfo.InputType == InputType.Text || styleInfo.InputType == InputType.Video || styleInfo.InputType == InputType.Image || styleInfo.InputType == InputType.File) { enums.Add(new AttrEnum(styleInfo.AttributeName, styleInfo.DisplayName)); } } } else if (elementType == typeof(StlChannel)) { var fields = typeof(ChannelAttribute).GetFields(BindingFlags.Static | BindingFlags.Public); foreach (var field in fields) { var stlAttribute = (StlFieldAttribute)field.GetCustomAttribute(typeof(StlFieldAttribute)); var desc = string.Empty; if (stlAttribute != null) { desc = stlAttribute.Description; } enums.Add(new AttrEnum(field.Name, desc)); } var styleInfoList = TableStyleManager.GetTableStyleInfoList(DataProvider.ChannelDao.TableName, RelatedIdentities.GetChannelRelatedIdentities(siteId, siteId)); foreach (var styleInfo in styleInfoList) { enums.Add(new AttrEnum(styleInfo.AttributeName, styleInfo.DisplayName)); } } } return(enums); }