From c736214117e9a99fa6b79c0da4aff9f1c2dcc433 Mon Sep 17 00:00:00 2001 From: Suha Can Date: Tue, 15 Mar 2011 11:37:18 -0700 Subject: [PATCH] Adding last few remaining export handlers, Comments, RecentBlogPosts and ArchiveLater... --HG-- branch : dev --- .../Drivers/ArchiveLaterPartDriver.cs | 5 ++++ .../Orchard.ArchiveLater.csproj | 2 ++ .../Drivers/RecentBlogPostsPartDriver.cs | 6 ++++ .../Drivers/CommentPartDriver.cs | 30 ++++++++++++++++++- .../Drivers/CommentsPartDriver.cs | 5 ++++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Drivers/ArchiveLaterPartDriver.cs b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Drivers/ArchiveLaterPartDriver.cs index 1b2dd6a91..cd89d77a0 100644 --- a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Drivers/ArchiveLaterPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Drivers/ArchiveLaterPartDriver.cs @@ -4,6 +4,7 @@ using Orchard.ArchiveLater.Services; using Orchard.ArchiveLater.ViewModels; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; +using Orchard.ContentManagement.Handlers; using Orchard.Localization; using System.Globalization; @@ -72,5 +73,9 @@ namespace Orchard.ArchiveLater.Drivers { return ContentShape("Parts_ArchiveLater_Edit", () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix)); } + + protected override void Exporting(ArchiveLaterPart part, ExportContentContext context) { + context.Element(part.PartDefinition.Name).SetAttributeValue("ScheduledArchiveUtc", part.ScheduledArchiveUtc.Value); + } } } diff --git a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj index 37515e4b7..c43aa7625 100644 --- a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj +++ b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj @@ -44,6 +44,8 @@ ..\..\..\..\lib\aspnetmvc\System.Web.Mvc.dll + + diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs index 93b16f16e..1a8481b05 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs @@ -5,6 +5,7 @@ using Orchard.Blogs.Services; using Orchard.Blogs.ViewModels; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; +using Orchard.ContentManagement.Handlers; using Orchard.Core.Common.Models; namespace Orchard.Blogs.Drivers { @@ -64,5 +65,10 @@ namespace Orchard.Blogs.Drivers { return Editor(part, shapeHelper); } + + protected override void Exporting(RecentBlogPostsPart part, ExportContentContext context) { + context.Element(part.PartDefinition.Name).SetAttributeValue("BlogSlug", part.ForBlog); + context.Element(part.PartDefinition.Name).SetAttributeValue("Count", part.Count); + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs index 7aa90d232..3f0dbdc4e 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs @@ -1,10 +1,38 @@ using JetBrains.Annotations; using Orchard.Comments.Models; +using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; namespace Orchard.Comments.Drivers { [UsedImplicitly] public class CommentPartDriver : ContentPartDriver { + private readonly IContentManager _contentManager; protected override string Prefix { get { return "Comments"; } } + + public CommentPartDriver(IContentManager contentManager) { + _contentManager = contentManager; + } + + protected override void Exporting(CommentPart part, ContentManagement.Handlers.ExportContentContext context) { + context.Element(part.PartDefinition.Name).SetAttributeValue("Author", part.Record.Author); + context.Element(part.PartDefinition.Name).SetAttributeValue("SiteName", part.Record.SiteName); + context.Element(part.PartDefinition.Name).SetAttributeValue("UserName", part.Record.UserName); + context.Element(part.PartDefinition.Name).SetAttributeValue("Email", part.Record.Email); + context.Element(part.PartDefinition.Name).SetAttributeValue("Status", part.Record.Status.ToString()); + context.Element(part.PartDefinition.Name).SetAttributeValue("CommentDataUtc", part.Record.CommentDateUtc.ToString()); + context.Element(part.PartDefinition.Name).SetAttributeValue("CommentText", part.Record.CommentText); + + var commentedOn = _contentManager.Get(part.Record.CommentedOn); + if (commentedOn != null) { + var commentedOnIdentity = _contentManager.GetItemMetadata(commentedOn).Identity; + context.Element(part.PartDefinition.Name).SetAttributeValue("CommentedOn", commentedOnIdentity.ToString()); + } + + var commentedOnContainer = _contentManager.Get(part.Record.CommentedOnContainer); + if (commentedOnContainer != null) { + var commentedOnContainerIdentity = _contentManager.GetItemMetadata(commentedOnContainer).Identity; + context.Element(part.PartDefinition.Name).SetAttributeValue("commentedOnContainer", commentedOnContainerIdentity.ToString()); + } + } } -} \ No newline at end of file +} diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs index 4a7841869..14feb0b84 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs @@ -29,5 +29,10 @@ namespace Orchard.Comments.Drivers { updater.TryUpdateModel(part, Prefix, null, null); return Editor(part, shapeHelper); } + + protected override void Exporting(CommentsPart part, ContentManagement.Handlers.ExportContentContext context) { + context.Element(part.PartDefinition.Name).SetAttributeValue("CommentsShown", part.CommentsShown); + context.Element(part.PartDefinition.Name).SetAttributeValue("CommentsActive", part.CommentsActive); + } } } \ No newline at end of file