Data export implementation and export/id handlers for content parts and fields.

--HG--
branch : dev
This commit is contained in:
Suha Can
2011-03-14 17:14:03 -07:00
parent ad16d00a8d
commit 185166bffa
25 changed files with 186 additions and 57 deletions

View File

@@ -58,6 +58,10 @@ namespace Orchard.Core.Common.Drivers {
() => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix));
}
protected override void Exporting(BodyPart part, ContentManagement.Handlers.ExportContentContext context) {
context.Element(part.PartDefinition.Name).SetAttributeValue("Text", part.Text);
}
private static BodyEditorViewModel BuildEditorViewModel(BodyPart part) {
return new BodyEditorViewModel {
BodyPart = part,

View File

@@ -1,5 +1,6 @@
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.Handlers;
using Orchard.Core.Common.Models;
using Orchard.Core.Common.ViewModels;
using Orchard.Localization;
@@ -118,5 +119,21 @@ namespace Orchard.Core.Common.Drivers {
return ContentShape("Parts_Common_Container_Edit",
() => shapeHelper.EditorTemplate(TemplateName: "Parts.Common.Container", Model: model, Prefix: Prefix));
}
protected override void Exporting(CommonPart part, ExportContentContext context) {
if (part.Owner != null) {
var ownerIdentity = _contentManager.GetItemMetadata(part.Owner).Identity;
context.Element(part.PartDefinition.Name).SetAttributeValue("Owner", ownerIdentity.ToString());
}
if (part.Container != null) {
var containerIdentity = _contentManager.GetItemMetadata(part.Container).Identity;
context.Element(part.PartDefinition.Name).SetAttributeValue("Container", containerIdentity.ToString());
}
context.Element(part.PartDefinition.Name).SetAttributeValue("CreatedUtc", part.CreatedUtc);
context.Element(part.PartDefinition.Name).SetAttributeValue("PublishedUtc", part.PublishedUtc);
context.Element(part.PartDefinition.Name).SetAttributeValue("ModifiedUtc", part.ModifiedUtc);
}
}
}

View File

@@ -1,6 +1,7 @@
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.Handlers;
using Orchard.Core.Common.Fields;
namespace Orchard.Core.Common.Drivers {
@@ -34,5 +35,9 @@ namespace Orchard.Core.Common.Drivers {
updater.TryUpdateModel(field, GetPrefix(field, part), null, null);
return Editor(part, field, shapeHelper);
}
protected override void Exporting(ContentPart part, TextField field, ExportContentContext context) {
context.Element(part.PartDefinition.Name).SetAttributeValue("Text", field.Value);
}
}
}

View File

@@ -23,5 +23,9 @@ namespace Orchard.Core.Navigation.Drivers {
updater.TryUpdateModel(itemPart, Prefix, null, null);
return null;
}
protected override void Exporting(MenuItemPart part, ContentManagement.Handlers.ExportContentContext context) {
context.Element(part.PartDefinition.Name).SetAttributeValue("Url", part.Url);
}
}
}

View File

@@ -45,5 +45,11 @@ namespace Orchard.Core.Navigation.Drivers {
return Editor(part, shapeHelper);
}
protected override void Exporting(MenuPart part, ContentManagement.Handlers.ExportContentContext context) {
context.Element(part.PartDefinition.Name).SetAttributeValue("MenuText", part.MenuText);
context.Element(part.PartDefinition.Name).SetAttributeValue("MenuPosition", part.MenuPosition);
context.Element(part.PartDefinition.Name).SetAttributeValue("OnMainMenu", part.OnMainMenu);
}
}
}

View File

@@ -1,4 +1,5 @@
using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.Core.Navigation.Models;
using Orchard.Data;
using Orchard.ContentManagement.Handlers;
@@ -10,5 +11,13 @@ namespace Orchard.Core.Navigation.Handlers {
Filters.Add(new ActivatingFilter<MenuItemPart>("MenuItem"));
Filters.Add(StorageFilter.For(repository));
}
protected override void GetItemMetadata(GetContentItemMetadataContext context) {
var part = context.ContentItem.As<MenuItemPart>();
if (part != null) {
context.Metadata.Identity.Add("MenuItem.Url", part.Url);
}
}
}
}

View File

@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.Handlers;
using Orchard.Core.Routable.Models;
using Orchard.Core.Routable.Services;
using Orchard.Core.Routable.ViewModels;
@@ -93,5 +95,11 @@ namespace Orchard.Core.Routable.Drivers {
return Editor(part, shapeHelper);
}
protected override void Exporting(RoutePart part, ExportContentContext context) {
context.Element(part.PartDefinition.Name).SetAttributeValue("Title", part.Title);
context.Element(part.PartDefinition.Name).SetAttributeValue("Slug", part.Slug);
context.Element(part.PartDefinition.Name).SetAttributeValue("Path", part.Path);
}
}
}

View File

@@ -89,6 +89,14 @@ namespace Orchard.Core.Routable.Handlers {
OnIndexing<RoutePart>((context, part) => context.DocumentIndex.Add("title", part.Record.Title).RemoveTags().Analyze());
}
protected override void GetItemMetadata(GetContentItemMetadataContext context) {
var part = context.ContentItem.As<RoutePart>();
if (part != null) {
context.Metadata.Identity.Add("Route.Slug", part.Slug);
}
}
private void FinalizePath(RoutePart route, PublishContentContext context, Action<RoutePart> processSlug) {
var path = route.Path;
route.Path = route.GetPathWithSlug(route.Slug);