From f2ff1494afa6620f16ff76ccf135cc6950b46dab Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Thu, 7 Oct 2010 15:07:01 -0700 Subject: [PATCH] More progress on defining new UI capabilities... --HG-- branch : dev --- src/Orchard.Web/Core/Shapes/CoreShapes.cs | 18 +++++++++++++++--- src/Orchard.Web/Orchard.Web.csproj | 6 +++++- .../Themes/TheThemeMachine/Views/Layout.cshtml | 3 +++ .../Themes/TheThemeMachine/Views/Menu.cshtml | 17 ----------------- .../Themes/TheThemeMachine/Views/Menu.cshtml_ | 10 ++++++++++ .../TheThemeMachine/Views/MenuItem.cshtml_ | 17 +++++++++++++++++ .../TheThemeMachine/Views/TempFeatured.cshtml | 1 + 7 files changed, 51 insertions(+), 21 deletions(-) delete mode 100644 src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml create mode 100644 src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml_ create mode 100644 src/Orchard.Web/Themes/TheThemeMachine/Views/MenuItem.cshtml_ create mode 100644 src/Orchard.Web/Themes/TheThemeMachine/Views/TempFeatured.cshtml diff --git a/src/Orchard.Web/Core/Shapes/CoreShapes.cs b/src/Orchard.Web/Core/Shapes/CoreShapes.cs index 033f58460..20b83ac46 100644 --- a/src/Orchard.Web/Core/Shapes/CoreShapes.cs +++ b/src/Orchard.Web/Core/Shapes/CoreShapes.cs @@ -48,7 +48,21 @@ namespace Orchard.Core.Shapes { // 'Zone' shapes are built on the Zone base class builder.Describe("Zone") - .OnCreating(creating => creating.BaseType = typeof(Zone)); + .OnCreating(creating => creating.BaseType = typeof (Zone)); + //.OnDisplaying(displaying => { + // var name = displaying.Shape.ZoneName.ToLower(); + // var zone = displaying.Shape; + // zone.Classes.Add("zone-" + name); + // zone.Classes.Add("zone"); + // }); + + //builder.Describe("menu") + // .OnDisplaying(displaying => { + // var name = displaying.Shape.MenuName.ToLower(); + // var menu = displaying.Shape; + // menu.Classes.Add("menu-" + name); + // menu.Classes.Add("menu"); + // }); // 'List' shapes start with several empty collections builder.Describe("List") @@ -61,14 +75,12 @@ namespace Orchard.Core.Shapes { private object CreateZone(ShapeCreatingContext context, string zoneName) { var name = zoneName.ToLower(); - var zone = context.New.Zone(); zone.Id = "zone-" + name; zone.Classes.Add("zone"); return zone; } - static TagBuilder GetTagBuilder(string tagName, string id, IEnumerable classes, IDictionary attributes) { var tagBuilder = new TagBuilder(tagName); tagBuilder.MergeAttributes(attributes, false); diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index 236e79f5a..ab913e71d 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -139,10 +139,14 @@ + + Designer + Designer + @@ -314,7 +318,7 @@ - + Designer diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Views/Layout.cshtml b/src/Orchard.Web/Themes/TheThemeMachine/Views/Layout.cshtml index feeee43d5..ec69a24c1 100644 --- a/src/Orchard.Web/Themes/TheThemeMachine/Views/Layout.cshtml +++ b/src/Orchard.Web/Themes/TheThemeMachine/Views/Layout.cshtml @@ -10,6 +10,9 @@ if (Model.Sidebar != null) { Html.AddPageClassNames(new[]{"icanhassidebar"}); } + + WorkContext.Layout.Featured.Add(New.TempFeatured(Hello:"bob")); + WorkContext.Layout.Featured.Add("just some text in featured"); } @Model.TitleFromMenu
diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml b/src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml deleted file mode 100644 index 8da5c5eaf..000000000 --- a/src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml +++ /dev/null @@ -1,17 +0,0 @@ - -@{ - Layout.TitleFromMenu = "hi there!"; -} - - \ No newline at end of file diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml_ b/src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml_ new file mode 100644 index 000000000..b483973cd --- /dev/null +++ b/src/Orchard.Web/Themes/TheThemeMachine/Views/Menu.cshtml_ @@ -0,0 +1,10 @@ +@{ + // Model is Model.Menu from the layout (Layout.Menu) + var tag = Tag(Model, "ul"); +} + \ No newline at end of file diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Views/MenuItem.cshtml_ b/src/Orchard.Web/Themes/TheThemeMachine/Views/MenuItem.cshtml_ new file mode 100644 index 000000000..282250443 --- /dev/null +++ b/src/Orchard.Web/Themes/TheThemeMachine/Views/MenuItem.cshtml_ @@ -0,0 +1,17 @@ +@{ + // odd formatting in this file is to cause more attractive results in the output. + var items = (IEnumerable)Enumerable.Cast(Model); +} +@{ +if (HasText(Model.Text)) { + @DisplayChildren(Model) +} else { +
  • @Model.Text + @if (items.Any()) { +
      + @DisplayChildren(Model) +
    + } +
  • + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Views/TempFeatured.cshtml b/src/Orchard.Web/Themes/TheThemeMachine/Views/TempFeatured.cshtml new file mode 100644 index 000000000..895311037 --- /dev/null +++ b/src/Orchard.Web/Themes/TheThemeMachine/Views/TempFeatured.cshtml @@ -0,0 +1 @@ +

    I am temp featured!! Hello, @Model.Hello

    \ No newline at end of file