mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-14 10:54:50 +08:00
- Tags/Comments support for Blog posts.
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4042857
This commit is contained in:
@@ -52,7 +52,7 @@ namespace Orchard.Blogs.Controllers {
|
||||
if (post == null)
|
||||
return new NotFoundResult();
|
||||
|
||||
return View(new BlogPostViewModel {Blog = blog, Post = post});
|
||||
return View(new BlogPostViewModel {Blog = blog, Post = post, Displays = _contentManager.GetDisplays(post.ContentItem)});
|
||||
}
|
||||
|
||||
public ActionResult Create(string blogSlug) {
|
||||
@@ -62,7 +62,7 @@ namespace Orchard.Blogs.Controllers {
|
||||
if (blog == null)
|
||||
return new NotFoundResult();
|
||||
|
||||
return View(new CreateBlogPostViewModel() {Blog = blog});
|
||||
return View(new CreateBlogPostViewModel {Blog = blog});
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
|
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
using System.Web.Routing;
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Models;
|
||||
using Orchard.Security;
|
||||
|
||||
namespace Orchard.Blogs.Models {
|
||||
public class BlogPost : ContentPart<BlogPostRecord> {
|
||||
public class BlogPost : ContentPart<BlogPostRecord>, IContentDisplayInfo {
|
||||
public readonly static ContentType ContentType = new ContentType { Name = "blogpost", DisplayName = "Blog Post" };
|
||||
|
||||
public Blog Blog { get; set; }
|
||||
@@ -14,5 +15,21 @@ namespace Orchard.Blogs.Models {
|
||||
public string Slug { get { return this.As<RoutableAspect>().Slug; } }
|
||||
public IUser Creator { get { return this.As<CommonAspect>().OwnerField.Value; } }
|
||||
public DateTime? Published { get { return Record.Published; } }
|
||||
|
||||
#region IContentDisplayInfo Members
|
||||
|
||||
public string DisplayText {
|
||||
get { return Title; }
|
||||
}
|
||||
|
||||
public RouteValueDictionary DisplayRouteValues() {
|
||||
return new RouteValueDictionary(new { area = "Orchard.Blogs", controller = "BlogPost", action = "Item", blogSlug = Blog.Slug, postSlug = Slug });
|
||||
}
|
||||
|
||||
public RouteValueDictionary EditRouteValues() {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@@ -1,9 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using Orchard.Blogs.Models;
|
||||
using Orchard.Mvc.ViewModels;
|
||||
using Orchard.UI.Models;
|
||||
|
||||
namespace Orchard.Blogs.ViewModels {
|
||||
public class BlogPostViewModel : BaseViewModel {
|
||||
public Blog Blog { get; set; }
|
||||
public BlogPost Post { get; set; }
|
||||
public IEnumerable<ModelTemplate> Displays { get; set; }
|
||||
}
|
||||
}
|
@@ -14,4 +14,8 @@
|
||||
<div><a href="<%=Url.BlogPostEdit(Model.Blog.Slug, Model.Post.Slug) %>">(edit)</a></div>
|
||||
</div>
|
||||
<div class="content"><%=Model.Post.Body %></div>
|
||||
|
||||
<%foreach (var display in Model.Displays) { %>
|
||||
<%=Html.DisplayFor(m=>display.Model, display.TemplateName, display.Prefix) %>
|
||||
<%} %>
|
||||
</asp:Content>
|
@@ -61,7 +61,7 @@ namespace Orchard.Comments.Controllers {
|
||||
}
|
||||
catch (Exception exception) {
|
||||
_notifier.Error(T("Listing comments failed: " + exception.Message));
|
||||
return Index(options);
|
||||
return View(new CommentsIndexViewModel());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -23,6 +23,7 @@ namespace Orchard.Comments.Models {
|
||||
_commentsRepository = commentsRepository;
|
||||
_closedCommentsRepository = closedCommentsRepository;
|
||||
Filters.Add(new ActivatingFilter<HasComments>("sandboxpage"));
|
||||
Filters.Add(new ActivatingFilter<HasComments>("blogpost"));
|
||||
}
|
||||
|
||||
protected override void GetDisplays(GetDisplaysContext context) {
|
||||
|
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Orchard.Data;
|
||||
using Orchard.Models;
|
||||
@@ -25,6 +24,7 @@ namespace Orchard.Tags.Models {
|
||||
_tagsRepository = tagsRepository;
|
||||
_tagsContentItemsRepository = tagsContentItemsRepository;
|
||||
Filters.Add(new ActivatingFilter<HasTags>("sandboxpage"));
|
||||
Filters.Add(new ActivatingFilter<HasTags>("blogpost"));
|
||||
|
||||
OnGetDisplays<HasTags>((context, part) => {
|
||||
context.Displays.Add(new ModelTemplate(context.ContentItem.Get<HasTags>()) { Position = "2", TemplateName = "HasTagsList" });
|
||||
|
Reference in New Issue
Block a user