mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-14 10:54:50 +08:00

--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4042888
45 lines
1.9 KiB
C#
45 lines
1.9 KiB
C#
using System.Collections.Generic;
|
|
using System.Web.Routing;
|
|
using Orchard.Core.Common.Models;
|
|
using Orchard.Data;
|
|
using Orchard.Models;
|
|
using Orchard.Models.Driver;
|
|
|
|
namespace Orchard.Blogs.Models {
|
|
public class BlogPostProvider : ContentProvider {
|
|
public override IEnumerable<ContentType> GetContentTypes() {
|
|
return new[] { BlogPost.ContentType };
|
|
}
|
|
|
|
public BlogPostProvider(IRepository<BlogPostRecord> repository, IContentManager contentManager) {
|
|
Filters.Add(new ActivatingFilter<BlogPost>("blogpost"));
|
|
Filters.Add(new ActivatingFilter<CommonAspect>("blogpost"));
|
|
Filters.Add(new ActivatingFilter<RoutableAspect>("blogpost"));
|
|
Filters.Add(new ActivatingFilter<BodyAspect>("blogpost"));
|
|
Filters.Add(new StorageFilter<BlogPostRecord>(repository));
|
|
OnLoaded<BlogPost>((context, bp) => bp.Blog = contentManager.Get<Blog>(bp.Record.Blog.Id));
|
|
|
|
OnGetItemMetadata<BlogPost>((context, bp) => {
|
|
context.Metadata.DisplayText = bp.Title;
|
|
context.Metadata.DisplayRouteValues =
|
|
new RouteValueDictionary(
|
|
new {
|
|
area = "Orchard.Blogs",
|
|
controller = "BlogPost",
|
|
action = "Item",
|
|
blogSlug = bp.Blog.Slug,
|
|
postSlug = bp.Slug
|
|
});
|
|
context.Metadata.EditorRouteValues =
|
|
new RouteValueDictionary(
|
|
new {
|
|
area = "Orchard.Blogs",
|
|
controller = "BlogPost",
|
|
action = "Edit",
|
|
blogSlug = bp.Blog.Slug,
|
|
postSlug = bp.Slug
|
|
});
|
|
});
|
|
}
|
|
}
|
|
} |