mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Refactoring and repair
ShapeMetadata.FrameTypes changed to ShapeMetadata.Wrappers Adding placeholder "Item" template (needs to lock onto alternates, and use ~/Views/Items/* locations) --HG-- branch : theming
This commit is contained in:
@@ -402,6 +402,7 @@
|
||||
<None Include="Contents\Views\Content.cshtml" />
|
||||
<None Include="Contents\Views\Item\Display.cshtml" />
|
||||
<None Include="HomePage\Views\HomePage.cshtml" />
|
||||
<None Include="Shapes\Views\Item.cshtml" />
|
||||
<None Include="Shapes\Views\Document.aspx_" />
|
||||
<None Include="Shapes\Views\Document.cshtml" />
|
||||
<None Include="Shapes\Views\Layout.ascx_" />
|
||||
|
||||
2
src/Orchard.Web/Core/Shapes/Views/Item.cshtml
Normal file
2
src/Orchard.Web/Core/Shapes/Views/Item.cshtml
Normal file
@@ -0,0 +1,2 @@
|
||||
<h3>Content item placeholder</h3>
|
||||
<p>This file will be relocated and specialized</p>
|
||||
@@ -1,4 +1,4 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
|
||||
layouthea<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
|
||||
<%@ Import Namespace="Orchard.Utility.Extensions"%>
|
||||
<%@ Import Namespace="Orchard.Mvc.Html"%>
|
||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%><%
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<ul>
|
||||
@foreach(var descriptor in shapeTable.Descriptors) {
|
||||
<li>@descriptor.Key : @descriptor.Value.BindingSource
|
||||
@if(descriptor.Value.FrameTypes.Any()){
|
||||
foreach(var ft in descriptor.Value.FrameTypes) {
|
||||
@(" +"+ft)
|
||||
@if(descriptor.Value.Wrappers.Any()){
|
||||
foreach(var wrapper in descriptor.Value.Wrappers) {
|
||||
@(" +"+wrapper)
|
||||
}
|
||||
}
|
||||
</li>
|
||||
|
||||
@@ -2,21 +2,23 @@
|
||||
<%@ Import Namespace="Orchard.Security" %>
|
||||
<%@ Import Namespace="Orchard.DisplayManagement.Descriptors" %>
|
||||
<%@ Import Namespace="Orchard" %>
|
||||
<%@ Import Namespace="Orchard.ContentManagement" %>
|
||||
<%
|
||||
Model.Content.Add(Model.Metadata.ChildContent, "5");
|
||||
|
||||
// these are just hacked together to fire existing partials... can change
|
||||
Model.Header.Add(Display.Header());
|
||||
|
||||
// <experimentation>
|
||||
var thisUser = Html.Resolve<IAuthenticationService>().GetAuthenticatedUser();
|
||||
|
||||
Model.Header.Add(Display.User(CurrentUser: thisUser), "after");
|
||||
|
||||
Model.CurrentUser = thisUser;
|
||||
Model.Header.Add(Display.Partial(TemplateName: "User"), "after");
|
||||
|
||||
var userDisplay = thisUser.ContentItem.ContentManager.BuildDisplayModel(thisUser, "Detail");
|
||||
Model.Content.Add(userDisplay);
|
||||
var userDetail = Html.Resolve<IContentManager>().BuildDisplayModel(thisUser, "Detail");
|
||||
Model.Content.Add(userDetail);
|
||||
// </experimentation>
|
||||
|
||||
Html.RegisterStyle("site.css", "1");
|
||||
Html.RegisterStyle("ie.css", "1").WithCondition("if (lte IE 8)").ForMedia("screen, projection");
|
||||
|
||||
@@ -370,21 +370,24 @@ namespace Orchard.ContentManagement {
|
||||
|
||||
public dynamic BuildDisplayModel<TContent>(TContent content, string displayType) where TContent : IContent {
|
||||
var shapeHelper = _shapeHelperFactory.CreateHelper();
|
||||
var context = new BuildDisplayModelContext(content, displayType, shapeHelper.Create("Item", Arguments.Empty()), _shapeHelperFactory);
|
||||
var itemShape = shapeHelper.Item(ContentItem:content.ContentItem);
|
||||
var context = new BuildDisplayModelContext(content, displayType, itemShape, _shapeHelperFactory);
|
||||
Handlers.Invoke(handler => handler.BuildDisplayShape(context), Logger);
|
||||
return context.Model;
|
||||
}
|
||||
|
||||
public dynamic BuildEditorModel<TContent>(TContent content) where TContent : IContent {
|
||||
var shapeHelper = _shapeHelperFactory.CreateHelper();
|
||||
var context = new BuildEditorModelContext(content, shapeHelper.Create("Item", Arguments.Empty()), _shapeHelperFactory);
|
||||
var itemShape = shapeHelper.Item(ContentItem:content.ContentItem);
|
||||
var context = new BuildEditorModelContext(content, itemShape, _shapeHelperFactory);
|
||||
Handlers.Invoke(handler => handler.BuildEditorShape(context), Logger);
|
||||
return context.Model;
|
||||
}
|
||||
|
||||
public dynamic UpdateEditorModel<TContent>(TContent content, IUpdateModel updater) where TContent : IContent {
|
||||
var shapeHelper = _shapeHelperFactory.CreateHelper();
|
||||
var context = new UpdateEditorModelContext(content, updater, shapeHelper.Create("Item", Arguments.Empty()), _shapeHelperFactory);
|
||||
var itemShape = shapeHelper.Item(ContentItem:content.ContentItem);
|
||||
var context = new UpdateEditorModelContext(content, updater, itemShape, _shapeHelperFactory);
|
||||
Handlers.Invoke(handler => handler.UpdateEditorShape(context), Logger);
|
||||
return context.Model;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Orchard.DisplayManagement.Descriptors {
|
||||
public ShapeDescriptor() {
|
||||
Creating = Enumerable.Empty<Action<ShapeCreatingContext>>();
|
||||
Created = Enumerable.Empty<Action<ShapeCreatedContext>>();
|
||||
FrameTypes = new List<string>();
|
||||
Wrappers = new List<string>();
|
||||
}
|
||||
|
||||
public string ShapeType { get; set; }
|
||||
@@ -25,6 +25,6 @@ namespace Orchard.DisplayManagement.Descriptors {
|
||||
public IEnumerable<Action<ShapeCreatingContext>> Creating {get;set;}
|
||||
public IEnumerable<Action<ShapeCreatedContext>> Created {get;set;}
|
||||
|
||||
public IList<string> FrameTypes { get; set; }
|
||||
public IList<string> Wrappers { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace Orchard.DisplayManagement.Implementation {
|
||||
throw new OrchardException(T("Shape type {0} not found", shapeMetadata.Type));
|
||||
}
|
||||
|
||||
foreach (var frameType in shape.Metadata.FrameTypes) {
|
||||
foreach (var frameType in shape.Metadata.Wrappers) {
|
||||
ShapeDescriptor frameDescriptor;
|
||||
if (shapeTable.Descriptors.TryGetValue(frameType, out frameDescriptor)) {
|
||||
shape.Metadata.ChildContent = Process(frameDescriptor, shape, context);
|
||||
|
||||
@@ -101,7 +101,7 @@ namespace Orchard.DisplayManagement.Implementation {
|
||||
createdContext.Shape.Metadata = shapeMetadata;
|
||||
|
||||
if (shapeDescriptor != null)
|
||||
shapeMetadata.FrameTypes = shapeMetadata.FrameTypes.Concat(shapeDescriptor.FrameTypes).ToList();
|
||||
shapeMetadata.Wrappers = shapeMetadata.Wrappers.Concat(shapeDescriptor.Wrappers).ToList();
|
||||
|
||||
// "created" events provides default values and new object initialization
|
||||
foreach (var ev in _events) {
|
||||
|
||||
@@ -5,12 +5,12 @@ using System.Web;
|
||||
namespace Orchard.DisplayManagement.Shapes {
|
||||
public class ShapeMetadata {
|
||||
public ShapeMetadata() {
|
||||
FrameTypes = new List<string>();
|
||||
Wrappers = new List<string>();
|
||||
}
|
||||
|
||||
public string Type { get; set; }
|
||||
public string Position { get; set; }
|
||||
public IList<string> FrameTypes { get; set; }
|
||||
public IList<string> Wrappers { get; set; }
|
||||
|
||||
public bool WasExecuted { get; set; }
|
||||
public IHtmlString ChildContent { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user