Changed blog post permalink to use new templating methods. Still need to define standard zones for a details template.

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4043465
This commit is contained in:
skewed
2009-12-08 08:23:28 +00:00
parent aa32c21b94
commit df08df7d23
13 changed files with 34 additions and 50 deletions

View File

@@ -331,12 +331,6 @@ div#title
.metadata, p.tags {
font-size:95%;
}
ul.blogs, ul.posts {
padding-left:0;
}
ul.blogs li, ul.posts li {
list-style-type:none;
}
/* Icon buttons
----------------------------------------------------------*/

View File

@@ -52,7 +52,12 @@ namespace Orchard.Blogs.Controllers {
if (post == null)
return new NotFoundResult();
return View(new BlogPostViewModel { Blog = blog, Post = post, ItemView = _contentManager.GetDisplayViewModel(post.ContentItem, null, "detail") });
var model = new BlogPostViewModel {
Blog = blog,
BlogPost = _contentManager.GetDisplayViewModel(post, null, "Detail")
};
return View(model);
}
public ActionResult Slugify(string value) {

View File

@@ -24,7 +24,7 @@ namespace Orchard.Blogs.Models {
Filters.Add(new ActivatingFilter<RoutableAspect>("blogpost"));
Filters.Add(new ActivatingFilter<BodyAspect>("blogpost"));
Filters.Add(new StorageFilter<BlogPostRecord>(repository));
Filters.Add(new ContentItemTemplates<BlogPost>("BlogPost", "Summary"));
Filters.Add(new ContentItemTemplates<BlogPost>("BlogPost", "Detail", "Summary"));
OnLoaded<BlogPost>((context, bp) => bp.Blog = contentManager.Get<Blog>(bp.Record.Blog.Id));

View File

@@ -15,7 +15,7 @@ namespace Orchard.Blogs.Models {
Filters.Add(new ActivatingFilter<CommonAspect>("blog"));
Filters.Add(new ActivatingFilter<RoutableAspect>("blog"));
Filters.Add(new StorageFilter<BlogRecord>(repository));
Filters.Add(new ContentItemTemplates<Blog>("Blog", "Summary"));
Filters.Add(new ContentItemTemplates<Blog>("Blog", "Detail", "Summary"));
}
}
}

View File

@@ -110,8 +110,9 @@
<Content Include="Views\Blog\DisplayTemplates\BlogForAdmin.ascx" />
<Content Include="Views\Blog\List.aspx" />
<Content Include="Views\Blog\ListForAdmin.aspx" />
<Content Include="Views\Models\DisplayTemplates\BlogPostDetail.ascx" />
<Content Include="Views\Models\DisplayTemplates\BlogPostSummary.ascx" />
<Content Include="Views\Models\DisplayTemplates\Blog.ascx" />
<Content Include="Views\Models\DisplayTemplates\BlogDetail.ascx" />
<Content Include="Views\Models\DisplayTemplates\BlogPostList.ascx" />
<Content Include="Views\Models\DisplayTemplates\BlogSummary.ascx" />
<Content Include="Views\Shared\BlogPostPreview.ascx" />

View File

@@ -5,7 +5,6 @@ using Orchard.Mvc.ViewModels;
namespace Orchard.Blogs.ViewModels {
public class BlogPostViewModel : BaseViewModel {
public Blog Blog { get; set; }
public BlogPost Post { get; set; }
public ItemDisplayViewModel ItemView { get; set; }
public ItemDisplayViewModel<BlogPost> BlogPost { get; set; }
}
}

View File

@@ -1,4 +1,3 @@
using System.Collections.Generic;
using Orchard.Blogs.Models;
using Orchard.Models.ViewModels;
using Orchard.Mvc.ViewModels;
@@ -6,8 +5,5 @@ using Orchard.Mvc.ViewModels;
namespace Orchard.Blogs.ViewModels {
public class BlogViewModel : BaseViewModel {
public ItemDisplayViewModel<Blog> Blog { get; set; }
//public Blog Blog { get; set; }
//public IEnumerable<ItemDisplayViewModel<BlogPost>> Posts { get; set; }
}
}

View File

