diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index 0ba2ee894..cfee41949 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -142,6 +142,8 @@ + + diff --git a/src/Orchard.Web/Core/Themes/Theme.gif b/src/Orchard.Web/Core/Themes/Theme.gif new file mode 100644 index 000000000..407577331 Binary files /dev/null and b/src/Orchard.Web/Core/Themes/Theme.gif differ diff --git a/src/Orchard.Web/Core/Themes/Theme.txt b/src/Orchard.Web/Core/Themes/Theme.txt new file mode 100644 index 000000000..7b9980171 --- /dev/null +++ b/src/Orchard.Web/Core/Themes/Theme.txt @@ -0,0 +1,6 @@ +name: Blue (default) +author: Jonathan Wall +description: This is the default theme that has a resemblance to the default ASP.NET MVC web project style for some reason. +version: 1.0 +tags: blue, default +homepage: http://www.orchardproject.net \ No newline at end of file diff --git a/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx b/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx index af59ab516..b701003a3 100644 --- a/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx +++ b/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx @@ -1,4 +1,6 @@ <%@ Page Language="C#" Inherits="Orchard.Mvc.ViewPage" %> +<%@ Import Namespace="Orchard.Themes"%> +<%@ Import Namespace="Orchard.Extensions"%> <%@ Import Namespace="Orchard.Core.Themes.ViewModels"%>

<%=Html.TitleForPage(T("Manage Themes").ToString()) %>

<%=_Encoded("Current Theme")%>

@@ -8,7 +10,7 @@ } else { %>

<%=Html.Encode(Model.CurrentTheme.DisplayName) %>

- <%=Html.Image(ResolveUrl("~/Themes/" + Model.CurrentTheme.ThemeName + "/Theme.gif"), Html.Encode(Model.CurrentTheme.DisplayName), null) %>
+ <%=Html.Image(ResolveUrl(Html.Resolve().GetThemeLocation(Model.CurrentTheme) + "/Theme.gif"), Html.Encode(Model.CurrentTheme.DisplayName), null)%>
<%=_Encoded("By") %> <%=Html.Encode(Model.CurrentTheme.Author) %>
<%=Html.Encode(Model.CurrentTheme.Version) %>
<%=Html.Encode(Model.CurrentTheme.Description) %>
@@ -23,7 +25,7 @@ %>

  • <%=Html.Encode(theme.DisplayName) %>

    - <%=Html.Image(ResolveUrl("~/Themes/" + theme.ThemeName + "/Theme.gif"), Html.Encode(theme.DisplayName), null) %>
    + <%=Html.Image(ResolveUrl(Html.Resolve().GetThemeLocation(theme) + "/Theme.gif"), Html.Encode(theme.DisplayName), null)%>
    <%=_Encoded("By") %> <%=Html.Encode(theme.Author) %>
    <%=Html.Encode(theme.Version) %>
    <%=Html.Encode(theme.Description) %>
    diff --git a/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs b/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs index 1413b00bc..759124202 100644 --- a/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs +++ b/src/Orchard/Mvc/ViewEngines/ViewEngineFilter.cs @@ -3,6 +3,7 @@ using System.IO; using System.Linq; using System.Web.Mvc; using Orchard.Extensions; +using Orchard.Logging; using Orchard.Mvc.Filters; using Orchard.Themes; @@ -25,6 +26,8 @@ namespace Orchard.Mvc.ViewEngines { _viewEngineProviders = viewEngineProviders; } + public ILogger Logger { get; set; } + public void OnResultExecuting(ResultExecutingContext filterContext) { var viewResultBase = filterContext.Result as ViewResultBase; if (viewResultBase == null) { @@ -44,6 +47,7 @@ namespace Orchard.Mvc.ViewEngines { themeViewEngines = _viewEngineProviders .Select(x => x.CreateThemeViewEngine(new CreateThemeViewEngineParams { VirtualPath = themeLocation })); + Logger.Debug("Theme location:\r\n\t-{0}", themeLocation); } @@ -53,6 +57,7 @@ namespace Orchard.Mvc.ViewEngines { var packageLocations = packages.Select(x => Path.Combine(x.Descriptor.Location, x.Descriptor.Name)); var packageViewEngines = _viewEngineProviders .Select(x => x.CreatePackagesViewEngine(new CreatePackagesViewEngineParams { VirtualPaths = packageLocations })); + Logger.Debug("Package locations:\r\n\t-{0}", string.Join("\r\n\t-", packageLocations.ToArray())); var requestViewEngines = new ViewEngineCollection( themeViewEngines diff --git a/src/Orchard/Mvc/ViewEngines/WebFormsViewEngineProvider.cs b/src/Orchard/Mvc/ViewEngines/WebFormsViewEngineProvider.cs index a5ecff38b..1beca23ca 100644 --- a/src/Orchard/Mvc/ViewEngines/WebFormsViewEngineProvider.cs +++ b/src/Orchard/Mvc/ViewEngines/WebFormsViewEngineProvider.cs @@ -1,11 +1,14 @@ using System.Linq; using System.Web.Mvc; +using Orchard.Logging; namespace Orchard.Mvc.ViewEngines { public class WebFormsViewEngineProvider : IViewEngineProvider { static string[] DisabledFormats = new[] { "~/Disabled" }; + public ILogger Logger { get; set; } + public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { // Area: if "area" in RouteData. Url hit for package... // Area-Layout Paths - no-op because LayoutViewEngine uses multi-pass instead of layout paths @@ -34,6 +37,8 @@ namespace Orchard.Mvc.ViewEngines { parameters.VirtualPath + "/Views/{0}.aspx", }; + Logger.Debug("PartialViewLocationFormats (theme): \r\n\t-{0}", string.Join("\r\n\t-", viewEngine.PartialViewLocationFormats)); + // for "routed" request views... // enable /Views/{area}/{controller}/{viewName} viewEngine.AreaPartialViewLocationFormats = new[] { @@ -41,6 +46,8 @@ namespace Orchard.Mvc.ViewEngines { parameters.VirtualPath + "/Views/{2}/{1}/{0}.aspx", }; + Logger.Debug("AreaPartialViewLocationFormats (theme): \r\n\t-{0}", string.Join("\r\n\t-", viewEngine.AreaPartialViewLocationFormats)); + return viewEngine; } @@ -52,6 +59,8 @@ namespace Orchard.Mvc.ViewEngines { "~/Packages/{2}/Views/{1}/{0}.aspx", }; + Logger.Debug("AreaFormats (package): \r\n\t-{0}", string.Join("\r\n\t-", areaFormats)); + var universalFormats = parameters.VirtualPaths .SelectMany(x => new[] { x + "/Views/{0}.ascx", @@ -59,6 +68,8 @@ namespace Orchard.Mvc.ViewEngines { }) .ToArray(); + Logger.Debug("UniversalFormats (package): \r\n\t-{0}", string.Join("\r\n\t-", universalFormats)); + var viewEngine = new WebFormViewEngine { MasterLocationFormats = DisabledFormats, ViewLocationFormats = universalFormats,