Created
September 3, 2020 11:48
-
-
Save TimGeyssens/5e9e156d66c3d85d0bfb24a1ae9a7504 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Web.Mvc; | |
using Umbraco.Community.Contentment.DataEditors; | |
using Umbraco.Core.PropertyEditors; | |
using Umbraco.Web; | |
namespace MyWebsite.DataSources | |
{ | |
public class PropertyDataDataSource : IDataListSource | |
{ | |
public string Name => "Umbraco Property Data"; | |
public string Description => "Data source for umbraco property data coming from the website root node."; | |
public string Icon => "icon-globe"; | |
public OverlaySize OverlaySize => OverlaySize.Small; | |
public Dictionary<string, object> DefaultValues => new Dictionary<string, object>(); | |
public IEnumerable<ConfigurationField> Fields => new ConfigurationField[] | |
{ | |
new ConfigurationField | |
{ | |
Key = "propAlias", | |
Name = "Property alias", | |
Description = "The property alias", | |
View = "textstring" | |
} | |
}; | |
public IEnumerable<DataListItem> GetItems(Dictionary<string, object> config) | |
{ | |
var items = new List<DataListItem>(); | |
using (UmbracoContextReference umbracoContextReference = DependencyResolver.Current.GetService<IUmbracoContextFactory>().EnsureUmbracoContext()) | |
{ | |
var content = umbracoContextReference.UmbracoContext.Content.GetAtRoot().First(); | |
var propertyAlias = config["propAlias"].ToString(); | |
var prop = content.GetProperty(propertyAlias); | |
if (prop == null) | |
throw new NullReferenceException("Property not found on node"); | |
foreach (var value in content.GetProperty(propertyAlias).GetValue() as String[]) | |
{ | |
items.Add(new DataListItem | |
{ | |
Name = value, | |
Value = value | |
}); | |
} | |
} | |
return items; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment