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
|
// '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")
|
builder.Describe("Zone")
|
||||||
.OnCreating(creating => creating.BaseType = typeof(Zone))
|
.OnCreating(creating => creating.BaseType = typeof(Zone))
|
||||||
.OnDisplaying(displaying => {
|
.OnDisplaying(displaying => {
|
||||||
var zone = displaying.Shape;
|
var zone = displaying.Shape;
|
||||||
ShapeMetadata zoneMetadata = zone.Metadata;
|
zone.Classes.Add("zone-" + zone.ZoneName.ToLower());
|
||||||
String name = zone.ZoneName;
|
|
||||||
zone.Classes.Add("zone-" + name.ToLower());
|
|
||||||
zone.Classes.Add("zone");
|
zone.Classes.Add("zone");
|
||||||
zoneMetadata.Alternates.Add("Zone__" + name);
|
zone.Metadata.Alternates.Add("Zone__" + zone.ZoneName);
|
||||||
});
|
});
|
||||||
|
|
||||||
//builder.Describe("menu")
|
builder.Describe("Menu")
|
||||||
// .OnDisplaying(displaying => {
|
.OnDisplaying(displaying => {
|
||||||
// var name = displaying.Shape.MenuName.ToLower();
|
var menu = displaying.Shape;
|
||||||
// var menu = displaying.Shape;
|
menu.Classes.Add("menu-" + menu.MenuName.ToLower());
|
||||||
// menu.Classes.Add("menu-" + name);
|
menu.Classes.Add("menu");
|
||||||
// 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
|
// 'List' shapes start with several empty collections
|
||||||
builder.Describe("List")
|
builder.Describe("List")
|
||||||
|
@@ -139,6 +139,9 @@
|
|||||||
<Content Include="Themes\TheThemeMachine\Styles\site.css" />
|
<Content Include="Themes\TheThemeMachine\Styles\site.css" />
|
||||||
<Content Include="Themes\TheThemeMachine\Theme.png" />
|
<Content Include="Themes\TheThemeMachine\Theme.png" />
|
||||||
<Content Include="Themes\TheThemeMachine\Theme.txt" />
|
<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\Classic\Views\Zone-Navigation.cshtml" />
|
||||||
<None Include="Themes\TheThemeMachine\Views\TempFeatured.cshtml">
|
<None Include="Themes\TheThemeMachine\Views\TempFeatured.cshtml">
|
||||||
<SubType>Designer</SubType>
|
<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)
|
.Text(menuItem.Text)
|
||||||
.Href(menuItem.Href)
|
.Href(menuItem.Href)
|
||||||
.RouteValues(menuItem.RouteValues)
|
.RouteValues(menuItem.RouteValues)
|
||||||
.Item(menuItem);
|
.Item(menuItem)
|
||||||
|
.Menu(shape)
|
||||||
|
.Parent(parentShape);
|
||||||
|
|
||||||
if (menuItem.Items != null && menuItem.Items.Any()) {
|
if (menuItem.Items != null && menuItem.Items.Any()) {
|
||||||
PopulateMenu(shape, menuItemShape, menuItem.Items);
|
PopulateMenu(shape, menuItemShape, menuItem.Items);
|
||||||
|
Reference in New Issue
Block a user