@@ -9,7 +9,7 @@
<h2>Blogs</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p><%
if (Model.Blogs.Count() > 0) { %>
<%=Html.UnorderedList(Model.Blogs, (b, i) => Html.DisplayForItem(b).ToHtmlString(), "blogs") %><%
<%=Html.UnorderedList(Model.Blogs, (b, i) => Html.DisplayForItem(b).ToHtmlString(), "blogs contentItems") %><%
}
else { %>
<p>No blogs found.</p><%

View File

@@ -1,22 +1,7 @@
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<BlogPostViewModel>" %>
<%@ Import Namespace="Orchard.Core.Common.Models"%>
<%@ Import Namespace="Orchard.Models"%>
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
<%@ Import Namespace="Orchard.Blogs.Models"%>
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
<%-- todo: (heskew) make master-less when we get into theming --%>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<%-- todo: (heskew) needs to be an h1 --%>
<div class="manage"><a href="<%=Url.BlogPostEdit(Model.Blog.Slug, Model.Post.Slug) %>" class="ibutton edit">edit</a></div>
<h2><%=Html.Encode(Model.Post.Title) %></h2>
<div class="metadata">
<% if (Model.Post.Creator != null) {
%><div class="posted">Posted by <%=Html.Encode(Model.Post.Creator.UserName)%> <%=Html.PublishedWhen(Model.Post)%></div><%
} %>
</div>
<%foreach (var display in Model.ItemView.Displays) { %>
<%=Html.DisplayFor(m=>display.Model, display.TemplateName, display.Prefix) %>
<%} %>
<%=Html.DisplayForItem(m=>m.BlogPost) %>
</asp:Content>

View File

@@ -1,8 +1,8 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemDisplayViewModel<Blog>>" %>
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Models.ViewModels"%>
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
<%@ Import Namespace="Orchard.Blogs.Models"%>
<%@ Import Namespace="Orchard.Models.ViewModels"%>
<div class="manage"><a href="<%=Url.BlogEdit(Model.Item.Slug) %>" class="ibutton edit">edit</a></div>
<h2><%=Html.Encode(Model.Item.Name) %></h2>
<div><%=Html.Encode(Model.Item.Description) %></div>

View File

@@ -0,0 +1,15 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemDisplayViewModel<BlogPost>>" %>
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Models.ViewModels"%>
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
<%@ Import Namespace="Orchard.Blogs.Models"%>
<%-- todo: (heskew) needs to be an h1 --%>
<div class="manage"><a href="<%=Url.BlogPostEdit(Model.Item.Slug, Model.Item.Slug) %>" class="ibutton edit">edit</a></div>
<h2><%=Html.Encode(Model.Item.Title)%></h2>
<div class="metadata">
<% if (Model.Item.Creator != null)
{
%><div class="posted">Posted by <%=Html.Encode(Model.Item.Creator.UserName)%> <%=Html.PublishedWhen(Model.Item)%></div><%
} %>
</div>
<%=Html.DisplayZonesAny() %>

View File

@@ -1,14 +1,5 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ItemDisplayViewModel<BlogPost>>>" %>
<%@ Import Namespace="Orchard.Mvc.Html" %>
<%@ Import Namespace="Orchard.Models.ViewModels" %>
<%@ Import Namespace="Orchard.Models" %>
<%@ Import Namespace="Orchard.Blogs.Extensions" %>
<%@ Import Namespace="Orchard.Core.Common.Models" %>
<%@ Import Namespace="Orchard.Blogs.Models" %>
<ul class="posts contentItems">
<%foreach (var item in Model) { %>
<li>
<%= Html.DisplayForItem(item)%>
</li>
<%} %>
</ul>
<%@ Import Namespace="Orchard.Mvc.Html"%>
<%@ Import Namespace="Orchard.Models.ViewModels"%>
<%@ Import Namespace="Orchard.Blogs.Models"%>
<%=Html.UnorderedList(Model, (bp, i) => Html.DisplayForItem(bp).ToHtmlString(), "blogPosts contentItems") %>

View File

@@ -1,8 +1,6 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ItemDisplayViewModel<BlogPost>>" %>
<%@ Import Namespace="Orchard.Models.ViewModels"%>
<%@ Import Namespace="Orchard.Models"%>
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
<%@ Import Namespace="Orchard.Core.Common.Models"%>
<%@ Import Namespace="Orchard.Blogs.Models"%>
<h3><a href="<%=Url.BlogPost(Model.Item.Blog.Slug, Model.Item.Slug) %>"><%=Html.Encode(Model.Item.Title) %></a></h3>
<div class="meta">