Adding generic ContentItem editor and display templates

- ContentItem editor and display templates added that only render the "primary" zone, then remaining zones (ZonesAny)
- Added a UseDefaultTemplate bool to ContentItemDriver and conditionally return the default template for Display or Edit
- Updated the UserDriver to use the default templates
-

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-02-26 15:20:50 -08:00
parent a21e246e4d
commit 22e5a083bf
7 changed files with 22 additions and 16 deletions

View File

@@ -218,6 +218,8 @@
<Content Include="Navigation\Views\Web.config" />
<Content Include="Themes\Scripts\jquery-1.4.1.js" />
<Content Include="Themes\Scripts\jquery-1.4.1.min.js" />
<Content Include="Themes\Views\EditorTemplates\Items\ContentItem.ascx" />
<Content Include="Themes\Views\DisplayTemplates\Items\ContentItem.ascx" />
</ItemGroup>
<ItemGroup>
<Folder Include="Scheduling\Controllers\" />

View File

@@ -0,0 +1,4 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<ContentItemViewModel>" %>
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
<% Html.Zone("primary");
Html.ZonesAny(); %>

View File

@@ -0,0 +1,4 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<ContentItemViewModel>" %>
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
<% Html.Zone("primary");
Html.ZonesAny(); %>

View File

@@ -12,6 +12,8 @@ namespace Orchard.Users.Controllers {
DisplayName = "User Profile"
};
protected override bool UseDefaultTemplate { get { return true; } }
protected override ContentType GetContentType() {
return ContentType;
}
@@ -29,13 +31,5 @@ namespace Orchard.Users.Controllers {
{"Id", item.ContentItem.Id},
};
}
protected override DriverResult Editor(User part) {
return ContentItemTemplate("Items/Users.User");
}
protected override DriverResult Editor(User part, IUpdateModel updater) {
return ContentItemTemplate("Items/Users.User");
}
}
}

View File

@@ -88,7 +88,6 @@
<Content Include="Views\Admin\EditorTemplates\inputPasswordLarge.ascx" />
<Content Include="Views\Admin\EditorTemplates\inputTextLarge.ascx" />
<Content Include="Views\Admin\Index.aspx" />
<Content Include="Views\EditorTemplates\Items\Users.User.ascx" />
<Content Include="Web.config" />
<Content Include="Views\Web.config" />
</ItemGroup>

View File

@@ -1,4 +0,0 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ContentItemViewModel<User>>" %>
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
<%@ Import Namespace="Orchard.Users.Models"%>
<% Html.ZonesAny(); %>

View File

@@ -16,6 +16,7 @@ namespace Orchard.ContentManagement.Drivers {
public abstract class ContentItemDriver<TContent> : ContentPartDriver<TContent>, IContentItemDriver where TContent : class, IContent {
private readonly ContentType _contentType;
protected virtual bool UseDefaultTemplate { get { return false; } }
public ContentItemDriver() {
}
@@ -76,12 +77,18 @@ namespace Orchard.ContentManagement.Drivers {
protected virtual RouteValueDictionary GetDisplayRouteValues(TContent item) { return null; }
protected virtual RouteValueDictionary GetEditorRouteValues(TContent item) { return null; }
protected virtual DriverResult Display(ContentItemViewModel<TContent> viewModel, string displayType) { return null; }
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel) { return null; }
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel, IUpdateModel updater) { return null; }
protected virtual DriverResult Display(ContentItemViewModel<TContent> viewModel, string displayType) { return GetDefaultItemTemplate(); }
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel) { return GetDefaultItemTemplate(); }
protected virtual DriverResult Editor(ContentItemViewModel<TContent> viewModel, IUpdateModel updater) { return GetDefaultItemTemplate(); }
public ContentItemTemplateResult<TContent> ContentItemTemplate(string templateName) {
return new ContentItemTemplateResult<TContent>(templateName);
}
private DriverResult GetDefaultItemTemplate() {
return UseDefaultTemplate
? ContentItemTemplate("Items/ContentItem")
: null;
}
}
}