From 22eff819383864c6514b53dd094e05afbbb05aa6 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 19 Jul 2013 17:08:29 -0700 Subject: [PATCH] #19907: Implementing Media and Media Library fields import/export --HG-- branch : 1.x --- .../Drivers/MediaPartDriver.cs | 35 +++++++++++++++++++ .../Orchard.MediaLibrary/Migrations.cs | 23 ++++++++++++ 2 files changed, 58 insertions(+) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Drivers/MediaPartDriver.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Drivers/MediaPartDriver.cs index a1425984b..65df8c8d4 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Drivers/MediaPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Drivers/MediaPartDriver.cs @@ -34,5 +34,40 @@ namespace Orchard.MediaLibrary.Drivers { protected override DriverResult Editor(MediaPart part, dynamic shapeHelper) { return ContentShape("Parts_Media_Edit", () => shapeHelper.EditorTemplate(TemplateName: "Parts.Media.Edit", Model: part, Prefix: Prefix)); } + + protected override void Importing(MediaPart part, ContentManagement.Handlers.ImportContentContext context) { + var mimeType = context.Attribute(part.PartDefinition.Name, "MimeType"); + if (mimeType != null) { + part.MimeType = mimeType; + } + + var caption = context.Attribute(part.PartDefinition.Name, "Caption"); + if (caption != null) { + part.Caption = caption; + } + + var alternateText = context.Attribute(part.PartDefinition.Name, "AlternateText"); + if (alternateText != null) { + part.AlternateText = alternateText; + } + + var folderPath = context.Attribute(part.PartDefinition.Name, "FolderPath"); + if (folderPath != null) { + part.FolderPath = folderPath; + } + + var fileName = context.Attribute(part.PartDefinition.Name, "FileName"); + if (fileName != null) { + part.FileName = fileName; + } + } + + protected override void Exporting(MediaPart part, ContentManagement.Handlers.ExportContentContext context) { + context.Element(part.PartDefinition.Name).SetAttributeValue("MimeType", part.MimeType); + context.Element(part.PartDefinition.Name).SetAttributeValue("Caption", part.Caption); + context.Element(part.PartDefinition.Name).SetAttributeValue("AlternateText", part.AlternateText); + context.Element(part.PartDefinition.Name).SetAttributeValue("FolderPath", part.FolderPath); + context.Element(part.PartDefinition.Name).SetAttributeValue("FileName", part.FileName); + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Migrations.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Migrations.cs index eda190d08..9ded4a0ba 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Migrations.cs @@ -63,5 +63,28 @@ namespace Orchard.MediaLibrary { return 2; } + public int UpdateFrom2() { + ContentDefinitionManager.AlterTypeDefinition("Image", td => td + .WithPart("IdentityPart") + ); + + ContentDefinitionManager.AlterTypeDefinition("Video", td => td + .WithPart("IdentityPart") + ); + + ContentDefinitionManager.AlterTypeDefinition("Audio", td => td + .WithPart("IdentityPart") + ); + + ContentDefinitionManager.AlterTypeDefinition("Document", td => td + .WithPart("IdentityPart") + ); + + ContentDefinitionManager.AlterTypeDefinition("OEmbed", td => td + .WithPart("IdentityPart") + ); + + return 3; + } } } \ No newline at end of file