mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-22 20:13:50 +08:00
Data export implementation and export/id handlers for content parts and fields.
--HG-- branch : dev
This commit is contained in:
@@ -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,
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user