public void Process(GetFieldModelArgs args) { if (args.Field.Name.StartsWith("_", true, CultureInfo.InvariantCulture) || !args.Field.HasValue) { args.AbortPipeline(); } }
public void Process(GetFieldModelArgs args) { if (args.RecursionLevel > 5 || args.Result != null || !args.Field.HasValue) { return; } var lookupField = FieldTypeManager.GetField(args.Field) as LookupField; var itemField = FieldTypeManager.GetField(args.Field) as ReferenceField; if (lookupField == null && itemField == null) { return; } var item = itemField?.TargetItem ?? lookupField?.TargetItem; if (item == null) { args.AbortPipeline(); return; } var dict = item.ToFieldsDictionary(args.RecursionLevel + 1); var path = LinkManager.GetItemUrl(item, new UrlOptions { AddAspxExtension = false, AlwaysIncludeServerUrl = false, EncodeNames = true, LanguageEmbedding = LanguageEmbedding.Never, LowercaseUrls = true }); args.Result = new { name = item.Name, displayName = item.DisplayName, path, fields = dict }; }