mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-20 18:57:56 +08:00

--HG-- branch : dev rename : src/Orchard.Web/Core/Common/Providers/BodyAspectHandler.cs => src/Orchard.Web/Core/Common/Models/BodyAspectHandler.cs rename : src/Orchard.Web/Core/Common/Providers/CommonAspectHandler.cs => src/Orchard.Web/Core/Common/Models/CommonAspectHandler.cs
29 lines
1.1 KiB
C#
29 lines
1.1 KiB
C#
using System.Text;
|
|
using JetBrains.Annotations;
|
|
using Orchard.ContentManagement;
|
|
using Orchard.ContentManagement.Aspects;
|
|
using Orchard.ContentManagement.Handlers;
|
|
using Orchard.Core.Common.Records;
|
|
using Orchard.Data;
|
|
|
|
namespace Orchard.Core.Common.Models {
|
|
[UsedImplicitly]
|
|
public class RoutableAspectHandler : ContentHandler {
|
|
public RoutableAspectHandler(IRepository<RoutableRecord> repository) {
|
|
Filters.Add(StorageFilter.For(repository));
|
|
|
|
OnGetEditorViewModel<RoutableAspect>((context, routable) => {
|
|
var containerPathBuilder = new StringBuilder();
|
|
var container = context.ContentItem.As<ICommonAspect>().Container;
|
|
|
|
while (container != null) {
|
|
if (container.Is<RoutableAspect>())
|
|
containerPathBuilder.Insert(0, string.Format("{0}/", container.As<RoutableAspect>().Slug));
|
|
container = container.ContentItem.As<ICommonAspect>().Container;
|
|
}
|
|
|
|
routable.ContainerPath = containerPathBuilder.ToString();
|
|
});
|
|
}
|
|
}
|
|
} |