diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index 8b3f2989d..50a2f6870 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -382,7 +382,6 @@ - @@ -390,7 +389,6 @@ - diff --git a/src/Orchard.Web/Core/Shapes/CoreShapes.cs b/src/Orchard.Web/Core/Shapes/CoreShapes.cs index 87d8b3af1..71629ff1a 100644 --- a/src/Orchard.Web/Core/Shapes/CoreShapes.cs +++ b/src/Orchard.Web/Core/Shapes/CoreShapes.cs @@ -8,7 +8,6 @@ using System.Web.Mvc.Html; using Orchard.DisplayManagement; using Orchard.DisplayManagement.Descriptors; using Orchard.DisplayManagement.Implementation; -using Orchard.Environment.Extensions.Models; using Orchard.Mvc.ViewEngines; using Orchard.UI; using Orchard.UI.Resources; @@ -64,11 +63,29 @@ namespace Orchard.Core.Shapes { tagBuilder.MergeAttributes(attributes, false); foreach (var cssClass in classes ?? Enumerable.Empty()) tagBuilder.AddCssClass(cssClass); - if (id != null) + if (!string.IsNullOrWhiteSpace(id)) tagBuilder.GenerateId(id); return tagBuilder; } + [Shape] + public void Zone(dynamic Display, dynamic Shape, TextWriter Output) { + string id = Shape.Id; + IEnumerable classes = Shape.Classes; + IDictionary attributes = Shape.Attributes; + var zoneWrapper = GetTagBuilder("div", id, classes, attributes); + Output.Write(zoneWrapper.ToString(TagRenderMode.StartTag)); + foreach (var item in Shape) + Output.Write(Display(item)); + Output.Write(zoneWrapper.ToString(TagRenderMode.EndTag)); + } + + [Shape] + public void DocumentZone(dynamic Display, dynamic Shape, TextWriter Output) { + foreach (var item in Shape) + Output.Write(Display(item)); + } + [Shape] public void HeadScripts(HtmlHelper Html, IResourceManager ResourceManager) { WriteResources(Html, ResourceManager, "script", ResourceLocation.Head, null); diff --git a/src/Orchard.Web/Core/Shapes/Views/DocumentZone.cshtml b/src/Orchard.Web/Core/Shapes/Views/DocumentZone.cshtml deleted file mode 100644 index 58582fbf1..000000000 --- a/src/Orchard.Web/Core/Shapes/Views/DocumentZone.cshtml +++ /dev/null @@ -1 +0,0 @@ -@DisplayChildren(Model) diff --git a/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs b/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs index d74b235cd..a18c145e2 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs @@ -63,8 +63,9 @@ namespace Orchard.Setup { builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerMatchingLifetimeScope("shell"); + builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); - builder.RegisterType().As().InstancePerLifetimeScope(); + builder.RegisterType().As().InstancePerLifetimeScope(); // setup mode specific implementations of needed service interfaces builder.RegisterType().As().InstancePerLifetimeScope(); @@ -86,7 +87,6 @@ namespace Orchard.Setup { builder.RegisterType().As(); builder.RegisterType().As(); - builder.RegisterType().As().WithProperty("Feature", Feature).WithMetadata("Feature", Feature); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index f1f2bebe1..6ba392ecd 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -104,7 +104,6 @@ - @@ -137,11 +136,12 @@ + + - @@ -287,8 +287,7 @@ - - + diff --git a/src/Orchard.Web/Core/Shapes/Views/Zone.cshtml b/src/Orchard.Web/Themes/Classic/Views/Zone.cshtml similarity index 100% rename from src/Orchard.Web/Core/Shapes/Views/Zone.cshtml rename to src/Orchard.Web/Themes/Classic/Views/Zone.cshtml diff --git a/src/Orchard.Web/Themes/SafeMode/Views/Document.aspx b/src/Orchard.Web/Themes/SafeMode/Views/Document.aspx deleted file mode 100644 index 980988130..000000000 --- a/src/Orchard.Web/Themes/SafeMode/Views/Document.aspx +++ /dev/null @@ -1,19 +0,0 @@ -<%@ Page Language="C#" Inherits="Orchard.Mvc.ViewPage" %> -<%@ Import Namespace="Orchard.Mvc.Html" -%> -<%@ Import Namespace="Orchard.UI.Resources" %> - - - <%: Html.Title() %> - <% RegisterLink(new LinkEntry {Type = "image/x-icon", Rel = "shortcut icon", Href = ResolveUrl("../Content/orchard.ico")}); %> - <%--<% - //todo: (heskew) have resource modules that can be leaned on (like a jQuery module that knows about various CDNs and jQuery's version and min naming schemes) - //todo: (heskew) this is an interim solution to inlude jQuery in every page and still allow that to be overriden in some theme by it containing a headScripts partial - Html.Zone("head", ":metas :styles :scripts"); %>--%> - <%:Display(Model.Head) %> - - - -<%: Display(Model.Body) %> - - diff --git a/src/Orchard.Web/Themes/SafeMode/Views/Document.cshtml b/src/Orchard.Web/Themes/SafeMode/Views/Document.cshtml new file mode 100644 index 000000000..018cc617e --- /dev/null +++ b/src/Orchard.Web/Themes/SafeMode/Views/Document.cshtml @@ -0,0 +1,24 @@ +@using Orchard.Mvc.Html +@using Orchard.UI.Resources +@{ + RegisterLink(new LinkEntry {Type = "image/x-icon", Rel = "shortcut icon", Href = Url.Content("~/modules/orchard.themes/Content/orchard.ico")}); +} + + + + + @Html.Title() + @{ + //todo: (heskew) have resource modules that can be leaned on (like a jQuery module that knows about various CDNs and jQuery's version and min naming schemes) + //todo: (heskew) this is an interim solution to inlude jQuery in every page and still allow that to be overriden in some theme by it containing a headScripts partial + } + @//Model.Zones.AddRenderPartial("head:before", "HeadPreload", Model); + @//Html.Zone("head", ":metas :styles :scripts"); %> + @Display(Model.Head) + + + +@Display(Model.Body) +@Display(Model.Tail) + + \ No newline at end of file diff --git a/src/Orchard.Web/Themes/SafeMode/Views/DocumentZone.cshtml b/src/Orchard.Web/Themes/SafeMode/Views/DocumentZone.cshtml deleted file mode 100644 index 58582fbf1..000000000 --- a/src/Orchard.Web/Themes/SafeMode/Views/DocumentZone.cshtml +++ /dev/null @@ -1 +0,0 @@ -@DisplayChildren(Model) diff --git a/src/Orchard.Web/Themes/SafeMode/Views/Layout.ascx b/src/Orchard.Web/Themes/SafeMode/Views/Layout.ascx deleted file mode 100644 index 0a7dbe259..000000000 --- a/src/Orchard.Web/Themes/SafeMode/Views/Layout.ascx +++ /dev/null @@ -1,18 +0,0 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> -<%@ Import Namespace="Orchard.UI.Resources" %> -<% - Script.Require("jQuery", "1.4.2"); - Script.Require("Theme_Base"); - Script.Require("Setup"); - Style.Require("SafeMode"); - RegisterLink(new LinkEntry { Condition = "lte IE 6", Rel = "stylesheet", Type="text/css", Href = ResolveUrl("../Styles/ie6.css")}.AddAttribute("media", "screen, projection")); -%> - -
- <%: Display(Model.Content) %> -
diff --git a/src/Orchard.Web/Themes/SafeMode/Views/Layout.cshtml b/src/Orchard.Web/Themes/SafeMode/Views/Layout.cshtml new file mode 100644 index 000000000..279689486 --- /dev/null +++ b/src/Orchard.Web/Themes/SafeMode/Views/Layout.cshtml @@ -0,0 +1,16 @@ +@using Orchard.UI.Resources +@{ + Script.Require("jQuery", "1.4.2"); + Script.Require("ShapesBase"); + Style.Require("SafeMode"); + RegisterLink(new LinkEntry { Condition = "lte IE 6", Rel = "stylesheet", Type="text/css", Href = Href("../Styles/ie6.css")}.AddAttribute("media", "screen, projection")); +} + +@Display(Model.Messages) +
+@Display(Model.Content) +
\ No newline at end of file diff --git a/src/Orchard.Web/Themes/SafeMode/Views/Zone.ascx b/src/Orchard.Web/Themes/SafeMode/Views/Zone.ascx deleted file mode 100644 index 1ce39cc99..000000000 --- a/src/Orchard.Web/Themes/SafeMode/Views/Zone.ascx +++ /dev/null @@ -1,4 +0,0 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> -
- <%foreach (var item in Model) {%><%:Display(item)%><%}%> -
diff --git a/src/Orchard.Web/Themes/ThemesResourceManifest.cs b/src/Orchard.Web/Themes/ThemesResourceManifest.cs index 43a4894da..68ae573b2 100644 --- a/src/Orchard.Web/Themes/ThemesResourceManifest.cs +++ b/src/Orchard.Web/Themes/ThemesResourceManifest.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using Orchard.UI.Resources; namespace Orchard.Themes { @@ -9,9 +5,9 @@ namespace Orchard.Themes { public ThemesResourceManifest() { DefineStyle("Admin").SetUrl("~/modules/orchard.themes/styles/admin.css"); - DefineScript("ThemeBase").SetUrl("~/modules/orchard.themes/scripts/base.js").SetDependencies("jQuery"); - DefineStyle("Theme").SetUrl("~/modules/orchard.themes/styles/site.css"); // todo: missing - DefineStyle("ThemeSpecial").SetUrl("~/modules/orchard.themes/styles/special.css"); + DefineScript("ShapesBase").SetUrl("~/core/shapes/scripts/base.js").SetDependencies("jQuery"); + DefineStyle("Shapes").SetUrl("~/core/shapes/styles/site.css"); // todo: missing + DefineStyle("ShapesSpecial").SetUrl("~/core/shapes/styles/special.css"); DefineStyle("Classic").SetUrl("~/themes/classic/styles/site.css"); DefineStyle("Classic_Blog").SetUrl("~/themes/classic/styles/blog.css"); @@ -32,11 +28,11 @@ namespace Orchard.Themes { DefineStyle("Green_Blog").SetUrl("~/themes/green/styles/blog.css"); DefineStyle("Green_YUI").SetUrl("~/themes/green/styles/yui.css"); - DefineStyle("SafeMode").SetUrl("~/themes/green/styles/site.css"); + DefineStyle("SafeMode").SetUrl("~/themes/safemode/styles/site.css"); - DefineStyle("TheAdmin").SetUrl("~/themes/green/styles/site.css"); - DefineStyle("TheAdmin_IE").SetUrl("~/themes/green/styles/ie.css"); - DefineStyle("TheAdmin_IE6").SetUrl("~/themes/green/styles/ie6.css"); + DefineStyle("TheAdmin").SetUrl("~/themes/theadmin/styles/site.css"); + DefineStyle("TheAdmin_IE").SetUrl("~/themes/theadmin/styles/ie.css"); + DefineStyle("TheAdmin_IE6").SetUrl("~/themes/theadmin/styles/ie6.css"); DefineScript("TheAdmin").SetUrl("~/themes/theadmin/scripts/admin.js").SetDependencies("jQuery"); } } diff --git a/src/Orchard/Environment/ShellBuilders/ShellContextFactory.cs b/src/Orchard/Environment/ShellBuilders/ShellContextFactory.cs index 9a3c8dd25..47edf7161 100644 --- a/src/Orchard/Environment/ShellBuilders/ShellContextFactory.cs +++ b/src/Orchard/Environment/ShellBuilders/ShellContextFactory.cs @@ -99,7 +99,11 @@ namespace Orchard.Environment.ShellBuilders { var descriptor = new ShellDescriptor { SerialNumber = -1, - Features = new[] { new ShellFeature { Name = "Orchard.Setup" } }, + Features = new[] { + new ShellFeature { Name = "Orchard.Setup" }, + new ShellFeature { Name = "Shapes" }, + new ShellFeature { Name = "Orchard.jQuery" }, + }, }; var blueprint = _compositionStrategy.Compose(settings, descriptor); diff --git a/src/Orchard/UI/Resources/ResourceManifest.cs b/src/Orchard/UI/Resources/ResourceManifest.cs index f09ecfdf2..dc69a6f1d 100644 --- a/src/Orchard/UI/Resources/ResourceManifest.cs +++ b/src/Orchard/UI/Resources/ResourceManifest.cs @@ -57,9 +57,9 @@ namespace Orchard.UI.Resources { // But the ResourceManifest defined in Orchard.Web/themes is not loading for some reason DefineStyle("Admin").SetUrl("~/modules/orchard.themes/styles/admin.css"); - DefineScript("ThemeBase").SetUrl("~/modules/orchard.themes/scripts/base.js").SetDependencies("jQuery"); - DefineStyle("Theme").SetUrl("~/modules/orchard.themes/styles/site.css"); // todo: missing - DefineStyle("ThemeSpecial").SetUrl("~/modules/orchard.themes/styles/special.css"); + DefineScript("ShapesBase").SetUrl("~/core/shapes/scripts/base.js").SetDependencies("jQuery"); + DefineStyle("Shapes").SetUrl("~/core/shapes/styles/site.css"); // todo: missing + DefineStyle("ShapesSpecial").SetUrl("~/core/shapes/styles/special.css"); DefineStyle("Classic").SetUrl("~/themes/classic/styles/site.css"); DefineStyle("Classic_Blog").SetUrl("~/themes/classic/styles/blog.css"); @@ -80,7 +80,7 @@ namespace Orchard.UI.Resources { DefineStyle("Green_Blog").SetUrl("~/themes/green/styles/blog.css"); DefineStyle("Green_YUI").SetUrl("~/themes/green/styles/yui.css"); - DefineStyle("SafeMode").SetUrl("~/themes/green/styles/site.css"); + DefineStyle("SafeMode").SetUrl("~/themes/safemode/styles/site.css"); DefineStyle("TheAdmin").SetUrl("~/themes/theadmin/styles/site.css"); DefineStyle("TheAdmin_IE").SetUrl("~/themes/theadmin/styles/ie.css");