diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Feeds/TagsFeedItemBuilder.cs b/src/Orchard.Web/Modules/Orchard.Tags/Feeds/TagsFeedItemBuilder.cs new file mode 100644 index 000000000..708a87052 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Tags/Feeds/TagsFeedItemBuilder.cs @@ -0,0 +1,27 @@ +using System.Linq; +using System.Xml.Linq; +using Orchard.ContentManagement; +using Orchard.Core.Feeds; +using Orchard.Core.Feeds.Models; +using Orchard.Environment.Extensions; +using Orchard.Tags.Models; + +namespace Orchard.Tags.Feeds { + [OrchardFeature("Orchard.Tags.Feeds")] + public class TagsFeedItemBuilder : IFeedItemBuilder { + public void Populate(FeedContext context) { + foreach (var feedItem in context.Response.Items.OfType>()) { + // add to known formats + if (context.Format == "rss") { + + // adding tags to the rss item + var tagsPart = feedItem.Item.As(); + if (tagsPart != null) { + tagsPart.CurrentTags.ToList().ForEach(x => + feedItem.Element.Add(new XElement("category", x))); + } + } + } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Module.txt b/src/Orchard.Web/Modules/Orchard.Tags/Module.txt index 3db1d9014..254103bc0 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.Tags/Module.txt @@ -10,3 +10,8 @@ Features: Description: The tags module is providing basic tagging for arbitrary content types. Dependencies: Settings, Orchard.jQuery Category: Navigation + Orchard.Tags.Feeds: + Name: Tags Feeds + Description: Adds tags to the RSS feeds. + Dependencies: Orchard.Tags, Feeds + Category: Syndication diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj index 7fa76378f..2ee056431 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj +++ b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj @@ -67,6 +67,7 @@ +