Example: syndicate children of multiple items
You can implement a custom RSS feed based on the following example that syndicates the children of all of the items selected in the field named Sources in the feed definition item.
-
In the Visual Studio Web application project, compile a class based on the following example:
RequestResponsenamespace Sitecore.Sharedsource.Syndication { public class SelectionFeed : Sitecore.Syndication.PublicFeed { public override System.Collections.Generic.IEnumerable<Sitecore.Data.Items.Item> GetSourceItem() { Sitecore.Data.Fields.MultilistField entries = this.FeedItem.Fields["Sources"]; if (entries == null || entries.Count < 1) { return new Sitecore.Data.Items.Item[0]; } Sitecore.Collections.ItemList list = new Sitecore.Collections.ItemList(); foreach (Sitecore.Data.Items.Item parent in entries.GetItems()) { foreach (Sitecore.Data.Items.Item child in parent.Children) { if (Sitecore.Syndication.FeedUtil.IsConfiguredForFeed(child)) { list.Add(child); } } } if (list.Count < 1) { return new Sitecore.Data.Items.Item[0]; } list.Sort(new Sitecore.Data.Comparers.UpdatedComparer()); return list.ToArray(); } } } -
In the Template Manager or the Content Editor, in the System/Feeds/RSS Feed data template, in the Extensibility section, add a Treelist field named Sources, and set the Source property of this field to the /sitecore/content item.
-
In the Content Editor, in the feed definition item, in the Extensibility section, in the Type field, enter the signature of the class:
Sitecore.Sharedsource.Syndication.MultiParentFeed, Assembly -
In the Content Editor, in the feed definition item, in the Extensibility section, in the Sources field, select items with children to syndicate.