From 46e3b9a4755c3dea880f6c3aba81d60ee42330ab Mon Sep 17 00:00:00 2001 From: Nicholas Mayne Date: Sun, 31 Aug 2014 18:45:42 +0100 Subject: [PATCH] Adding culture-isrtl to layer filters --- .../RuleEngine/CultureRuleProvider.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs index d86573380..7f025cb72 100644 --- a/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs @@ -23,6 +23,20 @@ namespace Orchard.Localization.RuleEngine { if (!String.Equals(ruleContext.FunctionName, "culture-lcid", StringComparison.OrdinalIgnoreCase)) { ProcessCultureId(ruleContext); } + + if (!String.Equals(ruleContext.FunctionName, "culture-isrtl", StringComparison.OrdinalIgnoreCase)) { + ProcessCurrentCultureIsRtl(ruleContext); + } + } + + private void ProcessCurrentCultureIsRtl(dynamic ruleContext) { + var currentUserCulture = CultureInfo.GetCultureInfo(_workContext.CurrentCulture); + + var isRtl = ((object[]) ruleContext.Arguments) + .Cast() + .SingleOrDefault(); + + ruleContext.Result = (isRtl == currentUserCulture.TextInfo.IsRightToLeft); } private void ProcessCultureCode(dynamic ruleContext) {