diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Filters/WidgetFilter.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Filters/WidgetFilter.cs index 9612327fd..ae148948e 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Filters/WidgetFilter.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Filters/WidgetFilter.cs @@ -20,6 +20,11 @@ namespace Orchard.Widgets.Filters { } public void OnResultExecuting(ResultExecutingContext filterContext) { + // layers and widgets should only run on a full view rendering result + var viewResult = filterContext.Result as ViewResult; + if (viewResult == null) + return; + var workContext = _workContextAccessor.GetContext(filterContext); if (workContext == null || diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj index 299f79a33..7ee68d518 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj @@ -80,6 +80,7 @@ + @@ -112,6 +113,7 @@ + diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/BuiltinRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/BuiltinRuleProvider.cs new file mode 100644 index 000000000..255c695e1 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/BuiltinRuleProvider.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using Orchard.UI.Widgets; + +namespace Orchard.Widgets.RuleEngine { + public class BuiltinRuleProvider : IRuleProvider { + private readonly IWorkContextAccessor _workContextAccessor; + + public BuiltinRuleProvider(IWorkContextAccessor workContextAccessor) { + _workContextAccessor = workContextAccessor; + } + + public void Process(RuleContext ruleContext) { + if (string.Equals(ruleContext.FunctionName, "WorkContext", StringComparison.OrdinalIgnoreCase)) { + ruleContext.Result = _workContextAccessor.GetContext(); + } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.Editor.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.Editor.cshtml new file mode 100644 index 000000000..c3a6edaa4 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.Editor.cshtml @@ -0,0 +1,11 @@ +
+
+ @Display(Model.Primary) +
+
+ @Display(Model.secondary) +
+ +
+
+
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.cshtml index 0fa937dbb..cda3bc9ba 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Items_Widget.cshtml @@ -1,4 +1 @@ -TheWidget -@Display(Model.Content) -@Display(Model.Primary) -@Display(Model.Body) +@Display(Model.Content) diff --git a/src/Orchard.Web/Themes/Classic/Views/Layout.cshtml b/src/Orchard.Web/Themes/Classic/Views/Layout.cshtml index f4fff7312..9d5b5e135 100644 --- a/src/Orchard.Web/Themes/Classic/Views/Layout.cshtml +++ b/src/Orchard.Web/Themes/Classic/Views/Layout.cshtml @@ -26,8 +26,8 @@ @Display(Model.Content) @* End Content *@ @Display.Footer(Navigation:Model.Navigation)