From 55485cb465203c7d440ac600169ede918efc8ad1 Mon Sep 17 00:00:00 2001 From: Lombiq Date: Tue, 25 Sep 2018 18:58:28 +0200 Subject: [PATCH] Framework: Fixing that TemplateFilterForPart should be able to identify an editor group name with spaces (#7683) --- .../Handlers/TemplateFilterForPart.cs | 7 ++++--- src/Orchard/Utility/Extensions/StringExtensions.cs | 12 ++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs b/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs index a79219a4a..29074ab71 100644 --- a/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs +++ b/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs @@ -1,4 +1,5 @@ using System; +using Orchard.Utility.Extensions; namespace Orchard.ContentManagement.Handlers { public class TemplateFilterForPart : TemplateFilterBase where TPart : ContentPart, new() { @@ -35,7 +36,7 @@ namespace Orchard.ContentManagement.Handlers { } protected override void BuildEditorShape(BuildEditorContext context, ContentPart part) { - if (!string.Equals(_groupId, context.GroupId, StringComparison.OrdinalIgnoreCase)) + if (!_groupId.SafeNameEquals(context.GroupId, StringComparison.OrdinalIgnoreCase)) return; var templatePart = part.As(); @@ -44,9 +45,9 @@ namespace Orchard.ContentManagement.Handlers { } protected override void UpdateEditorShape(UpdateEditorContext context, ContentPart part) { - if (!string.Equals(_groupId, context.GroupId, StringComparison.OrdinalIgnoreCase)) + if (!_groupId.SafeNameEquals(context.GroupId, StringComparison.OrdinalIgnoreCase)) return; - + var templatePart = part.As(); context.Updater.TryUpdateModel(templatePart, _prefix, null, null); BuildEditorShape(context, part); diff --git a/src/Orchard/Utility/Extensions/StringExtensions.cs b/src/Orchard/Utility/Extensions/StringExtensions.cs index e8bde90b4..1638a2b8c 100644 --- a/src/Orchard/Utility/Extensions/StringExtensions.cs +++ b/src/Orchard/Utility/Extensions/StringExtensions.cs @@ -190,6 +190,18 @@ namespace Orchard.Utility.Extensions { return name; } + /// + /// Compares two strings after converting them to valid technical names. + /// + public static bool SafeNameEquals(this string name, string otherName) => + name.ToSafeName() == otherName.ToSafeName(); + + /// + /// Compares two strings using a string comparison option after converting them to valid technical names. + /// + public static bool SafeNameEquals(this string name, string otherName, StringComparison comparisonType) => + string.Equals(name.ToSafeName(), otherName.ToSafeName(), comparisonType); + /// /// Generates a valid Html name. ///