mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Adding specializations for additional core shapes
MenuItem now has Parent and Menu back-pointer properties Menu-{name} and MenuItem-{name} templates are added as specializations --HG-- branch : dev
This commit is contained in:
@@ -46,24 +46,30 @@ namespace Orchard.Core.Shapes {
|
||||
});
|
||||
|
||||
// 'Zone' shapes are built on the Zone base class
|
||||
// They have class="zone zone-{name}"
|
||||
// and the template can be specialized with "Zone-{Name}" base file name
|
||||
builder.Describe("Zone")
|
||||
.OnCreating(creating => creating.BaseType = typeof(Zone))
|
||||
.OnDisplaying(displaying => {
|
||||
var zone = displaying.Shape;
|
||||
ShapeMetadata zoneMetadata = zone.Metadata;
|
||||
String name = zone.ZoneName;
|
||||
zone.Classes.Add("zone-" + name.ToLower());
|
||||
var zone = displaying.Shape;
|
||||
zone.Classes.Add("zone-" + zone.ZoneName.ToLower());
|
||||
zone.Classes.Add("zone");
|
||||
zoneMetadata.Alternates.Add("Zone__" + name);
|
||||
zone.Metadata.Alternates.Add("Zone__" + zone.ZoneName);
|
||||
});
|
||||
|
||||
//builder.Describe("menu")
|
||||
// .OnDisplaying(displaying => {
|
||||
// var name = displaying.Shape.MenuName.ToLower();
|
||||
// var menu = displaying.Shape;
|
||||
// menu.Classes.Add("menu-" + name);
|
||||
// menu.Classes.Add("menu");
|
||||
// });
|
||||
builder.Describe("Menu")
|
||||
.OnDisplaying(displaying => {
|
||||
var menu = displaying.Shape;
|
||||
menu.Classes.Add("menu-" + menu.MenuName.ToLower());
|
||||
menu.Classes.Add("menu");
|
||||
menu.Metadata.Alternates.Add("Menu__" + menu.MenuName);
|
||||
});
|
||||
|
||||
builder.Describe("MenuItem")
|
||||
.OnDisplaying(displaying => {
|
||||
var menu = displaying.Shape.Menu;
|
||||
menu.Metadata.Alternates.Add("MenuItem__" + menu.MenuName);
|
||||
});
|
||||
|
||||
// 'List' shapes start with several empty collections
|
||||
builder.Describe("List")
|
||||
|
@@ -139,6 +139,9 @@
|
||||
<Content Include="Themes\TheThemeMachine\Styles\site.css" />
|
||||
<Content Include="Themes\TheThemeMachine\Theme.png" />
|
||||
<Content Include="Themes\TheThemeMachine\Theme.txt" />
|
||||
<None Include="Themes\Classic\Views\Menu-Main.cshtml">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Themes\Classic\Views\Zone-Navigation.cshtml" />
|
||||
<None Include="Themes\TheThemeMachine\Views\TempFeatured.cshtml">
|
||||
<SubType>Designer</SubType>
|
||||
|
10
src/Orchard.Web/Themes/Classic/Views/Menu-Main.cshtml
Normal file
10
src/Orchard.Web/Themes/Classic/Views/Menu-Main.cshtml
Normal file
@@ -0,0 +1,10 @@
|
||||
@{
|
||||
// Model is Model.Menu from the layout (Layout.Menu)
|
||||
var tag = Tag(Model, "ul");
|
||||
}
|
||||
<nav>2
|
||||
[@tag.StartElement
|
||||
@* see MenuItem shape template *@
|
||||
@DisplayChildren(Model)
|
||||
@tag.EndElement]
|
||||
</nav>
|
@@ -39,7 +39,9 @@ namespace Orchard.UI.Navigation {
|
||||
.Text(menuItem.Text)
|
||||
.Href(menuItem.Href)
|
||||
.RouteValues(menuItem.RouteValues)
|
||||
.Item(menuItem);
|
||||
.Item(menuItem)
|
||||
.Menu(shape)
|
||||
.Parent(parentShape);
|
||||
|
||||
if (menuItem.Items != null && menuItem.Items.Any()) {
|
||||
PopulateMenu(shape, menuItemShape, menuItem.Items);
|
||||
|
Reference in New Issue
Block a user